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

5271 lines
186 KiB
Python
Executable File

USING "rage_builtins.sch"
USING "globals.sch"
// Do nothing in release mode
#IF IS_FINAL_BUILD
SCRIPT
ENDSCRIPT
#ENDIF
// *****************************************************************************************
// *****************************************************************************************
// *****************************************************************************************
//
// MISSION NAME : Paradise 2 - Trailer Script
// AUTHOR : A Ross and Craig production.
// DESCRIPTION : Trailver 2 shot selection script.
//
// *****************************************************************************************
// *****************************************************************************************
// *****************************************************************************************
// Only include in debug mode
#IF IS_DEBUG_BUILD
USING "commands_camera.sch"
USING "commands_pad.sch"
USING "commands_script.sch"
USING "commands_clock.sch"
USING "flow_public_core_override.sch"
USING "commands_cutscene.sch"
USING "commands_graphics.sch"
USING "select_mission_stage.sch"
USING "shared_debug.sch"
USING "script_debug.sch"
USING "scripted_cam_editor_public.sch"
USING "script_ped.sch"
USING "cellphone_public.sch"
using "selector_public.sch"
using "building_control_public.sch"
USING "flow_reset_GAME.sch"
Using "Locates_public.sch"
//USING "traffic.sch"
CONST_INT MAX_TRAIL_POINTS 80
USING "gas_trails.sch"
USING "cam_recording_public.sch"
//-----------------------------------------------------------------------------------------------------------
// ENUMS
//-----------------------------------------------------------------------------------------------------------
ENUM MPF_MISSION_PED_FLAGS
mpf_phone,
mpf_fatmancross,
mpf_oldman,
mpf_driver,
mpf_trev,
mpf_frank,
mpf_mike,
mpf_slide,
mpf_chop,
mpf_pilot1,
mpf_pilot2,
mpf_jetPilot,
MPF_NUM_OF_PEDS
ENDENUM
ENUM MVF_MISSION_VEHICLE_FLAGS
veh_Driveway,
veh_first_train,
veh_Ghetto_train,
veh_truck,
veh_parked_car,
veh_tornado3,
veh_dune,
veh_slide,
veh_Bike,
Veh_police1,
veh_police2,
veh_police3,
veh_police4,
veh_exp1,
veh_exp2,
veh_exp3,
veh_heli1,
veh_heli2,
veh_jet,
MVF_NUM_OF_VEH
ENDENUM
ENUM MSF_MISSION_STAGE_FLAGS
STAGE_0_WAIT_FOR_STAGE,
STAGE_1_RUN_THROUGH_SHOTS,
STAGE_2_OBSERVATORY_SHOT,
STAGE_2_OBSERVATORY_SHOT_alt,
STAGE_3_FAM2_INT_P1,
STAGE_4_DRIVEWAY_SHOT,
STAGE_5_FAM1_INT_P1,
STAGE_6_CITY_TRAIN_SHOT,
STAGE_7_COUNTRY_SCAPE_SHOT,
STAGE_8_LIQUOR_ACE_SHOT,
STAGE_9_TREV1_MCS3_P2_A,
STAGE_10_CHIN1_INT_P2,
STAGE_11_TREV1_MCS3_P2_B,
AS_BUGGY,
AS_TREV_MOL,
AS_FIRE_TRAIL,
AS_BARN_BOOM,
STAGE_12_CHIN1_MCS4,
STAGE_13_DOCKS_BRIDGE_SHOT,
STAGE_13_DOCKS_BRIDGE_SHOT_ALT,
STAGE_14_GHETTO_TRAIN_SHOT,
STAGE_15_ARM1_INT_P3,
AS_LAUNCH_ARM1,//AS_ARMENIAN_CHASE,
STAGE_16_FRA2_INT_P2,
AS_LAUNCH_CAR_STEAL_FINALE,//AS_CAR_TRANS_TRUCK,
STAGE_17_ARM1_INT_P4,
STAGE_17_ARM1_INT_P4_ALT,
AS_LAUNCH_CAR_STEAL_3,//AS_RACE_SHOT,
STAGE_18_ARM1_INT_P1,
AS_LAUNCH_FAMILY_1,//AS_TREV_PLANE_TKOFF,
STAGE_19_FAM5_MCS5,
STAGE_20_TREV1_INT_P4,
AS_LAUNCH_TREV2,//AS_PLANE_CHASE,
AS_VAULT_EXP,
AS_PRO_BLAST,//AS_PROL_EXP,
AS_LAUNCH_FRANK_1,//AS_CHOP_DRIVE_BY,
AS_CAR_SLIDE,
AS_CHOP_ON_CAR,
AS_LAUNCH_FBI_2,// AS_MIKE_RAPPEL,
AS_LAUNCH_JEWEL_2A,//AS_JEWL_HEIST,
AS_FRANK_BIKE_EXP,
AS_LAUNCH_EXILE_1,// AS_CARGO_PLANE_JUMP_JEEP,
AS_LAUNCH_OFFROAD_RACE_1,//AS_DIRT_BIKE,
AS_LAUNCH_EXILE_3,
STAGE_21_FBI2_MCS1_P1,
STAGE_22_FIN_EXT_P2,
AS_JET_FIGHT,
STAGE_23_FINAL_SHOT,
STAGE_23_FINAL_SHOT_ALT,
// STAGE_RECORD,
STAGE_NUM_LAST//Leave this as last stage, used to detect end of shotlist.
ENDENUM
//Object
ENUM WEAPON_REGISTER
WEAPON_MICHAEL,
WEAPON_TREVOR,
WEAPON_BRAD
ENDENUM
Enum STAGE_SWITCHSTATE
STAGESWITCH_IDLE,
STAGESWITCH_REQUESTED,
STAGESWITCH_EXITING,
STAGESWITCH_ENTERING
ENDENUM
//-----------------------------------------------------------------------------------------------------------
// STRUCTS
//-----------------------------------------------------------------------------------------------------------
STRUCT VEHICLE_STRUCT
VEHICLE_INDEX id
endstruct
Struct PEDS_STRUCT
PED_INDEX id
ENDSTRUCT
struct decal
DECAL_ID the_decal_id
DECAL_RENDERSETTING_ID decal_texture_id
vector pos
vector direction
vector side
float width
float height
float fAlpha
float life
float wash_amount
blip_index blip
bool decal_removed
endstruct
//-----------------------------------------------------------------------------------------------------------
// CONSTANTS
//-----------------------------------------------------------------------------------------------------------
//CONST_INT TOTAL_NUMBER_OF_TRAFFIC_CARS 150
//CONST_INT TOTAL_NUMBER_OF_PARKED_CARS 50
//CONST_INT TOTAL_NUMBER_OF_SET_PIECE_CARS 25
//CONST_INT MAX_NUMBER_OF_PARKED_CARS_PLAYING_BACK 5
//CONST_INT MAX_NUMBER_OF_TRAFFIC_CARS_PLAYING_BACK 8
//CONST_INT MAX_NUMBER_OF_SET_PIECE_CARS_PLAYING_BACK 5
CONST_INT STAGE_ENTRY 0
CONST_INT STAGE_EXIT -1
CONST_INT TIMECYCLE_REGION_GLOBAL 0
CONST_INT TIMECYCLE_REGION_URBAN 1
//-----------------------------------------------------------------------------------------------------------
// VARIABLES
//-----------------------------------------------------------------------------------------------------------
//-------------------- General Variables --------------------
VEHICLE_STRUCT Vehs[MVF_NUM_OF_VEH] //holds all of the vehicles
PEDS_STRUCT peds[MPF_NUM_OF_PEDS] //holds all of the peds
OBJECT_INDEX objWeapon[COUNT_OF(WEAPON_REGISTER)]
SELECTOR_PED_STRUCT sSelectorPeds
SEQUENCE_INDEX seq
RAYFIRE_INDEX rfThisRayfire
RAYFIRE_INDEX rfVaultExplosion
STREAMVOL_ID streamvol
int missionCandidateID = NO_CANDIDATE_ID
INT syncsceneID
INTERIOR_INSTANCE_INDEX intdepot
//PTFX_ID ptfxJet
//INT ievoTime
//float fthrottle
vector vdrivewaypos = << -820.468, 156.507, 68.245 >>
float fdrivewayheading = 110.255
vector vTrainCityPos = <<795.562,-477.994,28.228>>
vector vtrainGhettopos = << 197.78703, -1948.25781, 19.89035>>
vector vparkcarpos = << 1992.930, 3070.402,46.048 >>
float fparkcarheading = 74.653
vector vtornado3 = << 2006.4985, 3054.5190, 46.0491 >>
float ftornado3 = 57.8467
vector vslidecar = <<491.43, -537.51, 24.27>>
float fslidecar = -91.61
vector vprolStart = <<5294.97949, -5191.41504, 82.51868>>
decal blood[2]
//-------------------- Stage Management --------------------
STAGE_SWITCHSTATE stageswitch //current switching status
INT mission_stage //current stage
INT mission_substage //current substage
INT requestedStage //the mission stage requested by a mission_stage switch
INT iStageTimer //timer used for debug
Bool bDoSkip //trigger the skip
INT iSkipToStage //the stage to skip to
//--------------------- widget stuff ----------------------
WIDGET_GROUP_ID paradiseWidgetGroup
MissionStageMenuTextStruct zMenuNames[STAGE_NUM_LAST]
bool bplayerControl = false
bool bresetScene = true
int iTrainConfiguration = 7
float ftrainSpeed = 14.5
float fLODscale = 1
bool bHighDofOn = false
bool bDisplayTitles = false
int iTitlesTimer
bool bWideScreen = true
bool bResetShadows = false
float fwatereflection = 25.4
int iDockWorkerHeadID = 0
int iDockWorkerHeadText = 2
int iDockWorkerUpperID = 0
int idockworkerUpperText= 0
int idockworkerlowID = 0
int idockworkerlowText = 1
int iDockPropID = 0
int idockpropText = 1
vector vDebugPosition = << 197.78703, -1948.25781, 19.89035>>//<< 1993.3800, 3069.3523, 46.0483 >>
vector vDebugRotation = <<0,0,0>>
float fDebugHeading = 63.1031
float fDebugSpeed = 3
vector vCamPOS
vector vCamROT
float fCamFOV
vector vdebugcamPOS
vector vdebugCamROT
float fdebugcamFOV
int idebugSkipTime1 = 2300
int idebugSkipTime2 = 2100
int idebugskipTime3 = 2000
int idebugskiptime4 = 2000
bool bResetTOD = true
bool bPauseClock = true
bool bUseNewTOD = false
int iTOD = 12
float fTrafficDensity = 1
float fPedDensity = 1
bool bClearArea = false
//--------------------- Scene stuff -----------------------
CAMERA_INDEX cameraIndex
CAMERA_INDEX camfollow
CAM_RECORDING_DATA camRecData
bool bPlayThrough = false
int isplat = 0
INT InitialTimeOfDayHour[STAGE_NUM_LAST]
// ===========================================================================================================
// Init
// ===========================================================================================================
// -----------------------------------------------------------------------------------------------------------
// MISSION STAGE MANAGEMENT
// -----------------------------------------------------------------------------------------------------------
PROC Mission_stage_management()
SWITCH stageswitch
CASE STAGESWITCH_REQUESTED
PRINTLN("[stageManagement] mission_stage switch requested from mission_stage:", mission_stage, "to mission_stage", requestedStage)
stageswitch = STAGESWITCH_EXITING
mission_substage = STAGE_EXIT
BREAK
CASE STAGESWITCH_EXITING
PRINTLN("[StageManagement] Exiting mission_stage: ", mission_stage)
stageSwitch = STAGESWITCH_ENTERING
mission_substage = STAGE_ENTRY
mission_stage = requestedStage
BREAK
CASE STAGESWITCH_ENTERING
PRINTLN("[StageManagement] Entered mission_stage: ", mission_stage)
requestedStage = -1
stageSwitch = STAGESWITCH_IDLE
BREAK
CASE STAGESWITCH_IDLE
IF (GET_GAME_TIMER() - iStageTimer) > 1500
PRINTLN("[StageManagement] mission_stage: ", mission_stage, " mission_substage: ", mission_substage)
iStageTimer = GET_GAME_TIMER()
ENDIF
BREAK
ENDSWITCH
ENDPROC
// ===========================================================================================================
// Trailer procedures
// ===========================================================================================================
FUNC BOOL IsEntityAlive(ENTITY_INDEX mEntity)
If DOES_ENTITY_EXIST(mEntity)
if IS_ENTITY_A_VEHICLE(mEntity)
if IS_VEHICLE_DRIVEABLE(GET_VEHICLE_INDEX_FROM_ENTITY_INDEX(mEntity))
return TRUE
endif
elif IS_ENTITY_A_PED(mEntity)
if not IS_PED_INJURED(GET_PED_INDEX_FROM_ENTITY_INDEX(mEntity))
return TRUE
ENDIF
endif
ENDIF
return FALSE
ENDFUNC
PROC setPedVariation(PED_INDEX thisped, INT iSimpleVariation)
set_ped_component_variation(thisped, ped_comp_head, iSimpleVariation, 0)
set_ped_component_variation(thisped, PED_COMP_HAIR, iSimpleVariation, 0)
set_ped_component_variation(thisped, ped_comp_hand, iSimpleVariation, 0)
set_ped_component_variation(thisped, ped_comp_torso, iSimpleVariation, 0)
set_ped_component_variation(thisped, ped_comp_leg, iSimpleVariation, 0)
set_ped_component_variation(thisped, PED_COMP_DECL, iSimpleVariation, 0)
set_ped_component_variation(thisped, PED_COMP_FEET, iSimpleVariation, 0)
ENDPROC
FUNC CAMERA_INDEX CREATE_CAM_WITH_PARAMS_AND_SETUP_SCENE(STRING CameraName, VECTOR vecPos, VECTOR vecRot, FLOAT FOV = 65.0, BOOL startActivated = FALSE)
CAMERA_INDEX returnedCamera
IF (mission_stage <> enum_to_int(STAGE_0_WAIT_FOR_STAGE))
//DESTROY_ALL_CAMS()
ENDIF
if IsEntityAlive(PLAYER_PED_ID())
SET_ENTITY_COORDS(PLAYER_PED_ID(), vecPos)
SET_ENTITY_HEADING(player_ped_id(),vecRot.z)
SET_GAMEPLAY_CAM_RELATIVE_HEADING(0)
SET_GAMEPLAY_CAM_RELATIVE_PITCH(0)
IF (mission_stage = enum_to_int(STAGE_0_WAIT_FOR_STAGE))
SET_ENTITY_VISIBLE(PLAYER_PED_ID(), FALSE)
endif
endif
IF NOT DOES_CAM_EXIST(cameraIndex)
returnedCamera = CREATE_CAM_WITH_PARAMS(CameraName, vecPos, vecRot, FOV, startActivated)
ELSE
returnedCamera = cameraIndex
SET_CAM_PARAMS(cameraIndex, vecPos, vecRot, FOV)//, startActivated)
ENDIF
if bResetTOD
if BuseNewTOD
SET_CLOCK_TIME(iTOD, 0, 0)
else
SET_CLOCK_TIME(InitialTimeOfDayHour[mission_stage], 0, 0)
endif
endif
if bPauseClock
PAUSE_CLOCK(true)
endif
RETURN returnedCamera
ENDFUNC
PROC RESET_EVERYTHING()
IF IS_CUTSCENE_ACTIVE()
STOP_CUTSCENE()
REMOVE_CUTSCENE()
WHILE IS_CUTSCENE_ACTIVE()
WAIT(0)
ENDWHILE
ENDIF
//-------------------peds-----------------------
int i
for i = 0 TO Enum_to_int(MPF_NUM_OF_PEDS)-1
if DOES_ENTITY_EXIST(peds[i].id)
AND (NOT IS_PED_INJURED(peds[i].id))
if IS_PED_IN_ANY_VEHICLE(peds[i].id)
SET_PED_COORDS_NO_GANG(peds[i].id,(GET_ENTITY_COORDS(GET_VEHICLE_PED_IS_IN(peds[i].id))+<<0,-2,0>>))
endif
if peds[i].id != player_ped_id()
DELETE_PED(peds[i].id)
endif
endif
endfor
//-------------------vehs-----------------------
for i = 0 TO Enum_to_int(MVF_NUM_OF_VEH)-1
if DOES_ENTITY_EXIST(vehs[i].id)
if i = enum_to_int(veh_Ghetto_train)
or i = enum_to_int(veh_first_train)
DELETE_MISSION_TRAIN(vehs[i].id)
else
EMPTY_VEHICLE(vehs[i].id)
DELETE_VEHICLE(vehs[i].id)
endif
endif
endfor
//-------------------Resets---------------------
SET_RANDOM_TRAINS(true)
IF DOES_RAYFIRE_MAP_OBJECT_EXIST(rfVaultExplosion)
IF GET_STATE_OF_RAYFIRE_MAP_OBJECT(rfVaultExplosion) != RFMO_STATE_END
SET_STATE_OF_RAYFIRE_MAP_OBJECT(rfVaultExplosion, RFMO_STATE_ENDING)
ENDIF
ENDIF
rfThisRayfire = GET_RAYFIRE_MAP_OBJECT(<<2457.15, 4968.79, 48.677>>, 45, "DES_FarmHs")
IF DOES_RAYFIRE_MAP_OBJECT_EXIST(rfThisRayfire)
SET_STATE_OF_RAYFIRE_MAP_OBJECT(rfThisRayfire, RFMO_STATE_STARTING)
SET_BUILDING_STATE(BUILDINGNAME_IPL_FARM_HOUSE, BUILDINGSTATE_NORMAL)
SET_BUILDING_STATE(BUILDINGNAME_IPL_FARM_HOUSE_CLNUP1, BUILDINGSTATE_NORMAL)
SET_BUILDING_STATE(BUILDINGNAME_IPL_FARM_HOUSE_CLNUP2, BUILDINGSTATE_NORMAL)
SET_BUILDING_STATE(BUILDINGNAME_IPL_FARM_HOUSE_CLNUP3, BUILDINGSTATE_NORMAL)
SET_BUILDING_STATE(BUILDINGNAME_IPL_FARM_HOUSE_INTERIOR, BUILDINGSTATE_DESTROYED) // Turn on interior
SET_STATE_OF_RAYFIRE_MAP_OBJECT(rfThisRayfire, RFMO_STATE_STARTING)
endif
//Cullbox
SET_MAPDATACULLBOX_ENABLED("prologue", FALSE)
SET_MAPDATACULLBOX_ENABLED("Trailer_2_Train_Shot", false)
SET_ENTITY_VISIBLE(player_ped_id(),false)
SET_TIME_SCALE(1)
fLODscale = 1
//bools
if bResetShadows
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(0,FALSE,0,0,0,0)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(1,FALSE,0,0,0,0)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(2,FALSE,0,0,0,0)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(3,FALSE,0,0,0,0)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS_SNAP(FALSE)
endif
bplayerControl = false
bHighDofOn = false
WATER_REFLECTION_SET_HEIGHT(false,fwatereflection)
remove_decals_in_range(<<1998.2826, 3058.0435, 46.0491>>, 10000.00)
SET_VEHICLE_DENSITY_MULTIPLIER_THIS_FRAME(1)
SET_AMBIENT_VEHICLE_RANGE_MULTIPLIER_THIS_FRAME(1)
//------------------Destroys--------------------
REPEAT COUNT_OF(objWeapon) i
IF DOES_ENTITY_EXIST(objWeapon[i])
DELETE_OBJECT(objWeapon[i])
ENDIF
ENDREPEAT
UNLOAD_ALL_CLOUD_HATS()
CLEAR_TIMECYCLE_MODIFIER()
STREAMVOL_DELETE(streamvol)
DISABLE_EXTRA_DISTANTLIGHTS()
//Interior
UNPIN_INTERIOR(intDepot)
REMOVE_IPL("prologue01")
REMOVE_IPL("prologue02")
REMOVE_IPL("prologue03")
REMOVE_IPL("prologue04")
REMOVE_IPL("prologue05")
REMOVE_IPL("prologue06")
REMOVE_IPL("prologuerd")
REMOVE_IPL("Prologue01c")
REMOVE_IPL("Prologue01d")
REMOVE_IPL("Prologue01e")
REMOVE_IPL("Prologue01f")
REMOVE_IPL("Prologue01g")
REMOVE_IPL("prologue01h")
REMOVE_IPL("prologue01i")
REMOVE_IPL("prologue01j")
REMOVE_IPL("prologue01k")
REMOVE_IPL("prologue03b")
REMOVE_IPL("prologue04b")
REMOVE_IPL("prologue05b")
REMOVE_IPL("prologue06b")
REMOVE_IPL("prologuerdb")
REMOVE_IPL("prologue04_cover")
REMOVE_IPL("prologue03_grv_dug") //prologue03_grv_cov
REMOVE_IPL("TRV1_Trail_end")
SET_GAMEPLAY_CAM_ALTITUDE_FOV_SCALING_STATE(TRUE)
CLEAR_PRINTS()
CLEAR_HELP()
DESTROY_ALL_CAMS()
CLEAR_FOCUS()
ENDPROC
// ===========================================================================================================
// Termination
// ===========================================================================================================
PROC Mission_Cleanup(BOOL bTerminateScript)
IF IS_CUTSCENE_ACTIVE()
STOP_CUTSCENE()
REMOVE_CUTSCENE()
WHILE IS_CUTSCENE_ACTIVE()
WAIT(0)
ENDWHILE
ENDIF
//-------------------Destroy-----------------------
STOP_CAM_RECORDING(camRecData)
UNLOAD_ALL_CLOUD_HATS()
DELETE_WIDGET_GROUP(paradiseWidgetGroup)
STREAMVOL_DELETE(streamvol)
rfThisRayfire = GET_RAYFIRE_MAP_OBJECT(<<2457.15, 4968.79, 48.677>>, 45, "DES_FarmHs")
IF DOES_RAYFIRE_MAP_OBJECT_EXIST(rfThisRayfire)
SET_STATE_OF_RAYFIRE_MAP_OBJECT(rfThisRayfire, RFMO_STATE_ENDING)
ENDIF
//-------------------Resets-----------------------
RESET_EVERYTHING()
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(0,FALSE,0,0,0,0)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(1,FALSE,0,0,0,0)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(2,FALSE,0,0,0,0)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(3,FALSE,0,0,0,0)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS_SNAP(FALSE)
SET_TIMECYCLE_REGION_OVERRIDE(-1)
CLEAR_WEATHER_TYPE_PERSIST()
SET_TIME_SCALE(1.0)
SET_WIND_SPEED(0.0)
SET_WIND_DIRECTION(0.0)
SET_VEHICLE_DENSITY_MULTIPLIER_THIS_FRAME(1.0)
SET_RANDOM_VEHICLE_DENSITY_MULTIPLIER_THIS_FRAME(1.0)
SET_PED_DENSITY_MULTIPLIER_THIS_FRAME(1.0)
DO_SCREEN_FADE_IN(0)
if bTerminateScript
ENABLE_DISPATCH_SERVICE(DT_FIRE_DEPARTMENT, TRUE)
DISPLAY_RADAR(TRUE)
FLOAT groundZ
IF NOT IS_ENTITY_DEAD(PLAYER_PED_ID())
GET_GROUND_Z_FOR_3D_COORD(GET_ENTITY_COORDS(PLAYER_PED_ID()), groundZ)
VECTOR groundCoord = GET_ENTITY_COORDS(PLAYER_PED_ID())
groundCoord.z = groundZ
SET_ENTITY_COORDS(PLAYER_PED_ID(), groundCoord)
SET_ENTITY_VISIBLE(PLAYER_PED_ID(), TRUE)
FREEZE_ENTITY_POSITION(PLAYER_PED_ID(), FALSE)
ENDIF
SET_PLAYER_CONTROL(player_id(),true)
g_bTrailer2Active = false
g_savedGlobals.sFlow.isGameflowActive = TRUE
TERMINATE_THIS_THREAD()
endif
ENDPROC
FUNC BOOL Mission_Set_Stage(MSF_MISSION_STAGE_FLAGS newStage)
If stageswitch = STAGESWITCH_IDLE
requestedstage = ENUM_TO_INT(newStage)
stageswitch = STAGESWITCH_REQUESTED
return True
else
return false
endif
ENDFUNC
proc Load_Stage_Assets(MSF_MISSION_STAGE_FLAGS load_stage)
if bPlayThrough
RESET_EVERYTHING()
endif
switch load_stage
case STAGE_0_WAIT_FOR_STAGE
//inital opening stage
break
case STAGE_1_RUN_THROUGH_SHOTS
break
case STAGE_2_OBSERVATORY_SHOT
request_model(A_F_Y_TOURIST_01)
REQUEST_MODEL(A_F_M_BEVHILLS_02)
REQUEST_MODEL(A_M_M_BEVHILLS_02)
requesT_model(A_M_M_BUSINESS_01)
break
case STAGE_2_OBSERVATORY_SHOT_alt
request_model(A_F_Y_TOURIST_01)
REQUEST_MODEL(A_F_M_BEVHILLS_02)
REQUEST_MODEL(A_M_M_BEVHILLS_02)
requesT_model(A_M_M_BUSINESS_01)
break
case STAGE_3_FAM2_INT_P1
REQUEST_CUTSCENE("family_2_intp1_b")
REQUEST_MODEL(S_M_M_GARDENER_01)
REQUEST_ANIM_DICT("amb@world_human_gardener_plant@male@idle_a")
break
case STAGE_4_DRIVEWAY_SHOT
REQUEST_MODEL(NINEF2)
break
case STAGE_5_FAM1_INT_P1
REQUEST_CUTSCENE("family_1_intp1")
break
case STAGE_6_CITY_TRAIN_SHOT
REQUEST_MODEL(FREIGHT)
REQUEST_MODEL(FREIGHTCONT1)
REQUEST_MODEL(FREIGHTCONT2)
REQUEST_MODEL(FREIGHTGRAIN)
REQUEST_MODEL(TANKERCAR)
REQUEST_MODEL(FREIGHTCAR)
break
case STAGE_7_COUNTRY_SCAPE_SHOT
request_model(packer)
REQUEST_MODEL(TRAILERS)
break
case STAGE_8_LIQUOR_ACE_SHOT
request_model(RATLOADER)
request_model(tornado3)
request_model(A_M_M_HILLBILLY_01)
request_model(A_M_M_HILLBILLY_02)
request_model(A_M_M_Salton_01)
request_model(A_F_M_Salton_01)
request_model(S_M_Y_XMech_02)
REQUEST_ANIM_DICT("move_drunk_m")
request_anim_dict("trailer2@shoved_peds")
request_anim_dict("amb@world_human_leaning@female@wall@back@holding_elbow@idle_a")
request_anim_dict("move_m@generic_variations@walk")
break
case STAGE_9_TREV1_MCS3_P2_A
REQUEST_CUTSCENE("trv_1_mcs_3_p2")
REMOVE_IPL("TRV1_Trail_start")
REQUEST_IPL("TRV1_Trail_end")
REQUEST_MODEL(PROPTRAILER)
REQUEST_WEAPON_ASSET(WEAPONTYPE_PUMPSHOTGUN)
break
case STAGE_10_CHIN1_INT_P2
REQUEST_CUTSCENE("chinese_1_intp2")
break
case STAGE_11_TREV1_MCS3_P2_B
REQUEST_CUTSCENE("trv_1_mcs_3_p2")
REQUEST_CUTSCENE("trv_1_mcs_3_p2")
REMOVE_IPL("TRV1_Trail_start")
REQUEST_IPL("TRV1_Trail_end")
REQUEST_MODEL(PROPTRAILER)
REQUEST_WEAPON_ASSET(WEAPONTYPE_PUMPSHOTGUN)
break
case AS_BUGGY
request_model(dune)
LOAD_CLOUD_HAT("HORIZON")
break
case AS_TREV_MOL
request_model(player_two)
REQUEST_ANIM_DICT("trailer2@molotov_throw")
break
case AS_FIRE_TRAIL
break
case AS_BARN_BOOM
// request_model(player_two)
// REQUEST_ANIM_DICT("trailer2@trevor_barn_walk")
REQUEST_CUTSCENE("barnhouseexplosion")
break
case STAGE_12_CHIN1_MCS4
REQUEST_MODEL(SENTINEL)
REQUEST_MODEL(Landstalker)
REQUEST_MODEL(G_M_Y_PoloGoon_01)
REQUEST_CUTSCENE("chi_1_mcs_4")
break
case STAGE_13_DOCKS_BRIDGE_SHOT
break
case STAGE_14_GHETTO_TRAIN_SHOT
REQUEST_MODEL(FREIGHT)
REQUEST_MODEL(FREIGHTCONT1)
REQUEST_MODEL(FREIGHTCONT2)
REQUEST_MODEL(FREIGHTGRAIN)
REQUEST_MODEL(TANKERCAR)
REQUEST_MODEL(FREIGHTCAR)
REQUEST_MODEL(DOMINATOR)
REQUEST_MODEL(FUTO)
REQUEST_MODEL(GRESLEY)
REQUEST_MODEL(CAVALCADE)
REQUEST_MODEL(SERRANO)
REQUEST_MODEL(ORACLE)
request_model(bus)
break
case STAGE_15_ARM1_INT_P3
REQUEST_CUTSCENE("armenian_1_intp3")
REQUEST_ANIM_DICT("move_m@jogger")
REQUEST_ANIM_DICT("move_f@jogger")
REQUEST_MODEL(A_M_Y_Runner_01)
REQUEST_MODEL(A_F_Y_Runner_01)
request_model(A_F_Y_Beach_01)
request_model(A_M_Y_Beach_01)
request_model(A_M_Y_Beach_02)
request_model(A_M_Y_Beach_03)
break
case STAGE_16_FRA2_INT_P2
REQUEST_CUTSCENE("fra_2_int_p2")
break
// case AS_CAR_TRANS_TRUCK
// break
case STAGE_17_ARM1_INT_P4
REQUEST_CUTSCENE("armenian_1_intp4")
break
case STAGE_17_ARM1_INT_P4_ALT
REQUEST_CUTSCENE("armenian_1_intp4")
break
case STAGE_18_ARM1_INT_P1
REQUEST_CUTSCENE("armenian_1_intp1")
break
case STAGE_19_FAM5_MCS5
REQUEST_CUTSCENE("family_5_mcs_5")
break
case STAGE_20_TREV1_INT_P4
request_cutscene("trevor_1_intp4")
break
case STAGE_21_FBI2_MCS1_P1
request_cutscene("FBI_2_MCS_1_p1")
break
case AS_VAULT_EXP
REQUEST_IPL("prologue01")
REQUEST_IPL("prologue02")
REQUEST_IPL("prologue03")
REQUEST_IPL("prologue04")
REQUEST_IPL("prologue05")
REQUEST_IPL("prologue06")
REQUEST_IPL("prologuerd")
REQUEST_IPL("Prologue01c")
REQUEST_IPL("Prologue01d")
REQUEST_IPL("Prologue01e")
REQUEST_IPL("Prologue01f")
REQUEST_IPL("Prologue01g")
REQUEST_IPL("prologue01h")
REQUEST_IPL("prologue01i")
REQUEST_IPL("prologue01j")
REQUEST_IPL("prologue01k")
REQUEST_IPL("prologue03b")
REQUEST_IPL("prologue04b")
REQUEST_IPL("prologue05b")
REQUEST_IPL("prologue06b")
REQUEST_IPL("prologuerdb")
REQUEST_IPL("prologue04_cover")
REQUEST_IPL("prologue03_grv_dug") //prologue03_grv_cov
REQUEST_CUTSCENE("vault_explosion")
break
case AS_PRO_BLAST
REQUEST_IPL("prologue01")
REQUEST_IPL("prologue02")
REQUEST_IPL("prologue03")
REQUEST_IPL("prologue04")
REQUEST_IPL("prologue05")
REQUEST_IPL("prologue06")
REQUEST_IPL("prologuerd")
REQUEST_IPL("Prologue01c")
REQUEST_IPL("Prologue01d")
REQUEST_IPL("Prologue01e")
REQUEST_IPL("Prologue01f")
REQUEST_IPL("Prologue01g")
REQUEST_IPL("prologue01h")
REQUEST_IPL("prologue01i")
REQUEST_IPL("prologue01j")
REQUEST_IPL("prologue01k")
REQUEST_IPL("prologue03b")
REQUEST_IPL("prologue04b")
REQUEST_IPL("prologue05b")
REQUEST_IPL("prologue06b")
REQUEST_IPL("prologuerdb")
REQUEST_IPL("prologue04_cover")
REQUEST_IPL("prologue03_grv_dug") //prologue03_grv_cov
REQUEST_CUTSCENE("doorexplosion")
REQUEST_WEAPON_ASSET(WEAPONTYPE_CARBINERIFLE)
break
case AS_CAR_SLIDE
REQUEST_MODEL(IG_BALLASOG)
request_model(EMPEROR)
request_model(S_M_Y_AIRWORKER)
REQUEST_ANIM_DICT("trailer2@bonnet_slide")
break
case AS_CHOP_ON_CAR
request_model(GET_CHOP_MODEL())
request_model(EMPEROR)
request_model(S_M_Y_AIRWORKER)
REQUEST_MODEL(bison2)
REQUEST_ANIM_DICT("MISSFRA0_CHOP")
break
case AS_FRANK_BIKE_EXP
request_model(police)
request_model(police2)
request_model(police3)
request_model(POLICET)
request_model(sentinel2)
request_model(stratum)
request_model(emperor2)
request_model(akuma)
request_vehicle_recording(6,"Trailer2REC")
break
case AS_JET_FIGHT
REQUEST_VEHICLE_RECORDING(1,"Trailer2REC")
REQUEST_VEHICLE_RECORDING(2,"Trailer2REC")
request_vehicle_recording(3,"Trailer2REC")
request_vehicle_recording(4,"Trailer2REC")
request_vehicle_recording(5,"Trailer2REC")
REQUEST_MODEL(polmav)
request_model(S_M_Y_Pilot_01)
request_model(Lazer)
REQUEST_MODEL(ADDER)
break
case STAGE_22_FIN_EXT_P2
request_cutscene("FIN_EXT_P2")
request_model(BUZZARD)
break
case STAGE_23_FINAL_SHOT
request_cutscene("Fbi_4_int_p3")
break
case STAGE_23_FINAL_SHOT_ALT
request_cutscene("Fbi_4_int_p3")
break
endswitch
endproc
proc set_up_stage(MSF_MISSION_STAGE_FLAGS setup_stage)
switch setup_stage
case STAGE_0_WAIT_FOR_STAGE
if IS_SCREEN_FADED_OUT()
DO_SCREEN_FADE_IN(0)
endif
//do nothing
break
case STAGE_1_RUN_THROUGH_SHOTS
set_up_stage(STAGE_2_OBSERVATORY_SHOT)
break
case STAGE_2_OBSERVATORY_SHOT
NEW_LOAD_SCENE_START(<< -484.5379, 1121.4351, 346.8401 >>, << -18.7962, -0.0000, -160.6597 >>,300)
SET_CLOCK_TIME(InitialTimeOfDayHour[ENUM_TO_INT(setup_stage)], 0, 0)
REQUEST_COLLISION_AT_COORD(<< -484.5379, 1121.4351, 346.8401 >>)
if IsEntityAlive(player_ped_id())
SET_ENTITY_COORDS(PLAYER_PED_ID(), << -484.5379, 1121.4351, 346.8401 >>)
endif
FREEZE_ENTITY_POSITION(PLAYER_PED_ID(), TRUE)
SET_ENTITY_VISIBLE(PLAYER_PED_ID(), FALSE)
SET_WEATHER_TYPE_NOW_PERSIST("smog")
while not HAS_MODEL_LOADED(A_F_Y_TOURIST_01)
or not has_model_loaded(A_F_M_BEVHILLS_02)
or not has_model_loaded(A_M_M_BEVHILLS_02)
or not has_model_loaded(A_M_M_BUSINESS_01)
wait(0)
endwhile
break
case STAGE_2_OBSERVATORY_SHOT_alt
NEW_LOAD_SCENE_START(<< -484.5379, 1121.4351, 346.8401 >>, << -18.7962, -0.0000, -160.6597 >>,300)
SET_CLOCK_TIME(InitialTimeOfDayHour[ENUM_TO_INT(setup_stage)], 0, 0)
REQUEST_COLLISION_AT_COORD(<< -484.5379, 1121.4351, 346.8401 >>)
if IsEntityAlive(player_ped_id())
SET_ENTITY_COORDS(PLAYER_PED_ID(), << -484.5379, 1121.4351, 346.8401 >>)
endif
FREEZE_ENTITY_POSITION(PLAYER_PED_ID(), TRUE)
SET_ENTITY_VISIBLE(PLAYER_PED_ID(), FALSE)
SET_WEATHER_TYPE_NOW_PERSIST("SNOWLIGHT")
while not HAS_MODEL_LOADED(A_F_Y_TOURIST_01)
or not has_model_loaded(A_F_M_BEVHILLS_02)
or not has_model_loaded(A_M_M_BEVHILLS_02)
or not has_model_loaded(A_M_M_BUSINESS_01)
wait(0)
endwhile
break
case STAGE_3_FAM2_INT_P1
if IsEntityAlive(player_ped_id())
SET_ENTITY_COORDS(PLAYER_PED_ID(), << -819.1180, 157.1071, 69.5948 >>)
endif
SET_WEATHER_TYPE_NOW_PERSIST("clouds")
NEW_LOAD_SCENE_START(<< -761.6831, 127.7389, 82.0954 >>, << -10.5571, -0.0000, 32.2714 >>,100)
while not IS_NEW_LOAD_SCENE_LOADED()
wait(0)
endwhile
while not HAS_CUTSCENE_LOADED()
or not HAS_MODEL_LOADED(S_M_M_GARDENER_01)
or not HAS_ANIM_DICT_LOADED("amb@world_human_gardener_plant@male@idle_a")
wait(0)
endwhile
break
case STAGE_4_DRIVEWAY_SHOT
if IsEntityAlive(player_ped_id())
SET_ENTITY_COORDS(PLAYER_PED_ID(), << -819.1180, 157.1071, 69.5948 >>)
endif
FREEZE_ENTITY_POSITION(PLAYER_PED_ID(), TRUE)
while not HAS_MODEL_LOADED(ninef2)
wait(0)
endwhile
LOAD_SCENE(<< -819.1180, 157.1071, 69.5948 >>)
CLEAR_AREA(<< -819.1180, 157.1071, 69.5948 >>,20,true)
SET_WEATHER_TYPE_NOW_PERSIST("clouds")
break
case STAGE_5_FAM1_INT_P1
if IsEntityAlive(player_ped_id())
SET_ENTITY_COORDS(PLAYER_PED_ID(), << -797.4166, 185.6019, 73.3086 >>)
endif
LOAD_SCENE(<< -797.4166, 185.6019, 73.3086 >>)
SET_WEATHER_TYPE_NOW_PERSIST("SNOWLIGHT")
intdepot = GET_INTERIOR_AT_COORDS_WITH_TYPE(<<-797.4166, 185.6019, 73.3086>>,"v_michael")
PIN_INTERIOR_IN_MEMORY(intdepot)
while not IS_INTERIOR_READY(intdepot)
wait(0)
endwhile
while not HAS_CUTSCENE_LOADED()
wait(0)
endwhile
while not CREATE_PLAYER_PED_ON_FOOT(peds[mpf_mike].id,CHAR_MICHAEL,<<-797.2319, 186.4233, 72.9825>>)
wait(0)
endwhile
SET_PED_COMPONENT_VARIATION(peds[mpf_mike].id,PED_COMP_TORSO,26,0)
SET_PED_COMPONENT_VARIATION(peds[mpf_mike].id,PED_COMP_LEG,16,0)
SET_PED_COMPONENT_VARIATION(peds[mpf_mike].id,PED_COMP_feet,2,0)
break
case STAGE_6_CITY_TRAIN_SHOT
WHILE NOT HAS_MODEL_LOADED(FREIGHT)
OR NOT HAS_MODEL_LOADED(FREIGHTCONT1)
OR NOT HAS_MODEL_LOADED(FREIGHTCONT2)
OR NOT HAS_MODEL_LOADED(FREIGHTGRAIN)
OR NOT HAS_MODEL_LOADED(TANKERCAR)
OR NOT HAS_MODEL_LOADED(FREIGHTCAR)
WAIT(0)
ENDWHILE
LOAD_CLOUD_HAT("horizon")
SET_RANDOM_TRAINS(FALSE)
SET_RANDOM_VEHICLE_DENSITY_MULTIPLIER_THIS_FRAME(2)
if IsEntityAlive(player_ped_id())
SET_ENTITY_COORDS(PLAYER_PED_ID(), <<798.96228, -479.49374, 28.22828>>)
FREEZE_ENTITY_POSITION(PLAYER_PED_ID(), TRUE)
endif
fLODscale = 1.3
fTrafficDensity = 3
load_scene(<<798.96228, -479.49374, 28.22828>>)
break
case STAGE_7_COUNTRY_SCAPE_SHOT
WHILE NOT HAS_MODEL_LOADED(PACKER)
or not has_model_loaded(TRAILERS)
wait(0)
endwhile
SET_WEATHER_TYPE_NOW_PERSIST("EXTRASUNNY")
load_cloud_hat("cirrus")
if IsEntityAlive(player_ped_id())
SET_ENTITY_COORDS(PLAYER_PED_ID(), <<2535.44971, 3032.43750, 41.90246>>)
FREEZE_ENTITY_POSITION(PLAYER_PED_ID(), TRUE)
endif
load_scene(<<2535.44971, 3032.43750, 41.90246>>)
CLEAR_AREA(<<2535.44971, 3032.43750, 41.90246>>,1000,true)
break
case STAGE_8_LIQUOR_ACE_SHOT
WHILE NOT HAS_MODEL_LOADED(RATLOADER)
OR NOT HAS_MODEL_LOADED(tornado3)
OR NOT HAS_MODEL_LOADED(A_M_M_HILLBILLY_01)
OR NOT HAS_MODEL_LOADED(A_M_M_HILLBILLY_02)
OR NOT HAS_MODEL_LOADED(A_M_M_Salton_01)
OR NOT HAS_MODEL_LOADED(A_F_M_Salton_01)
or not HAS_MODEL_LOADED(S_M_Y_XMech_02)
or not HAS_ANIM_DICT_LOADED("move_drunk_m")
or not HAS_ANIM_DICT_LOADED("trailer2@shoved_peds")
or not HAS_ANIM_DICT_LOADED("amb@world_human_leaning@female@wall@back@holding_elbow@idle_a")
or not HAS_ANIM_DICT_LOADED("move_m@generic_variations@walk")
WAIT(0)
ENDWHILE
if not DOES_ENTITY_EXIST(vehs[veh_parked_car].id)
vehs[veh_parked_car].id = CREATE_VEHICLE(RATLOADER,vparkcarpos,fparkcarheading)
SET_VEHICLE_COLOUR_COMBINATION(vehs[veh_parked_car].id,0)
endif
if IsEntityAlive(player_ped_id())
SET_ENTITY_COORDS(PLAYER_PED_ID(), <<1989.4751, 3074.6912, 47.3940 >>)
endif
load_scene(<<1989.4751, 3074.6912, 47.3940 >>)
break
case STAGE_9_TREV1_MCS3_P2_A
if IsEntityAlive(player_ped_id())
SET_ENTITY_COORDS(PLAYER_PED_ID(), << -31.2,3040.7,40>>)
FREEZE_ENTITY_POSITION(PLAYER_PED_ID(), TRUE)
endif
SET_WEATHER_TYPE_NOW_PERSIST("extrasunny")
while not HAS_CUTSCENE_LOADED()
or not HAS_MODEL_LOADED(PROPTRAILER)
wait(0)
endwhile
objWeapon[WEAPON_TREVOR] = CREATE_WEAPON_OBJECT(WEAPONTYPE_PUMPSHOTGUN,100,<< -31.2,3040.7,40 >>,true)
LOAD_SCENE(<< -31.2,3040.7,40 >>)
break
case STAGE_10_CHIN1_INT_P2
if IsEntityAlive(player_ped_id())
SET_ENTITY_COORDS(PLAYER_PED_ID(), <<1987.9679, 3053.7041, 46.1257 >>)
endif
blood[0].decal_texture_id = DECAL_RSID_BLOOD_DIRECTIONAL
blood[0].pos = <<1984.59, 3050.58, 47.533>> //47.43
blood[0].direction = <<0.0, 0.0, -1.0>>
blood[0].side = normalise_vector(<<0.0, 1.0, 0.0>>) //heading
blood[0].width = 0.2
blood[0].height = 0.2
blood[0].fAlpha = 1.0
blood[0].life = -1
blood[0].wash_amount = 0.3
blood[0].decal_removed = false
blood[1].decal_texture_id = DECAL_RSID_BLOOD_SPLATTER
blood[1].pos = <<1984.64, 3050.62, 47.423>> //47.32
blood[1].direction = <<0.0, -1.0, 0.0>>//<<0.0, -1.0, 0.0>>
blood[1].side = normalise_vector(<<1.0, 0.0, 0.0>>) //heading //<<1.0, 1.0, 0.0>>
blood[1].width = 0.2
blood[1].height = 0.2
blood[1].fAlpha = 1.0
blood[1].life = -1
blood[1].wash_amount = 0.3
blood[1].decal_removed = false
LOAD_SCENE(<< 1987.9679, 3053.7041, 46.1257 >>)
while not HAS_CUTSCENE_LOADED()
wait(0)
endwhile
break
case STAGE_11_TREV1_MCS3_P2_B
LOAD_CLOUD_HAT("CIRROCUMULUS")
SET_WEATHER_TYPE_NOW_PERSIST("EXTRASUNNY")
if IsEntityAlive(player_ped_id())
SET_ENTITY_COORDS(PLAYER_PED_ID(), <<-31.2,3040.7,40 >>)
endif
objWeapon[WEAPON_TREVOR] = CREATE_WEAPON_OBJECT(WEAPONTYPE_PUMPSHOTGUN,100,<< -31.2,3040.7,40 >>,true)
LOAD_SCENE(<< -31.2,3040.7,40 >>)
while not HAS_CUTSCENE_LOADED()
wait(0)
endwhile
break
case AS_BUGGY
WHILE NOT HAS_MODEL_LOADED(dune)
wait(0)
endwhile
SET_WEATHER_TYPE_NOW_PERSIST("FOGGY")
if IsEntityAlive(player_ped_id())
SET_ENTITY_COORDS(PLAYER_PED_ID(), <<2330.9, 3127.2, 48.8 >>)
endif
load_scene(<<2330.9, 3127.2, 48.8>>)
break
case AS_TREV_MOL
SET_WEATHER_TYPE_NOW_PERSIST("overcast")
LOAD_CLOUD_HAT("RAIN")
WHILE not has_model_loaded(player_two)
or not HAS_ANIM_DICT_LOADED("trailer2@molotov_throw")
wait(0)
endwhile
if IsEntityAlive(player_ped_id())
SET_ENTITY_COORDS(PLAYER_PED_ID(), <<2461.0942, 4952.7583, 45.2938>>)
endif
load_scene(<<2461.0942, 4952.7583, 45.2938>>)
break
case AS_FIRE_TRAIL
if IsEntityAlive(player_ped_id())
SET_ENTITY_COORDS(PLAYER_PED_ID(), <<2442.16333, 4969.87842, 45.81060>>)
FREEZE_ENTITY_POSITION(PLAYER_PED_ID(),true)
endif
load_scene(<<2442.16333, 4969.87842, 45.81060>>)
break
case AS_BARN_BOOM
SET_WEATHER_TYPE_NOW_PERSIST("overcast")
LOAD_CLOUD_HAT("RAIN")
if IsEntityAlive(player_ped_id())
SET_ENTITY_COORDS(PLAYER_PED_ID(), <<2461.0942, 4952.7583, 45.2938>>)
endif
load_scene(<<2461.0942, 4952.7583, 45.2938>>)
break
case STAGE_12_CHIN1_MCS4
if IsEntityAlive(player_ped_id())
SET_ENTITY_COORDS(PLAYER_PED_ID(), <<1387.8705, 3594.2642, 33.8831>>)
endif
while not HAS_CUTSCENE_LOADED()
or not HAS_MODEL_LOADED(SENTINEL)
or not HAS_MODEL_LOADED(G_M_Y_PoloGoon_01)
or not HAS_MODEL_LOADED(Landstalker)
wait(0)
endwhile
LOAD_SCENE(<< 1387.8705, 3594.2642, 33.8831 >>)
SET_WEATHER_TYPE_NOW_PERSIST("EXTRASUNNY")
break
case STAGE_13_DOCKS_BRIDGE_SHOT
SET_WEATHER_TYPE_NOW_PERSIST("CLEAR")
if IsEntityAlive(player_ped_id())
SET_ENTITY_COORDS(PLAYER_PED_ID(), <<844.4641, -2696.1641, 64.8>>)
endif
load_scene(<<844.4641, -2696.1641, 64.8>>)
break
case STAGE_13_DOCKS_BRIDGE_SHOT_ALT
SET_WEATHER_TYPE_NOW_PERSIST("CLEAR")
if IsEntityAlive(player_ped_id())
SET_ENTITY_COORDS(PLAYER_PED_ID(), <<844.4641, -2696.1641, 64.8>>)
endif
load_scene(<<844.4641, -2696.1641, 64.8>>)
break
case STAGE_14_GHETTO_TRAIN_SHOT
WHILE NOT HAS_MODEL_LOADED(FREIGHT)
OR NOT HAS_MODEL_LOADED(FREIGHTCONT1)
OR NOT HAS_MODEL_LOADED(FREIGHTCONT2)
OR NOT HAS_MODEL_LOADED(FREIGHTGRAIN)
OR NOT HAS_MODEL_LOADED(TANKERCAR)
OR NOT HAS_MODEL_LOADED(FREIGHTCAR)
OR NOT HAS_MODEL_LOADED(DOMINATOR)
OR NOT HAS_MODEL_LOADED(FUTO)
OR NOT HAS_MODEL_LOADED(GRESLEY)
OR NOT HAS_MODEL_LOADED(CAVALCADE)
OR NOT HAS_MODEL_LOADED(SERRANO)
OR NOT HAS_MODEL_LOADED(ORACLE)
or not has_model_loaded(bus)
WAIT(0)
ENDWHILE
SET_MAPDATACULLBOX_ENABLED("Trailer_2_Train_Shot", TRUE)
LOAD_CLOUD_HAT("HORIZON")
SET_WEATHER_TYPE_NOW_PERSIST("SNOWLIGHT")
SET_RANDOM_TRAINS(FALSE)
SET_RANDOM_VEHICLE_DENSITY_MULTIPLIER_THIS_FRAME(2)
if IsEntityAlive(player_ped_id())
SET_ENTITY_COORDS(PLAYER_PED_ID(), <<263.4,-1907.7,31.7>>)
endif
NEW_LOAD_SCENE_START(<< 263.4090, -1907.6572, 31.7329 >>, << -6.2916, 0.0000, 111.8651 >>,250)
while not IS_NEW_LOAD_SCENE_LOADED()
wait(0)
endwhile
break
case STAGE_15_ARM1_INT_P3
SET_WEATHER_TYPE_NOW_PERSIST("clear")
if IsEntityAlive(player_ped_id())
SET_ENTITY_COORDS(PLAYER_PED_ID(), <<263.4,-1907.7,31.7>>)
endif
LOAD_SCENE(<< -1882.8746, -621.5580, 11.2904 >>)
while not HAS_CUTSCENE_LOADED()
or not HAS_MODEL_LOADED(A_M_Y_Runner_01)
or not HAS_MODEL_LOADED(A_F_Y_Runner_01)
or not has_model_loaded(A_F_Y_Beach_01)
or not has_model_loaded(A_M_Y_Beach_01)
or not has_model_loaded(A_M_Y_Beach_02)
or not has_model_loaded(A_M_Y_Beach_03)
or not HAS_ANIM_DICT_LOADED("move_m@jogger")
or not HAS_ANIM_DICT_LOADED("move_f@jogger")
wait(0)
endwhile
break
case STAGE_16_FRA2_INT_P2
if IsEntityAlive(player_ped_id())
SET_ENTITY_COORDS(PLAYER_PED_ID(), <<-1882.8746, -621.5580, 11.2904>>)
endif
LOAD_SCENE(<< -1882.8746, -621.5580, 11.2904 >>)
while not HAS_CUTSCENE_LOADED()
wait(0)
endwhile
break
case STAGE_17_ARM1_INT_P4
SET_WEATHER_TYPE_NOW_PERSIST("Clear")
if IsEntityAlive(player_ped_id())
SET_ENTITY_COORDS(PLAYER_PED_ID(), <<-1882.8746, -621.5580, 11.2904>>)
endif
LOAD_SCENE(<< -1882.8746, -621.5580, 11.2904 >>)
while not HAS_CUTSCENE_LOADED()
wait(0)
endwhile
break
case STAGE_17_ARM1_INT_P4_ALT
SET_WEATHER_TYPE_NOW_PERSIST("Clear")
if IsEntityAlive(player_ped_id())
SET_ENTITY_COORDS(PLAYER_PED_ID(), <<-1882.8746, -621.5580, 11.2904>>)
endif
LOAD_SCENE(<< -1882.8746, -621.5580, 11.2904 >>)
while not HAS_CUTSCENE_LOADED()
wait(0)
endwhile
break
case STAGE_18_ARM1_INT_P1
if IsEntityAlive(player_ped_id())
SET_ENTITY_COORDS(PLAYER_PED_ID(), <<-1908.9,-573.5,18>>)
endif
LOAD_SCENE(<< -1908.9,-573.5,18>>)
while not HAS_CUTSCENE_LOADED()
wait(0)
endwhile
break
case STAGE_19_FAM5_MCS5
fLODscale = 1.5
SET_WEATHER_TYPE_NOW_PERSIST("SMOG")
if IsEntityAlive(player_ped_id())
SET_ENTITY_COORDS(PLAYER_PED_ID(), <<-1175.2771, -889.9739, 14.0581>>)
endif
LOAD_SCENE(<< -1175.2771, -889.9739, 14.0581>>)
while not HAS_CUTSCENE_LOADED()
wait(0)
endwhile
break
case STAGE_20_TREV1_INT_P4
SET_WEATHER_TYPE_NOW_PERSIST("EXTRASUNNY")
if IsEntityAlive(player_ped_id())
SET_ENTITY_COORDS(PLAYER_PED_ID(), <<2019.6141, 3827.6531, 32.1370>>)
endif
LOAD_SCENE(<<2019.6141, 3827.6531, 32.1370>>)
while not HAS_CUTSCENE_LOADED()
wait(0)
endwhile
break
case STAGE_21_FBI2_MCS1_P1
SET_WEATHER_TYPE_NOW_PERSIST("SMOG")
if IsEntityAlive(player_ped_id())
SET_ENTITY_COORDS(PLAYER_PED_ID(), <<1352.650,-2056.3,51.05 >>)
endif
streamvol = STREAMVOL_CREATE_FRUSTUM(<< 1369.5962, -2077.9436, 52.6681 >>, << -4.0552, -0.0002, -28.7179 >>,250,FLAG_MAPDATA)
while not STREAMVOL_HAS_LOADED(streamvol)
wait(0)
endwhile
while not HAS_CUTSCENE_LOADED()
wait(0)
endwhile
break
case AS_VAULT_EXP
SET_GAMEPLAY_CAM_ALTITUDE_FOV_SCALING_STATE(FALSE)
//Interior
intDepot = GET_INTERIOR_AT_COORDS_WITH_TYPE(vprolStart, "V_CashDepot")
PIN_INTERIOR_IN_MEMORY(intDepot)
WHILE NOT IS_INTERIOR_READY(intDepot)
WAIT(0)
ENDWHILE
//Cullbox
SET_MAPDATACULLBOX_ENABLED("prologue", TRUE)
if IsEntityAlive(player_ped_id())
SET_ENTITY_COORDS(player_ped_id(),vprolStart)
endif
load_scene(vprolStart)
while not HAS_CUTSCENE_LOADED()
wait(0)
endwhile
break
case AS_PRO_BLAST
SET_GAMEPLAY_CAM_ALTITUDE_FOV_SCALING_STATE(FALSE)
//Interior
intDepot = GET_INTERIOR_AT_COORDS_WITH_TYPE(vprolStart, "V_CashDepot")
PIN_INTERIOR_IN_MEMORY(intDepot)
WHILE NOT IS_INTERIOR_READY(intDepot)
WAIT(0)
ENDWHILE
//Cullbox
SET_MAPDATACULLBOX_ENABLED("prologue", TRUE)
if IsEntityAlive(player_ped_id())
SET_ENTITY_COORDS(player_ped_id(),vprolStart)
endif
load_scene(vprolStart)
while not HAS_CUTSCENE_LOADED()
wait(0)
endwhile
while not CREATE_PLAYER_PED_ON_FOOT(peds[mpf_mike].id,CHAR_MICHAEL,<<5312.26074, -5182.11768, 82.51863>>)
wait(0)
endwhile
while not HAS_WEAPON_ASSET_LOADED(WEAPONTYPE_CARBINERIFLE)
wait(0)
endwhile
SET_PED_COMPONENT_VARIATION(peds[mpf_mike].id,PED_COMP_TORSO,15,0)
SET_PED_COMPONENT_VARIATION(peds[mpf_mike].id,PED_COMP_LEG,8,0)
SET_PED_COMPONENT_VARIATION(peds[mpf_mike].id,PED_COMP_feet,1,0)
SET_PED_COMPONENT_VARIATION(peds[mpf_mike].id,PED_COMP_SPECIAL2,1,0)
objWeapon[WEAPON_MICHAEL] = CREATE_WEAPON_OBJECT_FROM_PED_WEAPON_WITH_COMPONENTS(peds[mpf_mike].id, WEAPONTYPE_CARBINERIFLE)
while not CREATE_PLAYER_PED_ON_FOOT(peds[mpf_trev].id,CHAR_TREVOR,<<5312.26074, -5182.11768, 82.51863>>)
wait(0)
endwhile
SET_PED_COMPONENT_VARIATION(peds[mpf_trev].id,PED_COMP_TORSO,9,0)
SET_PED_COMPONENT_VARIATION(peds[mpf_trev].id,PED_COMP_LEG,9,0)
SET_PED_COMPONENT_VARIATION(peds[mpf_trev].id,PED_COMP_feet,12,0)
SET_PED_COMPONENT_VARIATION(peds[mpf_trev].id,PED_COMP_HAND,4,0)
SET_PED_COMPONENT_VARIATION(peds[mpf_trev].id,PED_COMP_HAIR,4,0)
SET_PED_COMPONENT_VARIATION(peds[mpf_trev].id,PED_COMP_SPECIAL,6,0)
SET_PED_COMPONENT_VARIATION(peds[mpf_trev].id,PED_COMP_SPECIAL2,1,0)
objWeapon[WEAPON_TREVOR] = CREATE_WEAPON_OBJECT_FROM_PED_WEAPON_WITH_COMPONENTS(peds[mpf_trev].id, WEAPONTYPE_CARBINERIFLE)
break
case AS_CAR_SLIDE
while not HAS_MODEL_LOADED(IG_BALLASOG)
or not has_model_loaded(EMPEROR)
or not has_model_loaded(S_M_Y_AIRWORKER)
or not HAS_ANIM_DICT_LOADED("trailer2@bonnet_slide")
wait(0)
endwhile
SET_WEATHER_TYPE_NOW_PERSIST("CLEAR")
if IsEntityAlive(player_ped_id())
SET_ENTITY_COORDS(PLAYER_PED_ID(), <<492.1,-529.1,24.7>>)
endif
load_scene(<<492.1,-529.1,24.7>>)
break
case AS_CHOP_ON_CAR
while not HAS_MODEL_LOADED(GET_CHOP_MODEL())
or not has_model_loaded(EMPEROR)
or not has_model_loaded(S_M_Y_AIRWORKER)
or not has_model_loaded(BISON2)
or not HAS_ANIM_DICT_LOADED("MISSFRA0_CHOP")
wait(0)
endwhile
SET_WEATHER_TYPE_NOW_PERSIST("EXTRASUNNY")
if IsEntityAlive(player_ped_id())
SET_ENTITY_COORDS(PLAYER_PED_ID(), <<492.1,-529.1,24.7>>)
endif
load_scene(<<492.1,-529.1,24.7>>)
break
case AS_FRANK_BIKE_EXP
while not HAS_MODEL_LOADED(Police3)
or not HAS_MODEL_LOADED(Police2)
or not HAS_MODEL_LOADED(Police)
or not HAS_MODEL_LOADED(Policet)
or not HAS_MODEL_LOADED(sentinel2)
or not HAS_MODEL_LOADED(stratum)
or not HAS_MODEL_LOADED(emperor2)
or not HAS_MODEL_LOADED(akuma)
or not has_vehicle_recording_been_loaded(6,"Trailer2REC")
wait(0)
endwhile
streamvol = STREAMVOL_CREATE_FRUSTUM(<< 685.5129, 1242.1111, 359.1691 >>, << -10.9803, 3.5355, 178.3254 >>,200,FLAG_MAPDATA)
SET_WEATHER_TYPE_NOW_PERSIST("EXTRASUNNY")
if IsEntityAlive(player_ped_id())
SET_ENTITY_COORDS(PLAYER_PED_ID(), <<-2473.8787, -221.0034, 16.5239>>)
endif
load_scene(<<-2473.8787, -221.0034, 16.5239>>)
break
case AS_JET_FIGHT
while not HAS_VEHICLE_RECORDING_BEEN_LOADED(1,"Trailer2REC")
or not HAS_VEHICLE_RECORDING_BEEN_LOADED(2,"Trailer2REC")
or not has_vehicle_recording_been_loaded(3,"Trailer2REC")
or not has_vehicle_recording_been_loaded(4,"Trailer2REC")
or not has_vehicle_recording_been_loaded(5,"Trailer2REC")
or not HAS_MODEL_LOADED(polmav)
or not has_model_loaded(S_M_Y_Pilot_01)
or not has_model_loaded(Lazer)
or not HAS_MODEL_LOADED(ADDER)
wait(0)
endwhile
fLODscale = 1.6
SET_WEATHER_TYPE_NOW_PERSIST("CLEAR")
break
case STAGE_22_FIN_EXT_P2
while not HAS_MODEL_LOADED(BUZZARD)
wait(0)
endwhile
SET_WEATHER_TYPE_NOW_PERSIST("SMOG")
if IsEntityAlive(player_ped_id())
SET_ENTITY_COORDS(PLAYER_PED_ID(), <<1352.650,-2056.3,51.05>>)
endif
LOAD_SCENE(<<1352.650,-2056.3,51.05>>)
while not HAS_CUTSCENE_LOADED()
wait(0)
endwhile
break
case STAGE_23_FINAL_SHOT
while not HAS_CUTSCENE_LOADED()
wait(0)
endwhile
break
case STAGE_23_FINAL_SHOT_ALT
while not HAS_CUTSCENE_LOADED()
wait(0)
endwhile
break
endswitch
endproc
PROC MISSION_SETUP()
//zMenuNames[ENUM_TO_INT(STAGE_0_WAIT_FOR_STAGE)].bSelectable
zMenuNames[ENUM_TO_INT(STAGE_0_WAIT_FOR_STAGE)].sTxtLabel = "Select Shot:"
zMenuNames[ENUM_TO_INT(STAGE_0_WAIT_FOR_STAGE)].bSelectable = FALSE
zMenuNames[ENUM_TO_INT(STAGE_1_RUN_THROUGH_SHOTS)].sTxtLabel = "RUN THROUGH ALL SHOTS"
zMenuNames[ENUM_TO_INT(STAGE_2_OBSERVATORY_SHOT)].sTxtLabel = "Observatory opening scene"
zMenuNames[ENUM_TO_INT(STAGE_2_OBSERVATORY_SHOT_alt)].sTxtLabel = "Observatory opening scene ALT"
zMenuNames[ENUM_TO_INT(STAGE_3_FAM2_INT_P1)].sTxtLabel = "Tennis shot"
zMenuNames[ENUM_TO_INT(STAGE_4_DRIVEWAY_SHOT)].sTxtLabel = "Driveway"
zMenuNames[ENUM_TO_INT(STAGE_5_FAM1_INT_P1)].sTxtLabel = "Mike's Family/ sunbathing scene"
zMenuNames[ENUM_TO_INT(STAGE_6_CITY_TRAIN_SHOT)].sTxtLabel = "Train and Highway shot of city"
zMenuNames[ENUM_TO_INT(STAGE_7_COUNTRY_SCAPE_SHOT)].sTxtLabel = "Country road/radars shot"
zMenuNames[ENUM_TO_INT(STAGE_8_LIQUOR_ACE_SHOT)].sTxtLabel = "Liquor ace shop shot"
zMenuNames[ENUM_TO_INT(STAGE_9_TREV1_MCS3_P2_A)].sTxtLabel = "Trev shouting at man in water"
zMenuNames[ENUM_TO_INT(STAGE_10_CHIN1_INT_P2)].sTxtLabel = "bar fight"
zMenuNames[ENUM_TO_INT(STAGE_11_TREV1_MCS3_P2_B)].sTxtLabel = "trevor close up"
zMenuNames[ENUM_TO_INT(AS_BUGGY)].sTxtLabel = " ACTION SHOT: buggy"
zMenuNames[ENUM_TO_INT(AS_TREV_MOL)].sTxtLabel = " ACTION SHOT: Petrol Bomb"
zMenuNames[ENUM_TO_INT(AS_FIRE_TRAIL)].sTxtLabel = " ACTION SHOT: Fire trail"
zMenuNames[ENUM_TO_INT(AS_BARN_BOOM)].sTxtLabel = " ACTION SHOT: barn blow up"
// zMenuNames[ENUM_TO_INT(AS_BARN_BOOM)].bSelectable = false
zMenuNames[ENUM_TO_INT(STAGE_12_CHIN1_MCS4)].sTxtLabel = "Trevor wave infront of bodies"
zMenuNames[ENUM_TO_INT(STAGE_13_DOCKS_BRIDGE_SHOT)].sTxtLabel = "Docks bridge Shot"
zMenuNames[ENUM_TO_INT(STAGE_13_DOCKS_BRIDGE_SHOT_ALT)].sTxtLabel = "Docks bridge Shot ALT"
zMenuNames[ENUM_TO_INT(STAGE_14_GHETTO_TRAIN_SHOT)].sTxtLabel = "Train in ghetto shot"
zMenuNames[ENUM_TO_INT(STAGE_15_ARM1_INT_P3)].sTxtLabel = "franklin, lamar and michael meet"
zMenuNames[ENUM_TO_INT(AS_LAUNCH_ARM1)].sTxtLabel = " MISSION: Arm 1 - steal car"
zMenuNames[ENUM_TO_INT(STAGE_16_FRA2_INT_P2)].sTxtLabel = "Franklin and his Girlfriend"
zMenuNames[ENUM_TO_INT(AS_LAUNCH_CAR_STEAL_FINALE)].sTxtLabel = "MISSION: car steal Finale"
zMenuNames[ENUM_TO_INT(STAGE_17_ARM1_INT_P4)].sTxtLabel = "Franklin and Lamar"
zMenuNames[ENUM_TO_INT(STAGE_17_ARM1_INT_P4_ALT)].sTxtLabel = "Franklin and Lamar- ALT"
zMenuNames[ENUM_TO_INT(AS_LAUNCH_CAR_STEAL_3)].sTxtLabel = "MISSION: car steal 3- race"
zMenuNames[ENUM_TO_INT(STAGE_18_ARM1_INT_P1)].sTxtLabel = "Mike at shrink's"
zMenuNames[ENUM_TO_INT(AS_LAUNCH_FAMILY_1)].sTxtLabel = " MISSION: Family 1"
zMenuNames[ENUM_TO_INT(STAGE_19_FAM5_MCS5)].sTxtLabel = "Jimmy lets bounce"
zMenuNames[ENUM_TO_INT(STAGE_20_TREV1_INT_P4)].sTxtLabel = "Trevor stomps johnny"
zMenuNames[ENUM_TO_INT(AS_LAUNCH_TREV2)].sTxtLabel = " MISSION: Trev 2"
zMenuNames[ENUM_TO_INT(AS_VAULT_EXP)].sTxtLabel = " ACTION SHOT: Vault door "
// zMenuNames[ENUM_TO_INT(AS_VAULT_EXP)].bSelectable = false
zMenuNames[ENUM_TO_INT(AS_PRO_BLAST)].sTxtLabel = " ACTION SHOT: Prologue Blast doors"
// zMenuNames[ENUM_TO_INT(AS_PRO_BLAST)].bSelectable = false
zMenuNames[ENUM_TO_INT(AS_LAUNCH_FRANK_1)].sTxtLabel = " MISSION: frank 1"
zMenuNames[ENUM_TO_INT(AS_CAR_SLIDE)].sTxtLabel = " ACTION SHOT: car slide "
zMenuNames[ENUM_TO_INT(AS_CHOP_ON_CAR)].sTxtLabel = " ACTION SHOT: car chop "
zMenuNames[ENUM_TO_INT(AS_LAUNCH_FBI_2)].sTxtLabel = " MISSION: FBI 2"
zMenuNames[ENUM_TO_INT(AS_LAUNCH_JEWEL_2A)].sTxtLabel = " MISSION: jewel heist 2a"
zMenuNames[ENUM_TO_INT(AS_FRANK_BIKE_EXP)].sTxtLabel = " ACTION SHOT: Bike explosion "
zMenuNames[ENUM_TO_INT(AS_LAUNCH_EXILE_1)].sTxtLabel = " MISSION: exile 1"
zMenuNames[ENUM_TO_INT(AS_LAUNCH_OFFROAD_RACE_1)].sTxtLabel = " MISSION: offroad race"
// zMenuNames[ENUM_TO_INT(AS_LAUNCH_OFFROAD_RACE_1)].bSelectable = false
zMenuNames[ENUM_TO_INT(AS_LAUNCH_EXILE_3)].sTxtLabel = " MISSION: Exile 3"
zMenuNames[ENUM_TO_INT(STAGE_21_FBI2_MCS1_P1)].sTxtLabel = "Trevor Meet franklin"
zMenuNames[ENUM_TO_INT(STAGE_22_FIN_EXT_P2)].sTxtLabel = "therapist has a lot to answer for"
zMenuNames[ENUM_TO_INT(AS_JET_FIGHT)].sTxtLabel = " ACTION SHOT: Jet fight "
zMenuNames[ENUM_TO_INT(STAGE_23_FINAL_SHOT)].sTxtLabel = "Final shot"
zMenuNames[ENUM_TO_INT(STAGE_23_FINAL_SHOT_ALT)].sTxtLabel = "Final shot Alt"
InitialTimeOfDayHour[ENUM_TO_INT(STAGE_2_OBSERVATORY_SHOT)] = 7
InitialTimeOfDayHour[ENUM_TO_INT(STAGE_2_OBSERVATORY_SHOT_alt)] = 7
InitialTimeOfDayHour[ENUM_TO_INT(STAGE_3_FAM2_INT_P1)] = 18
InitialTimeOfDayHour[ENUM_TO_INT(STAGE_4_DRIVEWAY_SHOT)] = 18
InitialTimeOfDayHour[ENUM_TO_INT(STAGE_5_FAM1_INT_P1)] = 22
InitialTimeOfDayHour[ENUM_TO_INT(STAGE_6_CITY_TRAIN_SHOT)] = 14
InitialTimeOfDayHour[ENUM_TO_INT(STAGE_7_COUNTRY_SCAPE_SHOT)] = 19
InitialTimeOfDayHour[ENUM_TO_INT(STAGE_8_LIQUOR_ACE_SHOT)] = 15
InitialTimeOfDayHour[ENUM_TO_INT(STAGE_9_TREV1_MCS3_P2_A)] = 19
InitialTimeOfDayHour[ENUM_TO_INT(STAGE_10_CHIN1_INT_P2)] = 14
InitialTimeOfDayHour[ENUM_TO_INT(STAGE_11_TREV1_MCS3_P2_B)] = 19//17
InitialTimeOfDayHour[ENUM_TO_INT(STAGE_12_CHIN1_MCS4)] = 13
InitialTimeOfDayHour[ENUM_TO_INT(STAGE_13_DOCKS_BRIDGE_SHOT)] = 22
InitialTimeOfDayHour[ENUM_TO_INT(STAGE_13_DOCKS_BRIDGE_SHOT_ALT)]= 21
InitialTimeOfDayHour[ENUM_TO_INT(STAGE_14_GHETTO_TRAIN_SHOT)] = 7
InitialTimeOfDayHour[ENUM_TO_INT(STAGE_15_ARM1_INT_P3)] = 7//13
InitialTimeOfDayHour[ENUM_TO_INT(STAGE_16_FRA2_INT_P2)] = 7
InitialTimeOfDayHour[ENUM_TO_INT(STAGE_17_ARM1_INT_P4)] = 13
InitialTimeOfDayHour[ENUM_TO_INT(STAGE_17_ARM1_INT_P4_ALT)] = 7
InitialTimeOfDayHour[ENUM_TO_INT(STAGE_18_ARM1_INT_P1)] = 17
InitialTimeOfDayHour[ENUM_TO_INT(STAGE_19_FAM5_MCS5)] = 22
InitialTimeOfDayHour[ENUM_TO_INT(STAGE_20_TREV1_INT_P4)] = 18
InitialTimeOfDayHour[ENUM_TO_INT(STAGE_21_FBI2_MCS1_P1)] = 19
InitialTimeOfDayHour[ENUM_TO_INT(STAGE_22_FIN_EXT_P2)] = 19
InitialTimeOfDayHour[ENUM_TO_INT(STAGE_23_FINAL_SHOT)] = 19
InitialTimeOfDayHour[ENUM_TO_INT(STAGE_23_FINAL_SHOT_ALT)] = 19
InitialTimeOfDayHour[ENUM_TO_INT(AS_BUGGY)] = 19
InitialTimeOfDayHour[ENUM_TO_INT(AS_TREV_MOL)] = 7
InitialTimeOfDayHour[ENUM_TO_INT(AS_BARN_BOOM)] = 6
InitialTimeOfDayHour[ENUM_TO_INT(AS_FIRE_TRAIL)] = 6
InitialTimeOfDayHour[ENUM_TO_INT(AS_PRO_BLAST)] = 0
InitialTimeOfDayHour[ENUM_TO_INT(AS_VAULT_EXP)] = 0
InitialTimeOfDayHour[ENUM_TO_INT(AS_CAR_SLIDE)] = 6
InitialTimeOfDayHour[ENUM_TO_INT(AS_CHOP_ON_CAR)] = 16
InitialTimeOfDayHour[ENUM_TO_INT(AS_FRANK_BIKE_EXP)] = 5
InitialTimeOfDayHour[ENUM_TO_INT(AS_JET_FIGHT)] = 22
//Init Widgets
paradiseWidgetGroup = START_WIDGET_GROUP("Paradise Trailer 2")
ADD_WIDGET_BOOL("Reset scene Automatically",bresetScene)
//widescreen
ADD_WIDGET_BOOL("set widescreen borders", bWideScreen)
//plaer
add_widget_bool("player control:", bplayerControl)
//display titles
ADD_WIDGET_BOOL("bDisplayTitles", bDisplayTitles)
//DOF
ADD_WIDGET_BOOL("Use High Quality Depth of Field", bHighDofOn)
//LODSCALE
add_widget_float_slider("LOD scale",fLODscale,1,3,0.1)
START_WIDGET_GROUP("timings debug")
add_widget_float_slider("debug speed", fDebugSpeed,0,100,0.5)
ADD_WIDGET_INT_SLIDER("Skip playback time:",idebugSkipTime1,0,20000,100)
ADD_WIDGET_INT_SLIDER("Skip playback time2:",idebugSkipTime2,0,20000,100)
ADD_WIDGET_INT_SLIDER("Skip playback time3:",idebugSkipTime3,0,20000,100)
ADD_WIDGET_INT_SLIDER("Skip playback time4:",idebugSkipTime4,0,20000,100)
STOP_WIDGET_GROUP()
START_WIDGET_GROUP("train set up")
ADD_WIDGET_INT_SLIDER("iTrainConfiguration", iTrainConfiguration, 0, 100, 1)
add_widget_float_slider("Train Speed",ftrainSpeed,0,50,1)
STOP_WIDGET_GROUP()
START_WIDGET_GROUP("debug position")
ADD_WIDGET_VECTOR_SLIDER("vDebugPosition", vDebugPosition, -6000.0, 6000.0, 0.01)
ADD_WIDGET_VECTOR_SLIDER("vDebugRotation",vDebugRotation, -6000.0, 6000.0, 0.01)
ADD_WIDGET_FLOAT_SLIDER("fDebugheading", fDebugheading, 0.0, 360.0, 0.05)
STOP_WIDGET_GROUP()
START_WIDGET_GROUP("Cam output")
START_WIDGET_GROUP("scene cam")
ADD_WIDGET_VECTOR_SLIDER("Scene cam pos:",vCamPOS,-6000,6000,0.001)
ADD_WIDGET_VECTOR_SLIDER("Scene cam ROT:",vCamROT,-6000,6000,0.001)
ADD_WIDGET_FLOAT_READ_ONLY("current cam FOV",fCamFOV)
STOP_WIDGET_GROUP()
START_WIDGET_GROUP("debug cam")
ADD_WIDGET_VECTOR_SLIDER("Debug cam pos:",vdebugcamPOS,-6000,6000,0.001)
ADD_WIDGET_VECTOR_SLIDER("Debug cam ROT:",vdebugCamROT,-6000,6000,0.001)
ADD_WIDGET_FLOAT_READ_ONLY("Debug cam FOV",fdebugcamFOV)
STOP_WIDGET_GROUP()
STOP_WIDGET_GROUP()
START_WIDGET_GROUP("TOD")
ADD_WIDGET_BOOL("Pause Time on reset",bPauseClock)
ADD_WIDGET_BOOL("Reset TOD",bResetTOD)
ADD_WIDGET_BOOL("Use new TOD for Scene",bUseNewTOD)
ADD_WIDGET_INT_SLIDER("New TOD: ", iTOD,0,23,1)
STOP_WIDGET_GROUP()
START_WIDGET_GROUP("Shadows")
ADD_WIDGET_BOOL("Reset shadows", bResetShadows)
stop_widget_group()
START_WIDGET_GROUP("Peds/Traffic")
ADD_WIDGET_FLOAT_SLIDER("ped density",fTrafficDensity,0,3,0.1)
ADD_WIDGET_FLOAT_SLIDER("traffic density",fPedDensity,0,3,0.1)
ADD_WIDGET_BOOL("Clear area (500m)", bClearArea)
STOP_WIDGET_GROUP()
START_WIDGET_GROUP("water")
ADD_WIDGET_FLOAT_SLIDER("Water Reflection",fwatereflection,0,50,0.1)
STOP_WIDGET_GROUP()
START_WIDGET_GROUP("Slide car scene's driver ped")
ADD_WIDGET_INT_SLIDER("head ID",iDockWorkerHeadID,-1,2,1)
ADD_WIDGET_INT_SLIDER("Head Text",iDockWorkerHeadText,-1,2,1)
ADD_WIDGET_INT_SLIDER("torso ID",iDockWorkerUpperID,-1,2,1)
ADD_WIDGET_INT_SLIDER("torso text",idockworkerUpperText,-1,2,1)
ADD_WIDGET_INT_SLIDER("Lower ID",idockworkerlowID,-1,2,1)
ADD_WIDGET_INT_SLIDER("Lower Text",idockworkerlowText,-1,2,1)
ADD_WIDGET_INT_SLIDER("headprop id",iDockPropID,-1,2,1)
ADD_WIDGET_INT_SLIDER("headprop text",idockpropText,-1,2,1)
STOP_WIDGET_GROUP()
STOP_WIDGET_GROUP()
IF NOT IS_ENTITY_DEAD(PLAYER_PED_ID())
SET_ENTITY_INVINCIBLE(PLAYER_PED_ID(), TRUE)
ENDIF
REQUEST_PTFX_ASSET()
LOAD_CLOUD_HAT("horizon")
DISPLAY_RADAR(FALSE)
DISPLAY_HUD(FALSE)
DISABLE_CELLPHONE(TRUE)
bDrawMenu = TRUE
mission_stage = enum_to_int(STAGE_0_WAIT_FOR_STAGE)
Mission_Set_Stage(int_to_enum(MSF_MISSION_STAGE_FLAGS, mission_stage))
mission_substage = STAGE_ENTRY
ENDPROC
// ===========================================================================================================
// Shot procedures
// ===========================================================================================================
PROC ST_0_WAIT_FOR_STAGE()
SWITCH mission_substage
CASE STAGE_ENTRY
//DESTROY_ALL_CAMS()
cameraIndex = CREATE_CAM_WITH_PARAMS_AND_SETUP_SCENE("DEFAULT_SCRIPTED_CAMERA", <<482.3925, -807.1235, 130.9988>>, <<1.0100, 0.2558, 92.6482>>, 60.0000, TRUE)
SET_CAM_PARAMS(cameraIndex, <<176.7817, -821.2585, 136.3927>>, <<1.0100, 0.2558, 92.6482>>, 60.0000, 100000, GRAPH_TYPE_SIN_ACCEL_DECEL, GRAPH_TYPE_SIN_ACCEL_DECEL)
float z
GET_GROUND_Z_FOR_3D_COORD(GET_ENTITY_COORDS(player_ped_id()),z)
SET_ENTITY_COORDS(player_ped_id(),<<482.3925, -807.1235,z>>)
RENDER_SCRIPT_CAMS(TRUE, FALSE)
IF IS_SCREEN_FADED_OUT()
DO_SCREEN_FADE_IN(500)
ENDIF
SET_WEATHER_TYPE_NOW_PERSIST("EXTRASUNNY")
SETTIMERB(0)
bDrawMenu = true
mission_substage++
BREAK
CASE 1
IF TIMERB() > 100000
mission_substage++
ENDIF
BREAK
CASE 2
//DESTROY_ALL_CAMS()
cameraIndex = CREATE_CAM_WITH_PARAMS_AND_SETUP_SCENE("DEFAULT_SCRIPTED_CAMERA",<<176.7817, -821.2585, 136.3927>>, <<1.0100, 0.2558, 92.6482>>, 60.0000, TRUE)
SET_CAM_PARAMS(cameraIndex, <<482.3925, -807.1235, 130.9988>>, <<1.0100, 0.2558, 92.6482>>, 60.0000, 100000, GRAPH_TYPE_SIN_ACCEL_DECEL, GRAPH_TYPE_SIN_ACCEL_DECEL)
RENDER_SCRIPT_CAMS(TRUE, FALSE)
SETTIMERB(0)
mission_substage++
BREAK
CASE 3
IF TIMERB() > 100000
mission_substage = 99
ENDIF
BREAK
CASE 99
SET_CAM_PARAMS(cameraIndex, <<176.7817, -821.2585, 136.3927>>, <<1.0100, 0.2558, 92.6482>>, 60.0000, 100000, GRAPH_TYPE_SIN_ACCEL_DECEL, GRAPH_TYPE_SIN_ACCEL_DECEL)
SETTIMERB(0)
mission_substage = 1
BREAK
ENDSWITCH
DISPLAY_TEXT_WITH_LITERAL_STRING(0.3, 0.03, "STRING","Press 'P' to Toggle scene reset")
ENDPROC
PROC ST_2_OBSERVATORY_SHOT()
switch mission_substage
case STAGE_ENTRY
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(0,TRUE,-508.391724,1114.447021,324.216095,15.607548)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(1,TRUE,-472.516602,1093.753418,324.216095,44.896576)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(2,TRUE,-519.602112,510.347992,249.415100,449.954987)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(3,TRUE,-445.712891,621.937988,239.018799,540.000000)
cameraIndex = CREATE_CAM_WITH_PARAMS_AND_SETUP_SCENE("DEFAULT_SCRIPTED_CAMERA", << -484.5379, 1121.4351, 346.8401 >>, << -18.7962, -0.0000, -160.6597 >>, 56.8, TRUE)
SET_CAM_PARAMS(cameraIndex, << -485.7652, 1120.8416, 347.2903 >>, << -18.7962, -0.0000, -160.6597 >>, 56.8000, 2500, GRAPH_TYPE_LINEAR, GRAPH_TYPE_LINEAR)
RENDER_SCRIPT_CAMS(TRUE, FALSE)
if not DOES_ENTITY_EXIST(peds[mpf_driver].id)
peds[mpf_driver].id = CREATE_PED(PEDTYPE_MISSION,A_M_M_BEVHILLS_02,<<-466.37637, 1089.31213, 326.68176>>)
TASK_START_SCENARIO_AT_POSITION(peds[mpf_driver].id,"WORLD_HUMAN_TOURIST_MOBILE",<<-466.37637, 1089.31213, 326.68176>>, 165.0717)
endif
if not DOES_ENTITY_EXIST(peds[mpf_oldman].id)
peds[mpf_oldman].id = CREATE_PED(PEDTYPE_MISSION,A_M_M_BUSINESS_01,<<-462.71686, 1092.16846, 326.68176>>)
TASK_START_SCENARIO_AT_POSITION(peds[mpf_oldman].id,"WORLD_HUMAN_HANG_OUT_STREET",<<-462.71686, 1092.16846, 326.68176>>,36.4846)
endif
if not DOES_ENTITY_EXIST(peds[mpf_phone].id)
peds[mpf_phone].id = CREATE_PED(PEDTYPE_MISSION,A_F_Y_TOURIST_01,<<-463.09814, 1093.39160, 326.68176>>)
TASK_START_SCENARIO_AT_POSITION(peds[mpf_phone].id,"WORLD_HUMAN_TOURIST_MAP",<<-463.09814, 1093.39160, 326.68176>>, 153.5232)
endif
if not DOES_ENTITY_EXIST(peds[mpf_pilot1].id)
peds[mpf_pilot1].id = CREATE_PED(PEDTYPE_MISSION,A_F_M_BEVHILLS_02,<<-471.39084, 1104.63867, 326.25180>>)
// TASK_START_SCENARIO_AT_POSITION(peds[mpf_pilot1].id,"WORLD_HUMAN_SEAT_WALL_EATING",<<-467.94592, 1091.92004, 327.68127>>,165)
TASK_GO_STRAIGHT_TO_COORD(peds[mpf_pilot1].id,<<-456.53128, 1089.58118, 326.68176>>,PEDMOVE_WALK,DEFAULT_TIME_NEVER_WARP)
endif
IF IS_SCREEN_FADED_OUT()
DO_SCREEN_FADE_IN(0)
ENDIF
SETTIMERA(0)
mission_substage++
break
case 1
if TIMERA() > 2500
if not bDrawMenu
and bresetScene
if bPlayThrough
DO_SCREEN_FADE_OUT(0)
Load_Stage_Assets(STAGE_3_FAM2_INT_P1)
set_up_stage(STAGE_3_FAM2_INT_P1)
Mission_Set_Stage(STAGE_3_FAM2_INT_P1)
mission_substage = STAGE_ENTRY
else
if IS_SCREEN_FADED_IN()
DO_SCREEN_FADE_OUT(0)
endif
if TIMERA() > 3500
if IsEntityAlive(peds[mpf_pilot1].id)
delete_ped(peds[mpf_pilot1].id)
endif
mission_substage = STAGE_ENTRY
endif
endif
endif
endif
break
endswitch
endproc
PROC ST_2_OBSERVATORY_SHOT_ALT()
switch mission_substage
case STAGE_ENTRY
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(0,TRUE,-472.516602,1111.196167,324.216095,17.076283)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(1,TRUE,-472.516602,1093.753418,324.216095,44.896576)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(2,TRUE,-517.516052,901.473328,249.415375,150.000000)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(3,TRUE,-451.142700,700.000000,239.018799,425.939728)
cameraIndex = CREATE_CAM_WITH_PARAMS_AND_SETUP_SCENE("DEFAULT_SCRIPTED_CAMERA", << -484.5379, 1121.4351, 346.8401 >>, << -18.7962, -0.0000, -160.6597 >>, 56.8, TRUE)
SET_CAM_PARAMS(cameraIndex, << -485.7652, 1120.8416, 347.2903 >>, << -18.7962, -0.0000, -160.6597 >>, 56.8000, 2500, GRAPH_TYPE_LINEAR, GRAPH_TYPE_LINEAR)
RENDER_SCRIPT_CAMS(TRUE, FALSE)
if not DOES_ENTITY_EXIST(peds[mpf_driver].id)
peds[mpf_driver].id = CREATE_PED(PEDTYPE_MISSION,A_M_M_BEVHILLS_02,<<-466.37637, 1089.31213, 326.68176>>)
TASK_START_SCENARIO_AT_POSITION(peds[mpf_driver].id,"WORLD_HUMAN_TOURIST_MOBILE",<<-466.37637, 1089.31213, 326.68176>>, 165.0717)
endif
if not DOES_ENTITY_EXIST(peds[mpf_oldman].id)
peds[mpf_oldman].id = CREATE_PED(PEDTYPE_MISSION,A_M_M_BUSINESS_01,<<-462.71686, 1092.16846, 326.68176>>)
TASK_START_SCENARIO_AT_POSITION(peds[mpf_oldman].id,"WORLD_HUMAN_HANG_OUT_STREET",<<-462.71686, 1092.16846, 326.68176>>,36.4846)
endif
if not DOES_ENTITY_EXIST(peds[mpf_phone].id)
peds[mpf_phone].id = CREATE_PED(PEDTYPE_MISSION,A_F_Y_TOURIST_01,<<-463.09814, 1093.39160, 326.68176>>)
TASK_START_SCENARIO_AT_POSITION(peds[mpf_phone].id,"WORLD_HUMAN_TOURIST_MAP",<<-463.09814, 1093.39160, 326.68176>>, 153.5232)
endif
if not DOES_ENTITY_EXIST(peds[mpf_pilot1].id)
peds[mpf_pilot1].id = CREATE_PED(PEDTYPE_MISSION,A_F_M_BEVHILLS_02,<<-471.39084, 1104.63867, 326.25180>>)
// TASK_START_SCENARIO_AT_POSITION(peds[mpf_pilot1].id,"WORLD_HUMAN_SEAT_WALL_EATING",<<-467.94592, 1091.92004, 327.68127>>,165)
TASK_GO_STRAIGHT_TO_COORD(peds[mpf_pilot1].id,<<-456.53128, 1089.58118, 326.68176>>,PEDMOVE_WALK,DEFAULT_TIME_NEVER_WARP)
endif
IF IS_SCREEN_FADED_OUT()
DO_SCREEN_FADE_IN(0)
ENDIF
SETTIMERA(0)
mission_substage++
break
case 1
if TIMERA() > 2500
if not bDrawMenu
and bresetScene
if bPlayThrough
DO_SCREEN_FADE_OUT(0)
Load_Stage_Assets(STAGE_3_FAM2_INT_P1)
set_up_stage(STAGE_3_FAM2_INT_P1)
Mission_Set_Stage(STAGE_3_FAM2_INT_P1)
mission_substage = STAGE_ENTRY
else
if IS_SCREEN_FADED_IN()
DO_SCREEN_FADE_OUT(0)
endif
if TIMERA() > 3500
if IsEntityAlive(peds[mpf_pilot1].id)
delete_ped(peds[mpf_pilot1].id)
endif
mission_substage = STAGE_ENTRY
endif
endif
endif
endif
break
endswitch
Endproc
proc ST_3_FAM2_INT_P1() //tennis
switch mission_substage
case STAGE_ENTRY
if HAS_CUTSCENE_LOADED()
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(0,TRUE,-773.452087,164.090302,67.376785,6.941813)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(1,TRUE,-773.452087,156.502289,67.376793,9.199070)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(2,TRUE,-818.972778,160.218796,76.246338,27.522293)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(3,TRUE,-800.428589,228.689377,79.433769,93.751991)
START_CUTSCENE()
//camera
cameraIndex = CREATE_CAM_WITH_PARAMS_AND_SETUP_SCENE("DEFAULT_SCRIPTED_CAMERA",<< -761.6831, 127.7389, 82.0954 >>, << -10.5571, -0.0000, 32.2714 >>, 44, TRUE)
RENDER_SCRIPT_CAMS(TRUE, FALSE)
SETTIMERA(0)
if not DOES_ENTITY_EXIST(peds[mpf_oldman].id)
peds[mpf_oldman].id = CREATE_PED(PEDTYPE_MISSION,S_M_M_GARDENER_01,<<-806.80261, 152.18236, 67.88828>>)
TASK_START_SCENARIO_AT_POSITION(peds[mpf_oldman].id, "WORLD_HUMAN_GARDENER_LEAF_BLOWER",<<-804.18408, 146.86296, 64.21335>>,217.2437)
SET_ENTITY_LOD_DIST(peds[mpf_oldman].id,1000)
endif
mission_substage++
endif
break
case 1
if GET_CUTSCENE_TIME() >= 0//1500
IF IS_SCREEN_FADED_OUT()
DO_SCREEN_FADE_IN(0)
ENDIF
SET_CAM_PARAMS(cameraIndex,<< -761.6831, 127.7389, 82.0954 >>, << -13.3528, 0.0000, 31.2356 >>, 44, 4500, GRAPH_TYPE_LINEAR, GRAPH_TYPE_LINEAR)
mission_substage++
endif
break
case 2
if GET_CUTSCENE_TIME() >= 4500
STOP_CUTSCENE_IMMEDIATELY()
mission_substage++
endif
break
case 3
if HAS_CUTSCENE_FINISHED()
if not bDrawMenu
and bresetScene
DO_SCREEN_FADE_OUT(0)
if bPlayThrough
Load_Stage_Assets(STAGE_4_DRIVEWAY_SHOT)
set_up_stage(STAGE_4_DRIVEWAY_SHOT)
Mission_Set_Stage(STAGE_4_DRIVEWAY_SHOT)
mission_substage = STAGE_ENTRY
else
iSkipToStage = enum_to_int(STAGE_3_FAM2_INT_P1)
bDoSkip = true
endif
endif
endif
break
endswitch
if IS_CUTSCENE_PLAYING()
BYPASS_CUTSCENE_CAM_RENDERING_THIS_UPDATE()
endif
endproc
proc ST_4_DRIVEWAY_SHOT()
switch mission_substage
case STAGE_ENTRY
//cam
cameraIndex = CREATE_CAM_WITH_PARAMS_AND_SETUP_SCENE("DEFAULT_SCRIPTED_CAMERA",<< -823.6382, 153.6339, 69.3399 >>, << 10.9499, -0.0000, -39.4098 >>, 39.5356, TRUE)
RENDER_SCRIPT_CAMS(TRUE, FALSE)
fLODscale = 1.4
//create car
if not DOES_ENTITY_EXIST(vehs[veh_Driveway].id)
vehs[veh_Driveway].id = CREATE_VEHICLE(NINEF2,vdrivewaypos,fdrivewayheading)
SET_VEHICLE_COLOUR_COMBINATION(vehs[veh_Driveway].id,4)
LOWER_CONVERTIBLE_ROOF(vehs[veh_Driveway].id,true)
SET_VEHICLE_ON_GROUND_PROPERLY(vehs[veh_Driveway].id)
endif
SETTIMERA(0)
mission_substage++
break
case 1
if timera() > 1000
if IS_SCREEN_FADED_OUT()
DO_SCREEN_FADE_IN(0)
endif
SET_CAM_PARAMS(cameraIndex,<< -823.3452, 153.3983, 69.4799 >>, << 13.5878, 0.0000, -35.0619 >>, 39.5356, 4000, GRAPH_TYPE_LINEAR, GRAPH_TYPE_LINEAR)
SETTIMERA(0)
mission_substage++
endif
break
case 2
if timera() > 4000
if not bDrawMenu
and bresetScene
if bPlayThrough
Load_Stage_Assets(STAGE_5_FAM1_INT_P1)
set_up_stage(STAGE_5_FAM1_INT_P1)
Mission_Set_Stage(STAGE_5_FAM1_INT_P1)
mission_substage = STAGE_ENTRY
else
if DOES_ENTITY_EXIST(vehs[veh_Driveway].id)
DELETE_VEHICLE(vehs[veh_Driveway].id)
endif
DO_SCREEN_FADE_OUT(0)
mission_substage = STAGE_ENTRY
endif
endif
endif
break
endswitch
// if DOES_ENTITY_EXIST(vehs[veh_parked_car].id)
// if not IS_ENTITY_DEAD(vehs[veh_parked_car].id)
// SET_ENTITY_COORDS(vehs[veh_parked_car].id,vDebugPosition)
// set_entity_heading(vehs[veh_parked_car].id,fDebugHeading)
// SET_VEHICLE_ON_GROUND_PROPERLY(vehs[veh_parked_car].id)
// endif
// endif
endproc
proc ST_5_FAM1_INT_P1()
switch mission_substage
case STAGE_ENTRY
if HAS_CUTSCENE_LOADED()
if GET_PLAYER_PED_ENUM(player_ped_id()) = CHAR_MICHAEL
WHILE NOT SET_CURRENT_SELECTOR_PED(SELECTOR_PED_FRANKLIN)
WAIT(0)
ENDWHILE
endif
START_CUTSCENE()
if IsEntityAlive(peds[mpf_mike].id)
REGISTER_ENTITY_FOR_CUTSCENE(peds[mpf_mike].id, "Michael", CU_ANIMATE_EXISTING_SCRIPT_ENTITY)
SET_CUTSCENE_PED_COMPONENT_VARIATION_FROM_PED("michael",peds[mpf_mike].id)
endif
streamvol = STREAMVOL_CREATE_FRUSTUM(<< -769.5152, 161.4985, 84.0688 >>, << -20.3405, 0.9996, 32.1397 >>,100,FLAG_MAPDATA)
//camera
cameraIndex = CREATE_CAM_WITH_PARAMS_AND_SETUP_SCENE("DEFAULT_SCRIPTED_CAMERA",<< -797.2319, 186.4233, 72.9825 >>, << -3.5417, 0.9998, 102.7818 >>, 30.0174, TRUE)
SET_CAM_PARAMS(cameraIndex,<< -797.2648, 186.3080, 72.9884 >>, << -3.8154, 0.9998, 103.4982 >>,30,6000,GRAPH_TYPE_LINEAR,GRAPH_TYPE_LINEAR)
SET_CAM_ACTIVE(cameraIndex,true)
RENDER_SCRIPT_CAMS(TRUE, FALSE)
SETTIMERA(0)
mission_substage++
endif
break
case 1
if GET_CUTSCENE_TIME() >= 1900
IF IS_SCREEN_FADED_OUT()
DO_SCREEN_FADE_IN(0)
ENDIF
mission_substage++
endif
break
case 2
if GET_CUTSCENE_TIME() >= 5620
SET_CLOCK_TIME(13,0,0)
SET_CAM_FAR_DOF(cameraIndex,270)
SET_CAM_NEAR_DOF(cameraIndex,5)
SET_CAM_USE_SHALLOW_DOF_MODE(cameraIndex,true)
bHighDofOn = true
mission_substage++
endif
break
case 3
if GET_CUTSCENE_TIME() >= 10033
SET_CAM_PARAMS(cameraIndex,<< -778.3713, 187.8110, 72.5213 >>, << 2.4206, 1.0003, 99.5010 >>,16.4626,0)
SET_CAM_PARAMS(cameraIndex,<< -778.3713, 187.8110, 72.5213 >>, << 1.8857, 1.0001, 97.7170 >>,16.4626,9267,GRAPH_TYPE_LINEAR,GRAPH_TYPE_LINEAR)
mission_substage++
endif
break
case 4
if GET_CUTSCENE_TIME() >= 19300
mission_substage++
endif
break
case 5
if GET_CUTSCENE_TIME() >= 38000
or HAS_CUTSCENE_FINISHED()
STOP_CUTSCENE_IMMEDIATELY()
mission_substage++
endif
break
case 6
if HAS_CUTSCENE_FINISHED()
if not bDrawMenu
and bresetScene
DO_SCREEN_FADE_OUT(0)
if bPlayThrough
Load_Stage_Assets(STAGE_6_CITY_TRAIN_SHOT)
set_up_stage(STAGE_6_CITY_TRAIN_SHOT)
Mission_Set_Stage(STAGE_6_CITY_TRAIN_SHOT)
mission_substage = STAGE_ENTRY
else
iSkipToStage = enum_to_int(STAGE_5_FAM1_INT_P1)
bDoSkip = true
endif
endif
endif
break
endswitch
if IS_CUTSCENE_PLAYING()
if GET_CUTSCENE_TIME() >= 5666 and GET_CUTSCENE_TIME() < 10033 // clip 2
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(0,TRUE,-780.490601,187.876251,72.439651,3.258497)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(1,TRUE,-780.488770,187.767242,72.427795,5.257813)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(2,TRUE,-784.134216,187.964050,72.289421,6.553432)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(3,FALSE,0.000000,0.000000,0.000000,0.000000)
elif GET_CUTSCENE_TIME() >= 10033 and GET_CUTSCENE_TIME() < 19300 // clip 3
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(0,TRUE,-786.769165,186.255463,72.794601,1.157311)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(1,TRUE,-784.134216,187.964920,72.288277,2.632771)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(2,FALSE,0.000000,0.000000,0.000000,0.000000)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(3,TRUE,-787.414124,183.238968,73.160629,27.808306)
SET_CLOCK_TIME(13,0,0)
SET_WEATHER_TYPE_NOW_PERSIST("smog")
elif GET_CUTSCENE_TIME() >= 19300 and GET_CUTSCENE_TIME() < 20900 // clip 6
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(0,TRUE,-780.479126,187.773575,72.423218,1.204188)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(1,TRUE,-780.488770,187.767242,72.427795,2.411242)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(2,FALSE,0.000000,0.000000,0.000000,0.000000)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(3,FALSE,0.000000,0.000000,0.000000,0.000000)
SET_CLOCK_TIME(16,0,0)
SET_WEATHER_TYPE_NOW_PERSIST("SNOWLIGHT")
elif GET_CUTSCENE_TIME() >= 20900 and GET_CUTSCENE_TIME() < 29733 // clip 7
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(0,TRUE,-780.479126,187.773575,72.423218,0.469813)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(1,TRUE,-780.488770,187.767242,72.427795,2.051867)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(2,FALSE,0.000000,0.000000,0.000000,0.000000)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(3,FALSE,0.000000,0.000000,0.000000,0.000000)
elif GET_CUTSCENE_TIME() >= 29733 and GET_CUTSCENE_TIME() < 35900 // clip 8
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(0,TRUE,-780.479126,187.773575,72.423218,2.360440)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(1,TRUE,-780.488770,187.767242,72.427795,3.629992)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(2,TRUE,-784.134216,187.964050,72.289421,5.897182)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(3,TRUE,-780.464478,189.933487,72.388496,8.758831)
elif GET_CUTSCENE_TIME() >= 35900 //clip 9
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(0,TRUE,-780.248596,188.432999,72.290451,0.635394)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(1,TRUE,-780.488770,187.767242,72.427795,3.629992)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(2,TRUE,-784.134216,187.964050,72.289421,5.897182)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(3,TRUE,-780.464478,189.933487,72.388496,8.758831)
endif
endif
if mission_substage = 4
BYPASS_CUTSCENE_CAM_RENDERING_THIS_UPDATE()
endif
endproc
proc ST_6_CITY_TRAIN_SHOT()
switch mission_substage
case STAGE_ENTRY
if IS_SCREEN_FADED_OUT()
DO_SCREEN_FADE_IN(0)
endif
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(0,TRUE,780.744873,-486.837524,29.516705,10.489002)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(1,TRUE,796.368347,-480.491577,29.973850,13.402205)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(2,TRUE,777.991943,-498.517029,35.446419,30.895958)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(3,TRUE,622.286011,-561.551636,35.447056,179.981995)
//cam
cameraIndex = CREATE_CAM_WITH_PARAMS_AND_SETUP_SCENE("DEFAULT_SCRIPTED_CAMERA",<< 833.7414, -481.7881, 39.1400 >>, << -4.6010, 0.0000, 97.3758 >>, 35.9, TRUE)
SET_CAM_PARAMS(cameraIndex,<< 833.7414, -481.7881, 39.1400 >>, << 5.2272, 0.0000, 103.9583 >>, 35.9, 5000, GRAPH_TYPE_LINEAR, GRAPH_TYPE_LINEAR)
RENDER_SCRIPT_CAMS(TRUE, FALSE)
//create train
vehs[veh_first_train].id = CREATE_MISSION_TRAIN(3,vTrainCityPos, TRUE)
SET_TRAIN_CRUISE_SPEED(vehs[veh_first_train].id, ftrainSpeed)
SET_TRAIN_SPEED(vehs[veh_first_train].id, ftrainSpeed)
SET_WEATHER_TYPE_NOW_PERSIST("EXTRASUNNY")
SETTIMERA(0)
mission_substage++
break
case 1
if timera() > 5000
if not bDrawMenu
and bresetScene
DO_SCREEN_FADE_OUT(0)
if bPlayThrough
Load_Stage_Assets(STAGE_7_COUNTRY_SCAPE_SHOT)
set_up_stage(STAGE_7_COUNTRY_SCAPE_SHOT)
Mission_Set_Stage(STAGE_7_COUNTRY_SCAPE_SHOT)
mission_substage = STAGE_ENTRY
else
DELETE_MISSION_TRAIN(vehs[veh_first_train].id)
mission_substage = STAGE_ENTRY
endif
endif
endif
break
endswitch
endproc
proc ST_7_COUNTRY_SCAPE_SHOT()
switch mission_substage
case STAGE_ENTRY
if IS_SCREEN_FADED_OUT()
DO_SCREEN_FADE_IN(0)
endif
//cam
cameraIndex = CREATE_CAM_WITH_PARAMS_AND_SETUP_SCENE("DEFAULT_SCRIPTED_CAMERA",<< 2557.3301, 3037.0537, 44.0020 >>, << 5.1213, -0.0000, 125.3085 >>, 39.4673, TRUE)
SET_CAM_PARAMS(cameraIndex,<< 2557.3301, 3037.0537, 44.0020 >>, << 5.1213, 0.0000, 123.3813 >>, 39.4673, 2500, GRAPH_TYPE_LINEAR, GRAPH_TYPE_LINEAR)
RENDER_SCRIPT_CAMS(TRUE, FALSE)
//create truck
CLEAR_AREA(<<2545.50488, 3037.98584, 42.32346>>,7,true)
vehs[veh_truck].id = CREATE_VEHICLE(packer,<<2545.50488, 3037.98584, 42.32346>>,135.13)
SET_VEHICLE_COLOUR_COMBINATION(vehs[veh_truck].id,1)
vehs[veh_exp1].id = create_vehicle(TRAILERS,GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(vehs[veh_truck].id, <<0.0, 3.5, 0.0>>), GET_ENTITY_HEADING(vehs[veh_truck].id))
ATTACH_VEHICLE_TO_TRAILER(vehs[veh_truck].id,vehs[veh_exp1].id)
SETTIMERA(0)
mission_substage++
break
case 1
if timera() > 2500
if not bDrawMenu
and bresetScene
DO_SCREEN_FADE_OUT(0)
if bPlayThrough
Load_Stage_Assets(STAGE_8_LIQUOR_ACE_SHOT)
set_up_stage(STAGE_8_LIQUOR_ACE_SHOT)
Mission_Set_Stage(STAGE_8_LIQUOR_ACE_SHOT)
mission_substage = STAGE_ENTRY
else
if IsEntityAlive(vehs[veh_truck].id)
and IsEntityAlive(vehs[veh_exp1].id)
DETACH_VEHICLE_FROM_TRAILER(vehs[veh_truck].id)
DELETE_VEHICLE(vehs[veh_truck].id)
DELETE_VEHICLE(vehs[veh_exp1].id)
endif
mission_substage = STAGE_ENTRY
endif
endif
endif
break
endswitch
if DOES_ENTITY_EXIST(vehs[veh_truck].id)
if not IS_ENTITY_DEAD(vehs[veh_truck].id)
SET_VEHICLE_FORWARD_SPEED(vehs[veh_truck].id,15)
endif
endif
endproc
proc ST_8_LIQUOR_ACE_SHOT()
switch mission_substage
case STAGE_ENTRY
cameraIndex = CREATE_CAM_WITH_PARAMS_AND_SETUP_SCENE("DEFAULT_SCRIPTED_CAMERA",<< 1989.5298, 3074.7014, 47.3174 >>, << -1.8617, -0.0000, -172.5692 >>,35.8189, TRUE)
//women
if not DOES_ENTITY_EXIST(peds[mpf_oldman].id)
peds[mpf_oldman].id = create_ped(PEDTYPE_MISSION,A_F_M_Salton_01,<< 1999.8894, 3050.8081, 46.2142 >>, 33.0468)
SET_PED_COMPONENT_VARIATION(peds[mpf_oldman].id,PED_COMP_TORSO,0,0)
SET_PED_COMPONENT_VARIATION(peds[mpf_oldman].id,PED_COMP_LEG,1,2)
SET_PED_COMPONENT_VARIATION(peds[mpf_oldman].id,PED_COMP_HAIR,0,0)
TASK_PLAY_ANIM(peds[mpf_oldman].id,"amb@world_human_leaning@female@wall@back@holding_elbow@idle_a","idle_b",INSTANT_BLEND_IN,NORMAL_BLEND_OUT)
endif
//fat man
if not DOES_ENTITY_EXIST(peds[mpf_fatmancross].id)
peds[mpf_fatmancross].id = create_ped(PEDTYPE_MISSION,A_M_M_Salton_01,<< 1993.6366, 3057.4487, 46.0563 >>, 272.6865)
SET_PED_COMPONENT_VARIATION(peds[mpf_fatmancross].id,PED_COMP_TORSO,2,1)
SET_PED_COMPONENT_VARIATION(peds[mpf_fatmancross].id,PED_COMP_LEG,0,1)
SET_PED_COMPONENT_VARIATION(peds[mpf_fatmancross].id,PED_COMP_HAIR,1,0)
TASK_PLAY_ANIM(peds[mpf_fatmancross].id,"move_m@generic_variations@walk","walk_e",INSTANT_BLEND_IN,NORMAL_BLEND_OUT)
endif
mission_substage++
break
case 1
if IS_SCREEN_FADED_OUT()
DO_SCREEN_FADE_IN(0)
endif
//cam
SET_CAM_PARAMS(cameraIndex,<< 1988.9154, 3074.6213, 47.3186 >>, << 1.5679, 0.0003, -170.9200 >> ,35.8189, 2500, GRAPH_TYPE_LINEAR, GRAPH_TYPE_LINEAR)
RENDER_SCRIPT_CAMS(TRUE, FALSE)
SHAKE_CAM(cameraIndex,"HAND_SHAKE",0.6)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(0,TRUE,1987.481812,3064.853027,46.956909,3.447119)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(1,TRUE,1990.990845,3071.017090,46.504059,1.589828)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(2,TRUE,1993.078857,3055.733887,48.113201,20.000000)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(3,TRUE,2015.878174,3000.344971,45.083389,87.052994)
//ambiant peds / vehs
if not DOES_ENTITY_EXIST(vehs[veh_parked_car].id)
vehs[veh_parked_car].id = CREATE_VEHICLE(RATLOADER,vparkcarpos,fparkcarheading)
SET_VEHICLE_COLOUR_COMBINATION(vehs[veh_parked_car].id,0)
endif
if not DOES_ENTITY_EXIST(vehs[veh_tornado3].id)
vehs[veh_tornado3].id = CREATE_VEHICLE(tornado3,vtornado3,ftornado3)
SET_VEHICLE_COLOUR_COMBINATION(vehs[veh_tornado3].id,0)
endif
if not DOES_ENTITY_EXIST(peds[mpf_driver].id)
peds[mpf_driver].id = CREATE_PED_INSIDE_VEHICLE(vehs[veh_tornado3].id,PEDTYPE_MISSION,S_M_Y_XMech_02)
SET_PED_COMPONENT_VARIATION(peds[mpf_driver].id,PED_COMP_TORSO,0,0)
SET_PED_COMPONENT_VARIATION(peds[mpf_driver].id,PED_COMP_LEG,0,0)
SET_PED_COMPONENT_VARIATION(peds[mpf_driver].id,PED_COMP_LEG,0,0)
SET_PED_COMPONENT_VARIATION(peds[mpf_driver].id,PED_COMP_HAIR,0,0)
endif
//man drunk
if not DOES_ENTITY_EXIST(peds[mpf_phone].id)
peds[mpf_phone].id = create_ped(PEDTYPE_MISSION,A_M_M_HILLBILLY_02,<<1991.39758, 3067.16772, 46.02674>>,63)
SET_PED_COMPONENT_VARIATION(peds[mpf_phone].id,PED_COMP_TORSO,0,2)
SET_PED_COMPONENT_VARIATION(peds[mpf_phone].id,PED_COMP_LEG,0,2)
SET_PED_COMPONENT_VARIATION(peds[mpf_phone].id,PED_COMP_HAIR,1,0)
endif
OPEN_SEQUENCE_TASK(seq)
TASK_PLAY_ANIM(null,"move_drunk_m","walk",INSTANT_BLEND_IN,SLOW_BLEND_OUT,-1)
CLOSE_SEQUENCE_TASK(seq)
TASK_PERFORM_SEQUENCE(peds[mpf_phone].id,seq)
CLEAR_SEQUENCE_TASK(seq)
SET_PED_MIN_MOVE_BLEND_RATIO(peds[mpf_phone].id,PEDMOVEBLENDRATIO_WALK)
FORCE_PED_MOTION_STATE(peds[mpf_phone].id,MS_ON_FOOT_WALK,false,FAUS_CUTSCENE_EXIT)
//fighter 1
if not DOES_ENTITY_EXIST(peds[mpf_pilot1].id)
peds[mpf_pilot1].id = create_ped(PEDTYPE_MISSION,A_M_M_HILLBILLY_01,<< 1991.02856, 3060.32104, 46.05356 >>, 66.1944 )
SET_PED_COMPONENT_VARIATION(peds[mpf_pilot1].id,PED_COMP_TORSO,0,2)
SET_PED_COMPONENT_VARIATION(peds[mpf_pilot1].id,PED_COMP_LEG,0,2)
SET_PED_COMPONENT_VARIATION(peds[mpf_pilot1].id,PED_COMP_HAIR,1,2)
endif
//fighter 2
if not DOES_ENTITY_EXIST(peds[mpf_pilot2].id)
peds[mpf_pilot2].id = create_ped(PEDTYPE_MISSION,A_M_M_HILLBILLY_01,<< 1989.69739, 3060.97339, 46.05430 >>, 244.8239)
SET_PED_COMPONENT_VARIATION(peds[mpf_pilot2].id,PED_COMP_TORSO,1,2)
SET_PED_COMPONENT_VARIATION(peds[mpf_pilot2].id,PED_COMP_LEG,1,0)
SET_PED_COMPONENT_VARIATION(peds[mpf_pilot2].id,PED_COMP_HAIR,0,2)
endif
// TASK_FOLLOW_NAV_MESH_TO_COORD(peds[mpf_fatmancross].id,<< 2000.8536, 3057.7395, 46.0492 >>,PEDMOVE_WALK,DEFAULT_TIME_NEVER_WARP)
// SET_PED_MIN_MOVE_BLEND_RATIO(peds[mpf_fatmancross].id,PEDMOVEBLENDRATIO_WALK)
// FORCE_PED_MOTION_STATE(peds[mpf_fatmancross].id,MS_ON_FOOT_WALK,false,FAUS_CUTSCENE_EXIT)
//fight
syncsceneID = CREATE_SYNCHRONIZED_SCENE(<<1988.329,3061.971,46.05>>,<<0,0,40>>)
TASK_SYNCHRONIZED_SCENE(peds[mpf_pilot1].id,syncsceneID,"trailer2@shoved_peds","B_SHOVE", INSTANT_BLEND_IN,NORMAL_BLEND_OUT)
TASK_SYNCHRONIZED_SCENE(peds[mpf_pilot2].id,syncsceneID,"trailer2@shoved_peds","A_SHOVE",INSTANT_BLEND_IN,NORMAL_BLEND_OUT)
CLEAR_AREA(<< 1415.1364, 3581.8572, 34.8545 >>,50,true)
mission_substage++
break
case 2
if IS_SYNCHRONIZED_SCENE_RUNNING(syncsceneID)
and GET_SYNCHRONIZED_SCENE_PHASE(syncsceneID) > 0.99
if not bDrawMenu
and bresetScene
DO_SCREEN_FADE_OUT(0)
if bPlayThrough
Load_Stage_Assets(STAGE_9_TREV1_MCS3_P2_A)
set_up_stage(STAGE_9_TREV1_MCS3_P2_A)
Mission_Set_Stage(STAGE_9_TREV1_MCS3_P2_A)
mission_substage = STAGE_ENTRY
else
if DOES_ENTITY_EXIST(peds[mpf_driver].id)
delete_ped(peds[mpf_driver].id)
endif
IF DOES_ENTITY_EXIST(vehs[veh_tornado3].id)
IF NOT IS_ENTITY_DEAD(vehs[veh_tornado3].id)
delete_vehicle(vehs[veh_tornado3].id)
endif
endif
if DOES_ENTITY_EXIST(peds[mpf_pilot1].id)
delete_ped(peds[mpf_pilot1].id)
endif
if DOES_ENTITY_EXIST(peds[mpf_pilot2].id)
delete_ped(peds[mpf_pilot2].id)
endif
if DOES_ENTITY_EXIST(peds[mpf_oldman].id)
delete_ped(peds[mpf_oldman].id)
endif
if DOES_ENTITY_EXIST(peds[mpf_phone].id)
delete_ped(peds[mpf_phone].id)
endif
if DOES_ENTITY_EXIST(peds[mpf_fatmancross].id)
delete_ped(peds[mpf_fatmancross].id)
endif
CLEAR_AREA(<< 1415.1364, 3581.8572, 34.8545>>,30,true)
mission_substage = STAGE_ENTRY
endif
endif
endif
break
endswitch
if DOES_ENTITY_EXIST(vehs[veh_tornado3].id)
if not IS_ENTITY_DEAD(vehs[veh_tornado3].id)
SET_VEHICLE_FORWARD_SPEED(vehs[veh_tornado3].id,10.8)
endif
endif
// if DOES_ENTITY_EXIST(vehs[veh_parked_car].id)
// if not IS_ENTITY_DEAD(vehs[veh_parked_car].id)
// SET_ENTITY_COORDS(vehs[veh_parked_car].id,vDebugPosition)
// set_entity_heading(vehs[veh_parked_car].id,fDebugHeading)
// SET_VEHICLE_ON_GROUND_PROPERLY(vehs[veh_parked_car].id)
// endif
// endif
endproc
proc ST_9_TREV1_MCS3_P2_A()
switch mission_substage
case STAGE_ENTRY
if HAS_CUTSCENE_LOADED()
cameraIndex = CREATE_CAM_WITH_PARAMS_AND_SETUP_SCENE("DEFAULT_SCRIPTED_CAMERA",<< -42.4877, 3093.7954, 26.7999 >>, << 4.0862, -0.0000, 49.0044 >>,46.1490, TRUE)
WATER_REFLECTION_SET_HEIGHT(true,fwatereflection)
if GET_PLAYER_PED_ENUM(player_ped_id()) = CHAR_TREVOR
SET_ENTITY_VISIBLE(player_ped_id(),true)
endif
camfollow = CREATE_CAM("DEFAULT_SCRIPTED_CAMERA")
SET_CAM_ACTIVE(cameraIndex,true)
RENDER_SCRIPT_CAMS(true,false)
SHAKE_CAM(cameraIndex,"HAND_SHAKE",0.3)
SHAKE_CAM(camfollow,"HAND_SHAKE",0.4)
SET_CLOCK_TIME(GET_CLOCK_HOURS(),30,0)
REGISTER_ENTITY_FOR_CUTSCENE(objWeapon[WEAPON_TREVOR], "Trevors_weapon", CU_ANIMATE_EXISTING_SCRIPT_ENTITY)
START_CUTSCENE()
SET_CUTSCENE_ORIGIN(<<-9.430,3051.75,40>>,23.603,0)
mission_substage++
endif
break
case 1
if GET_CUTSCENE_TIME() >= 1000
IF IS_SCREEN_FADED_OUT()
DO_SCREEN_FADE_IN(0)
ENDIF
mission_substage++
endif
break
case 2
if GET_CUTSCENE_TIME() >= 10200
SET_CAM_PARAMS(cameraIndex,<< -42.4877, 3093.7954, 26.7999 >>, << 4.0862, -0.0000, 49.0044 >>,38.0423,3000)
SET_CAM_PARAMS(camfollow,<< -42.4877, 3093.7954, 26.7999 >>, << 4.0862, -0.0000, 49.0044 >>,38.0423,0)
POINT_CAM_AT_COORD(camfollow,<<-48.32471, 3100.03223, 26.24728>>)
mission_substage++
endif
break
case 3
if GET_CUTSCENE_TIME() >= 11200
SET_CAM_ACTIVE_WITH_INTERP(camfollow,cameraIndex,2500)
mission_substage++
endif
break
case 4
if GET_CUTSCENE_TIME() >= 14000
mission_substage++
endif
break
case 5
if GET_CUTSCENE_TIME() >= 17800
SET_CAM_ACTIVE(cameraIndex,true)
SET_CAM_PARAMS(cameraIndex,<< -44.8513, 3094.5393, 27.2668 >>, << 19.7181, 3.1424, -160.9558 >>,16.8474,0)
SET_CAM_PARAMS(cameraIndex,<< -45.0337, 3094.4468, 27.1943 >>, << 23.6207, 3.1258, -154.9080 >>,15.5739,1200)//<< -45.0328, 3094.4441, 27.1954 >>, << 21.0296, 3.1424, -157.5487 >>,16.8474,1200)
mission_substage++
endif
break
case 6
if GET_CUTSCENE_TIME() >= 19200
STOP_CUTSCENE_IMMEDIATELY()
mission_substage++
endif
break
case 7
if HAS_CUTSCENE_FINISHED()
if not bDrawMenu
and bresetScene
DO_SCREEN_FADE_OUT(0)
if bPlayThrough
Load_Stage_Assets(STAGE_10_CHIN1_INT_P2)
set_up_stage(STAGE_10_CHIN1_INT_P2)
Mission_Set_Stage(STAGE_10_CHIN1_INT_P2)
mission_substage = STAGE_ENTRY
else
iSkipToStage = enum_to_int(STAGE_9_TREV1_MCS3_P2_A)
bDoSkip = true
endif
endif
endif
break
endswitch
if mission_substage > 2
and mission_substage < 5
and IS_CUTSCENE_PLAYING()
BYPASS_CUTSCENE_CAM_RENDERING_THIS_UPDATE()
endif
endproc
proc ST_10_CHIN1_INT_P2() //bar fight
switch mission_substage
case STAGE_ENTRY
if HAS_CUTSCENE_LOADED()
if GET_PLAYER_PED_ENUM(player_ped_id()) = CHAR_TREVOR
SET_ENTITY_VISIBLE(player_ped_id(),true)
endif
START_CUTSCENE()
clear_area(<<1987.9679, 3053.7041, 46.1257>>,20,true)
//camera
cameraIndex = CREATE_CAM_WITH_PARAMS_AND_SETUP_SCENE("DEFAULT_SCRIPTED_CAMERA",<<1987.9679, 3053.7041, 46.1257>>, << 5.2109, 1.3016, -35.9444 >>, 45, TRUE)
SETTIMERA(0)
mission_substage++
endif
break
case 1
if GET_CUTSCENE_TIME() >= 2000
IF IS_SCREEN_FADED_OUT()
DO_SCREEN_FADE_IN(0)
ENDIF
mission_substage++
endif
break
case 2
if GET_CUTSCENE_TIME() >= 24000
STOP_CUTSCENE_IMMEDIATELY()
mission_substage++
endif
break
case 3
if HAS_CUTSCENE_FINISHED()
if not bDrawMenu
and bresetScene
DO_SCREEN_FADE_OUT(0)
if bPlayThrough
Load_Stage_Assets(STAGE_11_TREV1_MCS3_P2_B)
set_up_stage(STAGE_11_TREV1_MCS3_P2_B)
Mission_Set_Stage(STAGE_11_TREV1_MCS3_P2_B)
mission_substage = STAGE_ENTRY
else
iSkipToStage = enum_to_int(STAGE_10_CHIN1_INT_P2)
bDoSkip = true
endif
endif
endif
break
endswitch
if IS_CUTSCENE_ACTIVE()
//add blood decals
// if not does_entity_exist(peds[mpf_pilot2].id)
// if does_entity_exist(GET_ENTITY_INDEX_OF_CUTSCENE_ENTITY("Russian_Drunk", CS_RussianDrunk))
//
// peds[mpf_pilot2].id = GET_PED_INDEX_FROM_ENTITY_INDEX(GET_ENTITY_INDEX_OF_CUTSCENE_ENTITY("Russian_Drunk", CS_RussianDrunk))
//
// endif
//
// else
// if not is_ped_injured(peds[mpf_pilot2].id)
if GET_CUTSCENE_TIME() >= 22930 //has_anim_event_fired(peds[mpf_pilot2].id, get_hash_key("Blood_Splat"))
if not is_decal_alive(blood[0].the_decal_id)
println("DECAL")
blood[0].the_decal_id = add_decal(blood[0].decal_texture_id, blood[0].pos, blood[0].direction, blood[0].side, blood[0].width, blood[0].height, 0.196, 0, 0, blood[0].fAlpha, blood[0].life)
blood[1].the_decal_id = add_decal(blood[1].decal_texture_id, blood[1].pos, blood[1].direction, blood[1].side, blood[1].width, blood[1].height, 0.196, 0, 0, blood[1].fAlpha, blood[1].life)
endif
endif
// endif
// endif
endif
endproc
proc ST_11_TREV1_MCS3_P2_B()
switch mission_substage
case STAGE_ENTRY
if HAS_CUTSCENE_LOADED()
if GET_PLAYER_PED_ENUM(player_ped_id()) = CHAR_TREVOR
SET_ENTITY_VISIBLE(player_ped_id(),true)
endif
REGISTER_ENTITY_FOR_CUTSCENE(objWeapon[WEAPON_TREVOR], "Trevors_weapon", CU_ANIMATE_EXISTING_SCRIPT_ENTITY)
START_CUTSCENE()
cameraIndex = CREATE_CAM_WITH_PARAMS_AND_SETUP_SCENE("DEFAULT_SCRIPTED_CAMERA",<<-31.2,3040.7,40>>, << 5.2109, 1.3016, -35.9444 >>, 45, TRUE)
//camera
SETTIMERA(0)
mission_substage++
endif
break
case 1
if GET_CUTSCENE_TIME() >= 2000
IF IS_SCREEN_FADED_OUT()
DO_SCREEN_FADE_IN(0)
ENDIF
mission_substage++
endif
break
case 2
if GET_CUTSCENE_TIME() >= 24000
or HAS_CUTSCENE_FINISHED()
STOP_CUTSCENE_IMMEDIATELY()
mission_substage++
endif
break
case 3
if HAS_CUTSCENE_FINISHED()
if not bDrawMenu
and bresetScene
DO_SCREEN_FADE_OUT(0)
if bPlayThrough
Load_Stage_Assets(AS_BUGGY)
set_up_stage(AS_BUGGY)
Mission_Set_Stage(AS_BUGGY)
mission_substage = STAGE_ENTRY
else
iSkipToStage = enum_to_int(STAGE_11_TREV1_MCS3_P2_B)
bDoSkip = true
endif
endif
endif
break
endswitch
endproc
proc AST_BUGGY()
switch mission_substage
case STAGE_ENTRY
if GET_PLAYER_PED_ENUM(player_ped_id()) != CHAR_TREVOR
WHILE NOT SET_CURRENT_SELECTOR_PED(SELECTOR_PED_TREVOR)
WAIT(0)
ENDWHILE
endif
CLEAR_AREA(<<2330.8523, 3127.2266, 48.0014 >>,30,true)
bHighDofOn = true
cameraIndex = CREATE_CAM_WITH_PARAMS_AND_SETUP_SCENE("DEFAULT_SCRIPTED_CAMERA", << 2330.8523, 3127.2266, 48.0014 >>, << 0.5023, 4.0720, 143.7649 >>, 46.5, TRUE)
RENDER_SCRIPT_CAMS(TRUE, FALSE)
settimera(0)
//buggy
if not DOES_ENTITY_EXIST(vehs[veh_dune].id)
vehs[veh_dune].id = CREATE_VEHICLE(dune,<< 2330.9966, 3107.8857, 47.1834 >>, 12.5717)
SET_VEHICLE_EXTRA(vehs[veh_dune].id,3,true)
SET_VEHICLE_EXTRA(vehs[veh_dune].id,2,true)
POINT_CAM_AT_ENTITY(cameraIndex,vehs[veh_dune].id,<<0,0,0>>)
SET_PED_INTO_VEHICLE(PLAYER_PED_ID(),vehs[veh_dune].id)
SET_VEHICLE_ENGINE_ON(vehs[veh_dune].id,true,true)
endif
mission_substage++
break
case 1
if timera() > 500
if IS_SCREEN_FADED_OUT()
DO_SCREEN_FADE_IN(0)
endif
if IsEntityAlive(vehs[veh_dune].id)
SET_VEHICLE_EXTRA(vehs[veh_dune].id,3,true)
SET_VEHICLE_EXTRA(vehs[veh_dune].id,2,true)
endif
SET_CAM_PARAMS(cameraIndex, << 2330.8523, 3127.2266, 48.0014 >>, << 0.5313, -3.1592, 83.2309 >>, 36.5, 10000, GRAPH_TYPE_LINEAR, GRAPH_TYPE_LINEAR)
bplayerControl = true
mission_substage++
endif
break
case 2
if timera() > 10000
if not bDrawMenu
and bresetScene
DO_SCREEN_FADE_OUT(0)
if bPlayThrough
Load_Stage_Assets(AS_TREV_MOL)
set_up_stage(AS_TREV_MOL)
Mission_Set_Stage(AS_TREV_MOL)
mission_substage = STAGE_ENTRY
else
if IsEntityAlive(player_ped_id())
SET_ENTITY_COORDS(player_ped_id(),<<2328.93408, 3109.98779, 47.17923>>)
endif
if IsEntityAlive(vehs[veh_dune].id)
EMPTY_VEHICLE(vehs[veh_dune].id)
DELETE_VEHICLE(vehs[veh_dune].id)
endif
DESTROY_ALL_CAMS()
mission_substage = STAGE_ENTRY
endif
endif
endif
break
endswitch
endproc
proc AST_TREV_MOL()
switch mission_substage
case STAGE_ENTRY
CLEAR_AREA(<<2461.0942, 4952.7583, 45.2938 >>,30,true)
bHighDofOn = true
cameraIndex = CREATE_CAM_WITH_PARAMS_AND_SETUP_SCENE("DEFAULT_SCRIPTED_CAMERA",<< 2461.9463, 4953.2314, 45.3812 >>, << 5.2509, 0.2879, -60.8458 >>, 45.9737, TRUE)
RENDER_SCRIPT_CAMS(TRUE, FALSE)
if not DOES_ENTITY_EXIST(peds[mpf_trev].id)
peds[mpf_trev].id = CREATE_PED(PEDTYPE_MISSION,player_two,<< 2463.4604, 4953.9409, 44.1651 >>, 61.5282)
SET_PED_COMP_ITEM_CURRENT_SP(peds[mpf_trev].id, COMP_TYPE_OUTFIT, OUTFIT_P2_DEFAULT)
GIVE_WEAPON_TO_PED(peds[mpf_trev].id,WEAPONTYPE_MOLOTOV,10,true,true)
SET_CURRENT_PED_WEAPON(peds[mpf_trev].id,WEAPONTYPE_MOLOTOV,true)
syncsceneID = CREATE_SYNCHRONIZED_SCENE(<<2463.460,4953.941,45.165>>,<<0,0,180>>)
TASK_SYNCHRONIZED_SCENE(peds[mpf_trev].id,syncsceneID,"trailer2@molotov_throw","trevor_throw_molotov",INSTANT_BLEND_IN,NORMAL_BLEND_OUT)
FORCE_PED_AI_AND_ANIMATION_UPDATE(peds[mpf_trev].id,false)
endif
mission_substage++
break
case 1
if IsEntityAlive(peds[mpf_trev].id)
and HAVE_ALL_STREAMING_REQUESTS_COMPLETED(peds[mpf_trev].id)
if IS_SCREEN_FADED_OUT()
DO_SCREEN_FADE_IN(0)
endif
SET_CAM_PARAMS(cameraIndex,<< 2461.9534, 4953.2207, 45.3811 >>, << 6.9905, 0.3115, -55.1523 >>,45.9737, 1000, GRAPH_TYPE_LINEAR, GRAPH_TYPE_LINEAR)
SHAKE_CAM(cameraIndex,"HAND_SHAKE",0.2)
mission_substage++
endif
break
case 2
if IS_SYNCHRONIZED_SCENE_RUNNING(syncsceneID)
and GET_SYNCHRONIZED_SCENE_PHASE(syncsceneID) >= 0.37
camfollow = CREATE_CAMERA_WITH_PARAMS(CAMTYPE_SCRIPTED,<< 2461.9534, 4953.2207, 45.3811 >>, << 9.4673, 0.3115, -58.1561 >>,39.2322)
SHAKE_CAM(camfollow,"HAND_SHAKE",0.2)
SET_CAM_ACTIVE_WITH_INTERP(camfollow,cameraIndex,700)
mission_substage++
endif
break
case 3
if IS_SYNCHRONIZED_SCENE_RUNNING(syncsceneID)
and GET_SYNCHRONIZED_SCENE_PHASE(syncsceneID) >= 0.86
if not bDrawMenu
and bresetScene
DO_SCREEN_FADE_OUT(0)
if bPlayThrough
Load_Stage_Assets(AS_FIRE_TRAIL)
set_up_stage(AS_FIRE_TRAIL)
Mission_Set_Stage(AS_FIRE_TRAIL)
mission_substage = STAGE_ENTRY
else
if timerb() > 2000
if DOES_ENTITY_EXIST(peds[mpf_trev].id)
delete_ped(peds[mpf_trev].id)
endif
DESTROY_ALL_CAMS()
mission_substage = STAGE_ENTRY
endif
endif
else
settimerb(0)
endif
endif
break
endswitch
endproc
PROC AST_FIRE_TRAIL()
switch mission_substage
case STAGE_ENTRY
if IS_SCREEN_FADED_OUT()
DO_SCREEN_FADE_IN(0)
endif
cameraIndex = CREATE_CAM_WITH_PARAMS_AND_SETUP_SCENE("DEFAULT_SCRIPTED_CAMERA", << 2440.2930, 4969.5010, 47.2616 >>, << -18.8169, -0.7638, -66.2176 >>,60.0335, TRUE)
SET_CAM_ACTIVE(cameraIndex,true)
SHAKE_CAM(cameraIndex,"HAND_SHAKE",0.8)
RENDER_SCRIPT_CAMS(TRUE, FALSE)
CLEAR_AREA(<<2461.0942, 4952.7583, 45.2938 >>,50,true)
SET_CAM_PARAMS(cameraIndex,<< 2440.2578, 4969.5659, 47.2585 >>, << -27.1572, -0.4346, -83.5768 >>,59.6725,2500,GRAPH_TYPE_LINEAR,GRAPH_TYPE_LINEAR)
gasTrail[0].coord = <<2449.5710, 4973.7192, 45.8104>>
gasTrail[1].coord = <<2448.6167, 4973.2974, 45.8106>>
gasTrail[2].coord = <<2447.6245, 4973.0576, 45.8106>>
gasTrail[3].coord = <<2446.6130, 4973.3550, 45.8106>>
gasTrail[4].coord = <<2445.5569, 4973.1733, 45.8106>>
gasTrail[5].coord = <<2445.3013, 4972.8477, 46.8068>>
gasTrail[6].coord = <<2445.1509, 4972.8140, 45.8106>>
gasTrail[7].coord = <<2444.3108, 4972.2383, 45.8106>>
gasTrail[8].coord = <<2443.4321, 4971.7354, 45.8106>>
gasTrail[9].coord = <<2443.1523, 4970.6953, 45.8106>>
gasTrail[10].coord = <<2442.3347, 4970.1021, 45.8106>>
gasTrail[11].coord = <<2442.0115, 4969.1426, 45.8106>>
gasTrail[12].coord = <<2441.0894, 4968.6128, 45.8306>>
gasTrail[13].coord = <<2440.7466, 4968.0190, 45.8106>>
SETTIMERA(0)
IGNITE_GAS_TRAIL()
mission_substage++
break
case 1
if TIMERA() > 2000
if not bDrawMenu
and bresetScene
DO_SCREEN_FADE_OUT(0)
if bPlayThrough
Load_Stage_Assets(AS_BARN_BOOM)
set_up_stage(AS_BARN_BOOM)
Mission_Set_Stage(AS_BARN_BOOM)
mission_substage = STAGE_ENTRY
else
STOP_FIRE_IN_RANGE(<<2440.7466, 4968.0190, 45.8106>>,30)
CLEANUP_GAS_TRAILS()
DESTROY_ALL_CAMS()
mission_substage++
endif
endif
endif
break
case 2
if TIMERA() > 4500
mission_substage = STAGE_ENTRY
endif
break
endswitch
ENDPROC
proc AST_BARN_BLOW()
switch mission_substage
case STAGE_ENTRY
if HAS_CUTSCENE_LOADED()
if GET_PLAYER_PED_ENUM(player_ped_id()) != CHAR_FRANKLIN
WHILE NOT SET_CURRENT_SELECTOR_PED(SELECTOR_PED_FRANKLIN)
WAIT(0)
ENDWHILE
endif
cameraIndex = CREATE_CAM_WITH_PARAMS_AND_SETUP_SCENE("DEFAULT_SCRIPTED_CAMERA", << 2474.4490, 4949.2695, 44.7158 >>, << 6.6523, -0.0000, 47.9417 >>, 23.7333, TRUE)
RENDER_SCRIPT_CAMS(TRUE, FALSE)
SET_CAM_PARAMS(cameraIndex,<< 2474.4490, 4949.1992, 44.7158 >>, << 8.6303, 0.0000, 47.9417 >>, 25,1000, GRAPH_TYPE_LINEAR, GRAPH_TYPE_LINEAR)
CLEAR_AREA(<<2461.0942, 4952.7583, 45.2938 >>,50,true)
CREATE_MODEL_HIDE(<<2457.15, 4968.79, 48.677>>, 100,V_ret_fhglassfrm,true)
CREATE_MODEL_HIDE(<<2457.15, 4968.79, 48.677>>, 100,V_RET_FHGLASSFRMSML,true)
SET_CUTSCENE_FADE_VALUES()
START_CUTSCENE()
if IS_SCREEN_FADED_OUT()
DO_SCREEN_FADE_IN(0)
endif
mission_substage++
endif
break
case 1
if GET_CUTSCENE_TIME() > 1000
SET_CAM_PARAMS(cameraIndex,<< 2472.7263, 4943.2305, 44.5535 >>, << 13.5964, -0.0145, 35.8347 >>, 36.6522,0, GRAPH_TYPE_LINEAR, GRAPH_TYPE_LINEAR)
SET_CAM_PARAMS(cameraIndex,<< 2472.7744, 4943.2002, 44.8689 >>, << 11.1380, -0.0145, 35.8347 >>, 36.6522,2500, GRAPH_TYPE_LINEAR, GRAPH_TYPE_LINEAR)
settimera(0)
mission_substage++
endif
break
case 2
if HAS_CUTSCENE_FINISHED()
or GET_CUTSCENE_TIME() > 3000
if IS_CUTSCENE_PLAYING()
STOP_CUTSCENE_IMMEDIATELY()
endif
if not bDrawMenu
and bresetScene
if timerb() > 2000
DO_SCREEN_FADE_OUT(0)
if bPlayThrough
Load_Stage_Assets(STAGE_12_CHIN1_MCS4)
set_up_stage(STAGE_12_CHIN1_MCS4)
Mission_Set_Stage(STAGE_12_CHIN1_MCS4)
mission_substage = STAGE_ENTRY
else
bDoSkip = true
iSkipToStage = enum_to_int(AS_BARN_BOOM)
mission_substage = STAGE_ENTRY
endif
endif
else
settimerb(0)
endif
endif
break
endswitch
if IS_CUTSCENE_PLAYING()
BYPASS_CUTSCENE_CAM_RENDERING_THIS_UPDATE()
endif
endproc
proc ST_12_CHIN1_MCS4() // dont mind the bodies
switch mission_substage
case STAGE_ENTRY
if HAS_CUTSCENE_LOADED()
if GET_PLAYER_PED_ENUM(player_ped_id()) = CHAR_TREVOR
SET_ENTITY_VISIBLE(player_ped_id(),true)
endif
//camera
START_CUTSCENE()
cameraIndex = CREATE_CAM_WITH_PARAMS_AND_SETUP_SCENE("DEFAULT_SCRIPTED_CAMERA",<< 1387.8705, 3594.2642, 33.8831 >>, << 5.2109, 1.3016, -35.9444 >>, 45, TRUE)
CLEAR_AREA(<< 1387.8705, 3594.2642, 33.8831 >>,50,true)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(0,TRUE,1388.541382,3595.834717,34.822456,1.020051)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(1,TRUE,1368.177002,3599.519043,34.564472,8.601562)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(2,TRUE,1388.541382,3595.834717,34.822456,4.988801)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(3,TRUE,1382.398926,3606.866699,37.343925,37.099258)
if not DOES_ENTITY_EXIST(peds[mpf_driver].id)
peds[mpf_driver].id = CREATE_PED(PEDTYPE_MISSION,G_M_Y_PoloGoon_01,<<1372.51465, 3596.12451, 35.89510>>,50)
SET_ENTITY_LOD_DIST(peds[mpf_driver].id ,200)
endif
if not DOES_ENTITY_EXIST(peds[mpf_frank].id)
peds[mpf_frank].id = CREATE_PED(PEDTYPE_MISSION,G_M_Y_PoloGoon_01,<<1374.22021, 3598.77832, 35.89492>>,256)
SET_ENTITY_LOD_DIST(peds[mpf_frank].id ,200)
endif
if not DOES_ENTITY_EXIST(peds[mpf_mike].id)
peds[mpf_mike].id = CREATE_PED(PEDTYPE_MISSION,G_M_Y_PoloGoon_01,<<1373.69910, 3593.69238, 35.88594>>,10)
SET_ENTITY_LOD_DIST(peds[mpf_mike].id ,200)
endif
if not DOES_ENTITY_EXIST(vehs[veh_exp1].id)
vehs[veh_exp1].id = CREATE_VEHICLE(LANDSTALKER,<< 1368.1614, 3599.2683, 33.8946 >>, 252.9023)
SET_VEHICLE_COLOUR_COMBINATION(vehs[veh_exp1].id,0)
SET_VEHICLE_DOOR_OPEN(vehs[veh_exp1].id,SC_DOOR_FRONT_LEFT,true)
endif
if not DOES_ENTITY_EXIST(vehs[veh_exp2].id)
vehs[veh_exp2].id = CREATE_VEHICLE(SENTINEL,<< 1366.8489, 3594.2241, 33.8873 >>, 289.2585)
SET_VEHICLE_COLOUR_COMBINATION(vehs[veh_exp2].id,0)
SET_VEHICLE_DOOR_OPEN(vehs[veh_exp2].id,SC_DOOR_FRONT_LEFT,true)
SET_VEHICLE_DOOR_OPEN(vehs[veh_exp2].id,SC_DOOR_FRONT_RIGHT,true)
endif
SETTIMERA(0)
mission_substage++
endif
break
case 1
if GET_CUTSCENE_TIME() >= 1000
IF IS_SCREEN_FADED_OUT()
DO_SCREEN_FADE_IN(0)
ENDIF
if IsEntityAlive(peds[mpf_driver].id)
SHOOT_SINGLE_BULLET_BETWEEN_COORDS(<<1382.8558, 3598.7285, 44.4848>>,(GET_ENTITY_COORDS(peds[mpf_driver].id)+<<0,0,0.1>>),100,true,WEAPONTYPE_ASSAULTSHOTGUN)
EXPLODE_PED_HEAD(peds[mpf_driver].id)
endif
if IsEntityAlive(peds[mpf_frank].id)
SHOOT_SINGLE_BULLET_BETWEEN_COORDS(<<1382.8558, 3598.7285, 44.4848>>,GET_ENTITY_COORDS(peds[mpf_frank].id),100,true,WEAPONTYPE_ASSAULTSHOTGUN)
EXPLODE_PED_HEAD(peds[mpf_frank].id)
endif
if IsEntityAlive(peds[mpf_mike].id)
SHOOT_SINGLE_BULLET_BETWEEN_COORDS(<<1382.8558, 3598.7285, 44.4848>>,(GET_ENTITY_COORDS(peds[mpf_mike].id)+<<0,0,0.1>>),100,true,WEAPONTYPE_ASSAULTSHOTGUN)
EXPLODE_PED_HEAD(peds[mpf_mike].id)
endif
if IsEntityAlive(vehs[veh_exp1].id)
SHOOT_SINGLE_BULLET_BETWEEN_COORDS(<<1382.8558, 3598.7285, 44.4848>>,(GET_ENTITY_COORDS(vehs[veh_exp1].id)+<<0.2,-0.1,0.3>>),100,true,WEAPONTYPE_ASSAULTSHOTGUN)
SHOOT_SINGLE_BULLET_BETWEEN_COORDS(<<1382.8558, 3598.7285, 44.4848>>,GET_ENTITY_COORDS(vehs[veh_exp1].id),100,true,WEAPONTYPE_ASSAULTSHOTGUN)
endif
if IsEntityAlive(vehs[veh_exp2].id)
SHOOT_SINGLE_BULLET_BETWEEN_COORDS(<<1382.8558, 3598.7285, 44.4848>>,GET_ENTITY_COORDS(vehs[veh_exp1].id),100,true,WEAPONTYPE_ASSAULTSHOTGUN)
endif
mission_substage++
endif
break
case 2
if GET_CUTSCENE_TIME() >= 25000
STOP_CUTSCENE_IMMEDIATELY()
mission_substage++
endif
break
case 3
if HAS_CUTSCENE_FINISHED()
if not bDrawMenu
and bresetScene
WASH_DECALS_IN_RANGE(<<1373.75684, 3597.12354, 33.89509>>,100,50)
if bPlayThrough
Load_Stage_Assets(STAGE_13_DOCKS_BRIDGE_SHOT)
set_up_stage(STAGE_13_DOCKS_BRIDGE_SHOT)
Mission_Set_Stage(STAGE_13_DOCKS_BRIDGE_SHOT)
mission_substage = STAGE_ENTRY
else
iSkipToStage = enum_to_int(STAGE_12_CHIN1_MCS4)
bDoSkip = true
endif
endif
endif
break
endswitch
endproc
proc ST_13_DOCKS_BRIDGE_SHOT()
switch mission_substage
case STAGE_ENTRY
fLODscale = 1.3
cameraIndex = CREATE_CAM_WITH_PARAMS_AND_SETUP_SCENE("DEFAULT_SCRIPTED_CAMERA", << 844.4641, -2703.3467, 64.8 >>, << -3.0696, 0.0000, 45.0314 >>, 34.0, TRUE)
SET_CAM_PARAMS(cameraIndex, << 844.4641, -2696.1641, 64.8 >>, << -3.0696, 0.0000, 45.0314 >>, 34, 3000, GRAPH_TYPE_LINEAR, GRAPH_TYPE_LINEAR)
RENDER_SCRIPT_CAMS(TRUE, FALSE)
IF IS_SCREEN_FADED_OUT()
DO_SCREEN_FADE_IN(0)
ENDIF
SETTIMERA(0)
mission_substage++
break
case 1
if TIMERA() > 3000
if not bDrawMenu
and bresetScene
if bPlayThrough
DO_SCREEN_FADE_OUT(0)
Load_Stage_Assets(STAGE_14_GHETTO_TRAIN_SHOT)
set_up_stage(STAGE_14_GHETTO_TRAIN_SHOT)
Mission_Set_Stage(STAGE_14_GHETTO_TRAIN_SHOT)
mission_substage = STAGE_ENTRY
else
mission_substage = STAGE_ENTRY
endif
endif
endif
break
endswitch
endproc
proc ST_13_DOCKS_BRIDGE_SHOT_ALT()
switch mission_substage
case STAGE_ENTRY
fLODscale = 1.3
cameraIndex = CREATE_CAM_WITH_PARAMS_AND_SETUP_SCENE("DEFAULT_SCRIPTED_CAMERA", << 844.4641, -2703.3467, 64.8 >>, << -3.0696, 0.0000, 45.0314 >>, 34.0, TRUE)
SET_CAM_PARAMS(cameraIndex, << 844.4641, -2696.1641, 64.8 >>, << -3.0696, 0.0000, 45.0314 >>, 34, 3000, GRAPH_TYPE_LINEAR, GRAPH_TYPE_LINEAR)
RENDER_SCRIPT_CAMS(TRUE, FALSE)
IF IS_SCREEN_FADED_OUT()
DO_SCREEN_FADE_IN(0)
ENDIF
SETTIMERA(0)
mission_substage++
break
case 1
if TIMERA() > 3000
if not bDrawMenu
and bresetScene
if bPlayThrough
DO_SCREEN_FADE_OUT(0)
Load_Stage_Assets(STAGE_14_GHETTO_TRAIN_SHOT)
set_up_stage(STAGE_14_GHETTO_TRAIN_SHOT)
Mission_Set_Stage(STAGE_14_GHETTO_TRAIN_SHOT)
mission_substage = STAGE_ENTRY
else
mission_substage = STAGE_ENTRY
endif
endif
endif
break
endswitch
endproc
proc ST_14_GHETTO_TRAIN_SHOT()
switch mission_substage
case STAGE_ENTRY
//cam
cameraIndex = CREATE_CAM_WITH_PARAMS_AND_SETUP_SCENE("DEFAULT_SCRIPTED_CAMERA",<< 263.4090, -1907.6572, 31.7329 >>, << -6.2916, 0.0000, 111.8651 >>, 33.4236, TRUE)
SET_CAM_PARAMS(cameraIndex,<< 263.3643, -1907.6705, 31.7278 >>, << -5.8188, -0.0000, 105.4892 >>, 30.0626, 3500, GRAPH_TYPE_LINEAR, GRAPH_TYPE_LINEAR)
RENDER_SCRIPT_CAMS(TRUE, FALSE)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(0,TRUE,229.604538,-1921.954956,24.265200,12.000000)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(1,TRUE,207.779190,-1932.754028,24.944870,12.731603)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(2,TRUE,145.656769,-1956.644043,22.935163,72.007889)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(3,TRUE,145.656769,-1956.644043,22.935163,250.000000)
//create train
vehs[veh_Ghetto_train].id = CREATE_MISSION_TRAIN(iTrainConfiguration,vtrainGhettopos, TRUE)
SET_TRAIN_CRUISE_SPEED(vehs[veh_Ghetto_train].id, 0)
SET_TRAIN_SPEED(vehs[veh_Ghetto_train].id, 0)
CLEAR_AREA(<<225.69148, -1918.71436, 23.08420>>,10,true)
if not DOES_ENTITY_EXIST(vehs[veh_Bike].id)
CLEAR_AREA(<< -461.0177, 1098.2268, 326.6818 >>,5,true)
vehs[veh_Bike].id = CREATE_VEHICLE(DOMINATOR,<< -461.0177, 1098.2268, 326.6818 >>, 339.7852)
peds[mpf_chop].id = CREATE_RANDOM_PED_AS_DRIVER(vehs[veh_Bike].id)
TASK_VEHICLE_DRIVE_WANDER(peds[mpf_chop].id,vehs[veh_Bike].id,10,DRIVINGMODE_STOPFORCARS_STRICT)
endif
if not DOES_ENTITY_EXIST(vehs[veh_Driveway].id)
CLEAR_AREA(<< 223.2482, -1906.0947, 23.7127 >>,5,true)
vehs[veh_Driveway].id = CREATE_VEHICLE(FUTO,<< 223.2482, -1906.0947, 23.7127 >>, 138.0350)
peds[mpf_driver].id = CREATE_RANDOM_PED_AS_DRIVER(vehs[veh_Driveway].id)
endif
if not DOES_ENTITY_EXIST(vehs[veh_dune].id)
CLEAR_AREA(<< 192.2951, -1908.0621, 22.3350>>,5,true)
vehs[veh_dune].id = CREATE_VEHICLE(GRESLEY,<< 192.2951, -1908.0621, 22.3350 >>, 230.4381)
peds[mpf_frank].id = CREATE_RANDOM_PED_AS_DRIVER(vehs[veh_dune].id)
TASK_VEHICLE_DRIVE_WANDER(peds[mpf_frank].id,vehs[veh_dune].id,10,DRIVINGMODE_STOPFORCARS_STRICT)
endif
if not DOES_ENTITY_EXIST(vehs[veh_exp1].id)
CLEAR_AREA(<<195.5358, -1939.4250, 20.3868 >>,5,true)
vehs[veh_exp1].id = CREATE_VEHICLE(CAVALCADE,<< 195.5358, -1939.4250, 20.3868 >>, 142.0388)
peds[mpf_mike].id = CREATE_RANDOM_PED_AS_DRIVER(vehs[veh_exp1].id)
TASK_VEHICLE_DRIVE_WANDER(peds[mpf_mike].id,vehs[veh_exp1].id,5,DRIVINGMODE_STOPFORCARS_STRICT)
endif
if not DOES_ENTITY_EXIST(vehs[veh_exp2].id)
CLEAR_AREA(<< 219.1808, -1948.7679, 21.0163 >>,5,true)
vehs[veh_exp2].id = CREATE_VEHICLE(SERRANO,<< 219.1808, -1948.7679, 21.0163 >>, 321.7678)
peds[mpf_oldman].id = CREATE_RANDOM_PED_AS_DRIVER(vehs[veh_exp2].id)
endif
if not DOES_ENTITY_EXIST(vehs[veh_exp3].id)
CLEAR_AREA(<< 181.9075, -1950.0544, 19.2296 >>,5,true)
vehs[veh_exp3].id = CREATE_VEHICLE(ORACLE,<< 181.9075, -1950.0544, 19.2296 >>, 140.7774)
peds[mpf_phone].id = CREATE_RANDOM_PED_AS_DRIVER(vehs[veh_exp3].id)
TASK_VEHICLE_DRIVE_WANDER(peds[mpf_phone].id,vehs[veh_exp3].id,15,DRIVINGMODE_STOPFORCARS_STRICT)
endif
if not DOES_ENTITY_EXIST(vehs[veh_jet].id)
vehs[veh_jet].id = CREATE_VEHICLE(bus,<<228.8420, -1938.4072, 22.1604>>, 319.7927)
SET_VEHICLE_COLOUR_COMBINATION(vehs[veh_jet].id,1)
peds[mpf_jetPilot].id = CREATE_RANDOM_PED_AS_DRIVER(vehs[veh_jet].id)
TASK_VEHICLE_DRIVE_WANDER(peds[mpf_jetPilot].id,vehs[veh_jet].id,20,DRIVINGMODE_STOPFORCARS_STRICT)
endif
SETTIMERA(0)
mission_substage++
break
case 1
if timera()> 1000
if IS_SCREEN_FADED_OUT()
DO_SCREEN_FADE_IN(0)
endif
if IsEntityAlive(vehs[veh_Ghetto_train].id)
SET_TRAIN_CRUISE_SPEED(vehs[veh_Ghetto_train].id, ftrainSpeed)
SET_TRAIN_SPEED(vehs[veh_Ghetto_train].id, ftrainSpeed)
endif
SETTIMERA(0)
mission_substage++
endif
break
case 2
if timera() > 2500
if not bDrawMenu
and bresetScene
DO_SCREEN_FADE_OUT(0)
if bPlayThrough
Load_Stage_Assets(STAGE_15_ARM1_INT_P3)
set_up_stage(STAGE_15_ARM1_INT_P3)
Mission_Set_Stage(STAGE_15_ARM1_INT_P3)
mission_substage = STAGE_ENTRY
else
if timera() > 3500
if DOES_ENTITY_EXIST(vehs[veh_Bike].id)
DELETE_VEHICLE(vehs[veh_Bike].id)
endif
if DOES_ENTITY_EXIST(peds[mpf_chop].id)
delete_ped(peds[mpf_chop].id)
endif
if DOES_ENTITY_EXIST(vehs[veh_Driveway].id)
DELETE_VEHICLE(vehs[veh_Driveway].id)
endif
if DOES_ENTITY_EXIST(peds[mpf_driver].id)
delete_ped(peds[mpf_driver].id)
endif
if DOES_ENTITY_EXIST(vehs[veh_dune].id)
DELETE_VEHICLE(vehs[veh_dune].id)
endif
if DOES_ENTITY_EXIST(peds[mpf_frank].id)
delete_ped(peds[mpf_frank].id)
endif
if DOES_ENTITY_EXIST(vehs[veh_exp1].id)
DELETE_VEHICLE(vehs[veh_exp1].id)
endif
if DOES_ENTITY_EXIST(peds[mpf_mike].id)
delete_ped(peds[mpf_mike].id)
endif
if DOES_ENTITY_EXIST(vehs[veh_exp2].id)
DELETE_VEHICLE(vehs[veh_exp2].id)
endif
if DOES_ENTITY_EXIST(peds[mpf_oldman].id)
delete_ped(peds[mpf_oldman].id)
endif
if DOES_ENTITY_EXIST(vehs[veh_exp3].id)
DELETE_VEHICLE(vehs[veh_exp3].id)
endif
if DOES_ENTITY_EXIST(peds[mpf_phone].id)
delete_ped(peds[mpf_phone].id)
endif
if DOES_ENTITY_EXIST(vehs[veh_jet].id)
DELETE_VEHICLE(vehs[veh_jet].id)
endif
if DOES_ENTITY_EXIST(peds[mpf_jetPilot].id)
delete_ped(peds[mpf_jetPilot].id)
endif
DELETE_MISSION_TRAIN(vehs[veh_Ghetto_train].id)
mission_substage = STAGE_ENTRY
endif
endif
endif
endif
break
endswitch
endproc
proc ST_15_ARM1_INT_P3() // frank lamar and mike
switch mission_substage
case STAGE_ENTRY
if HAS_CUTSCENE_LOADED()
if GET_PLAYER_PED_ENUM(player_ped_id()) = CHAR_FRANKLIN
or get_player_ped_enum(player_ped_id()) =CHAR_MICHAEL
SET_ENTITY_VISIBLE(player_ped_id(),true)
endif
START_CUTSCENE()
//camera
cameraIndex = CREATE_CAM_WITH_PARAMS_AND_SETUP_SCENE("DEFAULT_SCRIPTED_CAMERA",<< -1882.8746, -621.5580, 11.2904 >>, << 5.2109, 1.3016, -35.9444 >>, 39.2, TRUE)
RENDER_SCRIPT_CAMS(TRUE, FALSE)
SETTIMERA(0)
//ambient peds
if not DOES_ENTITY_EXIST(peds[mpf_slide].id)
peds[mpf_slide].id = CREATE_PED(PEDTYPE_MISSION,A_F_Y_Runner_01,<< -1855.9010, -649.7280, 9.7416 >>, 226.4764)
TASK_PLAY_ANIM(peds[mpf_slide].id,"move_f@jogger","jogging",INSTANT_BLEND_IN,NORMAL_BLEND_OUT,-1,AF_LOOPING)
endif
if not DOES_ENTITY_EXIST(peds[mpf_driver].id)
peds[mpf_driver].id = CREATE_PED(PEDTYPE_MISSION,A_M_Y_Runner_01,<<-1849.91382, -652.79443, 9.58069>>, 47.1811)
TASK_PLAY_ANIM(peds[mpf_driver].id,"move_m@jogger","run",INSTANT_BLEND_IN,NORMAL_BLEND_OUT,-1,AF_LOOPING)
endif
if not DOES_ENTITY_EXIST(peds[mpf_fatmancross].id)
peds[mpf_fatmancross].id = CREATE_PED(PEDTYPE_MISSION,A_M_Y_Beach_01,<<-1868.48071, -641.28119, 10.17934>>)
TASK_START_SCENARIO_AT_POSITION(peds[mpf_fatmancross].id,"WORLD_HUMAN_SMOKING",<<-1867.03259, -652.71924, 9.88202>>,144.1027)
endif
if not DOES_ENTITY_EXIST(peds[mpf_oldman].id)
peds[mpf_oldman].id = CREATE_PED(PEDTYPE_MISSION,A_F_Y_Beach_01,<<-1869.61414, -641.03345, 10.09873>>)
TASK_START_SCENARIO_AT_POSITION(peds[mpf_oldman].id,"WORLD_HUMAN_TOURIST_MOBILE",<<-1868.18555, -652.66718, 9.85372>>,144.1027)
endif
if not DOES_ENTITY_EXIST(peds[mpf_pilot1].id)
peds[mpf_pilot1].id = CREATE_PED(PEDTYPE_MISSION,A_M_Y_Beach_02,<<-1832.87830, -658.80634, 9.39731>>)
TASK_START_SCENARIO_AT_POSITION(peds[mpf_pilot1].id,"WORLD_HUMAN_DRINKING",<<-1855.64075, -643.02692, 9.79211>>,91.8124)
endif
if not DOES_ENTITY_EXIST(peds[mpf_phone].id)
peds[mpf_phone].id = CREATE_PED(PEDTYPE_MISSION,A_M_Y_Beach_03,<<-1835.54700, -656.17584, 9.43967>>)
TASK_START_SCENARIO_AT_POSITION(peds[mpf_phone].id,"WORLD_HUMAN_HANG_OUT_STREET",<<-1855.96375, -641.81024, 9.79603>>,156.6058)
endif
mission_substage++
endif
break
case 1
if GET_CUTSCENE_TIME() >= 5000
IF IS_SCREEN_FADED_OUT()
DO_SCREEN_FADE_IN(0)
ENDIF
SET_CAM_PARAMS(cameraIndex,<< -1882.8746, -621.5580, 11.2904 >>, << 6.8497, 1.3016, -33.8065 >>, 39.2, 3500, GRAPH_TYPE_LINEAR, GRAPH_TYPE_LINEAR)
mission_substage++
endif
break
case 2
if GET_CUTSCENE_TIME() >= 22600
SET_CAM_PARAMS(cameraIndex,<< -1884.0699, -613.8306, 11.9532 >>, << -1.7772, 0.0002, -145.2922 >>, 18.5509, 0, GRAPH_TYPE_LINEAR, GRAPH_TYPE_LINEAR)
SET_CAM_PARAMS(cameraIndex,<< -1884.1084, -613.8566, 11.9532 >>, << -1.0972, 0.0002, -144.8821 >>, 17.3141, 4000, GRAPH_TYPE_LINEAR, GRAPH_TYPE_LINEAR)
mission_substage++
endif
break
case 3
if GET_CUTSCENE_TIME() >= 25500
STOP_CUTSCENE_IMMEDIATELY()
mission_substage++
endif
break
case 4
if HAS_CUTSCENE_FINISHED()
if not bDrawMenu
and bresetScene
DO_SCREEN_FADE_OUT(0)
if bPlayThrough
Load_Stage_Assets(STAGE_16_FRA2_INT_P2)
set_up_stage(STAGE_16_FRA2_INT_P2)
Mission_Set_Stage(STAGE_16_FRA2_INT_P2)
mission_substage = STAGE_ENTRY
else
iSkipToStage = enum_to_int(STAGE_15_ARM1_INT_P3)
bDoSkip = true
endif
endif
endif
break
endswitch
if IS_CUTSCENE_PLAYING()
if GET_CUTSCENE_TIME() < 22600
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(0,TRUE,-1881.205811,-619.626770,11.360289,1.192433)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(1,TRUE,-1880.906982,-617.691467,11.383300,1.421409)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(2,TRUE,-1872.708984,-608.497009,11.383300,11.796383)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(3,TRUE,-1821.171021,-548.864075,13.820810,86.968231)
elif GET_CUTSCENE_TIME() >= 22600
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(0,TRUE,-1881.365967,-617.224670,11.402990,1.328125)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(1,TRUE,-1881.205811,-619.626770,11.360289,1.192433)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(2,TRUE,-1872.708984,-628.183899,11.383300,11.796383)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(3,TRUE,-1821.171021,-637.418030,13.820810,86.968231)
endif
BYPASS_CUTSCENE_CAM_RENDERING_THIS_UPDATE()
endif
endproc
proc LNCH_ARM_1()
TEXT_LABEL_15 sMissionName = "armenian1"
switch mission_substage
case STAGE_ENTRY
if GET_PLAYER_PED_ENUM(player_ped_id()) != CHAR_FRANKLIN
WHILE NOT SET_CURRENT_SELECTOR_PED(SELECTOR_PED_FRANKLIN)
WAIT(0)
ENDWHILE
endif
mission_substage++
break
case 1
REQUEST_SCRIPT(sMissionName)
IF HAS_SCRIPT_LOADED(sMissionName)
IF REQUEST_MISSION_LAUNCH(missionCandidateID, MCTID_MUST_LAUNCH, MISSION_TYPE_STORY) = MCRET_ACCEPTED
START_NEW_SCRIPT(sMissionName, MISSION_STACK_SIZE)
SET_SCRIPT_AS_NO_LONGER_NEEDED(sMissionName)
Mission_substage++
ENDIF
endif
break
case 2
if IS_SCREEN_FADED_OUT()
DO_SCREEN_FADE_IN(0)
mission_substage++
endif
break
case 3
if IS_CUTSCENE_PLAYING()
STOP_CUTSCENE_IMMEDIATELY()
endif
IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("armenian1")) = 0
missionCandidateID = NO_CANDIDATE_ID
g_savedGlobals.sFlow.isGameflowActive = TRUE
RESET_GAMEFLOW()
g_savedGlobals.sFlow.isGameflowActive = FALSE
iSkipToStage = enum_to_int(STAGE_0_WAIT_FOR_STAGE)
bDoSkip = true
ENDIF
break
endswitch
endproc
proc ST_16_FRA2_INT_P2() // frank and ex gf
switch mission_substage
case STAGE_ENTRY
if HAS_CUTSCENE_LOADED()
fLODscale = 2
if GET_PLAYER_PED_ENUM(player_ped_id()) = CHAR_FRANKLIN
SET_ENTITY_VISIBLE(player_ped_id(),true)
endif
START_CUTSCENE()
cameraIndex = CREATE_CAM_WITH_PARAMS_AND_SETUP_SCENE("DEFAULT_SCRIPTED_CAMERA",<<-1882.8746, -621.5580, 11.2904>>, << 5.2109, 1.3016, -35.9444 >>, 45, TRUE)
SET_CLOCK_TIME(GET_CLOCK_HOURS(),50,0)
//camera
SETTIMERA(0)
mission_substage++
endif
break
case 1
if GET_CUTSCENE_TIME() >= 0
IF IS_SCREEN_FADED_OUT()
DO_SCREEN_FADE_IN(0)
ENDIF
mission_substage++
endif
break
case 2
if HAS_CUTSCENE_FINISHED()
if not bDrawMenu
and bresetScene
DO_SCREEN_FADE_OUT(0)
if bPlayThrough
Load_Stage_Assets(STAGE_17_ARM1_INT_P4)//AS_CAR_TRANS_TRUCK)
set_up_stage(STAGE_17_ARM1_INT_P4)//AS_CAR_TRANS_TRUCK)
Mission_Set_Stage(STAGE_17_ARM1_INT_P4)//AS_CAR_TRANS_TRUCK)
mission_substage = STAGE_ENTRY
else
iSkipToStage = enum_to_int(STAGE_16_FRA2_INT_P2)
bDoSkip = true
endif
endif
endif
break
endswitch
endproc
proc LNCH_CAR_STEAL_FINALE()
TEXT_LABEL_15 sMissionName = "carsteal5"
switch mission_substage
case STAGE_ENTRY
if GET_PLAYER_PED_ENUM(player_ped_id()) != CHAR_FRANKLIN
WHILE NOT SET_CURRENT_SELECTOR_PED(SELECTOR_PED_FRANKLIN)
WAIT(0)
ENDWHILE
endif
mission_substage++
break
case 1
REQUEST_SCRIPT(sMissionName)
IF HAS_SCRIPT_LOADED(sMissionName)
IF REQUEST_MISSION_LAUNCH(missionCandidateID, MCTID_MUST_LAUNCH, MISSION_TYPE_STORY) = MCRET_ACCEPTED
START_NEW_SCRIPT(sMissionName, MISSION_STACK_SIZE)
SET_SCRIPT_AS_NO_LONGER_NEEDED(sMissionName)
Mission_substage++
ENDIF
endif
break
case 2
if IS_SCREEN_FADED_OUT()
DO_SCREEN_FADE_IN(0)
mission_substage++
endif
break
case 3
IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("carsteal5")) = 0
missionCandidateID = NO_CANDIDATE_ID
g_savedGlobals.sFlow.isGameflowActive = TRUE
RESET_GAMEFLOW()
g_savedGlobals.sFlow.isGameflowActive = FALSE
iSkipToStage = enum_to_int(STAGE_0_WAIT_FOR_STAGE)
bDoSkip = true
ENDIF
break
endswitch
endproc
proc ST_17_ARM1_INT_P4() // frank and lamar talk
switch mission_substage
case STAGE_ENTRY
if HAS_CUTSCENE_LOADED()
if GET_PLAYER_PED_ENUM(player_ped_id()) = CHAR_FRANKLIN
SET_ENTITY_VISIBLE(player_ped_id(),true)
endif
START_CUTSCENE()
//camera
cameraIndex = CREATE_CAM_WITH_PARAMS_AND_SETUP_SCENE("DEFAULT_SCRIPTED_CAMERA",<< -1889.1241, -611.5778, 12.1867 >>, << 0.8171, 0.0000, -110.1338 >>, 45.4540, TRUE)
SET_CAM_ACTIVE(cameraIndex,true)
RENDER_SCRIPT_CAMS(true,false)
SHAKE_CAM(cameraIndex,"HAND_SHAKE",0.5)
SETTIMERA(0)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(0,TRUE,-1888.470459,-611.470825,11.557186,1.308422)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(1,TRUE,-1887.373779,-612.942749,11.580187,1.191715)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(2,TRUE,-1881.138184,-611.045227,11.580190,9.152658)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(3,TRUE,-1853.282837,-621.021423,-4.669847,40.000000)
mission_substage++
endif
break
case 1
if GET_CUTSCENE_TIME() >= 0
IF IS_SCREEN_FADED_OUT()
DO_SCREEN_FADE_IN(0)
ENDIF
mission_substage++
endif
break
case 2
if GET_CUTSCENE_TIME() >= 24800
SET_CAM_PARAMS(cameraIndex,<< -1889.1896, -611.6677, 12.1862 >>, << -1.8354, -0.0000, -100.9288 >>,45.4540,3000,GRAPH_TYPE_LINEAR,GRAPH_TYPE_LINEAR)
mission_substage++
endif
break
case 3
if GET_CUTSCENE_TIME() >= 27450
SET_CAM_PARAMS(cameraIndex,<< -1888.8672, -612.3585, 12.1531 >>, << 2.0534, -0.0000, -44.9319 >>,35.7958,0,GRAPH_TYPE_LINEAR,GRAPH_TYPE_LINEAR)
mission_substage++
endif
break
case 4
if GET_CUTSCENE_TIME() >= 30000
STOP_CUTSCENE_IMMEDIATELY()
mission_substage++
endif
break
case 5
if HAS_CUTSCENE_FINISHED()
if not bDrawMenu
and bresetScene
DO_SCREEN_FADE_OUT(0)
if bPlayThrough
Load_Stage_Assets(STAGE_18_ARM1_INT_P1)
set_up_stage(STAGE_18_ARM1_INT_P1)
Mission_Set_Stage(STAGE_18_ARM1_INT_P1)
mission_substage = STAGE_ENTRY
else
iSkipToStage = enum_to_int(STAGE_17_ARM1_INT_P4)
bDoSkip = true
endif
endif
endif
break
endswitch
if IS_CUTSCENE_PLAYING()
if mission_substage > 2
BYPASS_CUTSCENE_CAM_RENDERING_THIS_UPDATE()
endif
endif
endproc
proc ST_17_ARM1_INT_P4_ALT() // frank and lamar talk
switch mission_substage
case STAGE_ENTRY
if HAS_CUTSCENE_LOADED()
if GET_PLAYER_PED_ENUM(player_ped_id()) = CHAR_FRANKLIN
SET_ENTITY_VISIBLE(player_ped_id(),true)
endif
START_CUTSCENE()
//camera
cameraIndex = CREATE_CAM_WITH_PARAMS_AND_SETUP_SCENE("DEFAULT_SCRIPTED_CAMERA",<< -1889.1241, -611.5778, 12.1867 >>, << 0.8171, 0.0000, -110.1338 >>, 45.4540, TRUE)
SET_CLOCK_TIME(GET_CLOCK_HOURS(),50,0)
SET_CAM_ACTIVE(cameraIndex,true)
RENDER_SCRIPT_CAMS(true,false)
SHAKE_CAM(cameraIndex,"HAND_SHAKE",0.5)
SETTIMERA(0)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(0,TRUE,-1888.470459,-611.470825,11.557186,1.308422)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(1,TRUE,-1887.373779,-612.942749,11.580187,1.191715)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(2,TRUE,-1881.138184,-611.045227,11.580190,9.152658)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(3,TRUE,-1853.282837,-621.021423,-4.669847,40.000000)
mission_substage++
endif
break
case 1
if GET_CUTSCENE_TIME() >= 0
IF IS_SCREEN_FADED_OUT()
DO_SCREEN_FADE_IN(0)
ENDIF
mission_substage++
endif
break
case 2
if GET_CUTSCENE_TIME() >= 24800
SET_CAM_PARAMS(cameraIndex,<< -1889.1896, -611.6677, 12.1862 >>, << -1.8354, -0.0000, -100.9288 >>,45.4540,3000,GRAPH_TYPE_LINEAR,GRAPH_TYPE_LINEAR)
mission_substage++
endif
break
case 3
if GET_CUTSCENE_TIME() >= 27450
SET_CAM_PARAMS(cameraIndex,<< -1888.8672, -612.3585, 12.1531 >>, << 2.0534, -0.0000, -44.9319 >>,35.7958,0,GRAPH_TYPE_LINEAR,GRAPH_TYPE_LINEAR)
mission_substage++
endif
break
case 4
if GET_CUTSCENE_TIME() >= 30000
STOP_CUTSCENE_IMMEDIATELY()
mission_substage++
endif
break
case 5
if HAS_CUTSCENE_FINISHED()
if not bDrawMenu
and bresetScene
DO_SCREEN_FADE_OUT(0)
if bPlayThrough
Load_Stage_Assets(STAGE_18_ARM1_INT_P1)
set_up_stage(STAGE_18_ARM1_INT_P1)
Mission_Set_Stage(STAGE_18_ARM1_INT_P1)
mission_substage = STAGE_ENTRY
else
iSkipToStage = enum_to_int(STAGE_17_ARM1_INT_P4)
bDoSkip = true
endif
endif
endif
break
endswitch
if IS_CUTSCENE_PLAYING()
if mission_substage > 2
BYPASS_CUTSCENE_CAM_RENDERING_THIS_UPDATE()
endif
endif
endproc
proc LNCH_CAR_STEAL_3()
TEXT_LABEL_15 sMissionName = "carsteal3"
switch mission_substage
case STAGE_ENTRY
if GET_PLAYER_PED_ENUM(player_ped_id()) != CHAR_FRANKLIN
WHILE NOT SET_CURRENT_SELECTOR_PED(SELECTOR_PED_FRANKLIN)
WAIT(0)
ENDWHILE
endif
mission_substage++
break
case 1
REQUEST_SCRIPT(sMissionName)
IF HAS_SCRIPT_LOADED(sMissionName)
IF REQUEST_MISSION_LAUNCH(missionCandidateID, MCTID_MUST_LAUNCH, MISSION_TYPE_STORY) = MCRET_ACCEPTED
START_NEW_SCRIPT(sMissionName, MISSION_STACK_SIZE)
SET_SCRIPT_AS_NO_LONGER_NEEDED(sMissionName)
Mission_substage++
ENDIF
endif
break
case 2
if IS_SCREEN_FADED_OUT()
DO_SCREEN_FADE_IN(0)
mission_substage++
endif
break
case 3
IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("carsteal3")) = 0
missionCandidateID = NO_CANDIDATE_ID
g_savedGlobals.sFlow.isGameflowActive = TRUE
RESET_GAMEFLOW()
g_savedGlobals.sFlow.isGameflowActive = FALSE
iSkipToStage = enum_to_int(STAGE_0_WAIT_FOR_STAGE)
bDoSkip = true
ENDIF
break
endswitch
endproc
proc ST_18_ARM1_INT_P1() // shrink
switch mission_substage
case STAGE_ENTRY
if HAS_CUTSCENE_LOADED()
if GET_PLAYER_PED_ENUM(player_ped_id()) != CHAR_FRANKLIN
WHILE NOT SET_CURRENT_SELECTOR_PED(SELECTOR_PED_FRANKLIN)
WAIT(0)
ENDWHILE
endif
START_CUTSCENE()
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(0,TRUE,-1917.264038,-573.376099,21.201332,0.500000)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(1,TRUE,-1911.839233,-570.471497,18.748800,1.500000)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(2,TRUE,-1907.958618,-577.133362,18.529911,3.500000)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(3,TRUE,-1907.958618,-577.133362,18.529911,20.000000)
mission_substage++
endif
break
case 1
if GET_CUTSCENE_TIME() >= 2000
IF IS_SCREEN_FADED_OUT()
DO_SCREEN_FADE_IN(0)
ENDIF
cameraIndex = CREATE_CAM_WITH_PARAMS_AND_SETUP_SCENE("DEFAULT_SCRIPTED_CAMERA",<< -1912.8066, -570.3843, 19.4885 >>, << -12.2202, 0.0005, -131.0556 >>, 58.5346, TRUE)
SET_CAM_PARAMS(cameraIndex,<< -1912.8699, -570.4575, 19.4885 >>, << -12.2202, 0.0005, -131.0556 >>, 58.5346, 3000, GRAPH_TYPE_LINEAR, GRAPH_TYPE_LINEAR)
RENDER_SCRIPT_CAMS(TRUE, FALSE)
mission_substage++
endif
break
// 2nd shot
case 2
if GET_CUTSCENE_TIME() >= 4060
SET_CAM_PARAMS(cameraIndex,<<-1906.9742, -576.9066, 19.5320>>, <<-21.2485, 0.0749, 142.5980>>, 22.5370, 0, GRAPH_TYPE_LINEAR, GRAPH_TYPE_LINEAR)
SET_CAM_PARAMS(cameraIndex,<<-1906.9495, -576.8750, 19.3882>>, <<-11.7333, 0.0749, 142.5980>>, 22.5370, 7000, GRAPH_TYPE_LINEAR, GRAPH_TYPE_LINEAR)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(0,TRUE,-1910.150269,-580.080017,18.250196,1.007878)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(1,TRUE,-1910.150024,-578.385193,18.250200,2.914063)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(2,TRUE,-1910.150269,-580.080017,18.250196,10.000000)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(3,TRUE,-1910.150269,-580.080017,18.250196,20.000000)
mission_substage++
endif
break
case 3
if GET_CUTSCENE_TIME() >= 11000
STOP_CUTSCENE_IMMEDIATELY()
mission_substage++
endif
break
case 4
if HAS_CUTSCENE_FINISHED()
if not bDrawMenu
and bresetScene
DO_SCREEN_FADE_OUT(0)
if bPlayThrough
Load_Stage_Assets(STAGE_19_FAM5_MCS5)
set_up_stage(STAGE_19_FAM5_MCS5)
Mission_Set_Stage(STAGE_19_FAM5_MCS5)
mission_substage = STAGE_ENTRY
else
iSkipToStage = enum_to_int(STAGE_18_ARM1_INT_P1)
bDoSkip = true
endif
endif
endif
break
endswitch
if IS_CUTSCENE_PLAYING()
BYPASS_CUTSCENE_CAM_RENDERING_THIS_UPDATE()
endif
endproc
proc LNCH_FAM_1()
TEXT_LABEL_15 sMissionName = "Family1"
switch mission_substage
case STAGE_ENTRY
SET_PED_COMP_ITEM_CURRENT_SP(sSelectorPeds.pedID[SELECTOR_PED_FRANKLIN], COMP_TYPE_OUTFIT, OUTFIT_P1_DEFAULT)
if GET_PLAYER_PED_ENUM(player_ped_id()) != CHAR_FRANKLIN
WHILE NOT SET_CURRENT_SELECTOR_PED(SELECTOR_PED_FRANKLIN)
WAIT(0)
ENDWHILE
endif
mission_substage++
break
case 1
REQUEST_SCRIPT(sMissionName)
IF HAS_SCRIPT_LOADED(sMissionName)
IF REQUEST_MISSION_LAUNCH(missionCandidateID, MCTID_MUST_LAUNCH, MISSION_TYPE_STORY) = MCRET_ACCEPTED
START_NEW_SCRIPT(sMissionName, MISSION_STACK_SIZE)
SET_SCRIPT_AS_NO_LONGER_NEEDED(sMissionName)
Mission_substage++
ENDIF
endif
break
case 2
if IS_SCREEN_FADED_OUT()
DO_SCREEN_FADE_IN(0)
mission_substage++
endif
break
case 3
IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("Family1")) = 0
missionCandidateID = NO_CANDIDATE_ID
g_savedGlobals.sFlow.isGameflowActive = TRUE
RESET_GAMEFLOW()
g_savedGlobals.sFlow.isGameflowActive = FALSE
iSkipToStage = enum_to_int(STAGE_0_WAIT_FOR_STAGE)
bDoSkip = true
ENDIF
break
endswitch
endproc
proc ST_19_FAM5_MCS5() // lets bounce
switch mission_substage
case STAGE_ENTRY
if HAS_CUTSCENE_LOADED()
if GET_PLAYER_PED_ENUM(player_ped_id()) = CHAR_MICHAEL
SET_ENTITY_VISIBLE(player_ped_id(),true)
endif
cameraIndex = CREATE_CAM_WITH_PARAMS_AND_SETUP_SCENE("DEFAULT_SCRIPTED_CAMERA",<< -1175.5521, -890.1361, 14.0579 >>, << -2.8052, -0.0001, 15.8190 >>, 26.7097, TRUE)
streamvol = STREAMVOL_CREATE_FRUSTUM(<< -1175.5521, -890.1361, 14.0579 >>, << -2.8052, -0.0001, 15.8190 >>,250,FLAG_MAPDATA)
START_CUTSCENE()
IF IS_SCREEN_FADED_OUT()
DO_SCREEN_FADE_IN(0)
ENDIF
mission_substage++
endif
break
case 1
if GET_CUTSCENE_TIME() >= 58500
SET_CAM_PARAMS(cameraIndex,<< -1175.4164, -890.0877, 14.0579 >>, << -2.8052, -0.0001, 20.2137 >>, 26.7097, 7000, GRAPH_TYPE_LINEAR, GRAPH_TYPE_LINEAR)
RENDER_SCRIPT_CAMS(TRUE, FALSE)
SETTIMERA(0)
mission_substage++
endif
break
case 2
if GET_CUTSCENE_TIME() >= 64000
STOP_CUTSCENE_IMMEDIATELY()
mission_substage++
endif
break
case 3
if HAS_CUTSCENE_FINISHED()
if not bDrawMenu
and bresetScene
DO_SCREEN_FADE_OUT(0)
if bPlayThrough
Load_Stage_Assets(STAGE_20_TREV1_INT_P4)
set_up_stage(STAGE_20_TREV1_INT_P4)
Mission_Set_Stage(STAGE_20_TREV1_INT_P4)
mission_substage = STAGE_ENTRY
else
iSkipToStage = enum_to_int(STAGE_19_FAM5_MCS5)
bDoSkip = true
endif
endif
endif
break
endswitch
if mission_substage > 1
and IS_CUTSCENE_PLAYING()
BYPASS_CUTSCENE_CAM_RENDERING_THIS_UPDATE()
endif
endproc
proc ST_20_TREV1_INT_P4() //trev stomps johnny
switch mission_substage
case STAGE_ENTRY
if HAS_CUTSCENE_LOADED()
if GET_PLAYER_PED_ENUM(player_ped_id()) = CHAR_TREVOR
WHILE NOT SET_CURRENT_SELECTOR_PED(SELECTOR_PED_MICHAEL)
WAIT(0)
ENDWHILE
endif
while not CREATE_PLAYER_PED_ON_FOOT(peds[mpf_trev].id,CHAR_TREVOR,<<2019.6141, 3827.6531, 32.1370 >>)
wait(0)
endwhile
APPLY_PED_DIRT(peds[mpf_trev].id,PDZ_TORSO,0.731,0.791,231.120,0.3,0.5,false,"cs_trev1_dirt")
APPLY_PED_DIRT(peds[mpf_trev].id,PDZ_TORSO,0.97,0.604,64.4,0.448,0.291,false,"cs_trev1_dirt")
APPLY_PED_DIRT(peds[mpf_trev].id,PDZ_TORSO,0.746,0.769,64.4,0.180,0.8,false,"cs_trev1_dirt")
REGISTER_ENTITY_FOR_CUTSCENE(peds[mpf_trev].id,"Trevor",CU_ANIMATE_EXISTING_SCRIPT_ENTITY)
cameraIndex = CREATE_CAM_WITH_PARAMS_AND_SETUP_SCENE("DEFAULT_SCRIPTED_CAMERA",<< 2019.6141, 3827.6531, 32.1370 >>, << 13.3138, 0.0002, 75.5047 >>,37.78, TRUE)
START_CUTSCENE()
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(0,TRUE,2017.730957,3828.103027,32.206337,1.176932)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(1,TRUE,2013.080200,3825.589844,32.198395,1.354639)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(2,TRUE,2013.274414,3830.489014,31.648689,4.221611)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(3,TRUE,2016.102051,3827.890869,33.907627,22.204473)
isplat = 0
mission_substage++
endif
break
case 1
IF IS_SCREEN_FADED_OUT()
DO_SCREEN_FADE_IN(0)
ENDIF
mission_substage++
break
case 2
if GET_CUTSCENE_TIME() >= 43000
SET_CAM_PARAMS(cameraIndex,<< 2019.6141, 3827.6531, 32.1370 >>, << 19.2118, 0.0002, 73.0449 >>, 30.3997, 1000, GRAPH_TYPE_LINEAR, GRAPH_TYPE_LINEAR)
RENDER_SCRIPT_CAMS(TRUE, FALSE)
mission_substage++
endif
break
case 3
if GET_CUTSCENE_TIME() >= 44000
set_clock_time(18,0,0)
SET_WEATHER_TYPE_NOW_PERSIST("clear")
SET_CAM_PARAMS(cameraIndex,<< 2010.5330, 3824.8005, 32.8034 >>, << -3.9662, -0.0001, -69.6521 >>, 22.5574, 0, GRAPH_TYPE_LINEAR, GRAPH_TYPE_LINEAR)
SET_CAM_PARAMS(cameraIndex,<< 2010.5808, 3824.6895, 32.8407 >>, << -2.9147, -0.0001, -67.5574 >>, 21.9827, 1500, GRAPH_TYPE_LINEAR, GRAPH_TYPE_LINEAR)
mission_substage++
endif
break
case 4
if GET_CUTSCENE_TIME() >= 45500
SET_CAM_PARAMS(cameraIndex,<< 2019.4073, 3827.1326, 31.8241 >>, << 19.8743, -0.0002, 55.2114 >>, 21.0824, 0, GRAPH_TYPE_LINEAR, GRAPH_TYPE_LINEAR)
SET_CAM_PARAMS(cameraIndex,<< 2019.4424, 3827.1033, 31.9482 >>, << 21.3875, -0.0002, 49.9836 >>, 12.6036, 1500, GRAPH_TYPE_LINEAR, GRAPH_TYPE_LINEAR)
mission_substage++
endif
break
case 5
if GET_CUTSCENE_TIME() >= 47000
STOP_CUTSCENE_IMMEDIATELY()
mission_substage++
endif
break
case 6
if HAS_CUTSCENE_FINISHED()
if not bDrawMenu
and bresetScene
DO_SCREEN_FADE_OUT(0)
if bPlayThrough
Load_Stage_Assets(STAGE_21_FBI2_MCS1_P1)
set_up_stage(STAGE_21_FBI2_MCS1_P1)
Mission_Set_Stage(STAGE_21_FBI2_MCS1_P1)
mission_substage = STAGE_ENTRY
else
iSkipToStage = enum_to_int(STAGE_20_TREV1_INT_P4)
bDoSkip = true
endif
endif
endif
break
endswitch
if mission_substage > 2
and IS_CUTSCENE_PLAYING()
BYPASS_CUTSCENE_CAM_RENDERING_THIS_UPDATE()
endif
if DOES_ENTITY_EXIST(peds[mpf_trev].id)
and not IS_PED_INJURED(peds[mpf_trev].id)
and IS_CUTSCENE_PLAYING()
// if HAS_ANIM_EVENT_FIRED(peds[mpf_trev].id,GET_HASH_KEY("TRIGGER_DAMAGE_VFX"))
switch isplat
case 0
if GET_CUTSCENE_TIME() >= 43160
//ptfx
START_PARTICLE_FX_NON_LOOPED_AT_COORD("scr_para_kick_blood",<<2018.33997, 3828.17310,31.874>>,vDebugRotation)
settimerb(0)
isplat++
endif
break
case 1
if timerb() > 150
APPLY_PED_BLOOD_SPECIFIC(peds[mpf_trev].id,0,0.657,0.566,126.360,0.07,3,0,"cs_trev1_blood")
println("BLOOD VFX0")
isplat++
endif
break
case 2
if GET_CUTSCENE_TIME() >= 43730
START_PARTICLE_FX_NON_LOOPED_AT_COORD("scr_para_kick_blood",<<2018.33997, 3828.17310,31.874>>,vDebugRotation)
settimerb(0)
isplat++
endif
break
case 3
if timerb() > 150
APPLY_PED_BLOOD_SPECIFIC(peds[mpf_trev].id,0,0.589,0.266,0,0.01,2,0,"cs_trev1_blood")
println("BLOOD VFX1")
isplat++
endif
break
case 4
if GET_CUTSCENE_TIME() >= 44200
START_PARTICLE_FX_NON_LOOPED_AT_COORD("scr_para_kick_blood",<<2018.33997, 3828.17310,31.874>>,vDebugRotation)
settimerb(0)
isplat++
endif
break
case 5
if timerb() > 200
APPLY_PED_BLOOD_SPECIFIC(peds[mpf_trev].id,0,0.612,0.269,126.360,0.22,2,0,"cs_trev1_blood")
println("BLOOD VFX2")
isplat++
endif
break
case 6
if GET_CUTSCENE_TIME() >= 44660
START_PARTICLE_FX_NON_LOOPED_AT_COORD("scr_para_kick_blood",<<2018.33997, 3828.17310,31.874>>,vDebugRotation)
settimerb(0)
isplat++
endif
break
case 7
if timerb() > 200
APPLY_PED_BLOOD_SPECIFIC(peds[mpf_trev].id,0,0.709,0.396,126.360,0.00,1,0,"cs_trev1_blood")
println("BLOOD VFX3")
isplat++
endif
break
case 8
if GET_CUTSCENE_TIME() >= 45260
START_PARTICLE_FX_NON_LOOPED_AT_COORD("scr_para_kick_blood",<<2018.33997, 3828.17310,31.874>>,vDebugRotation)
settimerb(0)
isplat++
endif
break
case 9
if timerb() > 200
APPLY_PED_BLOOD_SPECIFIC(peds[mpf_trev].id,0,0.582,0.383,200.360,0.1,2,0,"cs_trev1_blood")
println("BLOOD VFX4")
isplat++
endif
break
case 10
if GET_CUTSCENE_TIME() >= 46600
START_PARTICLE_FX_NON_LOOPED_AT_COORD("scr_para_kick_blood",<<2018.33997, 3828.17310,31.874>>,vDebugRotation)
settimerb(0)
isplat++
endif
break
case 11
if timerb() > 200
APPLY_PED_BLOOD_SPECIFIC(peds[mpf_trev].id,0,0.582,0.383,111.360,0.05,2,0,"cs_trev1_blood")
println("BLOOD VFX5")
isplat++
endif
break
endswitch
// endif
ENDIF
endproc
proc LNCH_TREV_2()
TEXT_LABEL_15 sMissionName = "Trevor2"
switch mission_substage
case STAGE_ENTRY
if GET_PLAYER_PED_ENUM(player_ped_id()) != CHAR_TREVOR
WHILE NOT SET_CURRENT_SELECTOR_PED(SELECTOR_PED_TREVOR)
WAIT(0)
ENDWHILE
endif
mission_substage++
break
case 1
REQUEST_SCRIPT(sMissionName)
IF HAS_SCRIPT_LOADED(sMissionName)
IF REQUEST_MISSION_LAUNCH(missionCandidateID, MCTID_MUST_LAUNCH, MISSION_TYPE_STORY) = MCRET_ACCEPTED
START_NEW_SCRIPT(sMissionName, MISSION_STACK_SIZE)
SET_SCRIPT_AS_NO_LONGER_NEEDED(sMissionName)
Mission_substage++
ENDIF
endif
break
case 2
if IS_SCREEN_FADED_OUT()
DO_SCREEN_FADE_IN(0)
mission_substage++
endif
break
case 3
if IS_CUTSCENE_PLAYING()
STOP_CUTSCENE_IMMEDIATELY()
endif
IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("Trevor2")) = 0
missionCandidateID = NO_CANDIDATE_ID
g_savedGlobals.sFlow.isGameflowActive = TRUE
RESET_GAMEFLOW()
g_savedGlobals.sFlow.isGameflowActive = FALSE
iSkipToStage = enum_to_int(STAGE_0_WAIT_FOR_STAGE)
bDoSkip = true
ENDIF
break
endswitch
endproc
proc ST_21_FBI2_MCS1_P1()
switch mission_substage
case STAGE_ENTRY
if HAS_CUTSCENE_LOADED()
SET_ENTITY_VISIBLE(player_ped_id(),true)
cameraIndex = CREATE_CAM_WITH_PARAMS_AND_SETUP_SCENE("DEFAULT_SCRIPTED_CAMERA",<< 1372.5259, -2076.6384, 52.4951 >>, << -3.1108, 2.2664, 27.1731 >>,31.0331, TRUE)
RENDER_SCRIPT_CAMS(TRUE, FALSE)
START_CUTSCENE()
mission_substage++
endif
break
case 1
if GET_CUTSCENE_TIME() >= 2000
IF IS_SCREEN_FADED_OUT()
DO_SCREEN_FADE_IN(0)
ENDIF
endif
if GET_CUTSCENE_TIME() >= 77000
SET_CAM_PARAMS(cameraIndex,<< 1372.4467, -2076.6824, 52.4986 >>, << -3.1108, 2.2664, 30.5578 >>, 31.0331, 2500, GRAPH_TYPE_LINEAR, GRAPH_TYPE_LINEAR)
bHighDofOn = false
mission_substage++
endif
break
case 2
if GET_CUTSCENE_TIME() >= 79000
mission_substage++
endif
break
case 3
if GET_CUTSCENE_TIME() >= 82000
STOP_CUTSCENE_IMMEDIATELY()
mission_substage++
endif
break
case 4
if HAS_CUTSCENE_FINISHED()
if not bDrawMenu
and bresetScene
DO_SCREEN_FADE_OUT(0)
if bPlayThrough
Load_Stage_Assets(STAGE_22_FIN_EXT_P2)
set_up_stage(STAGE_22_FIN_EXT_P2)
Mission_Set_Stage(STAGE_22_FIN_EXT_P2)
mission_substage = STAGE_ENTRY
else
iSkipToStage = enum_to_int(STAGE_21_FBI2_MCS1_P1)
bDoSkip = true
endif
endif
endif
break
endswitch
if mission_stage = 2
and IS_CUTSCENE_PLAYING()
BYPASS_CUTSCENE_CAM_RENDERING_THIS_UPDATE()
endif
endproc
proc AST_VAULT_EXP()
switch mission_substage
case stage_entry
if HAS_CUTSCENE_LOADED()
cameraIndex = CREATE_CAM_WITH_PARAMS_AND_SETUP_SCENE("DEFAULT_SCRIPTED_CAMERA",<< 5292.9336, -5190.3901, 83.7388 >>, << 1.2521, -1.0201, -75.8007 >>,43, TRUE)
RENDER_SCRIPT_CAMS(TRUE, FALSE)
SET_CUTSCENE_FADE_VALUES()
START_CUTSCENE()
mission_substage++
endif
break
case 1
IF IS_CUTSCENE_PLAYING()
if IS_SCREEN_FADED_OUT()
DO_SCREEN_FADE_IN(0)
endif
SET_CAM_PARAMS(cameraIndex,<< 5293.0874, -5190.3535, 83.7433 >>, << 1.6198, -1.0201, -76.6550 >>, 42.5, 1000, GRAPH_TYPE_LINEAR, GRAPH_TYPE_LINEAR)
mission_substage++
endif
break
case 2
if GET_CUTSCENE_TIME() >= 1000
SET_CAM_PARAMS(cameraIndex,<< 5292.9707, -5190.3579, 83.7424 >>, << 0.4269, -1.0201, -90.5266 >>, 43, 776, GRAPH_TYPE_SIN_ACCEL_DECEL, GRAPH_TYPE_SIN_ACCEL_DECEL)
shake_cam(cameraIndex,"SMALL_EXPLOSION_SHAKE",0.5)
mission_substage++
endif
break
case 3
if GET_CUTSCENE_TIME() >= 1390
shake_cam(cameraIndex,"HAND_SHAKE",1)
mission_substage++
endif
break
case 4
if HAS_CUTSCENE_FINISHED()
if bDrawMenu = false
and bresetScene
if timerb() > 2000
DO_SCREEN_FADE_OUT(0)
if bPlayThrough
Load_Stage_Assets(AS_CAR_SLIDE)
set_up_stage(AS_CAR_SLIDE)
Mission_Set_Stage(AS_CAR_SLIDE)
mission_substage = STAGE_ENTRY
else
iSkipToStage = enum_to_int(AS_VAULT_EXP)
bDoSkip = true
endif
endif
else
settimerb(0)
endif
endif
break
endswitch
BYPASS_CUTSCENE_CAM_RENDERING_THIS_UPDATE()
endproc
proc AST_PRO_BLAST()
switch mission_substage
case stage_entry
if GET_PLAYER_PED_ENUM(player_ped_id()) != CHAR_FRANKLIN
WHILE NOT SET_CURRENT_SELECTOR_PED(SELECTOR_PED_FRANKLIN)
WAIT(0)
ENDWHILE
endif
if HAS_CUTSCENE_LOADED()
cameraIndex = CREATE_CAM_WITH_PARAMS_AND_SETUP_SCENE("DEFAULT_SCRIPTED_CAMERA", << 5310.2490, -5175.8232, 83.5057 >>, << -2.2273, -0.0000, -131.0285 >>,30, TRUE)
RENDER_SCRIPT_CAMS(TRUE, FALSE)
SET_CUTSCENE_FADE_VALUES()
REGISTER_ENTITY_FOR_CUTSCENE(peds[mpf_mike].id, "Michael", CU_ANIMATE_EXISTING_SCRIPT_ENTITY)
SET_CUTSCENE_PED_COMPONENT_VARIATION_FROM_PED("michael",peds[mpf_mike].id)
REGISTER_ENTITY_FOR_CUTSCENE(objWeapon[WEAPON_MICHAEL], "Michaels_weapon", CU_ANIMATE_EXISTING_SCRIPT_ENTITY)
REGISTER_ENTITY_FOR_CUTSCENE(peds[mpf_trev].id, "Trevor", CU_ANIMATE_EXISTING_SCRIPT_ENTITY)
SET_CUTSCENE_PED_COMPONENT_VARIATION_FROM_PED("Trevor",peds[mpf_trev].id)
REGISTER_ENTITY_FOR_CUTSCENE(objWeapon[WEAPON_TREVOR], "Trevors_weapon", CU_ANIMATE_EXISTING_SCRIPT_ENTITY)
START_CUTSCENE()
mission_substage++
endif
break
case 1
IF IS_CUTSCENE_PLAYING()
if IS_SCREEN_FADED_OUT()
DO_SCREEN_FADE_IN(0)
endif
SET_CAM_PARAMS(cameraIndex,<< 5310.2490, -5175.8232, 83.5057 >>, << -2.2273, -0.0000, -131.0285 >>,29, 590, GRAPH_TYPE_DECEL, GRAPH_TYPE_DECEL)
camfollow = CREATE_CAMERA()
SET_CAM_PARAMS(camfollow,<< 5310.2490, -5175.8232, 83.5057 >>, << -2.2273, -0.0000, -131.0285 >>,29,0)
SHAKE_CAM(camfollow,"hand_shake",0.6)
mission_substage++
endif
break
case 2
if GET_CUTSCENE_TIME() >= 590
shake_cam(cameraIndex,"SMALL_EXPLOSION_SHAKE",0.4)
SET_CAM_PARAMS(cameraIndex,<< 5310.2085, -5175.8662, 83.4681 >>, << -4.2610, -1.9162, -125.5088 >>,30, 670, GRAPH_TYPE_LINEAR, GRAPH_TYPE_LINEAR)
START_PARTICLE_FX_NON_LOOPED_AT_COORD("scr_prologue_door_blast", <<5318.00, -5185.06, 83.82>>, <<0.0, 0.0, 0.0>>, 1.0)
mission_substage++
endif
break
case 3
if GET_CUTSCENE_TIME() >= 1260
SHAKE_CAM(cameraIndex,"HAND_SHAKE",0.6)
SET_CAM_ACTIVE_WITH_INTERP(camfollow,cameraIndex,1500)
mission_substage++
endif
break
case 4
if HAS_CUTSCENE_FINISHED()
or GET_CUTSCENE_TIME() > 3200
if bDrawMenu = false
and bresetScene
if timerb() > 2000
DO_SCREEN_FADE_OUT(0)
if bPlayThrough
Load_Stage_Assets(AS_CAR_SLIDE)
set_up_stage(AS_CAR_SLIDE)
Mission_Set_Stage(AS_CAR_SLIDE)
mission_substage = STAGE_ENTRY
else
iSkipToStage = enum_to_int(AS_PRO_BLAST)
bDoSkip = true
endif
endif
else
settimerb(0)
endif
endif
break
endswitch
BYPASS_CUTSCENE_CAM_RENDERING_THIS_UPDATE()
endproc
proc LNCH_FRANK_1()
TEXT_LABEL_15 sMissionName = "Franklin1"
switch mission_substage
case STAGE_ENTRY
if GET_PLAYER_PED_ENUM(player_ped_id()) != CHAR_FRANKLIN
WHILE NOT SET_CURRENT_SELECTOR_PED(SELECTOR_PED_FRANKLIN)
WAIT(0)
ENDWHILE
endif
mission_substage++
break
case 1
REQUEST_SCRIPT(sMissionName)
IF HAS_SCRIPT_LOADED(sMissionName)
IF REQUEST_MISSION_LAUNCH(missionCandidateID, MCTID_MUST_LAUNCH, MISSION_TYPE_STORY) = MCRET_ACCEPTED
START_NEW_SCRIPT(sMissionName, MISSION_STACK_SIZE)
SET_SCRIPT_AS_NO_LONGER_NEEDED(sMissionName)
Mission_substage++
ENDIF
endif
break
case 2
if IS_SCREEN_FADED_OUT()
DO_SCREEN_FADE_IN(0)
mission_substage++
endif
break
case 3
if IS_CUTSCENE_PLAYING()
STOP_CUTSCENE_IMMEDIATELY()
endif
IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("Franklin1")) = 0
missionCandidateID = NO_CANDIDATE_ID
g_savedGlobals.sFlow.isGameflowActive = TRUE
RESET_GAMEFLOW()
g_savedGlobals.sFlow.isGameflowActive = FALSE
iSkipToStage = enum_to_int(STAGE_0_WAIT_FOR_STAGE)
bDoSkip = true
ENDIF
break
endswitch
endproc
proc AST_SLIDE_CAR()
switch mission_substage
case STAGE_ENTRY
// create car
if not DOES_ENTITY_EXIST(vehs[veh_slide].id)
vehs[veh_slide].id = CREATE_VEHICLE(EMPEROR,vslidecar,fslidecar)
SET_VEHICLE_COLOUR_COMBINATION(vehs[veh_slide].id,4)
endif
if not does_entity_exist(peds[mpf_slide].id)
peds[mpf_slide].id = CREATE_PED(PEDTYPE_MISSION,IG_BALLASOG,<<492.19934, -542.82751, 23.75046>>,-8.93)
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(peds[mpf_slide].id,true)
//syncsene
syncsceneID = CREATE_SYNCHRONIZED_SCENE(<<0,0,0>>,<<0,0,0>>)//<<492.630, -544.440,24.850>>,<<0,0,357.1>>)
if IsEntityAlive(vehs[veh_slide].id)
ATTACH_SYNCHRONIZED_SCENE_TO_ENTITY(syncsceneID,vehs[veh_slide].id,0)
endif
TASK_SYNCHRONIZED_SCENE(peds[mpf_slide].id,syncsceneID,"trailer2@bonnet_slide","ballasog_carbonnetslide",INSTANT_BLEND_IN,NORMAL_BLEND_OUT)
endif
if not DOES_ENTITY_EXIST(peds[mpf_driver].id)
peds[mpf_driver].id = CREATE_PED_INSIDE_VEHICLE(vehs[veh_slide].id,PEDTYPE_MISSION,S_M_Y_AIRWORKER)
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(peds[mpf_driver].id,true)
TASK_LOOK_AT_ENTITY(peds[mpf_driver].id,peds[mpf_slide].id,-1,SLF_WIDEST_PITCH_LIMIT |SLF_WIDEST_YAW_LIMIT|SLF_FAST_TURN_RATE|SLF_WHILE_NOT_IN_FOV)
endif
//cam
cameraIndex = CREATE_CAM_WITH_PARAMS_AND_SETUP_SCENE("DEFAULT_SCRIPTED_CAMERA",<< 491.1316, -532.1777, 24.7727 >>, << -0.3714, -0.0000, -167.9387 >>,15.7136, TRUE)
SHAKE_CAM(cameraIndex,"HAND_SHAKE",0.5)
RENDER_SCRIPT_CAMS(true,false)
settimera(0)
bHighDofOn = true
clear_area(<<492.7981, -528.7627, 24.7392 >>,50,true)
mission_substage++
break
case 1
if IS_SYNCHRONIZED_SCENE_RUNNING(syncsceneID)
and GET_SYNCHRONIZED_SCENE_PHASE(syncsceneID) >= 0.200
SET_CAM_PARAMS(cameraIndex,<< 493.4366, -532.0567, 24.8464 >>, << 0.3594, 0.0687, 178.9825 >>, 15.7136, 1250, GRAPH_TYPE_LINEAR, GRAPH_TYPE_LINEAR)
IF IS_SCREEN_FADED_OUT()
DO_SCREEN_FADE_IN(0)
ENDIF
if IsEntityAlive(peds[mpf_slide].id)
and IsEntityAlive(peds[mpf_driver].id)
TASK_LOOK_AT_ENTITY(peds[mpf_driver].id,peds[mpf_slide].id,-1)//,SLF_WIDEST_PITCH_LIMIT |SLF_WIDEST_YAW_LIMIT|SLF_FAST_TURN_RATE|SLF_WHILE_NOT_IN_FOV)
endif
mission_substage++
endif
break
case 2
if IS_SYNCHRONIZED_SCENE_RUNNING(syncsceneID)
and GET_SYNCHRONIZED_SCENE_PHASE(syncsceneID) >= 0.393
if IsEntityAlive(vehs[veh_slide].id)
APPLY_FORCE_TO_ENTITY(vehs[veh_slide].id, APPLY_TYPE_IMPULSE, <<0,0,-0.2>>, <<0,3,0>>, 0, TRUE, TRUE, TRUE)
endif
mission_substage++
endif
break
case 3
if IS_SYNCHRONIZED_SCENE_RUNNING(syncsceneID)
and GET_SYNCHRONIZED_SCENE_PHASE(syncsceneID) >= 0.60
if not bDrawMenu
and bresetScene
DO_SCREEN_FADE_OUT(0)
if bPlayThrough
Load_Stage_Assets(AS_CHOP_ON_CAR)
set_up_stage(AS_CHOP_ON_CAR)
Mission_Set_Stage(AS_CHOP_ON_CAR)
mission_substage = STAGE_ENTRY
else
if does_entity_exist(peds[mpf_slide].id)
delete_ped(peds[mpf_slide].id)
endif
DESTROY_CAM(cameraIndex)
mission_substage = STAGE_ENTRY
endif
endif
endif
break
endswitch
if IsEntityAlive(peds[mpf_driver].id)
SET_PED_COMPONENT_VARIATION(peds[mpf_driver].id,PED_COMP_HEAD,iDockWorkerHeadID,iDockWorkerHeadText)
SET_PED_COMPONENT_VARIATION(peds[mpf_driver].id,PED_COMP_TORSO,iDockWorkerUpperID,idockworkerUpperText)
SET_PED_COMPONENT_VARIATION(peds[mpf_driver].id,PED_COMP_LEG,idockworkerlowID,idockworkerlowText)
SET_PED_PROP_INDEX(peds[mpf_driver].id,ANCHOR_HEAD,iDockPropID,idockpropText)
endif
// if DOES_ENTITY_EXIST(vehs[veh_slide].id)
// if not IS_ENTITY_DEAD(vehs[veh_slide].id)
// SET_ENTITY_COORDS(vehs[veh_slide].id,vDebugPosition)
// set_entity_heading(vehs[veh_slide].id,fDebugHeading)
// SET_VEHICLE_ON_GROUND_PROPERLY(vehs[veh_slide].id)
// endif
// endif
endproc
proc AST_CHOP_CAR()
switch mission_substage
case STAGE_ENTRY
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(0,TRUE,492.537170,-540.263794,24.426411,1.013790)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(1,TRUE,492.545013,-539.491394,24.426411,1.013790)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(2,TRUE,490.956055,-539.331970,24.298565,3.543797)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(3,TRUE,490.956055,-539.331970,24.298565,10.000000)
if not DOES_ENTITY_EXIST(vehs[veh_slide].id)
vehs[veh_slide].id = CREATE_VEHICLE(EMPEROR,(vslidecar + <<-0.35,-2.1,0>>),fslidecar)
SET_VEHICLE_DOOR_OPEN(vehs[veh_slide].id,SC_DOOR_FRONT_LEFT)
SET_VEHICLE_COLOUR_COMBINATION(vehs[veh_slide].id,4)
SET_VEHICLE_ON_GROUND_PROPERLY(vehs[veh_slide].id)
endif
if not does_entity_exist(peds[mpf_chop].id)
peds[mpf_chop].id = CREATE_PED(PEDTYPE_MISSION,GET_CHOP_MODEL(),(<<491.1316, -532.1777, 24.7727>>+ <<-0.35,-2.1,0>>),360)
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(peds[mpf_chop].id,true)
SET_PED_COMPONENT_VARIATION(peds[mpf_chop].id,PED_COMP_TORSO,0,0)
//sync
syncsceneID = CREATE_SYNCHRONIZED_SCENE((<<492.630, -544.440, 24.150>>+ <<-0.35,-2.1,0>>),<<0,0,358>>)
TASK_SYNCHRONIZED_SCENE(peds[mpf_chop].id,syncsceneID,"MISSFRA0_chop","FRA_0_IG_9_CHOP_JUMP_OVER_CAR_HOOD",INSTANT_BLEND_IN,NORMAL_BLEND_OUT)
endif
if not DOES_ENTITY_EXIST(peds[mpf_driver].id)
peds[mpf_driver].id = CREATE_PED_INSIDE_VEHICLE(vehs[veh_slide].id,PEDTYPE_MISSION,S_M_Y_AIRWORKER)
TASK_LOOK_AT_ENTITY(peds[mpf_driver].id,peds[mpf_chop].id,-1)
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(peds[mpf_driver].id,true)
endif
//bison
if not DOES_ENTITY_EXIST(vehs[veh_parked_car].id)
vehs[veh_parked_car].id = CREATE_VEHICLE(BISON2,<< 489.3728, -545.1403, 23.7508 >>, 86.5515)
SET_VEHICLE_ON_GROUND_PROPERLY(vehs[veh_parked_car].id)
endif
//cam
cameraIndex = CREATE_CAM_WITH_PARAMS_AND_SETUP_SCENE("DEFAULT_SCRIPTED_CAMERA",(<< 495.3479, -534.4951, 24.5051 >>+ <<-0.35,-2.1,0>>), << -1.1364, -0.0000, 145.0519 >>,23.2901, TRUE)
RENDER_SCRIPT_CAMS(true,false)
bHighDofOn = true
clear_area(<<492.7981, -528.7627, 24.7392 >>,50,true)
mission_substage++
break
case 1
if IS_SYNCHRONIZED_SCENE_RUNNING(syncsceneID)
and GET_SYNCHRONIZED_SCENE_PHASE(syncsceneID) >=0.32
DO_SCREEN_FADE_IN(0)
if IsEntityAlive(peds[mpf_driver].id)
and IsEntityAlive(peds[mpf_chop].id)
OPEN_SEQUENCE_TASK(seq)
TASK_LOOK_AT_ENTITY(null,peds[mpf_chop].id,-1,SLF_FAST_TURN_RATE)
TASK_LEAVE_ANY_VEHICLE(null,0,ECF_DONT_CLOSE_DOOR)
CLOSE_SEQUENCE_TASK(seq)
TASK_PERFORM_SEQUENCE(peds[mpf_driver].id,seq)
CLEAR_SEQUENCE_TASK(seq)
endif
SET_CAM_PARAMS(cameraIndex,(<< 495.8520, -535.4316, 24.3789 >>+ <<-0.35,-2.1,0>>), << 4.5014, 0.0000, 99.9261 >>, 23.2901, 1100, GRAPH_TYPE_LINEAR, GRAPH_TYPE_LINEAR)
mission_substage++
endif
break
case 2
if IS_SYNCHRONIZED_SCENE_RUNNING(syncsceneID)
and GET_SYNCHRONIZED_SCENE_PHASE(syncsceneID) >= 0.45
if DOES_ENTITY_EXIST(vehs[veh_slide].id)
and not IS_ENTITY_DEAD(vehs[veh_slide].id)
APPLY_FORCE_TO_ENTITY(vehs[veh_slide].id, APPLY_TYPE_IMPULSE, <<0,0,-0.1>>, <<0,3,0>>, 0, TRUE, TRUE, TRUE)
endif
mission_substage++
endif
break
case 3
if IS_SYNCHRONIZED_SCENE_RUNNING(syncsceneID)
and GET_SYNCHRONIZED_SCENE_PHASE(syncsceneID) >= 0.595
if DOES_ENTITY_EXIST(vehs[veh_slide].id)
and not IS_ENTITY_DEAD(vehs[veh_slide].id)
APPLY_FORCE_TO_ENTITY(vehs[veh_slide].id, APPLY_TYPE_IMPULSE, <<0,0,-0.1>>, <<0,3,0>>, 0, TRUE, TRUE, TRUE)
endif
mission_substage++
endif
break
case 4
if IS_SYNCHRONIZED_SCENE_RUNNING(syncsceneID)
and GET_SYNCHRONIZED_SCENE_PHASE(syncsceneID) >= 0.8
if not bDrawMenu
and bresetScene
if timerb() >2000
DO_SCREEN_FADE_OUT(0)
if bPlayThrough
Load_Stage_Assets(AS_FRANK_BIKE_EXP)
set_up_stage(AS_FRANK_BIKE_EXP)
Mission_Set_Stage(AS_FRANK_BIKE_EXP)
mission_substage = STAGE_ENTRY
else
if does_entity_exist(peds[mpf_chop].id)
delete_ped(peds[mpf_chop].id)
endif
if does_entity_exist(peds[mpf_driver].id)
delete_ped(peds[mpf_driver].id)
endif
mission_substage = STAGE_ENTRY
endif
endif
else
settimerb(0)
endif
endif
break
endswitch
if IsEntityAlive(peds[mpf_driver].id)
SET_PED_COMPONENT_VARIATION(peds[mpf_driver].id,PED_COMP_HEAD,iDockWorkerHeadID,iDockWorkerHeadText)
SET_PED_COMPONENT_VARIATION(peds[mpf_driver].id,PED_COMP_TORSO,iDockWorkerUpperID,idockworkerUpperText)
SET_PED_COMPONENT_VARIATION(peds[mpf_driver].id,PED_COMP_LEG,idockworkerlowID,idockworkerlowText)
SET_PED_PROP_INDEX(peds[mpf_driver].id,ANCHOR_HEAD,iDockPropID,idockpropText)
endif
endproc
proc LNCH_FBI2()
TEXT_LABEL_15 sMissionName = "Fbi2"
switch mission_substage
case STAGE_ENTRY
if GET_PLAYER_PED_ENUM(player_ped_id()) != CHAR_MICHAEL
WHILE NOT SET_CURRENT_SELECTOR_PED(SELECTOR_PED_MICHAEL)
WAIT(0)
ENDWHILE
endif
mission_substage++
break
case 1
REQUEST_SCRIPT(sMissionName)
IF HAS_SCRIPT_LOADED(sMissionName)
IF REQUEST_MISSION_LAUNCH(missionCandidateID, MCTID_MUST_LAUNCH, MISSION_TYPE_STORY) = MCRET_ACCEPTED
START_NEW_SCRIPT(sMissionName, MISSION_STACK_SIZE)
SET_SCRIPT_AS_NO_LONGER_NEEDED(sMissionName)
Mission_substage++
ENDIF
endif
break
case 2
if IS_SCREEN_FADED_OUT()
DO_SCREEN_FADE_IN(0)
SET_ROADS_IN_AREA(<<-103.62539, -539.09808, 29.47614>>,<<318.05725, -470.30832, 35.06704>>,false)
mission_substage++
endif
break
case 3
if IS_CUTSCENE_PLAYING()
STOP_CUTSCENE_IMMEDIATELY()
endif
IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("Fbi2")) = 0
missionCandidateID = NO_CANDIDATE_ID
g_savedGlobals.sFlow.isGameflowActive = TRUE
RESET_GAMEFLOW()
g_savedGlobals.sFlow.isGameflowActive = FALSE
SET_ROADS_BACK_TO_ORIGINAL(<<-103.62539, -539.09808, 29.47614>>,<<318.05725, -470.30832, 35.06704>>)
iSkipToStage = enum_to_int(STAGE_0_WAIT_FOR_STAGE)
bDoSkip = true
ENDIF
break
endswitch
endproc
proc LNCH_JEWEL_HEIST_2A()
TEXT_LABEL_15 sMissionName = "jewelry_heist"
switch mission_substage
case STAGE_ENTRY
if GET_PLAYER_PED_ENUM(player_ped_id()) != CHAR_MICHAEL
WHILE NOT SET_CURRENT_SELECTOR_PED(SELECTOR_PED_MICHAEL)
WAIT(0)
ENDWHILE
endif
mission_substage++
break
case 1
REQUEST_SCRIPT(sMissionName)
IF HAS_SCRIPT_LOADED(sMissionName)
IF REQUEST_MISSION_LAUNCH(missionCandidateID, MCTID_MUST_LAUNCH, MISSION_TYPE_STORY) = MCRET_ACCEPTED
START_NEW_SCRIPT(sMissionName, MISSION_STACK_SIZE)
SET_SCRIPT_AS_NO_LONGER_NEEDED(sMissionName)
Mission_substage++
ENDIF
endif
break
case 2
if IS_SCREEN_FADED_OUT()
DO_SCREEN_FADE_IN(0)
mission_substage++
endif
break
case 3
IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("jewelry_heist")) = 0
missionCandidateID = NO_CANDIDATE_ID
g_savedGlobals.sFlow.isGameflowActive = TRUE
RESET_GAMEFLOW()
g_savedGlobals.sFlow.isGameflowActive = FALSE
iSkipToStage = enum_to_int(STAGE_0_WAIT_FOR_STAGE)
bDoSkip = true
ENDIF
break
endswitch
endproc
proc AST_BIKE_EXP()
switch mission_substage
case STAGE_ENTRY
SET_RANDOM_VEHICLE_DENSITY_MULTIPLIER_THIS_FRAME(0)
//police cars
vehs[Veh_police1].id = CREATE_VEHICLE(police, << -2385.2922, -261.0016, 13.8655 >>, 315.3952 )
vehs[Veh_police2].id = create_vehicle(police2, << -2390.2839, -266.6570, 13.9012 >>, 340.0167 )
vehs[Veh_police3].id = create_vehicle(police3, << -2378.5684, -258.7115, 13.7511 >>, 135.2469)
vehs[Veh_police4].id = create_vehicle(policet,<< -2396.4150, -271.3444, 13.8323 >>, 359.7728 )
//Ambiant cars
vehs[veh_exp1].id = create_vehicle(sentinel2,<< -2398.7073, -263.0657, 14.1163 >>, 237.4294)
vehs[veh_exp2].id = create_vehicle(stratum,<< -2403.5388, -265.4770, 14.1341 >>, 238.7391)
vehs[veh_exp3].id = create_vehicle(emperor2, << -2376.6907, -263.7331, 13.6691 >>, 59.4443)
//bike
vehs[veh_Bike].id = create_vehicle(AKUMA, << -2416.8469, -233.8673, 15.3493 >>, 150)
int i
for i = 0 to ENUM_TO_INT(MVF_NUM_OF_VEH) - 1
if IsEntityAlive(vehs[i].id)
SET_VEHICLE_ON_GROUND_PROPERLY(vehs[i].id)
endif
endfor
fTrafficDensity = 0
fPedDensity = 0
//cam
cameraIndex = CREATE_CAM_WITH_PARAMS_AND_SETUP_SCENE("DEFAULT_SCRIPTED_CAMERA",<< -2545.8171, -173.9794, 19.4473 >>, << -1.1896, -5.5740, -122.2291 >>,15.5371, TRUE)
// SET_ENTITY_COORDS(player_ped_id(),<< -1736.5225, -944.9641, 6.7451 >>)
SET_CAM_MOTION_BLUR_STRENGTH(cameraIndex,0.1)
SET_CAM_ACTIVE(cameraIndex,true)
RENDER_SCRIPT_CAMS(true,false)
SHAKE_CAM(cameraIndex,"hand_shake",1)
clear_area(<< -2552.9766, -171.2143, 19.9467>>,300,true)
STOP_FIRE_IN_RANGE(<< -2552.9766, -171.2143, 19.9467 >>,300)
mission_substage++
break
case 1
if CREATE_PLAYER_PED_INSIDE_VEHICLE(peds[mpf_frank].id,CHAR_FRANKLIN,vehs[veh_Bike].id)
GIVE_PED_HELMET(peds[mpf_frank].id,true)
FORCE_PED_AI_AND_ANIMATION_UPDATE(peds[mpf_frank].id)
settimera(0)
mission_substage++
endif
break
case 2
if IsEntityAlive(peds[mpf_frank].id)
and timera() > 1000
if HAVE_ALL_STREAMING_REQUESTS_COMPLETED(peds[mpf_frank].id)
if IsEntityAlive(vehs[veh_Bike].id)
START_PLAYBACK_RECORDED_VEHICLE(vehs[veh_Bike].id,6,"Trailer2REC")
SKIP_TIME_IN_PLAYBACK_RECORDED_VEHICLE(vehs[veh_bike].id,1700)
endif
SET_CAM_PARAMS(cameraIndex,<< -2546.5476, -175.2028, 19.4944 >>, << -1.1896, -5.5740, -120.9157 >>,15.5371,2500,GRAPH_TYPE_LINEAR,GRAPH_TYPE_LINEAR)
settimera(0)
mission_substage++
endif
endif
break
case 3
if timera() > 400
DO_SCREEN_FADE_IN(0)
camfollow = CREATE_CAMERA_WITH_PARAMS(CAMTYPE_SCRIPTED,<< -2546.5476, -175.2028, 19.4944 >>, << -1.1896, -5.5740, -120.9157 >>,16)
SET_CAM_MOTION_BLUR_STRENGTH(camfollow,0.6)
if IsEntityAlive(vehs[veh_Bike].id)
POINT_CAM_AT_ENTITY(camfollow,vehs[veh_Bike].id,<<0,0.3,0.1>>)
endif
if IsEntityAlive(vehs[Veh_police1].id)
ADD_EXPLOSION(GET_ENTITY_COORDS(vehs[Veh_police1].id),EXP_TAG_CAR,1)
endif
if IsEntityAlive(vehs[Veh_police2].id)
ADD_EXPLOSION(get_entity_coords(vehs[Veh_police2].id),EXP_TAG_CAR,1)
endif
if IsEntityAlive(vehs[Veh_police4].id)
ADD_EXPLOSION(get_entity_coords(vehs[Veh_police4].id),EXP_TAG_CAR,1)
endif
ADD_EXPLOSION(<<-2389.32544, -260.25778, 13.95412>>,EXP_TAG_HI_OCTANE)
ADD_EXPLOSION(<<-2392.40527, -262.88516, 13.99207>>,EXP_TAG_HI_OCTANE)
mission_substage++
endif
break
case 4
if timera() > 900
SET_CAM_ACTIVE_WITH_INTERP(camfollow,cameraIndex, 2000)
mission_substage++
endif
break
case 5
if timera() > 2000
if not bDrawMenu
and bresetScene
if timerb() >2000
DO_SCREEN_FADE_OUT(0)
if bPlayThrough
Load_Stage_Assets(AS_JET_FIGHT)
set_up_stage(AS_JET_FIGHT)
Mission_Set_Stage(AS_JET_FIGHT)
mission_substage = STAGE_ENTRY
else
if DOES_ENTITY_EXIST(peds[mpf_frank].id)
DELETE_PED(peds[mpf_frank].id)
endif
if DOES_ENTITY_EXIST(vehs[veh_Bike].id)
delete_vehicle(vehs[veh_Bike].id)
endif
if DOES_ENTITY_EXIST(vehs[Veh_police2].id)
delete_vehicle(vehs[Veh_police2].id)
endif
if DOES_ENTITY_EXIST(vehs[Veh_police3].id)
delete_vehicle(vehs[Veh_police3].id)
endif
if DOES_ENTITY_EXIST(vehs[Veh_police4].id)
delete_vehicle(vehs[Veh_police4].id)
endif
if DOES_ENTITY_EXIST(vehs[Veh_police1].id)
delete_vehicle(vehs[Veh_police1].id)
endif
if DOES_ENTITY_EXIST(vehs[veh_exp1].id)
delete_vehicle(vehs[veh_exp1].id)
endif
if DOES_ENTITY_EXIST(vehs[veh_exp2].id)
delete_vehicle(vehs[veh_exp2].id)
endif
if DOES_ENTITY_EXIST(vehs[veh_exp3].id)
delete_vehicle(vehs[veh_exp3].id)
endif
DESTROY_ALL_CAMS()
mission_substage = STAGE_ENTRY
endif
endif
else
settimerb(0)
endif
endif
break
endswitch
endproc
proc LNCH_EXILE_1()
TEXT_LABEL_15 sMissionName = "exile1"
switch mission_substage
case STAGE_ENTRY
if GET_PLAYER_PED_ENUM(player_ped_id()) != CHAR_FRANKLIN
WHILE NOT SET_CURRENT_SELECTOR_PED(SELECTOR_PED_FRANKLIN)
WAIT(0)
ENDWHILE
endif
mission_substage++
break
case 1
REQUEST_SCRIPT(sMissionName)
IF HAS_SCRIPT_LOADED(sMissionName)
IF REQUEST_MISSION_LAUNCH(missionCandidateID, MCTID_MUST_LAUNCH, MISSION_TYPE_STORY) = MCRET_ACCEPTED
START_NEW_SCRIPT(sMissionName, MISSION_STACK_SIZE)
SET_SCRIPT_AS_NO_LONGER_NEEDED(sMissionName)
Mission_substage++
ENDIF
endif
break
case 2
if IS_CUTSCENE_PLAYING()
STOP_CUTSCENE_IMMEDIATELY()
endif
IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("exile1")) = 0
missionCandidateID = NO_CANDIDATE_ID
g_savedGlobals.sFlow.isGameflowActive = TRUE
RESET_GAMEFLOW()
g_savedGlobals.sFlow.isGameflowActive = FALSE
iSkipToStage = enum_to_int(STAGE_0_WAIT_FOR_STAGE)
bDoSkip = true
ENDIF
break
endswitch
endproc
proc LNCH_Offroad_1()
switch mission_substage
case STAGE_ENTRY
if GET_PLAYER_PED_ENUM(player_ped_id()) != CHAR_FRANKLIN
WHILE NOT SET_CURRENT_SELECTOR_PED(SELECTOR_PED_FRANKLIN)
WAIT(0)
ENDWHILE
endif
mission_substage++
break
case 1
if IsEntityAlive(player_ped_id())
SET_ENTITY_COORDS(player_ped_id(),<<-1958.1558, 4463.4121, 33.7800>>)
Mission_substage++
endif
break
case 2
if IS_SCREEN_FADED_OUT()
DO_SCREEN_FADE_IN(800)
SET_CLOCK_TIME(13,0,0)
mission_substage++
endif
break
case 3
Mission_Cleanup(true)
break
endswitch
endproc
proc LNCH_EXILE_3()
TEXT_LABEL_15 sMissionName = "exile3"
switch mission_substage
case STAGE_ENTRY
if GET_PLAYER_PED_ENUM(player_ped_id()) != CHAR_TREVOR
WHILE NOT SET_CURRENT_SELECTOR_PED(SELECTOR_PED_TREVOR)
WAIT(0)
ENDWHILE
endif
mission_substage++
break
case 1
REQUEST_SCRIPT(sMissionName)
IF HAS_SCRIPT_LOADED(sMissionName)
IF REQUEST_MISSION_LAUNCH(missionCandidateID, MCTID_MUST_LAUNCH, MISSION_TYPE_STORY) = MCRET_ACCEPTED
START_NEW_SCRIPT(sMissionName, MISSION_STACK_SIZE)
SET_SCRIPT_AS_NO_LONGER_NEEDED(sMissionName)
Mission_substage++
ENDIF
endif
break
case 2
if IS_SCREEN_FADED_OUT()
DO_SCREEN_FADE_IN(0)
mission_substage++
endif
break
case 3
if IS_CUTSCENE_PLAYING()
STOP_CUTSCENE_IMMEDIATELY()
endif
IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("exile3")) = 0
missionCandidateID = NO_CANDIDATE_ID
g_savedGlobals.sFlow.isGameflowActive = TRUE
RESET_GAMEFLOW()
g_savedGlobals.sFlow.isGameflowActive = FALSE
iSkipToStage = enum_to_int(STAGE_0_WAIT_FOR_STAGE)
bDoSkip = true
ENDIF
break
endswitch
endproc
proc AST_JET_FIGHT()
switch mission_substage
case STAGE_ENTRY
cameraIndex = CREATE_CAM_WITH_PARAMS_AND_SETUP_SCENE("DEFAULT_SCRIPTED_CAMERA",<< 683.8909, 1242.1932, 359.0270 >>, << -11.9587, 3.4700, 177.9113 >>,31.3, TRUE)
NEW_LOAD_SCENE_START(<< 683.8909, 1242.1932, 359.0270 >>, << -11.9587, 3.4700, 177.9113 >>,150)
while not IS_NEW_LOAD_SCENE_LOADED()
wait(0)
endwhile
ENABLE_EXTRA_DISTANTLIGHTS(<<383,-903,50.9>>,1000)
SET_WEATHER_TYPE_NOW_PERSIST("CLEAR")
settimera(0)
if not DOES_ENTITY_EXIST(vehs[veh_jet].id)
vehs[veh_jet].id = CREATE_VEHICLE(LAZER,<< 723.2245, 1249.4069, 363.7921 >>,180)
SET_VEHICLE_ENGINE_ON(vehs[veh_jet].id,true,true)
CONTROL_LANDING_GEAR(vehs[veh_jet].id,LGC_RETRACT_INSTANT)
SET_VEHICLE_FLIGHT_NOZZLE_POSITION(vehs[veh_jet].id,0)
SET_ENTITY_INVINCIBLE(vehs[veh_jet].id,true)
SET_ENTITY_LOD_DIST(vehs[veh_jet].id,1000)
if not DOES_ENTITY_EXIST(peds[mpf_jetPilot].id)
peds[mpf_jetPilot].id = CREATE_PED_INSIDE_VEHICLE(vehs[veh_jet].id,pedtype_mission,S_M_Y_Pilot_01)
endif
endif
mission_substage++
break
case 1
if timera() > 1000
DO_SCREEN_FADE_IN(0)
//heli 1
if not DOES_ENTITY_EXIST(vehs[veh_heli1].id)
vehs[veh_heli1].id = create_vehicle(polmav,<< 551.2347, 873.2770, 331.1218 >>)
SET_HELI_BLADES_FULL_SPEED(vehs[veh_heli1].id)
START_PLAYBACK_RECORDED_VEHICLE(vehs[veh_heli1].id,1,"Trailer2REC")
SKIP_TIME_IN_PLAYBACK_RECORDED_VEHICLE(vehs[veh_heli1].id,800)
SET_PLAYBACK_SPEED(vehs[veh_heli1].id,1.1)
SET_ENTITY_ALWAYS_PRERENDER(vehs[veh_heli1].id,true)
SET_ENTITY_LOD_DIST(vehs[veh_heli1].id,1000)
SET_VEHICLE_SEARCHLIGHT(vehs[veh_heli1].id,true)
if not DOES_ENTITY_EXIST(peds[mpf_pilot1].id)
peds[mpf_pilot1].id = CREATE_PED_INSIDE_VEHICLE(vehs[veh_heli1].id,pedtype_mission,S_M_Y_Pilot_01)
TASK_VEHICLE_AIM_AT_COORD(peds[mpf_pilot1].id,<<565.02087, 807.79779, 200.03485>>)
endif
endif
//heli 2
if not DOES_ENTITY_EXIST(vehs[veh_heli2].id)
vehs[veh_heli2].id = create_vehicle(polmav,<< 516.6041, 773.4421, 300.7780 >>)
SET_HELI_BLADES_FULL_SPEED(vehs[veh_heli2].id)
START_PLAYBACK_RECORDED_VEHICLE(vehs[veh_heli2].id,2,"Trailer2REC")
SKIP_TIME_IN_PLAYBACK_RECORDED_VEHICLE(vehs[veh_heli2].id,800)
SET_PLAYBACK_SPEED(vehs[veh_heli2].id,1.1)
SET_ENTITY_LOD_DIST(vehs[veh_heli2].id,1000)
SET_VEHICLE_SEARCHLIGHT(vehs[veh_heli2].id,true)
if not DOES_ENTITY_EXIST(peds[mpf_pilot2].id)
peds[mpf_pilot2].id = CREATE_PED_INSIDE_VEHICLE(vehs[veh_heli2].id,pedtype_mission,S_M_Y_Pilot_01)
TASK_VEHICLE_AIM_AT_COORD(peds[mpf_pilot2].id,<<565.02087, 807.79779, 200.03485>>)
endif
endif
//jet
if IsEntityAlive(vehs[veh_jet].id)
START_PLAYBACK_RECORDED_VEHICLE(vehs[veh_jet].id,3,"Trailer2REC")
SKIP_TIME_IN_PLAYBACK_RECORDED_VEHICLE(vehs[veh_jet].id,2500)
SET_PLAYBACK_SPEED(vehs[veh_jet].id,1.35)
SET_VEHICLE_FLIGHT_NOZZLE_POSITION(vehs[veh_jet].id,0)
endif
//cam
SET_CAM_PARAMS(cameraIndex,<< 687.4604, 1242.0137, 359.3400 >>, << -9.7147, 3.4577, 178.6762 >>,31.3,1500,GRAPH_TYPE_LINEAR,GRAPH_TYPE_LINEAR)
RENDER_SCRIPT_CAMS(true,false)
SHAKE_CAM(cameraIndex,"hand_shake",1)
clear_area(<< 686.7050, 1222.2231, 353.9688 >>,2000,true)
STOP_FIRE_IN_RANGE(<< 686.7050, 1222.2231, 353.9688 >>,2000)
settimera(0)
FREEZE_ENTITY_POSITION(player_ped_id(),true)
mission_substage++
endif
break
case 2
if timera() > 800
camfollow = CREATE_CAM_WITH_PARAMS("default_scripted_camera",<< 687.4604, 1242.0137, 359.3400 >>, << -9.7147, 3.4577, 178.6762 >>,30)
POINT_CAM_AT_ENTITY(camfollow,vehs[veh_jet].id,<<0,0,0>>)
SET_CAM_ACTIVE_WITH_INTERP(camfollow,cameraIndex,1500)
mission_substage++
endif
break
case 3
if timera() > 2000
// NEW_LOAD_SCENE_START(<< 547.9744, 793.1989, 409.4529 >>, << 0.3927, -3.5066, -17.2993 >>,250)
// while not IS_NEW_LOAD_SCENE_LOADED()
// wait(0)
// endwhile
SET_CAM_PARAMS(cameraIndex,<< 547.9744, 793.1989, 409.4529 >>, << 0.3927, -3.5066, -17.2993 >>,29.7407,0,GRAPH_TYPE_LINEAR,GRAPH_TYPE_LINEAR)
SET_CAM_PARAMS(cameraIndex,<< 538.0171, 797.1656, 411.7323 >>, << -2.9483, -2.4574, -26.3961 >>,29.7407,2300,GRAPH_TYPE_LINEAR,GRAPH_TYPE_LINEAR)
SET_CAM_ACTIVE(cameraIndex,true)
settimerA(0)
SET_WEATHER_TYPE_NOW_PERSIST("SNOWLIGHT")
//heli
if IsEntityAlive(vehs[veh_heli1].id)
if IS_PLAYBACK_GOING_ON_FOR_VEHICLE(vehs[veh_heli1].id)
STOP_PLAYBACK_RECORDED_VEHICLE(vehs[veh_heli1].id)
endif
SET_HELI_BLADES_FULL_SPEED(vehs[veh_heli1].id)
START_PLAYBACK_RECORDED_VEHICLE(vehs[veh_heli1].id,5,"Trailer2REC")
SKIP_TIME_IN_PLAYBACK_RECORDED_VEHICLE(vehs[veh_heli1].id,2300)
SET_PLAYBACK_SPEED(vehs[veh_heli1].id,0.85)
SET_ENTITY_HEALTH(vehs[veh_heli1].id,20)
SET_VEHICLE_SEARCHLIGHT(vehs[veh_heli1].id,false)
endif
if IsEntityAlive(vehs[veh_jet].id)
//jet
if IS_PLAYBACK_GOING_ON_FOR_VEHICLE(vehs[veh_jet].id)
STOP_PLAYBACK_RECORDED_VEHICLE(vehs[veh_jet].id)
endif
START_PLAYBACK_RECORDED_VEHICLE(vehs[veh_jet].id,4,"Trailer2REC")
SKIP_TIME_IN_PLAYBACK_RECORDED_VEHICLE(vehs[veh_jet].id,1400)
SET_PLAYBACK_SPEED(vehs[veh_jet].id,1)
SET_VEHICLE_ENGINE_ON(vehs[veh_jet].id,true,true)
CONTROL_LANDING_GEAR(vehs[veh_jet].id,LGC_RETRACT_INSTANT)
endif
if IsEntityAlive(peds[mpf_jetPilot].id)
and IsEntityAlive(peds[mpf_pilot1].id)
SET_CURRENT_PED_VEHICLE_WEAPON(peds[mpf_jetPilot].id,WEAPONTYPE_VEHICLE_SPACE_ROCKET)
TASK_VEHICLE_SHOOT_AT_PED(peds[mpf_jetPilot].id,peds[mpf_pilot1].id)
endif
//get rid of other heli
if DOES_ENTITY_EXIST(peds[mpf_pilot2].id)
delete_ped(peds[mpf_pilot2].id)
endif
if DOES_ENTITY_EXIST(vehs[veh_heli2].id)
and not IS_ENTITY_DEAD(vehs[veh_heli2].id)
DELETE_VEHICLE(vehs[veh_heli2].id)
endif
mission_substage++
ENDIF
break
case 4
if timera() > 2000
SET_CAM_PARAMS(camfollow,<< 538.0171, 797.1656, 411.7323 >>, << -2.9483, -2.4574, -26.3961 >>,34,0,GRAPH_TYPE_LINEAR,GRAPH_TYPE_LINEAR)
SET_CAM_ACTIVE_WITH_INTERP(camfollow,cameraIndex,1000)//2300)
mission_substage++
endif
break
case 5
if timera() > 2500
SET_WEATHER_TYPE_NOW_PERSIST("CLEAR")
mission_substage++
endif
break
case 6
if timera() > 3500
if not bDrawMenu
and bresetScene
DO_SCREEN_FADE_OUT(0)
if bPlayThrough
Load_Stage_Assets(STAGE_22_FIN_EXT_P2)
set_up_stage(STAGE_22_FIN_EXT_P2)
Mission_Set_Stage(STAGE_22_FIN_EXT_P2)
mission_substage = STAGE_ENTRY
else
if DOES_ENTITY_EXIST(peds[mpf_pilot1].id)
delete_ped(peds[mpf_pilot1].id)
endif
if DOES_ENTITY_EXIST(vehs[veh_heli1].id)
DELETE_VEHICLE(vehs[veh_heli1].id)
endif
if DOES_ENTITY_EXIST(peds[mpf_pilot2].id)
delete_ped(peds[mpf_pilot2].id)
endif
if DOES_ENTITY_EXIST(vehs[veh_heli2].id)
DELETE_VEHICLE(vehs[veh_heli2].id)
endif
if DOES_ENTITY_EXIST(peds[mpf_jetPilot].id)
delete_ped(peds[mpf_jetPilot].id)
endif
if DOES_ENTITY_EXIST(vehs[veh_jet].id)
DELETE_VEHICLE(vehs[veh_jet].id)
endif
DESTROY_ALL_CAMS()
CLEAR_FOCUS()
mission_substage = STAGE_ENTRY
endif
endif
endif
break
endswitch
if IsEntityAlive(vehs[veh_heli1].id)
and IsEntityAlive(peds[mpf_jetPilot].id)
if HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(vehs[veh_heli1].id,peds[mpf_jetPilot].id)
if IS_PLAYBACK_GOING_ON_FOR_VEHICLE(vehs[veh_heli1].id)
STOP_PLAYBACK_RECORDED_VEHICLE(vehs[veh_heli1].id)
SET_ENTITY_HEALTH(vehs[veh_heli1].id,0)
endif
endif
endif
if DOES_CAM_EXIST(cameraIndex)
SET_FOCUS_POS_AND_VEL(GET_CAM_COORD(cameraIndex),<<0,0,0>>)
endif
endproc
proc ST_22_FIN_EXT_P2() //therepist has a lot to answer for
switch mission_substage
case STAGE_ENTRY
if HAS_CUTSCENE_LOADED()
SET_ENTITY_VISIBLE(player_ped_id(),true)
cameraIndex = CREATE_CAM_WITH_PARAMS_AND_SETUP_SCENE("DEFAULT_SCRIPTED_CAMERA",<< 1376.4539, -2062.7883, 51.4848 >>, << 7.5267, -0.0000, -14.6135 >>,24.7441, TRUE)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(0,TRUE,1377.702026,-2057.952881,51.962540,1.200000)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(1,TRUE,1378.937988,-2049.780762,52.548439,7.243392)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(2,TRUE,1386.948975,-2031.549194,53.900768,20.271351)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(3,TRUE,1413.269043,-1985.094849,62.787762,70.397774)
RENDER_SCRIPT_CAMS(true,false)
START_CUTSCENE_AT_COORDS(<<1352.650,-2056.3,51.05>>)
SET_CUTSCENE_ORIGIN(<<1367.650,-2041.300,51.050>>,62.436,0)
if not DOES_ENTITY_EXIST(vehs[veh_heli1].id)
vehs[veh_heli1].id = CREATE_VEHICLE(BUZZARD,<< 1379.3744, -2054.3933, 50.9981 >>, 225.8938)
SET_VEHICLE_ON_GROUND_PROPERLY(vehs[veh_heli1].id)
endif
//camera
SETTIMERA(0)
mission_substage++
endif
break
case 1
if GET_CUTSCENE_TIME() >= 1000
IF IS_SCREEN_FADED_OUT()
DO_SCREEN_FADE_IN(0)
ENDIF
mission_substage++
endif
break
case 2
if GET_CUTSCENE_TIME() >= 45000
SET_CAM_PARAMS(cameraIndex,<< 1376.5262, -2062.5112, 51.5226 >>, << 7.5267, -0.0000, -14.6135 >>, 24.7441, 13000, GRAPH_TYPE_LINEAR, GRAPH_TYPE_LINEAR)
mission_substage++
endif
break
case 3
if GET_CUTSCENE_TIME() >= 57000
STOP_CUTSCENE_IMMEDIATELY()
mission_substage++
endif
break
case 4
if HAS_CUTSCENE_FINISHED()
if not bDrawMenu
and bresetScene
DO_SCREEN_FADE_OUT(0)
if bPlayThrough
Load_Stage_Assets(STAGE_23_FINAL_SHOT)
set_up_stage(STAGE_23_FINAL_SHOT)
Mission_Set_Stage(STAGE_23_FINAL_SHOT)
mission_substage = STAGE_ENTRY
else
iSkipToStage = enum_to_int(STAGE_22_FIN_EXT_P2)
bDoSkip = true
endif
endif
endif
break
endswitch
if mission_substage > 2
and IS_CUTSCENE_PLAYING()
BYPASS_CUTSCENE_CAM_RENDERING_THIS_UPDATE()
endif
endproc
proc ST_23_FINAL_SHOT()
switch mission_substage
case STAGE_ENTRY
if HAS_CUTSCENE_LOADED()
bplayerControl = true
if GET_PLAYER_PED_ENUM(player_ped_id()) != CHAR_MICHAEL
WHILE NOT SET_CURRENT_SELECTOR_PED(SELECTOR_PED_MICHAEL)
WAIT(0)
ENDWHILE
endif
if IsEntityAlive(player_ped_id())
SET_ENTITY_VISIBLE(player_ped_id(),true)
SET_PED_COMPONENT_VARIATION(player_ped_id(),PED_COMP_SPECIAL,0,0)
SET_PED_COMPONENT_VARIATION(player_ped_id(),PED_COMP_SPECIAL2,0,0)
endif
cameraIndex = CREATE_CAM_WITH_PARAMS_AND_SETUP_SCENE("DEFAULT_SCRIPTED_CAMERA",<<1372.5806, -2071.8660, 50.8653>>, <<23.2888, -0.0000, -165.3118>>,27.3521, TRUE)
SET_CAM_ACTIVE(cameraIndex,true)
RENDER_SCRIPT_CAMS(true,false)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(0,TRUE,1373.540039,-2075.073730,51.945171,1.161457)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(1,TRUE,1373.540283,-2075.745361,51.945168,1.161457)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(2,TRUE,1403.187012,-2045.066650,56.329720,5.764066)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(3,TRUE,1380.006958,-2080.055908,53.470879,11.786053)
SET_CAM_DOF_STRENGTH(cameraIndex,0)
bHighDofOn = true
SET_CAM_NEAR_DOF(cameraIndex,3.260)
SET_CAM_FAR_DOF(cameraIndex,500)
SET_CAM_USE_SHALLOW_DOF_MODE(cameraIndex,true)
START_CUTSCENE()
SET_CUTSCENE_ORIGIN(<<1382.56,-2059.8,51>>,-120.5,0)
mission_substage++
endif
break
case 1
if GET_CUTSCENE_TIME() >= 1000
IF IS_SCREEN_FADED_OUT()
DO_SCREEN_FADE_IN(0)
ENDIF
mission_substage++
endif
break
case 2
if HAS_CUTSCENE_FINISHED()
if not bDrawMenu
and bresetScene
DO_SCREEN_FADE_OUT(0)
if bPlayThrough
iSkipToStage = enum_to_int(STAGE_0_WAIT_FOR_STAGE)
bDoSkip = true
else
iSkipToStage = enum_to_int(STAGE_23_FINAL_SHOT)
bDoSkip = true
endif
endif
endif
break
endswitch
if GET_CUTSCENE_TIME() >= 43630
BYPASS_CUTSCENE_CAM_RENDERING_THIS_UPDATE()
endif
endproc
proc ST_23_FINAL_SHOT_ALT()
switch mission_substage
case STAGE_ENTRY
if HAS_CUTSCENE_LOADED()
bplayerControl = true
if GET_PLAYER_PED_ENUM(player_ped_id()) != CHAR_MICHAEL
WHILE NOT SET_CURRENT_SELECTOR_PED(SELECTOR_PED_MICHAEL)
WAIT(0)
ENDWHILE
endif
if IsEntityAlive(player_ped_id())
SET_ENTITY_VISIBLE(player_ped_id(),true)
SET_PED_COMPONENT_VARIATION(player_ped_id(),PED_COMP_SPECIAL,0,0)
SET_PED_COMPONENT_VARIATION(player_ped_id(),PED_COMP_SPECIAL2,0,0)
endif
cameraIndex = CREATE_CAM_WITH_PARAMS_AND_SETUP_SCENE("DEFAULT_SCRIPTED_CAMERA",<<1372.9314, -2073.5801, 52.1832>>, <<7.0716, -0.0000, -168.5246>>,45, TRUE)
SET_CAM_ACTIVE(cameraIndex,true)
RENDER_SCRIPT_CAMS(true,false)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(0,TRUE,1373.540039,-2075.073730,51.945171,1.161457)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(1,TRUE,1373.540283,-2075.745361,51.945168,1.161457)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(2,TRUE,1403.187012,-2045.066650,56.329720,5.764066)
CASCADE_SHADOWS_SET_CASCADE_BOUNDS(3,TRUE,1380.006958,-2080.055908,53.470879,11.786053)
SET_CAM_DOF_STRENGTH(cameraIndex,1)
bHighDofOn = true
SET_CAM_NEAR_DOF(cameraIndex,1)
SET_CAM_FAR_DOF(cameraIndex,15)
START_CUTSCENE()
SET_CUTSCENE_ORIGIN(<<1382.56,-2059.8,51>>,-120.5,0)
mission_substage++
endif
break
case 1
if GET_CUTSCENE_TIME() >= 1000
IF IS_SCREEN_FADED_OUT()
DO_SCREEN_FADE_IN(0)
ENDIF
mission_substage++
endif
break
case 2
if HAS_CUTSCENE_FINISHED()
if not bDrawMenu
and bresetScene
DO_SCREEN_FADE_OUT(0)
if bPlayThrough
iSkipToStage = enum_to_int(STAGE_0_WAIT_FOR_STAGE)
bDoSkip = true
else
iSkipToStage = enum_to_int(STAGE_23_FINAL_SHOT)
bDoSkip = true
endif
endif
endif
break
endswitch
if GET_CUTSCENE_TIME() >= 43630
BYPASS_CUTSCENE_CAM_RENDERING_THIS_UPDATE()
endif
endproc
// STAGE_RECORD,
PROC MISSION_STAGE_SKIP()
//a skip has been made
IF bDoSkip = TRUE
//begin the skip if the switching is idle
if stageSwitch = STAGESWITCH_IDLE
if not IS_SCREEN_FADED_OUT()
IF NOT IS_SCREEN_FADING_OUT()
DO_SCREEN_FADE_OUT(1000)
ENDIF
else
Mission_Set_Stage(INT_TO_ENUM(MSF_MISSION_STAGE_FLAGS, iSkipToStage))
endif
//Needs to be carried out before states own entering stage
ELIF stageSwitch = STAGESWITCH_ENTERING
RENDER_SCRIPT_CAMS(false,false)
RESET_EVERYTHING()
Load_Stage_Assets(int_to_enum(MSF_MISSION_STAGE_FLAGS, mission_stage))
Set_up_stage(int_to_enum(MSF_MISSION_STAGE_FLAGS, mission_stage))
iTitlesTimer = GET_GAME_TIMER()
bDoSkip = FALSE
ENDIF
#if Is_debug_build
//Check is a skip being asked for, dont allow skip during setup stage
ELIF NOT IS_CURRENTLY_ON_MISSION_OF_ANY_TYPE()
if LAUNCH_MISSION_STAGE_MENU(zMenuNames, iSkipToStage, mission_stage, false,"Trailer 2 Shot List")
IF iSkipToStage > ENUM_TO_INT(STAGE_NUM_LAST)-1
Mission_Set_Stage(STAGE_0_WAIT_FOR_STAGE)
ELSE
iSkipToStage = CLAMP_INT(iSkipToStage, 0, ENUM_TO_INT(STAGE_NUM_LAST)-1)
if IS_SCREEN_FADED_IN()
DO_SCREEN_FADE_OUT(0)
bDoSkip = true
endif
endif
endif
#endif
ENDIF
ENDPROC
// -----------------------------------------------------------------------------------------------------------
// MISSION FLOW
// -----------------------------------------------------------------------------------------------------------
PROC mission_flow()
Switch int_to_enum(MSF_MISSION_STAGE_FLAGS, mission_stage)
case STAGE_0_WAIT_FOR_STAGE
ST_0_WAIT_FOR_STAGE()
break
case STAGE_1_RUN_THROUGH_SHOTS
bPlayThrough = true
bDoSkip = true
iSkipToStage = ENUM_TO_INT(STAGE_2_OBSERVATORY_SHOT)
break
case STAGE_2_OBSERVATORY_SHOT st_2_OBSERVATORY_SHOT() break
case STAGE_2_OBSERVATORY_SHOT_alt ST_2_OBSERVATORY_SHOT_ALT() break
case STAGE_3_FAM2_INT_P1 ST_3_FAM2_INT_P1() break
case STAGE_4_DRIVEWAY_SHOT ST_4_DRIVEWAY_SHOT() break
case STAGE_5_FAM1_INT_P1 ST_5_FAM1_INT_P1() break
case STAGE_6_CITY_TRAIN_SHOT ST_6_CITY_TRAIN_SHOT() break
case STAGE_7_COUNTRY_SCAPE_SHOT ST_7_COUNTRY_SCAPE_SHOT() break
case STAGE_8_LIQUOR_ACE_SHOT ST_8_LIQUOR_ACE_SHOT() break
case STAGE_9_TREV1_MCS3_P2_A ST_9_TREV1_MCS3_P2_A() break
case STAGE_10_CHIN1_INT_P2 ST_10_CHIN1_INT_P2() break
case STAGE_11_TREV1_MCS3_P2_B ST_11_TREV1_MCS3_P2_B() break
case STAGE_12_CHIN1_MCS4 ST_12_CHIN1_MCS4() break
case STAGE_13_DOCKS_BRIDGE_SHOT ST_13_DOCKS_BRIDGE_SHOT() break
case STAGE_13_DOCKS_BRIDGE_SHOT_ALT ST_13_DOCKS_BRIDGE_SHOT_ALT ()break
case STAGE_14_GHETTO_TRAIN_SHOT ST_14_GHETTO_TRAIN_SHOT() break
case STAGE_15_ARM1_INT_P3 ST_15_ARM1_INT_P3() break
case STAGE_16_FRA2_INT_P2 ST_16_FRA2_INT_P2() break
case STAGE_17_ARM1_INT_P4 ST_17_ARM1_INT_P4() break
case STAGE_17_ARM1_INT_P4_ALT ST_17_ARM1_INT_P4_ALT() break
case STAGE_18_ARM1_INT_P1 ST_18_ARM1_INT_P1() break
case STAGE_19_FAM5_MCS5 ST_19_FAM5_MCS5() break
case STAGE_20_TREV1_INT_P4 ST_20_TREV1_INT_P4() break
case STAGE_21_FBI2_MCS1_P1 ST_21_FBI2_MCS1_P1() break
case STAGE_22_FIN_EXT_P2 ST_22_FIN_EXT_P2() break
case STAGE_23_FINAL_SHOT ST_23_FINAL_SHOT() break
case STAGE_23_FINAL_SHOT_ALT ST_23_FINAL_SHOT_ALT() break
//action shots
case AS_BUGGY AST_BUGGY() break
case AS_TREV_MOL AST_TREV_MOL() break
case AS_FIRE_TRAIL AST_FIRE_TRAIL() break
case AS_BARN_BOOM AST_BARN_BLOW() break
case AS_VAULT_EXP AST_VAULT_EXP() break
case AS_PRO_BLAST AST_PRO_BLAST() break
case AS_CAR_SLIDE AST_SLIDE_CAR() break
case AS_CHOP_ON_CAR AST_CHOP_CAR() break
case AS_FRANK_BIKE_EXP AST_BIKE_EXP() break
case AS_JET_FIGHT AST_JET_FIGHT() break
// Mission launching
case AS_LAUNCH_ARM1 LNCH_ARM_1() break
case AS_LAUNCH_CAR_STEAL_3 LNCH_CAR_STEAL_3() break
case AS_LAUNCH_CAR_STEAL_FINALE LNCH_CAR_STEAL_FINALE() break
case AS_LAUNCH_EXILE_1 LNCH_EXILE_1() break
case AS_LAUNCH_EXILE_3 LNCH_EXILE_3() break
case AS_LAUNCH_FAMILY_1 LNCH_FAM_1() break
case AS_LAUNCH_FBI_2 LNCH_FBI2() break
case AS_LAUNCH_FRANK_1 LNCH_FRANK_1() break
case AS_LAUNCH_JEWEL_2A LNCH_JEWEL_HEIST_2A() break
case AS_LAUNCH_OFFROAD_RACE_1 LNCH_Offroad_1() break
case AS_LAUNCH_TREV2 LNCH_TREV_2() break
endswitch
ENDPROC
Proc trailer_checks()
//death check
int i
for i = 0 to enum_to_int(MPF_NUM_OF_PEDS) -1
if DOES_ENTITY_EXIST(peds[i].id)
if IS_PED_INJURED(peds[i].id)
SET_PED_AS_NO_LONGER_NEEDED(peds[i].id)
ENDIF
ENDIF
ENDFOR
for i = 0 to enum_to_int(MVF_NUM_OF_VEH) -1
if DOES_ENTITY_EXIST(vehs[i].id)
if not IS_VEHICLE_DRIVEABLE(vehs[i].id)
SET_VEHICLE_AS_NO_LONGER_NEEDED(vehs[i].id)
ENDIF
ENDIF
ENDFOR
//
CONTROL_GAS_TRAILS()
IF IS_KEYBOARD_KEY_JUST_PRESSED(KEY_P)
if bresetScene
bresetScene = false
else
bresetScene = true
endif
ENDIF
if mission_stage > enum_to_int(STAGE_0_WAIT_FOR_STAGE)
and bWideScreen
and not bDrawMenu
DRAW_RECT_FROM_CORNER(0,0,1,0.1,0,0,0,255)
DRAW_RECT_FROM_CORNER(0,0.9,1,0.1,0,0,0,255)
endif
IF bHighDofOn
SET_USE_HI_DOF()
ENDIF
IF mission_stage <> enum_to_int(STAGE_0_WAIT_FOR_STAGE)
AND mission_Stage <> enum_to_int(STAGE_1_RUN_THROUGH_SHOTS)
AND bDisplayTitles
IF GET_GAME_TIMER() - iTitlesTimer < 2500
DISPLAY_TEXT_WITH_LITERAL_STRING(0.05, 0.04, "STRING", zMenuNames[mission_stage].sTxtLabel)
ENDIF
ENDIF
if DOES_CAM_EXIST(cameraIndex)
vCamPOS = GET_CAM_COORD(cameraIndex)
vCamROT = GET_CAM_ROT(cameraIndex)
fCamFOV = GET_CAM_FOV(cameraIndex)
else
vCamPOS = <<0,0,0>>
fCamFOV =0
endif
if DOES_CAM_EXIST(GET_DEBUG_CAM())
vdebugcamPOS= GET_CAM_COORD(GET_DEBUG_CAM())
vdebugCamROT= get_cam_rot(GET_DEBUG_CAM())
fdebugcamFOV= GET_CAM_FOV(GET_DEBUG_CAM())
endif
if bClearArea
bClearArea = false
CLEAR_AREA(GET_ENTITY_COORDS(player_ped_id()),500,true)
endif
DISPLAY_RADAR(FALSE)
DISPLAY_HUD(FALSE)
SET_PED_DENSITY_MULTIPLIER_THIS_FRAME(fPedDensity)
SET_RANDOM_VEHICLE_DENSITY_MULTIPLIER_THIS_FRAME(fTrafficDensity)
if IS_CURRENTLY_ON_MISSION_OF_ANY_TYPE()
bDrawMenu = false
SET_PLAYER_CONTROL(player_id(),true)
SET_ENTITY_INVINCIBLE(player_ped_id(),false)
SET_ENTITY_VISIBLE(PLAYER_PED_ID(), TRUE)
else
if bplayerControl
SET_PLAYER_CONTROL(player_id(),true)
SET_ENTITY_VISIBLE(PLAYER_PED_ID(), TRUE)
else
SET_PLAYER_CONTROL(player_id(),false)
endif
SET_ENTITY_INVINCIBLE(player_ped_id(),true)
endif
if mission_stage = enum_to_int(AS_LAUNCH_FBI_2)
SET_RANDOM_VEHICLE_DENSITY_MULTIPLIER_THIS_FRAME(4)
SET_VEHICLE_DENSITY_MULTIPLIER_THIS_FRAME(4)
SET_AMBIENT_VEHICLE_RANGE_MULTIPLIER_THIS_FRAME(4)
endif
OVERRIDE_LODSCALE_THIS_FRAME(fLODscale)
g_bTrailer2Active = true
endproc
// ===========================================================================================================
// Script Loop
// ===========================================================================================================
SCRIPT
PRINTSTRING("...Trailer 2 Launched")
PRINTNL()
NETWORK_SET_SCRIPT_IS_SAFE_FOR_NETWORK_GAME()
IF HAS_FORCE_CLEANUP_OCCURRED(FORCE_CLEANUP_FLAG_DEBUG_MENU)
PRINTSTRING("...Trailer 2 clean up")
Mission_Cleanup(true)
ENDIF
// SET_MISSION_FLAG(TRUE)
MISSION_SETUP()
WHILE (TRUE)
Mission_stage_management()
MISSION_STAGE_SKIP()
mission_flow()
trailer_checks()
IF IS_KEYBOARD_KEY_JUST_PRESSED(KEY_F)
IF NOT IS_CURRENTLY_ON_MISSION_OF_ANY_TYPE()
Mission_Cleanup(true)
endif
ENDIF
if not IsEntityAlive(player_ped_id())
Mission_Cleanup(true)
endif
WAIT(0)
ENDWHILE
// Script should never reach here. Always terminate with cleanup function.
ENDSCRIPT
#ENDIF