7776 lines
256 KiB
Python
Executable File
7776 lines
256 KiB
Python
Executable File
|
|
//Compile out Title Update changes to header functions.
|
|
//Must be before includes.
|
|
//CONST_INT USE_TU_CHANGES 0 // Removed by Kenneth R.
|
|
|
|
USING "CompletionPercentage_public.sch"
|
|
USING "RC_Helper_Functions.sch"
|
|
USING "chase_hint_cam.sch"
|
|
USING "RC_Threat_public.sch"
|
|
USING "RC_Area_public.sch"
|
|
USING "traffic_default_values.sch"
|
|
USING "traffic.sch"
|
|
USING "RC_Launcher_public.sch"
|
|
USING "initial_scenes_Paparazzo.sch"
|
|
USING "commands_event.sch"
|
|
USING "commands_recording.sch"
|
|
|
|
USING "mp_scaleform_functions.sch"
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
USING "select_mission_stage.sch"
|
|
#ENDIF
|
|
|
|
USING "taxi_functions.sch"
|
|
|
|
// *****************************************************************************************
|
|
// *****************************************************************************************
|
|
// *****************************************************************************************
|
|
//
|
|
// MISSION NAME : Paparazzo3A.sc
|
|
// AUTHOR : Ben Hinchliffe/Tom Kingsley
|
|
// DESCRIPTION :
|
|
//
|
|
// *****************************************************************************************
|
|
// *****************************************************************************************
|
|
// *****************************************************************************************
|
|
|
|
// The Random Character - sRCLauncherDataLocal.mPedID[0]
|
|
g_structRCScriptArgs sRCLauncherDataLocal
|
|
|
|
ENUM MISSION_STAGE
|
|
|
|
MS_INITIAL_PHONE,
|
|
MS_GO_TO_LOCATION,
|
|
MS_CHASE_POPPY,
|
|
MS_GO_TO_CRASH,
|
|
MS_TAKE_PHOTO,
|
|
MS_END_PHONECALL,
|
|
MS_MISSION_FAILED
|
|
|
|
ENDENUM
|
|
|
|
ENUM SUB_STAGE
|
|
SS_SETUP = 0,
|
|
SS_UPDATE,
|
|
SS_CLEANUP
|
|
ENDENUM
|
|
|
|
ENUM SUB_REC_STAGE
|
|
SSRP_SETUP,
|
|
SSRP_UPDATE,
|
|
SSRP_CLEANUP
|
|
ENDENUM
|
|
|
|
// Fail reasons
|
|
ENUM FAIL_REASON
|
|
FAIL_DEFAULT,
|
|
FAIL_PHOTO_LOST,
|
|
FAIL_POPPY_INJURED,
|
|
FAIL_POPPY_KILLED,
|
|
FAIL_POPPY_LOST,
|
|
FAIL_POLICE_INTER
|
|
ENDENUM
|
|
|
|
ENUM POPPY_STATE
|
|
PS_WAIT_FOR_PLAYER,
|
|
PS_DRIVING,
|
|
PS_LEAVE_VEHICLE,
|
|
PS_SURRENDER,
|
|
PS_ARRESTED,
|
|
PS_GET_IN_VEHICLE,
|
|
PS_POPPY_IN_COP_CAR,
|
|
PS_FLEE_AREA
|
|
ENDENUM
|
|
|
|
ENUM STANDING_STATE
|
|
SS_STANDING_AND_WAIT,
|
|
SS_AIM_GUN_AT_POPPY,
|
|
SS_AIM_GUN_AT_PLAYER,
|
|
SS_ATTACK_PLAYER,
|
|
SS_GET_INTO_VEHICLE,
|
|
SS_WANDER_IN_AREA,
|
|
SS_FLEE_FROM_CARS
|
|
ENDENUM
|
|
|
|
ENUM COP_STATE
|
|
CS_DRIVING,
|
|
CS_LEAVE_VEHICLE,
|
|
CS_AIM_AT_POPPY,
|
|
CS_MOVE_TO_POPPY,
|
|
CS_ARREST_POPPY,
|
|
CS_ENTER_COP_CAR,
|
|
CS_APPROAH_CRASHED_CAR,
|
|
CS_LEAVE_AREA,
|
|
CS_AREA_WARN_PLAYER,
|
|
CS_ATTACK_PLAYER
|
|
ENDENUM
|
|
|
|
//Player's car
|
|
VEHICLE_INDEX vehPlayer
|
|
VEHICLE_INDEX vehLimo
|
|
VEHICLE_INDEX vehPoliceChopper
|
|
|
|
PED_INDEX pedChopperPilot
|
|
PED_INDEX pedValet
|
|
|
|
// MISSION PED
|
|
STRUCT MISSION_PED
|
|
PED_INDEX mPed
|
|
VECTOR vStartPos
|
|
FLOAT fStartHeading
|
|
MODEL_NAMES mModel
|
|
STRING sIntialAnim
|
|
BOOL bImDead
|
|
BLIP_INDEX mBlip
|
|
ENDSTRUCT
|
|
|
|
|
|
// MISSION VEHICLE
|
|
STRUCT MISSION_VEHICLE
|
|
VEHICLE_INDEX mVehicle
|
|
VECTOR vStartPos
|
|
FLOAT fStartHeading
|
|
MODEL_NAMES mModel
|
|
ENDSTRUCT
|
|
|
|
// MISSION PROPS
|
|
STRUCT MISSION_PROP
|
|
OBJECT_INDEX mObject
|
|
VECTOR vStartPos
|
|
FLOAT fStartHeading
|
|
MODEL_NAMES mModel
|
|
ENDSTRUCT
|
|
|
|
VECTOR vCop
|
|
|
|
SEQUENCE_INDEX seqAvoidCarDoor
|
|
SEQUENCE_INDEX seqPlayerExitCarFaceCrash
|
|
|
|
CAMERA_INDEX camPoppy
|
|
CAMERA_INDEX camPoppy2
|
|
|
|
BLIP_INDEX blipPoppy
|
|
BLIP_INDEX blipPoppyCar
|
|
|
|
VEHICLE_INDEX vehTraffic[10]
|
|
PED_INDEX pedRandomDriver[10]
|
|
SEQUENCE_INDEX seqTraffic[10]
|
|
|
|
INT iShockingEvent
|
|
|
|
//STREAMVOL_ID stream_volume
|
|
|
|
INT iTimerCorrectPicSent
|
|
INT iTimerPicTaken
|
|
INT iTimerCopsLeavingArea
|
|
INT iRandomTrafficSeq
|
|
INT poppy_arrest_scene
|
|
INT iBevTxtsBadPic
|
|
INT iBevTxtsTooFarAway
|
|
INT iSeqCasino
|
|
INT iSeqPoppyDialogue
|
|
INT iWanted
|
|
INT iRammingCops
|
|
INT iTimerCheckDamage
|
|
|
|
INT iSubSwitch
|
|
INT iRetrigger
|
|
INT iSubsPoppy
|
|
|
|
INT iFramesCheckingPhotoOk
|
|
INT iPhotoScore
|
|
|
|
TEXT_LABEL_23 labelRetrig
|
|
|
|
BOOL bHelpPrint1
|
|
BOOL bHelpPrint2
|
|
BOOL bHelpPrint3
|
|
BOOL bPlayerLeftArea
|
|
BOOL bPrintCatchUp
|
|
BOOL bDoneFakeStart
|
|
BOOL bPrintLeaveArea
|
|
BOOL bCrashSoundPlayed
|
|
BOOL bPoppyCarSmashed
|
|
BOOL bCarStopping
|
|
//BOOL bBadPicSent
|
|
BOOL bRegisterBevCall
|
|
BOOL bPrintNonSimpleHelp = FALSE
|
|
BOOL bPrintWantedHelp = FALSE
|
|
BOOL bPhotoInCuffs = FALSE
|
|
BOOL bStatsFarFromPoppy = FALSE
|
|
BOOL bReplay
|
|
BOOL bHeliReplay
|
|
BOOL bWrongContact = FALSE
|
|
BOOL bTooFarAway
|
|
BOOL bPicTaken
|
|
BOOL bPicSent
|
|
BOOL bSweetTxtSent
|
|
BOOL bKickedOffDialogueAgain
|
|
BOOL bPhotoPoppyObj
|
|
//BOOL bSkipMore
|
|
BOOL bDelayFade
|
|
BOOL bCopWarning
|
|
BOOL bPlayerStopped
|
|
BOOL bReplayTaskHeli
|
|
|
|
INT iDoDelayedLastLine
|
|
|
|
BOOL bDelayMusic
|
|
INT iTimerDelayMusic
|
|
INT iCopCrashSeq1
|
|
//BOOL bEngineSwitch
|
|
|
|
//INT iPlaybackProgress
|
|
|
|
VECTOR vPoppy
|
|
VECTOR vPoliceCarPos
|
|
VECTOR vPitchersJunc
|
|
VECTOR vPawnJunc
|
|
|
|
BOOL bCrashCutDone
|
|
BOOL bPoppyAndCopDrivingOff
|
|
|
|
INT iTimerReplayStarted
|
|
BOOL bDoneDelayedFadeIn
|
|
//FLOAT fAlpha = 1
|
|
|
|
FLOAT fPhase
|
|
FLOAT fTimePosInRec
|
|
FLOAT fLowPlaybackSpeedClamp
|
|
FLOAT fHighPlaybackSpeedClamp = 1.0
|
|
FLOAT fMaxDist
|
|
//VECTOR vBlip
|
|
//FLOAT fSlowFact = 300
|
|
//FLOAT fSlidy
|
|
|
|
MISSION_STAGE missionStage = MS_INITIAL_PHONE
|
|
SUB_STAGE eSubStage = SS_SETUP
|
|
SUB_REC_STAGE eSubStageRec = SSRP_SETUP
|
|
POPPY_STATE ePoppyState = PS_WAIT_FOR_PLAYER
|
|
|
|
// STAGE SKIPPING
|
|
// STAGE SKIPPING
|
|
#IF IS_DEBUG_BUILD
|
|
CONST_INT MAX_SKIP_MENU_LENGTH 6
|
|
MissionStageMenuTextStruct mSkipMenu[MAX_SKIP_MENU_LENGTH]
|
|
#ENDIF
|
|
|
|
MISSION_STAGE eTargetStage // now used in release build too for checkpoint stuff
|
|
BOOL bFinishedSkipping // now used in release build too for checkpoint stuff
|
|
|
|
//----------------------
|
|
// CHECKPOINTS
|
|
//----------------------
|
|
|
|
CONST_INT CP_AT_POPPY_LOCATION 1
|
|
CONST_INT CP_AT_CRASH_LOCATION 2
|
|
CONST_INT CP_END 3
|
|
|
|
CONST_INT Z_SKIP_PHONECALL 1
|
|
CONST_INT Z_SKIP_AT_POPPY_LOCATION 2
|
|
CONST_INT Z_SKIP_AT_CRASH_LOCATION 4
|
|
|
|
CONST_INT NUM_OF_POLICE_CARS 3
|
|
CONST_INT NUM_OF_PARKED_CARS 10
|
|
CONST_INT NUM_OF_POLICE_PEDS 4
|
|
CONST_INT NUM_OF_STANDING_PEDS 6 //COPS AND BUILDERS STANDING DURING CHASE
|
|
CONST_INT NUM_OF_CHASE_PROPS 10
|
|
|
|
COP_STATE eCopState[NUM_OF_POLICE_PEDS]
|
|
STANDING_STATE eStandingState[NUM_OF_STANDING_PEDS]
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
INT iRecordingProgress
|
|
#ENDIF
|
|
|
|
|
|
INT iHelp
|
|
INT iDialogueToPlay //USED FOR DIALOGUE DURING CHASE
|
|
INT iSeqCarDoors
|
|
INT iTimerSyncSceneStarted
|
|
|
|
//BLIPS
|
|
BLIP_INDEX biMissionBlip
|
|
|
|
MISSION_VEHICLE mvPoliceCars[NUM_OF_POLICE_CARS]
|
|
MISSION_VEHICLE mvPoppyCar
|
|
MISSION_VEHICLE mvParkedCar[NUM_OF_PARKED_CARS] //CAR PARKED NEAR CHASE START FOR PLAYER CONVENEINCE
|
|
|
|
MISSION_PED mpPolicePed[NUM_OF_POLICE_PEDS]
|
|
MISSION_PED mpPoppyPed
|
|
|
|
MISSION_PED mpStandingPeds[NUM_OF_STANDING_PEDS]
|
|
|
|
MISSION_PROP mpsChaseProps[NUM_OF_CHASE_PROPS]
|
|
|
|
//BOOLS
|
|
BOOL bMainObjectiveDisplayed
|
|
BOOL bPoliceChaseCreated
|
|
BOOL bCopsAreLeaving
|
|
BOOL bCopCrashed
|
|
BOOL b_Correct_Pic_Taken
|
|
BOOL bPhotoSent
|
|
BOOL bPoppyHasCrashed
|
|
BOOL bConversationActive
|
|
BOOL bPoliceAttacking
|
|
BOOL bSimpleHelp
|
|
BOOL bFailDialogue
|
|
BOOL bAmbDialogue
|
|
//BOOL bPlayerForcedOutAtCrash
|
|
BOOL bDoingRollingReplay
|
|
BOOL bDone1stPersonFlash
|
|
|
|
//FLOATS
|
|
FLOAT fPlayBackSpeed
|
|
//FLOAT fPlaybackAccel = 0.0
|
|
FLOAT fCopCarFrontDoorOpenRatio = 0
|
|
FLOAT fCopCarRearDoorOpenRatio = 0
|
|
FLOAT fPoppyCarFrontDoorOpenRatio = 0
|
|
|
|
//CONST FLOATS
|
|
CONST_FLOAT FOUND_DIS 700.0//90.0
|
|
CONST_FLOAT FOUND_DIS2 700.0//180.0
|
|
CONST_FLOAT LOSE_DISTANCE 220.0 //180.0//150.0
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
WIDGET_GROUP_ID wgUberChase
|
|
#ENDIF
|
|
|
|
//VECTORS
|
|
VECTOR vPoppyInitialLocation = << 695.8621, 12.6177, 83.1933 >>
|
|
VECTOR vCrashLocation = << 341.9170, -409.2796, 44.1959 >>
|
|
VECTOR vPoppySurrenderPos = << 345.3037, -406.1878, 44.1304 >>//<< 345.2901, -407.4490, 44.0822 >>
|
|
|
|
//POLY TESTS
|
|
TEST_POLY tpPoliceBlock
|
|
|
|
//STRINGS
|
|
FAIL_REASON eFailReason
|
|
|
|
// CONVERSATIONS
|
|
structPedsForConversation sSpeach
|
|
CHASE_HINT_CAM_STRUCT localChaseHintCamStruct
|
|
|
|
//SEQUENCE_INDEX si_Poppy1 //POPPY'S arrest sequence at crash scene
|
|
|
|
//Relationship groups
|
|
REL_GROUP_HASH relCopGroup
|
|
REL_GROUP_HASH relPoppy
|
|
|
|
//USED FOR ROLLING START - REPLAY
|
|
BOOL bDoRollingStart
|
|
BOOL bDoneRollingStart
|
|
INT iRollingStartTimer
|
|
|
|
/// PURPOSE:
|
|
/// Loads all the inital arrays - PED LOCATIONS etc.
|
|
PROC INIT_ARRAYS
|
|
|
|
//VEHICLES
|
|
|
|
//CELEBRITY - POPPY'S CAR
|
|
mvPoppyCar.vStartPos = <<722.702881,65.287430,82.590530>>//<< 735.4008, 85.3099, 80.9257 >>
|
|
mvPoppyCar.fStartHeading = 141.0
|
|
mvPoppyCar.mModel = COGCABRIO //Zion2(cool) //sentinel2 //CARBONIZZARE //sentinel
|
|
|
|
//PARKED CAR
|
|
mvParkedCar[0].vStartPos = <<703.1887, 230.0058, 91.6438>>//<< 621.6558, 61.9796, 89.0208 >>
|
|
mvParkedCar[0].fStartHeading = 59.6823//152.0
|
|
mvParkedCar[0].mModel = JACKAL
|
|
mvParkedCar[1].vStartPos = << 754.2217, -163.2057, 73.7662 >>
|
|
mvParkedCar[1].fStartHeading = 238.0
|
|
mvParkedCar[1].mModel = sentinel //JACKAL
|
|
mvParkedCar[6].vStartPos = << 881.5699, 39.6837, 77.4769 >>
|
|
mvParkedCar[6].fStartHeading = 314.0
|
|
mvParkedCar[6].mModel = pounder
|
|
mvParkedCar[7].vStartPos = << 806.9825, -83.9695, 79.5911 >>
|
|
mvParkedCar[7].fStartHeading = 55.0
|
|
mvParkedCar[7].mModel = pounder
|
|
mvParkedCar[8].vStartPos = << 894.0145, -38.8992, 77.7647 >>
|
|
mvParkedCar[8].fStartHeading = 238.0
|
|
mvParkedCar[8].mModel = JACKAL
|
|
mvParkedCar[9].vStartPos = << 903.1145, -65.7640, 77.7647 >>
|
|
mvParkedCar[9].fStartHeading = 57.0
|
|
mvParkedCar[9].mModel = sentinel //taxi
|
|
//PARKED TRUCKS
|
|
mvParkedCar[2].vStartPos = << 639.1010, -97.6283, 73.5104 >>
|
|
mvParkedCar[2].fStartHeading = 230.0
|
|
mvParkedCar[2].mModel = tiptruck
|
|
mvParkedCar[3].vStartPos = << 637.8901, -75.7718, 73.9779 >>
|
|
mvParkedCar[3].fStartHeading = 312.0
|
|
mvParkedCar[3].mModel = tiptruck
|
|
//PARKED COP CARS
|
|
mvParkedCar[4].vStartPos = << 813.1224, -60.5906, 79.6415 >>
|
|
mvParkedCar[4].fStartHeading = 151.0
|
|
mvParkedCar[4].mModel = police3
|
|
mvParkedCar[5].vStartPos = << 806.4680, -69.2880, 79.6412 >>
|
|
mvParkedCar[5].fStartHeading = 325.0
|
|
mvParkedCar[5].mModel = police3
|
|
|
|
//POLICE CARS
|
|
mvPoliceCars[0].vStartPos = <<535.0950, 181.3821, 99.4294>>//<< 735.9570, 78.9067, 81.3816 >>
|
|
mvPoliceCars[0].fStartHeading = 340.6452//141.0
|
|
mvPoliceCars[0].mModel = police3
|
|
mvPoliceCars[1].vStartPos = <<699.5699, 225.2489, 91.5223>>//<< 726.9023, 73.2327, 82.1510 >>
|
|
mvPoliceCars[1].fStartHeading = 240.1702//141.0
|
|
mvPoliceCars[1].mModel = police3
|
|
mvPoliceCars[2].vStartPos = << 827.4832, -55.2525, 79.5899 >>
|
|
mvPoliceCars[2].fStartHeading = 77.0
|
|
mvPoliceCars[2].mModel = police3
|
|
|
|
//PEDS
|
|
|
|
//POLICE
|
|
mpPolicePed[0].mModel = S_M_Y_Cop_01
|
|
mpPolicePed[1].mModel = S_M_Y_Cop_01
|
|
mpPolicePed[2].mModel = S_M_Y_Cop_01
|
|
mpPolicePed[3].mModel = S_M_Y_Cop_01
|
|
|
|
//POPPY
|
|
mpPoppyPed.mModel = U_F_Y_PoppyMich
|
|
|
|
//STANDING PEDS
|
|
mpStandingPeds[0].vStartPos = << 798.3842, -76.0535, 79.5907 >>
|
|
mpStandingPeds[0].fStartHeading = 46.0
|
|
mpStandingPeds[0].mModel = S_M_Y_Cop_01
|
|
mpStandingPeds[1].vStartPos = << 805.3050, -75.5530, 79.4485 >>
|
|
mpStandingPeds[1].fStartHeading = 46.0
|
|
mpStandingPeds[1].mModel = S_M_Y_Cop_01
|
|
mpStandingPeds[2].vStartPos = << 627.6722, -84.7451, 73.0863 >>
|
|
mpStandingPeds[2].fStartHeading = 123.0
|
|
mpStandingPeds[2].mModel = S_M_Y_Cop_01 //S_M_Y_Construct_02
|
|
mpStandingPeds[3].vStartPos = << 631.7634, -77.7747, 73.5139 >>
|
|
mpStandingPeds[3].fStartHeading = 270.0
|
|
mpStandingPeds[3].mModel = S_M_Y_Cop_01 //S_M_Y_Construct_02
|
|
mpStandingPeds[4].vStartPos = << 826.9551, -57.2431, 79.5911 >>
|
|
mpStandingPeds[4].fStartHeading = 48.0
|
|
mpStandingPeds[4].mModel = S_M_Y_Cop_01
|
|
mpStandingPeds[5].vStartPos = << 814.1181, -64.4872, 79.6434 >>
|
|
mpStandingPeds[5].fStartHeading = 52.0
|
|
mpStandingPeds[5].mModel = S_M_Y_Cop_01
|
|
|
|
|
|
//PROPS
|
|
mpsChaseProps[0].vStartPos = << 634.4785, -68.8406, 74.2911 >>
|
|
mpsChaseProps[0].fStartHeading = 24.0
|
|
mpsChaseProps[0].mModel = PROP_BARRIER_WORK04A
|
|
mpsChaseProps[1].vStartPos = << 627.1672, -73.8742, 73.3072 >>
|
|
mpsChaseProps[1].fStartHeading = 33.0
|
|
mpsChaseProps[1].mModel = PROP_BARRIER_WORK04A
|
|
mpsChaseProps[2].vStartPos = << 653.2055, -96.2269, 73.4953 >>
|
|
mpsChaseProps[2].fStartHeading = 238.0
|
|
mpsChaseProps[2].mModel = PROP_BARRIER_WORK04A
|
|
mpsChaseProps[3].vStartPos = << 657.0881, -91.6722, 73.5133 >>
|
|
mpsChaseProps[3].fStartHeading = 58.0
|
|
mpsChaseProps[3].mModel = PROP_BARRIER_WORK04A
|
|
mpsChaseProps[4].vStartPos = << 626.6002, -89.5324, 72.7673 >>
|
|
mpsChaseProps[4].fStartHeading = 72.0
|
|
mpsChaseProps[4].mModel = PROP_BARREL_01A
|
|
mpsChaseProps[5].vStartPos = << 624.3754, -88.3926, 72.4953 >>
|
|
mpsChaseProps[5].fStartHeading = 14.0
|
|
mpsChaseProps[5].mModel = PROP_BARREL_01A
|
|
mpsChaseProps[6].vStartPos = << 626.1615, -85.4177, 72.9135 >>
|
|
mpsChaseProps[6].fStartHeading = 323.0
|
|
mpsChaseProps[6].mModel = PROP_BARREL_01A
|
|
mpsChaseProps[7].vStartPos = << 809.2114, -64.1885, 79.6407 >>
|
|
mpsChaseProps[7].fStartHeading = 236.0
|
|
mpsChaseProps[7].mModel = PROP_BARRIER_WORK06A
|
|
mpsChaseProps[8].vStartPos = << 815.4871, -54.4268, 79.5902 >>
|
|
mpsChaseProps[8].fStartHeading = 233.0
|
|
mpsChaseProps[8].mModel = PROP_BARRIER_WORK06A
|
|
mpsChaseProps[9].vStartPos = << 802.5724, -72.9779, 79.4857 >>
|
|
mpsChaseProps[9].fStartHeading = 232.0
|
|
mpsChaseProps[9].mModel = PROP_BARRIER_WORK06A
|
|
|
|
ENDPROC
|
|
|
|
PROC SK_PRINT_FLOAT(String s, FLOAT f)
|
|
CPRINTLN(DEBUG_MISSION,s)
|
|
PRINTFLOAT(f)
|
|
ENDPROC
|
|
|
|
/// PURPOSE: Request and load uber recording
|
|
PROC PRELOAD_CAR_RECORDINGS_FOR_UBER_CHASE()
|
|
|
|
//REQUEST_VEHICLE_RECORDING(250, "PAP3U") //POPPY CAR
|
|
REQUEST_VEHICLE_RECORDING(300, "PAP3A2") //POPPY CAR
|
|
|
|
WHILE NOT HAS_VEHICLE_RECORDING_BEEN_LOADED(300, "PAP3A2") //POPPY CAR
|
|
WAIT(0)
|
|
ENDWHILE
|
|
ENDPROC
|
|
|
|
/// PURPOSE: Load data for uber chase
|
|
PROC LOAD_UBER_DATA
|
|
|
|
TrafficCarPos[2] = <<682.9803, -10.3641, 83.6767>>
|
|
TrafficCarQuatX[2] = 0.0047
|
|
TrafficCarQuatY[2] = -0.0004
|
|
TrafficCarQuatZ[2] = -0.2797
|
|
TrafficCarQuatW[2] = 0.9601
|
|
TrafficCarRecording[2] = 4
|
|
TrafficCarStartime[2] = 396.0000
|
|
TrafficCarModel[2] = taxi
|
|
|
|
/*
|
|
TrafficCarPos[3] = <<767.3616, -48.5691, 80.2328>>
|
|
TrafficCarQuatX[3] = 0.0093
|
|
TrafficCarQuatY[3] = -0.0177
|
|
TrafficCarQuatZ[3] = 0.8729
|
|
TrafficCarQuatW[3] = -0.4874
|
|
TrafficCarRecording[3] = 5
|
|
TrafficCarStartime[3] = 3432.0000
|
|
TrafficCarModel[3] = sentinel
|
|
*/
|
|
|
|
TrafficCarPos[4] = <<789.4747, -50.4215, 80.1686>>
|
|
TrafficCarQuatX[4] = 0.0029
|
|
TrafficCarQuatY[4] = -0.0066
|
|
TrafficCarQuatZ[4] = 0.8867
|
|
TrafficCarQuatW[4] = -0.4623
|
|
TrafficCarRecording[4] = 6
|
|
TrafficCarStartime[4] = 4224.0000
|
|
TrafficCarModel[4] = fq2
|
|
|
|
/*
|
|
TrafficCarPos[5] = <<844.4269, 12.6046, 79.1439>>
|
|
TrafficCarQuatX[5] = 0.0058
|
|
TrafficCarQuatY[5] = 0.0154
|
|
TrafficCarQuatZ[5] = 0.9275
|
|
TrafficCarQuatW[5] = 0.3735
|
|
TrafficCarRecording[5] = 7
|
|
TrafficCarStartime[5] = 7920.0000
|
|
TrafficCarModel[5] = fq2
|
|
*/
|
|
|
|
/*
|
|
TrafficCarPos[6] = <<821.6198, -83.4346, 80.2198>>
|
|
TrafficCarQuatX[6] = -0.0070
|
|
TrafficCarQuatY[6] = -0.0036
|
|
TrafficCarQuatZ[6] = 0.8792
|
|
TrafficCarQuatW[6] = -0.4763
|
|
TrafficCarRecording[6] = 8
|
|
TrafficCarStartime[6] = 16104.0000
|
|
TrafficCarModel[6] = taxi
|
|
|
|
|
|
ParkedCarPos[0] = <<851.5927, -124.9243, 78.6984>>
|
|
ParkedCarQuatX[0] = -0.0207
|
|
ParkedCarQuatY[0] = -0.0259
|
|
ParkedCarQuatZ[0] = 0.9615
|
|
ParkedCarQuatW[0] = 0.2728
|
|
ParkedCarModel[0] = taxi
|
|
*/
|
|
|
|
/*
|
|
ParkedCarPos[2] = <<835.2613, -169.3098, 73.1024>>
|
|
ParkedCarQuatX[2] = 0.0548
|
|
ParkedCarQuatY[2] = -0.0154
|
|
ParkedCarQuatZ[2] = -0.2750
|
|
ParkedCarQuatW[2] = 0.9597
|
|
ParkedCarModel[2] = youga
|
|
*/
|
|
|
|
TrafficCarPos[7] = <<806.2521, -187.2793, 72.3050>>
|
|
TrafficCarQuatX[7] = -0.0038
|
|
TrafficCarQuatY[7] = 0.0080
|
|
TrafficCarQuatZ[7] = 0.8685
|
|
TrafficCarQuatW[7] = -0.4957
|
|
TrafficCarRecording[7] = 9
|
|
TrafficCarStartime[7] = 19404.0000
|
|
TrafficCarModel[7] = youga
|
|
/*
|
|
ParkedCarPos[4] = <<835.3287, -210.6532, 71.9030>>
|
|
ParkedCarQuatX[4] = 0.0087
|
|
ParkedCarQuatY[4] = 0.0150
|
|
ParkedCarQuatZ[4] = -0.0215
|
|
ParkedCarQuatW[4] = 0.9996
|
|
ParkedCarModel[4] = youga
|
|
|
|
ParkedCarPos[5] = <<838.9982, -213.1142, 71.7213>>
|
|
ParkedCarQuatX[5] = 0.0238
|
|
ParkedCarQuatY[5] = -0.0129
|
|
ParkedCarQuatZ[5] = 0.9995
|
|
ParkedCarQuatW[5] = 0.0148
|
|
ParkedCarModel[5] = youga
|
|
*/
|
|
/*
|
|
ParkedCarPos[6] = <<768.3843, -159.2555, 73.8261>>
|
|
ParkedCarQuatX[6] = -0.0177
|
|
ParkedCarQuatY[6] = 0.0319
|
|
ParkedCarQuatZ[6] = 0.4678
|
|
ParkedCarQuatW[6] = 0.8831
|
|
ParkedCarModel[6] = sentinel
|
|
*/
|
|
|
|
/*
|
|
TrafficCarPos[9] = <<738.7187, -149.3346, 74.3255>>
|
|
TrafficCarQuatX[9] = 0.0144
|
|
TrafficCarQuatY[9] = 0.0090
|
|
TrafficCarQuatZ[9] = 0.8748
|
|
TrafficCarQuatW[9] = -0.4842
|
|
TrafficCarRecording[9] = 11
|
|
TrafficCarStartime[9] = 23298.0000
|
|
TrafficCarModel[9] = fq2
|
|
*/
|
|
|
|
|
|
TrafficCarPos[12] = <<509.1129, -205.9820, 50.8209>>
|
|
TrafficCarQuatX[12] = -0.0385
|
|
TrafficCarQuatY[12] = -0.0418
|
|
TrafficCarQuatZ[12] = 0.9776
|
|
TrafficCarQuatW[12] = -0.2024
|
|
TrafficCarRecording[12] = 14
|
|
TrafficCarStartime[12] = 37422.0000
|
|
TrafficCarModel[12] = fq2
|
|
|
|
TrafficCarPos[13] = <<513.0486, -201.2000, 51.4668>>
|
|
TrafficCarQuatX[13] = -0.0373
|
|
TrafficCarQuatY[13] = -0.0389
|
|
TrafficCarQuatZ[13] = 0.9802
|
|
TrafficCarQuatW[13] = -0.1905
|
|
TrafficCarRecording[13] = 15
|
|
TrafficCarStartime[13] = 37488.0000
|
|
TrafficCarModel[13] = DUMMY_MODEL_FOR_SCRIPT
|
|
|
|
TrafficCarPos[14] = <<519.2273, -187.7329, 52.8663>>
|
|
TrafficCarQuatX[14] = 0.0475
|
|
TrafficCarQuatY[14] = -0.0225
|
|
TrafficCarQuatZ[14] = 0.1633
|
|
TrafficCarQuatW[14] = 0.9852
|
|
TrafficCarRecording[14] = 16
|
|
TrafficCarStartime[14] = 37686.0000
|
|
TrafficCarModel[14] = tiptruck
|
|
|
|
TrafficCarPos[15] = <<524.1423, -238.5447, 48.7967>>
|
|
TrafficCarQuatX[15] = 0.0388
|
|
TrafficCarQuatY[15] = 0.0264
|
|
TrafficCarQuatZ[15] = -0.0729
|
|
TrafficCarQuatW[15] = 0.9962
|
|
TrafficCarRecording[15] = 17
|
|
TrafficCarStartime[15] = 38346.0000
|
|
TrafficCarModel[15] = JACKAL
|
|
|
|
TrafficCarPos[19] = <<360.4018, -401.2135, 45.2193>>
|
|
TrafficCarQuatX[19] = -0.0046
|
|
TrafficCarQuatY[19] = 0.0053
|
|
TrafficCarQuatZ[19] = 0.7529
|
|
TrafficCarQuatW[19] = -0.6581
|
|
TrafficCarRecording[19] = 21
|
|
TrafficCarStartime[19] = 47850.0000
|
|
TrafficCarModel[19] = DUMMY_MODEL_FOR_SCRIPT
|
|
|
|
TrafficCarPos[20] = <<338.5053, -391.3521, 44.8582>>
|
|
TrafficCarQuatX[20] = -0.0030
|
|
TrafficCarQuatY[20] = -0.0025
|
|
TrafficCarQuatZ[20] = 0.6131
|
|
TrafficCarQuatW[20] = 0.7900
|
|
TrafficCarRecording[20] = 22
|
|
TrafficCarStartime[20] = 48180.0000
|
|
TrafficCarModel[20] = DUMMY_MODEL_FOR_SCRIPT
|
|
/*
|
|
SetPieceCarPos[1] = <<461.0806, -157.3552, 59.6509>>
|
|
SetPieceCarQuatX[1] = 0.0134
|
|
SetPieceCarQuatY[1] = -0.0977
|
|
SetPieceCarQuatZ[1] = 0.7705
|
|
SetPieceCarQuatW[1] = -0.6298
|
|
SetPieceCarRecording[1] = 260
|
|
SetPieceCarStartime[1] = 28637.2305
|
|
SetPieceCarRecordingSpeed[1] = 1.0000
|
|
SetPieceCarModel[1] = TAXI
|
|
|
|
SetPieceCarPos[2] = <<578.6077, -355.2841, 44.4459>>
|
|
SetPieceCarQuatX[2] = -0.0037
|
|
SetPieceCarQuatY[2] = -0.0013
|
|
SetPieceCarQuatZ[2] = 0.5335
|
|
SetPieceCarQuatW[2] = 0.8458
|
|
SetPieceCarRecording[2] = 261
|
|
SetPieceCarStartime[2] = 33576.3008
|
|
SetPieceCarRecordingSpeed[2] = 1.0000
|
|
SetPieceCarModel[2] = POUNDER
|
|
|
|
SetPieceCarPos[3] = <<372.6310, -287.3797, 53.3393>>
|
|
SetPieceCarQuatX[3] = -0.0067
|
|
SetPieceCarQuatY[3] = -0.0259
|
|
SetPieceCarQuatZ[3] = 0.8329
|
|
SetPieceCarQuatW[3] = -0.5528
|
|
SetPieceCarRecording[3] = 262
|
|
SetPieceCarStartime[3] = 33576.3008
|
|
SetPieceCarRecordingSpeed[3] = 1.0000
|
|
SetPieceCarModel[3] = TAXI
|
|
|
|
SetPieceCarPos[4] = <<384.3606, -408.1361, 45.7654>>
|
|
SetPieceCarQuatX[4] = -0.0376
|
|
SetPieceCarQuatY[4] = -0.1187
|
|
SetPieceCarQuatZ[4] = -0.6041
|
|
SetPieceCarQuatW[4] = 0.7872
|
|
SetPieceCarRecording[4] = 263
|
|
SetPieceCarStartime[4] = 40576.3008
|
|
SetPieceCarRecordingSpeed[4] = 1.0000
|
|
SetPieceCarModel[4] = faggio2
|
|
*/
|
|
ENDPROC
|
|
|
|
PROC LOAD_UBER_DATA_NEW()
|
|
|
|
TrafficCarPos[0] = <<511.2060, 261.3451, 102.3948>>
|
|
TrafficCarQuatX[0] = -0.0108
|
|
TrafficCarQuatY[0] = -0.0073
|
|
TrafficCarQuatZ[0] = 0.8187
|
|
TrafficCarQuatW[0] = -0.5740
|
|
TrafficCarRecording[0] = 1
|
|
TrafficCarStartime[0] = 4830.0000
|
|
TrafficCarModel[0] = DUMMY_MODEL_FOR_SCRIPT //buccaneer
|
|
|
|
TrafficCarPos[1] = <<439.2651, 292.9166, 102.4979>>
|
|
TrafficCarQuatX[1] = -0.0095
|
|
TrafficCarQuatY[1] = 0.0129
|
|
TrafficCarQuatZ[1] = 0.5734
|
|
TrafficCarQuatW[1] = 0.8191
|
|
TrafficCarRecording[1] = 2
|
|
TrafficCarStartime[1] = 7272.0000
|
|
TrafficCarModel[1] = washington
|
|
|
|
TrafficCarPos[2] = <<402.5407, 299.8293, 102.4301>>
|
|
TrafficCarQuatX[2] = -0.0149
|
|
TrafficCarQuatY[2] = -0.0090
|
|
TrafficCarQuatZ[2] = 0.8170
|
|
TrafficCarQuatW[2] = -0.5764
|
|
TrafficCarRecording[2] = 3
|
|
TrafficCarStartime[2] = 8262.0000
|
|
TrafficCarModel[2] = sentinel //cogcabrio
|
|
|
|
TrafficCarPos[3] = <<366.4927, 309.5941, 103.0008>>
|
|
TrafficCarQuatX[3] = -0.0070
|
|
TrafficCarQuatY[3] = -0.0165
|
|
TrafficCarQuatZ[3] = 0.7886
|
|
TrafficCarQuatW[3] = -0.6146
|
|
TrafficCarRecording[3] = 4
|
|
TrafficCarStartime[3] = 9318.0000
|
|
IF IS_PED_IN_ANY_HELI(PLAYER_PED_ID())
|
|
TrafficCarModel[3] = DUMMY_MODEL_FOR_SCRIPT
|
|
ELSE
|
|
TrafficCarModel[3] = asterope
|
|
ENDIF
|
|
|
|
TrafficCarPos[4] = <<216.6715, 353.7352, 105.7779>>
|
|
TrafficCarQuatX[4] = -0.0200
|
|
TrafficCarQuatY[4] = -0.0268
|
|
TrafficCarQuatZ[4] = 0.8125
|
|
TrafficCarQuatW[4] = -0.5820
|
|
TrafficCarRecording[4] = 5
|
|
TrafficCarStartime[4] = 13542.0000
|
|
TrafficCarModel[4] = Baller
|
|
|
|
TrafficCarPos[5] = <<277.4835, 419.0747, 118.9695>>
|
|
TrafficCarQuatX[5] = -0.0142
|
|
TrafficCarQuatY[5] = -0.0284
|
|
TrafficCarQuatZ[5] = 0.8705
|
|
TrafficCarQuatW[5] = -0.4911
|
|
TrafficCarRecording[5] = 6
|
|
TrafficCarStartime[5] = 15984.0000
|
|
TrafficCarModel[5] = asterope
|
|
|
|
TrafficCarPos[6] = <<237.4069, 472.6873, 124.6924>>
|
|
TrafficCarQuatX[6] = -0.0221
|
|
TrafficCarQuatY[6] = -0.0790
|
|
TrafficCarQuatZ[6] = 0.9966
|
|
TrafficCarQuatW[6] = -0.0111
|
|
TrafficCarRecording[6] = 7
|
|
TrafficCarStartime[6] = 17370.0000
|
|
TrafficCarModel[6] = bullet
|
|
|
|
TrafficCarPos[7] = <<256.0805, 540.5441, 140.1842>>
|
|
TrafficCarQuatX[7] = -0.0117
|
|
TrafficCarQuatY[7] = -0.0054
|
|
TrafficCarQuatZ[7] = 0.8057
|
|
TrafficCarQuatW[7] = 0.5922
|
|
TrafficCarRecording[7] = 8
|
|
TrafficCarStartime[7] = 20208.0000
|
|
TrafficCarModel[7] = taxi
|
|
|
|
TrafficCarPos[8] = <<282.6450, 612.2068, 154.1533>>
|
|
TrafficCarQuatX[8] = 0.0177
|
|
TrafficCarQuatY[8] = -0.0114
|
|
TrafficCarQuatZ[8] = 0.4243
|
|
TrafficCarQuatW[8] = 0.9053
|
|
TrafficCarRecording[8] = 9
|
|
TrafficCarStartime[8] = 23177.0000
|
|
TrafficCarModel[8] = asterope
|
|
|
|
TrafficCarPos[9] = <<273.0108, 629.6464, 155.7711>>
|
|
TrafficCarQuatX[9] = -0.0256
|
|
TrafficCarQuatY[9] = -0.0694
|
|
TrafficCarQuatZ[9] = 0.9907
|
|
TrafficCarQuatW[9] = 0.1141
|
|
TrafficCarRecording[9] = 10
|
|
TrafficCarStartime[9] = 23639.0000
|
|
TrafficCarModel[9] = Baller
|
|
|
|
TrafficCarPos[10] = <<283.0059, 647.7762, 158.7737>>
|
|
TrafficCarQuatX[10] = 0.1093
|
|
TrafficCarQuatY[10] = -0.0014
|
|
TrafficCarQuatZ[10] = -0.1659
|
|
TrafficCarQuatW[10] = 0.9801
|
|
TrafficCarRecording[10] = 11
|
|
TrafficCarStartime[10] = 24629.0000
|
|
TrafficCarModel[10] = buccaneer
|
|
|
|
TrafficCarPos[11] = <<279.8875, 654.1951, 160.2324>>
|
|
TrafficCarQuatX[11] = -0.0411
|
|
TrafficCarQuatY[11] = -0.1096
|
|
TrafficCarQuatZ[11] = 0.9777
|
|
TrafficCarQuatW[11] = 0.1744
|
|
TrafficCarRecording[11] = 12
|
|
TrafficCarStartime[11] = 24893.0000
|
|
TrafficCarModel[11] = feltzer2
|
|
|
|
TrafficCarPos[12] = <<339.0951, 462.1592, 148.3102>>
|
|
TrafficCarQuatX[12] = 0.0028
|
|
TrafficCarQuatY[12] = -0.0627
|
|
TrafficCarQuatZ[12] = 0.9664
|
|
TrafficCarQuatW[12] = -0.2492
|
|
TrafficCarRecording[12] = 13
|
|
TrafficCarStartime[12] = 30523.0000
|
|
TrafficCarModel[12] = baller2
|
|
|
|
TrafficCarPos[13] = <<472.2878, 393.8821, 138.2691>>
|
|
TrafficCarQuatX[13] = 0.0207
|
|
TrafficCarQuatY[13] = 0.0216
|
|
TrafficCarQuatZ[13] = 0.2261
|
|
TrafficCarQuatW[13] = 0.9736
|
|
TrafficCarRecording[13] = 14
|
|
TrafficCarStartime[13] = 37056.0000
|
|
TrafficCarModel[13] = feltzer2
|
|
|
|
TrafficCarPos[14] = <<511.7101, 333.8549, 131.9026>>
|
|
TrafficCarQuatX[14] = 0.0424
|
|
TrafficCarQuatY[14] = 0.0430
|
|
TrafficCarQuatZ[14] = 0.6257
|
|
TrafficCarQuatW[14] = 0.7777
|
|
TrafficCarRecording[14] = 15
|
|
TrafficCarStartime[14] = 38508.0000
|
|
TrafficCarModel[14] = sentinel //cogcabrio
|
|
|
|
TrafficCarPos[15] = <<602.7618, 355.3197, 118.5270>>
|
|
TrafficCarQuatX[15] = -0.0574
|
|
TrafficCarQuatY[15] = 0.0440
|
|
TrafficCarQuatZ[15] = -0.5245
|
|
TrafficCarQuatW[15] = 0.8483
|
|
TrafficCarRecording[15] = 16
|
|
TrafficCarStartime[15] = 44316.0000
|
|
TrafficCarModel[15] = asterope
|
|
|
|
TrafficCarPos[16] = <<785.3267, 340.3435, 115.3910>>
|
|
TrafficCarQuatX[16] = -0.0268
|
|
TrafficCarQuatY[16] = -0.0051
|
|
TrafficCarQuatZ[16] = 0.7557
|
|
TrafficCarQuatW[16] = 0.6544
|
|
TrafficCarRecording[16] = 17
|
|
TrafficCarStartime[16] = 49794.0000
|
|
TrafficCarModel[16] = DUMMY_MODEL_FOR_SCRIPT //Baller
|
|
|
|
TrafficCarPos[17] = <<845.4529, 360.0610, 117.3146>>
|
|
TrafficCarQuatX[17] = 0.0148
|
|
TrafficCarQuatY[17] = 0.0047
|
|
TrafficCarQuatZ[17] = -0.4289
|
|
TrafficCarQuatW[17] = 0.9032
|
|
TrafficCarRecording[17] = 18
|
|
TrafficCarStartime[17] = 51642.0000
|
|
TrafficCarModel[17] = buccaneer //cogcabrio
|
|
|
|
TrafficCarPos[18] = <<880.3807, 403.1809, 118.6872>>
|
|
TrafficCarQuatX[18] = -0.0194
|
|
TrafficCarQuatY[18] = -0.0024
|
|
TrafficCarQuatZ[18] = 0.9411
|
|
TrafficCarQuatW[18] = 0.3375
|
|
TrafficCarRecording[18] = 19
|
|
TrafficCarStartime[18] = 53292.0000
|
|
TrafficCarModel[18] = baller2
|
|
|
|
TrafficCarPos[19] = <<911.8809, 467.8841, 120.2237>>
|
|
TrafficCarQuatX[19] = -0.0008
|
|
TrafficCarQuatY[19] = -0.0055
|
|
TrafficCarQuatZ[19] = 0.9990
|
|
TrafficCarQuatW[19] = 0.0435
|
|
TrafficCarRecording[19] = 20
|
|
TrafficCarStartime[19] = 55536.0000
|
|
TrafficCarModel[19] = coquette
|
|
|
|
TrafficCarPos[20] = <<916.1319, 504.1710, 119.8686>>
|
|
TrafficCarQuatX[20] = -0.0102
|
|
TrafficCarQuatY[20] = 0.0531
|
|
TrafficCarQuatZ[20] = 0.0939
|
|
TrafficCarQuatW[20] = 0.9941
|
|
TrafficCarRecording[20] = 21
|
|
TrafficCarStartime[20] = 56657.0000
|
|
TrafficCarModel[20] = sentinel //cogcabrio
|
|
|
|
TrafficCarPos[21] = <<1072.1567, 441.7333, 91.5848>>
|
|
TrafficCarQuatX[21] = 0.0051
|
|
TrafficCarQuatY[21] = -0.0205
|
|
TrafficCarQuatZ[21] = 0.9189
|
|
TrafficCarQuatW[21] = -0.3940
|
|
TrafficCarRecording[21] = 22
|
|
TrafficCarStartime[21] = 65264.0000
|
|
TrafficCarModel[21] = feltzer2
|
|
|
|
TrafficCarPos[22] = <<1109.0264, 416.9391, 83.1078>>
|
|
TrafficCarQuatX[22] = 0.0054
|
|
TrafficCarQuatY[22] = -0.0016
|
|
TrafficCarQuatZ[22] = 0.9268
|
|
TrafficCarQuatW[22] = 0.3756
|
|
TrafficCarRecording[22] = 23
|
|
TrafficCarStartime[22] = 66584.0000
|
|
TrafficCarModel[22] = sentinel //cogcabrio
|
|
|
|
TrafficCarPos[23] = <<1120.3549, 421.6550, 82.8984>>
|
|
TrafficCarQuatX[23] = 0.0164
|
|
TrafficCarQuatY[23] = 0.0015
|
|
TrafficCarQuatZ[23] = 0.9267
|
|
TrafficCarQuatW[23] = 0.3754
|
|
TrafficCarRecording[23] = 24
|
|
TrafficCarStartime[23] = 66980.0000
|
|
TrafficCarModel[23] = coquette
|
|
|
|
TrafficCarPos[24] = <<1119.2665, 402.3738, 83.0242>>
|
|
TrafficCarQuatX[24] = -0.0020
|
|
TrafficCarQuatY[24] = -0.0141
|
|
TrafficCarQuatZ[24] = -0.3897
|
|
TrafficCarQuatW[24] = 0.9208
|
|
TrafficCarRecording[24] = 25
|
|
TrafficCarStartime[24] = 67046.0000
|
|
TrafficCarModel[24] = sentinel //cogcabrio
|
|
|
|
TrafficCarPos[25] = <<1154.8197, 355.7718, 90.8335>>
|
|
TrafficCarQuatX[25] = -0.0158
|
|
TrafficCarQuatY[25] = 0.0060
|
|
TrafficCarQuatZ[25] = 0.9599
|
|
TrafficCarQuatW[25] = -0.2799
|
|
TrafficCarRecording[25] = 26
|
|
TrafficCarStartime[25] = 68564.0000
|
|
TrafficCarModel[25] = coquette
|
|
|
|
TrafficCarPos[26] = <<983.0621, 173.4691, 80.5089>>
|
|
TrafficCarQuatX[26] = -0.0049
|
|
TrafficCarQuatY[26] = 0.0019
|
|
TrafficCarQuatZ[26] = 0.9411
|
|
TrafficCarQuatW[26] = 0.3380
|
|
TrafficCarRecording[26] = 27
|
|
TrafficCarStartime[26] = 77247.0000
|
|
TrafficCarModel[26] = feltzer2
|
|
|
|
ParkedCarPos[0] = <<852.1576, -124.6406, 78.5719>>
|
|
ParkedCarQuatX[0] = -0.0278
|
|
ParkedCarQuatY[0] = -0.0124
|
|
ParkedCarQuatZ[0] = 0.9574
|
|
ParkedCarQuatW[0] = 0.2872
|
|
ParkedCarModel[0] = sentinel //cogcabrio
|
|
|
|
TrafficCarPos[27] = <<812.6069, -185.2938, 72.7078>>
|
|
TrafficCarQuatX[27] = -0.0002
|
|
TrafficCarQuatY[27] = 0.0004
|
|
TrafficCarQuatZ[27] = 0.4820
|
|
TrafficCarQuatW[27] = 0.8762
|
|
TrafficCarRecording[27] = 28
|
|
TrafficCarStartime[27] = 89655.0000
|
|
TrafficCarModel[27] = BjXL
|
|
|
|
TrafficCarPos[28] = <<718.7026, -136.8279, 74.7098>>
|
|
TrafficCarQuatX[28] = -0.0057
|
|
TrafficCarQuatY[28] = -0.0031
|
|
TrafficCarQuatZ[28] = 0.8765
|
|
TrafficCarQuatW[28] = -0.4813
|
|
TrafficCarRecording[28] = 29
|
|
TrafficCarStartime[28] = 93417.0000
|
|
IF IS_PED_IN_ANY_HELI(PLAYER_PED_ID())
|
|
TrafficCarModel[28] = DUMMY_MODEL_FOR_SCRIPT
|
|
ELSE
|
|
TrafficCarModel[28] = BUS
|
|
ENDIF
|
|
|
|
TrafficCarPos[29] = <<708.8309, -123.9532, 74.4544>>
|
|
TrafficCarQuatX[29] = -0.0127
|
|
TrafficCarQuatY[29] = 0.0230
|
|
TrafficCarQuatZ[29] = 0.4820
|
|
TrafficCarQuatW[29] = 0.8758
|
|
TrafficCarRecording[29] = 30
|
|
TrafficCarStartime[29] = 93945.0000
|
|
TrafficCarModel[29] = baller2
|
|
|
|
TrafficCarPos[30] = <<686.3724, -110.2447, 74.0336>>
|
|
TrafficCarQuatX[30] = -0.0118
|
|
TrafficCarQuatY[30] = 0.0160
|
|
TrafficCarQuatZ[30] = 0.4839
|
|
TrafficCarQuatW[30] = 0.8749
|
|
TrafficCarRecording[30] = 31
|
|
TrafficCarStartime[30] = 94869.0000
|
|
TrafficCarModel[30] = asterope
|
|
|
|
TrafficCarPos[31] = <<612.1208, -67.3511, 73.1600>>
|
|
TrafficCarQuatX[31] = 0.0707
|
|
TrafficCarQuatY[31] = 0.0064
|
|
TrafficCarQuatZ[31] = -0.5441
|
|
TrafficCarQuatW[31] = 0.8360
|
|
TrafficCarRecording[31] = 32
|
|
TrafficCarStartime[31] = 97311.0000
|
|
TrafficCarModel[31] = DUMMY_MODEL_FOR_SCRIPT //asterope
|
|
|
|
TrafficCarPos[32] = <<605.6122, -70.8522, 72.6917>>
|
|
TrafficCarQuatX[32] = 0.0678
|
|
TrafficCarQuatY[32] = 0.0099
|
|
TrafficCarQuatZ[32] = -0.5536
|
|
TrafficCarQuatW[32] = 0.8300
|
|
TrafficCarRecording[32] = 33
|
|
TrafficCarStartime[32] = 97443.0000
|
|
TrafficCarModel[32] = DUMMY_MODEL_FOR_SCRIPT //baller2
|
|
|
|
TrafficCarPos[33] = <<523.7166, -108.7238, 63.2222>>
|
|
TrafficCarQuatX[33] = 0.0044
|
|
TrafficCarQuatY[33] = -0.0835
|
|
TrafficCarQuatZ[33] = 0.9375
|
|
TrafficCarQuatW[33] = 0.3377
|
|
TrafficCarRecording[33] = 34
|
|
TrafficCarStartime[33] = 100809.0000
|
|
TrafficCarModel[33] = Baller
|
|
|
|
TrafficCarPos[34] = <<505.7021, -127.9252, 59.7848>>
|
|
TrafficCarQuatX[34] = -0.0227
|
|
TrafficCarQuatY[34] = -0.0599
|
|
TrafficCarQuatZ[34] = 0.9805
|
|
TrafficCarQuatW[34] = 0.1858
|
|
TrafficCarRecording[34] = 35
|
|
TrafficCarStartime[34] = 100941.0000
|
|
TrafficCarModel[34] = BjXL
|
|
|
|
TrafficCarPos[35] = <<510.6351, -130.4515, 59.3621>>
|
|
TrafficCarQuatX[35] = 0.0002
|
|
TrafficCarQuatY[35] = -0.0620
|
|
TrafficCarQuatZ[35] = 0.9802
|
|
TrafficCarQuatW[35] = 0.1878
|
|
TrafficCarRecording[35] = 36
|
|
TrafficCarStartime[35] = 101139.0000
|
|
TrafficCarModel[35] = banshee
|
|
|
|
TrafficCarPos[36] = <<513.6044, -124.3921, 60.1873>>
|
|
TrafficCarQuatX[36] = 0.0026
|
|
TrafficCarQuatY[36] = -0.0670
|
|
TrafficCarQuatZ[36] = 0.9725
|
|
TrafficCarQuatW[36] = 0.2230
|
|
TrafficCarRecording[36] = 37
|
|
TrafficCarStartime[36] = 101337.0000
|
|
TrafficCarModel[36] = asterope
|
|
|
|
TrafficCarPos[37] = <<484.3174, -155.8481, 56.6016>>
|
|
TrafficCarQuatX[37] = 0.0008
|
|
TrafficCarQuatY[37] = -0.1155
|
|
TrafficCarQuatZ[37] = 0.7595
|
|
TrafficCarQuatW[37] = -0.6402
|
|
TrafficCarRecording[37] = 38
|
|
TrafficCarStartime[37] = 101865.0000
|
|
TrafficCarModel[37] = Baller
|
|
|
|
TrafficCarPos[38] = <<515.3390, -244.6399, 48.6464>>
|
|
TrafficCarQuatX[38] = -0.0232
|
|
TrafficCarQuatY[38] = -0.0304
|
|
TrafficCarQuatZ[38] = 0.9764
|
|
TrafficCarQuatW[38] = 0.2127
|
|
TrafficCarRecording[38] = 39
|
|
TrafficCarStartime[38] = 103845.0000
|
|
TrafficCarModel[38] = Baller
|
|
|
|
TrafficCarPos[39] = <<508.6511, -280.4524, 46.7813>>
|
|
TrafficCarQuatX[39] = 0.0219
|
|
TrafficCarQuatY[39] = 0.0130
|
|
TrafficCarQuatZ[39] = -0.2077
|
|
TrafficCarQuatW[39] = 0.9779
|
|
TrafficCarRecording[39] = 40
|
|
TrafficCarStartime[39] = 105165.0000
|
|
TrafficCarModel[39] = BUS
|
|
|
|
TrafficCarPos[40] = <<496.9088, -318.2034, 44.9216>>
|
|
TrafficCarQuatX[40] = 0.0249
|
|
TrafficCarQuatY[40] = 0.0114
|
|
TrafficCarQuatZ[40] = 0.5613
|
|
TrafficCarQuatW[40] = 0.8271
|
|
TrafficCarRecording[40] = 41
|
|
TrafficCarStartime[40] = 105957.0000
|
|
TrafficCarModel[40] = asterope
|
|
|
|
TrafficCarPos[41] = <<482.1582, -326.7783, 45.4484>>
|
|
TrafficCarQuatX[41] = 0.0144
|
|
TrafficCarQuatY[41] = -0.0290
|
|
TrafficCarQuatZ[41] = 0.8114
|
|
TrafficCarQuatW[41] = -0.5836
|
|
TrafficCarRecording[41] = 42
|
|
TrafficCarStartime[41] = 106287.0000
|
|
TrafficCarModel[41] = asterope
|
|
|
|
TrafficCarPos[42] = <<464.0194, -319.4027, 47.2238>>
|
|
TrafficCarQuatX[42] = 0.0314
|
|
TrafficCarQuatY[42] = -0.0059
|
|
TrafficCarQuatZ[42] = 0.9494
|
|
TrafficCarQuatW[42] = 0.3125
|
|
TrafficCarRecording[42] = 43
|
|
TrafficCarStartime[42] = 106353.0000
|
|
TrafficCarModel[42] = Baller
|
|
|
|
TrafficCarPos[43] = <<459.4142, -337.1878, 47.1687>>
|
|
TrafficCarQuatX[43] = 0.0061
|
|
TrafficCarQuatY[43] = 0.0760
|
|
TrafficCarQuatZ[43] = -0.2966
|
|
TrafficCarQuatW[43] = 0.9520
|
|
TrafficCarRecording[43] = 44
|
|
TrafficCarStartime[43] = 106815.0000
|
|
TrafficCarModel[43] = baller2
|
|
|
|
TrafficCarPos[44] = <<386.0724, -405.9861, 46.3795>>
|
|
TrafficCarQuatX[44] = 0.0131
|
|
TrafficCarQuatY[44] = -0.0083
|
|
TrafficCarQuatZ[44] = -0.5920
|
|
TrafficCarQuatW[44] = 0.8058
|
|
TrafficCarRecording[44] = 45
|
|
TrafficCarStartime[44] = 109389.0000
|
|
TrafficCarModel[44] = DUMMY_MODEL_FOR_SCRIPT //Baller
|
|
|
|
TrafficCarPos[45] = <<344.1942, -423.8685, 44.2940>>
|
|
TrafficCarQuatX[45] = 0.0281
|
|
TrafficCarQuatY[45] = -0.0016
|
|
TrafficCarQuatZ[45] = -0.3989
|
|
TrafficCarQuatW[45] = 0.9166
|
|
TrafficCarRecording[45] = 46
|
|
TrafficCarStartime[45] = 110643.0000
|
|
TrafficCarModel[45] = DUMMY_MODEL_FOR_SCRIPT //Vader
|
|
|
|
TrafficCarPos[46] = <<295.9982, -449.7546, 42.9940>>
|
|
TrafficCarQuatX[46] = -0.0033
|
|
TrafficCarQuatY[46] = -0.0207
|
|
TrafficCarQuatZ[46] = 0.9991
|
|
TrafficCarQuatW[46] = 0.0380
|
|
TrafficCarRecording[46] = 47
|
|
TrafficCarStartime[46] = 113019.0000
|
|
TrafficCarModel[46] = DUMMY_MODEL_FOR_SCRIPT //asterope
|
|
|
|
SetPieceCarPos[0] = <<636.0844, 221.4270, 98.7137>>
|
|
SetPieceCarQuatX[0] = 0.0558
|
|
SetPieceCarQuatY[0] = 0.0284
|
|
SetPieceCarQuatZ[0] = 0.6062
|
|
SetPieceCarQuatW[0] = 0.7928
|
|
SetPieceCarRecording[0] = 499
|
|
SetPieceCarStartime[0] = 900.0000 //500.0000
|
|
SetPieceCarRecordingSpeed[0] = 1.0000
|
|
SetPieceCarModel[0] = police3
|
|
SetPieceCarID[0] = mvPoliceCars[1].mVehicle
|
|
|
|
SetPieceCarPos[1] = <<891.8881, 426.6213, 119.3326>>
|
|
SetPieceCarQuatX[1] = -0.0052
|
|
SetPieceCarQuatY[1] = -0.0170
|
|
SetPieceCarQuatZ[1] = 0.9645
|
|
SetPieceCarQuatW[1] = 0.2634
|
|
SetPieceCarRecording[1] = 600
|
|
SetPieceCarStartime[1] = 35000.0 //37000.0000
|
|
SetPieceCarRecordingSpeed[1] = 1.0000
|
|
SetPieceCarModel[1] = Pounder
|
|
|
|
SetPieceCarPos[2] = <<545.7987, 195.0462, 100.8242>>
|
|
SetPieceCarQuatX[2] = 0.0227
|
|
SetPieceCarQuatY[2] = -0.0209
|
|
SetPieceCarQuatZ[2] = -0.2162
|
|
SetPieceCarQuatW[2] = 0.9759
|
|
SetPieceCarRecording[2] = 500
|
|
SetPieceCarStartime[2] = 40200.0000 //40000.0000
|
|
SetPieceCarRecordingSpeed[2] = 1.0000
|
|
SetPieceCarModel[2] = police3
|
|
SetPieceCarID[2] = mvPoliceCars[0].mVehicle
|
|
|
|
SetPieceCarPos[3] = <<1151.9595, 370.9727, 91.3383>>
|
|
SetPieceCarQuatX[3] = -0.0041
|
|
SetPieceCarQuatY[3] = -0.0063
|
|
SetPieceCarQuatZ[3] = 0.3161
|
|
SetPieceCarQuatW[3] = 0.9487
|
|
SetPieceCarRecording[3] = 601
|
|
SetPieceCarStartime[3] = 57000.0000
|
|
SetPieceCarRecordingSpeed[3] = 1.0000
|
|
SetPieceCarModel[3] = scrap
|
|
|
|
SetPieceCarPos[4] = <<649.6518, -14.6478, 82.1775>>
|
|
SetPieceCarQuatX[4] = -0.0505
|
|
SetPieceCarQuatY[4] = -0.0332
|
|
SetPieceCarQuatZ[4] = 0.9261
|
|
SetPieceCarQuatW[4] = -0.3725
|
|
SetPieceCarRecording[4] = 602
|
|
SetPieceCarStartime[4] = 92000.0000
|
|
SetPieceCarRecordingSpeed[4] = 1.0000
|
|
SetPieceCarModel[4] = SURFER
|
|
|
|
SetPieceCarPos[5] = <<187.4046, -359.7074, 43.5742>>
|
|
SetPieceCarQuatX[5] = 0.0259
|
|
SetPieceCarQuatY[5] = 0.0031
|
|
SetPieceCarQuatZ[5] = -0.3841
|
|
SetPieceCarQuatW[5] = 0.9229
|
|
SetPieceCarRecording[5] = 501
|
|
SetPieceCarStartime[5] = 104000.0000
|
|
SetPieceCarRecordingSpeed[5] = 1.0000
|
|
SetPieceCarModel[5] = police3
|
|
SetPieceCarID[5] = mvPoliceCars[2].mVehicle
|
|
|
|
ENDPROC
|
|
|
|
PROC DO_ANNOYING_SUBTITLE_SWITCH()
|
|
|
|
TEXT_LABEL_23 rootPoppy = GET_CURRENTLY_PLAYING_STANDARD_CONVERSATION_ROOT()
|
|
TEXT_LABEL_23 labelPoppy
|
|
|
|
IF NOT IS_STRING_NULL_OR_EMPTY(rootPoppy)
|
|
IF ARE_STRINGS_EQUAL(rootPoppy,"PAP3A_ARREST")
|
|
AND GET_CURRENT_SCRIPTED_CONVERSATION_LINE() > 0
|
|
IF iSubSwitch = 0
|
|
IF GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(), mpPoppyPed.mPed) > 50
|
|
iSubsPoppy = ENUM_TO_INT(DO_NOT_DISPLAY_SUBTITLES)
|
|
CPRINTLN(DEBUG_MISSION, "<CONVO> LEFT AREA SET SUBS OFF")
|
|
iSubSwitch = 1
|
|
iRetrigger = 1
|
|
ENDIF
|
|
ELIF iSubSwitch = 1
|
|
IF GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(), mpPoppyPed.mPed) <= 50
|
|
iSubsPoppy = ENUM_TO_INT(DISPLAY_SUBTITLES)
|
|
CPRINTLN(DEBUG_MISSION, "<CONVO> ENTER AREA SET SUBS ON")
|
|
iSubSwitch = 0
|
|
iRetrigger = 1
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF iRetrigger = 1
|
|
labelPoppy = GET_CURRENTLY_PLAYING_STANDARD_CONVERSATION_LABEL()
|
|
IF NOT IS_STRING_NULL_OR_EMPTY(labelPoppy)
|
|
CPRINTLN(DEBUG_MISSION, "<CONVO> LABEL IS NOT NULL")
|
|
IF ARE_STRINGS_EQUAL(labelPoppy,"PAP3A_ARREST_1")
|
|
labelRetrig = "PAP3A_ARREST_2"
|
|
ELIF ARE_STRINGS_EQUAL(labelPoppy,"PAP3A_ARREST_2")
|
|
labelRetrig = "PAP3A_ARREST_4"
|
|
ELIF ARE_STRINGS_EQUAL(labelPoppy,"PAP3A_ARREST_3")
|
|
labelRetrig = "PAP3A_ARREST_4"
|
|
ELIF ARE_STRINGS_EQUAL(labelPoppy,"PAP3A_ARREST_4")
|
|
labelRetrig = "PAP3A_ARREST_6"
|
|
ELIF ARE_STRINGS_EQUAL(labelPoppy,"PAP3A_ARREST_5")
|
|
labelRetrig = "PAP3A_ARREST_6"
|
|
ELIF ARE_STRINGS_EQUAL(labelPoppy,"PAP3A_ARREST_6")
|
|
labelRetrig = "PAP3A_ARREST_8"
|
|
ELIF ARE_STRINGS_EQUAL(labelPoppy,"PAP3A_ARREST_7")
|
|
labelRetrig = "PAP3A_ARREST_8"
|
|
ELIF ARE_STRINGS_EQUAL(labelPoppy,"PAP3A_ARREST_8")
|
|
labelRetrig = "PAP3A_ARREST_10"
|
|
ELIF ARE_STRINGS_EQUAL(labelPoppy,"PAP3A_ARREST_9")
|
|
labelRetrig = "PAP3A_ARREST_10"
|
|
ELIF ARE_STRINGS_EQUAL(labelPoppy,"PAP3A_ARREST_10")
|
|
labelRetrig = "PAP3A_ARREST_11"
|
|
ELIF ARE_STRINGS_EQUAL(labelPoppy,"PAP3A_ARREST_11")
|
|
labelRetrig = "PAP3A_ARREST_13"
|
|
ELIF ARE_STRINGS_EQUAL(labelPoppy,"PAP3A_ARREST_12")
|
|
labelRetrig = "PAP3A_ARREST_13"
|
|
ELIF ARE_STRINGS_EQUAL(labelPoppy,"PAP3A_ARREST_13")
|
|
labelRetrig = "PAP3A_ARREST_15"
|
|
ELIF ARE_STRINGS_EQUAL(labelPoppy,"PAP3A_ARREST_14")
|
|
labelRetrig = "PAP3A_ARREST_15"
|
|
ELIF ARE_STRINGS_EQUAL(labelPoppy,"PAP3A_ARREST_15")
|
|
labelRetrig = "PAP3A_ARREST_17"
|
|
ELIF ARE_STRINGS_EQUAL(labelPoppy,"PAP3A_ARREST_16")
|
|
labelRetrig = "PAP3A_ARREST_17"
|
|
ELIF ARE_STRINGS_EQUAL(labelPoppy,"PAP3A_ARREST_17")
|
|
labelRetrig = "PAP3A_ARREST_19"
|
|
ELIF ARE_STRINGS_EQUAL(labelPoppy,"PAP3A_ARREST_18")
|
|
labelRetrig = "PAP3A_ARREST_19"
|
|
ELIF ARE_STRINGS_EQUAL(labelPoppy,"PAP3A_ARREST_19")
|
|
labelRetrig = "PAP3A_ARREST_21"
|
|
ELIF ARE_STRINGS_EQUAL(labelPoppy,"PAP3A_ARREST_20")
|
|
labelRetrig = "PAP3A_ARREST_21"
|
|
ELIF ARE_STRINGS_EQUAL(labelPoppy,"PAP3A_ARREST_21")
|
|
iRetrigger = 4
|
|
ENDIF
|
|
KILL_FACE_TO_FACE_CONVERSATION()
|
|
CPRINTLN(DEBUG_MISSION, "<CONVO> KILL")
|
|
iRetrigger = 2
|
|
ELSE
|
|
CPRINTLN(DEBUG_MISSION, "<CONVO> CHECKED LABEL IS NULL OR EMPTY")
|
|
ENDIF
|
|
ELIF iRetrigger = 2
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
CPRINTLN(DEBUG_MISSION, "<CONVO> LINE FINISHED AFTER KILL")
|
|
IF NOT IS_STRING_NULL_OR_EMPTY(labelRetrig)
|
|
IF CREATE_CONVERSATION_FROM_SPECIFIC_LINE(sSpeach, "PAP3AAU", "PAP3A_ARREST", labelRetrig, CONV_PRIORITY_HIGH,INT_TO_ENUM(enumSubtitlesState,iSubsPoppy))
|
|
CPRINTLN(DEBUG_MISSION, "<CONVO> RETRIGGER")
|
|
iRetrigger = 3
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_MISSION, "<CONVO> RETRIGGER LABEL IS NULL - BAIL")
|
|
iRetrigger = 3
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
PROC DO_AMBIENT_CASINO_STUFF()
|
|
|
|
SWITCH iSeqCasino
|
|
|
|
CASE 0
|
|
IF fTimePosInRec > 60000
|
|
REQUEST_MODEL(STRETCH)
|
|
REQUEST_MODEL(S_M_Y_VALET_01)
|
|
iSeqCasino = 1
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 1
|
|
IF HAS_MODEL_LOADED(STRETCH)
|
|
AND HAS_MODEL_LOADED(S_M_Y_VALET_01)
|
|
vehLimo = CREATE_VEHICLE(STRETCH,<<922.4766, 45.2672, 79.7644>>, 329.2225)
|
|
pedValet = CREATE_PED(PEDTYPE_MISSION,S_M_Y_VALET_01,<<929.0692, 51.5874, 79.9063>>, 57.9660)
|
|
iSeqCasino = 2
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 2
|
|
IF IS_ENTITY_ALIVE(pedValet)
|
|
IF IS_ENTITY_ALIVE(mpPoppyPed.mPed)
|
|
IF IS_ENTITY_IN_RANGE_ENTITY(pedValet,mpPoppyPed.mPed,100)
|
|
iShockingEvent = ADD_SHOCKING_EVENT_FOR_ENTITY(EVENT_SHOCKING_MAD_DRIVER, mpPoppyPed.mPed)
|
|
SET_PED_CAN_EVASIVE_DIVE(pedValet,TRUE)
|
|
REPLAY_RECORD_BACK_FOR_TIME(3.0, 4.0, REPLAY_IMPORTANCE_LOWEST)
|
|
iSeqCasino = 3
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 3
|
|
IF IS_ENTITY_ALIVE(pedValet)
|
|
IF IS_ENTITY_ALIVE(mpPoppyPed.mPed)
|
|
IF IS_ENTITY_IN_RANGE_ENTITY(pedValet,mpPoppyPed.mPed,30)
|
|
TASK_SHOCKING_EVENT_REACT(pedValet,iShockingEvent)
|
|
PLAY_PED_AMBIENT_SPEECH_NATIVE(pedValet, "GENERIC_SHOCKED_HIGH","SPEECH_PARAMS_STANDARD")
|
|
iSeqCasino = 4
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 4
|
|
IF IS_ENTITY_ALIVE(pedValet)
|
|
IF IS_ENTITY_ALIVE(mpPoppyPed.mPed)
|
|
IF NOT IS_ANY_SPEECH_PLAYING(pedValet)
|
|
PLAY_PED_AMBIENT_SPEECH_NATIVE(pedValet, "GENERIC_SHOCKED_HIGH","SPEECH_PARAMS_STANDARD")
|
|
ENDIF
|
|
IF fTimePosInRec > 90000
|
|
iSeqCasino = 5
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 5
|
|
SAFE_RELEASE_PED(pedValet)
|
|
SAFE_RELEASE_VEHICLE(vehLimo)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(STRETCH)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(S_M_Y_VALET_01)
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
|
|
ENDPROC
|
|
|
|
/// PURPOSE: Creates police helicopter that hovers over Poppy's car
|
|
PROC CreatePoliceChopper()
|
|
|
|
IF NOT DOES_ENTITY_EXIST(vehPoliceChopper)
|
|
IF NOT HAS_MODEL_LOADED(POLMAV)
|
|
REQUEST_MODEL(POLMAV)
|
|
ELSE
|
|
vehPoliceChopper = CREATE_VEHICLE(POLMAV,<< 351.3166, -589.8016, 73.1664 >>, 336.3177)
|
|
//vehPoliceChopper = CREATE_VEHICLE(POLMAV,<<611.8760, 234.6003, 130.0>>, 73.2507)
|
|
pedChopperPilot = CREATE_PED_INSIDE_VEHICLE(vehPoliceChopper,PEDTYPE_COP,S_M_Y_Cop_01)
|
|
SET_VEHICLE_LIVERY(vehPoliceChopper,0)
|
|
SET_HELI_BLADES_FULL_SPEED(vehPoliceChopper)
|
|
SET_VEHICLE_ENGINE_ON(vehPoliceChopper,TRUE,TRUE)
|
|
SET_VEHICLE_SEARCHLIGHT(vehPoliceChopper,TRUE)
|
|
SET_HELI_TURBULENCE_SCALAR(vehPoliceChopper,0.2)
|
|
SET_ENTITY_ONLY_DAMAGED_BY_PLAYER(vehPoliceChopper,TRUE)
|
|
IF IS_PED_UNINJURED(mpPoppyPed.mPed)
|
|
//TASK_HELI_MISSION(pedChopperPilot,vehPoliceChopper,NULL,mpPoppyPed.mPed,GET_ENTITY_COORDS(mpPoppyPed.mPed),MISSION_POLICE_BEHAVIOUR,100,60.0,-1,40,35)
|
|
TASK_HELI_MISSION(pedChopperPilot,vehPoliceChopper,NULL,mpPoppyPed.mPed,<<0,50,60>>,MISSION_POLICE_BEHAVIOUR,30.0,60.0,-1,60,55)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
PROC TurnOffRoads()
|
|
|
|
//BLOCK OFF ROAD AT CRASH SITE - DISABLE NODES
|
|
SET_ROADS_IN_AREA(<< 318.9400, -411.6963, 38.0267 >>,<< 421.5246, -363.0107, 52.0853 >>, FALSE)
|
|
//JUNCTION NEAR PARKED POLICE
|
|
SET_ROADS_IN_AREA(<< 796.4662, -68.4078, 79.5220 >>,<< 974.3044, -152.9081, 72.6015 >>, FALSE)
|
|
//JUNCTION AT START OF CHASE
|
|
SET_ROADS_IN_AREA(<< 683.3696, 38.3284, 83.2770 >>, << 707.9796, -22.9872, 82.6540 >>, FALSE)
|
|
//POLICE ROAD BLOCK
|
|
SET_ROADS_IN_AREA(<< 812.2689, -40.7279, 79.4878 >>, << 858.4236, -119.0339, 78.3599 >>, FALSE)
|
|
|
|
ENDPROC
|
|
|
|
/// PURPOSE: Create scripted traffic
|
|
PROC CreateScriptedTraffic()
|
|
|
|
FLOAT fTimeOffset
|
|
|
|
IF fPlaybackSpeed > 1.2
|
|
fTimeOffset = 0
|
|
ENDIF
|
|
IF fPlaybackSpeed <= 1.2
|
|
AND fPlaybackSpeed > 1.1
|
|
fTimeOffset = 700
|
|
ENDIF
|
|
IF fPlaybackSpeed <= 1.1
|
|
AND fPlaybackSpeed > 1.0
|
|
fTimeOffset = 1400
|
|
ENDIF
|
|
IF fPlaybackSpeed <= 1.0
|
|
AND fPlaybackSpeed > 0.9
|
|
fTimeOffset = 2100
|
|
ENDIF
|
|
IF fPlaybackSpeed <= 0.9
|
|
AND fPlaybackSpeed > 0.8
|
|
fTimeOffset = 2800
|
|
ENDIF
|
|
IF fPlaybackSpeed <= 0.8
|
|
fTimeOffset = 3500
|
|
ENDIF
|
|
|
|
IF IS_VEHICLE_OK(mvPoppyCar.mVehicle)
|
|
//IF CAN_CREATE_RANDOM_DRIVER()
|
|
IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(mvPoppyCar.mVehicle)
|
|
IF GET_TIME_POSITION_IN_RECORDING(mvPoppyCar.mVehicle) > 22000.0 + fTimeOffset //16637.2305
|
|
IF iRandomTrafficSeq = 0
|
|
REQUEST_MODEL(TAXI)
|
|
REQUEST_MODEL(POUNDER)
|
|
REQUEST_MODEL(FAGGIO2)
|
|
//REQUEST_MODEL(A_M_Y_HIPSTER_01)
|
|
iRandomTrafficSeq = 1
|
|
ELIF iRandomTrafficSeq = 1
|
|
IF HAS_MODEL_LOADED(TAXI)
|
|
IF GET_TIME_POSITION_IN_RECORDING(mvPoppyCar.mVehicle) > 26637.2305 + fTimeOffset
|
|
vehTraffic[0] = CREATE_VEHICLE(TAXI,<< 421.3843, -145.6329, 63.5494 >>, 250.1559)
|
|
pedRandomDriver[0] = CREATE_RANDOM_PED_AS_DRIVER(vehTraffic[0])
|
|
SET_ENTITY_LOAD_COLLISION_FLAG(vehTraffic[0],TRUE)
|
|
OPEN_SEQUENCE_TASK(seqTraffic[0])
|
|
TASK_VEHICLE_DRIVE_TO_COORD(NULL,vehTraffic[0],<< 505.4681, -195.9427, 51.1217 >>,12.0,DRIVINGSTYLE_NORMAL,TAXI,DRIVINGMODE_PLOUGHTHROUGH,5.0,5.0)
|
|
TASK_VEHICLE_TEMP_ACTION(NULL,vehTraffic[0],TEMPACT_BRAKE,30000)
|
|
CLOSE_SEQUENCE_TASK(seqTraffic[0])
|
|
TASK_PERFORM_SEQUENCE(pedRandomDriver[0],seqTraffic[0])
|
|
vehTraffic[5] = CREATE_VEHICLE(TAXI,<< 654.8176, -27.8639, 80.4690 >>, 132.0047)
|
|
pedRandomDriver[5] = CREATE_RANDOM_PED_AS_DRIVER(vehTraffic[5])
|
|
SET_ENTITY_LOAD_COLLISION_FLAG(vehTraffic[5],TRUE)
|
|
OPEN_SEQUENCE_TASK(seqTraffic[5])
|
|
TASK_VEHICLE_DRIVE_TO_COORD(NULL,vehTraffic[5],<< 510.9024, -117.9431, 60.3864 >>,14.0,DRIVINGSTYLE_NORMAL,TAXI,DRIVINGMODE_PLOUGHTHROUGH,5.0,5.0)
|
|
TASK_VEHICLE_DRIVE_TO_COORD(NULL,vehTraffic[5],<< 428.1450, -135.9952, 63.5564 >>,14.0,DRIVINGSTYLE_NORMAL,TAXI,DRIVINGMODE_PLOUGHTHROUGH,5.0,5.0)
|
|
TASK_VEHICLE_DRIVE_WANDER(NULL,vehTraffic[5],12.0,DRIVINGMODE_AVOIDCARS_STOPFORPEDS_OBEYLIGHTS)
|
|
CLOSE_SEQUENCE_TASK(seqTraffic[5])
|
|
TASK_PERFORM_SEQUENCE(pedRandomDriver[5],seqTraffic[5])
|
|
IF HAS_MODEL_LOADED(POUNDER)
|
|
vehTraffic[7] = CREATE_VEHICLE(POUNDER,<< 501.1890, -312.7863, 44.1513 >>, 67.3206)
|
|
pedRandomDriver[7] = CREATE_RANDOM_PED_AS_DRIVER(vehTraffic[7])
|
|
SET_VEHICLE_ON_GROUND_PROPERLY(vehTraffic[7])
|
|
SET_ENTITY_LOAD_COLLISION_FLAG(vehTraffic[7],TRUE)
|
|
ENDIF
|
|
iRandomTrafficSeq = 2
|
|
ENDIF
|
|
ENDIF
|
|
ELIF iRandomTrafficSeq = 2
|
|
IF HAS_MODEL_LOADED(POUNDER)
|
|
IF GET_TIME_POSITION_IN_RECORDING(mvPoppyCar.mVehicle) > 29076.3008 + fTimeOffset //27076.3008 //28576.3008
|
|
/*
|
|
vehTraffic[1] = CREATE_VEHICLE(POUNDER,<< 571.6310, -351.4838, 42.5852 >>, 64.4023)
|
|
pedRandomDriver[1] = CREATE_RANDOM_PED_AS_DRIVER(vehTraffic[1])
|
|
SET_ENTITY_LOAD_COLLISION_FLAG(vehTraffic[1],TRUE)
|
|
OPEN_SEQUENCE_TASK(seqTraffic[1])
|
|
TASK_VEHICLE_DRIVE_TO_COORD(NULL,vehTraffic[1],<< 399.3476, -280.2910, 51.5046 >>,50.0,DRIVINGSTYLE_NORMAL,POUNDER,DRIVINGMODE_PLOUGHTHROUGH,2.0,5.0)
|
|
TASK_VEHICLE_DRIVE_WANDER(NULL,vehTraffic[1],11.0,DRIVINGMODE_AVOIDCARS_STOPFORPEDS_OBEYLIGHTS)
|
|
CLOSE_SEQUENCE_TASK(seqTraffic[1])
|
|
TASK_PERFORM_SEQUENCE(pedRandomDriver[1],seqTraffic[1])
|
|
*/
|
|
vehTraffic[6] = CREATE_VEHICLE(TAXI,<< 650.6729, -391.0377, 41.1159 >>, 53.9120)
|
|
pedRandomDriver[6] = CREATE_RANDOM_PED_AS_DRIVER(vehTraffic[6])
|
|
SET_ENTITY_LOAD_COLLISION_FLAG(vehTraffic[6],TRUE)
|
|
OPEN_SEQUENCE_TASK(seqTraffic[6])
|
|
TASK_VEHICLE_DRIVE_TO_COORD(NULL,vehTraffic[6],<< 509.6324, -323.0786, 43.2076 >>,16.0,DRIVINGSTYLE_NORMAL,TAXI,DRIVINGMODE_STOPFORCARS_IGNORELIGHTS,5.0,5.0)
|
|
TASK_VEHICLE_DRIVE_TO_COORD(NULL,vehTraffic[6],<< 414.3617, -286.4584, 50.3817 >>,15.0,DRIVINGSTYLE_NORMAL,TAXI,DRIVINGMODE_STOPFORCARS_IGNORELIGHTS,5.0,5.0)
|
|
TASK_VEHICLE_DRIVE_WANDER(NULL,vehTraffic[6],12.0,DRIVINGMODE_AVOIDCARS_STOPFORPEDS_OBEYLIGHTS)
|
|
CLOSE_SEQUENCE_TASK(seqTraffic[6])
|
|
TASK_PERFORM_SEQUENCE(pedRandomDriver[6],seqTraffic[6])
|
|
//IF CAN_CREATE_RANDOM_DRIVER()
|
|
IF HAS_MODEL_LOADED(FAGGIO2)
|
|
//AND HAS_MODEL_LOADED(A_M_Y_HIPSTER_01)
|
|
vehTraffic[8] = CREATE_VEHICLE(FAGGIO2,<< 555.2825, -337.5017, 42.5302 >>, 63.2771)
|
|
//pedRandomDriver[8] = CREATE_PED_INSIDE_VEHICLE(vehTraffic[8],PEDTYPE_CIVMALE,A_M_Y_HIPSTER_01)
|
|
pedRandomDriver[8] = CREATE_RANDOM_PED_AS_DRIVER(vehTraffic[8])
|
|
SET_ENTITY_LOAD_COLLISION_FLAG(vehTraffic[8],TRUE)
|
|
OPEN_SEQUENCE_TASK(seqTraffic[8])
|
|
TASK_VEHICLE_DRIVE_TO_COORD(NULL,vehTraffic[8],<< 511.2531, -274.8205, 46.0294 >>,18.0,DRIVINGSTYLE_NORMAL,FAGGIO2,DRIVINGMODE_PLOUGHTHROUGH,5.0,5.0)
|
|
TASK_VEHICLE_DRIVE_TO_COORD(NULL,vehTraffic[8],<< 518.7288, -188.3010, 52.2624 >>,19.0,DRIVINGSTYLE_NORMAL,FAGGIO2,DRIVINGMODE_PLOUGHTHROUGH,5.0,5.0)
|
|
TASK_VEHICLE_DRIVE_WANDER(NULL,vehTraffic[8],15.0,DRIVINGMODE_AVOIDCARS_STOPFORPEDS_OBEYLIGHTS)
|
|
CLOSE_SEQUENCE_TASK(seqTraffic[8])
|
|
TASK_PERFORM_SEQUENCE(pedRandomDriver[8],seqTraffic[8])
|
|
ENDIF
|
|
//ENDIF
|
|
iRandomTrafficSeq = 3
|
|
ENDIF
|
|
ENDIF
|
|
ELIF iRandomTrafficSeq = 3
|
|
IF HAS_MODEL_LOADED(FAGGIO2)
|
|
//AND HAS_MODEL_LOADED(A_M_Y_HIPSTER_01)
|
|
IF GET_TIME_POSITION_IN_RECORDING(mvPoppyCar.mVehicle) > 33576.3008 + fTimeOffset
|
|
//IF CAN_CREATE_RANDOM_DRIVER()
|
|
vehTraffic[3] = CREATE_VEHICLE(FAGGIO2,<< 367.2433, -285.2760, 52.7999 >>, 248.9247)
|
|
vehTraffic[4] = CREATE_VEHICLE(FAGGIO2,<< 380.3846, -290.7169, 52.2115 >>, 249.4217)
|
|
//pedRandomDriver[3] = CREATE_PED_INSIDE_VEHICLE(vehTraffic[3],PEDTYPE_CIVMALE,A_M_Y_HIPSTER_01)
|
|
//pedRandomDriver[4] = CREATE_PED_INSIDE_VEHICLE(vehTraffic[4],PEDTYPE_CIVMALE,A_M_Y_HIPSTER_01)
|
|
pedRandomDriver[3] = CREATE_RANDOM_PED_AS_DRIVER(vehTraffic[3])
|
|
pedRandomDriver[4] = CREATE_RANDOM_PED_AS_DRIVER(vehTraffic[4])
|
|
SET_ENTITY_LOAD_COLLISION_FLAG(vehTraffic[3],TRUE)
|
|
SET_ENTITY_LOAD_COLLISION_FLAG(vehTraffic[4],TRUE)
|
|
OPEN_SEQUENCE_TASK(seqTraffic[3])
|
|
TASK_VEHICLE_DRIVE_TO_COORD(NULL,vehTraffic[3],<< 439.2083, -353.8017, 46.3140 >>,50.0,DRIVINGSTYLE_NORMAL,FAGGIO2,DRIVINGMODE_PLOUGHTHROUGH,12.0,5.0)
|
|
TASK_VEHICLE_DRIVE_TO_COORD(NULL,vehTraffic[3],<< 205.5381, -341.2657, 43.0355 >>,50.0,DRIVINGSTYLE_NORMAL,FAGGIO2,DRIVINGMODE_PLOUGHTHROUGH,12.0,5.0)
|
|
TASK_VEHICLE_DRIVE_WANDER(NULL,vehTraffic[3],11.0,DRIVINGMODE_AVOIDCARS_STOPFORPEDS_OBEYLIGHTS)
|
|
CLOSE_SEQUENCE_TASK(seqTraffic[3])
|
|
OPEN_SEQUENCE_TASK(seqTraffic[4])
|
|
TASK_VEHICLE_DRIVE_TO_COORD(NULL,vehTraffic[4],<< 439.2083, -353.8017, 46.3140 >>,50.0,DRIVINGSTYLE_NORMAL,FAGGIO2,DRIVINGMODE_PLOUGHTHROUGH,12.0,5.0)
|
|
TASK_VEHICLE_DRIVE_TO_COORD(NULL,vehTraffic[4],<< 205.5381, -341.2657, 43.0355 >>,50.0,DRIVINGSTYLE_NORMAL,FAGGIO2,DRIVINGMODE_PLOUGHTHROUGH,12.0,5.0)
|
|
TASK_VEHICLE_DRIVE_WANDER(NULL,vehTraffic[4],11.0,DRIVINGMODE_AVOIDCARS_STOPFORPEDS_OBEYLIGHTS)
|
|
CLOSE_SEQUENCE_TASK(seqTraffic[4])
|
|
TASK_PERFORM_SEQUENCE(pedRandomDriver[3],seqTraffic[3])
|
|
TASK_PERFORM_SEQUENCE(pedRandomDriver[4],seqTraffic[4])
|
|
iRandomTrafficSeq = 4
|
|
//ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
//ENDIF
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
/// PURPOSE: Sets all models as no longer needed, removes all anim dicts, removes all vehicle recordings etc.
|
|
PROC UnloadEverything()
|
|
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(mpPoppyPed.mModel)
|
|
|
|
//SET_MODEL_AS_NO_LONGER_NEEDED(mvPoppyCar.mModel)
|
|
|
|
INT i
|
|
|
|
FOR i = 0 TO NUM_OF_POLICE_PEDS - 1
|
|
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(mpPolicePed[i].mModel)
|
|
|
|
ENDFOR
|
|
|
|
FOR i = 0 TO NUM_OF_PARKED_CARS - 1
|
|
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(mvParkedCar[i].mModel)
|
|
|
|
ENDFOR
|
|
|
|
FOR i = 0 TO NUM_OF_POLICE_CARS - 1
|
|
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(mvPoliceCars[i].mModel)
|
|
|
|
ENDFOR
|
|
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Makes the PED passed in flee from the player
|
|
/// PARAMS:
|
|
/// mPedFlee - Makes this ped flee from the player.
|
|
PROC MAKE_PED_FLEE(PED_INDEX mPedFlee, BOOL OnFoot = FALSE)
|
|
|
|
IF IS_PED_UNINJURED(mPedFlee)
|
|
IF OnFoot = FALSE
|
|
CLEAR_PED_TASKS(mPedFlee)
|
|
SET_PED_COMBAT_ATTRIBUTES(mPedFlee,CA_AGGRESSIVE,FALSE)
|
|
SET_PED_COMBAT_ATTRIBUTES(mPedFlee,CA_ALWAYS_FLEE,TRUE)
|
|
SET_PED_FLEE_ATTRIBUTES(mPedFlee, FA_USE_VEHICLE, TRUE)
|
|
SET_PED_FLEE_ATTRIBUTES(mPedFlee, FA_PREFER_PAVEMENTS, FALSE)
|
|
SET_PED_FLEE_ATTRIBUTES(mPedFlee, FA_USE_COVER, FALSE)
|
|
SET_PED_FLEE_ATTRIBUTES(mPedFlee, FA_LOOK_FOR_CROWDS, FALSE)
|
|
SET_PED_FLEE_ATTRIBUTES(mPedFlee, FA_RETURN_TO_ORIGNAL_POSITION_AFTER_FLEE, FALSE)
|
|
TASK_SMART_FLEE_PED(mPedFlee, PLAYER_PED_ID(), 200, -1,FALSE)
|
|
ELSE
|
|
CLEAR_PED_TASKS(mPedFlee)
|
|
SET_PED_COMBAT_ATTRIBUTES(mPedFlee,CA_AGGRESSIVE,FALSE)
|
|
SET_PED_COMBAT_ATTRIBUTES(mPedFlee,CA_ALWAYS_FLEE,TRUE)
|
|
SET_PED_FLEE_ATTRIBUTES(mPedFlee, FA_USE_VEHICLE, FALSE)
|
|
SET_PED_FLEE_ATTRIBUTES(mPedFlee, FA_PREFER_PAVEMENTS, TRUE)
|
|
SET_PED_FLEE_ATTRIBUTES(mPedFlee, FA_USE_COVER, FALSE)
|
|
SET_PED_FLEE_ATTRIBUTES(mPedFlee, FA_LOOK_FOR_CROWDS, TRUE)
|
|
SET_PED_FLEE_ATTRIBUTES(mPedFlee, FA_RETURN_TO_ORIGNAL_POSITION_AFTER_FLEE, FALSE)
|
|
TASK_SMART_FLEE_PED(mPedFlee, PLAYER_PED_ID(), 200, -1,TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
// ===========================================================================================================
|
|
// Termination
|
|
// ===========================================================================================================
|
|
|
|
/// PURPOSE: Cleanup that needs to be done as soon as mission is passed or failed. Blip removal etc
|
|
PROC MissionCleanup(bool bClearText = TRUE)
|
|
|
|
SAFE_REMOVE_BLIP(biMissionBlip)
|
|
SAFE_REMOVE_BLIP(blipPoppy)
|
|
SAFE_REMOVE_BLIP(blipPoppyCar)
|
|
|
|
INT i
|
|
|
|
FOR i = 0 TO NUM_OF_POLICE_PEDS - 1
|
|
IF IS_ENTITY_ALIVE(mpPolicePed[i].mPed)
|
|
//IF i <> 0
|
|
//AND i <> 1
|
|
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(mpPolicePed[i].mPed,FALSE)
|
|
SET_PED_AS_COP(mpPolicePed[i].mPed)
|
|
//ELSE
|
|
//SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(mpPolicePed[i].mPed,TRUE)
|
|
//ENDIF
|
|
ENDIF
|
|
ENDFOR
|
|
|
|
IF IS_PED_UNINJURED(mpPoppyPed.mPed)
|
|
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(mpPoppyPed.mPed,FALSE)
|
|
ENDIF
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
IF DOES_WIDGET_GROUP_EXIST(wgUberChase)
|
|
DELETE_WIDGET_GROUP(wgUberChase)
|
|
ENDIF
|
|
#ENDIF
|
|
|
|
IF IS_ENTITY_ALIVE(PLAYER_PED_ID())
|
|
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(PLAYER_PED_ID(),FALSE)
|
|
ENDIF
|
|
|
|
BYPASS_CELLPHONE_CAMERA_DEFAULT_SAVE_ROUTINE(FALSE)
|
|
ENABLE_PICTURE_MESSAGE_SENDING_AND_HELP(FALSE)
|
|
|
|
IF bClearText = TRUE // clear all text
|
|
CLEAR_PRINTS()
|
|
ENDIF
|
|
CLEAR_HELP(TRUE)
|
|
|
|
ENDPROC
|
|
|
|
// -----------------------------------------------------------------------------------------------------------
|
|
// Script Cleanup
|
|
// -----------------------------------------------------------------------------------------------------------
|
|
PROC Script_Cleanup(BOOL bClearText = TRUE)
|
|
|
|
// If the mission was triggered then additional mission cleanup will be required.
|
|
IF (Random_Character_Cleanup_If_Triggered())
|
|
PRINTSTRING("...Random Character Script was triggered so additional cleanup required") PRINTNL()
|
|
MissionCleanup(bClearText)
|
|
|
|
SET_INSTANCE_PRIORITY_HINT(INSTANCE_HINT_NONE)
|
|
|
|
TRIGGER_MUSIC_EVENT("PAP3_FAIL")
|
|
|
|
IF IS_AUDIO_SCENE_ACTIVE("PAPARAZZO_3A_POLICE_CHASE")
|
|
STOP_AUDIO_SCENE("PAPARAZZO_3A_POLICE_CHASE")
|
|
ENDIF
|
|
|
|
IF IS_AUDIO_SCENE_ACTIVE("PAPARAZZO_3A_PHOTO_SCENE")
|
|
STOP_AUDIO_SCENE("PAPARAZZO_3A_PHOTO_SCENE")
|
|
ENDIF
|
|
|
|
UnloadEverything()
|
|
|
|
SET_ALL_SHOPS_TEMPORARILY_UNAVAILABLE(FALSE)
|
|
|
|
SAFE_RELEASE_VEHICLE(vehTraffic[0])
|
|
SAFE_RELEASE_VEHICLE(vehTraffic[1])
|
|
SAFE_RELEASE_VEHICLE(vehTraffic[2])
|
|
SAFE_RELEASE_VEHICLE(vehTraffic[3])
|
|
SAFE_RELEASE_VEHICLE(vehTraffic[4])
|
|
SAFE_RELEASE_VEHICLE(vehTraffic[5])
|
|
SAFE_RELEASE_VEHICLE(vehTraffic[6])
|
|
SAFE_RELEASE_VEHICLE(vehTraffic[7])
|
|
SAFE_RELEASE_VEHICLE(vehTraffic[8])
|
|
SAFE_RELEASE_VEHICLE(vehTraffic[9])
|
|
|
|
SAFE_RELEASE_PED(pedRandomDriver[0])
|
|
SAFE_RELEASE_PED(pedRandomDriver[1])
|
|
SAFE_RELEASE_PED(pedRandomDriver[2])
|
|
SAFE_RELEASE_PED(pedRandomDriver[3])
|
|
SAFE_RELEASE_PED(pedRandomDriver[4])
|
|
SAFE_RELEASE_PED(pedRandomDriver[5])
|
|
SAFE_RELEASE_PED(pedRandomDriver[6])
|
|
SAFE_RELEASE_PED(pedRandomDriver[7])
|
|
SAFE_RELEASE_PED(pedRandomDriver[8])
|
|
SAFE_RELEASE_PED(pedRandomDriver[9])
|
|
|
|
SAFE_RELEASE_PED(mpPoppyPed.mPed)
|
|
|
|
//SAFE_RELEASE_VEHICLE(mvPoppyCar.mVehicle)
|
|
|
|
SAFE_RELEASE_PED(pedChopperPilot)
|
|
SAFE_RELEASE_VEHICLE(vehPoliceChopper)
|
|
|
|
IF IS_ENTITY_ALIVE(mvPoliceCars[2].mVehicle)
|
|
FREEZE_ENTITY_POSITION(mvPoliceCars[2].mVehicle,FALSE)
|
|
ENDIF
|
|
|
|
INT i
|
|
|
|
FOR i = 0 TO NUM_OF_POLICE_PEDS - 1
|
|
SAFE_RELEASE_PED(mpPolicePed[i].mPed)
|
|
ENDFOR
|
|
|
|
FOR i = 0 TO NUM_OF_PARKED_CARS - 1
|
|
SAFE_RELEASE_VEHICLE(mvParkedCar[i].mVehicle)
|
|
ENDFOR
|
|
|
|
FOR i = 0 TO NUM_OF_POLICE_CARS - 1
|
|
SAFE_RELEASE_VEHICLE(mvPoliceCars[i].mVehicle)
|
|
ENDFOR
|
|
|
|
//Reset any speed modifier
|
|
IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
vehPlayer = GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID())
|
|
MODIFY_VEHICLE_TOP_SPEED(vehPlayer,0)
|
|
ENDIF
|
|
|
|
SET_ROADS_IN_AREA(<< 318.9400, -411.6963, 38.0267 >>,<< 421.5246, -363.0107, 52.0853 >>, TRUE)
|
|
SET_ROADS_IN_AREA(<< 796.4662, -68.4078, 79.5220 >>,<< 974.3044, -152.9081, 72.6015 >>, TRUE)
|
|
SET_ROADS_IN_AREA(<< 683.3696, 38.3284, 83.2770 >>, << 707.9796, -22.9872, 82.6540 >>, TRUE)
|
|
SET_ROADS_IN_AREA(<< 812.2689, -40.7279, 79.4878 >>, << 858.4236, -119.0339, 78.3599 >>, TRUE)
|
|
|
|
KILL_CHASE_HINT_CAM(localChaseHintCamStruct)
|
|
|
|
CLEANUP_UBER_PLAYBACK()
|
|
|
|
ENDIF
|
|
|
|
RC_CleanupSceneEntities(sRCLauncherDataLocal, FALSE) //Cleanup the scene created by the launcher
|
|
|
|
IF IS_ENTITY_ALIVE(mvPoppyCar.mVehicle)
|
|
SET_VEHICLE_HAS_BEEN_DRIVEN_FLAG(mvPoppyCar.mVehicle,FALSE)
|
|
SET_VEHICLE_EXTENDED_REMOVAL_RANGE(mvPoppyCar.mVehicle,100)
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_MISSION, "SET_VEHICLE_HAS_BEEN_DRIVEN_FLAG(mvPoppyCar.mVehicle,FALSE)")
|
|
CPRINTLN(DEBUG_MISSION, "SET_VEHICLE_EXTENDED_REMOVAL_RANGE(mvPoppyCar.mVehicle,100)")
|
|
#ENDIF
|
|
ENDIF
|
|
|
|
REPOSITION_LANDSCAPE_PHONE_FOR_LONG_SUBTITLES(FALSE)
|
|
|
|
DISABLE_TAXI_HAILING(FALSE)
|
|
|
|
TERMINATE_THIS_THREAD()
|
|
|
|
ENDPROC
|
|
|
|
// -----------------------------------------------------------------------------------------------------------
|
|
// Script Pass
|
|
// -----------------------------------------------------------------------------------------------------------
|
|
PROC Script_Passed()
|
|
IF bReplay = FALSE
|
|
IF bPhotoInCuffs = TRUE
|
|
INFORM_STAT_SYSTEM_OF_BOOL_STAT_HAPPENED(PAP3A_PHOTO_IN_CUFFS)
|
|
ENDIF
|
|
ENDIF
|
|
IF bStatsFarFromPoppy = TRUE
|
|
OR bReplay = TRUE
|
|
INFORM_STAT_SYSTEM_OF_BOOL_STAT_HAPPENED(PAP3A_FAR_FROM_POPPY)
|
|
ENDIF
|
|
// CREDIT_BANK_ACCOUNT(CHAR_FRANKLIN, BAAC_UNLOGGED_SMALL_ACTION, 500) // Initially requested on B*1237043 - Removed on request as B*1317037
|
|
MissionCleanup()
|
|
Random_Character_Passed(CP_RAND_C_PAP3)
|
|
Script_Cleanup()
|
|
ENDPROC
|
|
|
|
/// PURPOSE: Sets the new mission stage and initialises the substate
|
|
PROC SetStage(MISSION_STAGE eNewStage)
|
|
bMainObjectiveDisplayed = FALSE
|
|
missionStage = eNewStage // Setup new mission state
|
|
eSubStage = SS_SETUP
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Sets the fail reason and mission stage to be fail fade out.
|
|
PROC SET_FAIL_REASON(FAIL_REASON eNewFailReason)
|
|
|
|
eFailReason = eNewFailReason
|
|
SETSTAGE(MS_MISSION_FAILED)
|
|
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Checks if player is inside the police barricade area
|
|
/// RETURNS:
|
|
/// True - If player is inside the area, false otherwise
|
|
FUNC BOOL IS_PLAYER_INSIDE_ROAD_BLOCK()
|
|
|
|
IF IS_ENTITY_IN_ANGLED_AREA( PLAYER_PED_ID(), <<834.418884,-88.170197,78.144989>>, <<802.457581,-62.110813,87.644989>>, 47.750000)
|
|
RETURN TRUE
|
|
ENDIF
|
|
|
|
IF IS_ENTITY_IN_ANGLED_AREA( PLAYER_PED_ID(), <<767.238342,-101.369659,75.284279>>, <<784.822693,-72.584816,83.212868>>, 20.000000)
|
|
RETURN TRUE
|
|
ENDIF
|
|
//IF IS_POINT_IN_POLY_2D(tpPoliceBlock, GET_ENTITY_COORDS(PLAYER_PED_ID()))
|
|
// RETURN TRUE
|
|
//ENDIF
|
|
|
|
RETURN FALSE
|
|
|
|
ENDFUNC
|
|
|
|
/// PURPOSE: Resets the gameplay camera behind the player
|
|
PROC ResetCamBehindPlayer()
|
|
SET_GAMEPLAY_CAM_RELATIVE_PITCH(0.0)
|
|
SET_GAMEPLAY_CAM_RELATIVE_HEADING(0.0)
|
|
ENDPROC
|
|
|
|
/// PURPOSE: creates ped and sets heading
|
|
PROC CreateMissionPed(MISSION_PED &mMissionPed, BOOL bUnloadModel = TRUE)
|
|
if HAS_MODEL_LOADED(mMissionPed.mModel)
|
|
mMissionPed.mPed = CREATE_PED(PEDTYPE_MISSION, mMissionPed.mModel, mMissionPed.vStartPos)
|
|
if IS_ENTITY_ALIVE(mMissionPed.mPed)
|
|
SET_ENTITY_HEADING(mMissionPed.mPed, mMissionPed.fStartHeading)
|
|
ENDIF
|
|
if bUnloadModel = TRUE
|
|
//SET_MODEL_AS_NO_LONGER_NEEDED(mMissionPed.mModel)
|
|
ENDIF
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
/// PURPOSE: creates ped inside a vehicle
|
|
PROC CreateMissionPedInVehicle(MISSION_PED &mMissionPed, MISSION_VEHICLE &mvMissionVec, PED_TYPE ptPedType, BOOL bUnloadModel = TRUE, VEHICLE_SEAT SeatPosition = VS_DRIVER)
|
|
if HAS_MODEL_LOADED(mMissionPed.mModel)
|
|
mMissionPed.mPed = CREATE_PED_INSIDE_VEHICLE(mvMissionVec.mVehicle,ptPedType, mMissionPed.mModel, SeatPosition)
|
|
if bUnloadModel = TRUE
|
|
//SET_MODEL_AS_NO_LONGER_NEEDED(mMissionPed.mModel)
|
|
ENDIF
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
/// PURPOSE: creates vehicle and sets heading and colours
|
|
PROC CreateMissionVehicle(MISSION_VEHICLE &mMissionVehicle, BOOL bRemoveModel = TRUE)
|
|
if HAS_MODEL_LOADED(mMissionVehicle.mModel)
|
|
mMissionVehicle.mVehicle = CREATE_VEHICLE(mMissionVehicle.mModel, mMissionVehicle.vStartPos, mMissionVehicle.fStartHeading)
|
|
ENDIF
|
|
|
|
if bRemoveModel = TRUE
|
|
//SET_MODEL_AS_NO_LONGER_NEEDED(mMissionVehicle.mModel)
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
/// PURPOSE: creates props and sets heading
|
|
PROC CreateMissionProp(MISSION_PROP &mMissionProp, BOOL bRemoveModel = TRUE)
|
|
if HAS_MODEL_LOADED(mMissionProp.mModel)
|
|
mMissionProp.mObject = CREATE_OBJECT(mMissionProp.mModel, mMissionProp.vStartPos)
|
|
if DOES_ENTITY_EXIST(mMissionProp.mObject)
|
|
SET_ENTITY_HEADING(mMissionProp.mObject,mMissionProp.fStartHeading)
|
|
//SET_ENTITY_LOAD_COLLISION_FLAG(mMissionProp.mObject,TRUE)
|
|
//PLACE_OBJECT_ON_GROUND_PROPERLY(mMissionProp.mObject)
|
|
ACTIVATE_PHYSICS(mMissionProp.mObject)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
if bRemoveModel = TRUE
|
|
//SET_MODEL_AS_NO_LONGER_NEEDED(mMissionProp.mModel)
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Checks to see if the player is unarmed - Including objects
|
|
/// Used to see if PEDS should attack player
|
|
/// RETURNS:
|
|
/// TRUE - If player is unarmed, false otherwise
|
|
FUNC BOOL IS_PLAYER_UNARMED()
|
|
|
|
IF GET_PEDS_CURRENT_WEAPON(PLAYER_PED_ID()) <> WEAPONTYPE_UNARMED
|
|
AND GET_PEDS_CURRENT_WEAPON(PLAYER_PED_ID()) <> WEAPONTYPE_OBJECT //CHECK FOR MOBILE PHONE AS THIS WILL TRIGGER
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
RETURN TRUE
|
|
|
|
ENDFUNC
|
|
|
|
/// PURPOSE: Checks if a point is onscreen
|
|
FUNC BOOL CAN_PLAYER_SEE_POINT(VECTOR vPos, FLOAT fRadius = 5.0, INT distance = 120)
|
|
IF IS_ENTITY_ALIVE(PLAYER_PED_ID())
|
|
IF GET_DISTANCE_BETWEEN_COORDS( GET_ENTITY_COORDS(PLAYER_PED_ID()), vPos) <= distance
|
|
IF IS_SPHERE_VISIBLE(vPos, fRadius)
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
/// PURPOSE: Checks if a ped is in the middle of the screen
|
|
FUNC BOOL MONITOR_PHOTO(PED_INDEX _Ped)
|
|
|
|
IF IS_ENTITY_ALIVE(_Ped)
|
|
FLOAT fScreenX = 0.0
|
|
FLOAT fScreenY = 0.0
|
|
VECTOR vPedPos = GET_ENTITY_COORDS(_Ped)
|
|
|
|
IF CAN_PLAYER_SEE_POINT(vPedPos,3.0, 500)
|
|
GET_SCREEN_COORD_FROM_WORLD_COORD(vPedPos, fScreenX, fScreenY)
|
|
|
|
IF fScreenX > 0.2
|
|
AND fScreenX <0.8
|
|
AND fScreenY > 0.2
|
|
AND fScreenY <0.8
|
|
RETURN TRUE
|
|
//the person is in the center of the screen
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
RETURN FALSE
|
|
|
|
ENDFUNC
|
|
|
|
FUNC BOOL IS_PED_NEAR_MIDDLE_OF_SCREEN(PED_INDEX ped)
|
|
|
|
FLOAT fMinScreen = 0.2
|
|
FLOAT fMaxScreen = 0.8
|
|
|
|
IF IS_PED_UNINJURED(ped)
|
|
INT i = GET_PED_BONE_INDEX(ped, BONETAG_SPINE)
|
|
FLOAT fScreenX
|
|
FLOAT fScreenY
|
|
IF i <> -1
|
|
VECTOR pos = GET_WORLD_POSITION_OF_ENTITY_BONE(ped,i)
|
|
|
|
GET_SCREEN_COORD_FROM_WORLD_COORD(pos, fScreenX, fScreenY)
|
|
|
|
IF fScreenX > fMinScreen
|
|
AND fScreenX < fMaxScreen
|
|
AND fScreenY > fMinScreen
|
|
AND fScreenY < fMaxScreen
|
|
CPRINTLN(DEBUG_MISSION, "TK POPPY SPINE NEAR MIDDLE OF THE SCREEN")
|
|
RETURN TRUE
|
|
ENDIF
|
|
|
|
ENDIF
|
|
ENDIF
|
|
CPRINTLN(DEBUG_MISSION, "TK POPPY SPINE NOT NEAR MIDDLE OF THE SCREEN")
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
FUNC BOOL CHECK_PHOTO_OK()
|
|
|
|
IF iFramesCheckingPhotoOk < 20
|
|
IF IS_PED_NEAR_MIDDLE_OF_SCREEN(mpPoppyPed.mPed)
|
|
IF IS_ENTITY_ON_SCREEN(mpPoppyPed.mPed)
|
|
AND IS_SPHERE_VISIBLE(GET_ENTITY_COORDS(mpPoppyPed.mPed),1)
|
|
IF NOT IS_ENTITY_OCCLUDED(mpPoppyPed.mPed)
|
|
IF GET_FOCUS_PED_ON_SCREEN(100,BONETAG_HEAD,0.42,0.26,0.01,50,0.2) = mpPoppyPed.mPed
|
|
OR GET_FOCUS_PED_ON_SCREEN(100,BONETAG_HEAD,0.42,0.26,0.01,50,0.2) = mpPolicePed[0].mPed
|
|
IF NOT IS_ENTITY_IN_RANGE_ENTITY(mpPoppyPed.mPed,PLAYER_PED_ID(),50)
|
|
bTooFarAway = TRUE
|
|
ELSE
|
|
++iPhotoScore
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
++iFramesCheckingPhotoOk
|
|
ENDIF
|
|
|
|
IF iPhotoScore > 5
|
|
RETURN TRUE
|
|
ELSE
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
ENDFUNC
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
BOOL bDebug_PrintPlayerVehicleInfo = FALSE
|
|
|
|
PROC SETUP_MISSION_WIDGET()
|
|
|
|
wgUberChase = START_WIDGET_GROUP("ben WIDGETS")
|
|
|
|
ADD_WIDGET_BOOL("Print player's current vehicle info, pos, quat and heading", bDebug_PrintPlayerVehicleInfo)
|
|
|
|
SET_UBER_PARENT_WIDGET_GROUP(wgUberChase)
|
|
|
|
STOP_WIDGET_GROUP()
|
|
ENDPROC
|
|
#ENDIF
|
|
|
|
/// PURPOSE: initialises mission variables
|
|
PROC InitVariables()
|
|
PRINTSTRING("init variables ************************")
|
|
|
|
vPitchersJunc = <<260.3616, 339.5469, 104.5709>>
|
|
vPawnJunc = <<421.7929, 295.6490, 102.0579>>
|
|
|
|
//INFORM_MISSION_STATS_OF_MISSION_START_PAPARAZZO_3A()
|
|
|
|
IF IS_PLAYER_PLAYING(PLAYER_ID())
|
|
CLEAR_PLAYER_WANTED_LEVEL(PLAYER_ID())
|
|
ENDIF
|
|
|
|
REQUEST_MODEL(police3)
|
|
REQUEST_MODEL(S_M_Y_Cop_01)
|
|
REQUEST_MODEL(U_F_Y_PoppyMich)
|
|
REQUEST_MODEL(COGCABRIO)
|
|
|
|
REQUEST_VEHICLE_RECORDING(300,"PAP3A2")
|
|
|
|
ADD_RELATIONSHIP_GROUP("SecurityGroup", relCopGroup)
|
|
ADD_RELATIONSHIP_GROUP("PoppyGroup", relPoppy)
|
|
|
|
CLEAR_AREA_OF_VEHICLES(vPitchersJunc,50,TRUE,TRUE)
|
|
CLEAR_AREA_OF_VEHICLES(vPawnJunc,50,TRUE,TRUE)
|
|
SET_ROADS_IN_ANGLED_AREA(<<234.214111,350.285187,113.387581>>, <<672.335144,212.360733,90.183990>>, 47.250000,FALSE,FALSE) //road at the start
|
|
|
|
INIT_ARRAYS()
|
|
|
|
bMainObjectiveDisplayed = FALSE
|
|
bPoliceChaseCreated = FALSE
|
|
bCopCrashed = FALSE
|
|
bPoppyHasCrashed = FALSE
|
|
b_Correct_Pic_Taken = FALSE
|
|
bPhotoSent = FALSE
|
|
bConversationActive = FALSE
|
|
bPoliceAttacking = FALSE
|
|
bCopsAreLeaving = FALSE
|
|
bSimpleHelp = FALSE
|
|
bDoRollingStart = FALSE
|
|
bPoppyCarSmashed = FALSE
|
|
bCarStopping = FALSE
|
|
//bBadPicSent = FALSE
|
|
bDoingRollingReplay = FALSE
|
|
bPoliceAttacking = FALSE
|
|
iWanted = 0
|
|
|
|
iDialogueToPlay = 0
|
|
|
|
bPlayerLeftArea = FALSE
|
|
bDoneFakeStart = FALSE
|
|
bCrashCutDone = FALSE
|
|
bCrashSoundPlayed = FALSE
|
|
bPrintNonSimpleHelp = FALSE
|
|
/*
|
|
//BLOCK OFF ROAD AT CRASH SITE - DISABLE NODES
|
|
SET_ROADS_IN_AREA(<< 318.9400, -411.6963, 38.0267 >>,<< 421.5246, -363.0107, 52.0853 >>, FALSE)
|
|
//JUNCTION NEAR PARKED POLICE
|
|
SET_ROADS_IN_AREA(<< 796.4662, -68.4078, 79.5220 >>,<< 974.3044, -152.9081, 72.6015 >>, FALSE)
|
|
//JUNCTION AT START OF CHASE
|
|
SET_ROADS_IN_AREA(<< 683.3696, 38.3284, 83.2770 >>, << 707.9796, -22.9872, 82.6540 >>, FALSE)
|
|
//POLICE ROAD BLOCK
|
|
SET_ROADS_IN_AREA(<< 812.2689, -40.7279, 79.4878 >>, << 858.4236, -119.0339, 78.3599 >>, FALSE)
|
|
|
|
IF IS_ENTITY_ALIVE(PLAYER_PED_ID())
|
|
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(PLAYER_PED_ID(),TRUE)
|
|
ENDIF
|
|
*/
|
|
ADD_CONTACT_TO_PHONEBOOK(CHAR_BEVERLY, FRANKLIN_BOOK, FALSE)
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
SETUP_MISSION_WIDGET()
|
|
SET_UBER_PARENT_WIDGET_GROUP(wgUberChase)
|
|
#ENDIF
|
|
|
|
eSubStageRec = SSRP_SETUP //RESET UBER RECORDING STATE
|
|
|
|
ePoppyState = PS_WAIT_FOR_PLAYER //RESET POPPY STATE
|
|
|
|
INT i
|
|
|
|
FOR i = 0 TO NUM_OF_POLICE_PEDS - 1
|
|
eCopState[i] = CS_DRIVING // RESET COP STATE
|
|
ENDFOR
|
|
|
|
//AREA TEST POLYS
|
|
//SPOTTED AREA
|
|
OPEN_TEST_POLY(tpPoliceBlock)
|
|
ADD_TEST_POLY_VERT(tpPoliceBlock, << 820.2385, -46.3501, 79.5901 >>)
|
|
ADD_TEST_POLY_VERT(tpPoliceBlock, << 796.7191, -82.9061, 79.5978 >>)
|
|
ADD_TEST_POLY_VERT(tpPoliceBlock, << 802.1686, -86.5395, 79.5984 >>)
|
|
ADD_TEST_POLY_VERT(tpPoliceBlock, << 827.0104, -50.6043, 79.5877 >>)
|
|
CLOSE_TEST_POLY(tpPoliceBlock)
|
|
|
|
//CHASE PLAYERBACK SPEED
|
|
//fPlayBackSpeed = 1.0
|
|
|
|
CLEAR_AREA_OF_VEHICLES(<< 691.2697, 10.5739, 83.1879 >>,100.0,FALSE) // CLEAR FIRST JUNCTION OF VEHICLES
|
|
|
|
//REQUEST_ADDITIONAL_TEXT("PAP3AAU", MISSION_DIALOGUE_TEXT_SLOT)
|
|
REQUEST_ADDITIONAL_TEXT("PAP3",MISSION_TEXT_SLOT)
|
|
|
|
WHILE NOT HAS_ADDITIONAL_TEXT_LOADED(MISSION_TEXT_SLOT)
|
|
//OR NOT HAS_ADDITIONAL_TEXT_LOADED(MISSION_DIALOGUE_TEXT_SLOT)
|
|
WAIT(0)
|
|
ENDWHILE
|
|
|
|
//USED FOR CAMERA HELP
|
|
|
|
IF GET_MISSION_COMPLETE_STATE(SP_HEIST_DOCKS_1) = TRUE
|
|
OR IS_THIS_RANDOM_CHARACTER_MISSION_COMPLETED(RC_PAPARAZZO_3B)
|
|
bSimpleHelp = TRUE
|
|
ELSE
|
|
bSimpleHelp = FALSE
|
|
ENDIF
|
|
|
|
fMaxDist = 170.0
|
|
|
|
// other requests here
|
|
|
|
#IF IS_DEBUG_BUILD // stage skipping
|
|
bFinishedSkipping = TRUE
|
|
|
|
mSkipMenu[0].sTxtLabel = "MS_INITAL_PHONE"
|
|
mSkipMenu[Z_SKIP_PHONECALL].sTxtLabel = "MS_GO_TO_LOCATION"
|
|
mSkipMenu[Z_SKIP_AT_POPPY_LOCATION].sTxtLabel = "MS_CHASE_POPPY"
|
|
mSkipMenu[3].sTxtLabel = "MS_GO_TO_CRASH"
|
|
mSkipMenu[Z_SKIP_AT_CRASH_LOCATION].sTxtLabel = "MS_TAKE_PHOTO"
|
|
mSkipMenu[5].sTxtLabel = "MS_END_PHONE_CALL"
|
|
|
|
#ENDIF
|
|
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Deletes everything regardless
|
|
PROC DELETE_EVERYTHING()
|
|
|
|
CLEANUP_UBER_PLAYBACK()
|
|
|
|
REMOVE_RELATIONSHIP_GROUP(relCopGroup)
|
|
REMOVE_RELATIONSHIP_GROUP(relPoppy)
|
|
|
|
SAFE_DELETE_PED(mpPoppyPed.mPed)
|
|
|
|
INT i
|
|
|
|
FOR i = 0 TO NUM_OF_POLICE_PEDS - 1
|
|
SAFE_DELETE_PED(mpPolicePed[i].mPed)
|
|
|
|
ENDFOR
|
|
|
|
FOR i = 0 TO NUM_OF_POLICE_CARS - 1
|
|
SAFE_DELETE_VEHICLE(mvPoliceCars[i].mVehicle)
|
|
ENDFOR
|
|
|
|
SAFE_DELETE_VEHICLE(mvPoppyCar.mVehicle)
|
|
|
|
FOR i = 0 TO NUM_OF_PARKED_CARS - 1
|
|
SAFE_DELETE_VEHICLE(mvParkedCar[i].mVehicle)
|
|
ENDFOR
|
|
|
|
FOR i = 0 TO NUM_OF_CHASE_PROPS - 1
|
|
SAFE_DELETE_OBJECT(mpsChaseProps[i].mObject)
|
|
ENDFOR
|
|
|
|
REMOVE_FORCED_OBJECT(<< 634.4785, -68.8406, 74.2911 >>,5,PROP_BARRIER_WORK04A)
|
|
REMOVE_FORCED_OBJECT(<< 627.1672, -73.8742, 73.3072 >>,5,PROP_BARRIER_WORK04A)
|
|
REMOVE_FORCED_OBJECT(<< 653.2055, -96.2269, 73.4953 >>,5,PROP_BARRIER_WORK04A)
|
|
REMOVE_FORCED_OBJECT(<< 657.0881, -91.6722, 73.5133 >>,5,PROP_BARRIER_WORK04A)
|
|
|
|
SAFE_REMOVE_BLIP(biMissionBlip)
|
|
|
|
SAFE_DELETE_PED(pedRandomDriver[0])
|
|
SAFE_DELETE_PED(pedRandomDriver[1])
|
|
SAFE_DELETE_PED(pedRandomDriver[2])
|
|
SAFE_DELETE_PED(pedRandomDriver[3])
|
|
SAFE_DELETE_PED(pedRandomDriver[4])
|
|
SAFE_DELETE_PED(pedRandomDriver[5])
|
|
SAFE_DELETE_PED(pedRandomDriver[6])
|
|
SAFE_DELETE_PED(pedRandomDriver[7])
|
|
SAFE_DELETE_PED(pedRandomDriver[8])
|
|
SAFE_DELETE_PED(pedRandomDriver[9])
|
|
|
|
SAFE_DELETE_VEHICLE(vehTraffic[0])
|
|
SAFE_DELETE_VEHICLE(vehTraffic[1])
|
|
SAFE_DELETE_VEHICLE(vehTraffic[2])
|
|
SAFE_DELETE_VEHICLE(vehTraffic[3])
|
|
SAFE_DELETE_VEHICLE(vehTraffic[4])
|
|
SAFE_DELETE_VEHICLE(vehTraffic[5])
|
|
SAFE_DELETE_VEHICLE(vehTraffic[6])
|
|
SAFE_DELETE_VEHICLE(vehTraffic[7])
|
|
SAFE_DELETE_VEHICLE(vehTraffic[8])
|
|
SAFE_DELETE_VEHICLE(vehTraffic[9])
|
|
|
|
SAFE_DELETE_PED(pedChopperPilot)
|
|
SAFE_DELETE_VEHICLE(vehPoliceChopper)
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
IF DOES_WIDGET_GROUP_EXIST(wgUberChase)
|
|
DELETE_WIDGET_GROUP(wgUberChase)
|
|
ENDIF
|
|
#ENDIF
|
|
|
|
ENDPROC
|
|
|
|
/// PURPOSE: Deletes all entities and unloads everything
|
|
PROC ResetMission()
|
|
|
|
RENDER_SCRIPT_CAMS(FALSE, FALSE)
|
|
|
|
DISPLAY_HUD(TRUE)
|
|
|
|
DISPLAY_RADAR(TRUE)
|
|
|
|
CLEAR_PRINTS()
|
|
|
|
DELETE_EVERYTHING()
|
|
|
|
SET_PLAYER_WANTED_LEVEL(PLAYER_ID(),0)
|
|
|
|
UnloadEverything()
|
|
|
|
InitVariables()
|
|
|
|
iRandomTrafficSeq = 0
|
|
|
|
CLEAR_CONTACT_PICTURE_MESSAGE(CHAR_BEVERLY)
|
|
|
|
IF IS_ENTITY_ALIVE(PLAYER_PED_ID())
|
|
SET_ENTITY_COORDS(PLAYER_PED_ID(),<< 408.5291, 139.5021, 100.8066 >>)
|
|
SET_ENTITY_HEADING(PLAYER_PED_ID(),213.0)
|
|
ENDIF
|
|
|
|
SetStage(MS_INITIAL_PHONE)
|
|
|
|
ENDPROC
|
|
|
|
////////// DEBUG FUNCTIONS /////////////////////
|
|
|
|
PROC SET_VEHICLE_RECORDING_PLAYBACK_POSITION(VEHICLE_INDEX thisVehicle, FLOAT positionToSet)
|
|
|
|
IF IS_ENTITY_ALIVE(thisVehicle)
|
|
IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(thisVehicle)
|
|
SKIP_TIME_IN_PLAYBACK_RECORDED_VEHICLE(thisVehicle, (GET_TIME_POSITION_IN_RECORDING(thisVehicle) * -1 ) + positionToSet )
|
|
ELSE
|
|
SCRIPT_ASSERT("SET_VEHICLE_RECORDING_PLAYBACK_POSITION: Playback not going on for Vehicle!")
|
|
ENDIF
|
|
ELSE
|
|
SCRIPT_ASSERT("SET_VEHICLE_RECORDING_PLAYBACK_POSITION: Vehicle Dead!")
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
PROC SET_VEHICLE_RECORDING_PLAYBACK_PERCENTAGE_PROGRESS(VEHICLE_INDEX thisVehicle, FLOAT percentage, INT recordingNumber, STRING RecName)
|
|
|
|
IF HAS_VEHICLE_RECORDING_BEEN_LOADED(recordingNumber, RecName)
|
|
IF percentage >= 0.0 AND percentage <= 100.00
|
|
SET_VEHICLE_RECORDING_PLAYBACK_POSITION(thisVehicle, ( GET_TOTAL_DURATION_OF_VEHICLE_RECORDING(recordingNumber, RecName) / 100.00 ) * percentage )
|
|
#IF IS_DEBUG_BUILD
|
|
ELSE
|
|
SCRIPT_ASSERT("SET_VEHICLE_RECORDING_PLAYBACK_POSITION: Supplied Percentage out of range!!")
|
|
PRINTSTRING("SET_VEHICLE_RECORDING_PLAYBACK_POSITION: Supplied Percentage out of range!!")
|
|
#ENDIF
|
|
ENDIF
|
|
ELSE
|
|
SCRIPT_ASSERT("Car rec not loaded")
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Makes sure Police scene has loaded
|
|
/// PARAMS:
|
|
/// bWaitForLoad - If true, will wait for all models to be loaded
|
|
/// RETURNS:
|
|
/// TRUE if all models loaded, false otherwise.
|
|
FUNC BOOL HAS_POLICE_SCENE_LOADED(BOOL bWaitForLoad = FALSE)
|
|
|
|
//INT i
|
|
|
|
//COP CARS
|
|
//FOR i = 0 TO NUM_OF_POLICE_CARS - 1
|
|
REQUEST_MODEL(mvPoliceCars[0].mModel)
|
|
//ENDFOR
|
|
|
|
//CELEB CAR
|
|
REQUEST_MODEL(mvPoppyCar.mModel)
|
|
/*
|
|
//PARKED CAR
|
|
FOR i = 0 TO NUM_OF_PARKED_CARS - 1
|
|
REQUEST_MODEL(mvParkedCar[i].mModel)
|
|
ENDFOR
|
|
*/
|
|
//REQUEST PEDS
|
|
|
|
//POLICE PED
|
|
//FOR i = 0 TO NUM_OF_POLICE_PEDS - 1
|
|
REQUEST_MODEL(mpPolicePed[0].mModel)
|
|
//ENDFOR
|
|
/*
|
|
FOR i = 0 TO NUM_OF_STANDING_PEDS - 1
|
|
REQUEST_MODEL(mpStandingPeds[i].mModel)
|
|
ENDFOR
|
|
*/
|
|
/*
|
|
//PROPS
|
|
FOR i = 0 TO NUM_OF_CHASE_PROPS - 1
|
|
REQUEST_MODEL(mpsChaseProps[i].mModel)
|
|
ENDFOR
|
|
*/
|
|
//POPPY PED
|
|
REQUEST_MODEL(mpPoppyPed.mModel)
|
|
|
|
//REQUEST_VEHICLE_RECORDING(121,"PAP3Cop2")
|
|
//REQUEST_VEHICLE_RECORDING(130,"PAP3Cop2")
|
|
//REQUEST_VEHICLE_RECORDING(111,"PAP3Cop1")
|
|
//REQUEST_VEHICLE_RECORDING(161,"PAP3Cop3")
|
|
//REQUEST_VEHICLE_RECORDING(1, "PAP3U")
|
|
//REQUEST_VEHICLE_RECORDING(250,"PAP3U")
|
|
|
|
IF bWaitForLoad = FALSE
|
|
|
|
IF NOT HAS_MODEL_LOADED(mvPoliceCars[0].mModel)
|
|
OR NOT HAS_MODEL_LOADED(mpPolicePed[0].mModel)
|
|
OR NOT HAS_MODEL_LOADED(mvPoppyCar.mModel)
|
|
OR NOT HAS_MODEL_LOADED(mpPoppyPed.mModel)
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
/*
|
|
FOR i = 0 TO NUM_OF_POLICE_CARS - 1
|
|
IF NOT HAS_MODEL_LOADED(mvPoliceCars[i].mModel)
|
|
RETURN FALSE
|
|
ENDIF
|
|
ENDFOR
|
|
|
|
IF NOT HAS_MODEL_LOADED(mvPoppyCar.mModel)
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
FOR i = 0 TO NUM_OF_PARKED_CARS - 1
|
|
IF NOT HAS_MODEL_LOADED(mvParkedCar[i].mModel)
|
|
RETURN FALSE
|
|
ENDIF
|
|
ENDFOR
|
|
|
|
FOR i = 0 TO NUM_OF_POLICE_PEDS - 1
|
|
IF NOT HAS_MODEL_LOADED(mpPolicePed[i].mModel)
|
|
RETURN FALSE
|
|
ENDIF
|
|
ENDFOR
|
|
|
|
FOR i = 0 TO NUM_OF_STANDING_PEDS - 1
|
|
IF NOT HAS_MODEL_LOADED(mpStandingPeds[i].mModel)
|
|
RETURN FALSE
|
|
ENDIF
|
|
ENDFOR
|
|
|
|
FOR i = 0 TO NUM_OF_CHASE_PROPS - 1
|
|
IF NOT HAS_MODEL_LOADED(mpsChaseProps[i].mModel)
|
|
RETURN FALSE
|
|
ENDIF
|
|
ENDFOR
|
|
|
|
IF NOT HAS_MODEL_LOADED(mpPoppyPed.mModel)
|
|
RETURN FALSE
|
|
ENDIF
|
|
/*
|
|
IF NOT HAS_VEHICLE_RECORDING_BEEN_LOADED(121,"PAP3Cop2")
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
IF NOT HAS_VEHICLE_RECORDING_BEEN_LOADED(130,"PAP3Cop2")
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
IF NOT HAS_VEHICLE_RECORDING_BEEN_LOADED(111,"PAP3Cop1")
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
IF NOT HAS_VEHICLE_RECORDING_BEEN_LOADED(161,"PAP3Cop3")
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
IF NOT HAS_VEHICLE_RECORDING_BEEN_LOADED(1,"PAP3U")
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
IF NOT HAS_VEHICLE_RECORDING_BEEN_LOADED(250,"PAP3U")
|
|
RETURN FALSE
|
|
ENDIF
|
|
*/
|
|
ELSE
|
|
// wait for everything to load- used in debug skips
|
|
Bool bEverythingLoaded = FALSE
|
|
|
|
WHILE bEverythingLoaded = FALSE
|
|
|
|
WAIT(0)
|
|
|
|
bEverythingLoaded = TRUE
|
|
|
|
IF NOT HAS_MODEL_LOADED(mvPoliceCars[0].mModel)
|
|
OR NOT HAS_MODEL_LOADED(mpPolicePed[0].mModel)
|
|
OR NOT HAS_MODEL_LOADED(mvPoppyCar.mModel)
|
|
OR NOT HAS_MODEL_LOADED(mpPoppyPed.mModel)
|
|
bEverythingLoaded = FALSE
|
|
ENDIF
|
|
|
|
/*
|
|
bEverythingLoaded = TRUE
|
|
|
|
FOR i = 0 TO NUM_OF_POLICE_CARS - 1
|
|
IF NOT HAS_MODEL_LOADED(mvPoliceCars[i].mModel)
|
|
bEverythingLoaded = FALSE
|
|
ENDIF
|
|
ENDFOR
|
|
|
|
IF NOT HAS_MODEL_LOADED(mvPoppyCar.mModel)
|
|
bEverythingLoaded = FALSE
|
|
ENDIF
|
|
|
|
FOR i = 0 TO NUM_OF_PARKED_CARS - 1
|
|
IF NOT HAS_MODEL_LOADED(mvParkedCar[i].mModel)
|
|
bEverythingLoaded = FALSE
|
|
ENDIF
|
|
ENDFOR
|
|
|
|
FOR i = 0 TO NUM_OF_CHASE_PROPS - 1
|
|
IF NOT HAS_MODEL_LOADED(mpsChaseProps[i].mModel)
|
|
bEverythingLoaded = FALSE
|
|
ENDIF
|
|
ENDFOR
|
|
|
|
FOR i = 0 TO NUM_OF_POLICE_PEDS - 1
|
|
IF NOT HAS_MODEL_LOADED(mpPolicePed[i].mModel)
|
|
bEverythingLoaded = FALSE
|
|
ENDIF
|
|
ENDFOR
|
|
|
|
FOR i = 0 TO NUM_OF_STANDING_PEDS - 1
|
|
IF NOT HAS_MODEL_LOADED(mpStandingPeds[i].mModel)
|
|
bEverythingLoaded = FALSE
|
|
ENDIF
|
|
ENDFOR
|
|
|
|
IF NOT HAS_MODEL_LOADED(mpPoppyPed.mModel)
|
|
bEverythingLoaded = FALSE
|
|
ENDIF
|
|
/*
|
|
IF NOT HAS_VEHICLE_RECORDING_BEEN_LOADED(121,"PAP3Cop2")
|
|
bEverythingLoaded = FALSE
|
|
ENDIF
|
|
|
|
IF NOT HAS_VEHICLE_RECORDING_BEEN_LOADED(130,"PAP3Cop2")
|
|
bEverythingLoaded = FALSE
|
|
ENDIF
|
|
|
|
IF NOT HAS_VEHICLE_RECORDING_BEEN_LOADED(111,"PAP3Cop1")
|
|
bEverythingLoaded = FALSE
|
|
ENDIF
|
|
|
|
IF NOT HAS_VEHICLE_RECORDING_BEEN_LOADED(161,"PAP3Cop3")
|
|
bEverythingLoaded = FALSE
|
|
ENDIF
|
|
|
|
IF NOT HAS_VEHICLE_RECORDING_BEEN_LOADED(1,"PAP3U")
|
|
bEverythingLoaded = FALSE
|
|
ENDIF
|
|
|
|
IF NOT HAS_VEHICLE_RECORDING_BEEN_LOADED(250,"PAP3U")
|
|
bEverythingLoaded = FALSE
|
|
ENDIF
|
|
*/
|
|
ENDWHILE
|
|
ENDIF
|
|
|
|
RETURN TRUE
|
|
|
|
ENDFUNC
|
|
|
|
/// PURPOSE:
|
|
/// Handles performing a rolling start on the player's vehicle.
|
|
PROC RCM_MANAGE_ROLLING_START()
|
|
|
|
IF bDoneRollingStart = FALSE
|
|
//IF HAS_VEHICLE_RECORDING_BEEN_LOADED(201, "PAP3ARS")
|
|
IF GET_IS_WAYPOINT_RECORDING_LOADED("Pap3aRoll")
|
|
IF IS_VEHICLE_OK(vehPlayer)
|
|
IF iRollingStartTimer = -1
|
|
/*
|
|
IF IS_VEHICLE_OK(mvPoppyCar.mVehicle)
|
|
IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(mvPoppyCar.mVehicle)
|
|
ePoppyState = PS_DRIVING
|
|
SKIP_TIME_IN_PLAYBACK_RECORDED_VEHICLE(mvPoppyCar.mVehicle,3000)
|
|
ELSE
|
|
ePoppyState = PS_DRIVING
|
|
START_PLAYBACK_RECORDED_VEHICLE(mvPoppyCar.mVehicle, 1 ,"PAP3U" )
|
|
SKIP_TIME_IN_PLAYBACK_RECORDED_VEHICLE(mvPoppyCar.mVehicle,3000)
|
|
ENDIF
|
|
ENDIF
|
|
IF IS_VEHICLE_OK(mvPoliceCars[0].mVehicle)
|
|
IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(mvPoliceCars[0].mVehicle)
|
|
SKIP_TIME_IN_PLAYBACK_RECORDED_VEHICLE(mvPoliceCars[0].mVehicle,3000)
|
|
ELSE
|
|
START_PLAYBACK_RECORDED_VEHICLE(mvPoliceCars[0].mVehicle, 130 ,"PAP3Cop2" )
|
|
SET_VEHICLE_SIREN(mvPoliceCars[0].mVehicle,TRUE)
|
|
SKIP_TIME_IN_PLAYBACK_RECORDED_VEHICLE(mvPoliceCars[0].mVehicle,3000)
|
|
ENDIF
|
|
ENDIF
|
|
IF IS_VEHICLE_OK(mvPoliceCars[2].mVehicle)
|
|
IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(mvPoliceCars[2].mVehicle)
|
|
SKIP_TIME_IN_PLAYBACK_RECORDED_VEHICLE(mvPoliceCars[2].mVehicle,3000)
|
|
ELSE
|
|
START_PLAYBACK_RECORDED_VEHICLE(mvPoliceCars[2].mVehicle, 161 ,"PAP3Cop3" )
|
|
SET_VEHICLE_SIREN(mvPoliceCars[2].mVehicle,TRUE)
|
|
SKIP_TIME_IN_PLAYBACK_RECORDED_VEHICLE(mvPoliceCars[2].mVehicle,3000)
|
|
ENDIF
|
|
ENDIF
|
|
*/
|
|
//IF NOT IS_PLAYBACK_GOING_ON_FOR_VEHICLE(vehPlayer)
|
|
IF NOT IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_VEHICLE(vehPlayer)
|
|
CLEAR_AREA(<<377.5160, 169.3637, 102.0690>>,70,TRUE)
|
|
//CLEAR_AREA(<<611.6465, 53.4393, 89.8014>>,70,TRUE)
|
|
//START_PLAYBACK_RECORDED_VEHICLE(vehPlayer, 201, "PAP3ARS")
|
|
//SET_PLAYBACK_SPEED(vehPlayer,0.9)
|
|
IF bHeliReplay = FALSE
|
|
//SAFE_TELEPORT_ENTITY(vehPlayer,<<377.5160, 169.3637, 102.0690>>, 340.2312)
|
|
SAFE_TELEPORT_ENTITY(vehPlayer,<<364.0056, 129.8543, 102.1026>>, 341.4834)
|
|
SET_VEHICLE_ON_GROUND_PROPERLY(vehPlayer)
|
|
SET_VEHICLE_FORWARD_SPEED(vehPlayer,21.84) //21.84
|
|
TASK_VEHICLE_FOLLOW_WAYPOINT_RECORDING(PLAYER_PED_ID(),vehPlayer,"Pap3aRoll",DRIVINGMODE_PLOUGHTHROUGH,0,EWAYPOINT_START_FROM_CLOSEST_POINT | EWAYPOINT_VEHICLES_USE_AI_SLOWDOWN | EWAYPOINT_NAVMESH_BACK_TO_WAYPOINT_IF_LEFT_ROUTE)
|
|
ELSE
|
|
SAFE_TELEPORT_ENTITY(vehPlayer,<<373.0085, 169.6102, 122.1141>>, 341.0669)
|
|
//SET_VEHICLE_FORWARD_SPEED(vehPlayer,1)
|
|
SET_HELI_BLADES_FULL_SPEED(vehPlayer)
|
|
//TASK_VEHICLE_FOLLOW_WAYPOINT_RECORDING(PLAYER_PED_ID(),vehPlayer,"Pap3aRoll",DRIVINGMODE_PLOUGHTHROUGH,0,EWAYPOINT_START_FROM_CLOSEST_POINT)
|
|
ENDIF
|
|
ENDIF
|
|
iRollingStartTimer = GET_GAME_TIMER()
|
|
ELSE
|
|
//IF NOT IS_PLAYBACK_GOING_ON_FOR_VEHICLE(vehPlayer)
|
|
IF NOT IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_VEHICLE(vehPlayer)
|
|
OR IS_CONTROL_JUST_PRESSED(PLAYER_CONTROL, INPUT_VEH_ACCELERATE)
|
|
OR IS_CONTROL_JUST_PRESSED(PLAYER_CONTROL, INPUT_VEH_BRAKE)
|
|
OR IS_CONTROL_JUST_PRESSED(PLAYER_CONTROL, INPUT_VEH_MOVE_LEFT)
|
|
OR IS_CONTROL_JUST_PRESSED(PLAYER_CONTROL, INPUT_VEH_MOVE_RIGHT)
|
|
OR IS_VEHICLE_SEAT_FREE(vehPlayer)
|
|
OR (GET_GAME_TIMER() - iRollingStartTimer > 3000)
|
|
//IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(vehPlayer)
|
|
//IF IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_VEHICLE(vehPlayer)
|
|
//STOP_PLAYBACK_RECORDED_VEHICLE(vehPlayer)
|
|
//VEHICLE_WAYPOINT_PLAYBACK_PAUSE(vehPlayer)
|
|
//ENDIF
|
|
IF bHeliReplay = FALSE
|
|
CLEAR_PED_TASKS(PLAYER_PED_ID())
|
|
SET_PLAYER_CONTROL(PLAYER_ID(),TRUE)
|
|
//SET_GAMEPLAY_CAM_RELATIVE_HEADING()
|
|
//SET_GAMEPLAY_CAM_RELATIVE_PITCH()
|
|
ENDIF
|
|
FORCE_ENTITY_AI_AND_ANIMATION_UPDATE(vehPlayer)
|
|
//REMOVE_VEHICLE_RECORDING(201, "PAP3ARS")
|
|
bDoneRollingStart = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
//REQUEST_VEHICLE_RECORDING(201, "PAP3ARS")
|
|
REQUEST_WAYPOINT_RECORDING("Pap3aRoll")
|
|
ENDIF
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
/// PURPOSE: Skips the current stage
|
|
PROC SkipStage()
|
|
|
|
IF IS_SCRIPTED_CONVERSATION_ONGOING()
|
|
KILL_ANY_CONVERSATION()
|
|
ENDIF
|
|
|
|
CLEAR_AREA(<< 346.6118, -404.7508, 44.2121 >>,200.0,TRUE)
|
|
|
|
SWITCH missionStage
|
|
|
|
CASE MS_INITIAL_PHONE
|
|
IF eSubStage = SS_UPDATE
|
|
IF IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
KILL_FACE_TO_FACE_CONVERSATION_DO_NOT_FINISH_LAST_LINE()
|
|
//KILL_PHONE_CONVERSATION()
|
|
ENDIF
|
|
bConversationActive = TRUE
|
|
eSubStage = SS_CLEANUP
|
|
ENDIF
|
|
//SAFE_FADE_SCREEN_OUT_TO_BLACK(0,FALSE)
|
|
|
|
//SAFE_TELEPORT_ENTITY(PLAYER_PED_ID(),<< 305.3899, 139.1082, 102.7873 >>, 335.5552)
|
|
|
|
CLEAR_AREA(<<336.4843, 132.4985, 102.0139>>,30,TRUE)
|
|
|
|
IF NOT IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
IF IS_VEHICLE_OK(vehPlayer)
|
|
IF IS_THIS_MODEL_A_HELI(GET_ENTITY_MODEL(vehPlayer))
|
|
bHeliReplay = TRUE
|
|
ELSE
|
|
bHeliReplay = FALSE
|
|
ENDIF
|
|
FREEZE_ENTITY_POSITION(PLAYER_PED_ID(),FALSE)
|
|
SET_PED_INTO_VEHICLE(PLAYER_PED_ID(),vehPlayer,VS_DRIVER)
|
|
SET_ENTITY_COORDS(vehPlayer, <<336.4843, 132.4985, 102.0139>>)
|
|
SET_ENTITY_HEADING(vehPlayer,249.9272)
|
|
SET_VEHICLE_ENGINE_ON(vehPlayer,TRUE,TRUE)
|
|
ELSE
|
|
CREATE_VEHICLE_FOR_REPLAY(vehPlayer,<<336.4843, 132.4985, 102.0139>>, 249.9272,FALSE,FALSE,TRUE,TRUE,TRUE,CARBONIZZARE,1)
|
|
IF IS_THIS_MODEL_A_HELI(GET_ENTITY_MODEL(vehPlayer))
|
|
bHeliReplay = TRUE
|
|
ELSE
|
|
bHeliReplay = FALSE
|
|
ENDIF
|
|
FREEZE_ENTITY_POSITION(PLAYER_PED_ID(),FALSE)
|
|
SET_PED_INTO_VEHICLE(PLAYER_PED_ID(),vehPlayer,VS_DRIVER)
|
|
SET_PED_COORDS_KEEP_VEHICLE(PLAYER_PED_ID(), <<336.4843, 132.4985, 102.0139>>)
|
|
SET_ENTITY_HEADING(vehPlayer,249.9272)
|
|
SET_VEHICLE_ENGINE_ON(vehPlayer,TRUE,TRUE)
|
|
ENDIF
|
|
ELSE
|
|
SET_PED_COORDS_KEEP_VEHICLE(PLAYER_PED_ID(), <<336.4843, 132.4985, 102.0139>>)
|
|
SET_ENTITY_HEADING(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()),249.9272)
|
|
ENDIF
|
|
|
|
SET_GAMEPLAY_CAM_RELATIVE_HEADING()
|
|
SET_GAMEPLAY_CAM_RELATIVE_PITCH()
|
|
|
|
//LOAD_SCENE(<<336.4843, 132.4985, 102.0139>>)
|
|
|
|
//SAFE_FADE_SCREEN_IN_FROM_BLACK(DEFAULT_FADE_TIME,FALSE)
|
|
|
|
//missionStage = MS_INITIAL_PHONE
|
|
|
|
//eSubStage = SS_SETUP
|
|
BREAK
|
|
|
|
CASE MS_GO_TO_LOCATION
|
|
|
|
ResetCamBehindPlayer()
|
|
|
|
iTimerReplayStarted = GET_GAME_TIMER()
|
|
|
|
IF HAS_POLICE_SCENE_LOADED(TRUE)
|
|
IF bPoliceChaseCreated = TRUE
|
|
IF NOT IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
IF IS_VEHICLE_OK(vehPlayer)
|
|
IF IS_THIS_MODEL_A_HELI(GET_ENTITY_MODEL(vehPlayer))
|
|
bHeliReplay = TRUE
|
|
ELSE
|
|
bHeliReplay = FALSE
|
|
ENDIF
|
|
//REQUEST_VEHICLE_RECORDING(201, "PAP3ARS")
|
|
FREEZE_ENTITY_POSITION(PLAYER_PED_ID(),FALSE)
|
|
SET_PED_INTO_VEHICLE(PLAYER_PED_ID(),vehPlayer,VS_DRIVER)
|
|
SET_PED_COORDS_KEEP_VEHICLE(PLAYER_PED_ID(), <<393.7350, 218.8013, 102.0914>>)
|
|
SET_ENTITY_HEADING(vehPlayer,338.9834)
|
|
ELSE
|
|
CREATE_VEHICLE_FOR_REPLAY(vehPlayer,<< 429.1563, 126.8527, 99.4028 >>, 70.3603,FALSE,FALSE,TRUE,TRUE,TRUE,CARBONIZZARE,1)
|
|
IF IS_THIS_MODEL_A_HELI(GET_ENTITY_MODEL(vehPlayer))
|
|
bHeliReplay = TRUE
|
|
ELSE
|
|
bHeliReplay = FALSE
|
|
ENDIF
|
|
//REQUEST_VEHICLE_RECORDING(201, "PAP3ARS")
|
|
FREEZE_ENTITY_POSITION(PLAYER_PED_ID(),FALSE)
|
|
SET_PED_INTO_VEHICLE(PLAYER_PED_ID(),vehPlayer,VS_DRIVER)
|
|
SET_PED_COORDS_KEEP_VEHICLE(PLAYER_PED_ID(), <<393.7350, 218.8013, 102.0914>>)
|
|
SET_ENTITY_HEADING(vehPlayer,338.9834)
|
|
ENDIF
|
|
ELSE
|
|
SET_PED_COORDS_KEEP_VEHICLE(PLAYER_PED_ID(), <<393.7350, 218.8013, 102.0914>>) //TELEPORT PLAYER TO LOCATION
|
|
SET_ENTITY_HEADING(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()),338.9834)
|
|
ENDIF
|
|
/*
|
|
IF Is_Replay_In_Progress()
|
|
bDoRollingStart = TRUE
|
|
bDoneRollingStart = FALSE
|
|
iRollingStartTimer = -1
|
|
RCM_MANAGE_ROLLING_START()
|
|
ENDIF
|
|
*/
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
CASE MS_CHASE_POPPY
|
|
|
|
IF IS_VEHICLE_OK(vehPlayer)
|
|
IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(vehPlayer)
|
|
STOP_PLAYBACK_RECORDED_VEHICLE(vehPlayer)
|
|
ENDIF
|
|
ENDIF
|
|
IF NOT IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
IF IS_VEHICLE_OK(vehPlayer)
|
|
IF IS_THIS_MODEL_A_HELI(GET_ENTITY_MODEL(vehPlayer))
|
|
bHeliReplay = TRUE
|
|
ELSE
|
|
bHeliReplay = FALSE
|
|
ENDIF
|
|
//FREEZE_ENTITY_POSITION(PLAYER_PED_ID(),FALSE)
|
|
SET_PED_INTO_VEHICLE(PLAYER_PED_ID(),vehPlayer,VS_DRIVER)
|
|
SET_ENTITY_COORDS(vehPlayer, << 398.9370, -399.1257, 45.7647 >>)
|
|
SET_ENTITY_HEADING(vehPlayer,92.0)
|
|
ELSE
|
|
CREATE_VEHICLE_FOR_REPLAY(vehPlayer,<< 429.1563, 126.8527, 99.4028 >>, 70.3603,FALSE,FALSE,TRUE,TRUE,TRUE,CARBONIZZARE,1)
|
|
IF IS_THIS_MODEL_A_HELI(GET_ENTITY_MODEL(vehPlayer))
|
|
bHeliReplay = TRUE
|
|
ELSE
|
|
bHeliReplay = FALSE
|
|
ENDIF
|
|
//REQUEST_VEHICLE_RECORDING(201, "PAP3ARS")
|
|
FREEZE_ENTITY_POSITION(PLAYER_PED_ID(),FALSE)
|
|
SET_PED_INTO_VEHICLE(PLAYER_PED_ID(),vehPlayer,VS_DRIVER)
|
|
SET_PED_COORDS_KEEP_VEHICLE(PLAYER_PED_ID(), << 398.9370, -399.1257, 45.7647 >>)
|
|
SET_ENTITY_HEADING(vehPlayer,92.0)
|
|
ENDIF
|
|
ELSE
|
|
SET_PED_COORDS_KEEP_VEHICLE(PLAYER_PED_ID(), << 398.9370, -399.1257, 45.7647 >>) //TELEPORT PLAYER TO LOCATION
|
|
SET_ENTITY_HEADING(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()),92.0)
|
|
ENDIF
|
|
ResetCamBehindPlayer()
|
|
IF IS_VEHICLE_OK(mvPoppyCar.mVehicle)
|
|
IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(mvPoppyCar.mVehicle)
|
|
ePoppyState = PS_DRIVING
|
|
//SET_VEHICLE_RECORDING_PLAYBACK_PERCENTAGE_PROGRESS(mvPoppyCar.mVehicle,99.0,1 ,"PAP3U")
|
|
SET_VEHICLE_RECORDING_PLAYBACK_PERCENTAGE_PROGRESS(mvPoppyCar.mVehicle,99.0,300 ,"PAP3A2")
|
|
ELSE
|
|
ePoppyState = PS_DRIVING
|
|
START_PLAYBACK_RECORDED_VEHICLE(mvPoppyCar.mVehicle, 300 ,"PAP3A2" )
|
|
//SET_VEHICLE_RECORDING_PLAYBACK_PERCENTAGE_PROGRESS(mvPoppyCar.mVehicle,99.0,1 ,"PAP3U")
|
|
SET_VEHICLE_RECORDING_PLAYBACK_PERCENTAGE_PROGRESS(mvPoppyCar.mVehicle,99.0,300 ,"PAP3A2")
|
|
ENDIF
|
|
ENDIF
|
|
IF IS_VEHICLE_OK(mvPoliceCars[0].mVehicle)
|
|
IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(mvPoliceCars[0].mVehicle)
|
|
SET_VEHICLE_RECORDING_PLAYBACK_PERCENTAGE_PROGRESS(mvPoliceCars[0].mVehicle,99.0,500 ,"PAP3A2")
|
|
ELSE
|
|
START_PLAYBACK_RECORDED_VEHICLE(mvPoliceCars[0].mVehicle, 500 ,"PAP3A2" )
|
|
SET_VEHICLE_SIREN(mvPoliceCars[0].mVehicle,TRUE)
|
|
SET_PLAYBACK_SPEED(mvPoliceCars[0].mVehicle,fPlayBackSpeed)
|
|
SET_VEHICLE_RECORDING_PLAYBACK_PERCENTAGE_PROGRESS(mvPoliceCars[0].mVehicle,99.0,500 ,"PAP3A2")
|
|
ENDIF
|
|
ENDIF
|
|
IF IS_VEHICLE_OK(mvPoliceCars[2].mVehicle)
|
|
IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(mvPoliceCars[2].mVehicle)
|
|
SET_VEHICLE_RECORDING_PLAYBACK_PERCENTAGE_PROGRESS(mvPoliceCars[2].mVehicle,99.0,501 ,"PAP3A2")
|
|
ELSE
|
|
START_PLAYBACK_RECORDED_VEHICLE(mvPoliceCars[2].mVehicle, 501 ,"PAP3A2" )
|
|
SET_VEHICLE_SIREN(mvPoliceCars[2].mVehicle,TRUE)
|
|
SET_PLAYBACK_SPEED(mvPoliceCars[2].mVehicle,fPlayBackSpeed)
|
|
SET_VEHICLE_RECORDING_PLAYBACK_PERCENTAGE_PROGRESS(mvPoliceCars[2].mVehicle,99.0,501 ,"PAP3A2")
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
CASE MS_GO_TO_CRASH
|
|
SET_ENTITY_COORDS(PLAYER_PED_ID(), << 365.6487, -399.4542, 44.7933 >>) //PUT PLAYER AT THE CRASH SCENE
|
|
SET_ENTITY_HEADING(PLAYER_PED_ID(),104.0)
|
|
IF IS_VEHICLE_OK(vehPlayer)
|
|
SET_ENTITY_COORDS(vehPlayer, << 366.9862, -404.5475, 44.8031 >>)
|
|
SET_ENTITY_HEADING(vehPlayer,105.0)
|
|
SET_VEHICLE_ON_GROUND_PROPERLY(vehPlayer)
|
|
SET_PED_INTO_VEHICLE(PLAYER_PED_ID(),vehPlayer)
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE MS_TAKE_PHOTO
|
|
bPhotoSent = TRUE
|
|
eSubStage = SS_CLEANUP
|
|
BREAK
|
|
|
|
CASE MS_END_PHONECALL
|
|
IF eSubStage = SS_UPDATE
|
|
IF IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
KILL_FACE_TO_FACE_CONVERSATION_DO_NOT_FINISH_LAST_LINE()
|
|
//KILL_PHONE_CONVERSATION()
|
|
ENDIF
|
|
bConversationActive = TRUE
|
|
eSubStage = SS_CLEANUP
|
|
ENDIF
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
SAFE_FADE_SCREEN_IN_FROM_BLACK(DEFAULT_FADE_TIME,FALSE)
|
|
CLEAR_PED_TASKS(PLAYER_PED_ID())
|
|
SET_PLAYER_CONTROL(PLAYER_ID(),TRUE)
|
|
ResetCamBehindPlayer()
|
|
|
|
ENDPROC
|
|
|
|
/// PURPOSE: Jumps to the stage selected
|
|
PROC JumpToStage(MISSION_STAGE eNewStage)
|
|
|
|
IF missionStage = eNewStage // skip current stage
|
|
bFinishedSkipping = TRUE
|
|
IF NOT IS_REPLAY_IN_PROGRESS()
|
|
RC_END_Z_SKIP()
|
|
ENDIF
|
|
ELSE
|
|
SkipStage()
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
/// PURPOSE: Goes back to the previous stage
|
|
PROC PreviousStage()
|
|
int iNewStage
|
|
|
|
iNewStage = ENUM_TO_INT(MissionStage)-1
|
|
|
|
IF iNewStage >-1
|
|
//we can skip to a previous stage
|
|
eTargetStage = INT_TO_ENUM(MISSION_STAGE, iNewStage)
|
|
ResetMission()
|
|
bFinishedSkipping = FALSE
|
|
JumpToStage(eTargetStage)
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
#ENDIF
|
|
|
|
/// PURPOSE:
|
|
/// Starts a Z skip
|
|
/// PARAMS:
|
|
/// iTargetStage -
|
|
PROC Do_Z_Skip(INT iTargetStage, BOOL bResetMission = FALSE)
|
|
|
|
RC_START_Z_SKIP()
|
|
|
|
IF bResetMission = TRUE
|
|
ResetMission()
|
|
ENDIF
|
|
|
|
eTargetStage = INT_TO_ENUM(MISSION_STAGE, iTargetStage)
|
|
bFinishedSkipping = FALSE
|
|
JumpToStage(eTargetStage)
|
|
ENDPROC
|
|
|
|
// ===========================================================================================================
|
|
// DEBUG FUNCTIONS
|
|
// ===========================================================================================================
|
|
#IF IS_DEBUG_BUILD
|
|
/// PURPOSE: Check for Forced Pass or Fail
|
|
PROC DEBUG_Check_Debug_Keys()
|
|
|
|
int iNewStage
|
|
|
|
IF (IS_KEYBOARD_KEY_JUST_PRESSED(KEY_S)) // Check for Pass
|
|
WAIT_FOR_CUTSCENE_TO_STOP()
|
|
KILL_CHASE_HINT_CAM(localChaseHintCamStruct)
|
|
Script_Passed()
|
|
ENDIF
|
|
|
|
IF (IS_KEYBOARD_KEY_JUST_PRESSED(KEY_F)) // Check for Fail
|
|
WAIT_FOR_CUTSCENE_TO_STOP()
|
|
KILL_CHASE_HINT_CAM(localChaseHintCamStruct)
|
|
SET_FAIL_REASON(FAIL_DEFAULT)
|
|
ENDIF
|
|
|
|
IF (IS_KEYBOARD_KEY_JUST_PRESSED(KEY_J)) // Check for Skip forward
|
|
SkipStage()
|
|
ENDIF
|
|
|
|
IF (IS_KEYBOARD_KEY_JUST_PRESSED(KEY_P)) // Check for Skip backwards
|
|
PreviousStage()
|
|
ENDIF
|
|
|
|
IF LAUNCH_MISSION_STAGE_MENU(mSkipMenu, iNewStage) // Check for jumping to stage
|
|
Do_Z_Skip(iNewStage, TRUE)
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
#ENDIF
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
PROC UBER_RECORD_STUFF
|
|
|
|
SWITCH iRecordingProgress
|
|
CASE 0
|
|
INIT_UBER_RECORDING("Pap3U")
|
|
iRecordingProgress++
|
|
BREAK
|
|
|
|
CASE 1
|
|
|
|
WHILE TRUE
|
|
|
|
UPDATE_UBER_RECORDING()
|
|
UPDATE_UBER_PLAYBACK(mvPoppyCar.mVehicle,fPlayBackSpeed)
|
|
|
|
if bFinishedSkipping = TRUE
|
|
DEBUG_Check_Debug_Keys() // not skipping stages, check for debug keys
|
|
ELSE
|
|
JumpToStage(eTargetStage) // still skipping stages
|
|
ENDIF
|
|
|
|
WAIT(0)
|
|
|
|
ENDWHILE
|
|
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
ENDPROC
|
|
#ENDIF
|
|
|
|
// --------------------------------------------------------------
|
|
// STAGE FUNCTIONS
|
|
// --------------------------------------------------------------
|
|
|
|
FUNC BOOL IS_PLAYER_IN_FRONT()
|
|
|
|
IF IS_PED_IN_FRONT_OF_CAR(PLAYER_PED_ID(),mvPoppyCar.mVehicle)
|
|
RETURN TRUE
|
|
ENDIF
|
|
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
/// PURPOSE:
|
|
/// Rubberbanding
|
|
PROC CHECK_PLAYER_DISTANCE()
|
|
|
|
FLOAT fPlayersSpeedModifier = 0
|
|
|
|
IF bDoneFakeStart = FALSE
|
|
|
|
IF GET_DISTANCE_BETWEEN_ENTITY_AND_COORD(PLAYER_PED_ID(),vPawnJunc) < GET_DISTANCE_BETWEEN_ENTITY_AND_COORD(PLAYER_PED_ID(),vPitchersJunc)
|
|
fPlayBackSpeed = (300.0 - (GET_DISTANCE_BETWEEN_ENTITY_AND_COORD(PLAYER_PED_ID(),vPawnJunc)))
|
|
fPlayBackSpeed = (fPlayBackSpeed / 300)
|
|
IF fPlayBackSpeed < fLowPlaybackSpeedClamp
|
|
fPlayBackSpeed = fLowPlaybackSpeedClamp
|
|
ENDIF
|
|
IF fPlayBackSpeed > 1
|
|
fPlayBackSpeed = 1
|
|
ENDIF
|
|
IF fTimePosInRec > 10260.810547
|
|
//OR GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(),mvPoppyCar.mVehicle) < GET_DISTANCE_BETWEEN_ENTITY_AND_COORD(PLAYER_PED_ID(),vPawnJunc)
|
|
bDoneFakeStart = TRUE
|
|
ENDIF
|
|
ELSE
|
|
fPlayBackSpeed = (250.0 - (GET_DISTANCE_BETWEEN_ENTITY_AND_COORD(PLAYER_PED_ID(),vPitchersJunc)))
|
|
fPlayBackSpeed = (fPlayBackSpeed / 220)
|
|
IF fPlayBackSpeed < fLowPlaybackSpeedClamp
|
|
fPlayBackSpeed = fLowPlaybackSpeedClamp
|
|
ENDIF
|
|
IF fPlayBackSpeed > 1
|
|
fPlayBackSpeed = 1
|
|
ENDIF
|
|
IF fTimePosInRec > 15158.107422
|
|
//OR GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(),mvPoppyCar.mVehicle) < GET_DISTANCE_BETWEEN_ENTITY_AND_COORD(PLAYER_PED_ID(),vPitchersJunc)
|
|
bDoneFakeStart = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT DOES_BLIP_EXIST(blipPoppyCar)
|
|
blipPoppyCar = CREATE_VEHICLE_BLIP(mvPoppyCar.mVehicle,TRUE)
|
|
ENDIF
|
|
|
|
ELSE
|
|
|
|
BOOL bDoBoost = FALSE
|
|
BOOL bPlayerInFront = FALSE
|
|
|
|
IF IS_SPECIAL_ABILITY_ACTIVE(PLAYER_ID())
|
|
bDoBoost = TRUE
|
|
fPlayersSpeedModifier = -30.0
|
|
ENDIF
|
|
|
|
IF fTimePosInRec >= 23715.677734
|
|
AND fTimePosInRec < 28477.677734
|
|
bDoBoost = TRUE
|
|
ENDIF
|
|
IF fTimePosInRec >= 58550.062500
|
|
AND fTimePosInRec < 63927.898438
|
|
bDoBoost = TRUE
|
|
ENDIF
|
|
IF fTimePosInRec >= 70515.734375
|
|
AND fTimePosInRec < 76783.734375
|
|
bDoBoost = TRUE
|
|
ENDIF
|
|
IF fTimePosInRec > 20000
|
|
IF IS_PLAYER_IN_FRONT()
|
|
bPlayerInFront = TRUE
|
|
bDoBoost = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF bDoBoost //lift the clamp
|
|
fHighPlaybackSpeedClamp = fHighPlaybackSpeedClamp + 0.025
|
|
IF fHighPlaybackSpeedClamp > 1.25
|
|
fHighPlaybackSpeedClamp = 1.25
|
|
ENDIF
|
|
ELSE
|
|
IF fHighPlaybackSpeedClamp > 1.0
|
|
fHighPlaybackSpeedClamp = fHighPlaybackSpeedClamp - 0.025
|
|
ENDIF
|
|
IF fHighPlaybackSpeedClamp < 1.0
|
|
fHighPlaybackSpeedClamp = 1.0
|
|
ENDIF
|
|
ENDIF
|
|
|
|
FLOAT fRubberband
|
|
|
|
fRubberband = GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(),mvPoppyCar.mVehicle)
|
|
|
|
IF bPlayerInFront
|
|
fMaxDist += 0.025
|
|
IF fMaxDist > 180.0
|
|
fMaxDist = 180.0
|
|
ENDIF
|
|
IF fRubberband > 5.0
|
|
fRubberband = 5.0
|
|
ENDIF
|
|
ELSE
|
|
fMaxDist -= 0.025
|
|
IF fMaxDist < 170.0
|
|
fMaxDist = 170.0
|
|
ENDIF
|
|
ENDIF
|
|
|
|
fPlayBackSpeed = (fMaxDist - (fRubberband))
|
|
fPlayBackSpeed = (fPlayBackSpeed / 130)
|
|
IF fPlayBackSpeed < fLowPlaybackSpeedClamp
|
|
fPlayBackSpeed = fLowPlaybackSpeedClamp
|
|
ENDIF
|
|
IF fPlayBackSpeed > fHighPlaybackSpeedClamp
|
|
fPlayBackSpeed = fHighPlaybackSpeedClamp
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
IF fLowPlaybackSpeedClamp < 0.7
|
|
IF fPlayBackSpeed > fLowPlaybackSpeedClamp
|
|
fLowPlaybackSpeedClamp = fPlayBackSpeed
|
|
ENDIF
|
|
IF fTimePosInRec > 12000
|
|
fLowPlaybackSpeedClamp = fLowPlaybackSpeedClamp + 0.001
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
vehPlayer = GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID())
|
|
MODIFY_VEHICLE_TOP_SPEED(vehPlayer, fPlayersSpeedModifier)
|
|
ENDIF
|
|
|
|
//CPRINTLN(DEBUG_MISSION, fPlayBackSpeed)
|
|
//PRINTFLOAT(fTimePosInRec)
|
|
//PRINTNL()
|
|
//PRINTFLOAT(GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(),mvPoppyCar.mVehicle))
|
|
//PRINTNL()
|
|
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Checks if the player has damaged or attack cop cars during chase
|
|
FUNC BOOL CHECK_FOR_PLAYER_DAMAGE
|
|
IF IS_VEHICLE_OK(mvPoliceCars[0].mVehicle)
|
|
IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(mvPoliceCars[0].mVehicle,PLAYER_PED_ID(),TRUE)
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
IF IS_VEHICLE_OK(mvPoliceCars[1].mVehicle)
|
|
IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(mvPoliceCars[1].mVehicle,PLAYER_PED_ID(),TRUE)
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
IF IS_VEHICLE_OK(mvPoliceCars[2].mVehicle)
|
|
IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(mvPoliceCars[2].mVehicle,PLAYER_PED_ID(),TRUE)
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
RETURN FALSE
|
|
|
|
ENDFUNC
|
|
|
|
FUNC BOOL IS_HEADING_OK(FLOAT fHeading, FLOAT fIdealHeading, FLOAT fLeeway )
|
|
FLOAT fUpperH
|
|
FLOAT fLowerH
|
|
|
|
fLowerH = fIdealHeading - fLeeway
|
|
IF fLowerH < 0.0
|
|
fLowerH += 360.0
|
|
ENDIF
|
|
fUpperH = fIdealHeading + fLeeway
|
|
IF fUpperH >= 360.0
|
|
fUpperH -= 360.0
|
|
ENDIF
|
|
IF fUpperH > fLowerH
|
|
IF fHeading < fUpperH
|
|
AND fHeading > fLowerH
|
|
RETURN TRUE
|
|
ENDIF
|
|
ELSE
|
|
IF fHeading < fUpperH
|
|
OR fHeading > fLowerH
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
/// PURPOSE:
|
|
/// Manages cop cars during the chase
|
|
/// Handles playback speed etc.
|
|
/*
|
|
PROC MANAGE_COP_CARS()
|
|
|
|
IF IS_VEHICLE_OK(mvPoliceCars[0].mVehicle)
|
|
IF NOT IS_PLAYBACK_GOING_ON_FOR_VEHICLE(mvPoliceCars[0].mVehicle) AND GET_TIME_POSITION_IN_RECORDING(mvPoppyCar.mVehicle) >= 600
|
|
START_PLAYBACK_RECORDED_VEHICLE(mvPoliceCars[0].mVehicle, 130 ,"PAP3Cop2" ) //!!!!!!!!!!!!!!!
|
|
SET_VEHICLE_SIREN(mvPoliceCars[0].mVehicle,TRUE)
|
|
SET_PLAYBACK_SPEED(mvPoliceCars[0].mVehicle,fPlayBackSpeed)
|
|
SET_ENTITY_INVINCIBLE(mvPoliceCars[0].mVehicle,FALSE)
|
|
ELSE
|
|
SET_PLAYBACK_SPEED(mvPoliceCars[0].mVehicle,fPlayBackSpeed)
|
|
SET_ENTITY_INVINCIBLE(mvPoliceCars[0].mVehicle,TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
IF IS_VEHICLE_OK(mvPoliceCars[1].mVehicle) AND bCopCrashed = FALSE
|
|
IF NOT IS_PLAYBACK_GOING_ON_FOR_VEHICLE(mvPoliceCars[1].mVehicle) AND GET_TIME_POSITION_IN_RECORDING(mvPoppyCar.mVehicle) >= 300
|
|
START_PLAYBACK_RECORDED_VEHICLE(mvPoliceCars[1].mVehicle, 111 ,"PAP3Cop1" ) //!!!!!!!!!!!!!!!
|
|
SET_VEHICLE_SIREN(mvPoliceCars[1].mVehicle,TRUE)
|
|
SET_PLAYBACK_SPEED(mvPoliceCars[1].mVehicle,fPlayBackSpeed)
|
|
ELSE
|
|
IF bCopCrashed = FALSE
|
|
SET_PLAYBACK_SPEED(mvPoliceCars[1].mVehicle,fPlayBackSpeed)
|
|
IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(mvPoliceCars[1].mVehicle)
|
|
IF GET_TIME_POSITION_IN_RECORDING(mvPoliceCars[1].mVehicle) >= 32300
|
|
STOP_PLAYBACK_RECORDED_VEHICLE(mvPoliceCars[1].mVehicle)
|
|
SET_VEHICLE_ENGINE_HEALTH(mvPoliceCars[1].mVehicle,5.0)
|
|
SET_VEHICLE_SIREN(mvPoliceCars[1].mVehicle,FALSE)
|
|
SET_VEHICLE_ALARM(mvPoliceCars[1].mVehicle,TRUE)
|
|
SET_VEHICLE_ENGINE_ON(mvPoliceCars[1].mVehicle,FALSE,TRUE)
|
|
IF IS_PED_UNINJURED(mpPolicePed[2].mPed)
|
|
SET_ENTITY_HEALTH(mpPolicePed[2].mPed,99)
|
|
ENDIF
|
|
bCopCrashed = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
IF IS_VEHICLE_OK(mvPoliceCars[2].mVehicle)
|
|
IF NOT IS_PLAYBACK_GOING_ON_FOR_VEHICLE(mvPoliceCars[2].mVehicle) AND GET_TIME_POSITION_IN_RECORDING(mvPoppyCar.mVehicle) >= 45000
|
|
START_PLAYBACK_RECORDED_VEHICLE(mvPoliceCars[2].mVehicle, 161 ,"PAP3Cop3" ) //!!!!!!!!!!!!!!!
|
|
SET_VEHICLE_SIREN(mvPoliceCars[2].mVehicle,TRUE)
|
|
SET_PLAYBACK_SPEED(mvPoliceCars[2].mVehicle,fPlayBackSpeed)
|
|
ELSE
|
|
SET_PLAYBACK_SPEED(mvPoliceCars[2].mVehicle,fPlayBackSpeed)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
*/
|
|
/// PURPOSE:
|
|
/// Hanldes all the loading / playback of the chase uber recording.
|
|
PROC PLAYBACK_UBER_RECORDING
|
|
|
|
SWITCH eSubStageRec
|
|
CASE SSRP_SETUP
|
|
|
|
//INITIALISE_UBER_PLAYBACK("PAP3U",250,FALSE)
|
|
fLowPlaybackSpeedClamp = 0.3
|
|
INITIALISE_UBER_PLAYBACK("PAP3A2",300,FALSE)
|
|
//LOAD_UBER_DATA()
|
|
LOAD_UBER_DATA_NEW()
|
|
PRELOAD_CAR_RECORDINGS_FOR_UBER_CHASE()
|
|
eSubStageRec = SSRP_UPDATE
|
|
BREAK
|
|
|
|
CASE SSRP_UPDATE
|
|
|
|
IF IS_VEHICLE_OK(mvPoppyCar.mVehicle)
|
|
IF NOT IS_PLAYBACK_GOING_ON_FOR_VEHICLE(mvPoppyCar.mVehicle)
|
|
ePoppyState = PS_DRIVING
|
|
//START_PLAYBACK_RECORDED_VEHICLE(mvPoppyCar.mVehicle, 250 ,"PAP3U" )
|
|
START_PLAYBACK_RECORDED_VEHICLE(mvPoppyCar.mVehicle, 300 ,"PAP3A2" )
|
|
IF bDoingRollingReplay = FALSE
|
|
IF NOT IS_REPLAY_IN_PROGRESS()
|
|
IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<350.427979,143.832642,100.855240>>, <<271.727234,172.999466,117.883522>>, 52.500000) //not really moved from outside whirligig
|
|
SKIP_TIME_IN_PLAYBACK_RECORDED_VEHICLE(mvPoppyCar.mVehicle,5000)
|
|
ELSE
|
|
//IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<610.134766,159.861359,95.472145>>, <<160.532639,319.985107,208.461792>>, 105.750000) //driving down a side street
|
|
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<186.165924,299.047302,86.186226>>, <<653.020813,137.619247,179.561157>>, 133.500000)
|
|
AND IS_HEADING_OK(GET_ENTITY_HEADING(PLAYER_PED_ID()),339.0575,90)
|
|
IF GET_DISTANCE_BETWEEN_ENTITY_AND_COORD(PLAYER_PED_ID(),vPitchersJunc) < GET_DISTANCE_BETWEEN_ENTITY_AND_COORD(PLAYER_PED_ID(),vPawnJunc)
|
|
SKIP_TIME_IN_PLAYBACK_RECORDED_VEHICLE(mvPoppyCar.mVehicle,11000)
|
|
ELSE
|
|
SKIP_TIME_IN_PLAYBACK_RECORDED_VEHICLE(mvPoppyCar.mVehicle,8000)
|
|
ENDIF
|
|
ELSE
|
|
SKIP_TIME_IN_PLAYBACK_RECORDED_VEHICLE(mvPoppyCar.mVehicle,7000)
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
SKIP_TIME_IN_PLAYBACK_RECORDED_VEHICLE(mvPoppyCar.mVehicle,2000)
|
|
ENDIF
|
|
ELSE
|
|
SKIP_TIME_IN_PLAYBACK_RECORDED_VEHICLE(mvPoppyCar.mVehicle,4000)
|
|
ENDIF
|
|
ELSE
|
|
SKIP_TIME_IN_PLAYBACK_RECORDED_VEHICLE(mvPoppyCar.mVehicle,7600) //7000
|
|
ENDIF
|
|
SET_ENTITY_INVINCIBLE(mvPoppyCar.mVehicle,TRUE)
|
|
ELSE
|
|
//IF NOT IS_ENTITY_AT_COORD(mvPoppyCar.mVehicle,vCrashLocation,<<4.5,4.5,4.5>>)
|
|
IF GET_TIME_POSITION_IN_RECORDING(mvPoppyCar.mVehicle) < 115000//113369 //119011 //113369
|
|
//113336
|
|
/*
|
|
IF GET_TIME_POSITION_IN_RECORDING(mvPoppyCar.mVehicle) >= 113369
|
|
IF bPoppyCarSmashed = FALSE
|
|
SET_ENTITY_INVINCIBLE(mvPoppyCar.mVehicle,FALSE)
|
|
SET_VEHICLE_DAMAGE(mvPoppyCar.mVehicle, <<0, 2, 0>>, 300.0, 150.0, TRUE)
|
|
bPoppyCarSmashed = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
*/
|
|
IF bPoppyHasCrashed = FALSE
|
|
//MANAGE_COP_CARS()
|
|
ENDIF
|
|
CHECK_PLAYER_DISTANCE()
|
|
IF IS_PED_IN_ANY_HELI(PLAYER_PED_ID())
|
|
IF GET_TIME_POSITION_IN_RECORDING(mvPoppyCar.mVehicle) >= 2000
|
|
fUberPlaybackMinCreationDistance = 300.0
|
|
fUberPlaybackDensitySwitchOffRange = 50.0
|
|
ENDIF
|
|
ENDIF
|
|
bPlayTrafficRecordingEvenIfPlayerIsAheadOfChase = FALSE//TRUE
|
|
bSetPieceCarsDontSwitchToAI = TRUE
|
|
PRELOAD_CAR_RECORDINGS_FOR_UBER_CHASE()
|
|
//CREATE_ALL_WAITING_UBER_CARS()
|
|
UPDATE_UBER_PLAYBACK(mvPoppyCar.mVehicle,fPlayBackSpeed)
|
|
IF GET_TIME_POSITION_IN_RECORDING(mvPoppyCar.mVehicle) >= 113369
|
|
IF bPoppyCarSmashed = FALSE
|
|
SET_ENTITY_INVINCIBLE(mvPoppyCar.mVehicle,FALSE)
|
|
SET_VEHICLE_DAMAGE(mvPoppyCar.mVehicle, <<0, 2, 0>>, 400.0, 200.0, TRUE)
|
|
REPLAY_RECORD_BACK_FOR_TIME(3.0, 2.0, REPLAY_IMPORTANCE_LOWEST) //Poppy crashes her car into a tree.
|
|
bPoppyCarSmashed = TRUE
|
|
ENDIF
|
|
IF bCrashSoundPlayed = FALSE
|
|
PLAY_SOUND_FROM_ENTITY(-1,"CRASH",mvPoppyCar.mVehicle,"PAPARAZZO_03A")
|
|
bCrashSoundPlayed = TRUE
|
|
ENDIF
|
|
IF bPlayerStopped
|
|
IF AUDIO_IS_SCRIPTED_MUSIC_PLAYING()
|
|
TRIGGER_MUSIC_EVENT("PAP3_STOP")
|
|
ENDIF
|
|
eSubStageRec = SSRP_CLEANUP
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
//STOP_PLAYBACK_RECORDED_VEHICLE(mvPoppyCar.mVehicle) //!!!!!!!!!!!!!
|
|
IF AUDIO_IS_SCRIPTED_MUSIC_PLAYING()
|
|
TRIGGER_MUSIC_EVENT("PAP3_STOP")
|
|
ENDIF
|
|
eSubStageRec = SSRP_CLEANUP
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
CASE SSRP_CLEANUP
|
|
bPoppyHasCrashed = TRUE
|
|
//SMOKE POPPYS CAR ENGINE
|
|
IF IS_ENTITY_ALIVE(mvPoppyCar.mVehicle)
|
|
BRING_VEHICLE_TO_HALT(mvPoppyCar.mVehicle, 10.0, -1)
|
|
SET_VEHICLE_ENGINE_HEALTH(mvPoppyCar.mVehicle,301.0)
|
|
eSubStage = SS_CLEANUP
|
|
ENDIF
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Makes the police react to the player threatening them
|
|
PROC MAKE_POLICE_ATTACK_PLAYER()
|
|
|
|
IF bPoliceAttacking = FALSE
|
|
|
|
INT i
|
|
|
|
IF IS_ENTITY_ALIVE(mvPoliceCars[0].mVehicle)
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(poppy_arrest_scene)
|
|
AND GET_SYNCHRONIZED_SCENE_PHASE(poppy_arrest_scene) > 0.92
|
|
IF IS_PED_UNINJURED(mpPoppyPed.mPed)
|
|
AND NOT IS_PED_IN_VEHICLE(mpPoppyPed.mPed,mvPoliceCars[0].mVehicle)
|
|
SET_PED_INTO_VEHICLE(mpPoppyPed.mPed,mvPoliceCars[0].mVehicle,VS_BACK_LEFT)
|
|
ENDIF
|
|
ENDIF
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(poppy_arrest_scene)
|
|
AND GET_SYNCHRONIZED_SCENE_PHASE(poppy_arrest_scene) > 0.975
|
|
IF IS_PED_UNINJURED(mpPolicePed[0].mPed)
|
|
AND NOT IS_PED_IN_VEHICLE(mpPolicePed[0].mPed,mvPoliceCars[0].mVehicle)
|
|
SET_PED_INTO_VEHICLE(mpPolicePed[0].mPed,mvPoliceCars[0].mVehicle,VS_DRIVER)
|
|
ENDIF
|
|
ENDIF
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(poppy_arrest_scene)
|
|
STOP_SYNCHRONIZED_ENTITY_ANIM(mvPoliceCars[0].mVehicle,INSTANT_BLEND_OUT,FALSE)
|
|
FORCE_ENTITY_AI_AND_ANIMATION_UPDATE(mvPoliceCars[0].mVehicle)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
KILL_FACE_TO_FACE_CONVERSATION_DO_NOT_FINISH_LAST_LINE()
|
|
ENDIF
|
|
|
|
FOR i = 0 TO NUM_OF_POLICE_PEDS - 1
|
|
IF IS_ENTITY_ALIVE(mpPolicePed[i].mPed)
|
|
IF NOT IS_PED_IN_ANY_VEHICLE(mpPolicePed[i].mPed)
|
|
TASK_COMBAT_PED(mpPolicePed[i].mPed,PLAYER_PED_ID())
|
|
//ACTIVATE_PHYSICS(mpPolicePed[i].mPed)
|
|
eCopState[i] = CS_ATTACK_PLAYER
|
|
ENDIF
|
|
ENDIF
|
|
ENDFOR
|
|
|
|
IF ePoppyState <> PS_POPPY_IN_COP_CAR
|
|
IF IS_PED_UNINJURED(mpPoppyPed.mPed)
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(poppy_arrest_scene)
|
|
fPhase = GET_SYNCHRONIZED_SCENE_PHASE(poppy_arrest_scene)
|
|
IF fPhase < 0.514839 //Poppy staggering/crawling about, retrigger synced anim with physics
|
|
TASK_SYNCHRONIZED_SCENE (mpPoppyPed.mPed, poppy_arrest_scene, "rcmpaparazzo_3", "poppy_arrest_popm", INSTANT_BLEND_IN, -1.5, SYNCED_SCENE_USE_PHYSICS)
|
|
SET_SYNCHRONIZED_SCENE_PHASE(poppy_arrest_scene,fPhase)
|
|
TASK_LOOK_AT_ENTITY(mpPoppyPed.mPed,PLAYER_PED_ID(),-1)
|
|
ENDIF
|
|
IF fPhase >= 0.514839 //Poppy not handcuffed yet so normal flee
|
|
AND fPhase < 0.667789
|
|
TASK_SMART_FLEE_PED(mpPoppyPed.mPed, PLAYER_PED_ID(), 200, -1)
|
|
ENDIF
|
|
IF fPhase >= 0.667789 //Poppy is hancuffed so play scynced anim as an upperbody/secondary anim task and flee
|
|
AND fPhase < 0.823092
|
|
TASK_PLAY_ANIM(mpPoppyPed.mPed, "rcmpaparazzo_3", "poppy_arrest_popm", NORMAL_BLEND_IN, -1.5, -1, AF_UPPERBODY | AF_SECONDARY, 0.615948, TRUE)
|
|
//SET_ANIM_RATE(mpPoppyPed.mPed,0.2)
|
|
TASK_LOOK_AT_ENTITY(mpPoppyPed.mPed,PLAYER_PED_ID(),-1)
|
|
TASK_FOLLOW_NAV_MESH_TO_COORD(mpPoppyPed.mPed,GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(PLAYER_PED_ID(),<<0,80,0>>),1.5,-1)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
SET_PLAYER_WANTED_LEVEL_NO_DROP(PLAYER_ID(),2)
|
|
|
|
IF IS_PED_UNINJURED(mpPolicePed[0].mPed)
|
|
IF IS_ENTITY_IN_RANGE_ENTITY(mpPolicePed[0].mPed,PLAYER_PED_ID(),100)
|
|
IF NOT IS_PED_IN_COMBAT(mpPolicePed[0].mPed,PLAYER_PED_ID())
|
|
CLEAR_PED_TASKS(mpPolicePed[0].mPed)
|
|
TASK_COMBAT_PED(mpPolicePed[0].mPed,PLAYER_PED_ID())
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_PED_UNINJURED(mpPolicePed[2].mPed)
|
|
IF IS_ENTITY_IN_RANGE_ENTITY(mpPolicePed[2].mPed,PLAYER_PED_ID(),100)
|
|
IF NOT IS_PED_IN_COMBAT(mpPolicePed[2].mPed,PLAYER_PED_ID())
|
|
CLEAR_PED_TASKS(mpPolicePed[2].mPed)
|
|
TASK_COMBAT_PED(mpPolicePed[2].mPed,PLAYER_PED_ID())
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_PED_UNINJURED(mpPolicePed[3].mPed)
|
|
IF IS_ENTITY_IN_RANGE_ENTITY(mpPolicePed[3].mPed,PLAYER_PED_ID(),100)
|
|
IF NOT IS_PED_IN_COMBAT(mpPolicePed[3].mPed,PLAYER_PED_ID())
|
|
CLEAR_PED_TASKS(mpPolicePed[3].mPed)
|
|
TASK_COMBAT_PED(mpPolicePed[3].mPed,PLAYER_PED_ID())
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
bPoliceAttacking = TRUE
|
|
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Handles all of POPPY'S behaviour states etc.
|
|
PROC Monitor_Poppy
|
|
|
|
SWITCH ePoppyState
|
|
|
|
CASE PS_WAIT_FOR_PLAYER
|
|
//WAITS HERE TO BEGIN DRIVIGN SECTION
|
|
BREAK
|
|
|
|
CASE PS_DRIVING
|
|
//STAYS IN HERE WHILE POPPY IS DURING CHASE
|
|
//IF NOT IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("PAP3_HELPPO")
|
|
IF IS_VEHICLE_OK(mvPoppyCar.mVehicle)
|
|
CONTROL_VEHICLE_CHASE_HINT_CAM_IN_VEHICLE(localChaseHintCamStruct, mvPoppyCar.mVehicle)
|
|
ENDIF
|
|
//ENDIF
|
|
|
|
IF missionStage = MS_TAKE_PHOTO
|
|
IF IS_PED_UNINJURED(mpPolicePed[0].mPed)
|
|
ADD_PED_FOR_DIALOGUE(sSpeach, 4, mpPolicePed[0].mPed, "Paparazzo3ACop1")
|
|
ENDIF
|
|
ELSE
|
|
IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(mpPoppyPed.mPed,PLAYER_PED_ID(),FALSE)
|
|
IF IS_VEHICLE_OK(mvPoppyCar.mVehicle)
|
|
IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(mvPoppyCar.mVehicle)
|
|
STOP_PLAYBACK_RECORDED_VEHICLE(mvPoppyCar.mVehicle)
|
|
ENDIF
|
|
ENDIF
|
|
CLEAR_ENTITY_LAST_DAMAGE_ENTITY(mpPoppyPed.mPed)
|
|
SET_FAIL_REASON(FAIL_POPPY_INJURED)
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE PS_LEAVE_VEHICLE
|
|
|
|
IF NOT IS_PED_SITTING_IN_ANY_VEHICLE(mpPoppyPed.mPed)
|
|
IF IS_PED_UNINJURED(mpPolicePed[0].mPed)
|
|
ADD_PED_FOR_DIALOGUE(sSpeach, 4, mpPolicePed[0].mPed, "Paparazzo3ACop1")
|
|
ENDIF
|
|
ADD_PED_FOR_DIALOGUE(sSpeach, 6, mpPoppyPed.mPed, "POPPY")
|
|
//IF CREATE_CONVERSATION(sSpeach, "PAP3AAU", "PAP3A_ARREST", CONV_PRIORITY_HIGH)
|
|
ePoppyState = PS_SURRENDER
|
|
//ENDIF
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
CASE PS_SURRENDER
|
|
|
|
IF IS_ENTITY_AT_COORD(mpPoppyPed.mPed,vPoppySurrenderPos,<<1.5,1.5,1.5>>)
|
|
IF IS_PED_UNINJURED(mpPolicePed[3].mPed)
|
|
ADD_PED_FOR_DIALOGUE(sSpeach, 5, mpPolicePed[3].mPed, "Paparazzo3ACop2")
|
|
ENDIF
|
|
//IF CREATE_CONVERSATION(sSpeach, "PAP3AAU", "PAP3A_COP3", CONV_PRIORITY_HIGH,DO_NOT_DISPLAY_SUBTITLES)
|
|
ePoppyState = PS_ARRESTED
|
|
//ENDIF
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
CASE PS_ARRESTED
|
|
|
|
IF eCopState[1] = CS_ARREST_POPPY //THIS IS CHANGED TO THIS WHEN POLICE GET CLOSE TO POPPY.
|
|
IF IS_PED_UNINJURED(mpPolicePed[0].mPed)
|
|
ADD_PED_FOR_DIALOGUE(sSpeach, 4, mpPolicePed[0].mPed, "Paparazzo3ACop1")
|
|
ENDIF
|
|
ADD_PED_FOR_DIALOGUE(sSpeach, 6, mpPoppyPed.mPed, "POPPY")
|
|
//IF CREATE_CONVERSATION(sSpeach, "PAP3AAU", "PAP3A_COP4", CONV_PRIORITY_HIGH,DO_NOT_DISPLAY_SUBTITLES)
|
|
/*
|
|
CLEAR_PED_TASKS(mpPoppyPed.mPed)
|
|
TASK_PLAY_ANIM(mpPoppyPed.mPed,"cop","armsup_loop",NORMAL_BLEND_IN,NORMAL_BLEND_OUT, 9000,AF_LOOPING | AF_UPPERBODY | AF_SECONDARY)
|
|
IF IS_VEHICLE_OK(mvPoliceCars[0].mVehicle)
|
|
TASK_ENTER_VEHICLE(mpPoppyPed.mPed,mvPoliceCars[0].mVehicle,-1,VS_BACK_RIGHT,PEDMOVE_WALK)
|
|
ePoppyState = PS_GET_IN_VEHICLE
|
|
ENDIF
|
|
*/
|
|
//IF NOT IS_ENTITY_PLAYING_ANIM(mpPoppyPed.mPed,"rcmpaparazzo_3","poppy_arrest_popm")
|
|
//TASK_PLAY_ANIM(mpPoppyPed.mPed,"rcmpaparazzo_3","poppy_arrest_popm")
|
|
//ENDIF
|
|
//ENDIF
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
CASE PS_GET_IN_VEHICLE
|
|
BREAK
|
|
|
|
CASE PS_POPPY_IN_COP_CAR
|
|
BREAK
|
|
|
|
CASE PS_FLEE_AREA
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
ENDPROC
|
|
|
|
/// PURPOSE: Handle the crash sequence
|
|
PROC HANDLE_CRASH_SEQUENCE()
|
|
|
|
//TEXT_LABEL_23 label
|
|
|
|
IF bCrashCutDone = TRUE
|
|
IF IS_ENTITY_ALIVE(mvPoliceCars[0].mVehicle)
|
|
AND IS_ENTITY_ALIVE(mvPoppyCar.mVehicle)
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(poppy_arrest_scene)
|
|
IF iSeqCarDoors = 0
|
|
CLEAR_PRINTS()
|
|
CLEAR_HELP()
|
|
IF IS_PED_UNINJURED(mpPoppyPed.mPed)
|
|
IF NOT IS_PED_SITTING_IN_ANY_VEHICLE(mpPoppyPed.mPed)
|
|
IF IS_PED_UNINJURED(mpPolicePed[0].mPed)
|
|
ADD_PED_FOR_DIALOGUE(sSpeach, 4, mpPolicePed[0].mPed, "Paparazzo3ACop1")
|
|
ENDIF
|
|
ADD_PED_FOR_DIALOGUE(sSpeach, 6, mpPoppyPed.mPed, "POPPY")
|
|
IF CREATE_CONVERSATION(sSpeach, "PAP3AAU", "PAP3A_ARREST", CONV_PRIORITY_MEDIUM)
|
|
ePoppyState = PS_SURRENDER
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
IF IS_ENTITY_ALIVE(vehPoliceChopper)
|
|
SET_VEHICLE_SEARCHLIGHT(vehPoliceChopper,TRUE,TRUE)
|
|
TASK_HELI_MISSION(pedChopperPilot,vehPoliceChopper,NULL,mpPoppyPed.mPed,<<0,50,60>>,MISSION_POLICE_BEHAVIOUR,0.1,60.0,-1,60,55)
|
|
ENDIF
|
|
WHILE GET_GAME_TIMER() <= iTimerSyncSceneStarted + 8500
|
|
AND NOT IS_CUTSCENE_SKIP_BUTTON_JUST_PRESSED_WITH_DELAY(1500)
|
|
//AND NOT ARE_STRINGS_EQUAL(label,"PAP3A_ARREST_1")
|
|
IF GET_GAME_TIMER() <= iTimerSyncSceneStarted + 500
|
|
IF bDelayFade
|
|
IF IS_REPLAY_IN_PROGRESS()
|
|
IF IS_SCREEN_FADED_OUT()
|
|
SAFE_FADE_SCREEN_IN_FROM_BLACK(DEFAULT_FADE_TIME,FALSE)
|
|
CPRINTLN(DEBUG_MISSION, "PAP3A**** DELAYED FADE CS ****")
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
IF NOT bDone1stPersonFlash
|
|
IF IS_PLAYER_IN_FIRST_PERSON_CAMERA()
|
|
IF GET_GAME_TIMER() >= iTimerSyncSceneStarted + 8200
|
|
ANIMPOSTFX_PLAY("CamPushInNeutral", 0, FALSE)
|
|
PLAY_SOUND_FRONTEND(-1, "1st_Person_Transition", "PLAYER_SWITCH_CUSTOM_SOUNDSET")
|
|
bDone1stPersonFlash = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
DISABLE_CELLPHONE_THIS_FRAME_ONLY()
|
|
IF IS_ENTITY_ALIVE(mvPoliceCars[0].mVehicle)
|
|
AND IS_ENTITY_ALIVE(mvPoppyCar.mVehicle)
|
|
FREEZE_ENTITY_POSITION(mvPoppyCar.mVehicle,FALSE)
|
|
IF GET_VEHICLE_DOOR_ANGLE_RATIO(mvPoppyCar.mVehicle,SC_DOOR_FRONT_LEFT) < 0.8
|
|
fPoppyCarFrontDoorOpenRatio = fPoppyCarFrontDoorOpenRatio + 0.03
|
|
SET_VEHICLE_DOOR_CONTROL(mvPoppyCar.mVehicle,SC_DOOR_FRONT_LEFT,DT_DOOR_INTACT,fPoppyCarFrontDoorOpenRatio)
|
|
ENDIF
|
|
/*
|
|
IF GET_VEHICLE_DOOR_ANGLE_RATIO(mvPoliceCars[0].mVehicle,SC_DOOR_FRONT_LEFT) < 0.7
|
|
fCopCarFrontDoorOpenRatio = fCopCarFrontDoorOpenRatio + 0.14
|
|
SET_VEHICLE_DOOR_CONTROL(mvPoliceCars[0].mVehicle,SC_DOOR_FRONT_LEFT,DT_DOOR_INTACT,fCopCarFrontDoorOpenRatio)
|
|
//SET_VEHICLE_ON_GROUND_PROPERLY(mvPoliceCars[0].mVehicle)
|
|
ENDIF
|
|
*/
|
|
ENDIF
|
|
#IF IS_DEBUG_BUILD // STAGE SKIPPING
|
|
IF MissionStage <> MS_MISSION_FAILED
|
|
if bFinishedSkipping = TRUE
|
|
DEBUG_Check_Debug_Keys() // not skipping stages, check for debug keys
|
|
ELSE
|
|
JumpToStage(eTargetStage) // still skipping stages
|
|
ENDIF
|
|
ENDIF
|
|
#ENDIF
|
|
//label = GET_CURRENTLY_PLAYING_STANDARD_CONVERSATION_LABEL()
|
|
IF IS_PED_UNINJURED(pedChopperPilot)
|
|
AND IS_ENTITY_ALIVE(mpPoppyPed.mPed)
|
|
AND IS_ENTITY_ALIVE(vehPoliceChopper)
|
|
IF CONTROL_MOUNTED_WEAPON(pedChopperPilot)
|
|
SET_MOUNTED_WEAPON_TARGET(pedChopperPilot,mpPoppyPed.mPed,NULL,<<0,0,0>>)
|
|
ENDIF
|
|
ENDIF
|
|
WAIT(0)
|
|
ENDWHILE
|
|
IF IS_SCREEN_FADED_OUT()
|
|
SAFE_FADE_SCREEN_IN_FROM_BLACK(DEFAULT_FADE_TIME,FALSE)
|
|
CPRINTLN(DEBUG_MISSION, "PAP3A**** FADING IN AFTER CS, THIS IS PROBABLY A BAD THING ****")
|
|
ENDIF
|
|
RENDER_SCRIPT_CAMS(FALSE, FALSE)
|
|
DISPLAY_HUD(TRUE)
|
|
DISPLAY_RADAR(TRUE)
|
|
CLEAR_PED_TASKS(PLAYER_PED_ID())
|
|
TASK_LOOK_AT_ENTITY(PLAYER_PED_ID(),mpPoppyPed.mPed,-1)
|
|
SET_PLAYER_CONTROL(PLAYER_ID(),TRUE,SPC_REENABLE_CONTROL_ON_DEATH)
|
|
SET_GAMEPLAY_CAM_RELATIVE_HEADING()
|
|
SET_GAMEPLAY_CAM_RELATIVE_PITCH()
|
|
IF IS_ENTITY_ALIVE(vehPoliceChopper)
|
|
FREEZE_ENTITY_POSITION(vehPoliceChopper,FALSE)
|
|
ENDIF
|
|
IF bPhotoPoppyObj = FALSE
|
|
IF NOT IS_SUBTITLE_PREFERENCE_SWITCHED_ON()
|
|
PRINT_NOW("PAP3_POP", DEFAULT_GOD_TEXT_TIME, 1) //"Take a photo of poppy"
|
|
bPhotoPoppyObj = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
IF NOT DOES_BLIP_EXIST(blipPoppy)
|
|
blipPoppy = CREATE_PED_BLIP(mpPoppyPed.mPed,TRUE,TRUE)
|
|
ENDIF
|
|
iSeqCarDoors = 4//1
|
|
ELIF iSeqCarDoors = 1
|
|
IF GET_VEHICLE_DOOR_ANGLE_RATIO(mvPoppyCar.mVehicle,SC_DOOR_FRONT_LEFT) < 0.9
|
|
fPoppyCarFrontDoorOpenRatio = fPoppyCarFrontDoorOpenRatio + 0.04
|
|
SET_VEHICLE_DOOR_CONTROL(mvPoppyCar.mVehicle,SC_DOOR_FRONT_LEFT,DT_DOOR_INTACT,fPoppyCarFrontDoorOpenRatio)
|
|
ENDIF
|
|
IF GET_VEHICLE_DOOR_ANGLE_RATIO(mvPoliceCars[0].mVehicle,SC_DOOR_FRONT_LEFT) < 0.8
|
|
fCopCarFrontDoorOpenRatio = fCopCarFrontDoorOpenRatio + 0.14
|
|
SET_VEHICLE_DOOR_CONTROL(mvPoliceCars[0].mVehicle,SC_DOOR_FRONT_LEFT,DT_DOOR_INTACT,fCopCarFrontDoorOpenRatio)
|
|
ENDIF
|
|
IF GET_SYNCHRONIZED_SCENE_PHASE(poppy_arrest_scene) >= 0.810415
|
|
IF GET_VEHICLE_DOOR_ANGLE_RATIO(mvPoliceCars[0].mVehicle,SC_DOOR_REAR_LEFT) < 0.8
|
|
AND GET_SYNCHRONIZED_SCENE_PHASE(poppy_arrest_scene) < 0.823092
|
|
fCopCarRearDoorOpenRatio = fCopCarRearDoorOpenRatio + 0.025
|
|
SET_VEHICLE_DOOR_CONTROL(mvPoliceCars[0].mVehicle,SC_DOOR_REAR_LEFT,DT_DOOR_INTACT,fPoppyCarFrontDoorOpenRatio)
|
|
ELSE
|
|
SET_VEHICLE_DOOR_OPEN(mvPoliceCars[0].mVehicle,SC_DOOR_REAR_LEFT)
|
|
iSeqCarDoors = 2
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ELIF iSeqCarDoors = 2
|
|
IF GET_SYNCHRONIZED_SCENE_PHASE(poppy_arrest_scene) >= 0.918249
|
|
IF GET_VEHICLE_DOOR_ANGLE_RATIO(mvPoliceCars[0].mVehicle,SC_DOOR_REAR_LEFT) > 0.1
|
|
AND GET_SYNCHRONIZED_SCENE_PHASE(poppy_arrest_scene) < 0.930077
|
|
fCopCarRearDoorOpenRatio = fCopCarRearDoorOpenRatio - 0.05
|
|
SET_VEHICLE_DOOR_CONTROL(mvPoliceCars[0].mVehicle,SC_DOOR_REAR_LEFT,DT_DOOR_INTACT,fCopCarRearDoorOpenRatio)
|
|
ELSE
|
|
SET_VEHICLE_DOOR_SHUT(mvPoliceCars[0].mVehicle,SC_DOOR_REAR_LEFT)
|
|
IF IS_PED_UNINJURED(mpPoppyPed.mPed)
|
|
IF NOT IS_PED_IN_VEHICLE(mpPoppyPed.mPed,mvPoliceCars[0].mVehicle)
|
|
SET_PED_INTO_VEHICLE(mpPoppyPed.mPed,mvPoliceCars[0].mVehicle,VS_BACK_LEFT)
|
|
ENDIF
|
|
ENDIF
|
|
iSeqCarDoors = 3
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ELIF iSeqCarDoors = 3
|
|
IF GET_SYNCHRONIZED_SCENE_PHASE(poppy_arrest_scene) >= 0.970048
|
|
IF GET_VEHICLE_DOOR_ANGLE_RATIO(mvPoliceCars[0].mVehicle,SC_DOOR_FRONT_LEFT) > 0.1
|
|
AND GET_SYNCHRONIZED_SCENE_PHASE(poppy_arrest_scene) < 0.991134
|
|
fCopCarFrontDoorOpenRatio = fCopCarFrontDoorOpenRatio - 0.056
|
|
SET_VEHICLE_DOOR_CONTROL(mvPoliceCars[0].mVehicle,SC_DOOR_FRONT_LEFT,DT_DOOR_INTACT,fCopCarFrontDoorOpenRatio)
|
|
ELSE
|
|
SET_VEHICLE_DOOR_SHUT(mvPoliceCars[0].mVehicle,SC_DOOR_FRONT_LEFT)
|
|
IF IS_PED_UNINJURED(mpPolicePed[0].mPed)
|
|
IF NOT IS_PED_IN_VEHICLE(mpPolicePed[0].mPed,mvPoliceCars[0].mVehicle)
|
|
SET_PED_INTO_VEHICLE(mpPolicePed[0].mPed,mvPoliceCars[0].mVehicle,VS_DRIVER)
|
|
ENDIF
|
|
ENDIF
|
|
iSeqCarDoors = 4
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Handles the police behaviours and also kicks off the crash sequence
|
|
/// PARAMS:
|
|
/// iPedNum - The number of the police ped we are checking
|
|
PROC MONITOR_POLICE_PEDS(INT iPedNum)
|
|
|
|
VECTOR vPoliceCarOffset = << -0.428284, 0.205746, -0.156812 >>
|
|
|
|
SWITCH eCopState[iPedNum]
|
|
|
|
CASE CS_DRIVING
|
|
IF missionStage = MS_TAKE_PHOTO OR missionStage = MS_GO_TO_CRASH
|
|
IF IS_PED_UNINJURED(mpPolicePed[0].mPed)
|
|
IF iPedNum = 0
|
|
IF missionStage = MS_TAKE_PHOTO
|
|
AND RC_IS_CUTSCENE_OK_TO_START(FALSE)
|
|
IF IS_ENTITY_ALIVE(mvPoliceCars[0].mVehicle)
|
|
AND IS_ENTITY_ALIVE(mvPoppyCar.mVehicle)
|
|
AND IS_PED_UNINJURED(mpPoppyPed.mPed)
|
|
AND bCrashCutDone = FALSE
|
|
|
|
CLEAR_PRINTS()
|
|
|
|
//IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
// SET_VEHICLE_ENGINE_ON(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()),FALSE,FALSE)
|
|
//ENDIF
|
|
|
|
IF IS_AUDIO_SCENE_ACTIVE("PAPARAZZO_3A_POLICE_CHASE")
|
|
STOP_AUDIO_SCENE("PAPARAZZO_3A_POLICE_CHASE")
|
|
ENDIF
|
|
|
|
IF NOT IS_AUDIO_SCENE_ACTIVE("PAPARAZZO_3A_PHOTO_SCENE")
|
|
START_AUDIO_SCENE("PAPARAZZO_3A_PHOTO_SCENE")
|
|
ENDIF
|
|
|
|
IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(mvPoliceCars[0].mVehicle)
|
|
STOP_PLAYBACK_RECORDED_VEHICLE(mvPoliceCars[0].mVehicle)
|
|
ENDIF
|
|
|
|
IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(mvPoppyCar.mVehicle)
|
|
STOP_PLAYBACK_RECORDED_VEHICLE(mvPoppyCar.mVehicle)
|
|
ENDIF
|
|
|
|
SAFE_DELETE_PED(mpPolicePed[0].mPed)
|
|
SAFE_DELETE_PED(mpPolicePed[1].mPed)
|
|
//SAFE_DELETE_PED(mpPolicePed[3].mPed)
|
|
|
|
SAFE_DELETE_VEHICLE(mvPoliceCars[0].mVehicle)
|
|
//SAFE_DELETE_VEHICLE(mvPoliceCars[2].mVehicle)
|
|
|
|
//<< 349.478, -401.681, 44.7238 >> cop pos
|
|
//mvPoliceCars[0].mVehicle = CREATE_VEHICLE(mvPoliceCars[0].mModel,<< 349.6943, -401.2252, 44.3462 >>,100.5072) //previous
|
|
|
|
vPoliceCarOffset.x *= -1.0
|
|
vPoliceCarOffset.y *= -1.0
|
|
vPoliceCarOffset.z *= -1.0
|
|
|
|
vPoliceCarPos = GET_OFFSET_FROM_COORD_AND_HEADING_IN_WORLD_COORDS(<< 349.478, -401.681, 44.7238 >>,106.141273,<<vPoliceCarOffset.x,vPoliceCarOffset.y,vPoliceCarOffset.z>>)
|
|
|
|
//mvPoliceCars[0].mVehicle = CREATE_VEHICLE(mvPoliceCars[0].mModel,GET_OFFSET_FROM_COORD_AND_HEADING_IN_WORLD_COORDS(<< 349.478, -401.681, 44.7238 >>,106.141273,<<vPoliceCarOffset.x,vPoliceCarOffset.y,vPoliceCarOffset.z>>),106.141273)
|
|
mvPoliceCars[0].mVehicle = CREATE_VEHICLE(mvPoliceCars[0].mModel,<<vPoliceCarPos.x,vPoliceCarPos.y,44.3462>>,106.141273)
|
|
|
|
//mvPoliceCars[2].mVehicle = CREATE_VEHICLE(mvPoliceCars[2].mModel,<<328.869232,-399.050049,44.815384>>,-57.309715)
|
|
|
|
mpPolicePed[0].mPed = CREATE_PED_INSIDE_VEHICLE(mvPoliceCars[0].mVehicle,PEDTYPE_COP,S_M_Y_Cop_01,VS_DRIVER)
|
|
mpPolicePed[1].mPed = CREATE_PED_INSIDE_VEHICLE(mvPoliceCars[0].mVehicle,PEDTYPE_COP,S_M_Y_Cop_01,VS_FRONT_RIGHT)
|
|
//mpPolicePed[3].mPed = CREATE_PED_INSIDE_VEHICLE(mvPoliceCars[2].mVehicle,PEDTYPE_COP,S_M_Y_Cop_01,VS_DRIVER)
|
|
|
|
GIVE_WEAPON_TO_PED(mpPolicePed[0].mPed,WEAPONTYPE_PISTOL,-1,FALSE,TRUE)
|
|
//GIVE_WEAPON_COMPONENT_TO_PED(mpPolicePed[0].mPed,WEAPONTYPE_PISTOL,WEAPONCOMPONENT_AT_PI_FLSH)
|
|
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(mpPolicePed[0].mPed,TRUE)
|
|
SET_PED_RELATIONSHIP_GROUP_HASH(mpPolicePed[0].mPed,relCopGroup)
|
|
|
|
GIVE_WEAPON_TO_PED(mpPolicePed[1].mPed,WEAPONTYPE_PISTOL,-1,FALSE,TRUE)
|
|
//SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(mpPolicePed[1].mPed,TRUE)
|
|
SET_PED_RELATIONSHIP_GROUP_HASH(mpPolicePed[1].mPed,relCopGroup)
|
|
//TASK_SET_DECISION_MAKER(mpPolicePed[1].mPed,DECISION_MAKER_EMPTY)
|
|
SET_PED_CONFIG_FLAG(mpPolicePed[1].mPed,PCF_PreventAutoShuffleToDriversSeat,TRUE)
|
|
TASK_LOOK_AT_ENTITY(mpPolicePed[1].mPed,mpPoppyPed.mPed,-1)
|
|
|
|
//GIVE_WEAPON_TO_PED(mpPolicePed[3].mPed,WEAPONTYPE_PISTOL,-1,FALSE,TRUE)
|
|
//SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(mpPolicePed[3].mPed,TRUE)
|
|
//SET_PED_RELATIONSHIP_GROUP_HASH(mpPolicePed[3].mPed,relCopGroup)
|
|
|
|
//SET_VEHICLE_DOORS_LOCKED(mvPoliceCars[0].mVehicle,VEHICLELOCK_LOCKOUT_PLAYER_ONLY)
|
|
SET_VEHICLE_ON_GROUND_PROPERLY(mvPoliceCars[0].mVehicle)
|
|
//SET_VEHICLE_DOORS_LOCKED(mvPoliceCars[2].mVehicle,VEHICLELOCK_LOCKOUT_PLAYER_ONLY)
|
|
//SET_VEHICLE_ON_GROUND_PROPERLY(mvPoliceCars[2].mVehicle)
|
|
SET_VEHICLE_SIREN(mvPoliceCars[0].mVehicle,TRUE)
|
|
//SET_VEHICLE_SIREN(mvPoliceCars[2].mVehicle,TRUE)
|
|
|
|
IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
OPEN_SEQUENCE_TASK(seqPlayerExitCarFaceCrash)
|
|
TASK_LOOK_AT_ENTITY(NULL,mpPoppyPed.mPed,-1)
|
|
CLOSE_SEQUENCE_TASK(seqPlayerExitCarFaceCrash)
|
|
ELSE
|
|
OPEN_SEQUENCE_TASK(seqPlayerExitCarFaceCrash)
|
|
TASK_LOOK_AT_ENTITY(NULL,mpPoppyPed.mPed,-1)
|
|
TASK_TURN_PED_TO_FACE_ENTITY(NULL,mpPoppyPed.mPed,-1)
|
|
CLOSE_SEQUENCE_TASK(seqPlayerExitCarFaceCrash)
|
|
ENDIF
|
|
|
|
TASK_PERFORM_SEQUENCE(PLAYER_PED_ID(),seqPlayerExitCarFaceCrash)
|
|
CLEAR_SEQUENCE_TASK(seqPlayerExitCarFaceCrash)
|
|
|
|
SET_ENTITY_COORDS(mvPoppyCar.mVehicle,<<341.220337,-410.229462,44.635387>>) //<< 341.2146, -410.2309, 44.1722 >>
|
|
SET_ENTITY_HEADING(mvPoppyCar.mVehicle,109.615982) //111.4817
|
|
SET_VEHICLE_ON_GROUND_PROPERLY(mvPoppyCar.mVehicle)
|
|
|
|
IF NOT IS_ENTITY_DEAD(mvPoliceCars[2].mVehicle)
|
|
SET_ENTITY_COORDS(mvPoliceCars[2].mVehicle,<<328.869232,-399.050049,44.815384>>)
|
|
SET_ENTITY_HEADING(mvPoliceCars[2].mVehicle,-57.309715)
|
|
SET_VEHICLE_ON_GROUND_PROPERLY(mvPoliceCars[2].mVehicle)
|
|
SET_VEHICLE_SIREN(mvPoliceCars[2].mVehicle,TRUE)
|
|
ENDIF
|
|
|
|
IF IS_PED_UNINJURED(mpPolicePed[3].mPed)
|
|
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(mpPolicePed[3].mPed,TRUE)
|
|
CLEAR_PED_TASKS(mpPolicePed[3].mPed)
|
|
IF NOT IS_PED_IN_VEHICLE(mpPolicePed[3].mPed,mvPoliceCars[2].mVehicle)
|
|
SET_PED_INTO_VEHICLE(mpPolicePed[3].mPed,mvPoliceCars[2].mVehicle)
|
|
ENDIF
|
|
TASK_LOOK_AT_ENTITY(mpPolicePed[3].mPed,mpPoppyPed.mPed,-1)
|
|
ENDIF
|
|
|
|
//FREEZE_ENTITY_POSITION(mvPoppyCar.mVehicle,TRUE)
|
|
|
|
FORCE_ENTITY_AI_AND_ANIMATION_UPDATE(mvPoppyCar.mVehicle)
|
|
|
|
CLEAR_PED_TASKS(mpPoppyPed.mPed)
|
|
vPoppy = GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(mpPoppyPed.mPed,<<0,0,0>>)
|
|
SET_ENTITY_COORDS(mpPoppyPed.mPed,<<vPoppy.x,vPoppy.y,vPoppy.z - 1.0>>)
|
|
|
|
poppy_arrest_scene = CREATE_SYNCHRONIZED_SCENE(<< 339.0846, -411.1358, 44.0895 >>, <<0,0,0>>)
|
|
|
|
SET_SYNCHRONIZED_SCENE_HOLD_LAST_FRAME(poppy_arrest_scene,FALSE)
|
|
|
|
ePoppyState = PS_LEAVE_VEHICLE
|
|
|
|
CLEAR_PED_TASKS(mpPolicePed[0].mPed)
|
|
vCop = GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(mpPolicePed[0].mPed,<<0,0,0>>)
|
|
SET_ENTITY_COORDS(mpPolicePed[0].mPed,<<vCop.x,vCop.y,vCop.z - 1.0>>)
|
|
|
|
eCopState[0] = CS_LEAVE_VEHICLE
|
|
/*
|
|
camPoppy = CREATE_CAM("DEFAULT_SCRIPTED_CAMERA",TRUE)
|
|
SET_CAM_COORD(camPoppy,<< 337.9194, -413.7527, 45.2942 >>)
|
|
SET_CAM_ROT(camPoppy,<< -9.1110, 0.0930, -40.2254 >>)
|
|
SET_CAM_FOV(camPoppy,49.8293)
|
|
*/
|
|
camPoppy = CREATE_CAM("DEFAULT_SCRIPTED_CAMERA",TRUE)
|
|
SET_CAM_COORD(camPoppy,<< 338.4, -413.7, 45.1 >>)
|
|
SET_CAM_ROT(camPoppy,<< -0.4, 0.2, -43.5 >>)
|
|
SET_CAM_FOV(camPoppy,49.8293)
|
|
|
|
camPoppy2 = CREATE_CAM("DEFAULT_SCRIPTED_CAMERA",TRUE)
|
|
SET_CAM_COORD(camPoppy2,<< 337.8593, -413.8199, 46.2603 >>)
|
|
SET_CAM_ROT(camPoppy2,<< -19.1264, 0.0930, -40.2055 >>)
|
|
SET_CAM_FOV(camPoppy2,50.8293)
|
|
|
|
SET_CAM_ACTIVE_WITH_INTERP(camPoppy2,camPoppy,10000)
|
|
RENDER_SCRIPT_CAMS(TRUE, FALSE)
|
|
DISPLAY_HUD(FALSE)
|
|
DISPLAY_RADAR(FALSE)
|
|
SET_PLAYER_CONTROL(PLAYER_ID(),FALSE,SPC_REENABLE_CONTROL_ON_DEATH)
|
|
|
|
TASK_SYNCHRONIZED_SCENE (mpPoppyPed.mPed, poppy_arrest_scene, "rcmpaparazzo_3", "poppy_arrest_popm", INSTANT_BLEND_IN, -1.5)
|
|
TASK_SYNCHRONIZED_SCENE (mpPolicePed[0].mPed, poppy_arrest_scene, "rcmpaparazzo_3", "poppy_arrest_cop", INSTANT_BLEND_IN, -1.5)
|
|
PLAY_SYNCHRONIZED_ENTITY_ANIM(mvPoliceCars[0].mVehicle, poppy_arrest_scene, "poppy_arrest_car", "rcmpaparazzo_3", INSTANT_BLEND_IN, -1)
|
|
|
|
SET_CURRENT_PED_WEAPON(mpPolicePed[0].mPed,WEAPONTYPE_PISTOL,TRUE)
|
|
|
|
IF DOES_CAM_EXIST(camPoppy2)
|
|
SHAKE_CAM(camPoppy2,"HAND_SHAKE",1.0)
|
|
ENDIF
|
|
IF DOES_CAM_EXIST(camPoppy)
|
|
SHAKE_CAM(camPoppy,"HAND_SHAKE",1.0)
|
|
ENDIF
|
|
|
|
iTimerSyncSceneStarted = GET_GAME_TIMER()
|
|
|
|
fCopCarFrontDoorOpenRatio = 0
|
|
fCopCarRearDoorOpenRatio = 0
|
|
fPoppyCarFrontDoorOpenRatio = 0
|
|
|
|
iSeqCarDoors = 0
|
|
|
|
//turn off roads at crash
|
|
SET_ROADS_IN_AREA(<< 318.9400, -411.6963, 38.0267 >>,<< 421.5246, -363.0107, 52.0853 >>, FALSE)
|
|
|
|
bCrashCutDone = TRUE
|
|
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE CS_LEAVE_VEHICLE
|
|
IF NOT HAS_PLAYER_THREATENED_PED(mpPolicePed[iPedNum].mPed)
|
|
IF iPedNum <> 0
|
|
IF NOT IS_PED_IN_ANY_VEHICLE(mpPolicePed[iPedNum].mPed)
|
|
IF IS_PED_UNINJURED(mpPolicePed[iPedNum].mPed)
|
|
TASK_AIM_GUN_AT_ENTITY(mpPolicePed[iPedNum].mPed,mpPoppyPed.mPed,-1,FALSE)
|
|
eCopState[iPedNum] = CS_AIM_AT_POPPY
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
IF iSeqCarDoors = 4
|
|
//IF GET_GAME_TIMER() > iTimerSyncSceneStarted + 55000
|
|
IF NOT IS_SYNCHRONIZED_SCENE_RUNNING(poppy_arrest_scene)
|
|
OR GET_SYNCHRONIZED_SCENE_PHASE(poppy_arrest_scene) = 1
|
|
IF IS_PED_UNINJURED(mpPolicePed[0].mPed)
|
|
AND IS_PED_UNINJURED(mpPoppyPed.mPed)
|
|
AND IS_VEHICLE_OK(mvPoliceCars[0].mVehicle)
|
|
IF NOT IS_PED_IN_VEHICLE(mpPolicePed[0].mPed,mvPoliceCars[0].mVehicle)
|
|
FORCE_PED_AI_AND_ANIMATION_UPDATE(mpPolicePed[0].mPed)
|
|
SET_PED_INTO_VEHICLE(mpPolicePed[0].mPed,mvPoliceCars[0].mVehicle,VS_DRIVER)
|
|
ENDIF
|
|
IF NOT IS_PED_IN_VEHICLE(mpPoppyPed.mPed,mvPoliceCars[0].mVehicle)
|
|
SET_PED_INTO_VEHICLE(mpPoppyPed.mPed,mvPoliceCars[0].mVehicle,VS_BACK_LEFT)
|
|
ENDIF
|
|
iSeqCarDoors = 5
|
|
eCopState[iPedNum] = CS_ENTER_COP_CAR
|
|
ePoppyState = PS_POPPY_IN_COP_CAR
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE CS_AIM_AT_POPPY
|
|
IF NOT HAS_PLAYER_THREATENED_PED(mpPolicePed[iPedNum].mPed)
|
|
IF ePoppyState = PS_SURRENDER
|
|
IF iPedNum = 0
|
|
//eCopState[iPedNum] = CS_MOVE_TO_POPPY
|
|
ELIF iPedNum = 1
|
|
IF IS_PED_UNINJURED(mpPolicePed[iPedNum].mPed)
|
|
CLEAR_PED_TASKS(mpPolicePed[iPedNum].mPed)
|
|
OPEN_SEQUENCE_TASK(seqAvoidCarDoor)
|
|
TASK_GO_TO_COORD_WHILE_AIMING_AT_ENTITY(NULL, << 351.0502, -394.4243, 44.2688 >>, mpPoppyPed.mPed, 1.6, FALSE,2.0,0.0)
|
|
TASK_GO_TO_ENTITY_WHILE_AIMING_AT_ENTITY(NULL, mpPoppyPed.mPed, mpPoppyPed.mPed, 1.2, FALSE,0.0,4.0)
|
|
CLOSE_SEQUENCE_TASK(seqAvoidCarDoor)
|
|
TASK_PERFORM_SEQUENCE(mpPolicePed[iPedNum].mPed,seqAvoidCarDoor)
|
|
eCopState[iPedNum] = CS_MOVE_TO_POPPY
|
|
ENDIF
|
|
ELIF iPedNum = 3
|
|
IF IS_PED_UNINJURED(mpPolicePed[iPedNum].mPed)
|
|
CLEAR_PED_TASKS(mpPolicePed[iPedNum].mPed)
|
|
TASK_GO_TO_ENTITY_WHILE_AIMING_AT_ENTITY(mpPolicePed[iPedNum].mPed, mpPoppyPed.mPed, mpPoppyPed.mPed, 1.5, FALSE,0.0,6.0)
|
|
eCopState[iPedNum] = CS_MOVE_TO_POPPY
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
|
|
CASE CS_MOVE_TO_POPPY
|
|
|
|
IF NOT HAS_PLAYER_THREATENED_PED(mpPolicePed[iPedNum].mPed)
|
|
IF iPedNum = 0
|
|
//eCopState[iPedNum] = CS_MOVE_TO_POPPY
|
|
ELIF iPedNum = 1
|
|
IF IS_ENTITY_AT_ENTITY(mpPolicePed[iPedNum].mPed,mpPoppyPed.mPed,<<3.0,3.0,3.0>>)
|
|
IF IS_PED_UNINJURED(mpPolicePed[iPedNum].mPed)
|
|
CLEAR_PED_TASKS(mpPolicePed[iPedNum].mPed)
|
|
//TASK_GO_TO_ENTITY_WHILE_AIMING_AT_ENTITY(mpPolicePed[iPedNum].mPed, mpPoppyPed.mPed, mpPoppyPed.mPed, 2.0, FALSE,0.5,0.0)
|
|
TASK_GO_TO_COORD_WHILE_AIMING_AT_ENTITY(mpPolicePed[iPedNum].mPed, << 346.3328, -395.9672, 44.2922 >>, mpPoppyPed.mPed, 1.0, FALSE,0.0,0.0)
|
|
eCopState[iPedNum] = CS_ARREST_POPPY
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ELIF iPedNum = 3
|
|
IF IS_ENTITY_AT_ENTITY(mpPolicePed[iPedNum].mPed,mpPoppyPed.mPed,<<10.0,10.0,10.0>>)
|
|
IF IS_PED_UNINJURED(mpPolicePed[iPedNum].mPed)
|
|
CLEAR_PED_TASKS(mpPolicePed[iPedNum].mPed)
|
|
TASK_AIM_GUN_AT_ENTITY(mpPolicePed[iPedNum].mPed,mpPoppyPed.mPed,-1)
|
|
eCopState[iPedNum] = CS_ARREST_POPPY
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
IF iSeqCarDoors = 4
|
|
//IF GET_GAME_TIMER() > iTimerSyncSceneStarted + 55000
|
|
IF NOT IS_SYNCHRONIZED_SCENE_RUNNING(poppy_arrest_scene)
|
|
OR GET_SYNCHRONIZED_SCENE_PHASE(poppy_arrest_scene) = 1
|
|
IF IS_PED_UNINJURED(mpPolicePed[0].mPed)
|
|
AND IS_PED_UNINJURED(mpPoppyPed.mPed)
|
|
AND IS_VEHICLE_OK(mvPoliceCars[0].mVehicle)
|
|
IF NOT IS_PED_IN_VEHICLE(mpPolicePed[0].mPed,mvPoliceCars[0].mVehicle)
|
|
FORCE_PED_AI_AND_ANIMATION_UPDATE(mpPolicePed[0].mPed)
|
|
SET_PED_INTO_VEHICLE(mpPolicePed[0].mPed,mvPoliceCars[0].mVehicle,VS_DRIVER)
|
|
ENDIF
|
|
IF NOT IS_PED_IN_VEHICLE(mpPoppyPed.mPed,mvPoliceCars[0].mVehicle)
|
|
SET_PED_INTO_VEHICLE(mpPoppyPed.mPed,mvPoliceCars[0].mVehicle,VS_BACK_LEFT)
|
|
ENDIF
|
|
iSeqCarDoors = 5
|
|
eCopState[iPedNum] = CS_ENTER_COP_CAR
|
|
ePoppyState = PS_POPPY_IN_COP_CAR
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
|
|
CASE CS_ARREST_POPPY
|
|
IF NOT HAS_PLAYER_THREATENED_PED(mpPolicePed[iPedNum].mPed)
|
|
IF ePoppyState = PS_POPPY_IN_COP_CAR
|
|
IF iPedNum = 0
|
|
//STAY IN THE COP CAR
|
|
ELIF iPedNum = 1
|
|
IF IS_PED_UNINJURED(mpPolicePed[iPedNum].mPed)
|
|
CLEAR_PED_TASKS(mpPolicePed[iPedNum].mPed)
|
|
IF IS_VEHICLE_OK(mvPoliceCars[0].mVehicle)
|
|
TASK_ENTER_VEHICLE(mpPolicePed[iPedNum].mPed,mvPoliceCars[0].mVehicle,-1,VS_FRONT_RIGHT)
|
|
eCopState[iPedNum] = CS_ENTER_COP_CAR
|
|
ENDIF
|
|
ENDIF
|
|
ELIF iPedNum = 3
|
|
IF IS_PED_UNINJURED(mpPolicePed[iPedNum].mPed)
|
|
CLEAR_PED_TASKS(mpPolicePed[iPedNum].mPed)
|
|
IF IS_VEHICLE_OK(mvPoppyCar.mVehicle)
|
|
TASK_GO_TO_ENTITY(mpPolicePed[iPedNum].mPed,mvPoppyCar.mVehicle,-1,2.5,PEDMOVEBLENDRATIO_WALK)
|
|
eCopState[iPedNum] = CS_APPROAH_CRASHED_CAR
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
IF iSeqCarDoors = 4
|
|
//IF GET_GAME_TIMER() > iTimerSyncSceneStarted + 55000
|
|
IF NOT IS_SYNCHRONIZED_SCENE_RUNNING(poppy_arrest_scene)
|
|
OR GET_SYNCHRONIZED_SCENE_PHASE(poppy_arrest_scene) = 1
|
|
IF IS_PED_UNINJURED(mpPolicePed[0].mPed)
|
|
AND IS_PED_UNINJURED(mpPoppyPed.mPed)
|
|
AND IS_VEHICLE_OK(mvPoliceCars[0].mVehicle)
|
|
IF NOT IS_PED_IN_VEHICLE(mpPolicePed[0].mPed,mvPoliceCars[0].mVehicle)
|
|
FORCE_PED_AI_AND_ANIMATION_UPDATE(mpPolicePed[0].mPed)
|
|
SET_PED_INTO_VEHICLE(mpPolicePed[0].mPed,mvPoliceCars[0].mVehicle,VS_DRIVER)
|
|
ENDIF
|
|
IF NOT IS_PED_IN_VEHICLE(mpPoppyPed.mPed,mvPoliceCars[0].mVehicle)
|
|
SET_PED_INTO_VEHICLE(mpPoppyPed.mPed,mvPoliceCars[0].mVehicle,VS_BACK_LEFT)
|
|
ENDIF
|
|
iSeqCarDoors = 5
|
|
eCopState[iPedNum] = CS_ENTER_COP_CAR
|
|
ePoppyState = PS_POPPY_IN_COP_CAR
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE CS_ENTER_COP_CAR
|
|
|
|
IF NOT HAS_PLAYER_THREATENED_PED(mpPolicePed[iPedNum].mPed)
|
|
//IF BOTH COPS ARE IN THE CAR, DRIVE AWAY
|
|
IF IS_VEHICLE_OK(mvPoliceCars[0].mVehicle)
|
|
IF IS_ENTITY_ALIVE(mpPolicePed[0].mPed) AND IS_ENTITY_ALIVE(mpPolicePed[1].mPed)
|
|
IF IS_PED_IN_VEHICLE(mpPolicePed[0].mPed,mvPoliceCars[0].mVehicle)
|
|
//AND IS_PED_IN_VEHICLE(mpPolicePed[1].mPed,mvPoliceCars[0].mVehicle)
|
|
IF IS_PED_UNINJURED(mpPolicePed[iPedNum].mPed)
|
|
|
|
IF b_Correct_Pic_Taken = FALSE
|
|
bPoppyAndCopDrivingOff = TRUE
|
|
eCopState[0] = CS_LEAVE_AREA
|
|
eCopState[iPedNum] = CS_LEAVE_AREA
|
|
iTimerCopsLeavingArea = GET_GAME_TIMER()
|
|
EXIT
|
|
ENDIF
|
|
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(poppy_arrest_scene)
|
|
STOP_SYNCHRONIZED_ENTITY_ANIM(mvPoliceCars[0].mVehicle,-1,FALSE)
|
|
ENDIF
|
|
|
|
FORCE_ENTITY_AI_AND_ANIMATION_UPDATE(mvPoliceCars[0].mVehicle)
|
|
|
|
SET_VEHICLE_SIREN(mvPoliceCars[0].mVehicle,FALSE)
|
|
SET_PED_KEEP_TASK(mpPolicePed[0].mPed,TRUE)
|
|
|
|
iTimerCopsLeavingArea = GET_GAME_TIMER()
|
|
|
|
IF IS_VEHICLE_OK(mvPoppyCar.mVehicle)
|
|
FREEZE_ENTITY_POSITION(mvPoppyCar.mVehicle,FALSE)
|
|
ENDIF
|
|
|
|
//SET_VEHICLE_DOORS_LOCKED(mvPoliceCars[0].mVehicle,VEHICLELOCK_LOCKED)
|
|
|
|
//RE-ACTIVATE ROADS - DO THIS HERE SO POLIE CAN LEAVE AREA CORRECTLY IN VEHICLE
|
|
SET_ROADS_IN_AREA(<< 318.9400, -411.6963, 38.0267 >>,<< 421.5246, -363.0107, 52.0853 >>, TRUE)
|
|
SET_ROADS_IN_AREA(<< 796.4662, -68.4078, 79.5220 >>,<< 974.3044, -152.9081, 72.6015 >>, TRUE)
|
|
SET_ROADS_IN_AREA(<< 683.3696, 38.3284, 83.2770 >>, << 707.9796, -22.9872, 82.6540 >>, TRUE)
|
|
SET_ROADS_IN_AREA(<< 812.2689, -40.7279, 79.4878 >>, << 858.4236, -119.0339, 78.3599 >>, TRUE)
|
|
|
|
SET_DISABLE_PRETEND_OCCUPANTS(mvPoliceCars[0].mVehicle,TRUE)
|
|
|
|
TASK_VEHICLE_DRIVE_TO_COORD(mpPolicePed[0].mPed,mvPoliceCars[0].mVehicle,<< 231.6400, -347.1846, 43.2866 >>,30,DRIVINGSTYLE_STRAIGHTLINE,DUMMY_MODEL_FOR_SCRIPT,DRIVINGMODE_AVOIDCARS,20.0,150.0)
|
|
//TASK_VEHICLE_DRIVE_WANDER(mpPolicePed[0].mPed,mvPoliceCars[0].mVehicle,50,DRIVINGMODE_AVOIDCARS_RECKLESS)
|
|
|
|
//IF IS_ENTITY_ALIVE(mvPoliceCars[2].mVehicle)
|
|
// FREEZE_ENTITY_POSITION(mvPoliceCars[2].mVehicle,FALSE)
|
|
//ENDIF
|
|
|
|
SET_VEHICLE_DOORS_SHUT(mvPoliceCars[0].mVehicle)
|
|
|
|
bPoppyAndCopDrivingOff = TRUE
|
|
|
|
TASK_CLEAR_LOOK_AT(PLAYER_PED_ID())
|
|
|
|
eCopState[0] = CS_LEAVE_AREA
|
|
|
|
eCopState[iPedNum] = CS_LEAVE_AREA
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
CASE CS_APPROAH_CRASHED_CAR
|
|
IF HAS_PLAYER_THREATENED_PED(mpPolicePed[iPedNum].mPed)
|
|
//MAKE_POLICE_ATTACK_PLAYER()
|
|
ENDIF
|
|
//COP IS GOING TO CRASHED CAR
|
|
BREAK
|
|
|
|
CASE CS_LEAVE_AREA
|
|
BREAK
|
|
|
|
CASE CS_AREA_WARN_PLAYER
|
|
|
|
IF GET_GAME_TIMER() >= iTimerPicTaken + 5000
|
|
IF IS_ENTITY_ALIVE(mpPoppyPed.mPed)
|
|
IF IS_PED_UNINJURED(mpPolicePed[iPedNum].mPed)
|
|
eCopState[iPedNum] = CS_MOVE_TO_POPPY
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
CASE CS_ATTACK_PLAYER
|
|
//ATTACKING THE PLAYER
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Makes police at road block get into their vehicles once poppy has passed them
|
|
PROC MAKE_COPS_GET_IN_CARS
|
|
|
|
IF bCopsAreLeaving = FALSE
|
|
//FIRST CAR
|
|
IF IS_VEHICLE_OK(mvPoppyCar.mVehicle)
|
|
IF IS_ENTITY_AT_COORD(mvPoppyCar.mVehicle,<< 859.6609, -122.3895, 78.4099 >>,<<15.0,15.0,15.0>>)
|
|
IF IS_PED_UNINJURED(mpStandingPeds[0].mPed)
|
|
IF IS_VEHICLE_OK(mvParkedCar[5].mVehicle)
|
|
TASK_ENTER_VEHICLE(mpStandingPeds[0].mPed,mvParkedCar[5].mVehicle,-1,VS_DRIVER,3.0)
|
|
eStandingState[0] = SS_GET_INTO_VEHICLE
|
|
ENDIF
|
|
ENDIF
|
|
IF IS_PED_UNINJURED(mpStandingPeds[1].mPed)
|
|
IF IS_VEHICLE_OK(mvParkedCar[5].mVehicle)
|
|
TASK_ENTER_VEHICLE(mpStandingPeds[1].mPed,mvParkedCar[5].mVehicle,-1,VS_FRONT_RIGHT,3.0)
|
|
eStandingState[1] = SS_GET_INTO_VEHICLE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//SECOND CAR
|
|
IF IS_PED_UNINJURED(mpStandingPeds[4].mPed)
|
|
IF IS_VEHICLE_OK(mvParkedCar[4].mVehicle)
|
|
TASK_ENTER_VEHICLE(mpStandingPeds[4].mPed,mvParkedCar[4].mVehicle,-1,VS_DRIVER,3.0)
|
|
eStandingState[4] = SS_GET_INTO_VEHICLE
|
|
ENDIF
|
|
ENDIF
|
|
IF IS_PED_UNINJURED(mpStandingPeds[5].mPed)
|
|
IF IS_VEHICLE_OK(mvParkedCar[4].mVehicle)
|
|
TASK_ENTER_VEHICLE(mpStandingPeds[5].mPed,mvParkedCar[4].mVehicle,-1,VS_FRONT_RIGHT,3.0)
|
|
eStandingState[5] = SS_GET_INTO_VEHICLE
|
|
ENDIF
|
|
ENDIF
|
|
bCopsAreLeaving = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Monitors and controls all the PEDS standing around during the chase.
|
|
/// Police at road block, builders etc.
|
|
/// PARAMS:
|
|
/// iPedNum - The ped number we are checking
|
|
PROC Moinitor_Standing_Ped(INT iPedNum, MODEL_NAMES mnModelType )
|
|
|
|
SWITCH eStandingState[iPedNum]
|
|
|
|
CASE SS_STANDING_AND_WAIT
|
|
IF IS_PED_UNINJURED(mpStandingPeds[iPedNum].mPed)
|
|
IF mnModelType = S_M_Y_Cop_01 // IF THEY ARE POLICE DO BELOW
|
|
IF IS_VEHICLE_OK(mvPoppyCar.mVehicle)
|
|
IF IS_ENTITY_AT_ENTITY(mvPoppyCar.mVehicle,mpStandingPeds[iPedNum].mPed,<<70.0,70.0,70.0>>)
|
|
|
|
SWITCH iPedNum
|
|
|
|
CASE 0
|
|
TASK_START_SCENARIO_IN_PLACE(mpStandingPeds[iPedNum].mPed,"WORLD_HUMAN_DRUG_DEALER_HARD")
|
|
eStandingState[iPedNum] = SS_AIM_GUN_AT_POPPY
|
|
BREAK
|
|
|
|
CASE 1
|
|
TASK_START_SCENARIO_IN_PLACE(mpStandingPeds[iPedNum].mPed,"CODE_HUMAN_POLICE_CROWD_CONTROL")
|
|
eStandingState[iPedNum] = SS_AIM_GUN_AT_POPPY
|
|
BREAK
|
|
|
|
CASE 4
|
|
TASK_START_SCENARIO_IN_PLACE(mpStandingPeds[iPedNum].mPed,"WORLD_HUMAN_DRUG_DEALER_HARD")
|
|
eStandingState[iPedNum] = SS_AIM_GUN_AT_POPPY
|
|
BREAK
|
|
|
|
CASE 5
|
|
TASK_START_SCENARIO_IN_PLACE(mpStandingPeds[iPedNum].mPed,"CODE_HUMAN_POLICE_CROWD_CONTROL")
|
|
eStandingState[iPedNum] = SS_AIM_GUN_AT_POPPY
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
ENDIF
|
|
ENDIF
|
|
ELSE // THEY ARE NOT POLICE SO NEED TO FLEE IF IN DANGER
|
|
IF IS_ENTITY_AT_ENTITY(mvPoppyCar.mVehicle,mpStandingPeds[iPedNum].mPed,<<30.0,30.0,30.0>>)
|
|
OR IS_ENTITY_AT_ENTITY(PLAYER_PED_ID(),mpStandingPeds[iPedNum].mPed,<<40.0,40.0,40.0>>)
|
|
MAKE_PED_FLEE(mpStandingPeds[iPedNum].mPed,TRUE)
|
|
eStandingState[iPedNum] = SS_FLEE_FROM_CARS
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE SS_AIM_GUN_AT_POPPY
|
|
//AIMING GUN AT ENTITY
|
|
IF IS_PED_UNINJURED(mpStandingPeds[iPedNum].mPed)
|
|
IF IS_ENTITY_AT_ENTITY(PLAYER_PED_ID(),mpStandingPeds[iPedNum].mPed,<<15.0,15.0,15.0>>)
|
|
IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
TASK_AIM_GUN_AT_ENTITY(mpStandingPeds[iPedNum].mPed,PLAYER_PED_ID(),-1,FALSE)
|
|
eStandingState[iPedNum] = SS_AIM_GUN_AT_PLAYER
|
|
ELSE
|
|
//TALK TO PLAYER
|
|
ENDIF
|
|
ENDIF
|
|
IF bCopCrashed = TRUE
|
|
TASK_WANDER_IN_AREA(mpStandingPeds[iPedNum].mPed,mpStandingPeds[iPedNum].vStartPos,30.0)
|
|
eStandingState[iPedNum] = SS_WANDER_IN_AREA
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE SS_AIM_GUN_AT_PLAYER
|
|
IF IS_PED_UNINJURED(mpStandingPeds[iPedNum].mPed)
|
|
IF NOT IS_ENTITY_AT_ENTITY(PLAYER_PED_ID(),mpStandingPeds[iPedNum].mPed,<<40.0,40.0,40.0>>)
|
|
CLEAR_PED_TASKS(mpStandingPeds[iPedNum].mPed)
|
|
eStandingState[iPedNum] = SS_AIM_GUN_AT_POPPY
|
|
ENDIF
|
|
IF IS_PLAYER_INSIDE_ROAD_BLOCK()
|
|
IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
TASK_COMBAT_PED(mpStandingPeds[iPedNum].mPed,PLAYER_PED_ID())
|
|
eStandingState[iPedNum] = SS_ATTACK_PLAYER
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE SS_ATTACK_PLAYER
|
|
//ATTACKING PLAYER
|
|
BREAK
|
|
|
|
CASE SS_GET_INTO_VEHICLE
|
|
IF IS_PED_UNINJURED(mpStandingPeds[0].mPed)
|
|
AND IS_PED_UNINJURED(mpStandingPeds[1].mPed)
|
|
IF IS_VEHICLE_OK(mvParkedCar[5].mVehicle)
|
|
IF IS_PED_IN_VEHICLE(mpStandingPeds[0].mPed,mvParkedCar[5].mVehicle)
|
|
AND IS_PED_IN_VEHICLE(mpStandingPeds[1].mPed,mvParkedCar[5].mVehicle)
|
|
TASK_VEHICLE_DRIVE_WANDER(mpStandingPeds[0].mPed,mvParkedCar[5].mVehicle,40.0,DRIVINGMODE_AVOIDCARS)
|
|
eStandingState[0] = SS_WANDER_IN_AREA
|
|
eStandingState[1] = SS_WANDER_IN_AREA
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
IF IS_PED_UNINJURED(mpStandingPeds[4].mPed)
|
|
AND IS_PED_UNINJURED(mpStandingPeds[5].mPed)
|
|
IF IS_VEHICLE_OK(mvParkedCar[4].mVehicle)
|
|
IF IS_PED_IN_VEHICLE(mpStandingPeds[4].mPed,mvParkedCar[4].mVehicle)
|
|
AND IS_PED_IN_VEHICLE(mpStandingPeds[5].mPed,mvParkedCar[4].mVehicle)
|
|
TASK_VEHICLE_DRIVE_WANDER(mpStandingPeds[4].mPed,mvParkedCar[4].mVehicle,40.0,DRIVINGMODE_AVOIDCARS)
|
|
eStandingState[4] = SS_WANDER_IN_AREA
|
|
eStandingState[5] = SS_WANDER_IN_AREA
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
CASE SS_WANDER_IN_AREA
|
|
//WANDERING
|
|
BREAK
|
|
|
|
CASE SS_FLEE_FROM_CARS
|
|
//FLEEING FROM CARS
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Controls monitoring indivudual PEDS etc
|
|
PROC Monitor_Police_Chase_Scene()
|
|
|
|
//PRINTINT(iRammingCops)
|
|
//PRINTNL()
|
|
|
|
//CHECK PLAYER IS NOT WANTED
|
|
IF IS_PLAYER_WANTED_LEVEL_GREATER(PLAYER_ID(),0)
|
|
MAKE_POLICE_ATTACK_PLAYER()
|
|
ENDIF
|
|
|
|
IF GET_GAME_TIMER() > iTimerCheckDamage
|
|
IF IS_ENTITY_ALIVE(mvPoppyCar.mVehicle)
|
|
IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(mvPoppyCar.mVehicle,PLAYER_PED_ID())
|
|
CLEAR_ENTITY_LAST_DAMAGE_ENTITY(mvPoppyCar.mVehicle)
|
|
++iRammingCops
|
|
iTimerCheckDamage = GET_GAME_TIMER() + 2000
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_ENTITY_ALIVE(mvPoliceCars[0].mVehicle)
|
|
IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(mvPoliceCars[0].mVehicle,PLAYER_PED_ID())
|
|
CLEAR_ENTITY_LAST_DAMAGE_ENTITY(mvPoliceCars[0].mVehicle)
|
|
++iRammingCops
|
|
iTimerCheckDamage = GET_GAME_TIMER() + 2000
|
|
ENDIF
|
|
IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()),mvPoliceCars[0].mVehicle)
|
|
CLEAR_ENTITY_LAST_DAMAGE_ENTITY(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()))
|
|
++iRammingCops
|
|
iTimerCheckDamage = GET_GAME_TIMER() + 2000
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
IF NOT bCopCrashed
|
|
IF IS_ENTITY_ALIVE(mvPoliceCars[1].mVehicle)
|
|
IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(mvPoliceCars[1].mVehicle,PLAYER_PED_ID())
|
|
CLEAR_ENTITY_LAST_DAMAGE_ENTITY(mvPoliceCars[1].mVehicle)
|
|
++iRammingCops
|
|
iTimerCheckDamage = GET_GAME_TIMER() + 2000
|
|
ENDIF
|
|
IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()),mvPoliceCars[1].mVehicle)
|
|
CLEAR_ENTITY_LAST_DAMAGE_ENTITY(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()))
|
|
++iRammingCops
|
|
iTimerCheckDamage = GET_GAME_TIMER() + 2000
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
IF IS_ENTITY_ALIVE(mvPoliceCars[2].mVehicle)
|
|
IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(mvPoliceCars[2].mVehicle,PLAYER_PED_ID())
|
|
CLEAR_ENTITY_LAST_DAMAGE_ENTITY(mvPoliceCars[2].mVehicle)
|
|
++iRammingCops
|
|
iTimerCheckDamage = GET_GAME_TIMER() + 2000
|
|
ENDIF
|
|
IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()),mvPoliceCars[2].mVehicle)
|
|
CLEAR_ENTITY_LAST_DAMAGE_ENTITY(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()))
|
|
++iRammingCops
|
|
iTimerCheckDamage = GET_GAME_TIMER() + 2000
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF iRammingCops >= 5
|
|
IF GET_PLAYER_WANTED_LEVEL(PLAYER_ID()) < 2
|
|
HANG_UP_AND_PUT_AWAY_PHONE()
|
|
SET_PLAYER_WANTED_LEVEL(PLAYER_ID(),2)
|
|
SET_PLAYER_WANTED_LEVEL_NOW(PLAYER_ID())
|
|
CLEAR_ENTITY_LAST_DAMAGE_ENTITY(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()))
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(mpPoppyPed.mPed)
|
|
IF IS_ENTITY_ALIVE(mpPoppyPed.mPed)
|
|
IF NOT HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(mpPoppyPed.mPed,PLAYER_PED_ID(),TRUE)
|
|
Monitor_Poppy()
|
|
IF bPoppyHasCrashed = FALSE
|
|
IF ePoppyState = PS_DRIVING
|
|
IF IS_VEHICLE_OK(mvPoppyCar.mVehicle)
|
|
IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(mvPoppyCar.mVehicle)
|
|
AND GET_TIME_POSITION_IN_RECORDING(mvPoppyCar.mVehicle) > 15000
|
|
IF NOT IS_ENTITY_AT_ENTITY(PLAYER_PED_ID(),mpPoppyPed.mPed,<<LOSE_DISTANCE,LOSE_DISTANCE,LOSE_DISTANCE>>)
|
|
SET_FAIL_REASON(FAIL_POPPY_LOST)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF ePoppyState <> PS_POPPY_IN_COP_CAR
|
|
IF b_Correct_Pic_Taken = FALSE
|
|
IF NOT IS_ENTITY_AT_ENTITY(PLAYER_PED_ID(),mpPoppyPed.mPed,<<LOSE_DISTANCE,LOSE_DISTANCE,LOSE_DISTANCE>>)
|
|
SET_FAIL_REASON(FAIL_PHOTO_LOST)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
SET_FAIL_REASON(FAIL_POPPY_INJURED)
|
|
ENDIF
|
|
ELSE
|
|
SET_FAIL_REASON(FAIL_POPPY_KILLED)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//CHECK POLICE
|
|
/*
|
|
INT i
|
|
|
|
FOR i = 0 TO NUM_OF_POLICE_PEDS - 1
|
|
IF IS_ENTITY_ALIVE(mpPolicePed[i].mPed)
|
|
MONITOR_POLICE_PEDS(i)
|
|
ENDIF
|
|
ENDFOR
|
|
*/
|
|
/*
|
|
FOR i = 0 TO NUM_OF_CHASE_PROPS - 1
|
|
IF DOES_ENTITY_EXIST(mpsChaseProps[i].mObject)
|
|
IF NOT DOES_ENTITY_HAVE_PHYSICS(mpsChaseProps[i].mObject) = FALSE
|
|
ACTIVATE_PHYSICS(mpsChaseProps[i].mObject)
|
|
ENDIF
|
|
//FREEZE_ENTITY_POSITION(mpsChaseProps[i].mObject,FALSE)
|
|
ENDIF
|
|
ENDFOR
|
|
*/
|
|
|
|
//MAKES ROAD BLOCK COPS GET INTO CARS
|
|
//MAKE_COPS_GET_IN_CARS()
|
|
|
|
//CHECK STANDING PEDS
|
|
/*
|
|
FOR i = 0 TO NUM_OF_STANDING_PEDS - 1
|
|
IF IS_ENTITY_ALIVE(mpStandingPeds[i].mPed)
|
|
Moinitor_Standing_Ped(i, mpStandingPeds[i].mModel )
|
|
ENDIF
|
|
ENDFOR
|
|
*/
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Manages dialogue that is said during the chase with Poppy.
|
|
PROC CHASE_DIALOGUE()
|
|
|
|
SWITCH iDialogueToPlay
|
|
|
|
CASE 0
|
|
IF IS_PED_UNINJURED(mpPoppyPed.mPed)
|
|
IF IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),mpPoppyPed.mPed,150.0)
|
|
AND NOT IS_ENTITY_OCCLUDED(mpPoppyPed.mPed)
|
|
ADD_PED_FOR_DIALOGUE(sSpeach, 1, PLAYER_PED_ID(), "FRANKLIN")
|
|
//IF NOT IS_THIS_PRINT_BEING_DISPLAYED("PAP3_CAT")
|
|
IF NOT IS_THIS_PRINT_BEING_DISPLAYED("PAP3_03")
|
|
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(sSpeach, "PAP3AAU", "PAP3A_FRANK", "PAP3A_FRANK_1", CONV_PRIORITY_MEDIUM)
|
|
SET_REPLAY_MID_MISSION_STAGE_WITH_NAME(CP_AT_POPPY_LOCATION,"At Poppy location") // mocap done, set checkpoint
|
|
REPLAY_RECORD_BACK_FOR_TIME(2.0, 4.0, REPLAY_IMPORTANCE_LOWEST)
|
|
iDialogueToPlay++
|
|
//bDoneFakeStart = TRUE
|
|
ENDIF
|
|
ELSE
|
|
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(sSpeach, "PAP3AAU", "PAP3A_FRANK", "PAP3A_FRANK_1", CONV_PRIORITY_MEDIUM,DO_NOT_DISPLAY_SUBTITLES)
|
|
SET_REPLAY_MID_MISSION_STAGE_WITH_NAME(CP_AT_POPPY_LOCATION,"At Poppy location") // mocap done, set checkpoint
|
|
REPLAY_RECORD_BACK_FOR_TIME(2.0, 4.0, REPLAY_IMPORTANCE_LOWEST)
|
|
iDialogueToPlay++
|
|
//bDoneFakeStart = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(mvPoppyCar.mVehicle)
|
|
IF fTimePosInRec > 30000
|
|
SET_REPLAY_MID_MISSION_STAGE_WITH_NAME(CP_AT_POPPY_LOCATION,"At Poppy location") // mocap done, set checkpoint
|
|
iDialogueToPlay++
|
|
//bDoneFakeStart = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 1
|
|
/*
|
|
IF IS_ENTITY_AT_COORD(PLAYER_PED_ID(),<< 748.0605, -23.1331, 81.2415 >>,<<50.0,50.0,50.0>>)
|
|
ADD_PED_FOR_DIALOGUE(sSpeach, 1, PLAYER_PED_ID(), "FRANKLIN")
|
|
IF NOT IS_THIS_PRINT_BEING_DISPLAYED("PAP3_03")
|
|
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(sSpeach, "PAP3AAU", "PAP3A_FRANK", "PAP3A_FRANK_2", CONV_PRIORITY_MEDIUM)
|
|
iDialogueToPlay++
|
|
ENDIF
|
|
ELSE
|
|
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(sSpeach, "PAP3AAU", "PAP3A_FRANK", "PAP3A_FRANK_2", CONV_PRIORITY_MEDIUM,DO_NOT_DISPLAY_SUBTITLES)
|
|
iDialogueToPlay++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
*/
|
|
iDialogueToPlay++
|
|
BREAK
|
|
|
|
CASE 2
|
|
IF IS_PED_UNINJURED(mpPoppyPed.mPed)
|
|
//IF IS_ENTITY_AT_COORD(mpPoppyPed.mPed,<< 640.2135, -83.7324, 73.8663 >>,<<30.0,30.0,30.0>>)
|
|
IF fTimePosInRec >= 83760.765625
|
|
IF IS_ENTITY_AT_ENTITY(PLAYER_PED_ID(),mpPoppyPed.mPed,<<70.0,70.0,70.0>>)
|
|
ADD_PED_FOR_DIALOGUE(sSpeach, 1, PLAYER_PED_ID(), "FRANKLIN")
|
|
IF NOT IS_THIS_PRINT_BEING_DISPLAYED("PAP3_03")
|
|
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(sSpeach, "PAP3AAU", "PAP3A_FRANK", "PAP3A_FRANK_3", CONV_PRIORITY_MEDIUM)
|
|
iDialogueToPlay++
|
|
ENDIF
|
|
ELSE
|
|
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(sSpeach, "PAP3AAU", "PAP3A_FRANK", "PAP3A_FRANK_3", CONV_PRIORITY_MEDIUM,DO_NOT_DISPLAY_SUBTITLES)
|
|
iDialogueToPlay++
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
iDialogueToPlay++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 3
|
|
IF IS_ENTITY_AT_COORD(mpPoppyPed.mPed,<< 512.8621, -187.7797, 52.1896 >>,<<30.0,30.0,30.0>>)
|
|
IF IS_PED_UNINJURED(mpPolicePed[0].mPed)
|
|
ADD_PED_FOR_DIALOGUE(sSpeach, 7, mpPolicePed[0].mPed, "Paparazzo3ACop3")
|
|
IF NOT IS_THIS_PRINT_BEING_DISPLAYED("PAP3_03")
|
|
IF CREATE_CONVERSATION(sSpeach, "PAP3AAU", "PAP3A_COP7", CONV_PRIORITY_HIGH)
|
|
iDialogueToPlay++
|
|
ENDIF
|
|
ELSE
|
|
IF CREATE_CONVERSATION(sSpeach, "PAP3AAU", "PAP3A_COP7", CONV_PRIORITY_HIGH,DO_NOT_DISPLAY_SUBTITLES)
|
|
iDialogueToPlay++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 4
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
REMOVE_PED_FOR_DIALOGUE(sSpeach,7)
|
|
ENDIF
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Handles slowing the player down in a vehicle and getting him out
|
|
/// Only works if player is near crash site
|
|
PROC HANDLE_STOPPING_BEFORE_CRASH()
|
|
|
|
IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
IF GET_ENTITY_SPEED(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID())) >= 28.0
|
|
IF IS_ENTITY_AT_COORD(PLAYER_PED_ID(),vCrashLocation,<<47.0,47.0,47.0>>)
|
|
IF bCarStopping = FALSE
|
|
//BRING_VEHICLE_TO_HALT(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()),20.0,1)
|
|
BRING_VEHICLE_TO_HALT_AND_DISABLE_VEH_CONTROLS(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()),37.0,1) //20.0
|
|
bCarStopping = TRUE
|
|
ELSE
|
|
IF GET_ENTITY_SPEED(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID())) < 0.1
|
|
bPlayerStopped = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF IS_ENTITY_AT_COORD(PLAYER_PED_ID(),vCrashLocation,<<40.0,40.0,40.0>>)
|
|
IF bCarStopping = FALSE
|
|
//BRING_VEHICLE_TO_HALT(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()),20.0,1)
|
|
BRING_VEHICLE_TO_HALT_AND_DISABLE_VEH_CONTROLS(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()),30.0,1)
|
|
bCarStopping = TRUE
|
|
ELSE
|
|
IF GET_ENTITY_SPEED(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID())) < 0.1
|
|
bPlayerStopped = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Handles Princess scene - Loads models, checks they are loaded.
|
|
/// Also checks if everything is ok once created.
|
|
PROC HANDLE_POLICE_CHASE()
|
|
|
|
//INT i
|
|
|
|
IF bPoliceChaseCreated = FALSE
|
|
|
|
IF HAS_POLICE_SCENE_LOADED()
|
|
/*
|
|
FOR i = 0 TO NUM_OF_POLICE_CARS - 1
|
|
CreateMissionVehicle(mvPoliceCars[i],FALSE)
|
|
SET_VEHICLE_MODEL_IS_SUPPRESSED(mvPoliceCars[i].mModel,TRUE)
|
|
ENDFOR
|
|
*/
|
|
CreateMissionVehicle(mvPoppyCar)
|
|
//SET_VEHICLE_COLOUR_COMBINATION(mvPoppyCar.mVehicle,6) //5 (baby blue) //6 (yellow)
|
|
SET_VEHICLE_DOORS_LOCKED(mvPoppyCar.mVehicle,VEHICLELOCK_LOCKED)
|
|
SET_VEHICLE_MODEL_IS_SUPPRESSED(mvPoppyCar.mModel,TRUE)
|
|
//SET_ENTITY_LOD_DIST(mvPoppyCar.mVehicle,220)
|
|
SET_VEHICLE_LOD_MULTIPLIER(mvPoppyCar.mVehicle,2.5)
|
|
|
|
SET_VEHICLE_MOD_KIT(mvPoppyCar.mVehicle,0)
|
|
|
|
SET_VEHICLE_NUMBER_PLATE_TEXT(mvPoppyCar.mVehicle,"P0PPYM15")
|
|
LOWER_CONVERTIBLE_ROOF(mvPoppyCar.mVehicle,TRUE)
|
|
|
|
//SET_VEHICLE_COLOURS(mvPoppyCar.mVehicle,42,88)
|
|
//SET_VEHICLE_EXTRA_COLOURS(mvPoppyCar.mVehicle,0,156) //yellow
|
|
SET_VEHICLE_COLOURS(mvPoppyCar.mVehicle,137,137) //135 hot pink
|
|
SET_VEHICLE_EXTRA_COLOURS(mvPoppyCar.mVehicle,0,0)
|
|
|
|
SET_VEHICLE_MOD(mvPoppyCar.mVehicle,MOD_ENGINE,2)
|
|
SET_VEHICLE_MOD(mvPoppyCar.mVehicle,MOD_BRAKES,0)
|
|
SET_VEHICLE_MOD(mvPoppyCar.mVehicle,MOD_HORN,3)
|
|
SET_VEHICLE_MOD(mvPoppyCar.mVehicle,MOD_WHEELS,6)
|
|
|
|
TOGGLE_VEHICLE_MOD(mvPoppyCar.mVehicle,MOD_TOGGLE_TURBO,TRUE)
|
|
|
|
CreateMissionVehicle(mvPoliceCars[0],FALSE)
|
|
CreateMissionVehicle(mvPoliceCars[1],FALSE)
|
|
CreateMissionVehicle(mvPoliceCars[2],FALSE)
|
|
SET_ENTITY_INVINCIBLE(mvPoliceCars[0].mVehicle,TRUE)
|
|
SET_ENTITY_INVINCIBLE(mvPoliceCars[1].mVehicle,TRUE)
|
|
SET_ENTITY_INVINCIBLE(mvPoliceCars[2].mVehicle,TRUE)
|
|
SET_VEHICLE_MODEL_IS_SUPPRESSED(mvPoliceCars[0].mModel,TRUE)
|
|
|
|
CreateMissionPedInVehicle(mpPolicePed[0],mvPoliceCars[0],PEDTYPE_COP,FALSE,VS_DRIVER) //PEDTYPE_COP
|
|
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(mpPolicePed[0].mPed,TRUE)
|
|
//SET_PED_CONFIG_FLAG(mpPolicePed[0].mPed,PCF_DontInfluenceWantedLevel,TRUE)
|
|
CreateMissionPedInVehicle(mpPolicePed[1],mvPoliceCars[0],PEDTYPE_COP,FALSE,VS_FRONT_RIGHT)
|
|
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(mpPolicePed[1].mPed,TRUE)
|
|
//SET_PED_CONFIG_FLAG(mpPolicePed[1].mPed,PCF_DontInfluenceWantedLevel,TRUE)
|
|
CreateMissionPedInVehicle(mpPolicePed[2],mvPoliceCars[1],PEDTYPE_COP,FALSE,VS_DRIVER)
|
|
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(mpPolicePed[2].mPed,TRUE)
|
|
//SET_PED_CONFIG_FLAG(mpPolicePed[2].mPed,PCF_DontInfluenceWantedLevel,TRUE)
|
|
CreateMissionPedInVehicle(mpPolicePed[3],mvPoliceCars[2],PEDTYPE_COP,FALSE,VS_DRIVER)
|
|
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(mpPolicePed[3].mPed,TRUE)
|
|
//SET_PED_CONFIG_FLAG(mpPolicePed[3].mPed,PCF_DontBehaveLikeLaw,TRUE)
|
|
|
|
//TOGGLE_VEHICLE_MOD(mvPoppyCar.mVehicle,MOD_TOGGLE_XENON_LIGHTS,TRUE)
|
|
/*
|
|
//ALL CARS THAT ARE PARKED DURING CHASE
|
|
FOR i = 0 TO NUM_OF_PARKED_CARS - 1
|
|
CreateMissionVehicle(mvParkedCar[i],FALSE)
|
|
SET_VEHICLE_MODEL_IS_SUPPRESSED(mvParkedCar[i].mModel,TRUE)
|
|
ENDFOR
|
|
*/
|
|
/*
|
|
//PROPS
|
|
FOR i = 0 TO NUM_OF_CHASE_PROPS - 1
|
|
CreateMissionProp(mpsChaseProps[i],FALSE)
|
|
//SET_VEHICLE_MODEL_IS_SUPPRESSED(mpsChaseProps[i].mModel,TRUE)
|
|
ENDFOR
|
|
|
|
CREATE_FORCED_OBJECT(<< 634.4785, -68.8406, 74.2911 >>,5,PROP_BARRIER_WORK04A,TRUE)
|
|
CREATE_FORCED_OBJECT(<< 627.1672, -73.8742, 73.3072 >>,5,PROP_BARRIER_WORK04A,TRUE)
|
|
CREATE_FORCED_OBJECT(<< 653.2055, -96.2269, 73.4953 >>,5,PROP_BARRIER_WORK04A,TRUE)
|
|
CREATE_FORCED_OBJECT(<< 657.0881, -91.6722, 73.5133 >>,5,PROP_BARRIER_WORK04A,TRUE)
|
|
*/
|
|
/*
|
|
SET_VEHICLE_SIREN(mvParkedCar[4].mVehicle,TRUE)
|
|
SET_SIREN_WITH_NO_DRIVER(mvParkedCar[4].mVehicle,TRUE)
|
|
SET_VEHICLE_SIREN(mvParkedCar[5].mVehicle,TRUE)
|
|
SET_SIREN_WITH_NO_DRIVER(mvParkedCar[5].mVehicle,TRUE)
|
|
*/
|
|
//POLICE PEDS
|
|
/*
|
|
|
|
CreateMissionVehicle(mvPoliceCars[i],FALSE)
|
|
SET_VEHICLE_MODEL_IS_SUPPRESSED(mvPoliceCars[i].mModel,TRUE)
|
|
|
|
CreateMissionPedInVehicle(mpPolicePed[0],mvPoliceCars[0],PEDTYPE_COP,FALSE,VS_DRIVER)
|
|
CreateMissionPedInVehicle(mpPolicePed[1],mvPoliceCars[0],PEDTYPE_COP,FALSE,VS_FRONT_RIGHT)
|
|
CreateMissionPedInVehicle(mpPolicePed[2],mvPoliceCars[1],PEDTYPE_COP,FALSE,VS_DRIVER)
|
|
CreateMissionPedInVehicle(mpPolicePed[3],mvPoliceCars[2],PEDTYPE_COP,FALSE,VS_DRIVER)
|
|
*/
|
|
//SET_VEHICLE_DOORS_LOCKED(mvPoliceCars[0].mVehicle,VEHICLELOCK_LOCKOUT_PLAYER_ONLY)
|
|
//SET_VEHICLE_DOORS_LOCKED(mvPoliceCars[1].mVehicle,VEHICLELOCK_LOCKOUT_PLAYER_ONLY)
|
|
//SET_VEHICLE_DOORS_LOCKED(mvPoliceCars[2].mVehicle,VEHICLELOCK_LOCKOUT_PLAYER_ONLY)
|
|
/*
|
|
FOR i = 0 TO NUM_OF_STANDING_PEDS - 1
|
|
IF i <> 2
|
|
AND i <> 3
|
|
CreateMissionPed(mpStandingPeds[i],FALSE)
|
|
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(mpStandingPeds[i].mPed,TRUE)
|
|
IF mpStandingPeds[i].mModel = S_M_Y_Cop_01
|
|
GIVE_WEAPON_TO_PED(mpStandingPeds[i].mPed,WEAPONTYPE_PISTOL,-1,TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDFOR
|
|
*/
|
|
//EQUIP COPS WITH WEAPONS - USED DURING ARREST SCENE
|
|
/*
|
|
FOR i = 0 TO NUM_OF_POLICE_PEDS - 1
|
|
GIVE_WEAPON_TO_PED(mpPolicePed[i].mPed,WEAPONTYPE_PISTOL,-1,FALSE,TRUE)
|
|
//SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(mpPolicePed[i].mPed,TRUE)
|
|
SET_PED_RELATIONSHIP_GROUP_HASH(mpPolicePed[i].mPed,relCopGroup)
|
|
ENDFOR
|
|
*/
|
|
//POPPY PED
|
|
CreateMissionPedInVehicle(mpPoppyPed,mvPoppyCar,PEDTYPE_MISSION,FALSE,VS_DRIVER)
|
|
SET_PED_RELATIONSHIP_GROUP_HASH(mpPoppyPed.mPed,relPoppy)
|
|
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(mpPoppyPed.mPed,TRUE)
|
|
SET_PED_RELATIONSHIP_GROUP_HASH(mpPoppyPed.mPed,relCopGroup)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_HATE,relPoppy,RELGROUPHASH_PLAYER)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_HATE,RELGROUPHASH_PLAYER,relPoppy)
|
|
SET_ENTITY_LOAD_COLLISION_FLAG(mpPoppyPed.mPed,TRUE)
|
|
SET_PED_MODEL_IS_SUPPRESSED(mpPoppyPed.mModel,TRUE)
|
|
SET_PED_COMPONENT_VARIATION(mpPoppyPed.mPed, INT_TO_ENUM(PED_COMPONENT,0), 0, 0, 0) //(head)
|
|
SET_PED_COMPONENT_VARIATION(mpPoppyPed.mPed, INT_TO_ENUM(PED_COMPONENT,2), 0, 0, 0) //(hair)
|
|
SET_PED_COMPONENT_VARIATION(mpPoppyPed.mPed, INT_TO_ENUM(PED_COMPONENT,3), 0, 0, 0) //(uppr)
|
|
SET_PED_COMPONENT_VARIATION(mpPoppyPed.mPed, INT_TO_ENUM(PED_COMPONENT,4), 0, 0, 0) //(lowr)
|
|
SET_PED_COMPONENT_VARIATION(mpPoppyPed.mPed, INT_TO_ENUM(PED_COMPONENT,8), 0, 0, 0) //(accs)
|
|
bPoliceChaseCreated = TRUE
|
|
|
|
ENDIF
|
|
ELSE
|
|
Monitor_Police_Chase_Scene()
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Checks to see if the player is interfering with the arrest scene
|
|
/// If he is cops will warn player, if he gets closer they will attack.
|
|
PROC ARREST_SCENE_AREA_CHECK()
|
|
|
|
VECTOR vCopCar
|
|
FLOAT fAttackRange = 6
|
|
|
|
IF bPhotoSent
|
|
fAttackRange = 4.5
|
|
ENDIF
|
|
|
|
VEHICLE_INDEX vehPlayersLastVehicle = GET_PLAYERS_LAST_VEHICLE() //For B*1765742 - do the same area check for the player's last vehicle (or they can mess up the scene by bailing out)
|
|
|
|
IF bPoppyAndCopDrivingOff = FALSE
|
|
IF IS_VEHICLE_OK(mvPoliceCars[0].mVehicle)
|
|
IF IS_PED_UNINJURED(mpPolicePed[0].mPed)
|
|
IF IS_PED_UNINJURED(mpPoppyPed.mPed)
|
|
IF IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),mpPolicePed[0].mPed,9)
|
|
OR IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),mpPoppyPed.mPed,9)
|
|
OR IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),mvPoliceCars[0].mVehicle,9)
|
|
OR IS_ENTITY_AT_COORD(PLAYER_PED_ID(),<< 343.1912, -402.2201, 44.2223 >>,<<9,9,9>>)
|
|
IF NOT bAmbDialogue
|
|
//PLAY_PED_AMBIENT_SPEECH_WITH_VOICE_NATIVE(mpPolicePed[0].mPed,"PAP3A_AHAA","Paparazzo3ACop3","SPEECH_PARAMS_STANDARD")
|
|
bAmbDialogue = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
//IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<347.348358,-414.645081,42.954491>>, <<350.870605,-397.467957,48.116890>>, 16.750000)
|
|
|
|
IF NOT IS_SYNCHRONIZED_SCENE_RUNNING(poppy_arrest_scene)
|
|
OR GET_SYNCHRONIZED_SCENE_PHASE(poppy_arrest_scene) >= 0.514839
|
|
IF HAS_PLAYER_THREATENED_PED(mpPoppyPed.mPed)
|
|
MAKE_POLICE_ATTACK_PLAYER()
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//For B*1765742 - do the same area check for the player's last vehicle (or they can mess up the scene by bailing out)
|
|
IF DOES_ENTITY_EXIST(vehPlayersLastVehicle)
|
|
AND NOT IS_ENTITY_DEAD(vehPlayersLastVehicle)
|
|
IF IS_ENTITY_IN_RANGE_ENTITY(vehPlayersLastVehicle,mpPolicePed[0].mPed,fAttackRange)
|
|
OR IS_ENTITY_IN_RANGE_ENTITY(vehPlayersLastVehicle,mpPoppyPed.mPed,fAttackRange)
|
|
OR IS_ENTITY_IN_RANGE_ENTITY(vehPlayersLastVehicle,mvPoliceCars[0].mVehicle,fAttackRange)
|
|
OR IS_ENTITY_AT_COORD(vehPlayersLastVehicle,<< 343.1912, -402.2201, 44.2223 >>,<<fAttackRange -1.5,fAttackRange -1.5,fAttackRange -1.5>>)
|
|
MAKE_POLICE_ATTACK_PLAYER()
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),mpPolicePed[0].mPed,fAttackRange)
|
|
OR IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),mpPoppyPed.mPed,fAttackRange)
|
|
OR IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),mvPoliceCars[0].mVehicle,fAttackRange)
|
|
OR IS_ENTITY_AT_COORD(PLAYER_PED_ID(),<< 343.1912, -402.2201, 44.2223 >>,<<fAttackRange -1.5,fAttackRange -1.5,fAttackRange -1.5>>)
|
|
OR HAS_PLAYER_THREATENED_PED(mpPolicePed[0].mPed)
|
|
OR HAS_PLAYER_THREATENED_PED(mpPolicePed[1].mPed)
|
|
MAKE_POLICE_ATTACK_PLAYER()
|
|
ENDIF
|
|
IF iSeqCarDoors > 0
|
|
AND bCrashCutDone = TRUE
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(poppy_arrest_scene)
|
|
AND GET_SYNCHRONIZED_SCENE_PHASE(poppy_arrest_scene) < 0.9
|
|
IF bCopWarning = FALSE
|
|
//IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<347.348358,-414.645081,42.954491>>, <<350.870605,-397.467957,48.116890>>, 25.750)
|
|
|
|
IF IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),mpPolicePed[0].mPed,11)
|
|
OR IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),mpPoppyPed.mPed,11)
|
|
OR IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),mvPoliceCars[0].mVehicle,11)
|
|
//OR IS_ENTITY_AT_COORD(PLAYER_PED_ID(),<< 343.1912, -402.2201, 44.2223 >>,<<8,8,8>>)
|
|
|
|
IF NOT IS_ANY_SPEECH_PLAYING(mpPolicePed[1].mPed)
|
|
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE_NATIVE(mpPolicePed[1].mPed,"PAP3A_APAA","Paparazzo3ACop3","SPEECH_PARAMS_FORCE")
|
|
ELSE
|
|
bCopWarning = TRUE
|
|
ENDIF
|
|
|
|
/*
|
|
GIVE_WEAPON_TO_PED(mpPolicePed[1].mPed,WEAPONTYPE_PISTOL,-1,FALSE,FALSE)
|
|
GIVE_WEAPON_COMPONENT_TO_PED(mpPolicePed[1].mPed,WEAPONTYPE_PISTOL,WEAPONCOMPONENT_AT_PI_FLSH)
|
|
SEQUENCE_INDEX seqCop
|
|
OPEN_SEQUENCE_TASK(seqCop)
|
|
TASK_LEAVE_ANY_VEHICLE(NULL)
|
|
TASK_AIM_GUN_AT_ENTITY(NULL,PLAYER_PED_ID(),-1)
|
|
CLOSE_SEQUENCE_TASK(seqCop)
|
|
TASK_PERFORM_SEQUENCE(mpPolicePed[1].mPed,seqCop)
|
|
CLEAR_SEQUENCE_TASK(seqCop)
|
|
*/
|
|
|
|
ENDIF
|
|
ELSE
|
|
//IF NOT IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<347.348358,-414.645081,42.954491>>, <<350.870605,-397.467957,48.116890>>, 25.750)
|
|
|
|
IF NOT IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),mpPolicePed[0].mPed,14)
|
|
AND NOT IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),mpPoppyPed.mPed,14)
|
|
AND NOT IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),mvPoliceCars[0].mVehicle,14)
|
|
//AND NOT IS_ENTITY_AT_COORD(PLAYER_PED_ID(),<< 343.1912, -402.2201, 44.2223 >>,<<8,8,8>>)
|
|
IF NOT IS_PED_IN_VEHICLE(mpPolicePed[1].mPed,mvPoliceCars[0].mVehicle)
|
|
IF GET_SCRIPT_TASK_STATUS(mpPolicePed[1].mPed,SCRIPT_TASK_ENTER_VEHICLE) <> PERFORMING_TASK
|
|
TASK_ENTER_VEHICLE(mpPolicePed[1].mPed,mvPoliceCars[0].mVehicle,-1,VS_FRONT_RIGHT)
|
|
//bCopWarning = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF NOT IS_PED_IN_VEHICLE(mpPolicePed[1].mPed,mvPoliceCars[0].mVehicle)
|
|
IF GET_SCRIPT_TASK_STATUS(mpPolicePed[1].mPed,SCRIPT_TASK_ENTER_VEHICLE) <> PERFORMING_TASK
|
|
TASK_ENTER_VEHICLE(mpPolicePed[1].mPed,mvPoliceCars[0].mVehicle,-1,VS_FRONT_RIGHT)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
IF IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),mpPolicePed[0].mPed,15)
|
|
OR IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),mpPoppyPed.mPed,15)
|
|
IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
IF GET_ENTITY_SPEED(PLAYER_PED_ID()) > 14//12.0
|
|
IF IS_PED_FACING_PED(PLAYER_PED_ID(),mpPolicePed[0].mPed,10)
|
|
OR IS_PED_FACING_PED(PLAYER_PED_ID(),mpPoppyPed.mPed,10)
|
|
MAKE_POLICE_ATTACK_PLAYER()
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
IF bCrashCutDone = TRUE
|
|
IF iSeqCarDoors < 4
|
|
vCopCar = GET_ENTITY_COORDS(mvPoliceCars[0].mVehicle)
|
|
IF vCopCar.x < vPoliceCarPos.x - 0.2
|
|
OR vCopCar.x > vPoliceCarPos.x + 0.2
|
|
OR vCopCar.y < vPoliceCarPos.y - 0.2
|
|
OR vCopCar.y > vPoliceCarPos.y + 0.2
|
|
//SET_PLAYER_WANTED_LEVEL(PLAYER_ID(),1)
|
|
MAKE_POLICE_ATTACK_PLAYER()
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
IF IS_PLAYER_WANTED_LEVEL_GREATER(PLAYER_ID(),0)
|
|
MAKE_POLICE_ATTACK_PLAYER()
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
/// ************PHONE HELP STUFF**************** ///
|
|
|
|
/// PURPOSE:
|
|
/// Manages the phone help text for the player
|
|
PROC MANAGE_PHONE_HELP()
|
|
|
|
IF bSimpleHelp = FALSE
|
|
|
|
SWITCH iHelp
|
|
|
|
CASE 0 //Tells player to access the phone
|
|
|
|
bHelpPrint2 = FALSE
|
|
bHelpPrint3 = FALSE
|
|
|
|
IF NOT IS_PHONE_ONSCREEN()
|
|
IF NOT IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("PAP3_HELP1")
|
|
IF bHelpPrint1 = FALSE
|
|
PRINT_HELP("PAP3_HELP1") // Access the phone using ~PAD_DPAD_UP~.
|
|
bHelpPrint1 = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
bHelpPrint1 = FALSE
|
|
iHelp ++
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
CASE 1 // Tells player to select the camera once phone is up
|
|
|
|
IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("appCamera")) = 0
|
|
IF NOT IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("PAP3_HELP2")
|
|
IF bHelpPrint2 = FALSE
|
|
PRINT_HELP("PAP3_HELP2") // Select the camera from the phone with ~PAD_DPAD_ALL~.
|
|
bHelpPrint2 = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("PAP3_HELP2")
|
|
CLEAR_HELP()
|
|
ENDIF
|
|
IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("appCamera"))> 0
|
|
iHelp ++
|
|
ENDIF
|
|
ENDIF
|
|
IF NOT IS_PHONE_ONSCREEN()
|
|
iHelp = 0
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
CASE 2 // Tells player to frame the shot and take picture
|
|
|
|
IF b_Correct_Pic_Taken = TRUE
|
|
iHelp ++
|
|
ELSE
|
|
IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("appCamera")) = 0
|
|
bHelpPrint2 = FALSE
|
|
bHelpPrint3 = FALSE
|
|
iHelp = 1
|
|
ELIF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("appCamera"))> 0
|
|
//IF NOT IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("PAP3_HELP3")
|
|
IF bHelpPrint3 = FALSE
|
|
//PRINT_HELP("PAP3_HELP3")//Frame your shot then take the picture with ~PAD_A~.
|
|
bHelpPrint3 = TRUE
|
|
ENDIF
|
|
//ENDIF
|
|
ElIF NOT IS_PHONE_ONSCREEN()
|
|
iHelp = 0
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
CASE 3 // PHOTO HAS BEEN TAKEN - WAITING FOR PLAYER TO SEND
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
ELSE // Switches to simple phone help if player has used camera before.
|
|
IF b_Correct_Pic_Taken = FALSE
|
|
IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("appCamera"))= 0
|
|
IF NOT IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("PAP3_HELP6")
|
|
IF bPrintNonSimpleHelp = FALSE
|
|
PRINT_HELP("PAP3_HELP6") // Use you phone to take the picture
|
|
bPrintNonSimpleHelp = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("appCamera"))> 0
|
|
IF IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("PAP3_HELP6") // Use you phone to take the picture
|
|
CLEAR_HELP()
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
///
|
|
/// MAIN MISSION FLOW FUNCTIONS / PROCEDURES
|
|
///
|
|
|
|
/// PURPOSE:
|
|
/// Handles initial phone call to the player
|
|
PROC INITIAL_PHONE_CALL()
|
|
/*
|
|
iPlaybackProgress = iPlaybackProgress
|
|
fPlayBackSpeed = 1
|
|
SWITCH iRecordingProgress
|
|
CASE 0
|
|
INIT_UBER_RECORDING("PAP3A2")
|
|
iRecordingProgress++
|
|
BREAK
|
|
|
|
CASE 1
|
|
UPDATE_UBER_RECORDING()
|
|
CLEAR_AREA_OF_VEHICLES(<<260.3405, 339.6353, 104.5707>>,40)
|
|
BREAK
|
|
ENDSWITCH
|
|
*/
|
|
/*
|
|
bSetPieceCarsDontSwitchToAI = TRUE
|
|
IF HAS_POLICE_SCENE_LOADED()
|
|
REQUEST_VEHICLE_RECORDING(300,"PAP3A2")
|
|
//REQUEST_VEHICLE_RECORDING(500,"PAP3A2")
|
|
|
|
|
|
IF NOT DOES_ENTITY_EXIST(mvPoppyCar.mVehicle)
|
|
CreateMissionVehicle(mvPoppyCar)
|
|
SET_VEHICLE_COLOUR_COMBINATION(mvPoppyCar.mVehicle,5) //4
|
|
SET_VEHICLE_DOORS_LOCKED(mvPoppyCar.mVehicle,VEHICLELOCK_LOCKED)
|
|
SET_VEHICLE_MODEL_IS_SUPPRESSED(mvPoppyCar.mModel,TRUE)
|
|
SET_ENTITY_LOD_DIST(mvPoppyCar.mVehicle,180)
|
|
SET_VEHICLE_NUMBER_PLATE_TEXT(mvPoppyCar.mVehicle,"P0PPYM15")
|
|
LOWER_CONVERTIBLE_ROOF(mvPoppyCar.mVehicle, TRUE)
|
|
blipPoppyCar = CREATE_VEHICLE_BLIP(mvPoppyCar.mVehicle,TRUE)
|
|
SET_BLIP_ROUTE(blipPoppyCar,TRUE)
|
|
ENDIF
|
|
|
|
IF NOT DOES_ENTITY_EXIST(mpPoppyPed.mPed)
|
|
CreateMissionPedInVehicle(mpPoppyPed,mvPoppyCar,PEDTYPE_MISSION,FALSE,VS_DRIVER)
|
|
SET_PED_RELATIONSHIP_GROUP_HASH(mpPoppyPed.mPed,relPoppy)
|
|
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(mpPoppyPed.mPed,TRUE)
|
|
SET_PED_RELATIONSHIP_GROUP_HASH(mpPoppyPed.mPed,relCopGroup)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_HATE,relPoppy,RELGROUPHASH_PLAYER)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_HATE,RELGROUPHASH_PLAYER,relPoppy)
|
|
SET_ENTITY_LOAD_COLLISION_FLAG(mpPoppyPed.mPed,TRUE)
|
|
SET_PED_MODEL_IS_SUPPRESSED(mpPoppyPed.mModel,TRUE)
|
|
ENDIF
|
|
|
|
IF NOT DOES_ENTITY_EXIST(mvPoliceCars[0].mVehicle)
|
|
CreateMissionVehicle(mvPoliceCars[0],FALSE)
|
|
SET_VEHICLE_MODEL_IS_SUPPRESSED(mvPoliceCars[0].mModel,TRUE)
|
|
|
|
|
|
|
|
CreateMissionPedInVehicle(mpPolicePed[0],mvPoliceCars[0],PEDTYPE_COP,FALSE,VS_DRIVER)
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
//fPlaybackSpeed = 0.9
|
|
|
|
//WHILE (TRUE)
|
|
IF DOES_ENTITY_EXIST(mvPoppyCar.mVehicle)
|
|
AND DOES_ENTITY_EXIST(mpPoppyPed.mPed)
|
|
AND DOES_ENTITY_EXIST(mvPoliceCars[0].mVehicle)
|
|
AND HAS_VEHICLE_RECORDING_BEEN_LOADED(300,"PAP3A2")
|
|
//AND HAS_VEHICLE_RECORDING_BEEN_LOADED(500,"PAP3A2")
|
|
SWITCH iPlaybackProgress
|
|
|
|
// **** INITIALISE UBER PLAYBACK ****
|
|
CASE 0
|
|
bSetPieceCarsDontSwitchToAI = TRUE
|
|
INIT_UBER_RECORDING("PAP3A2")
|
|
bSetPieceCarsDontSwitchToAI = TRUE
|
|
INITIALISE_UBER_PLAYBACK("PAP3A2",300)
|
|
bSetPieceCarsDontSwitchToAI = TRUE
|
|
|
|
|
|
TrafficCarPos[0] = <<511.2060, 261.3451, 102.3948>>
|
|
TrafficCarQuatX[0] = -0.0108
|
|
TrafficCarQuatY[0] = -0.0073
|
|
TrafficCarQuatZ[0] = 0.8187
|
|
TrafficCarQuatW[0] = -0.5740
|
|
TrafficCarRecording[0] = 1
|
|
TrafficCarStartime[0] = 4830.0000
|
|
TrafficCarModel[0] = DUMMY_MODEL_FOR_SCRIPT //buccaneer
|
|
|
|
TrafficCarPos[1] = <<439.2651, 292.9166, 102.4979>>
|
|
TrafficCarQuatX[1] = -0.0095
|
|
TrafficCarQuatY[1] = 0.0129
|
|
TrafficCarQuatZ[1] = 0.5734
|
|
TrafficCarQuatW[1] = 0.8191
|
|
TrafficCarRecording[1] = 2
|
|
TrafficCarStartime[1] = 7272.0000
|
|
TrafficCarModel[1] = washington
|
|
|
|
TrafficCarPos[2] = <<402.5407, 299.8293, 102.4301>>
|
|
TrafficCarQuatX[2] = -0.0149
|
|
TrafficCarQuatY[2] = -0.0090
|
|
TrafficCarQuatZ[2] = 0.8170
|
|
TrafficCarQuatW[2] = -0.5764
|
|
TrafficCarRecording[2] = 3
|
|
TrafficCarStartime[2] = 8262.0000
|
|
TrafficCarModel[2] = cogcabrio
|
|
|
|
TrafficCarPos[3] = <<366.4927, 309.5941, 103.0008>>
|
|
TrafficCarQuatX[3] = -0.0070
|
|
TrafficCarQuatY[3] = -0.0165
|
|
TrafficCarQuatZ[3] = 0.7886
|
|
TrafficCarQuatW[3] = -0.6146
|
|
TrafficCarRecording[3] = 4
|
|
TrafficCarStartime[3] = 9318.0000
|
|
TrafficCarModel[3] = asterope
|
|
|
|
TrafficCarPos[4] = <<216.6715, 353.7352, 105.7779>>
|
|
TrafficCarQuatX[4] = -0.0200
|
|
TrafficCarQuatY[4] = -0.0268
|
|
TrafficCarQuatZ[4] = 0.8125
|
|
TrafficCarQuatW[4] = -0.5820
|
|
TrafficCarRecording[4] = 5
|
|
TrafficCarStartime[4] = 13542.0000
|
|
TrafficCarModel[4] = Baller
|
|
|
|
TrafficCarPos[5] = <<277.4835, 419.0747, 118.9695>>
|
|
TrafficCarQuatX[5] = -0.0142
|
|
TrafficCarQuatY[5] = -0.0284
|
|
TrafficCarQuatZ[5] = 0.8705
|
|
TrafficCarQuatW[5] = -0.4911
|
|
TrafficCarRecording[5] = 6
|
|
TrafficCarStartime[5] = 15984.0000
|
|
TrafficCarModel[5] = asterope
|
|
|
|
TrafficCarPos[6] = <<237.4069, 472.6873, 124.6924>>
|
|
TrafficCarQuatX[6] = -0.0221
|
|
TrafficCarQuatY[6] = -0.0790
|
|
TrafficCarQuatZ[6] = 0.9966
|
|
TrafficCarQuatW[6] = -0.0111
|
|
TrafficCarRecording[6] = 7
|
|
TrafficCarStartime[6] = 17370.0000
|
|
TrafficCarModel[6] = bullet
|
|
|
|
TrafficCarPos[7] = <<256.0805, 540.5441, 140.1842>>
|
|
TrafficCarQuatX[7] = -0.0117
|
|
TrafficCarQuatY[7] = -0.0054
|
|
TrafficCarQuatZ[7] = 0.8057
|
|
TrafficCarQuatW[7] = 0.5922
|
|
TrafficCarRecording[7] = 8
|
|
TrafficCarStartime[7] = 20208.0000
|
|
TrafficCarModel[7] = taxi
|
|
|
|
TrafficCarPos[8] = <<282.6450, 612.2068, 154.1533>>
|
|
TrafficCarQuatX[8] = 0.0177
|
|
TrafficCarQuatY[8] = -0.0114
|
|
TrafficCarQuatZ[8] = 0.4243
|
|
TrafficCarQuatW[8] = 0.9053
|
|
TrafficCarRecording[8] = 9
|
|
TrafficCarStartime[8] = 23177.0000
|
|
TrafficCarModel[8] = asterope
|
|
|
|
TrafficCarPos[9] = <<273.0108, 629.6464, 155.7711>>
|
|
TrafficCarQuatX[9] = -0.0256
|
|
TrafficCarQuatY[9] = -0.0694
|
|
TrafficCarQuatZ[9] = 0.9907
|
|
TrafficCarQuatW[9] = 0.1141
|
|
TrafficCarRecording[9] = 10
|
|
TrafficCarStartime[9] = 23639.0000
|
|
TrafficCarModel[9] = Baller
|
|
|
|
TrafficCarPos[10] = <<283.0059, 647.7762, 158.7737>>
|
|
TrafficCarQuatX[10] = 0.1093
|
|
TrafficCarQuatY[10] = -0.0014
|
|
TrafficCarQuatZ[10] = -0.1659
|
|
TrafficCarQuatW[10] = 0.9801
|
|
TrafficCarRecording[10] = 11
|
|
TrafficCarStartime[10] = 24629.0000
|
|
TrafficCarModel[10] = buccaneer
|
|
|
|
TrafficCarPos[11] = <<279.8875, 654.1951, 160.2324>>
|
|
TrafficCarQuatX[11] = -0.0411
|
|
TrafficCarQuatY[11] = -0.1096
|
|
TrafficCarQuatZ[11] = 0.9777
|
|
TrafficCarQuatW[11] = 0.1744
|
|
TrafficCarRecording[11] = 12
|
|
TrafficCarStartime[11] = 24893.0000
|
|
TrafficCarModel[11] = feltzer2
|
|
|
|
TrafficCarPos[12] = <<339.0951, 462.1592, 148.3102>>
|
|
TrafficCarQuatX[12] = 0.0028
|
|
TrafficCarQuatY[12] = -0.0627
|
|
TrafficCarQuatZ[12] = 0.9664
|
|
TrafficCarQuatW[12] = -0.2492
|
|
TrafficCarRecording[12] = 13
|
|
TrafficCarStartime[12] = 30523.0000
|
|
TrafficCarModel[12] = baller2
|
|
|
|
TrafficCarPos[13] = <<472.2878, 393.8821, 138.2691>>
|
|
TrafficCarQuatX[13] = 0.0207
|
|
TrafficCarQuatY[13] = 0.0216
|
|
TrafficCarQuatZ[13] = 0.2261
|
|
TrafficCarQuatW[13] = 0.9736
|
|
TrafficCarRecording[13] = 14
|
|
TrafficCarStartime[13] = 37056.0000
|
|
TrafficCarModel[13] = feltzer2
|
|
|
|
TrafficCarPos[14] = <<511.7101, 333.8549, 131.9026>>
|
|
TrafficCarQuatX[14] = 0.0424
|
|
TrafficCarQuatY[14] = 0.0430
|
|
TrafficCarQuatZ[14] = 0.6257
|
|
TrafficCarQuatW[14] = 0.7777
|
|
TrafficCarRecording[14] = 15
|
|
TrafficCarStartime[14] = 38508.0000
|
|
TrafficCarModel[14] = cogcabrio
|
|
|
|
TrafficCarPos[15] = <<602.7618, 355.3197, 118.5270>>
|
|
TrafficCarQuatX[15] = -0.0574
|
|
TrafficCarQuatY[15] = 0.0440
|
|
TrafficCarQuatZ[15] = -0.5245
|
|
TrafficCarQuatW[15] = 0.8483
|
|
TrafficCarRecording[15] = 16
|
|
TrafficCarStartime[15] = 44316.0000
|
|
TrafficCarModel[15] = asterope
|
|
|
|
TrafficCarPos[16] = <<785.3267, 340.3435, 115.3910>>
|
|
TrafficCarQuatX[16] = -0.0268
|
|
TrafficCarQuatY[16] = -0.0051
|
|
TrafficCarQuatZ[16] = 0.7557
|
|
TrafficCarQuatW[16] = 0.6544
|
|
TrafficCarRecording[16] = 17
|
|
TrafficCarStartime[16] = 49794.0000
|
|
TrafficCarModel[16] = DUMMY_MODEL_FOR_SCRIPT //Baller
|
|
|
|
TrafficCarPos[17] = <<845.4529, 360.0610, 117.3146>>
|
|
TrafficCarQuatX[17] = 0.0148
|
|
TrafficCarQuatY[17] = 0.0047
|
|
TrafficCarQuatZ[17] = -0.4289
|
|
TrafficCarQuatW[17] = 0.9032
|
|
TrafficCarRecording[17] = 18
|
|
TrafficCarStartime[17] = 51642.0000
|
|
TrafficCarModel[17] = cogcabrio
|
|
|
|
TrafficCarPos[18] = <<880.3807, 403.1809, 118.6872>>
|
|
TrafficCarQuatX[18] = -0.0194
|
|
TrafficCarQuatY[18] = -0.0024
|
|
TrafficCarQuatZ[18] = 0.9411
|
|
TrafficCarQuatW[18] = 0.3375
|
|
TrafficCarRecording[18] = 19
|
|
TrafficCarStartime[18] = 53292.0000
|
|
TrafficCarModel[18] = baller2
|
|
|
|
TrafficCarPos[19] = <<911.8809, 467.8841, 120.2237>>
|
|
TrafficCarQuatX[19] = -0.0008
|
|
TrafficCarQuatY[19] = -0.0055
|
|
TrafficCarQuatZ[19] = 0.9990
|
|
TrafficCarQuatW[19] = 0.0435
|
|
TrafficCarRecording[19] = 20
|
|
TrafficCarStartime[19] = 55536.0000
|
|
TrafficCarModel[19] = coquette
|
|
|
|
TrafficCarPos[20] = <<916.1319, 504.1710, 119.8686>>
|
|
TrafficCarQuatX[20] = -0.0102
|
|
TrafficCarQuatY[20] = 0.0531
|
|
TrafficCarQuatZ[20] = 0.0939
|
|
TrafficCarQuatW[20] = 0.9941
|
|
TrafficCarRecording[20] = 21
|
|
TrafficCarStartime[20] = 56657.0000
|
|
TrafficCarModel[20] = cogcabrio
|
|
|
|
TrafficCarPos[21] = <<1072.1567, 441.7333, 91.5848>>
|
|
TrafficCarQuatX[21] = 0.0051
|
|
TrafficCarQuatY[21] = -0.0205
|
|
TrafficCarQuatZ[21] = 0.9189
|
|
TrafficCarQuatW[21] = -0.3940
|
|
TrafficCarRecording[21] = 22
|
|
TrafficCarStartime[21] = 65264.0000
|
|
TrafficCarModel[21] = feltzer2
|
|
|
|
TrafficCarPos[22] = <<1109.0264, 416.9391, 83.1078>>
|
|
TrafficCarQuatX[22] = 0.0054
|
|
TrafficCarQuatY[22] = -0.0016
|
|
TrafficCarQuatZ[22] = 0.9268
|
|
TrafficCarQuatW[22] = 0.3756
|
|
TrafficCarRecording[22] = 23
|
|
TrafficCarStartime[22] = 66584.0000
|
|
TrafficCarModel[22] = cogcabrio
|
|
|
|
TrafficCarPos[23] = <<1120.3549, 421.6550, 82.8984>>
|
|
TrafficCarQuatX[23] = 0.0164
|
|
TrafficCarQuatY[23] = 0.0015
|
|
TrafficCarQuatZ[23] = 0.9267
|
|
TrafficCarQuatW[23] = 0.3754
|
|
TrafficCarRecording[23] = 24
|
|
TrafficCarStartime[23] = 66980.0000
|
|
TrafficCarModel[23] = coquette
|
|
|
|
TrafficCarPos[24] = <<1119.2665, 402.3738, 83.0242>>
|
|
TrafficCarQuatX[24] = -0.0020
|
|
TrafficCarQuatY[24] = -0.0141
|
|
TrafficCarQuatZ[24] = -0.3897
|
|
TrafficCarQuatW[24] = 0.9208
|
|
TrafficCarRecording[24] = 25
|
|
TrafficCarStartime[24] = 67046.0000
|
|
TrafficCarModel[24] = cogcabrio
|
|
|
|
TrafficCarPos[25] = <<1154.8197, 355.7718, 90.8335>>
|
|
TrafficCarQuatX[25] = -0.0158
|
|
TrafficCarQuatY[25] = 0.0060
|
|
TrafficCarQuatZ[25] = 0.9599
|
|
TrafficCarQuatW[25] = -0.2799
|
|
TrafficCarRecording[25] = 26
|
|
TrafficCarStartime[25] = 68564.0000
|
|
TrafficCarModel[25] = coquette
|
|
|
|
TrafficCarPos[26] = <<983.0621, 173.4691, 80.5089>>
|
|
TrafficCarQuatX[26] = -0.0049
|
|
TrafficCarQuatY[26] = 0.0019
|
|
TrafficCarQuatZ[26] = 0.9411
|
|
TrafficCarQuatW[26] = 0.3380
|
|
TrafficCarRecording[26] = 27
|
|
TrafficCarStartime[26] = 77247.0000
|
|
TrafficCarModel[26] = feltzer2
|
|
|
|
ParkedCarPos[0] = <<852.1576, -124.6406, 78.5719>>
|
|
ParkedCarQuatX[0] = -0.0278
|
|
ParkedCarQuatY[0] = -0.0124
|
|
ParkedCarQuatZ[0] = 0.9574
|
|
ParkedCarQuatW[0] = 0.2872
|
|
ParkedCarModel[0] = cogcabrio
|
|
|
|
TrafficCarPos[27] = <<812.6069, -185.2938, 72.7078>>
|
|
TrafficCarQuatX[27] = -0.0002
|
|
TrafficCarQuatY[27] = 0.0004
|
|
TrafficCarQuatZ[27] = 0.4820
|
|
TrafficCarQuatW[27] = 0.8762
|
|
TrafficCarRecording[27] = 28
|
|
TrafficCarStartime[27] = 89655.0000
|
|
TrafficCarModel[27] = BjXL
|
|
|
|
TrafficCarPos[28] = <<718.7026, -136.8279, 74.7098>>
|
|
TrafficCarQuatX[28] = -0.0057
|
|
TrafficCarQuatY[28] = -0.0031
|
|
TrafficCarQuatZ[28] = 0.8765
|
|
TrafficCarQuatW[28] = -0.4813
|
|
TrafficCarRecording[28] = 29
|
|
TrafficCarStartime[28] = 93417.0000
|
|
TrafficCarModel[28] = BUS
|
|
|
|
TrafficCarPos[29] = <<708.8309, -123.9532, 74.4544>>
|
|
TrafficCarQuatX[29] = -0.0127
|
|
TrafficCarQuatY[29] = 0.0230
|
|
TrafficCarQuatZ[29] = 0.4820
|
|
TrafficCarQuatW[29] = 0.8758
|
|
TrafficCarRecording[29] = 30
|
|
TrafficCarStartime[29] = 93945.0000
|
|
TrafficCarModel[29] = baller2
|
|
|
|
TrafficCarPos[30] = <<686.3724, -110.2447, 74.0336>>
|
|
TrafficCarQuatX[30] = -0.0118
|
|
TrafficCarQuatY[30] = 0.0160
|
|
TrafficCarQuatZ[30] = 0.4839
|
|
TrafficCarQuatW[30] = 0.8749
|
|
TrafficCarRecording[30] = 31
|
|
TrafficCarStartime[30] = 94869.0000
|
|
TrafficCarModel[30] = asterope
|
|
|
|
TrafficCarPos[31] = <<612.1208, -67.3511, 73.1600>>
|
|
TrafficCarQuatX[31] = 0.0707
|
|
TrafficCarQuatY[31] = 0.0064
|
|
TrafficCarQuatZ[31] = -0.5441
|
|
TrafficCarQuatW[31] = 0.8360
|
|
TrafficCarRecording[31] = 32
|
|
TrafficCarStartime[31] = 97311.0000
|
|
TrafficCarModel[31] = DUMMY_MODEL_FOR_SCRIPT //asterope
|
|
|
|
TrafficCarPos[32] = <<605.6122, -70.8522, 72.6917>>
|
|
TrafficCarQuatX[32] = 0.0678
|
|
TrafficCarQuatY[32] = 0.0099
|
|
TrafficCarQuatZ[32] = -0.5536
|
|
TrafficCarQuatW[32] = 0.8300
|
|
TrafficCarRecording[32] = 33
|
|
TrafficCarStartime[32] = 97443.0000
|
|
TrafficCarModel[32] = DUMMY_MODEL_FOR_SCRIPT //baller2
|
|
|
|
TrafficCarPos[33] = <<523.7166, -108.7238, 63.2222>>
|
|
TrafficCarQuatX[33] = 0.0044
|
|
TrafficCarQuatY[33] = -0.0835
|
|
TrafficCarQuatZ[33] = 0.9375
|
|
TrafficCarQuatW[33] = 0.3377
|
|
TrafficCarRecording[33] = 34
|
|
TrafficCarStartime[33] = 100809.0000
|
|
TrafficCarModel[33] = Baller
|
|
|
|
TrafficCarPos[34] = <<505.7021, -127.9252, 59.7848>>
|
|
TrafficCarQuatX[34] = -0.0227
|
|
TrafficCarQuatY[34] = -0.0599
|
|
TrafficCarQuatZ[34] = 0.9805
|
|
TrafficCarQuatW[34] = 0.1858
|
|
TrafficCarRecording[34] = 35
|
|
TrafficCarStartime[34] = 100941.0000
|
|
TrafficCarModel[34] = BjXL
|
|
|
|
TrafficCarPos[35] = <<510.6351, -130.4515, 59.3621>>
|
|
TrafficCarQuatX[35] = 0.0002
|
|
TrafficCarQuatY[35] = -0.0620
|
|
TrafficCarQuatZ[35] = 0.9802
|
|
TrafficCarQuatW[35] = 0.1878
|
|
TrafficCarRecording[35] = 36
|
|
TrafficCarStartime[35] = 101139.0000
|
|
TrafficCarModel[35] = banshee
|
|
|
|
TrafficCarPos[36] = <<513.6044, -124.3921, 60.1873>>
|
|
TrafficCarQuatX[36] = 0.0026
|
|
TrafficCarQuatY[36] = -0.0670
|
|
TrafficCarQuatZ[36] = 0.9725
|
|
TrafficCarQuatW[36] = 0.2230
|
|
TrafficCarRecording[36] = 37
|
|
TrafficCarStartime[36] = 101337.0000
|
|
TrafficCarModel[36] = asterope
|
|
|
|
TrafficCarPos[37] = <<484.3174, -155.8481, 56.6016>>
|
|
TrafficCarQuatX[37] = 0.0008
|
|
TrafficCarQuatY[37] = -0.1155
|
|
TrafficCarQuatZ[37] = 0.7595
|
|
TrafficCarQuatW[37] = -0.6402
|
|
TrafficCarRecording[37] = 38
|
|
TrafficCarStartime[37] = 101865.0000
|
|
TrafficCarModel[37] = Baller
|
|
|
|
TrafficCarPos[38] = <<515.3390, -244.6399, 48.6464>>
|
|
TrafficCarQuatX[38] = -0.0232
|
|
TrafficCarQuatY[38] = -0.0304
|
|
TrafficCarQuatZ[38] = 0.9764
|
|
TrafficCarQuatW[38] = 0.2127
|
|
TrafficCarRecording[38] = 39
|
|
TrafficCarStartime[38] = 103845.0000
|
|
TrafficCarModel[38] = Baller
|
|
|
|
TrafficCarPos[39] = <<508.6511, -280.4524, 46.7813>>
|
|
TrafficCarQuatX[39] = 0.0219
|
|
TrafficCarQuatY[39] = 0.0130
|
|
TrafficCarQuatZ[39] = -0.2077
|
|
TrafficCarQuatW[39] = 0.9779
|
|
TrafficCarRecording[39] = 40
|
|
TrafficCarStartime[39] = 105165.0000
|
|
TrafficCarModel[39] = BUS
|
|
|
|
TrafficCarPos[40] = <<496.9088, -318.2034, 44.9216>>
|
|
TrafficCarQuatX[40] = 0.0249
|
|
TrafficCarQuatY[40] = 0.0114
|
|
TrafficCarQuatZ[40] = 0.5613
|
|
TrafficCarQuatW[40] = 0.8271
|
|
TrafficCarRecording[40] = 41
|
|
TrafficCarStartime[40] = 105957.0000
|
|
TrafficCarModel[40] = asterope
|
|
|
|
TrafficCarPos[41] = <<482.1582, -326.7783, 45.4484>>
|
|
TrafficCarQuatX[41] = 0.0144
|
|
TrafficCarQuatY[41] = -0.0290
|
|
TrafficCarQuatZ[41] = 0.8114
|
|
TrafficCarQuatW[41] = -0.5836
|
|
TrafficCarRecording[41] = 42
|
|
TrafficCarStartime[41] = 106287.0000
|
|
TrafficCarModel[41] = asterope
|
|
|
|
TrafficCarPos[42] = <<464.0194, -319.4027, 47.2238>>
|
|
TrafficCarQuatX[42] = 0.0314
|
|
TrafficCarQuatY[42] = -0.0059
|
|
TrafficCarQuatZ[42] = 0.9494
|
|
TrafficCarQuatW[42] = 0.3125
|
|
TrafficCarRecording[42] = 43
|
|
TrafficCarStartime[42] = 106353.0000
|
|
TrafficCarModel[42] = Baller
|
|
|
|
TrafficCarPos[43] = <<459.4142, -337.1878, 47.1687>>
|
|
TrafficCarQuatX[43] = 0.0061
|
|
TrafficCarQuatY[43] = 0.0760
|
|
TrafficCarQuatZ[43] = -0.2966
|
|
TrafficCarQuatW[43] = 0.9520
|
|
TrafficCarRecording[43] = 44
|
|
TrafficCarStartime[43] = 106815.0000
|
|
TrafficCarModel[43] = baller2
|
|
|
|
TrafficCarPos[44] = <<386.0724, -405.9861, 46.3795>>
|
|
TrafficCarQuatX[44] = 0.0131
|
|
TrafficCarQuatY[44] = -0.0083
|
|
TrafficCarQuatZ[44] = -0.5920
|
|
TrafficCarQuatW[44] = 0.8058
|
|
TrafficCarRecording[44] = 45
|
|
TrafficCarStartime[44] = 109389.0000
|
|
TrafficCarModel[44] = Baller
|
|
|
|
TrafficCarPos[45] = <<344.1942, -423.8685, 44.2940>>
|
|
TrafficCarQuatX[45] = 0.0281
|
|
TrafficCarQuatY[45] = -0.0016
|
|
TrafficCarQuatZ[45] = -0.3989
|
|
TrafficCarQuatW[45] = 0.9166
|
|
TrafficCarRecording[45] = 46
|
|
TrafficCarStartime[45] = 110643.0000
|
|
TrafficCarModel[45] = Vader
|
|
|
|
TrafficCarPos[46] = <<295.9982, -449.7546, 42.9940>>
|
|
TrafficCarQuatX[46] = -0.0033
|
|
TrafficCarQuatY[46] = -0.0207
|
|
TrafficCarQuatZ[46] = 0.9991
|
|
TrafficCarQuatW[46] = 0.0380
|
|
TrafficCarRecording[46] = 47
|
|
TrafficCarStartime[46] = 113019.0000
|
|
TrafficCarModel[46] = asterope
|
|
|
|
SetPieceCarPos[0] = <<636.0844, 221.4270, 98.7137>>
|
|
SetPieceCarQuatX[0] = 0.0558
|
|
SetPieceCarQuatY[0] = 0.0284
|
|
SetPieceCarQuatZ[0] = 0.6062
|
|
SetPieceCarQuatW[0] = 0.7928
|
|
SetPieceCarRecording[0] = 499
|
|
SetPieceCarStartime[0] = 900.0000 //500.0000
|
|
SetPieceCarRecordingSpeed[0] = 1.0000
|
|
SetPieceCarModel[0] = police3
|
|
|
|
|
|
SetPieceCarPos[1] = <<545.7987, 195.0462, 100.8242>>
|
|
SetPieceCarQuatX[1] = 0.0227
|
|
SetPieceCarQuatY[1] = -0.0209
|
|
SetPieceCarQuatZ[1] = -0.2162
|
|
SetPieceCarQuatW[1] = 0.9759
|
|
SetPieceCarRecording[1] = 500
|
|
SetPieceCarStartime[1] = 40200.0000 //40000.0000
|
|
SetPieceCarRecordingSpeed[1] = 1.0000
|
|
SetPieceCarModel[1] = police3
|
|
|
|
SetPieceCarPos[2] = <<187.4046, -359.7074, 43.5742>>
|
|
SetPieceCarQuatX[2] = 0.0259
|
|
SetPieceCarQuatY[2] = 0.0031
|
|
SetPieceCarQuatZ[2] = -0.3841
|
|
SetPieceCarQuatW[2] = 0.9229
|
|
SetPieceCarRecording[2] = 501
|
|
SetPieceCarStartime[2] = 104000.0000
|
|
SetPieceCarRecordingSpeed[2] = 1.0000
|
|
SetPieceCarModel[2] = police3
|
|
|
|
|
|
|
|
|
|
SetPieceCarPos[] = <<891.8881, 426.6213, 119.3326>>
|
|
SetPieceCarQuatX[] = -0.0052
|
|
SetPieceCarQuatY[] = -0.0170
|
|
SetPieceCarQuatZ[] = 0.9645
|
|
SetPieceCarQuatW[] = 0.2634
|
|
SetPieceCarRecording[] = 600
|
|
SetPieceCarStartime[] = 37000.0000
|
|
SetPieceCarRecordingSpeed[] = 1.0000
|
|
SetPieceCarModel[] = Pounder
|
|
|
|
|
|
|
|
SetPieceCarPos[] = <<1151.9595, 370.9727, 91.3383>>
|
|
SetPieceCarQuatX[] = -0.0041
|
|
SetPieceCarQuatY[] = -0.0063
|
|
SetPieceCarQuatZ[] = 0.3161
|
|
SetPieceCarQuatW[] = 0.9487
|
|
SetPieceCarRecording[] = 601
|
|
SetPieceCarStartime[] = 57000.0000
|
|
SetPieceCarRecordingSpeed[] = 1.0000
|
|
SetPieceCarModel[] = scrap
|
|
|
|
|
|
|
|
|
|
|
|
// paste array of data here
|
|
|
|
iPlaybackProgress++
|
|
bSetPieceCarsDontSwitchToAI = TRUE
|
|
bTrafficDontSwitchToAI = TRUE
|
|
BREAK
|
|
|
|
|
|
// **** START PLAYBACK OF MAIN CAR ****
|
|
CASE 1
|
|
INIT_UBER_RECORDING("PAP3A2")
|
|
START_PLAYBACK_RECORDED_VEHICLE(mvPoppyCar.mVehicle, 300,"PAP3A2")
|
|
//START_PLAYBACK_RECORDED_VEHICLE(mvPoliceCars[0].mVehicle, 500,"PAP3A2")
|
|
|
|
iPlaybackProgress++
|
|
bSetPieceCarsDontSwitchToAI = TRUE
|
|
bTrafficDontSwitchToAI = TRUE
|
|
BREAK
|
|
|
|
|
|
// **** UPDATE UBER PLAYBACK ****
|
|
CASE 2
|
|
|
|
bPlayTrafficRecordingEvenIfPlayerIsAheadOfChase = TRUE
|
|
//UPDATE_UBER_RECORDING()
|
|
bSetPieceCarsDontSwitchToAI = TRUE
|
|
bTrafficDontSwitchToAI = TRUE
|
|
CreatePoliceChopper()
|
|
IF IS_VEHICLE_DRIVEABLE(mvPoppyCar.mVehicle)
|
|
IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(mvPoppyCar.mVehicle)
|
|
// work out playback speed (using slowdown speed up etc. based on how far away player is etc)
|
|
// There is a useful function CALCULATE_PLAYBACK_SPEED in traffic.sch that does this
|
|
|
|
//IF GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(),mvPoppyCar.mVehicle) < GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(),mvPoliceCars[0].mVehicle)
|
|
// fPlayBackSpeed = (140.0 - (GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(),mvPoppyCar.mVehicle)))
|
|
//ELSE
|
|
// fPlayBackSpeed = (140.0 - (GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(),mvPoliceCars[0].mVehicle)))
|
|
//ENDIF
|
|
|
|
|
|
|
|
// SET_PLAYBACK_SPEED(mvPoliceCars[0].mVehicle, fPlaybackSpeed)
|
|
fPlaybackSpeed = 1
|
|
SET_PLAYBACK_SPEED(mvPoppyCar.mVehicle, fPlaybackSpeed)
|
|
//CREATE_ALL_WAITING_UBER_CARS()
|
|
|
|
bSetPieceCarsDontSwitchToAI = TRUE
|
|
UPDATE_UBER_RECORDING()
|
|
UPDATE_UBER_PLAYBACK(mvPoppyCar.mVehicle, fPlaybackSpeed)
|
|
|
|
bSetPieceCarsDontSwitchToAI = TRUE
|
|
ELSE
|
|
// finish
|
|
|
|
|
|
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
ENDIF
|
|
*/
|
|
//WAIT(0)
|
|
//ENDWHILE
|
|
|
|
TEXT_LABEL_23 label = GET_CURRENTLY_PLAYING_STANDARD_CONVERSATION_LABEL()
|
|
|
|
SWITCH eSubStage
|
|
CASE SS_SETUP
|
|
|
|
ADD_PED_FOR_DIALOGUE(sSpeach, 1, PLAYER_PED_ID(), "FRANKLIN")
|
|
ADD_PED_FOR_DIALOGUE(sSpeach, 3, NULL, "BEVERLY")
|
|
|
|
SET_PLAYER_CONTROL(PLAYER_ID(),TRUE)
|
|
|
|
CLEAR_AREA_OF_VEHICLES(<< 691.2697, 10.5739, 83.1879 >>,100.0,FALSE,TRUE) // CLEAR FIRST JUNCTION OF VEHICLES
|
|
|
|
IF bFinishedSkipping = TRUE
|
|
IF IS_SCREEN_FADED_OUT()
|
|
IF NOT IS_SCREEN_FADING_IN()
|
|
SAFE_FADE_SCREEN_IN_FROM_BLACK(500,FALSE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
//fSlowFact = 250
|
|
bConversationActive = FALSE
|
|
//fPlaybackAccel = 0.0
|
|
SAFE_REMOVE_BLIP(biMissionBlip)
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_MISSION, "PAP3A****Init phonecall****")
|
|
#ENDIF
|
|
|
|
SET_ALL_SHOPS_TEMPORARILY_UNAVAILABLE(TRUE)
|
|
|
|
DISABLE_TAXI_HAILING(TRUE)
|
|
|
|
eSubStage = SS_UPDATE
|
|
|
|
BREAK
|
|
|
|
CASE SS_UPDATE
|
|
|
|
IF NOT bConversationActive
|
|
IF PLAYER_CALL_CHAR_CELLPHONE(sSpeach, CHAR_BEVERLY, "PAP3AAU", "PAP3A_INTRO", CONV_PRIORITY_VERY_HIGH)
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_MISSION, "PAP3A****TRIGGER PHONE****")
|
|
#ENDIF
|
|
REPLAY_RECORD_BACK_FOR_TIME(1.0, 10.0, REPLAY_IMPORTANCE_LOWEST)
|
|
bConversationActive = TRUE
|
|
ENDIF
|
|
ELSE
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF HAS_CELLPHONE_CALL_FINISHED()
|
|
eSubStage = SS_CLEANUP
|
|
ENDIF
|
|
ENDIF
|
|
IF ARE_STRINGS_EQUAL(label,"PAP3A_INTRO_3")
|
|
eSubStage = SS_CLEANUP
|
|
ENDIF
|
|
//IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<610.134766,159.861359,95.472145>>, <<160.532639,319.985107,208.461792>>, 105.750000)
|
|
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<186.165924,299.047302,86.186226>>, <<653.020813,137.619247,179.561157>>, 133.500000)
|
|
AND IS_HEADING_OK(GET_ENTITY_HEADING(PLAYER_PED_ID()),339.0575,90)
|
|
//IF GET_DISTANCE_BETWEEN_ENTITY_AND_COORD(PLAYER_PED_ID(),<<260.3616, 339.5469, 104.5709>>) < GET_DISTANCE_BETWEEN_ENTITY_AND_COORD(PLAYER_PED_ID(),<<421.7929, 295.6490, 102.0579>>)
|
|
// bSkipMore = TRUE
|
|
//ENDIF
|
|
eSubStage = SS_CLEANUP
|
|
ENDIF
|
|
ENDIF
|
|
|
|
HANDLE_POLICE_CHASE()
|
|
|
|
IF IS_VEHICLE_OK(mvPoppyCar.mVehicle)
|
|
IF IS_ENTITY_IN_RANGE_ENTITY(mvPoppyCar.mVehicle,PLAYER_PED_ID(),200)
|
|
eSubStage = SS_CLEANUP
|
|
/*
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_MISSION, "PAP3A****HANG UP PHONE****")
|
|
#ENDIF
|
|
HANG_UP_AND_PUT_AWAY_PHONE()
|
|
*/
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
CASE SS_CLEANUP
|
|
|
|
//CLEAR_PRINTS()
|
|
|
|
bMainObjectiveDisplayed = FALSE
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_MISSION, "PAP3A****Cleanup phonecall****")
|
|
#ENDIF
|
|
|
|
SetStage(MS_GO_TO_LOCATION)
|
|
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Handles player going to the inital area location
|
|
PROC GO_TO_LOCATION()
|
|
|
|
SWITCH eSubStage
|
|
CASE SS_SETUP
|
|
|
|
//SAFE_REMOVE_BLIP(biMissionBlip)
|
|
|
|
//CLEAR_AREA_OF_VEHICLES(<< 691.2697, 10.5739, 83.1879 >>,100.0,FALSE,TRUE) // CLEAR FIRST JUNCTION OF VEHICLES
|
|
|
|
eSubStage = SS_UPDATE
|
|
|
|
BREAK
|
|
|
|
CASE SS_UPDATE
|
|
|
|
HANDLE_POLICE_CHASE()
|
|
|
|
IF IS_VEHICLE_OK(mvPoppyCar.mVehicle)
|
|
IF NOT DOES_BLIP_EXIST(blipPoppyCar)
|
|
//blipPoppyCar = CREATE_VEHICLE_BLIP(mvPoppyCar.mVehicle,TRUE)
|
|
IF bMainObjectiveDisplayed = FALSE
|
|
bMainObjectiveDisplayed = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF bPoliceChaseCreated = TRUE
|
|
IF IS_VEHICLE_OK(mvPoppyCar.mVehicle)
|
|
/*
|
|
IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
IF GET_ENTITY_SPEED(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID())) <= 30.0 //IF PLAYER IS MOVING SLOW TO LOCATION, USE SMALL DISTANCE
|
|
IF IS_ENTITY_AT_COORD(PLAYER_PED_ID(),vPoppyInitialLocation,<<FOUND_DIS,FOUND_DIS,FOUND_DIS>>)
|
|
OR IS_ENTITY_AT_COORD(PLAYER_PED_ID(), << 785.3011, 158.9101, 80.1365 >>,<<FOUND_DIS,FOUND_DIS,FOUND_DIS>>)
|
|
eSubStage = SS_CLEANUP
|
|
ENDIF
|
|
ELSE // IF PLAYER IS TRAVELLING FAST TO LOCATION USE LARGER DETECTIION DISTANCE
|
|
IF IS_ENTITY_AT_COORD(PLAYER_PED_ID(),vPoppyInitialLocation,<<FOUND_DIS2,FOUND_DIS2,FOUND_DIS2>>)
|
|
OR IS_ENTITY_AT_COORD(PLAYER_PED_ID(), << 785.3011, 158.9101, 80.1365 >>,<<FOUND_DIS2,FOUND_DIS2,FOUND_DIS2>>)
|
|
eSubStage = SS_CLEANUP
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF IS_ENTITY_AT_COORD(PLAYER_PED_ID(),vPoppyInitialLocation,<<FOUND_DIS,FOUND_DIS,FOUND_DIS>>)
|
|
OR IS_ENTITY_AT_COORD(PLAYER_PED_ID(), << 785.3011, 158.9101, 80.1365 >>,<<FOUND_DIS,FOUND_DIS,FOUND_DIS>>)
|
|
eSubStage = SS_CLEANUP
|
|
ENDIF
|
|
ENDIF
|
|
*/
|
|
eSubStage = SS_CLEANUP
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
CASE SS_CLEANUP
|
|
|
|
//CLEAR_PRINTS()
|
|
|
|
bMainObjectiveDisplayed = FALSE
|
|
|
|
SetStage(MS_CHASE_POPPY)
|
|
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Handles player chasing POPPY's car
|
|
PROC CHASE_POPPY()
|
|
|
|
//PRINTFLOAT(GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(),mvPoppyCar.mVehicle))
|
|
//PRINTNL()
|
|
//FLOAT fRange
|
|
|
|
IF bPoliceAttacking
|
|
++iWanted
|
|
IF IS_ENTITY_DEAD(mpPoppyPed.mPed)
|
|
OR IS_PED_INJURED(mpPoppyPed.mPed)
|
|
SET_FAIL_REASON(FAIL_POPPY_KILLED)
|
|
EXIT
|
|
ELSE
|
|
IF iWanted > 30
|
|
SET_FAIL_REASON(FAIL_POLICE_INTER)
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
SWITCH eSubStage
|
|
CASE SS_SETUP
|
|
|
|
bDelayMusic = FALSE
|
|
IF NOT IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
TRIGGER_MUSIC_EVENT("PAP3_START")
|
|
ELSE
|
|
TRIGGER_MUSIC_EVENT("PAP3_START_FORA")
|
|
bDelayMusic = TRUE
|
|
iTimerDelayMusic = GET_GAME_TIMER()
|
|
ENDIF
|
|
|
|
IF bMainObjectiveDisplayed = FALSE
|
|
IF NOT IS_REPLAY_IN_PROGRESS()
|
|
IF HAS_CELLPHONE_CALL_FINISHED()
|
|
PRINT_NOW("PAP3_03", DEFAULT_GOD_TEXT_TIME, 1) //"Persue poppy"
|
|
bMainObjectiveDisplayed = TRUE
|
|
ENDIF
|
|
ELSE
|
|
IF GET_REPLAY_MID_MISSION_STAGE() < 1
|
|
IF HAS_CELLPHONE_CALL_FINISHED()
|
|
PRINT_NOW("PAP3_03", DEFAULT_GOD_TEXT_TIME, 1) //"Persue poppy"
|
|
bMainObjectiveDisplayed = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
SET_INSTANCE_PRIORITY_HINT(INSTANCE_HINT_DRIVING)
|
|
|
|
bStatsFarFromPoppy = FALSE
|
|
|
|
bPrintWantedHelp = FALSE
|
|
|
|
PLAYBACK_UBER_RECORDING()
|
|
|
|
SAFE_FADE_SCREEN_IN_FROM_BLACK(DEFAULT_FADE_TIME,FALSE)
|
|
|
|
REQUEST_MODEL(POLMAV)
|
|
|
|
bDoneDelayedFadeIn = FALSE
|
|
|
|
bPrintCatchUp = FALSE
|
|
|
|
iCopCrashSeq1 = 0
|
|
|
|
iSeqCasino = 0
|
|
|
|
fHighPlaybackSpeedClamp = 1.0
|
|
|
|
iRandomTrafficSeq = 0
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_MISSION, "PAP3A****Init chase poppy****")
|
|
#ENDIF
|
|
|
|
iShockingEvent = iShockingEvent
|
|
|
|
eSubStage = SS_UPDATE
|
|
|
|
BREAK
|
|
|
|
CASE SS_UPDATE
|
|
|
|
IF IS_ENTITY_ALIVE(mvPoppyCar.mVehicle)
|
|
IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(mvPoppyCar.mVehicle)
|
|
IF NOT IS_AUDIO_SCENE_ACTIVE("PAPARAZZO_3A_POLICE_CHASE")
|
|
START_AUDIO_SCENE("PAPARAZZO_3A_POLICE_CHASE")
|
|
ENDIF
|
|
fTimePosInRec = GET_TIME_POSITION_IN_RECORDING(mvPoppyCar.mVehicle)
|
|
//PRINTFLOAT(GET_TIME_POSITION_IN_RECORDING(mvPoppyCar.mVehicle))
|
|
//PRINTNL()
|
|
/*
|
|
48408.339844 //launch //damage small 668.81, 357.02, 110.90
|
|
|
|
49675.332031 //roof //707.97, 340.51, 111.43
|
|
|
|
51333.238281 //rear end (maybe not needed) //733.85, 326.47, 112.33
|
|
*/
|
|
DO_AMBIENT_CASINO_STUFF()
|
|
IF fTimePosInRec > 15000
|
|
IF NOT bStatsFarFromPoppy
|
|
IF NOT IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),mvPoppyCar.mVehicle,100)
|
|
CPRINTLN(DEBUG_MISSION, "STATS **** Thick of it - Failed - ****")
|
|
bStatsFarFromPoppy = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
IF IS_ENTITY_ALIVE(mvPoliceCars[1].mVehicle)
|
|
IF iCopCrashSeq1 = 0
|
|
IF fTimePosInRec >= 48408.339844
|
|
SET_ENTITY_INVINCIBLE(mvPoliceCars[1].mVehicle,FALSE)
|
|
SET_VEHICLE_ENGINE_HEALTH(mvPoliceCars[1].mVehicle,5.0)
|
|
//SET_VEHICLE_DAMAGE(mvPoliceCars[1].mVehicle,GET_WORLD_POSITION_OF_ENTITY_BONE(mvPoliceCars[1].mVehicle,GET_ENTITY_BONE_INDEX_BY_NAME(mvPoliceCars[1].mVehicle, "overheat")),100, 200, FALSE)
|
|
//SET_VEHICLE_DAMAGE(mvPoliceCars[1].mVehicle,GET_WORLD_POSITION_OF_ENTITY_BONE(mvPoliceCars[1].mVehicle,36),100, 200, FALSE)
|
|
PLAY_SOUND_FROM_ENTITY(-1,"POLICE_CRASH",mvPoliceCars[1].mVehicle,"PAPARAZZO_03A")
|
|
CPRINTLN(DEBUG_MISSION, "SMASH 0")
|
|
REPLAY_START_EVENT(REPLAY_IMPORTANCE_LOWEST) //Set piece cop car crash.
|
|
iCopCrashSeq1 = 1
|
|
ENDIF
|
|
ELIF iCopCrashSeq1 = 1
|
|
IF fTimePosInRec >= 49675.332031
|
|
//SET_VEHICLE_DAMAGE(mvPoliceCars[1].mVehicle,GET_WORLD_POSITION_OF_ENTITY_BONE(mvPoliceCars[1].mVehicle,GET_ENTITY_BONE_INDEX_BY_NAME(mvPoliceCars[1].mVehicle, "misc_a")),100, 600, FALSE)
|
|
SET_VEHICLE_DAMAGE(mvPoliceCars[1].mVehicle,GET_WORLD_POSITION_OF_ENTITY_BONE(mvPoliceCars[1].mVehicle,21),100, 600, FALSE)
|
|
/*
|
|
SET_VEHICLE_DAMAGE(mvPoliceCars[1].mVehicle,GET_WORLD_POSITION_OF_ENTITY_BONE(mvPoliceCars[1].mVehicle,GET_ENTITY_BONE_INDEX_BY_NAME(mvPoliceCars[1].mVehicle, "siren7")),100, 500, FALSE)
|
|
SET_VEHICLE_DAMAGE(mvPoliceCars[1].mVehicle,GET_WORLD_POSITION_OF_ENTITY_BONE(mvPoliceCars[1].mVehicle,GET_ENTITY_BONE_INDEX_BY_NAME(mvPoliceCars[1].mVehicle, "siren1")),100, 500, FALSE)
|
|
SET_VEHICLE_DAMAGE(mvPoliceCars[1].mVehicle,GET_WORLD_POSITION_OF_ENTITY_BONE(mvPoliceCars[1].mVehicle,GET_ENTITY_BONE_INDEX_BY_NAME(mvPoliceCars[1].mVehicle, "siren2")),100, 500, FALSE)
|
|
SET_VEHICLE_DAMAGE(mvPoliceCars[1].mVehicle,GET_WORLD_POSITION_OF_ENTITY_BONE(mvPoliceCars[1].mVehicle,GET_ENTITY_BONE_INDEX_BY_NAME(mvPoliceCars[1].mVehicle, "siren3")),100, 500, FALSE)
|
|
SET_VEHICLE_DAMAGE(mvPoliceCars[1].mVehicle,GET_WORLD_POSITION_OF_ENTITY_BONE(mvPoliceCars[1].mVehicle,GET_ENTITY_BONE_INDEX_BY_NAME(mvPoliceCars[1].mVehicle, "siren4")),100, 500, FALSE)
|
|
SET_VEHICLE_DAMAGE(mvPoliceCars[1].mVehicle,GET_WORLD_POSITION_OF_ENTITY_BONE(mvPoliceCars[1].mVehicle,GET_ENTITY_BONE_INDEX_BY_NAME(mvPoliceCars[1].mVehicle, "siren5")),100, 500, FALSE)
|
|
SET_VEHICLE_DAMAGE(mvPoliceCars[1].mVehicle,GET_WORLD_POSITION_OF_ENTITY_BONE(mvPoliceCars[1].mVehicle,GET_ENTITY_BONE_INDEX_BY_NAME(mvPoliceCars[1].mVehicle, "siren6")),100, 500, FALSE)
|
|
*/
|
|
|
|
//SET_VEHICLE_DAMAGE(mvPoliceCars[1].mVehicle,GET_WORLD_POSITION_OF_ENTITY_BONE(mvPoliceCars[1].mVehicle,GET_ENTITY_BONE_INDEX_BY_NAME(mvPoliceCars[1].mVehicle, "siren_glass1")),100, 400, FALSE)
|
|
//SET_VEHICLE_DAMAGE(mvPoliceCars[1].mVehicle,GET_WORLD_POSITION_OF_ENTITY_BONE(mvPoliceCars[1].mVehicle,GET_ENTITY_BONE_INDEX_BY_NAME(mvPoliceCars[1].mVehicle, "siren_glass2")),100, 400, FALSE)
|
|
//SET_VEHICLE_DAMAGE(mvPoliceCars[1].mVehicle,GET_WORLD_POSITION_OF_ENTITY_BONE(mvPoliceCars[1].mVehicle,GET_ENTITY_BONE_INDEX_BY_NAME(mvPoliceCars[1].mVehicle, "siren_glass3")),100, 400, FALSE)
|
|
|
|
SMASH_VEHICLE_WINDOW(mvPoliceCars[1].mVehicle,SC_WINDOW_FRONT_LEFT)
|
|
SMASH_VEHICLE_WINDOW(mvPoliceCars[1].mVehicle,SC_WINDOW_FRONT_RIGHT)
|
|
SET_VEHICLE_SIREN(mvPoliceCars[1].mVehicle,FALSE)
|
|
//PLAY_SOUND_FROM_ENTITY(-1,"SIREN_BLIP",mvPoliceCars[1].mVehicle,"PAPARAZZO_03A")
|
|
CPRINTLN(DEBUG_MISSION, "SMASH 1")
|
|
iCopCrashSeq1 = 2
|
|
ENDIF
|
|
ELIF iCopCrashSeq1 = 2
|
|
IF fTimePosInRec >= 51333.238281
|
|
//SET_VEHICLE_DAMAGE(mvPoliceCars[1].mVehicle,GET_WORLD_POSITION_OF_ENTITY_BONE(mvPoliceCars[1].mVehicle,GET_ENTITY_BONE_INDEX_BY_NAME(mvPoliceCars[1].mVehicle, "reversinglight_l")),100, 200, FALSE)
|
|
SET_VEHICLE_DAMAGE(mvPoliceCars[1].mVehicle,GET_WORLD_POSITION_OF_ENTITY_BONE(mvPoliceCars[1].mVehicle,73),100, 200, FALSE)
|
|
CPRINTLN(DEBUG_MISSION, "SMASH 2")
|
|
REPLAY_STOP_EVENT()
|
|
iCopCrashSeq1 = 3
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF bDelayMusic = TRUE
|
|
AND GET_GAME_TIMER() > iTimerDelayMusic + 6000
|
|
TRIGGER_MUSIC_EVENT("PAP3_START")
|
|
bDelayMusic = FALSE
|
|
ENDIF
|
|
|
|
IF bMainObjectiveDisplayed = FALSE
|
|
IF NOT IS_REPLAY_IN_PROGRESS()
|
|
IF HAS_CELLPHONE_CALL_FINISHED()
|
|
PRINT_NOW("PAP3_03", DEFAULT_GOD_TEXT_TIME, 1) //"Persue poppy"
|
|
bMainObjectiveDisplayed = TRUE
|
|
ENDIF
|
|
ELSE
|
|
IF GET_REPLAY_MID_MISSION_STAGE() < 1
|
|
IF HAS_CELLPHONE_CALL_FINISHED()
|
|
PRINT_NOW("PAP3_03", DEFAULT_GOD_TEXT_TIME, 1) //"Persue poppy"
|
|
bMainObjectiveDisplayed = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
//bMainObjectiveDisplayed = TRUE
|
|
ENDIF
|
|
|
|
/*
|
|
//REQUEST_COLLISION_AT_COORD(<<647.9958, -88.8860, 73.6843>>)
|
|
//REQUEST_ADDITIONAL_COLLISION_AT_COORD(<<647.9958, -88.8860, 73.6843>>)
|
|
|
|
REQUEST_COLLISION_AT_COORD(mpsChaseProps[0].vStartPos)
|
|
REQUEST_ADDITIONAL_COLLISION_AT_COORD(mpsChaseProps[0].vStartPos)
|
|
|
|
REQUEST_COLLISION_AT_COORD(mpsChaseProps[1].vStartPos)
|
|
REQUEST_ADDITIONAL_COLLISION_AT_COORD(mpsChaseProps[1].vStartPos)
|
|
|
|
REQUEST_COLLISION_AT_COORD(mpsChaseProps[2].vStartPos)
|
|
REQUEST_ADDITIONAL_COLLISION_AT_COORD(mpsChaseProps[2].vStartPos)
|
|
*/
|
|
CreatePoliceChopper()
|
|
|
|
IF DOES_BLIP_EXIST(blipPoppyCar)
|
|
UPDATE_CHASE_BLIP(blipPoppyCar,mvPoppyCar.mVehicle,LOSE_DISTANCE,0.95) //150
|
|
ENDIF
|
|
/*
|
|
IF bDoneFakeStart = TRUE
|
|
IF DOES_BLIP_EXIST(blipPoppyCar)
|
|
//UPDATE_CHASE_BLIP(blipPoppyCar,mvPoppyCar.mVehicle,200,0.7) //150
|
|
IF IS_VEHICLE_OK(mvPoppyCar.mVehicle)
|
|
IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(mvPoppyCar.mVehicle)
|
|
IF GET_TIME_POSITION_IN_RECORDING(mvPoppyCar.mVehicle) > 15000
|
|
//fSlidy = 5
|
|
//UPDATE_CHASE_BLIP(blipPoppyCar,mvPoppyCar.mVehicle,200,0.7) //150
|
|
IF NOT IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),mvPoppyCar.mVehicle,100)
|
|
//#IF IS_DEBUG_BUILD
|
|
// CPRINTLN(DEBUG_MISSION, "STATS **** Thick of it - Failed - ****")
|
|
//#ENDIF
|
|
bStatsFarFromPoppy = TRUE
|
|
//INFORM_STAT_SYSTEM_OF_BOOL_STAT_HAPPENED(PAP3A_FAR_FROM_POPPY)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
*/
|
|
|
|
IF bDoRollingStart = TRUE
|
|
RCM_MANAGE_ROLLING_START()
|
|
ENDIF
|
|
|
|
IF IS_REPLAY_IN_PROGRESS()
|
|
IF GET_REPLAY_MID_MISSION_STAGE() > 0
|
|
IF bDoneDelayedFadeIn = FALSE
|
|
IF GET_GAME_TIMER() > iTimerReplayStarted + 2000
|
|
RC_END_Z_SKIP(FALSE)
|
|
bDoneDelayedFadeIn = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF bPrintCatchUp = FALSE
|
|
IF IS_PED_UNINJURED(mpPoppyPed.mPed)
|
|
IF NOT IS_ENTITY_AT_COORD(mpPoppyPed.mPed,vPoppyInitialLocation,<<LOSE_DISTANCE,LOSE_DISTANCE,LOSE_DISTANCE>>)
|
|
IF NOT IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),mpPoppyPed.mPed,100)
|
|
//PRINT_NOW("PAP3_CAT", DEFAULT_GOD_TEXT_TIME, 1) //Catch up with ~b~Poppy.
|
|
bPrintCatchUp = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
/*
|
|
IF bCopsAreLeaving = FALSE
|
|
IF IS_PLAYER_INSIDE_ROAD_BLOCK() //IF PLAYER TRIES TO GO THROUGH ROAD BLOCK, THEN FAIL
|
|
IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
SET_PLAYER_WANTED_LEVEL_NO_DROP(PLAYER_ID(),2)
|
|
SET_FAIL_REASON(FAIL_POLICE_INTER)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
*/
|
|
CHASE_DIALOGUE()
|
|
|
|
IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
HANDLE_STOPPING_BEFORE_CRASH()
|
|
ENDIF
|
|
|
|
PLAYBACK_UBER_RECORDING()
|
|
HANDLE_POLICE_CHASE()
|
|
|
|
IF IS_PED_UNINJURED(mpPolicePed[0].mPed)
|
|
SET_ENTITY_LOAD_COLLISION_FLAG(mpPolicePed[0].mPed,TRUE)
|
|
ENDIF
|
|
/*
|
|
IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
AND NOT IS_THIS_MODEL_A_HELI(GET_ENTITY_MODEL(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID())))
|
|
//CreateScriptedTraffic()
|
|
ENDIF
|
|
*/
|
|
IF NOT bPrintWantedHelp
|
|
//IF NOT IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("PAP3_HELPPO")
|
|
IF NOT IS_HELP_MESSAGE_BEING_DISPLAYED()
|
|
//PRINT_HELP("PAP3_HELPPO") // You will fail if you get a wanted rating
|
|
bPrintWantedHelp = TRUE
|
|
ENDIF
|
|
//ENDIF
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
CASE SS_CLEANUP
|
|
|
|
//Reset any speed modifier
|
|
IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
vehPlayer = GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID())
|
|
MODIFY_VEHICLE_TOP_SPEED(vehPlayer,0)
|
|
ENDIF
|
|
|
|
SAFE_RELEASE_VEHICLE(mvPoliceCars[1].mVehicle)
|
|
SAFE_RELEASE_PED(mpPolicePed[2].mPed)
|
|
/*
|
|
IF IS_ENTITY_ALIVE(mvPoliceCars[0].mVehicle)
|
|
FREEZE_ENTITY_POSITION(mvPoliceCars[0].mVehicle,TRUE)
|
|
ENDIF
|
|
IF IS_ENTITY_ALIVE(mvPoliceCars[2].mVehicle)
|
|
FREEZE_ENTITY_POSITION(mvPoliceCars[2].mVehicle,TRUE)
|
|
ENDIF
|
|
*/
|
|
CLEAR_PRINTS()
|
|
|
|
REQUEST_ANIM_DICT("rcmpaparazzo_3")
|
|
|
|
bMainObjectiveDisplayed = FALSE
|
|
|
|
CLEANUP_UBER_PLAYBACK()
|
|
|
|
//REQUEST_MODEL(S_M_Y_Cop_01)
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_MISSION, "PAP3A****Cleanup chase poppy****")
|
|
#ENDIF
|
|
|
|
//stream_volume = STREAMVOL_CREATE_SPHERE(<< 345.9861, -409.6823, 44.2520 >>, 12.0, FLAG_MAPDATA | FLAG_COLLISIONS_MOVER)
|
|
|
|
IF NOT IS_ENTITY_AT_COORD(PLAYER_PED_ID(),vCrashLocation,<<47.0,47.0,47.0>>)
|
|
SetStage(MS_GO_TO_CRASH)
|
|
ELSE
|
|
SetStage(MS_TAKE_PHOTO)
|
|
ENDIF
|
|
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Handles player going to crash site if he is not there
|
|
PROC GO_TO_CRASH()
|
|
|
|
IF bPoliceAttacking
|
|
++iWanted
|
|
IF IS_ENTITY_DEAD(mpPoppyPed.mPed)
|
|
OR IS_PED_INJURED(mpPoppyPed.mPed)
|
|
SET_FAIL_REASON(FAIL_POPPY_KILLED)
|
|
EXIT
|
|
ELSE
|
|
IF iWanted > 30
|
|
SET_FAIL_REASON(FAIL_POLICE_INTER)
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
SWITCH eSubStage
|
|
CASE SS_SETUP
|
|
|
|
//BLOCK OFF ROAD AT CRASH SITE
|
|
SET_ROADS_IN_AREA(<< 318.9400, -411.6963, 38.0267 >>,<< 421.5246, -363.0107, 52.0853 >>, FALSE)
|
|
|
|
IF bMainObjectiveDisplayed = FALSE
|
|
IF NOT IS_REPLAY_IN_PROGRESS()
|
|
//PRINT_NOW("PAP3_GOPOP", DEFAULT_GOD_TEXT_TIME, 1) //"Go to crash site"
|
|
ELSE
|
|
IF GET_REPLAY_MID_MISSION_STAGE() < 2
|
|
//PRINT_NOW("PAP3_GOPOP", DEFAULT_GOD_TEXT_TIME, 1) //"Go to crash site"
|
|
ENDIF
|
|
ENDIF
|
|
bMainObjectiveDisplayed = TRUE
|
|
ENDIF
|
|
|
|
TurnOffRoads()
|
|
|
|
//CLEANUP_UBER_PLAYBACK()
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_MISSION, "PAP3A****Init go to crash****")
|
|
#ENDIF
|
|
|
|
eSubStage = SS_UPDATE
|
|
|
|
BREAK
|
|
|
|
CASE SS_UPDATE
|
|
/*
|
|
IF NOT IS_REPLAY_IN_PROGRESS()
|
|
IF IS_ENTITY_ALIVE(mvPoppyCar.mVehicle)
|
|
IF GET_ENTITY_SPEED(mvPoppyCar.mVehicle) < 0.2
|
|
IF bCrashSoundPlayed = FALSE
|
|
PLAY_SOUND_FROM_ENTITY(-1,"CRASH",mvPoppyCar.mVehicle,"PAPARAZZO_03A")
|
|
bCrashSoundPlayed = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
*/
|
|
HANDLE_POLICE_CHASE()
|
|
|
|
IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
HANDLE_STOPPING_BEFORE_CRASH()
|
|
ENDIF
|
|
|
|
IF IS_ENTITY_AT_COORD(PLAYER_PED_ID(),vCrashLocation,<<47.0,47.0,47.0>>)
|
|
REPLAY_RECORD_BACK_FOR_TIME(4.0, 5.0,REPLAY_IMPORTANCE_LOWEST)
|
|
eSubStage = SS_CLEANUP
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
CASE SS_CLEANUP
|
|
|
|
CLEAR_PRINTS()
|
|
|
|
REQUEST_ANIM_DICT("rcmpaparazzo_3")
|
|
|
|
SAFE_REMOVE_BLIP(blipPoppyCar)
|
|
|
|
bMainObjectiveDisplayed = FALSE
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_MISSION, "PAP3A****Cleanup go to crash****")
|
|
#ENDIF
|
|
|
|
SetStage(MS_TAKE_PHOTO)
|
|
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Handles player taking photo of poppy during arrest scene
|
|
PROC TAKE_PHOTO()
|
|
/*
|
|
IF IS_PED_UNINJURED(mpPolicePed[1].mPed)
|
|
IF IS_VEHICLE_OK(mvPoliceCars[0].mVehicle)
|
|
IF NOT IS_PED_SITTING_IN_VEHICLE_SEAT(mpPolicePed[1].mPed,mvPoliceCars[0].mVehicle,VS_FRONT_RIGHT)
|
|
SET_PED_INTO_VEHICLE(mpPolicePed[1].mPed,mvPoliceCars[0].mVehicle,VS_FRONT_RIGHT)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
*/
|
|
|
|
IF bPoliceAttacking
|
|
IF IS_ENTITY_ALIVE(mvPoliceCars[0].mVehicle)
|
|
AND IS_ENTITY_TOUCHING_ENTITY(PLAYER_PED_ID(),mvPoliceCars[0].mVehicle)
|
|
IF iWanted < 30
|
|
iWanted = 30
|
|
ENDIF
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(poppy_arrest_scene)
|
|
AND GET_SYNCHRONIZED_SCENE_PHASE(poppy_arrest_scene) > 0.92
|
|
IF IS_PED_UNINJURED(mpPoppyPed.mPed)
|
|
AND NOT IS_PED_IN_VEHICLE(mpPoppyPed.mPed,mvPoliceCars[0].mVehicle)
|
|
SET_PED_INTO_VEHICLE(mpPoppyPed.mPed,mvPoliceCars[0].mVehicle,VS_BACK_LEFT)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
++iWanted
|
|
IF IS_ENTITY_DEAD(mpPoppyPed.mPed)
|
|
OR IS_PED_INJURED(mpPoppyPed.mPed)
|
|
SET_FAIL_REASON(FAIL_POPPY_KILLED)
|
|
EXIT
|
|
ELSE
|
|
IF iWanted > 30
|
|
SET_FAIL_REASON(FAIL_POLICE_INTER)
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
TEXT_LABEL_23 label = GET_CURRENTLY_PLAYING_STANDARD_CONVERSATION_LABEL()
|
|
|
|
SWITCH eSubStage
|
|
CASE SS_SETUP
|
|
|
|
SET_REPLAY_MID_MISSION_STAGE_WITH_NAME(CP_AT_CRASH_LOCATION,"Arrived at crash scene",TRUE) // Has reaches crash point, set checkpoint
|
|
|
|
//BLOCK OFF ROAD AT CRASH SITE
|
|
SET_ROADS_IN_AREA(<< 318.9400, -411.6963, 38.0267 >>,<< 421.5246, -363.0107, 52.0853 >>, FALSE)
|
|
|
|
SAFE_REMOVE_BLIP(blipPoppyCar)
|
|
|
|
REMOVE_PED_FOR_DIALOGUE(sSpeach,1)
|
|
|
|
REQUEST_ANIM_DICT("rcmpaparazzo_3")
|
|
/*
|
|
INT i
|
|
|
|
FOR i = 0 TO NUM_OF_PARKED_CARS - 1
|
|
SAFE_RELEASE_VEHICLE(mvParkedCar[i].mVehicle)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(mvParkedCar[i].mModel)
|
|
ENDFOR
|
|
|
|
FOR i = 0 TO NUM_OF_CHASE_PROPS - 1
|
|
SAFE_RELEASE_OBJECT(mpsChaseProps[i].mObject)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(mpsChaseProps[i].mModel)
|
|
ENDFOR
|
|
*/
|
|
KILL_CHASE_HINT_CAM(localChaseHintCamStruct)
|
|
|
|
TurnOffRoads()
|
|
|
|
KILL_CHASE_HINT_CAM(localChaseHintCamStruct)
|
|
|
|
CLEAR_CONTACT_PICTURE_MESSAGE(CHAR_BEVERLY)
|
|
|
|
SET_ALL_SHOPS_TEMPORARILY_UNAVAILABLE(FALSE)
|
|
|
|
bPhotoInCuffs = FALSE
|
|
|
|
b_Correct_Pic_Taken = FALSE
|
|
|
|
bWrongContact = FALSE
|
|
|
|
bPicTaken = FALSE
|
|
|
|
bPicSent = FALSE
|
|
|
|
bSweetTxtSent = FALSE
|
|
|
|
bPhotoPoppyObj = FALSE
|
|
|
|
iBevTxtsBadPic = 0
|
|
|
|
iSeqPoppyDialogue = 0
|
|
|
|
iDoDelayedLastLine = 0
|
|
|
|
iBevTxtsTooFarAway = 0
|
|
|
|
bReplayTaskHeli = FALSE
|
|
|
|
bCopWarning = FALSE
|
|
|
|
bKickedOffDialogueAgain = FALSE
|
|
|
|
bDone1stPersonFlash = FALSE
|
|
|
|
IF NOT bDelayFade
|
|
SAFE_FADE_SCREEN_IN_FROM_BLACK(DEFAULT_FADE_TIME,FALSE)
|
|
ENDIF
|
|
|
|
IF IS_ENTITY_ALIVE(mvPoppyCar.mVehicle)
|
|
REQUEST_VEHICLE_HIGH_DETAIL_MODEL(mvPoppyCar.mVehicle)
|
|
SET_VEHICLE_DOORS_LOCKED(mvPoppyCar.mVehicle,VEHICLELOCK_UNLOCKED)
|
|
ENDIF
|
|
|
|
IF IS_ENTITY_ALIVE(vehPlayer)
|
|
REQUEST_VEHICLE_HIGH_DETAIL_MODEL(vehPlayer)
|
|
ENDIF
|
|
|
|
IF bCrashCutDone = FALSE
|
|
IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
HANDLE_STOPPING_BEFORE_CRASH()
|
|
ENDIF
|
|
ENDIF
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_MISSION, "PAP3A****Init take photo****")
|
|
#ENDIF
|
|
|
|
eSubStage = SS_UPDATE
|
|
|
|
//TASK_VEHICLE_AIM_AT_PED(pedChopperPilot,mpPoppyPed.mPed)
|
|
|
|
//SET_TIME_SCALE(0.5)
|
|
|
|
BREAK
|
|
|
|
CASE SS_UPDATE
|
|
/*
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(poppy_arrest_scene)
|
|
PRINTNL()
|
|
PRINTFLOAT(GET_SYNCHRONIZED_SCENE_PHASE(poppy_arrest_scene))
|
|
ENDIF
|
|
*/
|
|
//PRINTVECTOR(GET_ENTITY_COORDS(mpPolicePed[0].mPed))
|
|
//PRINTNL()
|
|
/*
|
|
PRINTFLOAT(GET_ENTITY_HEADING(mpPolicePed[0].mPed))
|
|
PRINTNL()
|
|
PRINTVECTOR(GET_OFFSET_FROM_ENTITY_GIVEN_WORLD_COORDS(mvPoliceCars[0].mVehicle,GET_WORLD_POSITION_OF_ENTITY_BONE(mvPoliceCars[0].mVehicle,GET_ENTITY_BONE_INDEX_BY_NAME(mvPoliceCars[0].mVehicle, "seat_dside_f"))))
|
|
PRINTNL()
|
|
*/
|
|
//seat_dside_f
|
|
//CreatePoliceChopper()
|
|
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(poppy_arrest_scene)
|
|
IF b_Correct_Pic_Taken = FALSE
|
|
SET_SYNCHRONIZED_SCENE_HOLD_LAST_FRAME(poppy_arrest_scene,TRUE)
|
|
ELSE
|
|
SET_SYNCHRONIZED_SCENE_HOLD_LAST_FRAME(poppy_arrest_scene,FALSE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_CELLPHONE_CAMERA_IN_USE()
|
|
SET_LOADING_ICON_SUBTITLES_OFFSET_SHIFT_THIS_FRAME()
|
|
ENDIF
|
|
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(poppy_arrest_scene)
|
|
AND GET_SYNCHRONIZED_SCENE_PHASE(poppy_arrest_scene) > 0.85
|
|
IF IS_PED_UNINJURED(pedChopperPilot)
|
|
AND IS_ENTITY_ALIVE(vehPoliceChopper)
|
|
TASK_HELI_MISSION(pedChopperPilot,vehPoliceChopper,NULL,NULL,<<123.3842, -883.9507, 200>>,MISSION_GOTO,200.0,-1,-1,-1,100)
|
|
//TASK_VEHICLE_SHOOT_AT_PED(pedChopperPilot,mpPoppyPed.mPed)
|
|
SET_VEHICLE_SEARCHLIGHT(vehPoliceChopper,FALSE)
|
|
SET_PED_KEEP_TASK(pedChopperPilot,TRUE)
|
|
SAFE_RELEASE_PED(pedChopperPilot)
|
|
SAFE_RELEASE_VEHICLE(vehPoliceChopper)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF bPoppyAndCopDrivingOff = FALSE
|
|
|
|
IF iSeqCarDoors > 0
|
|
//AND iSeqPoppyDialogue >= 2
|
|
//AND b_Correct_Pic_Taken = FALSE
|
|
MANAGE_PHONE_HELP()
|
|
ENDIF
|
|
|
|
IF bCrashCutDone = FALSE
|
|
/*
|
|
IF NOT IS_REPLAY_IN_PROGRESS()
|
|
IF IS_ENTITY_ALIVE(mvPoppyCar.mVehicle)
|
|
IF GET_ENTITY_SPEED(mvPoppyCar.mVehicle) < 0.2
|
|
IF bCrashSoundPlayed = FALSE
|
|
PLAY_SOUND_FROM_ENTITY(-1,"CRASH",mvPoppyCar.mVehicle,"PAPARAZZO_03A")
|
|
bCrashSoundPlayed = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
*/
|
|
IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
HANDLE_STOPPING_BEFORE_CRASH()
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF HAS_ANIM_DICT_LOADED("rcmpaparazzo_3")
|
|
IF IS_ENTITY_ALIVE(mvPoppyCar.mVehicle)
|
|
IF IS_VEHICLE_STOPPED(mvPoppyCar.mVehicle)
|
|
MONITOR_POLICE_PEDS(0)
|
|
HANDLE_CRASH_SEQUENCE()
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF bCrashCutDone = TRUE
|
|
IF IS_REPLAY_IN_PROGRESS()
|
|
IF IS_PED_UNINJURED(mpPoppyPed.mPed)
|
|
AND IS_PED_UNINJURED(pedChopperPilot)
|
|
AND IS_ENTITY_ALIVE(vehPoliceChopper)
|
|
IF NOT bReplayTaskHeli
|
|
//TASK_HELI_MISSION(pedChopperPilot,vehPoliceChopper,NULL,mpPoppyPed.mPed,<<0,0,0>>,MISSION_POLICE_BEHAVIOUR,0.01,1.0,-1,-1,-1)
|
|
TASK_HELI_MISSION(pedChopperPilot,vehPoliceChopper,NULL,mpPoppyPed.mPed,<<0,50,60>>,MISSION_POLICE_BEHAVIOUR,0.1,60.0,-1,60,55)
|
|
bReplayTaskHeli = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
IF iSeqPoppyDialogue = 0
|
|
IF IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF ARE_STRINGS_EQUAL(label,"PAP3A_ARREST_8")
|
|
KILL_FACE_TO_FACE_CONVERSATION()
|
|
iSeqPoppyDialogue = 1
|
|
ENDIF
|
|
ENDIF
|
|
ELIF iSeqPoppyDialogue = 1
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF NOT b_Correct_Pic_Taken
|
|
IF bPhotoPoppyObj = FALSE
|
|
PRINT_NOW("PAP3_POP", DEFAULT_GOD_TEXT_TIME, 1) //"Take a photo of poppy"
|
|
bPhotoPoppyObj = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
iSeqPoppyDialogue = 2
|
|
ENDIF
|
|
ELIF iSeqPoppyDialogue = 2
|
|
IF NOT IS_THIS_PRINT_BEING_DISPLAYED("PAP3_POP")
|
|
IF NOT bKickedOffDialogueAgain
|
|
IF GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(), mpPoppyPed.mPed) <= 50
|
|
IF CREATE_CONVERSATION_FROM_SPECIFIC_LINE(sSpeach, "PAP3AAU", "PAP3A_ARREST","PAP3A_ARREST_10", CONV_PRIORITY_HIGH)
|
|
bKickedOffDialogueAgain = TRUE
|
|
iSeqPoppyDialogue = 3
|
|
iSubSwitch = 0
|
|
iRetrigger = 1
|
|
ENDIF
|
|
ELSE
|
|
IF CREATE_CONVERSATION_FROM_SPECIFIC_LINE(sSpeach, "PAP3AAU", "PAP3A_ARREST","PAP3A_ARREST_10", CONV_PRIORITY_HIGH,DO_NOT_DISPLAY_SUBTITLES)
|
|
bKickedOffDialogueAgain = TRUE
|
|
iSeqPoppyDialogue = 3
|
|
iSubSwitch = 1
|
|
iRetrigger = 1
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_SUBTITLE_PREFERENCE_SWITCHED_ON()
|
|
AND NOT IS_THIS_PRINT_BEING_DISPLAYED("PAP3_POP")
|
|
IF iSeqPoppyDialogue = 0
|
|
OR iSeqPoppyDialogue = 3
|
|
DO_ANNOYING_SUBTITLE_SWITCH()
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF iSeqCarDoors > 0
|
|
AND bCrashCutDone = TRUE
|
|
AND bKickedOffDialogueAgain = TRUE
|
|
HANDLE_POLICE_CHASE()
|
|
//CLEANUP_UBER_PLAYBACK()
|
|
IF IS_AUDIO_SCENE_ACTIVE("PAPARAZZO_3A_PHOTO_SCENE")
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
STOP_AUDIO_SCENE("PAPARAZZO_3A_PHOTO_SCENE")
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ARREST_SCENE_AREA_CHECK()
|
|
|
|
IF b_Correct_Pic_Taken = TRUE
|
|
IF bPhotoSent = FALSE
|
|
IF HAS_CONTACT_RECEIVED_PICTURE_MESSAGE(CHAR_BEVERLY)
|
|
IF IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
OR IS_THIS_PRINT_BEING_DISPLAYED("PAP3_POP")
|
|
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE_NATIVE(PLAYER_PED_ID(),"PAP3A_AOAF","FRANKLIN","SPEECH_PARAMS_STANDARD")
|
|
ELSE
|
|
CPRINTLN(DEBUG_MISSION, "PAP3A****PLAY SINGLE LINE WITH SUBS****")
|
|
iDoDelayedLastLine = 1
|
|
ENDIF
|
|
HANG_UP_AND_PUT_AWAY_PHONE()
|
|
BYPASS_CELLPHONE_CAMERA_DEFAULT_SAVE_ROUTINE(FALSE)
|
|
ENABLE_PICTURE_MESSAGE_SENDING_AND_HELP(FALSE)
|
|
eSubStage = SS_CLEANUP
|
|
bPhotoSent = TRUE
|
|
ELSE
|
|
IF bPicTaken = TRUE
|
|
IF bWrongContact = FALSE
|
|
IF HAS_PICTURE_MESSAGE_BEEN_SENT_TO_ANY_CONTACT()
|
|
PRINT_HELP("PAP3_HELP7") // The picture was sent to the wrong contact.
|
|
bWrongContact = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF bPicTaken = TRUE
|
|
IF HAS_CONTACT_RECEIVED_PICTURE_MESSAGE(CHAR_BEVERLY)
|
|
IF bPicSent = FALSE
|
|
iTimerPicTaken = GET_GAME_TIMER()
|
|
bPicSent = TRUE
|
|
ELSE
|
|
IF GET_GAME_TIMER() > iTimerPicTaken + 4000
|
|
IF bTooFarAway = FALSE
|
|
IF iBevTxtsBadPic = 0
|
|
IF SEND_TEXT_MESSAGE_TO_CURRENT_PLAYER(CHAR_BEVERLY,"PAP3A_TXTB1",TXTMSG_UNLOCKED) //Can you get a better one?
|
|
CLEAR_CONTACT_PICTURE_MESSAGE(CHAR_BEVERLY)
|
|
bPicTaken = FALSE
|
|
iBevTxtsBadPic = 1
|
|
ENDIF
|
|
ELIF iBevTxtsBadPic = 1
|
|
IF SEND_TEXT_MESSAGE_TO_CURRENT_PLAYER(CHAR_BEVERLY,"PAP3A_TXTB3",TXTMSG_UNLOCKED) //Come on man. Send a decent one.
|
|
CLEAR_CONTACT_PICTURE_MESSAGE(CHAR_BEVERLY)
|
|
bPicTaken = FALSE
|
|
iBevTxtsBadPic = 2
|
|
ENDIF
|
|
ELIF iBevTxtsBadPic = 2
|
|
IF SEND_TEXT_MESSAGE_TO_CURRENT_PLAYER(CHAR_BEVERLY,"PAP3A_TXTB2",TXTMSG_UNLOCKED) //:/
|
|
CLEAR_CONTACT_PICTURE_MESSAGE(CHAR_BEVERLY)
|
|
bPicTaken = FALSE
|
|
iBevTxtsBadPic = 3
|
|
ENDIF
|
|
ELIF iBevTxtsBadPic = 3
|
|
IF SEND_TEXT_MESSAGE_TO_CURRENT_PLAYER(CHAR_BEVERLY,"PAP3A_TXTB4",TXTMSG_UNLOCKED) //Are you blind?
|
|
CLEAR_CONTACT_PICTURE_MESSAGE(CHAR_BEVERLY)
|
|
bPicTaken = FALSE
|
|
iBevTxtsBadPic = 4
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF iBevTxtsTooFarAway = 0
|
|
IF SEND_TEXT_MESSAGE_TO_CURRENT_PLAYER(CHAR_BEVERLY,"PAP3A_TXT8",TXTMSG_UNLOCKED) //Can you get any closer man?
|
|
CLEAR_CONTACT_PICTURE_MESSAGE(CHAR_BEVERLY)
|
|
bPicTaken = FALSE
|
|
iBevTxtsTooFarAway = 1
|
|
ENDIF
|
|
ELIF iBevTxtsTooFarAway = 1
|
|
IF SEND_TEXT_MESSAGE_TO_CURRENT_PLAYER(CHAR_BEVERLY,"PAP3A_TXT7",TXTMSG_UNLOCKED) //I can hardly see her! Get closer
|
|
CLEAR_CONTACT_PICTURE_MESSAGE(CHAR_BEVERLY)
|
|
bPicTaken = FALSE
|
|
iBevTxtsTooFarAway = 2
|
|
ENDIF
|
|
ENDIF
|
|
bTooFarAway = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("appCamera"))> 0
|
|
IF HAS_CELLPHONE_CAM_JUST_TAKEN_PIC()
|
|
CLEAR_CONTACT_PICTURE_MESSAGE(CHAR_BEVERLY)
|
|
bPicTaken = TRUE
|
|
bPicSent = FALSE
|
|
IF CHECK_PHOTO_OK() = FALSE
|
|
IF iFramesCheckingPhotoOk < 20
|
|
BYPASS_CELLPHONE_CAMERA_DEFAULT_SAVE_ROUTINE(TRUE)
|
|
ENABLE_PICTURE_MESSAGE_SENDING_AND_HELP(TRUE)
|
|
iTimerPicTaken = GET_GAME_TIMER()
|
|
ENDIF
|
|
ELSE
|
|
//PLAY_PED_AMBIENT_SPEECH_WITH_VOICE_NATIVE(PLAYER_PED_ID(),"PAP3A_AOAE","FRANKLIN","SPEECH_PARAMS_FORCE_FRONTEND")
|
|
BYPASS_CELLPHONE_CAMERA_DEFAULT_SAVE_ROUTINE(TRUE)
|
|
ENABLE_PICTURE_MESSAGE_SENDING_AND_HELP(TRUE)
|
|
SAFE_REMOVE_BLIP(blipPoppy)
|
|
TASK_CLEAR_LOOK_AT(PLAYER_PED_ID())
|
|
iTimerPicTaken = GET_GAME_TIMER()
|
|
b_Correct_Pic_Taken = TRUE
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_MISSION, "**** Decent pic of Poppy taken ****")
|
|
#ENDIF
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(poppy_arrest_scene)
|
|
fPhase = GET_SYNCHRONIZED_SCENE_PHASE(poppy_arrest_scene)
|
|
IF fPhase >= 0.638
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_MISSION, "STATS **** DUI Diva ****")
|
|
#ENDIF
|
|
bPhotoInCuffs = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
iPhotoScore = 0
|
|
iFramesCheckingPhotoOk = 0
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF b_Correct_Pic_Taken = FALSE
|
|
eSubStage = SS_CLEANUP
|
|
ELSE
|
|
IF bPhotoSent = FALSE
|
|
IF HAS_CONTACT_RECEIVED_PICTURE_MESSAGE(CHAR_BEVERLY)
|
|
IF IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
OR IS_THIS_PRINT_BEING_DISPLAYED("PAP3_POP")
|
|
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE_NATIVE(PLAYER_PED_ID(),"PAP3A_AOAF","FRANKLIN","SPEECH_PARAMS_STANDARD")
|
|
ELSE
|
|
CPRINTLN(DEBUG_MISSION, "PAP3A****PLAY SINGLE LINE WITH SUBS****")
|
|
iDoDelayedLastLine = 1
|
|
ENDIF
|
|
//IF IS_MESSAGE_BEING_DISPLAYED()
|
|
// CLEAR_PRINTS()
|
|
//ENDIF
|
|
HANG_UP_AND_PUT_AWAY_PHONE()
|
|
BYPASS_CELLPHONE_CAMERA_DEFAULT_SAVE_ROUTINE(FALSE)
|
|
ENABLE_PICTURE_MESSAGE_SENDING_AND_HELP(FALSE)
|
|
eSubStage = SS_CLEANUP
|
|
iTimerCorrectPicSent = GET_GAME_TIMER()
|
|
bPhotoSent = TRUE
|
|
ELSE
|
|
IF GET_GAME_TIMER() > iTimerCopsLeavingArea + 10000
|
|
eSubStage = SS_CLEANUP
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
CASE SS_CLEANUP
|
|
|
|
//CLEAR_PRINTS()
|
|
|
|
REPLAY_RECORD_BACK_FOR_TIME(10.0, 6.0, REPLAY_IMPORTANCE_LOW)
|
|
|
|
bMainObjectiveDisplayed = FALSE
|
|
|
|
bConversationActive = FALSE
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_MISSION, "PAP3A****Cleanup take photo****")
|
|
#ENDIF
|
|
|
|
IF bPhotoSent = TRUE
|
|
SetStage(MS_END_PHONECALL)
|
|
ELSE
|
|
SET_FAIL_REASON(FAIL_PHOTO_LOST)
|
|
ENDIF
|
|
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Handles player getting end phone call from Beverly
|
|
PROC END_PHONECALL()
|
|
|
|
IF bPoliceAttacking
|
|
IF IS_ENTITY_ALIVE(mvPoliceCars[0].mVehicle)
|
|
IF IS_ENTITY_TOUCHING_ENTITY(PLAYER_PED_ID(),mvPoliceCars[0].mVehicle)
|
|
IF iWanted < 30
|
|
iWanted = 30
|
|
ENDIF
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(poppy_arrest_scene)
|
|
AND GET_SYNCHRONIZED_SCENE_PHASE(poppy_arrest_scene) > 0.92
|
|
IF IS_PED_UNINJURED(mpPoppyPed.mPed)
|
|
AND NOT IS_PED_IN_VEHICLE(mpPoppyPed.mPed,mvPoliceCars[0].mVehicle)
|
|
SET_PED_INTO_VEHICLE(mpPoppyPed.mPed,mvPoliceCars[0].mVehicle,VS_BACK_LEFT)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
++iWanted
|
|
IF IS_ENTITY_DEAD(mpPoppyPed.mPed)
|
|
OR IS_PED_INJURED(mpPoppyPed.mPed)
|
|
SET_FAIL_REASON(FAIL_POPPY_KILLED)
|
|
EXIT
|
|
ELSE
|
|
IF iWanted > 30
|
|
SET_FAIL_REASON(FAIL_POLICE_INTER)
|
|
EXIT
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
TEXT_LABEL_23 label = GET_CURRENTLY_PLAYING_STANDARD_CONVERSATION_LABEL()
|
|
|
|
IF IS_PED_UNINJURED(mpPolicePed[1].mPed)
|
|
IF IS_VEHICLE_OK(mvPoliceCars[0].mVehicle)
|
|
IF NOT IS_PED_SITTING_IN_VEHICLE_SEAT(mpPolicePed[1].mPed,mvPoliceCars[0].mVehicle,VS_FRONT_RIGHT)
|
|
SET_PED_INTO_VEHICLE(mpPolicePed[1].mPed,mvPoliceCars[0].mVehicle,VS_FRONT_RIGHT)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
SWITCH eSubStage
|
|
CASE SS_SETUP
|
|
|
|
bConversationActive = FALSE
|
|
|
|
iTimerCorrectPicSent = GET_GAME_TIMER()
|
|
|
|
bPrintLeaveArea = FALSE
|
|
|
|
bRegisterBevCall = FALSE
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_MISSION, "PAP3A****Init mission ending****")
|
|
#ENDIF
|
|
|
|
SAFE_FADE_SCREEN_IN_FROM_BLACK(DEFAULT_FADE_TIME,FALSE)
|
|
|
|
eSubStage = SS_UPDATE
|
|
|
|
BREAK
|
|
|
|
CASE SS_UPDATE
|
|
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(poppy_arrest_scene)
|
|
AND GET_SYNCHRONIZED_SCENE_PHASE(poppy_arrest_scene) > 0.85
|
|
IF IS_PED_UNINJURED(pedChopperPilot)
|
|
AND IS_ENTITY_ALIVE(vehPoliceChopper)
|
|
TASK_HELI_MISSION(pedChopperPilot,vehPoliceChopper,NULL,NULL,<<123.3842, -883.9507, 200>>,MISSION_GOTO,200.0,-1,-1,-1,100)
|
|
//TASK_VEHICLE_SHOOT_AT_PED(pedChopperPilot,mpPoppyPed.mPed)
|
|
SET_VEHICLE_SEARCHLIGHT(vehPoliceChopper,FALSE)
|
|
SET_PED_KEEP_TASK(pedChopperPilot,TRUE)
|
|
SAFE_RELEASE_PED(pedChopperPilot)
|
|
SAFE_RELEASE_VEHICLE(vehPoliceChopper)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
MONITOR_POLICE_PEDS(0)
|
|
|
|
HANDLE_CRASH_SEQUENCE()
|
|
|
|
HANDLE_POLICE_CHASE()
|
|
|
|
ARREST_SCENE_AREA_CHECK()
|
|
|
|
IF iDoDelayedLastLine = 1
|
|
IF NOT IS_PHONE_ONSCREEN()
|
|
AND NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
ADD_PED_FOR_DIALOGUE(sSpeach, 1, PLAYER_PED_ID(), "FRANKLIN")
|
|
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(sSpeach, "PAP3AAU", "PAP3A_FRANK","PAP3A_FRANK_6", CONV_PRIORITY_MEDIUM)
|
|
iDoDelayedLastLine = 2
|
|
CPRINTLN(DEBUG_MISSION, "PAP3A****PLAY SINGLE LINE WITH SUBS RETURNED TRUE****")
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF bPoppyAndCopDrivingOff = FALSE
|
|
IF bSweetTxtSent = FALSE
|
|
IF GET_GAME_TIMER() > iTimerCorrectPicSent + 3000 //4000
|
|
IF SEND_TEXT_MESSAGE_TO_CURRENT_PLAYER(CHAR_BEVERLY,"PAP3A_TXT6",TXTMSG_UNLOCKED) //Sweeeeet! Get the fuck out of there!
|
|
bSweetTxtSent = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF bPrintLeaveArea = FALSE
|
|
IF GET_GAME_TIMER() > iTimerCorrectPicSent + 4000
|
|
//PRINT_NOW("PAP3_END", DEFAULT_GOD_TEXT_TIME, 1) //"Leave the area."
|
|
bPrintLeaveArea = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
/*
|
|
IF bPoppyAndCopDrivingOff = FALSE
|
|
IF bPrintLeaveArea = FALSE
|
|
IF GET_GAME_TIMER() > iTimerCorrectPicSent + 1500
|
|
PRINT_NOW("PAP3_END",DEFAULT_GOD_TEXT_TIME,5)
|
|
bPrintLeaveArea = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
*/
|
|
IF iSeqCarDoors > 0
|
|
AND bCrashCutDone = TRUE
|
|
HANDLE_POLICE_CHASE()
|
|
IF IS_AUDIO_SCENE_ACTIVE("PAPARAZZO_3A_PHOTO_SCENE")
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
STOP_AUDIO_SCENE("PAPARAZZO_3A_PHOTO_SCENE")
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF bPlayerLeftArea = FALSE
|
|
IF IS_PED_UNINJURED(mpPolicePed[0].mPed)
|
|
AND IS_PED_UNINJURED(mpPoppyPed.mPed)
|
|
AND IS_VEHICLE_OK(mvPoliceCars[0].mVehicle)
|
|
IF NOT IS_ENTITY_IN_RANGE_ENTITY(mpPoppyPed.mPed,PLAYER_PED_ID(),100.0)
|
|
IF NOT IS_ENTITY_ON_SCREEN(mpPoppyPed.mPed)
|
|
AND NOT IS_ENTITY_ON_SCREEN(mpPolicePed[0].mPed)
|
|
|
|
// For B*2124928 release chopper if player leaves the area so it doesn't try to follow poppy after she gets cleaned up
|
|
SAFE_RELEASE_PED(pedChopperPilot)
|
|
SAFE_RELEASE_VEHICLE(vehPoliceChopper)
|
|
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(poppy_arrest_scene)
|
|
STOP_SYNCHRONIZED_ENTITY_ANIM(mvPoliceCars[0].mVehicle,-1,FALSE)
|
|
ENDIF
|
|
|
|
FORCE_ENTITY_AI_AND_ANIMATION_UPDATE(mvPoliceCars[0].mVehicle)
|
|
|
|
CLEAR_PED_TASKS_IMMEDIATELY(mpPoppyPed.mPed)
|
|
CLEAR_PED_TASKS_IMMEDIATELY(mpPolicePed[0].mPed)
|
|
|
|
IF NOT IS_PED_IN_VEHICLE(mpPolicePed[0].mPed,mvPoliceCars[0].mVehicle)
|
|
SET_PED_INTO_VEHICLE(mpPolicePed[0].mPed,mvPoliceCars[0].mVehicle,VS_DRIVER)
|
|
ENDIF
|
|
IF NOT IS_PED_IN_VEHICLE(mpPoppyPed.mPed,mvPoliceCars[0].mVehicle)
|
|
SET_PED_INTO_VEHICLE(mpPoppyPed.mPed,mvPoliceCars[0].mVehicle,VS_BACK_LEFT)
|
|
ENDIF
|
|
|
|
SET_DISABLE_PRETEND_OCCUPANTS(mvPoliceCars[0].mVehicle,TRUE)
|
|
|
|
//SET_VEHICLE_DOORS_LOCKED(mvPoliceCars[0].mVehicle,VEHICLELOCK_LOCKED)
|
|
|
|
SET_VEHICLE_SIREN(mvPoliceCars[0].mVehicle,FALSE)
|
|
|
|
SET_PED_KEEP_TASK(mpPolicePed[0].mPed,TRUE)
|
|
|
|
iTimerCopsLeavingArea = GET_GAME_TIMER()
|
|
|
|
//RE-ACTIVATE ROADS - DO THIS HERE SO POLIE CAN LEAVE AREA CORRECTLY IN VEHICLE
|
|
SET_ROADS_IN_AREA(<< 318.9400, -411.6963, 38.0267 >>,<< 421.5246, -363.0107, 52.0853 >>, TRUE)
|
|
SET_ROADS_IN_AREA(<< 796.4662, -68.4078, 79.5220 >>,<< 974.3044, -152.9081, 72.6015 >>, TRUE)
|
|
SET_ROADS_IN_AREA(<< 683.3696, 38.3284, 83.2770 >>, << 707.9796, -22.9872, 82.6540 >>, TRUE)
|
|
SET_ROADS_IN_AREA(<< 812.2689, -40.7279, 79.4878 >>, << 858.4236, -119.0339, 78.3599 >>, TRUE)
|
|
|
|
TASK_VEHICLE_DRIVE_TO_COORD(mpPolicePed[0].mPed,mvPoliceCars[0].mVehicle,<< 231.6400, -347.1846, 43.2866 >>,30,DRIVINGSTYLE_STRAIGHTLINE,DUMMY_MODEL_FOR_SCRIPT,DRIVINGMODE_AVOIDCARS,20.0,150.0)
|
|
//TASK_VEHICLE_DRIVE_WANDER(mpPolicePed[0].mPed,mvPoliceCars[0].mVehicle,50,DRIVINGMODE_AVOIDCARS_RECKLESS)
|
|
|
|
bPoppyAndCopDrivingOff = TRUE
|
|
|
|
//IF IS_ENTITY_ALIVE(mvPoliceCars[2].mVehicle)
|
|
// FREEZE_ENTITY_POSITION(mvPoliceCars[2].mVehicle,FALSE)
|
|
//ENDIF
|
|
|
|
SET_VEHICLE_DOORS_SHUT(mvPoliceCars[0].mVehicle)
|
|
|
|
TASK_CLEAR_LOOK_AT(PLAYER_PED_ID())
|
|
bPlayerLeftArea = TRUE
|
|
iSeqCarDoors = 5
|
|
eCopState[0] = CS_LEAVE_AREA
|
|
ePoppyState = PS_POPPY_IN_COP_CAR
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF eCopState[0] = CS_LEAVE_AREA
|
|
IF GET_GAME_TIMER() >= iTimerCopsLeavingArea + 4000
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF NOT bConversationActive
|
|
bRegisterBevCall = TRUE
|
|
bConversationActive = TRUE
|
|
ELSE
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF HAS_CELLPHONE_CALL_FINISHED()
|
|
IF iWanted = 0
|
|
eSubStage = SS_CLEANUP
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF bPoliceAttacking = TRUE // IF POLICE CANNOT LEAVE THE AREA BECAUSE THEY ARE ATTACKING PLAYER THEN ACTIVATE PHONE CALL.
|
|
IF GET_GAME_TIMER() >= iTimerCopsLeavingArea + 10000
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF NOT bConversationActive
|
|
bRegisterBevCall = TRUE
|
|
bConversationActive = TRUE
|
|
ELSE
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF HAS_CELLPHONE_CALL_FINISHED()
|
|
IF iWanted = 0
|
|
eSubStage = SS_CLEANUP
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF bCrashCutDone = TRUE
|
|
AND NOT IS_THIS_PRINT_BEING_DISPLAYED("PAP3_POP")
|
|
IF iSeqPoppyDialogue = 0
|
|
IF IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF ARE_STRINGS_EQUAL(label,"PAP3A_ARREST_8")
|
|
KILL_FACE_TO_FACE_CONVERSATION()
|
|
iSeqPoppyDialogue = 1
|
|
ENDIF
|
|
ENDIF
|
|
ELIF iSeqPoppyDialogue = 1
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF NOT b_Correct_Pic_Taken
|
|
IF bPhotoPoppyObj = FALSE
|
|
PRINT_NOW("PAP3_POP", DEFAULT_GOD_TEXT_TIME, 1) //"Take a photo of poppy"
|
|
bPhotoPoppyObj = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
iSeqPoppyDialogue = 2
|
|
ENDIF
|
|
ELIF iSeqPoppyDialogue = 2
|
|
IF NOT IS_THIS_PRINT_BEING_DISPLAYED("PAP3_POP")
|
|
IF NOT bKickedOffDialogueAgain
|
|
IF GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(), mpPoppyPed.mPed) <= 50
|
|
IF CREATE_CONVERSATION_FROM_SPECIFIC_LINE(sSpeach, "PAP3AAU", "PAP3A_ARREST","PAP3A_ARREST_10", CONV_PRIORITY_HIGH)
|
|
bKickedOffDialogueAgain = TRUE
|
|
iSeqPoppyDialogue = 3
|
|
iSubSwitch = 0
|
|
iRetrigger = 1
|
|
ENDIF
|
|
ELSE
|
|
IF CREATE_CONVERSATION_FROM_SPECIFIC_LINE(sSpeach, "PAP3AAU", "PAP3A_ARREST","PAP3A_ARREST_10", CONV_PRIORITY_HIGH,DO_NOT_DISPLAY_SUBTITLES)
|
|
bKickedOffDialogueAgain = TRUE
|
|
iSeqPoppyDialogue = 3
|
|
iSubSwitch = 1
|
|
iRetrigger = 1
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_SUBTITLE_PREFERENCE_SWITCHED_ON()
|
|
AND NOT IS_THIS_PRINT_BEING_DISPLAYED("PAP3_POP")
|
|
IF iSeqPoppyDialogue = 0
|
|
OR iSeqPoppyDialogue = 3
|
|
DO_ANNOYING_SUBTITLE_SWITCH()
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
CASE SS_CLEANUP
|
|
|
|
IF bRegisterBevCall = TRUE
|
|
ADD_PED_FOR_DIALOGUE(sSpeach, 3, NULL, "BEVERLY")
|
|
ADD_PED_FOR_DIALOGUE(sSpeach, 1, PLAYER_PED_ID(), "FRANKLIN")
|
|
REGISTER_CALL_FROM_CHARACTER_TO_PLAYER(CALL_PAP3A_DONE,CT_END_OF_MISSION,BIT_FRANKLIN,CHAR_BEVERLY,3,CC_END_OF_MISSION_QUEUE_TIME,10000) //Les bug 1533700 //CC_END_OF_MISSION_QUEUE_TIME
|
|
ENDIF
|
|
|
|
bMainObjectiveDisplayed = FALSE
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_MISSION, "PAP3A****Mission passed****")
|
|
#ENDIF
|
|
|
|
Script_Passed()
|
|
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Waits for the screen to fade out, then updates the fail reason for the mission
|
|
PROC FAIL_WAIT_FOR_FADE()
|
|
|
|
SWITCH eSubStage
|
|
|
|
CASE SS_SETUP
|
|
|
|
IF IS_ENTITY_ALIVE(mvPoliceCars[0].mVehicle)
|
|
//IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(mvPoliceCars[0].mVehicle)
|
|
// STOP_PLAYBACK_RECORDED_VEHICLE(mvPoliceCars[0].mVehicle)
|
|
//ENDIF
|
|
FREEZE_ENTITY_POSITION(mvPoliceCars[0].mVehicle,FALSE)
|
|
ENDIF
|
|
|
|
IF IS_ENTITY_ALIVE(mvPoliceCars[2].mVehicle)
|
|
//IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(mvPoliceCars[0].mVehicle)
|
|
// STOP_PLAYBACK_RECORDED_VEHICLE(mvPoliceCars[0].mVehicle)
|
|
//ENDIF
|
|
FREEZE_ENTITY_POSITION(mvPoliceCars[2].mVehicle,FALSE)
|
|
ENDIF
|
|
|
|
IF IS_ENTITY_ALIVE(mvPoppyCar.mVehicle)
|
|
//IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(mvPoliceCars[0].mVehicle)
|
|
// STOP_PLAYBACK_RECORDED_VEHICLE(mvPoliceCars[0].mVehicle)
|
|
//ENDIF
|
|
FREEZE_ENTITY_POSITION(mvPoppyCar.mVehicle,FALSE)
|
|
ENDIF
|
|
|
|
IF eFailReason = FAIL_POLICE_INTER
|
|
IF IS_PED_UNINJURED(mpPolicePed[0].mPed)
|
|
IF IS_ENTITY_IN_RANGE_ENTITY(mpPolicePed[0].mPed,PLAYER_PED_ID(),100)
|
|
IF NOT IS_PED_IN_COMBAT(mpPolicePed[0].mPed,PLAYER_PED_ID())
|
|
TASK_COMBAT_PED(mpPolicePed[0].mPed,PLAYER_PED_ID())
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//IF IS_PED_UNINJURED(mpPolicePed[1].mPed)
|
|
// TASK_COMBAT_PED(mpPolicePed[1].mPed,PLAYER_PED_ID())
|
|
//ENDIF
|
|
|
|
IF IS_PED_UNINJURED(mpPolicePed[2].mPed)
|
|
IF IS_ENTITY_IN_RANGE_ENTITY(mpPolicePed[2].mPed,PLAYER_PED_ID(),100)
|
|
IF NOT IS_PED_IN_COMBAT(mpPolicePed[2].mPed,PLAYER_PED_ID())
|
|
TASK_COMBAT_PED(mpPolicePed[2].mPed,PLAYER_PED_ID())
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_PED_UNINJURED(mpPolicePed[3].mPed)
|
|
IF IS_ENTITY_IN_RANGE_ENTITY(mpPolicePed[3].mPed,PLAYER_PED_ID(),100)
|
|
IF NOT IS_PED_IN_COMBAT(mpPolicePed[3].mPed,PLAYER_PED_ID())
|
|
TASK_COMBAT_PED(mpPolicePed[3].mPed,PLAYER_PED_ID())
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
CLEAR_PRINTS()
|
|
IF IS_HELP_MESSAGE_BEING_DISPLAYED()
|
|
CLEAR_HELP()
|
|
ENDIF
|
|
|
|
TRIGGER_MUSIC_EVENT("PAP3_FAIL")
|
|
|
|
// remove blips
|
|
SAFE_REMOVE_BLIP(biMissionBlip)
|
|
|
|
STRING sFailReason
|
|
|
|
SWITCH eFailReason // print fail reason
|
|
|
|
CASE FAIL_DEFAULT // no fail reason to display
|
|
BREAK
|
|
|
|
CASE FAIL_PHOTO_LOST
|
|
sFailReason = "PAP3_08" //"~r~The photo opportunity was lost."
|
|
BREAK
|
|
|
|
CASE FAIL_POPPY_LOST
|
|
sFailReason = "PAP3_LOSTP" //"~r~You lost Poppy.."
|
|
BREAK
|
|
|
|
CASE FAIL_POLICE_INTER
|
|
sFailReason = "PAP3_POLIC" //"~r~You interfered with the police. "
|
|
BREAK
|
|
|
|
CASE FAIL_POPPY_INJURED
|
|
sFailReason = "PAP3_INJUR" //"~r~Poppy was injured."
|
|
BREAK
|
|
|
|
CASE FAIL_POPPY_KILLED
|
|
sFailReason = "PAP3_KILL2" //"~r~Poppy was killed."
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
IF eFailReason = FAIL_DEFAULT
|
|
Random_Character_Failed()
|
|
ELSE
|
|
Random_Character_Failed_With_Reason(sFailReason)
|
|
ENDIF
|
|
|
|
|
|
eSubStage = SS_UPDATE
|
|
BREAK
|
|
|
|
CASE SS_UPDATE
|
|
|
|
IF GET_MISSION_FLOW_SAFE_TO_CLEANUP()
|
|
|
|
// Do a check here to see if we need to warp the player at all
|
|
// (only set the fail warp locations if we can't leave the player where he was)
|
|
// MISSION_FLOW_SET_FAIL_WARP_LOCATION(<< 421.4590, 132.4802, 100.0324 >>, 68.6857)
|
|
// SET_REPLAY_DECLINED_VEHICLE_WARP_LOCATION(<< 419.2751, 130.6916, 99.9666 >>, 71.4842)
|
|
|
|
DELETE_EVERYTHING()
|
|
|
|
MissionCleanup()
|
|
|
|
IF IS_SCRIPTED_CONVERSATION_ONGOING()
|
|
KILL_ANY_CONVERSATION()
|
|
ENDIF
|
|
|
|
Script_Cleanup(FALSE)
|
|
|
|
ELSE
|
|
IF NOT bFailDialogue
|
|
IF bPoppyHasCrashed = TRUE
|
|
IF eFailReason = FAIL_POLICE_INTER
|
|
ADD_PED_FOR_DIALOGUE(sSpeach, 1, PLAYER_PED_ID(), "FRANKLIN")
|
|
bFailDialogue = PLAY_SINGLE_LINE_FROM_CONVERSATION(sSpeach, "PAP3AAU", "PAP3A_FRANK", "PAP3A_FRANK_7", CONV_PRIORITY_MEDIUM, DO_NOT_DISPLAY_SUBTITLES)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
// not finished fading out
|
|
// you may want to handle dialogue etc here.
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDPROC
|
|
|
|
PROC SkipCS()
|
|
|
|
SAFE_FADE_SCREEN_OUT_TO_BLACK(0,FALSE)
|
|
|
|
//SAFE_TELEPORT_ENTITY(PLAYER_PED_ID(),<< 305.3899, 139.1082, 102.7873 >>, 335.5552)
|
|
|
|
CLEAR_AREA(<<336.4843, 132.4985, 102.0139>>,30,TRUE)
|
|
|
|
IF NOT IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
IF IS_VEHICLE_OK(vehPlayer)
|
|
IF IS_THIS_MODEL_A_HELI(GET_ENTITY_MODEL(vehPlayer))
|
|
bHeliReplay = TRUE
|
|
ELSE
|
|
bHeliReplay = FALSE
|
|
ENDIF
|
|
/*
|
|
FREEZE_ENTITY_POSITION(PLAYER_PED_ID(),FALSE)
|
|
SET_PED_INTO_VEHICLE(PLAYER_PED_ID(),vehPlayer,VS_DRIVER)
|
|
IF bHeliReplay = FALSE
|
|
SET_PED_COORDS_KEEP_VEHICLE(PLAYER_PED_ID(), <<336.4843, 132.4985, 102.0139>>)
|
|
SET_ENTITY_HEADING(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()),249.9272)
|
|
ELSE
|
|
SET_PED_COORDS_KEEP_VEHICLE(PLAYER_PED_ID(), <<348.7824, 138.0614, 140.0>>)
|
|
SET_ENTITY_HEADING(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()),247.2125)
|
|
SET_HELI_BLADES_FULL_SPEED(vehPlayer)
|
|
//SET_VEHICLE_FORWARD_SPEED(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()),5)
|
|
ENDIF
|
|
*/
|
|
SET_VEHICLE_ENGINE_ON(vehPlayer,TRUE,TRUE)
|
|
ELSE
|
|
CREATE_VEHICLE_FOR_REPLAY(vehPlayer,<<336.4843, 132.4985, 102.0139>>, 249.9272,FALSE,FALSE,TRUE,TRUE,TRUE,CARBONIZZARE,1)
|
|
IF IS_THIS_MODEL_A_HELI(GET_ENTITY_MODEL(vehPlayer))
|
|
bHeliReplay = TRUE
|
|
ELSE
|
|
bHeliReplay = FALSE
|
|
ENDIF
|
|
/*
|
|
FREEZE_ENTITY_POSITION(PLAYER_PED_ID(),FALSE)
|
|
SET_PED_INTO_VEHICLE(PLAYER_PED_ID(),vehPlayer,VS_DRIVER)
|
|
IF bHeliReplay = FALSE
|
|
SET_PED_COORDS_KEEP_VEHICLE(PLAYER_PED_ID(), <<336.4843, 132.4985, 102.0139>>)
|
|
SET_ENTITY_HEADING(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()),249.9272)
|
|
ELSE
|
|
SET_PED_COORDS_KEEP_VEHICLE(PLAYER_PED_ID(), <<348.7824, 138.0614, 140.0>>)
|
|
SET_ENTITY_HEADING(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()),247.2125)
|
|
SET_HELI_BLADES_FULL_SPEED(vehPlayer)
|
|
//SET_VEHICLE_FORWARD_SPEED(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()),5)
|
|
ENDIF
|
|
*/
|
|
SET_VEHICLE_ENGINE_ON(vehPlayer,TRUE,TRUE)
|
|
ENDIF
|
|
ELSE
|
|
|
|
vehPlayer = GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID())
|
|
IF IS_THIS_MODEL_A_HELI(GET_ENTITY_MODEL(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID())))
|
|
bHeliReplay = TRUE
|
|
ELSE
|
|
bHeliReplay = FALSE
|
|
ENDIF
|
|
|
|
/*
|
|
IF bHeliReplay = FALSE
|
|
SET_PED_COORDS_KEEP_VEHICLE(PLAYER_PED_ID(), <<336.4843, 132.4985, 102.0139>>)
|
|
SET_ENTITY_HEADING(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()),249.9272)
|
|
ELSE
|
|
SET_PED_COORDS_KEEP_VEHICLE(PLAYER_PED_ID(), <<348.7824, 138.0614, 140.0>>)
|
|
SET_ENTITY_HEADING(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()),247.2125)
|
|
ENDIF
|
|
*/
|
|
ENDIF
|
|
|
|
IF IS_ENTITY_ALIVE(vehPlayer)
|
|
IF IS_THIS_MODEL_A_BIKE(GET_ENTITY_MODEL(vehPlayer))
|
|
GIVE_PED_HELMET(PLAYER_PED_ID(),FALSE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
END_REPLAY_SETUP(vehPlayer)
|
|
|
|
SET_GAMEPLAY_CAM_RELATIVE_HEADING()
|
|
SET_GAMEPLAY_CAM_RELATIVE_PITCH()
|
|
|
|
//LOAD_SCENE(<<336.4843, 132.4985, 102.0139>>)
|
|
|
|
SAFE_FADE_SCREEN_IN_FROM_BLACK(DEFAULT_FADE_TIME,FALSE)
|
|
|
|
missionStage = MS_INITIAL_PHONE
|
|
|
|
eSubStage = SS_SETUP
|
|
|
|
ENDPROC
|
|
|
|
PROC ReplaySkipToChase()
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_MISSION, "PAP3A**** REPLAY SKIP TO CHASE ****")
|
|
#ENDIF
|
|
|
|
SAFE_FADE_SCREEN_OUT_TO_BLACK(0,FALSE)
|
|
|
|
FLUSH_TEXT_MESSAGE_FEED_ENTRIES()
|
|
|
|
SET_PLAYER_CONTROL(PLAYER_ID(),FALSE)
|
|
|
|
//REQUEST_VEHICLE_RECORDING(201, "PAP3ARS")
|
|
REQUEST_WAYPOINT_RECORDING("Pap3aRoll")
|
|
|
|
//REQUEST_MODEL(POLMAV)
|
|
|
|
IF HAS_POLICE_SCENE_LOADED(TRUE)
|
|
HANDLE_POLICE_CHASE()
|
|
IF bPoliceChaseCreated = TRUE
|
|
//IF NOT IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
IF IS_VEHICLE_OK(vehPlayer)
|
|
IF IS_THIS_MODEL_A_HELI(GET_ENTITY_MODEL(vehPlayer))
|
|
bHeliReplay = TRUE
|
|
ELSE
|
|
bHeliReplay = FALSE
|
|
ENDIF
|
|
/*
|
|
FREEZE_ENTITY_POSITION(PLAYER_PED_ID(),FALSE)
|
|
SET_PED_INTO_VEHICLE(PLAYER_PED_ID(),vehPlayer,VS_DRIVER)
|
|
SET_PED_COORDS_KEEP_VEHICLE(PLAYER_PED_ID(), <<375.0581, 162.2386, 102.0736>>)
|
|
SET_ENTITY_HEADING(vehPlayer,342.4705)
|
|
*/
|
|
SET_VEHICLE_ENGINE_ON(vehPlayer,TRUE,TRUE)
|
|
ELSE
|
|
CREATE_VEHICLE_FOR_REPLAY(vehPlayer,<< 429.1563, 126.8527, 99.4028 >>, 70.3603,FALSE,FALSE,TRUE,TRUE,TRUE,CARBONIZZARE,1)
|
|
IF IS_THIS_MODEL_A_HELI(GET_ENTITY_MODEL(vehPlayer))
|
|
bHeliReplay = TRUE
|
|
ELSE
|
|
bHeliReplay = FALSE
|
|
ENDIF
|
|
/*
|
|
FREEZE_ENTITY_POSITION(PLAYER_PED_ID(),FALSE)
|
|
SET_PED_INTO_VEHICLE(PLAYER_PED_ID(),vehPlayer,VS_DRIVER)
|
|
SET_PED_COORDS_KEEP_VEHICLE(PLAYER_PED_ID(), <<375.0581, 162.2386, 102.0736>>)
|
|
SET_ENTITY_HEADING(vehPlayer,342.4705)
|
|
*/
|
|
SET_VEHICLE_ENGINE_ON(vehPlayer,TRUE,TRUE)
|
|
ENDIF
|
|
//ELSE
|
|
// SET_PED_COORDS_KEEP_VEHICLE(PLAYER_PED_ID(), << 662.8113, 26.9195, 84.1722 >>) //TELEPORT PLAYER TO LOCATION
|
|
// SET_ENTITY_HEADING(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()),240.0)
|
|
//ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
bDoingRollingReplay = TRUE
|
|
bDoRollingStart = TRUE
|
|
bDoneRollingStart = FALSE
|
|
iRollingStartTimer = -1
|
|
|
|
//WHILE NOT HAS_VEHICLE_RECORDING_BEEN_LOADED(201, "PAP3ARS")
|
|
// WAIT(0)
|
|
//ENDWHILE
|
|
|
|
WHILE NOT GET_IS_WAYPOINT_RECORDING_LOADED("Pap3aRoll")
|
|
WAIT(0)
|
|
ENDWHILE
|
|
|
|
IF IS_ENTITY_ALIVE(vehPlayer)
|
|
IF IS_THIS_MODEL_A_BIKE(GET_ENTITY_MODEL(vehPlayer))
|
|
GIVE_PED_HELMET(PLAYER_PED_ID(),FALSE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
END_REPLAY_SETUP(vehPlayer)
|
|
|
|
RCM_MANAGE_ROLLING_START()
|
|
|
|
//SET_GAMEPLAY_CAM_RELATIVE_HEADING() //!!!!!!!!!
|
|
//SET_GAMEPLAY_CAM_RELATIVE_PITCH()
|
|
|
|
//LOAD_SCENE(<<375.0581, 162.2386, 102.0736>>)
|
|
|
|
SET_PLAYER_CONTROL(PLAYER_ID(),FALSE)
|
|
|
|
HANDLE_POLICE_CHASE()
|
|
|
|
WAIT(400)
|
|
|
|
CLEAR_AREA_OF_VEHICLES(GET_ENTITY_COORDS(PLAYER_PED_ID()),200)
|
|
|
|
//SAFE_FADE_SCREEN_IN_FROM_BLACK(DEFAULT_FADE_TIME,FALSE)
|
|
|
|
iTimerReplayStarted = GET_GAME_TIMER()
|
|
|
|
missionStage = MS_CHASE_POPPY
|
|
|
|
eSubStage = SS_SETUP
|
|
|
|
ENDPROC
|
|
|
|
PROC ReplaySkipToPhoto()
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_MISSION, "PAP3A**** REPLAY SKIP TO PHOTO ****")
|
|
#ENDIF
|
|
|
|
SAFE_FADE_SCREEN_OUT_TO_BLACK(0,FALSE)
|
|
|
|
FLUSH_TEXT_MESSAGE_FEED_ENTRIES()
|
|
|
|
REQUEST_ANIM_DICT("rcmpaparazzo_3")
|
|
|
|
REQUEST_MODEL(POLMAV)
|
|
|
|
WHILE NOT HAS_ANIM_DICT_LOADED("rcmpaparazzo_3")
|
|
OR NOT HAS_MODEL_LOADED(POLMAV)
|
|
WAIT(0)
|
|
ENDWHILE
|
|
|
|
IF HAS_POLICE_SCENE_LOADED(TRUE)
|
|
HANDLE_POLICE_CHASE()
|
|
IF bPoliceChaseCreated = TRUE
|
|
IF NOT IS_ENTITY_DEAD(mvPoppyCar.mVehicle)
|
|
REQUEST_VEHICLE_HIGH_DETAIL_MODEL(mvPoppyCar.mVehicle)
|
|
ENDIF
|
|
IF NOT IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
IF IS_VEHICLE_OK(vehPlayer)
|
|
IF IS_THIS_MODEL_A_HELI(GET_ENTITY_MODEL(vehPlayer))
|
|
bHeliReplay = TRUE
|
|
ELSE
|
|
bHeliReplay = FALSE
|
|
ENDIF
|
|
|
|
//FREEZE_ENTITY_POSITION(PLAYER_PED_ID(),FALSE)
|
|
//SET_PED_INTO_VEHICLE(PLAYER_PED_ID(),vehPlayer,VS_DRIVER)
|
|
SET_ENTITY_COORDS(vehPlayer, << 366.9862, -404.5475, 44.8031 >>)
|
|
SET_ENTITY_HEADING(vehPlayer,105.0)
|
|
|
|
SET_VEHICLE_ENGINE_ON(vehPlayer,TRUE,TRUE)
|
|
ELSE
|
|
CREATE_VEHICLE_FOR_REPLAY(vehPlayer,<< 429.1563, 126.8527, 99.4028 >>, 70.3603,FALSE,FALSE,TRUE,TRUE,TRUE,CARBONIZZARE,1)
|
|
IF IS_THIS_MODEL_A_HELI(GET_ENTITY_MODEL(vehPlayer))
|
|
bHeliReplay = TRUE
|
|
ELSE
|
|
bHeliReplay = FALSE
|
|
ENDIF
|
|
|
|
//FREEZE_ENTITY_POSITION(PLAYER_PED_ID(),FALSE)
|
|
//SET_PED_INTO_VEHICLE(PLAYER_PED_ID(),vehPlayer,VS_DRIVER)
|
|
//SET_PED_COORDS_KEEP_VEHICLE(PLAYER_PED_ID(), << 366.9862, -404.5475, 44.8031 >>)
|
|
//SET_ENTITY_HEADING(vehPlayer,105.0)
|
|
SET_ENTITY_COORDS(vehPlayer, << 366.9862, -404.5475, 44.8031 >>)
|
|
SET_ENTITY_HEADING(vehPlayer,105.0)
|
|
|
|
SET_VEHICLE_ENGINE_ON(vehPlayer,TRUE,TRUE)
|
|
ENDIF
|
|
ELSE
|
|
vehPlayer = GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID())
|
|
SET_ENTITY_COORDS(vehPlayer, << 366.9862, -404.5475, 44.8031 >>)
|
|
SET_ENTITY_HEADING(vehPlayer,105.0)
|
|
|
|
//SET_PED_COORDS_KEEP_VEHICLE(PLAYER_PED_ID(), << 366.9862, -404.5475, 44.8031 >>) //TELEPORT PLAYER TO LOCATION
|
|
//SET_ENTITY_HEADING(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()),105.0)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT IS_ENTITY_DEAD(mvPoppyCar.mVehicle)
|
|
SET_ENTITY_COORDS(mvPoppyCar.mVehicle,<< 341.2146, -410.2309, 44.1722 >>)
|
|
//SET_ENTITY_HEADING(mvPoppyCar.mVehicle,111.4817)
|
|
//SET_ENTITY_COORDS(mvPoppyCar.mVehicle,<<341.4217, -410.1503, 44.1738>>)
|
|
SET_ENTITY_HEADING(mvPoppyCar.mVehicle,111.4817)
|
|
SET_VEHICLE_ON_GROUND_PROPERLY(mvPoppyCar.mVehicle)
|
|
FREEZE_ENTITY_POSITION(mvPoppyCar.mVehicle,TRUE)
|
|
SET_VEHICLE_ENGINE_ON(mvPoppyCar.mVehicle,TRUE,TRUE)
|
|
IF bPoppyCarSmashed = FALSE
|
|
SET_ENTITY_INVINCIBLE(mvPoppyCar.mVehicle,FALSE)
|
|
SET_VEHICLE_DAMAGE(mvPoppyCar.mVehicle, <<0, 2, 0>>, 400.0, 200.0, TRUE) //<<0, 2, 0>>, 300.0, 150.0
|
|
bPoppyCarSmashed = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT IS_ENTITY_DEAD(mvPoliceCars[0].mVehicle)
|
|
SET_ENTITY_COORDS(mvPoliceCars[0].mVehicle,<< 349.6943, -401.2252, 44.3462 >>)
|
|
SET_ENTITY_HEADING(mvPoliceCars[0].mVehicle,100.5072)
|
|
SET_VEHICLE_ON_GROUND_PROPERLY(mvPoliceCars[0].mVehicle)
|
|
ENDIF
|
|
|
|
IF NOT IS_ENTITY_DEAD(mvPoliceCars[2].mVehicle)
|
|
SET_ENTITY_COORDS(mvPoliceCars[2].mVehicle,<<328.869232,-399.050049,44.815384>>)
|
|
SET_ENTITY_HEADING(mvPoliceCars[2].mVehicle,-57.309715)
|
|
SET_VEHICLE_ON_GROUND_PROPERLY(mvPoliceCars[2].mVehicle)
|
|
ENDIF
|
|
|
|
//LOAD_SCENE(<< 366.9862, -404.5475, 44.8031 >>)
|
|
|
|
IF IS_ENTITY_ALIVE(vehPlayer)
|
|
IF IS_THIS_MODEL_A_BIKE(GET_ENTITY_MODEL(vehPlayer))
|
|
GIVE_PED_HELMET(PLAYER_PED_ID(),FALSE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT DOES_ENTITY_EXIST(vehPoliceChopper)
|
|
vehPoliceChopper = CREATE_VEHICLE(POLMAV,<< 379.96, -400.05, 85.23 >>, 108.26)
|
|
pedChopperPilot = CREATE_PED_INSIDE_VEHICLE(vehPoliceChopper,PEDTYPE_COP,S_M_Y_Cop_01)
|
|
SET_VEHICLE_LIVERY(vehPoliceChopper,0)
|
|
SET_HELI_BLADES_FULL_SPEED(vehPoliceChopper)
|
|
SET_VEHICLE_ENGINE_ON(vehPoliceChopper,TRUE,TRUE)
|
|
SET_VEHICLE_SEARCHLIGHT(vehPoliceChopper,TRUE,TRUE)
|
|
TASK_HELI_MISSION(pedChopperPilot,vehPoliceChopper,NULL,mpPoppyPed.mPed,<<0,50,60>>,MISSION_POLICE_BEHAVIOUR,0.1,60.0,-1,60,55)
|
|
FREEZE_ENTITY_POSITION(vehPoliceChopper,TRUE)
|
|
ENDIF
|
|
|
|
END_REPLAY_SETUP(vehPlayer)
|
|
|
|
IF AUDIO_IS_SCRIPTED_MUSIC_PLAYING()
|
|
TRIGGER_MUSIC_EVENT("PAP3_STOP")
|
|
ENDIF
|
|
|
|
bDelayFade = TRUE
|
|
|
|
//SAFE_FADE_SCREEN_IN_FROM_BLACK(DEFAULT_FADE_TIME,FALSE)
|
|
|
|
iTimerReplayStarted = GET_GAME_TIMER()
|
|
|
|
missionStage = MS_TAKE_PHOTO
|
|
|
|
eSubStage = SS_SETUP
|
|
|
|
ENDPROC
|
|
|
|
PROC ReplaySkipToEnd()
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_MISSION, "PAP3A**** REPLAY SKIP TO PHOTO ****")
|
|
#ENDIF
|
|
|
|
SAFE_FADE_SCREEN_OUT_TO_BLACK(0,FALSE)
|
|
|
|
FLUSH_TEXT_MESSAGE_FEED_ENTRIES()
|
|
|
|
REQUEST_ANIM_DICT("rcmpaparazzo_3")
|
|
|
|
//REQUEST_MODEL(POLMAV)
|
|
|
|
WHILE NOT HAS_ANIM_DICT_LOADED("rcmpaparazzo_3")
|
|
WAIT(0)
|
|
ENDWHILE
|
|
|
|
IF HAS_POLICE_SCENE_LOADED(TRUE)
|
|
HANDLE_POLICE_CHASE()
|
|
IF bPoliceChaseCreated = TRUE
|
|
IF NOT IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
IF IS_VEHICLE_OK(vehPlayer)
|
|
IF IS_THIS_MODEL_A_HELI(GET_ENTITY_MODEL(vehPlayer))
|
|
bHeliReplay = TRUE
|
|
ELSE
|
|
bHeliReplay = FALSE
|
|
ENDIF
|
|
//FREEZE_ENTITY_POSITION(PLAYER_PED_ID(),FALSE)
|
|
//SET_PED_INTO_VEHICLE(PLAYER_PED_ID(),vehPlayer,VS_DRIVER)
|
|
SET_ENTITY_COORDS(vehPlayer, << 366.9862, -404.5475, 44.8031 >>)
|
|
SET_ENTITY_HEADING(vehPlayer,105.0)
|
|
ELSE
|
|
CREATE_VEHICLE_FOR_REPLAY(vehPlayer,<< 429.1563, 126.8527, 99.4028 >>, 70.3603,FALSE,FALSE,TRUE,TRUE,TRUE,CARBONIZZARE,1)
|
|
IF IS_THIS_MODEL_A_HELI(GET_ENTITY_MODEL(vehPlayer))
|
|
bHeliReplay = TRUE
|
|
ELSE
|
|
bHeliReplay = FALSE
|
|
ENDIF
|
|
//FREEZE_ENTITY_POSITION(PLAYER_PED_ID(),FALSE)
|
|
//SET_PED_INTO_VEHICLE(PLAYER_PED_ID(),vehPlayer,VS_DRIVER)
|
|
SET_ENTITY_COORDS(vehPlayer, << 366.9862, -404.5475, 44.8031 >>)
|
|
SET_ENTITY_HEADING(vehPlayer,105.0)
|
|
ENDIF
|
|
ELSE
|
|
vehPlayer = GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID())
|
|
//SET_PED_COORDS_KEEP_VEHICLE(PLAYER_PED_ID(), << 366.9862, -404.5475, 44.8031 >>) //TELEPORT PLAYER TO LOCATION
|
|
//SET_ENTITY_HEADING(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()),105.0)
|
|
SET_ENTITY_COORDS(vehPlayer, << 366.9862, -404.5475, 44.8031 >>)
|
|
SET_ENTITY_HEADING(vehPlayer,105.0)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT IS_ENTITY_DEAD(mvPoppyCar.mVehicle)
|
|
SET_ENTITY_COORDS(mvPoppyCar.mVehicle,<< 341.2146, -410.2309, 44.1722 >>)
|
|
//SET_ENTITY_COORDS(mvPoppyCar.mVehicle,<<341.4217, -410.1503, 44.1738>>)
|
|
SET_ENTITY_HEADING(mvPoppyCar.mVehicle,111.4817)
|
|
SET_VEHICLE_ON_GROUND_PROPERLY(mvPoppyCar.mVehicle)
|
|
IF bPoppyCarSmashed = FALSE
|
|
SET_ENTITY_INVINCIBLE(mvPoppyCar.mVehicle,FALSE)
|
|
SET_VEHICLE_DAMAGE(mvPoppyCar.mVehicle, <<0, 2, 0>>, 400.0, 200.0, TRUE)
|
|
bPoppyCarSmashed = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT IS_ENTITY_DEAD(mvPoliceCars[0].mVehicle)
|
|
SET_ENTITY_COORDS(mvPoliceCars[0].mVehicle,<< 349.6943, -401.2252, 44.3462 >>)
|
|
SET_ENTITY_HEADING(mvPoliceCars[0].mVehicle,100.5072)
|
|
SET_VEHICLE_ON_GROUND_PROPERLY(mvPoliceCars[0].mVehicle)
|
|
ENDIF
|
|
|
|
IF NOT IS_ENTITY_DEAD(mvPoliceCars[2].mVehicle)
|
|
SET_ENTITY_COORDS(mvPoliceCars[2].mVehicle,<<328.869232,-399.050049,44.815384>>)
|
|
SET_ENTITY_HEADING(mvPoliceCars[2].mVehicle,-57.309715)
|
|
SET_VEHICLE_ON_GROUND_PROPERLY(mvPoliceCars[2].mVehicle)
|
|
ENDIF
|
|
|
|
b_Correct_Pic_Taken = TRUE
|
|
bPhotoSent = TRUE
|
|
bCrashCutDone = TRUE
|
|
|
|
END_REPLAY_SETUP(vehPlayer)
|
|
|
|
//LOAD_SCENE(<< 366.9862, -404.5475, 44.8031 >>)
|
|
|
|
CLEAR_PED_TASKS_IMMEDIATELY(mpPoppyPed.mPed)
|
|
CLEAR_PED_TASKS_IMMEDIATELY(mpPolicePed[0].mPed)
|
|
|
|
IF NOT IS_PED_IN_VEHICLE(mpPolicePed[0].mPed,mvPoliceCars[0].mVehicle)
|
|
SET_PED_INTO_VEHICLE(mpPolicePed[0].mPed,mvPoliceCars[0].mVehicle,VS_DRIVER)
|
|
ENDIF
|
|
IF NOT IS_PED_IN_VEHICLE(mpPoppyPed.mPed,mvPoliceCars[0].mVehicle)
|
|
SET_PED_INTO_VEHICLE(mpPoppyPed.mPed,mvPoliceCars[0].mVehicle,VS_BACK_LEFT)
|
|
ENDIF
|
|
|
|
SET_DISABLE_PRETEND_OCCUPANTS(mvPoliceCars[0].mVehicle,TRUE)
|
|
|
|
//SET_VEHICLE_DOORS_LOCKED(mvPoliceCars[0].mVehicle,VEHICLELOCK_LOCKED)
|
|
|
|
SET_VEHICLE_SIREN(mvPoliceCars[0].mVehicle,FALSE)
|
|
|
|
SET_PED_KEEP_TASK(mpPolicePed[0].mPed,TRUE)
|
|
|
|
iTimerCopsLeavingArea = GET_GAME_TIMER()
|
|
|
|
//RE-ACTIVATE ROADS - DO THIS HERE SO POLIE CAN LEAVE AREA CORRECTLY IN VEHICLE
|
|
SET_ROADS_IN_AREA(<< 318.9400, -411.6963, 38.0267 >>,<< 421.5246, -363.0107, 52.0853 >>, TRUE)
|
|
SET_ROADS_IN_AREA(<< 796.4662, -68.4078, 79.5220 >>,<< 974.3044, -152.9081, 72.6015 >>, TRUE)
|
|
SET_ROADS_IN_AREA(<< 683.3696, 38.3284, 83.2770 >>, << 707.9796, -22.9872, 82.6540 >>, TRUE)
|
|
SET_ROADS_IN_AREA(<< 812.2689, -40.7279, 79.4878 >>, << 858.4236, -119.0339, 78.3599 >>, TRUE)
|
|
|
|
TASK_VEHICLE_DRIVE_TO_COORD(mpPolicePed[0].mPed,mvPoliceCars[0].mVehicle,<< 231.6400, -347.1846, 43.2866 >>,30,DRIVINGSTYLE_STRAIGHTLINE,DUMMY_MODEL_FOR_SCRIPT,DRIVINGMODE_AVOIDCARS,20.0,150.0)
|
|
//TASK_VEHICLE_DRIVE_WANDER(mpPolicePed[0].mPed,mvPoliceCars[0].mVehicle,50,DRIVINGMODE_AVOIDCARS_RECKLESS)
|
|
|
|
//IF IS_ENTITY_ALIVE(mvPoliceCars[2].mVehicle)
|
|
// FREEZE_ENTITY_POSITION(mvPoliceCars[2].mVehicle,FALSE)
|
|
//ENDIF
|
|
|
|
SET_VEHICLE_DOORS_SHUT(mvPoliceCars[0].mVehicle)
|
|
|
|
bPoppyAndCopDrivingOff = TRUE
|
|
|
|
TASK_CLEAR_LOOK_AT(PLAYER_PED_ID())
|
|
bPlayerLeftArea = TRUE
|
|
iSeqCarDoors = 5
|
|
eCopState[0] = CS_LEAVE_AREA
|
|
ePoppyState = PS_POPPY_IN_COP_CAR
|
|
|
|
SET_GAMEPLAY_CAM_RELATIVE_HEADING()
|
|
SET_GAMEPLAY_CAM_RELATIVE_PITCH()
|
|
|
|
//WAIT(1000)
|
|
|
|
//SAFE_FADE_SCREEN_IN_FROM_BLACK(DEFAULT_FADE_TIME,FALSE)
|
|
|
|
iTimerReplayStarted = GET_GAME_TIMER()
|
|
|
|
missionStage = MS_END_PHONECALL
|
|
|
|
eSubStage = SS_SETUP
|
|
|
|
ENDPROC
|
|
|
|
// ===========================================================================================================
|
|
// Script Loop
|
|
// ===========================================================================================================
|
|
|
|
SCRIPT(g_structRCScriptArgs sRCLauncherDataIn)
|
|
|
|
sRCLauncherDataLocal = sRCLauncherDataIn
|
|
RC_TakeEntityOwnership(sRCLauncherDataLocal)
|
|
RC_CLEANUP_LAUNCHER()
|
|
|
|
SET_MISSION_FLAG(TRUE)
|
|
|
|
// Setup callback when player is killed, arrested or goes to multiplayer
|
|
IF (HAS_FORCE_CLEANUP_OCCURRED(DEFAULT_FORCE_CLEANUP_FLAGS|FORCE_CLEANUP_FLAG_DEBUG_MENU))
|
|
PRINT_LAUNCHER_DEBUG("Force cleanup [TERMINATING]")
|
|
Random_Character_Failed()
|
|
Script_Cleanup()
|
|
ENDIF
|
|
|
|
IF Is_Replay_In_Progress() // Set up the initial scene for replays
|
|
g_bSceneAutoTrigger = TRUE
|
|
eInitialSceneStage = IS_REQUEST_SCENE
|
|
WHILE NOT SetupScene_PAPARAZZO_3A(sRCLauncherDataLocal)
|
|
WAIT(0)
|
|
ENDWHILE
|
|
g_bSceneAutoTrigger = FALSE
|
|
ENDIF
|
|
|
|
InitVariables() // initialise everything
|
|
|
|
// handle replay checkpoints
|
|
IF Is_Replay_In_Progress()
|
|
|
|
bReplay = TRUE
|
|
|
|
CREATE_VEHICLE_FOR_REPLAY(vehPlayer,<< 429.1563, 126.8527, 99.4028 >>, 70.3603,FALSE,FALSE,TRUE,TRUE,TRUE,CARBONIZZARE,1)
|
|
//CREATE_VEHICLE_FOR_REPLAY(vehPlayer,<<375.0581, 162.2386, 102.0736>>, 342.4705,FALSE,FALSE,TRUE,TRUE,TRUE,CARBONIZZARE,1)
|
|
IF IS_THIS_MODEL_A_HELI(GET_ENTITY_MODEL(vehPlayer))
|
|
bHeliReplay = TRUE
|
|
ELSE
|
|
bHeliReplay = FALSE
|
|
ENDIF
|
|
|
|
INT iReplayStage = GET_REPLAY_MID_MISSION_STAGE()
|
|
|
|
IF g_bShitskipAccepted = TRUE
|
|
iReplayStage++ // player is skipping this stage
|
|
ENDIF
|
|
|
|
SWITCH iReplayStage
|
|
|
|
CASE 0
|
|
START_REPLAY_SETUP(<<375.0581, 162.2386, 102.0736>>,342.4705)
|
|
SkipCS()
|
|
BREAK
|
|
|
|
CASE CP_AT_POPPY_LOCATION
|
|
//Do_Z_Skip(Z_SKIP_AT_POPPY_LOCATION) // skip to start of chase
|
|
START_REPLAY_SETUP(<<336.4843, 132.4985, 102.0139>>,249.9272)
|
|
ReplaySkipToChase()
|
|
BREAK
|
|
|
|
CASE CP_AT_CRASH_LOCATION
|
|
//Do_Z_Skip(Z_SKIP_AT_CRASH_LOCATION) // skip the crash scene and take photo
|
|
START_REPLAY_SETUP(<< 366.9862, -404.5475, 44.8031 >>,105.0,FALSE)
|
|
ReplaySkipToPhoto()
|
|
BREAK
|
|
|
|
CASE CP_END
|
|
//Do_Z_Skip(Z_SKIP_AT_CRASH_LOCATION) // skip to the end
|
|
START_REPLAY_SETUP(<< 366.9862, -404.5475, 44.8031 >>,105.0)
|
|
ReplaySkipToEnd()
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
ENDIF
|
|
|
|
REPOSITION_LANDSCAPE_PHONE_FOR_LONG_SUBTITLES(TRUE)
|
|
|
|
// Loop within here until the mission passes or fails
|
|
WHILE(TRUE)
|
|
|
|
WAIT(0)
|
|
|
|
REPLAY_CHECK_FOR_EVENT_THIS_FRAME("SF_TM")
|
|
|
|
//SET_PED_DENSITY_MULTIPLIER_THIS_FRAME(0.5)
|
|
//SET_RANDOM_VEHICLE_DENSITY_MULTIPLIER_THIS_FRAME(0.5)
|
|
|
|
UPDATE_MISSION_NAME_DISPLAYING(sRCLauncherDataLocal.sIntroCutscene)
|
|
|
|
IF bCrashCutDone = FALSE
|
|
IF IS_ENTITY_ALIVE(mvPoliceCars[0].mVehicle)
|
|
IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(mvPoliceCars[0].mVehicle) //second guy
|
|
SET_POSITION_OFFSET_FOR_RECORDED_VEHICLE_PLAYBACK(mvPoliceCars[0].mVehicle,<<0,0,0.12>>)
|
|
FREEZE_ENTITY_POSITION(mvPoliceCars[0].mVehicle,FALSE)
|
|
ELSE
|
|
FREEZE_ENTITY_POSITION(mvPoliceCars[0].mVehicle,TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_ENTITY_ALIVE(mvPoliceCars[1].mVehicle)
|
|
IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(mvPoliceCars[1].mVehicle) //first guy
|
|
SET_POSITION_OFFSET_FOR_RECORDED_VEHICLE_PLAYBACK(mvPoliceCars[1].mVehicle,<<0,0,0.12>>)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_ENTITY_ALIVE(mvPoliceCars[2].mVehicle)
|
|
IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(mvPoliceCars[2].mVehicle)
|
|
SET_POSITION_OFFSET_FOR_RECORDED_VEHICLE_PLAYBACK(mvPoliceCars[2].mVehicle,<<0,0,0.12>>)
|
|
FREEZE_ENTITY_POSITION(mvPoliceCars[2].mVehicle,FALSE)
|
|
ELSE
|
|
FREEZE_ENTITY_POSITION(mvPoliceCars[2].mVehicle,TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF bPoppyAndCopDrivingOff
|
|
AND GET_GAME_TIMER() > iTimerCopsLeavingArea + 4000
|
|
IF IS_ENTITY_ALIVE(mvPoliceCars[2].mVehicle)
|
|
FREEZE_ENTITY_POSITION(mvPoliceCars[2].mVehicle,FALSE)
|
|
SET_VEHICLE_SIREN(mvPoliceCars[2].mVehicle,FALSE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_PED_UNINJURED(pedChopperPilot)
|
|
AND IS_ENTITY_ALIVE(mpPoppyPed.mPed)
|
|
AND IS_ENTITY_ALIVE(vehPoliceChopper)
|
|
AND IS_PED_IN_VEHICLE(pedChopperPilot,vehPoliceChopper)
|
|
IF CONTROL_MOUNTED_WEAPON(pedChopperPilot)
|
|
SET_MOUNTED_WEAPON_TARGET(pedChopperPilot,mpPoppyPed.mPed,NULL,<<0,0,0>>)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF bPoppyCarSmashed
|
|
IF IS_ENTITY_ALIVE(mvPoppyCar.mVehicle)
|
|
SET_VEHICLE_ENGINE_HEALTH(mvPoppyCar.mVehicle,51.0) //Smoke engine (better to do it like this than with ptfx because it will continue to smoke after mission passes)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF MissionStage = MS_MISSION_FAILED
|
|
FAIL_WAIT_FOR_FADE()
|
|
ELSE
|
|
IF IS_ENTITY_ALIVE(PLAYER_PED_ID())
|
|
SWITCH missionStage
|
|
|
|
CASE MS_INITIAL_PHONE
|
|
INITIAL_PHONE_CALL()
|
|
BREAK
|
|
|
|
CASE MS_GO_TO_LOCATION
|
|
GO_TO_LOCATION()
|
|
BREAK
|
|
|
|
CASE MS_CHASE_POPPY
|
|
CHASE_POPPY()
|
|
BREAK
|
|
|
|
CASE MS_GO_TO_CRASH
|
|
GO_TO_CRASH()
|
|
BREAK
|
|
|
|
CASE MS_TAKE_PHOTO
|
|
TAKE_PHOTO()
|
|
BREAK
|
|
|
|
CASE MS_END_PHONECALL
|
|
END_PHONECALL()
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
ELSE
|
|
SET_FAIL_REASON(FAIL_DEFAULT)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
#IF IS_DEBUG_BUILD // STAGE SKIPPING
|
|
IF MissionStage <> MS_MISSION_FAILED
|
|
if bFinishedSkipping = TRUE
|
|
DEBUG_Check_Debug_Keys() // not skipping stages, check for debug keys
|
|
ELSE
|
|
JumpToStage(eTargetStage) // still skipping stages
|
|
ENDIF
|
|
ENDIF
|
|
#ENDIF
|
|
|
|
ENDWHILE
|
|
|
|
// Script should never reach here. Always terminate with cleanup function.
|
|
ENDSCRIPT
|
|
|