//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, " 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, " 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, " 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, " KILL") iRetrigger = 2 ELSE CPRINTLN(DEBUG_MISSION, " CHECKED LABEL IS NULL OR EMPTY") ENDIF ELIF iRetrigger = 2 IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED() CPRINTLN(DEBUG_MISSION, " 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, " RETRIGGER") iRetrigger = 3 ENDIF ELSE CPRINTLN(DEBUG_MISSION, " 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,<>) //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,<>),106.141273) mvPoliceCars[0].mVehicle = CREATE_VEHICLE(mvPoliceCars[0].mModel,<>,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,<>) 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,<>) 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,<>) 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,<>) 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 >>,<>) 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 >>,<>) 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,<>) OR IS_ENTITY_AT_COORD(PLAYER_PED_ID(), << 785.3011, 158.9101, 80.1365 >>,<>) 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,<>) OR IS_ENTITY_AT_COORD(PLAYER_PED_ID(), << 785.3011, 158.9101, 80.1365 >>,<>) eSubStage = SS_CLEANUP ENDIF ENDIF ELSE IF IS_ENTITY_AT_COORD(PLAYER_PED_ID(),vPoppyInitialLocation,<>) OR IS_ENTITY_AT_COORD(PLAYER_PED_ID(), << 785.3011, 158.9101, 80.1365 >>,<>) 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,<>) 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