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

7887 lines
315 KiB
Python
Executable File

//Compile out Title Update changes to header functions.
//Must be before includes.
//CONST_INT USE_TU_CHANGES 0 // Removed by Kenneth R.
USING "rage_builtins.sch"
USING "globals.sch"
USING "cutscene_public.sch"
USING "commands_cutscene.sch"
USING "commands_entity.sch"
USING "commands_script.sch"
USING "script_player.sch"
USING "randomChar_public.sch"
USING "CompletionPercentage_public.sch"
USING "chase_hint_cam.sch" CHASE_HINT_CAM_STRUCT localChaseHintCamStruct
USING "commands_physics.sch"
USING "script_ped.sch"
USING "locates_public.sch"
USING "dialogue_public.sch"
USING "RC_Launcher_public.sch"
USING "initial_scenes_Minute.sch"
USING "buddy_head_track_public.sch"
USING "commands_event.sch"
USING "commands_recording.sch"
#IF IS_DEBUG_BUILD
USING "select_mission_stage.sch"
#ENDIF
USING "RC_Helper_Functions.sch"
USING "RC_Threat_public.sch"
// *****************************************************************************************
// *****************************************************************************************
// *****************************************************************************************
//
// MISSION NAME : Minute2.sc
// AUTHOR : Tom Kingsley
// DESCRIPTION : Catch "illegal" immigrants with Josef and Joe
//
// *****************************************************************************************
// *****************************************************************************************
// *****************************************************************************************
CONST_INT ic_JOE 0
CONST_INT ic_JOSEF 1
// The Random Character - sRCLauncherDataLocal.pedID[ic_JOSEF]
g_structRCScriptArgs sRCLauncherDataLocal
//---------------------------------------------------------------
VEHICLE_INDEX vehChaseCar[4]
VEHICLE_INDEX vehChaseCarChase2
VEHICLE_INDEX vehSpeedo
VEHICLE_INDEX vehDuster
VEHICLE_INDEX vehRandom
PED_INDEX pedImmigrant[4]
PED_INDEX pedImmigrantChase2
PED_INDEX pedWorker[10]
PED_INDEX pedDusterPilot
BLIP_INDEX blipImmigrant[4]
BLIP_INDEX blipLocate[4]
BLIP_INDEX blipPlayerCar
BLIP_INDEX blipJosef
BLIP_INDEX blipJoe
BLIP_INDEX blipImmigrantChase2
SEQUENCE_INDEX seqChase1
SEQUENCE_INDEX seqChase2Route
SEQUENCE_INDEX seqChase2RouteB
SEQUENCE_INDEX seqChase2RouteC
SEQUENCE_INDEX seqChase2RouteD
SEQUENCE_INDEX seqChase2RouteSECONDPED
SEQUENCE_INDEX seqChase2RouteBSECONDPED
SEQUENCE_INDEX seqChase2RouteCSECONDPED
SEQUENCE_INDEX seqChase2RouteDSECONDPED
SEQUENCE_INDEX seqPointAtImmigrants
SEQUENCE_INDEX seqJosefThrowPapers
VEHICLE_INDEX vehTrafficRoute1[15]
PED_INDEX pedTrafficRoute1[15]
VECTOR vTrafficRoute1[15]
FLOAT fHeadingTrafficRoute1[15]
VEHICLE_INDEX vehTrafficRoute2[15]
PED_INDEX pedTrafficRoute2[15]
VECTOR vTrafficRoute2[15]
FLOAT fHeadingTrafficRoute2[15]
INT iTraffic
INT ssClimbToBack_1
INT ssClimbToBack_1B
INT ssClimbToBack_2
INT ssPassport
INT ssManuelSitBack
INT ssManuelSitBack2
INT ssPed2SitBack
INT iPed1getIn
//OBJECT_INDEX ObjPhone
OBJECT_INDEX ObjPapers
//SCENARIO_BLOCKING_INDEX blockScenarios
SCENARIO_BLOCKING_INDEX sbiCement
#IF IS_DEBUG_BUILD
CONST_INT MAX_SKIP_MENU_LENGTH 4
INT iReturnStage
MissionStageMenuTextStruct SkipMenuStruct[MAX_SKIP_MENU_LENGTH]
#ENDIF
structPedsForConversation s_conversation_peds
//---------------------------------------------------------------
CONST_INT DEFAULT_TIME_BEFORE_WARP_MINUTE_2 60000
FLOAT fEscortDistance = 12 //10
INT i = 0
//INT iGameTimer
//INT iGameTimerUpdate
INT iMultiHeadTimer
INT iChaseStartedTimer
INT iChaseStartedTimerUpdate
INT iConvoTimer
INT iConvoTimerUpdate
INT iConvo
INT iJosefCutSeq
INT iRangerHP
INT iGameTimerPed1KnockedOffUpdate
INT iGameTimerPed1KnockedOff
INT iGameTimerPed2KnockedOffUpdate
INT iGameTimerPed2KnockedOff
//INT iGameTimerSecondPedGettingAway
//INT iGameTimerSecondPedGettingAwayUpdate
INT iTimesTazed
INT iTimesTazedSECONDPED
//INT iNextCoordPed1
INT iArrivedAtCementFactory
INT iSeqCementFactory
INT iTimerJoeLeftCar
INT iTimerDontLetTheOtherEscape
INT iConvoGetBackInCar
INT iTimerPlayerNotInCar
INT iConvoTrevorDamagingCar
INT iRollingStartTimer
INT iTimerCarHorn
INT iSeqJosefThrowPapers
INT iTimerPassDriveOff
INT iGetOutOfCarLines
INT iSeqHintCam = 0
INT iTimerHintCamSwitch
INT iPedsStunnedOffBike = 0
INT iTimerChase1Started
INT iTimerGetOutOfCarLines
INT iTimerCatchUpLines
INT iCatchUpLines = 0
INT iPed2Kneeling
INT iPedKneeling
INT iPedInWater
INT iPed2InWater
INT iCrueltyLines
INT iTimerCrueltyLines
INT iSyncPed = 0
INT iTimerJackTrev
INT iGoBackLines
INT iTimerGoBackLines
INT iSeqChase2Dialogue
INT iDialogueStopping
INT iTimerDialogueStopping
INT iDialogueCrashed
INT iTimerDialogueCrashed
INT iShoutLines
INT iTimerShoutLines
INT iTimerPed1Ragdoll
INT iTimerPed2Ragdoll
INT iShoutSurr1
INT iShoutSurr3
INT iShoutSurr5
VECTOR vpedImmigrant[3]
VECTOR vSafeCoord
VECTOR vPlayer
VECTOR vChase[55]
//VECTOR vNodeSwitch1
//VECTOR vNodeSwitch2
FLOAT fDistBetweenJosefAndImmigrant
FLOAT fDistBetweenJoeAndImmigrant
FLOAT fDistBetweenCarAndMigrant
FLOAT fDistBetweenPlayerAndImmigrant
//FLOAT fDistBetweenBikers
//FLOAT fDistBiker1ToNextCoord
//FLOAT fDistBiker2ToNextCoord
FLOAT fRangerPetrolTankHP
FLOAT fRangerEngineHP
FLOAT fPlaybackSpeed
FLOAT fTrafficStopped
BOOL bOkForJosefToLeaveCar
BOOL bOkForJoeToLeaveCar
BOOL bBloke1AttachedToCar
BOOL bBloke2AttachedToCar
BOOL bOkToStartChase
BOOL bBlokestunned
BOOL bImmigrantHandsUp
BOOL bJosefCombatTaskGiven
BOOL bJoeCombatTaskGiven
BOOL bGettingAwayMessagePrinted
BOOL bGetCloseMessagePrinted
BOOL bImmigrantGettingIntoCar
BOOL bDrivingToMotel
BOOL bEveryoneInCar
BOOL bSecondGettingAwayMessagePrinted
BOOL bpedImmigrantChase2Attached
BOOL bChaseStarted
BOOL bSECONDBlokestunned
BOOL bImmigrantChase2HandsUp
BOOL bImmigrantChase2GettingIntoCar
BOOL bSeqSetup
BOOL bFirstImmigrantOnBike
BOOL bImmigrantChase2OnBike
BOOL bDebugSkippedToCementFactory
BOOL bPlayerAtChaseOnFootMessagePrinted
BOOL bImmigrantChase2Fleeing
BOOL bFirstImmigrantFleeing
BOOL bMissionFailed
BOOL bDebugSkipping
BOOL bDialogueDontletTheOtherEscape
BOOL bConvoSpottedImmigrant1
BOOL bCarHorn
BOOL bConvoImmigrantManuelGiveUp
BOOL bConvoImmigrant1GiveUp
BOOL bConvoImmigrant2GiveUp
BOOL bCementFactoryCheckpoint
BOOL bPlayerNotInCarBetweenCapturingImmigrants = FALSE
BOOL bPrint31 = FALSE
BOOL bBikeEscorting = FALSE
BOOL bBikeLeftFactory = FALSE
BOOL bWander = FALSE
BOOL bCloseFinalTimeWindowForStats = FALSE
BOOL bReplayCementFactory = FALSE
BOOL bSecondMusicCue = FALSE
BOOL bCreateNmMessage = FALSE
BOOL bRagdollTaskGiven = FALSE
BOOL bCreateNmMessagePed2 = FALSE
BOOL bRagdollTaskGivenPed2 = FALSE
BOOL bLosingCops = FALSE
BOOL bPrintLosingCops = FALSE
BOOL bPassport = FALSE
BOOL bManuelAttached = FALSE
BOOL bPassportSound = FALSE
BOOL bButterFingers = FALSE
BOOL bWeaponSwap = FALSE
BOOL bWarpJosef = FALSE
BOOL bThanks = FALSE
BOOL CCSExitTrev
BOOL CCSExitJosef
BOOL CCSExitJoe
BOOL CCsExitTruck
BOOL CCsExitCam
BOOL bPatrolVehDialogue
BOOL bDialogueGoBack
BOOL bDialoguePickUpLastGuy
BOOL bDialogueOkLetsGo
BOOL bDialogueDriveOff
BOOL bDoDelayedClimbInBack
BOOL bDoneDelayedClimbInBack
BOOL bDisableAbortConvo = FALSE
BOOL bDisableAbortConvoPed2 = FALSE
BOOL bSwitchWaypointFlags = FALSE
BOOL bMultiheadTriggered = FALSE
BOOL bDialogueLeftJorJ
INT iDialogueGoBackJorJ
INT iTimerGoBackJorJ
VECTOR vStorePlayerPosForWrongWayDialogue
INT iDialogueWrongWay
BOOL bBlipJoe
BOOL bBlipJosef
BOOL bBlipCar
BOOL bPrint18 //bools for text
BOOL bPrint03
BOOL bPrint06
BOOL bPrint08
BOOL bPrint33
BOOL bPrint29
BOOL bPrint32
BOOL bPrint19
BOOL bPrint42
BOOL bPrint01
BOOL bPrint30
BOOL bPrint39
BOOL bPrint37
BOOL bPrint47
BOOL bPrint49
BOOL bPrint48GoBack = FALSE
BOOL bPed1GettingUp = FALSE
INT iTimerPed1GettingUp
BOOL bPed2GettingUp = FALSE
INT iTimerPed2GettingUp
STRING sFailReason
BOOL bJosefGetIn
//----------------------------------------------------
ENUM JOSEFSTATE
JS_AIM,
JS_AIM_WALK,
JS_RUN
ENDENUM
ENUM FAIL_STATE
FS_SETUP,
FS_UPDATE,
FS_CLEANUP
ENDENUM
ENUM CUTSCENE_STAGE
eCutSpawnJJ,
eCutInit,
eCutUpdate,
eCutCleanup
ENDENUM
FAIL_STATE eFAIL_STATE
CUTSCENE_STAGE eCutsceneState = eCutSpawnJJ
//---------------------------------------------------------
// Mission stages
ENUM MISSION_STAGE
MS_INTRO_MOCAP,
MS_SETUP_MISSION,
MS_SETUP_CHASE1,
MS_UPDATE_CHASE1,
MS_JOSEF_TAZERED_IMMIGRANT1,
MS_IMMIGRANT1_APPREHENDED,
MS_SETUP_CHASE2,
MS_CEMENT_FACTORY,
MS_UPDATE_CHASE2,
MS_JOSEF_TAZERED_IMMIGRANT2,
MS_JOSEF_PICKED_UP_IMMIGRANT2,
MS_SETUP_CHASE3,
MS_UPDATE_CHASE3,
MS_JOSEF_TAZERED_IMMIGRANT3,
MS_JOSEF_PICKED_UP_IMMIGRANT3,
MS_DRIVE_TO_END,
MS_MISSION_FAILING,
MS_MISSION_PASSING
ENDENUM
MISSION_STAGE missionStage = MS_INTRO_MOCAP
/// PURPOSE: Remove all blips
PROC RemoveBlips()
SAFE_REMOVE_BLIP(blipImmigrant[0])
SAFE_REMOVE_BLIP(blipImmigrant[1])
SAFE_REMOVE_BLIP(blipImmigrant[2])
SAFE_REMOVE_BLIP(blipImmigrant[3])
SAFE_REMOVE_BLIP(blipLocate[0])
SAFE_REMOVE_BLIP(blipLocate[1])
SAFE_REMOVE_BLIP(blipLocate[2])
SAFE_REMOVE_BLIP(blipLocate[3])
SAFE_REMOVE_BLIP(blipPlayerCar)
SAFE_REMOVE_BLIP(blipJosef)
SAFE_REMOVE_BLIP(blipJoe)
SAFE_REMOVE_BLIP(blipImmigrantChase2)
ENDPROC
PROC START_AUDIO_SCENE_CHASE()
IF NOT IS_AUDIO_SCENE_ACTIVE("MINUTE_02_SCENE")
IF IS_ENTITY_ALIVE(vehChaseCar[0])
ADD_ENTITY_TO_AUDIO_MIX_GROUP(vehChaseCar[0], "MINUTE_02_SCENE_QUAD_BIKE")
ENDIF
START_AUDIO_SCENE("MINUTE_02_SCENE")
ENDIF
ENDPROC
PROC CLEANUP_AUDIO_SCENE_CHASE()
IF IS_AUDIO_SCENE_ACTIVE("MINUTE_02_SCENE")
STOP_AUDIO_SCENE("MINUTE_02_SCENE")
ENDIF
ENDPROC
FUNC BOOL IS_IT_OK_FOR_JOSEF_TO_GET_IN()
IF IS_SYNCHRONIZED_SCENE_RUNNING(ssClimbToBack_1)
AND GET_SYNCHRONIZED_SCENE_PHASE(ssClimbToBack_1) > 0.35
bJosefGetIn = TRUE
ENDIF
IF missionStage >= MS_CEMENT_FACTORY
OR IS_SYNCHRONIZED_SCENE_RUNNING(ssManuelSitBack)
OR IS_SYNCHRONIZED_SCENE_RUNNING(ssManuelSitBack2)
bJosefGetIn = TRUE
ENDIF
RETURN bJosefGetIn
ENDFUNC
/// PURPOSE: Request assets and initialise
PROC Initialise()
SET_ROADS_IN_AREA(<<-199.2860, 4214.0547, 43.7470>> - <<10,10,10>>,<<-199.2860, 4214.0547, 43.7470>> + <<10,10,10>>,TRUE) //For B*1435595
//INFORM_MISSION_STATS_OF_MISSION_START_MINUTE_2()
SET_VEHICLE_MODEL_IS_SUPPRESSED(SANCHEZ,TRUE)
SET_VEHICLE_MODEL_IS_SUPPRESSED(BLAZER,TRUE)
SET_VEHICLE_MODEL_IS_SUPPRESSED(PRANGER,TRUE)
REQUEST_MODEL(PRANGER)
REQUEST_MODEL(Prop_Passport_01)
IF IS_VEHICLE_OK(sRCLauncherDataLocal.vehID[0])
iRangerHP = GET_ENTITY_HEALTH(sRCLauncherDataLocal.vehID[0])
fRangerPetrolTankHP = GET_VEHICLE_PETROL_TANK_HEALTH(sRCLauncherDataLocal.vehID[0])
fRangerEngineHP = GET_VEHICLE_ENGINE_HEALTH(sRCLauncherDataLocal.vehID[0])
SET_ENTITY_HEALTH(sRCLauncherDataLocal.vehID[0],(iRangerHP * 3))
SET_VEHICLE_PETROL_TANK_HEALTH(sRCLauncherDataLocal.vehID[0],(fRangerPetrolTankHP * 3))
SET_VEHICLE_ENGINE_HEALTH(sRCLauncherDataLocal.vehID[0],(fRangerEngineHP * 3))
SET_VEHICLE_CAN_LEAK_OIL(sRCLauncherDataLocal.vehID[0], FALSE)
SET_VEHICLE_CAN_LEAK_PETROL(sRCLauncherDataLocal.vehID[0], FALSE)
//SET_VEHICLE_MOD_KIT(sRCLauncherDataLocal.vehID[0],0)
//SET_VEHICLE_WINDOW_TINT(sRCLauncherDataLocal.vehID[0],1)
ENDIF
REQUEST_ANIM_DICT("rcmminute2")
REQUEST_ANIM_DICT("rcmminute2lean")
REQUEST_ANIM_DICT("missminuteman_2ig_1")
REQUEST_ANIM_DICT("missminuteman_2ig_3")
REQUEST_ADDITIONAL_TEXT("MIN2",MISSION_TEXT_SLOT)
REQUEST_ADDITIONAL_TEXT("MIN2AU",MISSION_DIALOGUE_TEXT_SLOT)
REQUEST_NPC_PED_MODEL(CHAR_MANUEL)
REQUEST_NPC_PED_MODEL(CHAR_JOSEF)
REQUEST_NPC_PED_MODEL(CHAR_JOE)
REQUEST_MODEL(BLAZER)
REQUEST_VEHICLE_ASSET(PRANGER)
REQUEST_CLIP_SET("MOVE_M@BAIL_BOND_NOT_TAZERED")
REQUEST_CLIP_SET("MOVE_M@BAIL_BOND_TAZERED")
SET_WANTED_LEVEL_MULTIPLIER(0.1)
//blockScenarios = ADD_SCENARIO_BLOCKING_AREA(<< -280.1734, 4187.3604,203.9223 >>,<< -172.1141, 4235.1616, 70.4678 >>)
sbiCement = ADD_SCENARIO_BLOCKING_AREA(<<341.1107, 2846.7971, 40.6462>>,<<350.9610, 2871.4719, 43.8518>>)
SET_SCENARIO_TYPE_ENABLED("WORLD_VEHICLE_DRIVE_SOLO",FALSE)
SET_SCENARIO_TYPE_ENABLED("WORLD_VEHICLE_CONSTRUCTION_SOLO", FALSE)
SET_SCENARIO_TYPE_ENABLED("WORLD_VEHICLE_CONSTRUCTION_PASSENGERS", FALSE)
vChase[0] = << 327.3949, 2850.5437, 42.4360 >>
vChase[1] = << 327.0572, 2841.2034, 42.7507 >>
vChase[2] = << 337.6567, 2821.3130, 41.1778 >>
vChase[3] = << 350.4040, 2797.2534, 47.3014 >>
vChase[4] = << 373.3039, 2757.9229, 42.0141 >>
vChase[5] = << 393.3462, 2725.5056, 41.9263 >>
//vChase[6] = << 413.7730, 2704.2275, 42.2798 >>
vChase[6] = << 416.6357, 2697.7898, 42.4937 >>
vChase[7] = << 444.9309, 2689.1550, 42.5934 >>
vChase[8] = << 474.5866, 2679.4988, 42.2943 >>
vChase[9] = << 636.1514, 2696.9749, 39.9808 >>
vChase[10] = << 831.2220, 2695.5740, 39.5328 >>
vChase[11] = << 880.9315, 2708.0527, 39.8050 >>
vChase[12] = << 915.5502, 2715.8682, 39.6578 >>
vChase[13] = << 949.9031, 2732.2583, 39.3729 >>
vChase[14] = << 979.2463, 2748.7639, 37.0951 >>
vChase[15] = << 1007.8654, 2761.7441, 35.0162 >>
vChase[16] = << 1039.2654, 2779.2336, 33.8708 >>
vChase[17] = << 1070.0198, 2810.3762, 35.6906 >>
vChase[18] = << 1097.6158, 2838.8896, 37.2296 >>
vChase[19] = << 1121.2598, 2844.5132, 37.2992 >>
vChase[20] = << 1149.2218, 2836.6943, 37.1993 >>
vChase[21] = << 1203.2163, 2801.9336, 36.8600 >>
vChase[22] = << 1253.4020, 2767.1658, 37.4919 >>
vChase[23] = << 1283.3680, 2741.5134, 36.6510 >>
vChase[24] = << 1297.2052, 2715.3333, 36.7748 >>
vChase[25] = << 1303.8243, 2693.4988, 36.6285 >>
vChase[26] = << 1312.9229, 2659.9019, 36.6804 >>
vChase[27] = << 1323.7251, 2622.2717, 36.6871 >>
vChase[28] = << 1337.2678, 2595.0356, 36.6180 >>
vChase[29] = << 1359.4213, 2571.5676, 36.9024 >>
vChase[30] = << 1478.0682, 2269.0791, 71.6347 >>
vChase[31] = << 1506.9707, 1874.8892, 106.8773 >>
vChase[32] = << 1501.8845, 1618.5989, 111.4967 >>
vChase[33] = << 1474.6619, 1583.4229, 109.2177 >>
vChase[34] = << 1447.2242, 1574.7394, 107.6650 >>
vChase[35] = << 1421.3652, 1570.7217, 107.0452 >>
vChase[36] = << 1393.5858, 1566.8616, 106.1980 >>
vChase[37] = << 1363.6519, 1552.6820, 104.8892 >>
vChase[38] = << 1344.7573, 1535.9220, 102.4010 >>
vChase[39] = << 1323.5651, 1507.2051, 98.0900 >>
vChase[40] = << 1305.1832, 1461.4269, 98.0123 >>
vChase[41] = << 1294.0465, 1395.4415, 100.7730 >>
vChase[42] = << 1287.9890, 1316.5039, 105.9520 >>
vChase[43] = << 1238.2271, 705.9078, 100.6087 >>
vChase[44] = << 1652.5648, 3487.9536, 35.5959 >>
vChase[45] = << 2518.1792, 4145.9326, 37.7126 >>
vChase[46] = << 2731.3145, 4390.3496, 47.4449 >>
/*
REQUEST_MODEL(EMPEROR2)
REQUEST_MODEL(SURFER2)
REQUEST_MODEL(BISON)
REQUEST_MODEL(TORNADO3)
REQUEST_MODEL(STANIER)
REQUEST_MODEL(MESA)
*/
REQUEST_WAYPOINT_RECORDING("Min2_Traffic01")
REQUEST_WAYPOINT_RECORDING("Min2_Traffic02")
ENDPROC
/// PURPOSE: Wait for assets
PROC WaitForAssets()
WHILE NOT HAS_MODEL_LOADED(PRANGER)
OR NOT HAS_MODEL_LOADED(BLAZER)
OR NOT HAS_MODEL_LOADED(Prop_Passport_01)
OR NOT HAS_NPC_PED_MODEL_LOADED(CHAR_MANUEL)
OR NOT HAS_CLIP_SET_LOADED("MOVE_M@BAIL_BOND_NOT_TAZERED")
OR NOT HAS_CLIP_SET_LOADED("MOVE_M@BAIL_BOND_TAZERED")
OR NOT HAS_ANIM_DICT_LOADED("rcmminute2")
OR NOT HAS_ANIM_DICT_LOADED("rcmminute2lean")
OR NOT HAS_ANIM_DICT_LOADED("missminuteman_2ig_1")
OR NOT HAS_ADDITIONAL_TEXT_LOADED(MISSION_TEXT_SLOT)
OR NOT HAS_ADDITIONAL_TEXT_LOADED(MISSION_DIALOGUE_TEXT_SLOT)
WAIT(0)
ENDWHILE
ENDPROC
/// PURPOSE: Request assets for second chase
PROC RequestModelsSecondChase()
REQUEST_WAYPOINT_RECORDING("Min2_Bike02")
//REQUEST_VEHICLE_RECORDING(343,"Min2_Dust")
REQUEST_VEHICLE_RECORDING(269,"Min2Rolling")
REQUEST_VEHICLE_RECORDING(101,"Min2DB1")
REQUEST_VEHICLE_RECORDING(102,"Min2DB2")
REQUEST_MODEL(SPEEDO)
REQUEST_MODEL(S_M_M_GAFFER_01)
//REQUEST_MODEL(P_AMB_PHONE_01)
//REQUEST_MODEL(S_M_Y_CONSTRUCT_01)
REQUEST_MODEL(SANCHEZ)
REQUEST_MODEL(S_M_M_Migrant_01)
//REQUEST_MODEL(DUSTER)
ENDPROC
/// PURPOSE: Wait for assets to load
PROC LoadModelsSecondChase()
WHILE NOT HAS_MODEL_LOADED(SPEEDO)
OR NOT HAS_MODEL_LOADED(S_M_M_GAFFER_01)
//OR NOT HAS_MODEL_LOADED(P_AMB_PHONE_01)
//OR NOT HAS_MODEL_LOADED(S_M_Y_CONSTRUCT_01)
OR NOT HAS_MODEL_LOADED(SANCHEZ)
OR NOT HAS_MODEL_LOADED(S_M_M_Migrant_01)
//OR NOT HAS_MODEL_LOADED(DUSTER)
//OR NOT HAS_VEHICLE_RECORDING_BEEN_LOADED(343,"Min2_Dust")
OR NOT HAS_VEHICLE_RECORDING_BEEN_LOADED(269,"Min2Rolling")
OR NOT HAS_VEHICLE_RECORDING_BEEN_LOADED(101,"Min2DB1")
OR NOT HAS_VEHICLE_RECORDING_BEEN_LOADED(102,"Min2DB2")
OR NOT GET_IS_WAYPOINT_RECORDING_LOADED("Min2_Bike02")
WAIT(0)
ENDWHILE
ENDPROC
/// PURPOSE: Wait for assets to load
FUNC BOOL HaveDoneLoadModelsSecondChase()
IF NOT HAS_MODEL_LOADED(SPEEDO)
OR NOT HAS_MODEL_LOADED(S_M_M_GAFFER_01)
//OR NOT HAS_MODEL_LOADED(P_AMB_PHONE_01)
//OR NOT HAS_MODEL_LOADED(S_M_Y_CONSTRUCT_01)
OR NOT HAS_MODEL_LOADED(SANCHEZ)
OR NOT HAS_MODEL_LOADED(S_M_M_Migrant_01)
//OR NOT HAS_MODEL_LOADED(DUSTER)
//OR NOT HAS_VEHICLE_RECORDING_BEEN_LOADED(343,"Min2_Dust")
OR NOT HAS_VEHICLE_RECORDING_BEEN_LOADED(269,"Min2Rolling")
OR NOT HAS_VEHICLE_RECORDING_BEEN_LOADED(101,"Min2DB1")
OR NOT HAS_VEHICLE_RECORDING_BEEN_LOADED(102,"Min2DB2")
OR NOT GET_IS_WAYPOINT_RECORDING_LOADED("Min2_Bike02")
RETURN FALSE
ENDIF
RETURN TRUE
ENDFUNC
PROC DO_VEHICLE_WEAPON_SWAP()
IF HAS_PED_GOT_WEAPON(PLAYER_PED_ID(),WEAPONTYPE_STUNGUN)
IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
IF NOT bWeaponSwap
WEAPON_TYPE wep
GET_CURRENT_PED_WEAPON(PLAYER_PED_ID(),wep)
IF wep <> WEAPONTYPE_STUNGUN
SET_CURRENT_PED_WEAPON(PLAYER_PED_ID(),WEAPONTYPE_STUNGUN,TRUE)
ENDIF
bWeaponSwap = TRUE
ENDIF
ELSE
bWeaponSwap = FALSE
ENDIF
ENDIF
ENDPROC
/// PURPOSE: Transition to idles after sync scenes
PROC RESOLVE_IDLES()
TEXT_LABEL_23 label = GET_CURRENTLY_PLAYING_STANDARD_CONVERSATION_LABEL()
IF ARE_STRINGS_EQUAL(label,"MIN2_IMM1_3")
AND IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
ROLL_DOWN_WINDOWS(sRCLauncherDataLocal.vehID[0])
IF NOT DOES_ENTITY_EXIST(ObjPapers)
ObjPapers = CREATE_OBJECT_NO_OFFSET(Prop_Passport_01, GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(sRCLauncherDataLocal.vehID[0],<<0,0,20>>))
ENDIF
bManuelAttached = bManuelAttached
IF NOT IS_SYNCHRONIZED_SCENE_RUNNING(ssPassport)
ssPassport = CREATE_SYNCHRONIZED_SCENE(<<0,0,0>>,<<0,0,0>>)
//ssPassport = CREATE_SYNCHRONIZED_SCENE(<<0,-0.05,-0.05>>,<<0,0,0>>)
SET_SYNCHRONIZED_SCENE_HOLD_LAST_FRAME(ssPassport,TRUE)
PROCESS_ENTITY_ATTACHMENTS(ObjPapers)
PROCESS_ENTITY_ATTACHMENTS(sRCLauncherDataLocal.pedID[ic_JOSEF])
PROCESS_ENTITY_ATTACHMENTS(pedImmigrant[0])
ATTACH_SYNCHRONIZED_SCENE_TO_ENTITY(ssPassport,sRCLauncherDataLocal.vehID[0],GET_ENTITY_BONE_INDEX_BY_NAME(sRCLauncherDataLocal.vehID[0], "seat_pside_l"))
PLAY_SYNCHRONIZED_ENTITY_ANIM(ObjPapers,ssPassport,"passport_prop","missminuteman_2ig_3",INSTANT_BLEND_IN,SLOW_BLEND_OUT)
TASK_SYNCHRONIZED_SCENE(sRCLauncherDataLocal.pedID[ic_JOSEF],ssPassport,"missminuteman_2ig_3","passport_josef",2,-2,SYNCED_SCENE_DONT_INTERRUPT,RBF_BULLET_IMPACT | RBF_PLAYER_IMPACT | RBF_IMPACT_OBJECT | RBF_VEHICLE_IMPACT)
TASK_SYNCHRONIZED_SCENE(pedImmigrant[0],ssPassport,"missminuteman_2ig_3","passport_manuel",1,SLOW_BLEND_OUT,SYNCED_SCENE_DONT_INTERRUPT,RBF_BULLET_IMPACT | RBF_PLAYER_IMPACT | RBF_IMPACT_OBJECT | RBF_VEHICLE_IMPACT)
FORCE_PED_AI_AND_ANIMATION_UPDATE(sRCLauncherDataLocal.pedID[ic_JOSEF])
//IF NOT IS_ENTITY_PLAYING_ANIM(pedImmigrant[0],"missminuteman_2ig_3","passport_manuel")
// TASK_PLAY_ANIM(pedImmigrant[0],"missminuteman_2ig_3","passport_manuel",2,NORMAL_BLEND_OUT,-1,AF_NOT_INTERRUPTABLE)
//ENDIF
ENDIF
bPassport = TRUE
ENDIF
IF IS_SYNCHRONIZED_SCENE_RUNNING(ssClimbToBack_1B)
AND GET_SYNCHRONIZED_SCENE_PHASE(ssClimbToBack_1B) = 1
PROCESS_ENTITY_ATTACHMENTS(pedImmigrant[0])
/*
ATTACH_ENTITY_TO_ENTITY(pedImmigrant[0],sRCLauncherDataLocal.vehID[0],-1,GET_OFFSET_FROM_ENTITY_GIVEN_WORLD_COORDS(sRCLauncherDataLocal.vehID[0],GET_ENTITY_COORDS(pedImmigrant[0])),<<0,0,270>>)
IF NOT IS_ENTITY_PLAYING_ANIM(pedImmigrant[0],"missminuteman_2ig_1","trunk_manuel")
TASK_PLAY_ANIM(pedImmigrant[0],"missminuteman_2ig_1","trunk_manuel",2,NORMAL_BLEND_OUT,-1,AF_LOOPING | AF_NOT_INTERRUPTABLE)
SET_RAGDOLL_BLOCKING_FLAGS(pedImmigrant[0],RBF_BULLET_IMPACT | RBF_PLAYER_IMPACT | RBF_IMPACT_OBJECT | RBF_VEHICLE_IMPACT)
ENDIF
*/
ssManuelSitBack2 = CREATE_SYNCHRONIZED_SCENE(GET_OFFSET_FROM_ENTITY_GIVEN_WORLD_COORDS(sRCLauncherDataLocal.vehID[0],GET_ENTITY_COORDS(pedImmigrant[0])),<<0,0,270>>)
SET_SYNCHRONIZED_SCENE_HOLD_LAST_FRAME(ssManuelSitBack2,FALSE)
SET_SYNCHRONIZED_SCENE_LOOPED(ssManuelSitBack2,TRUE)
PROCESS_ENTITY_ATTACHMENTS(pedImmigrant[0])
ATTACH_SYNCHRONIZED_SCENE_TO_ENTITY(ssManuelSitBack2,sRCLauncherDataLocal.vehID[0],-1)
SET_PED_KEEP_TASK(pedImmigrant[0],TRUE)
TASK_SYNCHRONIZED_SCENE(pedImmigrant[0],ssManuelSitBack2,"missminuteman_2ig_1","trunk_manuel",SLOW_BLEND_IN,SLOW_BLEND_OUT,SYNCED_SCENE_DONT_INTERRUPT,RBF_BULLET_IMPACT | RBF_PLAYER_IMPACT | RBF_IMPACT_OBJECT | RBF_VEHICLE_IMPACT)
//FORCE_PED_AI_AND_ANIMATION_UPDATE(pedImmigrant[0])
ENDIF
IF IS_SYNCHRONIZED_SCENE_RUNNING(ssClimbToBack_1)
IF GET_SYNCHRONIZED_SCENE_PHASE(ssClimbToBack_1) = 1 //> 0.99
PROCESS_ENTITY_ATTACHMENTS(pedImmigrant[0])
/*
ATTACH_ENTITY_TO_ENTITY(pedImmigrant[0],sRCLauncherDataLocal.vehID[0],-1,GET_OFFSET_FROM_ENTITY_GIVEN_WORLD_COORDS(sRCLauncherDataLocal.vehID[0],GET_ENTITY_COORDS(pedImmigrant[0])),<<0,0,270>>)
IF NOT IS_ENTITY_PLAYING_ANIM(pedImmigrant[0],"missminuteman_2ig_1","trunk_manuel")
TASK_PLAY_ANIM(pedImmigrant[0],"missminuteman_2ig_1","trunk_manuel",2,NORMAL_BLEND_OUT,-1,AF_LOOPING | AF_NOT_INTERRUPTABLE)
SET_RAGDOLL_BLOCKING_FLAGS(pedImmigrant[0],RBF_BULLET_IMPACT | RBF_PLAYER_IMPACT | RBF_IMPACT_OBJECT | RBF_VEHICLE_IMPACT)
ENDIF
//GET_OFFSET_FROM_ENTITY_GIVEN_WORLD_COORDS(sRCLauncherDataLocal.vehID[0],GET_WORLD_POSITION_OF_ENTITY_BONE(sRCLauncherDataLocal.vehID[0],GET_ENTITY_BONE_INDEX_BY_NAME(sRCLauncherDataLocal.vehID[0], "seat_pside_r")))
*/
/*
VECTOR vManuelBackseat = GET_OFFSET_FROM_ENTITY_GIVEN_WORLD_COORDS(sRCLauncherDataLocal.vehID[0],GET_ENTITY_COORDS(pedImmigrant[0]))
PRINTVECTOR(vManuelBackseat)
PRINTNL()
*/
ssManuelSitBack = CREATE_SYNCHRONIZED_SCENE(GET_OFFSET_FROM_ENTITY_GIVEN_WORLD_COORDS(sRCLauncherDataLocal.vehID[0],GET_ENTITY_COORDS(pedImmigrant[0])),<<0,0,270>>)
SET_SYNCHRONIZED_SCENE_HOLD_LAST_FRAME(ssManuelSitBack,FALSE)
SET_SYNCHRONIZED_SCENE_LOOPED(ssManuelSitBack,TRUE)
SET_SYNCHRONIZED_SCENE_RATE(ssManuelSitBack,1.6)
ATTACH_SYNCHRONIZED_SCENE_TO_ENTITY(ssManuelSitBack,sRCLauncherDataLocal.vehID[0],-1)
TASK_SYNCHRONIZED_SCENE(pedImmigrant[0],ssManuelSitBack,"missminuteman_2ig_1","trunk_manuel",INSTANT_BLEND_IN,SLOW_BLEND_OUT,SYNCED_SCENE_DONT_INTERRUPT,RBF_BULLET_IMPACT | RBF_PLAYER_IMPACT | RBF_IMPACT_OBJECT | RBF_VEHICLE_IMPACT)
ENDIF
ELSE
IF bPassport = TRUE
IF IS_SYNCHRONIZED_SCENE_RUNNING(ssPassport)
IF DOES_ENTITY_EXIST(ObjPapers)
IF bPassportSound = FALSE
IF GET_SYNCHRONIZED_SCENE_PHASE(ssPassport) >= 0.544
PLAY_SOUND_FROM_ENTITY(-1,"PASSPORT",ObjPapers,"MINUTE_02_SOUNDSET")
bPassportSound = TRUE
ENDIF
ENDIF
ENDIF
IF GET_SYNCHRONIZED_SCENE_PHASE(ssPassport) >= 0.562
IF DOES_ENTITY_EXIST(ObjPapers)
STOP_SYNCHRONIZED_ENTITY_ANIM(ObjPapers,NORMAL_BLEND_DURATION,TRUE)
ACTIVATE_PHYSICS(ObjPapers)
//SET_OBJECT_AS_NO_LONGER_NEEDED(ObjPapers)
ENDIF
ENDIF
ENDIF
IF NOT bWarpJosef
IF NOT IS_SYNCHRONIZED_SCENE_RUNNING(ssPassport)
OR GET_SYNCHRONIZED_SCENE_PHASE(ssPassport) = 1
PROCESS_ENTITY_ATTACHMENTS(pedImmigrant[0])
ssClimbToBack_1B = CREATE_SYNCHRONIZED_SCENE(<<0,0,0>>,<<0,0,0>>)
SET_SYNCHRONIZED_SCENE_HOLD_LAST_FRAME(ssClimbToBack_1B,TRUE)
ATTACH_SYNCHRONIZED_SCENE_TO_ENTITY(ssClimbToBack_1B,sRCLauncherDataLocal.vehID[0],GET_ENTITY_BONE_INDEX_BY_NAME(sRCLauncherDataLocal.vehID[0], "seat_pside_r"))
TASK_SYNCHRONIZED_SCENE(pedImmigrant[0], ssClimbToBack_1B, "missminuteman_2ig_1", "entertrunk_manuel", SLOW_BLEND_IN, SLOW_BLEND_OUT,SYNCED_SCENE_DONT_INTERRUPT,RBF_BULLET_IMPACT | RBF_PLAYER_IMPACT | RBF_IMPACT_OBJECT | RBF_VEHICLE_IMPACT)
SET_SYNCHRONIZED_SCENE_PHASE(ssClimbToBack_1B,1)
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedImmigrant[0],TRUE)
FORCE_PED_AI_AND_ANIMATION_UPDATE(sRCLauncherDataLocal.pedID[ic_JOSEF])
SET_PED_INTO_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0],VS_BACK_LEFT)
TASK_PLAY_ANIM(sRCLauncherDataLocal.pedID[ic_JOSEF],"missminuteman_2ig_3","passport_josef",SLOW_BLEND_IN,REALLY_SLOW_BLEND_OUT,-1,AF_DEFAULT,0.99)
bWarpJosef = TRUE
ENDIF
ENDIF
ENDIF
ENDIF
IF bDoDelayedClimbInBack
AND NOT bDoneDelayedClimbInBack
IF iSyncPed = 1
IF IS_ENTITY_ALIVE(sRCLauncherDataLocal.vehID[0])
IF NOT IS_PED_SITTING_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
PROCESS_ENTITY_ATTACHMENTS(pedImmigrant[i])
FORCE_PED_AI_AND_ANIMATION_UPDATE(pedImmigrant[i])
//RESET_PED_MOVEMENT_CLIPSET(pedImmigrant[i])
//ssClimbToBack_2 = CREATE_SYNCHRONIZED_SCENE(<<0.39,-0.8,0.171>>,<<0,0,0>>)
//ATTACH_SYNCHRONIZED_SCENE_TO_ENTITY(ssClimbToBack_2,sRCLauncherDataLocal.vehID[0],-1)
ssClimbToBack_2 = CREATE_SYNCHRONIZED_SCENE(<<0,0,0>>,<<0,0,0>>)
SET_SYNCHRONIZED_SCENE_HOLD_LAST_FRAME(ssClimbToBack_2,TRUE)
ATTACH_SYNCHRONIZED_SCENE_TO_ENTITY(ssClimbToBack_2,sRCLauncherDataLocal.vehID[0],GET_ENTITY_BONE_INDEX_BY_NAME(sRCLauncherDataLocal.vehID[0], "seat_pside_r"))
TASK_SYNCHRONIZED_SCENE(pedImmigrant[i], ssClimbToBack_2, "missminuteman_2ig_1", "entertrunk_josef", SLOW_BLEND_IN, SLOW_BLEND_OUT,SYNCED_SCENE_DONT_INTERRUPT,RBF_BULLET_IMPACT | RBF_PLAYER_IMPACT | RBF_IMPACT_OBJECT | RBF_VEHICLE_IMPACT)
//SET_SYNCHRONIZED_SCENE_PHASE(ssClimbToBack_2,0.06)
SET_SYNCHRONIZED_SCENE_RATE(ssClimbToBack_2,1.4)
bDoneDelayedClimbInBack = TRUE
ENDIF
ENDIF
ENDIF
IF iSyncPed = 2
IF IS_ENTITY_ALIVE(sRCLauncherDataLocal.vehID[0])
IF NOT IS_PED_SITTING_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
PROCESS_ENTITY_ATTACHMENTS(pedImmigrantChase2)
FORCE_PED_AI_AND_ANIMATION_UPDATE(pedImmigrantChase2)
//RESET_PED_MOVEMENT_CLIPSET(pedImmigrantChase2)
//ssClimbToBack_2 = CREATE_SYNCHRONIZED_SCENE(<<0.39,-0.8,0.171>>,<<0,0,0>>)
//ATTACH_SYNCHRONIZED_SCENE_TO_ENTITY(ssClimbToBack_2,sRCLauncherDataLocal.vehID[0],-1)
ssClimbToBack_2 = CREATE_SYNCHRONIZED_SCENE(<<0,0,0>>,<<0,0,0>>)
ATTACH_SYNCHRONIZED_SCENE_TO_ENTITY(ssClimbToBack_2,sRCLauncherDataLocal.vehID[0],GET_ENTITY_BONE_INDEX_BY_NAME(sRCLauncherDataLocal.vehID[0], "seat_pside_r"))
TASK_SYNCHRONIZED_SCENE(pedImmigrantChase2, ssClimbToBack_2, "missminuteman_2ig_1", "entertrunk_josef", SLOW_BLEND_IN, SLOW_BLEND_OUT,SYNCED_SCENE_DONT_INTERRUPT,RBF_BULLET_IMPACT | RBF_PLAYER_IMPACT | RBF_IMPACT_OBJECT | RBF_VEHICLE_IMPACT)
//SET_SYNCHRONIZED_SCENE_PHASE(ssClimbToBack_2,0.06)
SET_SYNCHRONIZED_SCENE_RATE(ssClimbToBack_2,1.4)
bDoneDelayedClimbInBack = TRUE
ENDIF
ENDIF
ENDIF
ENDIF
IF IS_SYNCHRONIZED_SCENE_RUNNING(ssClimbToBack_2)
IF GET_SYNCHRONIZED_SCENE_PHASE(ssClimbToBack_2) = 1 //> 0.99
//ssPed2SitBack = CREATE_SYNCHRONIZED_SCENE(<<0,0,0>>,<<0,0,0>>)
//SET_SYNCHRONIZED_SCENE_HOLD_LAST_FRAME(ssPed2SitBack,FALSE)
//SET_SYNCHRONIZED_SCENE_LOOPED(ssPed2SitBack,TRUE)
IF iSyncPed = 1
/*
IF NOT IS_ENTITY_PLAYING_ANIM(pedImmigrant[1],"missminuteman_2ig_1","trunk_josef")
PROCESS_ENTITY_ATTACHMENTS(pedImmigrant[1])
ATTACH_ENTITY_TO_ENTITY(pedImmigrant[1],sRCLauncherDataLocal.vehID[0],-1,GET_OFFSET_FROM_ENTITY_GIVEN_WORLD_COORDS(sRCLauncherDataLocal.vehID[0],GET_ENTITY_COORDS(pedImmigrant[1])),<<0,0,90>>)
TASK_PLAY_ANIM(pedImmigrant[1],"missminuteman_2ig_1","trunk_josef",NORMAL_BLEND_IN,NORMAL_BLEND_OUT,-1,AF_LOOPING | AF_NOT_INTERRUPTABLE)
SET_RAGDOLL_BLOCKING_FLAGS(pedImmigrant[1],RBF_BULLET_IMPACT | RBF_PLAYER_IMPACT | RBF_IMPACT_OBJECT | RBF_VEHICLE_IMPACT)
ENDIF
*/
PROCESS_ENTITY_ATTACHMENTS(pedImmigrant[1])
ssPed2SitBack = CREATE_SYNCHRONIZED_SCENE(GET_OFFSET_FROM_ENTITY_GIVEN_WORLD_COORDS(sRCLauncherDataLocal.vehID[0],GET_ENTITY_COORDS(pedImmigrant[1])),<<0,0,90>>)
SET_SYNCHRONIZED_SCENE_HOLD_LAST_FRAME(ssPed2SitBack,FALSE)
SET_SYNCHRONIZED_SCENE_LOOPED(ssPed2SitBack,TRUE)
SET_SYNCHRONIZED_SCENE_RATE(ssPed2SitBack,1.6)
ATTACH_SYNCHRONIZED_SCENE_TO_ENTITY(ssPed2SitBack,sRCLauncherDataLocal.vehID[0],-1)
SET_PED_KEEP_TASK(pedImmigrant[1],TRUE)
TASK_SYNCHRONIZED_SCENE(pedImmigrant[1],ssPed2SitBack,"missminuteman_2ig_1","trunk_josef",INSTANT_BLEND_IN,SLOW_BLEND_OUT,SYNCED_SCENE_DONT_INTERRUPT,RBF_BULLET_IMPACT | RBF_PLAYER_IMPACT | RBF_IMPACT_OBJECT | RBF_VEHICLE_IMPACT)
ELIF iSyncPed = 2
/*
IF NOT IS_ENTITY_PLAYING_ANIM(pedImmigrantChase2,"missminuteman_2ig_1","trunk_josef")
PROCESS_ENTITY_ATTACHMENTS(pedImmigrantChase2)
ATTACH_ENTITY_TO_ENTITY(pedImmigrantChase2,sRCLauncherDataLocal.vehID[0],-1,GET_OFFSET_FROM_ENTITY_GIVEN_WORLD_COORDS(sRCLauncherDataLocal.vehID[0],GET_ENTITY_COORDS(pedImmigrantChase2)),<<0,0,90>>)
TASK_PLAY_ANIM(pedImmigrantChase2,"missminuteman_2ig_1","trunk_josef",NORMAL_BLEND_IN,NORMAL_BLEND_OUT,-1,AF_LOOPING | AF_NOT_INTERRUPTABLE)
SET_RAGDOLL_BLOCKING_FLAGS(pedImmigrantChase2,RBF_BULLET_IMPACT | RBF_PLAYER_IMPACT | RBF_IMPACT_OBJECT | RBF_VEHICLE_IMPACT)
ENDIF
*/
PROCESS_ENTITY_ATTACHMENTS(pedImmigrantChase2)
ssPed2SitBack = CREATE_SYNCHRONIZED_SCENE(GET_OFFSET_FROM_ENTITY_GIVEN_WORLD_COORDS(sRCLauncherDataLocal.vehID[0],GET_ENTITY_COORDS(pedImmigrantChase2)),<<0,0,90>>)
SET_SYNCHRONIZED_SCENE_HOLD_LAST_FRAME(ssPed2SitBack,FALSE)
SET_SYNCHRONIZED_SCENE_LOOPED(ssPed2SitBack,TRUE)
SET_SYNCHRONIZED_SCENE_RATE(ssPed2SitBack,1.6)
ATTACH_SYNCHRONIZED_SCENE_TO_ENTITY(ssPed2SitBack,sRCLauncherDataLocal.vehID[0],-1)
SET_PED_KEEP_TASK(pedImmigrantChase2,TRUE)
TASK_SYNCHRONIZED_SCENE(pedImmigrantChase2,ssPed2SitBack,"missminuteman_2ig_1","trunk_josef",INSTANT_BLEND_IN,SLOW_BLEND_OUT,SYNCED_SCENE_DONT_INTERRUPT,RBF_BULLET_IMPACT | RBF_PLAYER_IMPACT | RBF_IMPACT_OBJECT | RBF_VEHICLE_IMPACT)
ENDIF
ENDIF
ENDIF
ENDPROC
PROC DoTraffic()
IF HAS_MODEL_LOADED(EMPEROR2)
AND HAS_MODEL_LOADED(SURFER2)
AND HAS_MODEL_LOADED(BISON)
AND HAS_MODEL_LOADED(TORNADO3)
AND HAS_MODEL_LOADED(STANIER)
AND HAS_MODEL_LOADED(MESA)
/*
AND GET_IS_WAYPOINT_RECORDING_LOADED("Eps8TRAFFIC01")
AND GET_IS_WAYPOINT_RECORDING_LOADED("Eps8TRAFFIC02")
AND GET_IS_WAYPOINT_RECORDING_LOADED("Eps8TRAFFIC03")
AND GET_IS_WAYPOINT_RECORDING_LOADED("Eps8TRAFFIC04")
*/
vTrafficRoute1[0] = <<301.6302, 3426.7095, 35.9073>>
vTrafficRoute1[1] = <<75.7878, 3591.8013, 38.7696>>
vTrafficRoute1[2] = <<-96.4917, 3616.2417, 43.8209>>
vTrafficRoute1[3] = <<-193.8901, 3739.2117, 42.0091>>
vTrafficRoute1[4] = <<-223.8502, 3936.6489, 36.4372>>
vTrafficRoute1[5] = <<-231.1717, 4119.1846, 38.6720>>
vTrafficRoute1[6] = <<-74.4490, 4334.0449, 49.3153>>
//vTrafficRoute1[7] = << -202.3507, 4205.0635, 43.5704 >>
//vTrafficRoute1[8] = << -79.9476, 4317.0864, 47.5128 >>
//vTrafficRoute1[9] = << -49.5753, 4405.9521, 55.8139 >>
//vTrafficRoute1[10] = << 57.3223, 4449.8618, 62.7177 >>
fHeadingTrafficRoute1[0] = 131.8059
fHeadingTrafficRoute1[1] = 80.1408
fHeadingTrafficRoute1[2] = 59.8754
fHeadingTrafficRoute1[3] = 14.4899
fHeadingTrafficRoute1[4] = 351.0852
fHeadingTrafficRoute1[5] = 343.5272
fHeadingTrafficRoute1[6] = 343.5132
//fHeadingTrafficRoute1[7] = 330.3210
//fHeadingTrafficRoute1[8] = 339.2812
//fHeadingTrafficRoute1[9] = 320.5906
//fHeadingTrafficRoute1[10] = 260.8352
vTrafficRoute2[0] = <<110.6866, 4435.8774, 69.0993>>
vTrafficRoute2[1] = <<-68.2519, 4363.0513, 52.4024>>
vTrafficRoute2[2] = <<-208.7096, 4199.1304, 43.2855>>
vTrafficRoute2[3] = <<-224.2061, 3956.5005, 36.5195>>
vTrafficRoute2[4] = <<-196.2560, 3732.5298, 42.2655>>
vTrafficRoute2[5] = <<30.9941, 3594.5623, 38.7656>>
vTrafficRoute2[6] = <<181.0861, 3394.6218, 37.0298>>
//vTrafficRoute2[7] = << -213.4657, 3811.5183, 37.8680 >>
//vTrafficRoute2[8] = << -191.0385, 3700.5374, 42.9150 >>
//vTrafficRoute2[9] = << 67.4248, 3585.1685, 38.7595 >>
//vTrafficRoute2[10] = << 99.6722, 3432.2373, 38.5112 >>
fHeadingTrafficRoute2[0] = 67.0420
fHeadingTrafficRoute2[1] = 163.8586
fHeadingTrafficRoute2[2] = 159.4639
fHeadingTrafficRoute2[3] = 172.2390
fHeadingTrafficRoute2[4] = 189.3230
fHeadingTrafficRoute2[5] = 260.3510
fHeadingTrafficRoute2[6] = 250.8270
//fHeadingTrafficRoute2[7] = 195.5279
//fHeadingTrafficRoute2[8] = 194.5786
//fHeadingTrafficRoute2[9] = 251.4245
//fHeadingTrafficRoute2[10] = 234.4719
MODEL_NAMES modVeh
INT iRandom
INT iClosestWaypointToPlayer
INT iClosestWaypointToSpawnPoint
INT iWaypointProgress
IF GET_IS_WAYPOINT_RECORDING_LOADED("Min2_Traffic01")
IF NOT DOES_ENTITY_EXIST(vehTrafficRoute1[iTraffic])
IF bBlokestunned = FALSE
AND missionStage = MS_UPDATE_CHASE1
WAYPOINT_RECORDING_GET_CLOSEST_WAYPOINT("Min2_Traffic01",GET_ENTITY_COORDS(PLAYER_PED_ID()),iClosestWaypointToPlayer)
WAYPOINT_RECORDING_GET_CLOSEST_WAYPOINT("Min2_Traffic01",vTrafficRoute1[iTraffic],iClosestWaypointToSpawnPoint)
IF iClosestWaypointToSpawnPoint < iClosestWaypointToPlayer
AND NOT IS_ENTITY_IN_RANGE_COORDS(PLAYER_PED_ID(),vTrafficRoute1[iTraffic],80)
//AND IS_ENTITY_IN_RANGE_COORDS(PLAYER_PED_ID(),vTrafficRoute1[iTraffic],220)
AND NOT IS_POSITION_OCCUPIED(vTrafficRoute1[iTraffic],200,FALSE,TRUE,FALSE,FALSE,FALSE)
IF NOT IS_SPHERE_VISIBLE(vTrafficRoute1[iTraffic],8)
iRandom = GET_RANDOM_INT_IN_RANGE(0,6)
IF iRandom = 0
modVeh = EMPEROR2
ELIF iRandom = 1
modVeh = SURFER2
ELIF iRandom = 2
modVeh = BISON
ELIF iRandom = 3
modVeh = TORNADO3
ELIF iRandom = 4
modVeh = STANIER
ELSE
modVeh = MESA
ENDIF
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "SPAWNING TRAFFIC ON 1")
#ENDIF
vehTrafficRoute1[iTraffic] = CREATE_VEHICLE(modVeh,vTrafficRoute1[iTraffic], fHeadingTrafficRoute1[iTraffic])
pedTrafficRoute1[iTraffic] = CREATE_RANDOM_PED_AS_DRIVER(vehTrafficRoute1[iTraffic])
SET_VEHICLE_ON_GROUND_PROPERLY(vehTrafficRoute1[iTraffic])
SET_ENTITY_LOAD_COLLISION_FLAG(vehTrafficRoute1[iTraffic],TRUE)
//TASK_VEHICLE_FOLLOW_WAYPOINT_RECORDING(pedTrafficRoute1[iTraffic],vehTrafficRoute1[iTraffic],"Min2_Traffic01",DRIVINGMODE_AVOIDCARS_STOPFORPEDS_OBEYLIGHTS,0,EWAYPOINT_START_FROM_CLOSEST_POINT)
TASK_VEHICLE_DRIVE_TO_COORD(pedTrafficRoute1[iTraffic],vehTrafficRoute1[iTraffic],<<254.0842, 4495.0879, 65.5812>>,10,DRIVINGSTYLE_NORMAL, modVeh, DRIVINGMODE_AVOIDCARS_STOPFORPEDS_OBEYLIGHTS,20,20)
SET_PED_COMBAT_ATTRIBUTES(pedTrafficRoute1[iTraffic],CA_ALWAYS_FLEE,TRUE)
ENDIF
ENDIF
ENDIF
ELSE
IF IS_ENTITY_ALIVE(vehTrafficRoute1[iTraffic])
IF IS_PED_UNINJURED(pedTrafficRoute1[iTraffic])
//IF IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_VEHICLE(vehTrafficRoute1[iTraffic])
IF GET_SCRIPT_TASK_STATUS(pedTrafficRoute1[iTraffic],SCRIPT_TASK_VEHICLE_DRIVE_TO_COORD) = PERFORMING_TASK
IF IS_PED_UNINJURED(pedImmigrant[i])
//IF IS_PED_UNINJURED(pedTrafficRoute1[iTraffic])
IF IS_ENTITY_IN_RANGE_ENTITY(pedImmigrant[i],pedTrafficRoute1[iTraffic],20.0 + (fTrafficStopped * 10.0))
IF IS_PED_FACING_PED(pedTrafficRoute1[iTraffic],pedImmigrant[i],120)
IF bBlokestunned = TRUE
TASK_VEHICLE_TEMP_ACTION(pedTrafficRoute1[iTraffic],vehTrafficRoute1[iTraffic],TEMPACT_BRAKE,-1)
fTrafficStopped = fTrafficStopped + 1.0
ENDIF
//IF IS_PED_BEING_STUNNED(pedImmigrant[i])
// TASK_SMART_FLEE_PED(pedTrafficRoute1[iTraffic],PLAYER_PED_ID(),200,-1)
//ENDIF
ENDIF
ENDIF
//ENDIF
ENDIF
WAYPOINT_RECORDING_GET_CLOSEST_WAYPOINT("Min2_Traffic01",GET_ENTITY_COORDS(PLAYER_PED_ID()),iClosestWaypointToPlayer)
WAYPOINT_RECORDING_GET_CLOSEST_WAYPOINT("Min2_Traffic01",GET_ENTITY_COORDS(vehTrafficRoute1[iTraffic]),iWaypointProgress)
IF iWaypointProgress > iClosestWaypointToPlayer
//IF GET_VEHICLE_WAYPOINT_PROGRESS(vehTrafficRoute1[iTraffic]) > iClosestWaypointToPlayer
IF NOT IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),vehTrafficRoute1[iTraffic],80)
//OR NOT IS_ENTITY_ON_SCREEN(vehTrafficRoute1[iTraffic])
//IF NOT IS_SPHERE_VISIBLE(vTrafficRoute1[iTraffic],9)
IF IS_ENTITY_OCCLUDED(vehTrafficRoute1[iTraffic])
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "CLEANING UP TRAFFIC ON 1")
#ENDIF
SAFE_RELEASE_PED(pedTrafficRoute1[iTraffic])
SAFE_RELEASE_VEHICLE(vehTrafficRoute1[iTraffic])
ENDIF
ENDIF
ENDIF
ELSE
//IF NOT IS_SPHERE_VISIBLE(vTrafficRoute1[iTraffic],9)
IF NOT IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),vehTrafficRoute1[iTraffic],80)
AND IS_ENTITY_OCCLUDED(vehTrafficRoute1[iTraffic])
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "CLEANING UP TRAFFIC ON 1")
#ENDIF
SAFE_RELEASE_PED(pedTrafficRoute1[iTraffic])
SAFE_RELEASE_VEHICLE(vehTrafficRoute1[iTraffic])
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF GET_IS_WAYPOINT_RECORDING_LOADED("Min2_Traffic02")
IF NOT DOES_ENTITY_EXIST(vehTrafficRoute2[iTraffic])
IF bBlokestunned = FALSE
AND missionStage = MS_UPDATE_CHASE1
WAYPOINT_RECORDING_GET_CLOSEST_WAYPOINT("Min2_Traffic02",GET_ENTITY_COORDS(PLAYER_PED_ID()),iClosestWaypointToPlayer)
WAYPOINT_RECORDING_GET_CLOSEST_WAYPOINT("Min2_Traffic02",vTrafficRoute1[iTraffic],iClosestWaypointToSpawnPoint)
IF iClosestWaypointToSpawnPoint > iClosestWaypointToPlayer
AND NOT IS_ENTITY_IN_RANGE_COORDS(PLAYER_PED_ID(),vTrafficRoute2[iTraffic],80)
//AND IS_ENTITY_IN_RANGE_COORDS(PLAYER_PED_ID(),vTrafficRoute2[iTraffic],220)
AND NOT IS_POSITION_OCCUPIED(vTrafficRoute2[iTraffic],200,FALSE,TRUE,FALSE,FALSE,FALSE)
IF NOT IS_SPHERE_VISIBLE(vTrafficRoute2[iTraffic],8)
iRandom = GET_RANDOM_INT_IN_RANGE(0,6)
IF iRandom = 0
modVeh = EMPEROR2
ELIF iRandom = 1
modVeh = SURFER2
ELIF iRandom = 2
modVeh = BISON
ELIF iRandom = 3
modVeh = TORNADO3
ELIF iRandom = 4
modVeh = STANIER
ELSE
modVeh = MESA
ENDIF
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "SPAWNING TRAFFIC ON 2")
#ENDIF
vehTrafficRoute2[iTraffic] = CREATE_VEHICLE(modVeh,vTrafficRoute2[iTraffic], fHeadingTrafficRoute2[iTraffic])
pedTrafficRoute2[iTraffic] = CREATE_RANDOM_PED_AS_DRIVER(vehTrafficRoute2[iTraffic])
SET_VEHICLE_ON_GROUND_PROPERLY(vehTrafficRoute2[iTraffic])
SET_ENTITY_LOAD_COLLISION_FLAG(vehTrafficRoute2[iTraffic],TRUE)
//TASK_VEHICLE_FOLLOW_WAYPOINT_RECORDING(pedTrafficRoute2[iTraffic],vehTrafficRoute2[iTraffic],"Min2_Traffic02",DRIVINGMODE_AVOIDCARS_STOPFORPEDS_OBEYLIGHTS,0,EWAYPOINT_START_FROM_CLOSEST_POINT)
TASK_VEHICLE_DRIVE_TO_COORD(pedTrafficRoute2[iTraffic],vehTrafficRoute2[iTraffic],<<213.2652, 3214.4578, 41.7024>>,10,DRIVINGSTYLE_NORMAL, modVeh, DRIVINGMODE_AVOIDCARS_STOPFORPEDS_OBEYLIGHTS,20,20)
SET_PED_COMBAT_ATTRIBUTES(pedTrafficRoute2[iTraffic],CA_ALWAYS_FLEE,TRUE)
ENDIF
ENDIF
ENDIF
ELSE
IF IS_ENTITY_ALIVE(vehTrafficRoute2[iTraffic])
IF IS_PED_UNINJURED(pedTrafficRoute2[iTraffic])
//IF IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_VEHICLE(vehTrafficRoute2[iTraffic])
IF GET_SCRIPT_TASK_STATUS(pedTrafficRoute2[iTraffic],SCRIPT_TASK_VEHICLE_DRIVE_TO_COORD) = PERFORMING_TASK
IF IS_PED_UNINJURED(pedImmigrant[i])
//IF IS_PED_UNINJURED(pedTrafficRoute2[iTraffic])
IF IS_ENTITY_IN_RANGE_ENTITY(pedImmigrant[i],pedTrafficRoute2[iTraffic],20.0 + (fTrafficStopped * 10.0))
IF IS_PED_FACING_PED(pedTrafficRoute2[iTraffic],pedImmigrant[i],120)
IF bBlokestunned = TRUE
TASK_VEHICLE_TEMP_ACTION(pedTrafficRoute2[iTraffic],vehTrafficRoute2[iTraffic],TEMPACT_BRAKE,-1)
fTrafficStopped = fTrafficStopped + 1.0
ENDIF
//IF IS_PED_BEING_STUNNED(pedImmigrant[i])
// TASK_SMART_FLEE_PED(pedTrafficRoute2[iTraffic],PLAYER_PED_ID(),200,-1)
//ENDIF
ENDIF
ENDIF
//ENDIF
ENDIF
WAYPOINT_RECORDING_GET_CLOSEST_WAYPOINT("Min2_Traffic02",GET_ENTITY_COORDS(PLAYER_PED_ID()),iClosestWaypointToPlayer)
WAYPOINT_RECORDING_GET_CLOSEST_WAYPOINT("Min2_Traffic02",GET_ENTITY_COORDS(vehTrafficRoute2[iTraffic]),iWaypointProgress)
IF iWaypointProgress < iClosestWaypointToPlayer
//IF GET_VEHICLE_WAYPOINT_PROGRESS(vehTrafficRoute2[iTraffic]) < iClosestWaypointToPlayer
IF NOT IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),vehTrafficRoute2[iTraffic],80)
//OR NOT IS_ENTITY_ON_SCREEN(vehTrafficRoute2[iTraffic])
//IF NOT IS_SPHERE_VISIBLE(vTrafficRoute2[iTraffic],8)
IF IS_ENTITY_OCCLUDED(vehTrafficRoute2[iTraffic])
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "CLEANING UP TRAFFIC ON 2")
#ENDIF
SAFE_RELEASE_PED(pedTrafficRoute2[iTraffic])
SAFE_RELEASE_VEHICLE(vehTrafficRoute2[iTraffic])
ENDIF
ENDIF
ENDIF
ELSE
//IF NOT IS_SPHERE_VISIBLE(vTrafficRoute2[iTraffic],9)
IF NOT IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),vehTrafficRoute2[iTraffic],80)
AND IS_ENTITY_OCCLUDED(vehTrafficRoute2[iTraffic])
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "CLEANING UP TRAFFIC ON 2")
#ENDIF
SAFE_RELEASE_PED(pedTrafficRoute2[iTraffic])
SAFE_RELEASE_VEHICLE(vehTrafficRoute2[iTraffic])
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
++iTraffic
IF iTraffic > 6
iTraffic = 0
ENDIF
ENDIF
ENDPROC
PROC CleanupTraffic()
SET_MODEL_AS_NO_LONGER_NEEDED(EMPEROR2)
SET_MODEL_AS_NO_LONGER_NEEDED(SURFER2)
SET_MODEL_AS_NO_LONGER_NEEDED(BISON)
SET_MODEL_AS_NO_LONGER_NEEDED(TORNADO3)
SET_MODEL_AS_NO_LONGER_NEEDED(STANIER)
SET_MODEL_AS_NO_LONGER_NEEDED(MESA)
SAFE_RELEASE_PED(pedTrafficRoute1[0])
SAFE_RELEASE_PED(pedTrafficRoute1[1])
SAFE_RELEASE_PED(pedTrafficRoute1[2])
SAFE_RELEASE_PED(pedTrafficRoute1[3])
SAFE_RELEASE_PED(pedTrafficRoute1[4])
SAFE_RELEASE_PED(pedTrafficRoute1[5])
SAFE_RELEASE_PED(pedTrafficRoute1[6])
SAFE_RELEASE_PED(pedTrafficRoute1[7])
SAFE_RELEASE_PED(pedTrafficRoute1[8])
SAFE_RELEASE_PED(pedTrafficRoute1[9])
SAFE_RELEASE_PED(pedTrafficRoute1[10])
SAFE_RELEASE_VEHICLE(vehTrafficRoute1[0])
SAFE_RELEASE_VEHICLE(vehTrafficRoute1[1])
SAFE_RELEASE_VEHICLE(vehTrafficRoute1[2])
SAFE_RELEASE_VEHICLE(vehTrafficRoute1[3])
SAFE_RELEASE_VEHICLE(vehTrafficRoute1[4])
SAFE_RELEASE_VEHICLE(vehTrafficRoute1[5])
SAFE_RELEASE_VEHICLE(vehTrafficRoute1[6])
SAFE_RELEASE_VEHICLE(vehTrafficRoute1[7])
SAFE_RELEASE_VEHICLE(vehTrafficRoute1[8])
SAFE_RELEASE_VEHICLE(vehTrafficRoute1[9])
SAFE_RELEASE_VEHICLE(vehTrafficRoute1[10])
SAFE_RELEASE_PED(pedTrafficRoute2[0])
SAFE_RELEASE_PED(pedTrafficRoute2[1])
SAFE_RELEASE_PED(pedTrafficRoute2[2])
SAFE_RELEASE_PED(pedTrafficRoute2[3])
SAFE_RELEASE_PED(pedTrafficRoute2[4])
SAFE_RELEASE_PED(pedTrafficRoute2[5])
SAFE_RELEASE_PED(pedTrafficRoute2[6])
SAFE_RELEASE_PED(pedTrafficRoute2[7])
SAFE_RELEASE_PED(pedTrafficRoute2[8])
SAFE_RELEASE_PED(pedTrafficRoute2[9])
SAFE_RELEASE_PED(pedTrafficRoute2[10])
SAFE_RELEASE_VEHICLE(vehTrafficRoute2[0])
SAFE_RELEASE_VEHICLE(vehTrafficRoute2[1])
SAFE_RELEASE_VEHICLE(vehTrafficRoute2[2])
SAFE_RELEASE_VEHICLE(vehTrafficRoute2[3])
SAFE_RELEASE_VEHICLE(vehTrafficRoute2[4])
SAFE_RELEASE_VEHICLE(vehTrafficRoute2[5])
SAFE_RELEASE_VEHICLE(vehTrafficRoute2[6])
SAFE_RELEASE_VEHICLE(vehTrafficRoute2[7])
SAFE_RELEASE_VEHICLE(vehTrafficRoute2[8])
SAFE_RELEASE_VEHICLE(vehTrafficRoute2[9])
SAFE_RELEASE_VEHICLE(vehTrafficRoute2[10])
ENDPROC
FUNC BOOL JOSEF_AND_JOE_LEFT_BEHIND()
IF missionStage = MS_UPDATE_CHASE1
OR missionStage = MS_IMMIGRANT1_APPREHENDED
//IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
IF NOT IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),sRCLauncherDataLocal.pedID[ic_JOE],150)
AND NOT IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),sRCLauncherDataLocal.pedID[ic_JOSEF],150)
IF bPrint49 = FALSE
PRINT_NOW("MIN2_49",DEFAULT_GOD_TEXT_TIME,0) //return to
bPrint49 = TRUE
ENDIF
/*
IF NOT DOES_BLIP_EXIST(blipJoe)
blipJoe = CREATE_PED_BLIP(sRCLauncherDataLocal.pedID[ic_JOSEF],TRUE,TRUE)
ENDIF
IF NOT DOES_BLIP_EXIST(blipJosef)
blipJosef = CREATE_PED_BLIP(sRCLauncherDataLocal.pedID[ic_JOE],TRUE,TRUE)
ENDIF
*/
RETURN TRUE
ENDIF
ENDIF
RETURN FALSE
ENDFUNC
/// PURPOSE: Grab random cars and toot their horns
PROC RandomCarHorns()
IF bCarHorn = FALSE
vehRandom = GET_RANDOM_VEHICLE_IN_SPHERE(GET_ENTITY_COORDS(PLAYER_PED_ID()),40.0,DUMMY_MODEL_FOR_SCRIPT,VEHICLE_SEARCH_FLAG_RETURN_RANDOM_VEHICLES)
IF IS_VEHICLE_OK(vehRandom)
START_VEHICLE_HORN(vehRandom,GET_RANDOM_INT_IN_RANGE(2000,6000),GET_RANDOM_INT_IN_RANGE(0,2))
iTimerCarHorn = GET_GAME_TIMER()
bCarHorn = TRUE
ENDIF
ELSE
IF GET_GAME_TIMER() > iTimerCarHorn + 15000
SET_VEHICLE_AS_NO_LONGER_NEEDED(vehRandom)
bCarHorn = FALSE
ENDIF
ENDIF
ENDPROC
/// PURPOSE: Init the park ranger vehicle
PROC SpawnPlayerCar()
IF NOT DOES_ENTITY_EXIST(sRCLauncherDataLocal.vehID[0])
sRCLauncherDataLocal.vehID[0] = CREATE_VEHICLE(PRANGER,<<20.80, 4532.65, 104.66>>, 284.70, TRUE, TRUE)
ENDIF
IF IS_VEHICLE_OK(sRCLauncherDataLocal.vehID[0])
IF IS_PED_UNINJURED(PLAYER_PED_ID())
SET_VEHICLE_AS_RESTRICTED(sRCLauncherDataLocal.vehID[0],1)
SET_VEHICLE_MODEL_IS_SUPPRESSED(PRANGER,TRUE)
SET_DOOR_ALLOWED_TO_BE_BROKEN_OFF(sRCLauncherDataLocal.vehID[0], SC_DOOR_BOOT, FALSE)
ROLL_DOWN_WINDOWS(sRCLauncherDataLocal.vehID[0])
//REMOVE_VEHICLE_WINDOW(sRCLauncherDataLocal.vehID[0],SC_WINDOW_MIDDLE_LEFT)
//REMOVE_VEHICLE_WINDOW(sRCLauncherDataLocal.vehID[0],SC_WINDOW_REAR_LEFT)
SET_VEHICLE_DIRT_LEVEL(sRCLauncherDataLocal.vehID[0],14.0)
SET_VEHICLE_HAS_STRONG_AXLES(sRCLauncherDataLocal.vehID[0],TRUE)
IF NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
FREEZE_ENTITY_POSITION(PLAYER_PED_ID(),FALSE)
SET_PED_INTO_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
ENDIF
SET_VEHICLE_DEFORMATION_FIXED(sRCLauncherDataLocal.vehID[0])
ENDIF
ENDIF
SET_MODEL_AS_NO_LONGER_NEEDED(PRANGER)
ENDPROC
/// PURPOSE: Spawn the crop duster and pilot
PROC SpawnDuster()
IF NOT DOES_ENTITY_EXIST(vehDuster)
vehDuster = CREATE_VEHICLE(DUSTER,<< -433.5560, 2609.4536, 77.2352 >>, 22.3231)
IF NOT DOES_ENTITY_EXIST(pedDusterPilot)
pedDusterPilot = CREATE_PED_INSIDE_VEHICLE(vehDuster,PEDTYPE_MISSION,S_M_M_Migrant_01)
START_PLAYBACK_RECORDED_VEHICLE(vehDuster, 343, "Min2_Dust")
SET_PLAYBACK_SPEED(vehDuster,1.1)
ENDIF
ENDIF
ENDPROC
/// PURPOSE: Spawn/setup Josef and Joe
PROC SpawnJosefAndJoe()
IF IS_VEHICLE_OK(sRCLauncherDataLocal.vehID[0])
ADD_VEHICLE_STUCK_CHECK_WITH_WARP(sRCLauncherDataLocal.vehID[0],0.5,1000,FALSE,FALSE,FALSE,-1)
IF NOT DOES_ENTITY_EXIST(sRCLauncherDataLocal.pedID[ic_JOE])
CREATE_NPC_PED_INSIDE_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],CHAR_JOE,sRCLauncherDataLocal.vehID[0],VS_FRONT_RIGHT)
ELSE
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[ic_JOE])
IF NOT IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
SET_PED_INTO_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0],VS_FRONT_RIGHT)
ENDIF
ENDIF
ENDIF
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[ic_JOE])
SET_PED_RELATIONSHIP_GROUP_HASH(sRCLauncherDataLocal.pedID[ic_JOE],GET_PED_RELATIONSHIP_GROUP_HASH(PLAYER_PED_ID()))
SET_PED_COMBAT_ATTRIBUTES(sRCLauncherDataLocal.pedID[ic_JOE],CA_DO_DRIVEBYS,TRUE)
SET_PED_COMBAT_ATTRIBUTES(sRCLauncherDataLocal.pedID[ic_JOE],CA_AGGRESSIVE,TRUE)
SET_PED_COMBAT_ATTRIBUTES(sRCLauncherDataLocal.pedID[ic_JOE],CA_DISABLE_SECONDARY_TARGET,TRUE)
SET_PED_COMBAT_ATTRIBUTES(sRCLauncherDataLocal.pedID[ic_JOE],CA_USE_COVER,FALSE)
SET_PED_COMBAT_ATTRIBUTES(sRCLauncherDataLocal.pedID[ic_JOE],CA_REQUIRES_LOS_TO_SHOOT,TRUE)
SET_PED_COMBAT_RANGE(sRCLauncherDataLocal.pedID[ic_JOE],CR_NEAR)
SET_PED_COMBAT_MOVEMENT(sRCLauncherDataLocal.pedID[ic_JOE],CM_STATIONARY)
GIVE_WEAPON_TO_PED(sRCLauncherDataLocal.pedID[ic_JOE],WEAPONTYPE_STUNGUN,-1,TRUE)
SET_PED_ACCURACY(sRCLauncherDataLocal.pedID[ic_JOE],100)
SET_PED_CONFIG_FLAG(sRCLauncherDataLocal.pedID[ic_JOE], PCF_WillFlyThroughWindscreen, FALSE)
SET_PED_CONFIG_FLAG(sRCLauncherDataLocal.pedID[ic_JOE], PCF_GetOutUndriveableVehicle, FALSE)
SET_PED_CONFIG_FLAG(sRCLauncherDataLocal.pedID[ic_JOE], PCF_GetOutBurningVehicle, FALSE)
//SET_PED_CONFIG_FLAG(sRCLauncherDataLocal.pedID[ic_JOE], PCF_WaitForDirectEntryPointToBeFreeWhenExiting, TRUE)
SET_PED_CONFIG_FLAG(sRCLauncherDataLocal.pedID[ic_JOE], PCF_ForceDirectEntry, TRUE)
TASK_SET_DECISION_MAKER(sRCLauncherDataLocal.pedID[ic_JOE],DECISION_MAKER_EMPTY)
SET_PED_CAN_BE_TARGETTED(sRCLauncherDataLocal.pedID[ic_JOE],FALSE)
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(sRCLauncherDataLocal.pedID[ic_JOE],TRUE)
SET_PED_STAY_IN_VEHICLE_WHEN_JACKED(sRCLauncherDataLocal.pedID[ic_JOE],TRUE)
SET_PED_LEG_IK_MODE(sRCLauncherDataLocal.pedID[ic_JOE], LEG_IK_FULL)
ENDIF
IF NOT DOES_ENTITY_EXIST(sRCLauncherDataLocal.pedID[ic_JOSEF])
CREATE_NPC_PED_INSIDE_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],CHAR_JOSEF,sRCLauncherDataLocal.vehID[0],VS_BACK_RIGHT)
ELSE
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[ic_JOSEF])
IF NOT IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
SET_PED_INTO_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0],VS_BACK_RIGHT)
ENDIF
ENDIF
ENDIF
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[ic_JOSEF])
SET_PED_RELATIONSHIP_GROUP_HASH(sRCLauncherDataLocal.pedID[ic_JOSEF],GET_PED_RELATIONSHIP_GROUP_HASH(PLAYER_PED_ID()))
GIVE_WEAPON_TO_PED(sRCLauncherDataLocal.pedID[ic_JOSEF],WEAPONTYPE_STUNGUN,-1,TRUE)
SET_PED_ACCURACY(sRCLauncherDataLocal.pedID[ic_JOSEF],100)
SET_PED_COMBAT_ATTRIBUTES(sRCLauncherDataLocal.pedID[ic_JOSEF],CA_DO_DRIVEBYS,TRUE)
SET_PED_COMBAT_ATTRIBUTES(sRCLauncherDataLocal.pedID[ic_JOSEF],CA_AGGRESSIVE,TRUE)
SET_PED_COMBAT_ATTRIBUTES(sRCLauncherDataLocal.pedID[ic_JOSEF],CA_DISABLE_SECONDARY_TARGET,TRUE)
SET_PED_COMBAT_ATTRIBUTES(sRCLauncherDataLocal.pedID[ic_JOSEF],CA_USE_COVER,FALSE)
SET_PED_COMBAT_ATTRIBUTES(sRCLauncherDataLocal.pedID[ic_JOSEF],CA_REQUIRES_LOS_TO_SHOOT,TRUE)
SET_PED_COMBAT_RANGE(sRCLauncherDataLocal.pedID[ic_JOSEF],CR_NEAR)
SET_PED_COMBAT_MOVEMENT(sRCLauncherDataLocal.pedID[ic_JOSEF],CM_STATIONARY)
SET_PED_CONFIG_FLAG(sRCLauncherDataLocal.pedID[ic_JOSEF], PCF_WillFlyThroughWindscreen, FALSE)
SET_PED_CONFIG_FLAG(sRCLauncherDataLocal.pedID[ic_JOSEF], PCF_GetOutUndriveableVehicle, FALSE)
SET_PED_CONFIG_FLAG(sRCLauncherDataLocal.pedID[ic_JOSEF], PCF_GetOutBurningVehicle, FALSE)
//SET_PED_CONFIG_FLAG(sRCLauncherDataLocal.pedID[ic_JOSEF], PCF_WaitForDirectEntryPointToBeFreeWhenExiting, TRUE)
SET_PED_CONFIG_FLAG(sRCLauncherDataLocal.pedID[ic_JOSEF], PCF_ForceDirectEntry, TRUE)
TASK_SET_DECISION_MAKER(sRCLauncherDataLocal.pedID[ic_JOSEF],DECISION_MAKER_EMPTY)
SET_PED_CAN_BE_TARGETTED(sRCLauncherDataLocal.pedID[ic_JOSEF],FALSE)
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(sRCLauncherDataLocal.pedID[ic_JOSEF],TRUE)
SET_PED_STAY_IN_VEHICLE_WHEN_JACKED(sRCLauncherDataLocal.pedID[ic_JOSEF],TRUE)
TASK_SHUFFLE_TO_NEXT_VEHICLE_SEAT(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
SET_PED_LEG_IK_MODE(sRCLauncherDataLocal.pedID[ic_JOSEF], LEG_IK_FULL)
ENDIF
ENDIF
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 2, PLAYER_PED_ID(), "TREVOR")
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 6, sRCLauncherDataLocal.pedID[ic_JOSEF], "JOSEF")
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 7, sRCLauncherDataLocal.pedID[ic_JOE], "JOE")
ENDPROC
/// PURPOSE: Spawn chase vehicles
PROC SpawnChaseCar()
IF i = 0
IF NOT DOES_ENTITY_EXIST(vehChaseCar[i])
//vehChaseCar[i] = CREATE_VEHICLE(BLAZER,<< 191.5226, 4433.6460, 72.2440 >>, 132.2115, TRUE, TRUE)
vehChaseCar[i] = CREATE_VEHICLE(BLAZER,<<246.4836, 4493.2305, 66.0521>>, 90.3329, TRUE, TRUE)
//vehChaseCar[i] = CREATE_VEHICLE(BLAZER,<<162.2808, 4411.3193, 74.7961>>, 68.1696 , TRUE, TRUE) //On the bank at the bottom (start off vehicle)
SET_VEHICLE_COLOUR_COMBINATION(vehChaseCar[i],2)
SET_ENTITY_ONLY_DAMAGED_BY_PLAYER(vehChaseCar[i],TRUE)
SET_VEHICLE_DIRT_LEVEL(vehChaseCar[i],14.0)
SET_MODEL_AS_NO_LONGER_NEEDED(BLAZER)
ENDIF
ENDIF
IF i = 1
IF IS_VEHICLE_OK(vehChaseCar[0])
SAFE_RELEASE_VEHICLE(vehChaseCar[0])
ENDIF
IF NOT DOES_ENTITY_EXIST(vehChaseCar[i])
IF IS_REPLAY_IN_PROGRESS()
AND GET_REPLAY_MID_MISSION_STAGE() = 2
vehChaseCar[i] = CREATE_VEHICLE(SANCHEZ, <<303.0419, 2892.9541, 42.5927>>, 209.59, TRUE, TRUE) //<< 307.6654, 2884.1946, 42.4575 >>, 214.6454
ELSE
vehChaseCar[i] = CREATE_VEHICLE(SANCHEZ, <<303.0419, 2892.9541, 42.5927>>, 209.59, TRUE, TRUE) //<< 301.5931, 2896.0457, 42.6070 >>, 196.3851
ENDIF
SET_VEHICLE_COLOUR_COMBINATION(vehChaseCar[i],2)
SET_ENTITY_ONLY_DAMAGED_BY_PLAYER(vehChaseCar[i],TRUE)
SET_VEHICLE_ENGINE_ON(vehChaseCar[i],TRUE,TRUE)
SET_VEHICLE_DIRT_LEVEL(vehChaseCar[i],14.0)
ENDIF
IF NOT DOES_ENTITY_EXIST(vehChaseCarChase2)
IF IS_REPLAY_IN_PROGRESS()
AND GET_REPLAY_MID_MISSION_STAGE() = 2
vehChaseCarChase2 = CREATE_VEHICLE(SANCHEZ,<<297.1000, 2895.4980, 42.5893>>, 214.25, TRUE, TRUE) //<< 300.2892, 2885.5376, 42.5449 >>, 220.7304
ELSE
vehChaseCarChase2 = CREATE_VEHICLE(SANCHEZ,<<297.1000, 2895.4980, 42.5893>>, 214.25, TRUE, TRUE) //<< 297.5408, 2888.8457, 42.6080 >>, 217.2791
ENDIF
SET_VEHICLE_COLOUR_COMBINATION(vehChaseCar[i],1)
SET_ENTITY_ONLY_DAMAGED_BY_PLAYER(vehChaseCarChase2,TRUE)
SET_VEHICLE_ENGINE_ON(vehChaseCarChase2,TRUE,TRUE)
SET_VEHICLE_DIRT_LEVEL(vehChaseCarChase2,14.0)
SET_MODEL_AS_NO_LONGER_NEEDED(SANCHEZ)
ENDIF
IF NOT DOES_ENTITY_EXIST(vehSpeedo)
vehSpeedo = CREATE_VEHICLE(SPEEDO,<< 290.8079, 2859.2888, 42.6421 >>, 313.9074)
SET_VEHICLE_DOOR_OPEN(vehSpeedo,SC_DOOR_REAR_LEFT)
SET_VEHICLE_DOOR_OPEN(vehSpeedo,SC_DOOR_REAR_RIGHT)
SET_VEHICLE_COLOUR_COMBINATION(vehSpeedo,1)
SET_VEHICLE_DIRT_LEVEL(vehSpeedo,15.0)
SET_MODEL_AS_NO_LONGER_NEEDED(SPEEDO)
ENDIF
IF NOT DOES_ENTITY_EXIST(pedWorker[0])
pedWorker[0] = CREATE_PED(PEDTYPE_MISSION,S_M_M_GAFFER_01,<< 289.6810, 2860.0039, 42.6421 >>, 66.4056)
SET_PED_COMPONENT_VARIATION(pedWorker[0],PED_COMP_HEAD,0,1)
SET_PED_COMPONENT_VARIATION(pedWorker[0],PED_COMP_HAIR,0,0)
SET_PED_COMPONENT_VARIATION(pedWorker[0],PED_COMP_SPECIAL,0,0)
SET_PED_COMPONENT_VARIATION(pedWorker[0],PED_COMP_SPECIAL2,0,0)
SET_PED_COMPONENT_VARIATION(pedWorker[0],PED_COMP_HEAD,0,1)
SET_PED_COMPONENT_VARIATION(pedWorker[0],PED_COMP_TORSO,0,1)
SET_PED_COMPONENT_VARIATION(pedWorker[0],PED_COMP_LEG,1,0)
TASK_PLAY_ANIM(pedWorker[0],"rcmminute2lean","idle_c",NORMAL_BLEND_IN,-2,-1,AF_LOOPING)
SET_PED_COMBAT_ATTRIBUTES(pedWorker[0],CA_ALWAYS_FLEE,TRUE)
SET_MODEL_AS_NO_LONGER_NEEDED(S_M_M_GAFFER_01)
ENDIF
/*
IF NOT DOES_ENTITY_EXIST(pedWorker[1])
pedWorker[1] = CREATE_PED(PEDTYPE_MISSION,S_M_Y_CONSTRUCT_01,<<287.395721,2837.913574,43.573788>>, 124.411591)
SET_PED_COMPONENT_VARIATION(pedWorker[1],PED_COMP_HEAD,2,2)
SET_PED_COMPONENT_VARIATION(pedWorker[1],PED_COMP_HAIR,0,1)
SET_PED_COMPONENT_VARIATION(pedWorker[1],PED_COMP_SPECIAL,0,0)
SET_PED_COMPONENT_VARIATION(pedWorker[1],PED_COMP_SPECIAL2,0,0)
SET_PED_COMPONENT_VARIATION(pedWorker[1],PED_COMP_TORSO,2,2)
SET_PED_COMPONENT_VARIATION(pedWorker[1],PED_COMP_LEG,2,2)
TASK_PLAY_ANIM(pedWorker[1],"rcmminute2","idle_e",NORMAL_BLEND_IN,NORMAL_BLEND_OUT,-1,AF_LOOPING)
ObjPhone = CREATE_OBJECT_NO_OFFSET(P_AMB_PHONE_01, GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(pedWorker[1],<<0.0,0.0,10.0>>))
ATTACH_ENTITY_TO_ENTITY(ObjPhone, pedWorker[1], GET_PED_BONE_INDEX(pedWorker[1], BONETAG_PH_R_HAND), <<0,0,0>>, <<0,0,0>>, TRUE, TRUE)
SET_PED_COMBAT_ATTRIBUTES(pedWorker[1],CA_ALWAYS_FLEE,TRUE)
SET_MODEL_AS_NO_LONGER_NEEDED(S_M_Y_CONSTRUCT_01)
SET_MODEL_AS_NO_LONGER_NEEDED(P_AMB_PHONE_01)
ENDIF
*/
ENDIF
ENDPROC
/// PURPOSE: Is the player abandoning the mission by driving off
PROC IsPlayerAbandoning()
IF i = 0
IF IS_PED_UNINJURED(pedImmigrant[i])
IF GET_DISTANCE_BETWEEN_PEDS(PLAYER_PED_ID(),pedImmigrant[i]) > 240.0
IF bPrint18 = FALSE
IF GET_GAME_TIMER() > iTimerChase1Started + 12000
//PRINT_NOW("MIN2_18",7000,0) //The immigrant is getting away
//iGameTimer = GET_GAME_TIMER()
bPrint18 = TRUE
ENDIF
ELSE
//iGameTimerUpdate = GET_GAME_TIMER()
//IF iGameTimerUpdate > (iGameTimer + 10000)
IF fDistBetweenJosefAndImmigrant > 300.0//260.0
sFailReason = "MIN2_43"
missionStage = MS_MISSION_FAILING
ENDIF
//ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDPROC
/// PURPOSE: Manage the entities at the cement factory
PROC UpdateAmbientCementFactory()
IF IS_PED_UNINJURED(pedWorker[0])
IF GET_DISTANCE_BETWEEN_PEDS(pedWorker[0],PLAYER_PED_ID()) < 15.0
TASK_LOOK_AT_ENTITY(pedWorker[0],PLAYER_PED_ID(),-1)
ENDIF
ENDIF
IF iSeqCementFactory = 0
IF IS_PED_UNINJURED(pedWorker[0])
OPEN_SEQUENCE_TASK(seqPointAtImmigrants)
TASK_PLAY_ANIM(NULL,"rcmminute2lean","exit",1,NORMAL_BLEND_OUT,-1)
TASK_PLAY_ANIM(NULL,"rcmminute2","intro_90_r",NORMAL_BLEND_IN,NORMAL_BLEND_OUT,-1)
TASK_PLAY_ANIM(NULL,"rcmminute2","loop_90_r",NORMAL_BLEND_IN,NORMAL_BLEND_OUT,-1)
TASK_PLAY_ANIM(NULL,"rcmminute2","outro_90_r",NORMAL_BLEND_IN,NORMAL_BLEND_OUT,-1)
CLOSE_SEQUENCE_TASK(seqPointAtImmigrants)
CLEAR_PED_TASKS(pedWorker[0])
TASK_PERFORM_SEQUENCE(pedWorker[0],seqPointAtImmigrants)
ENDIF
IF IS_SCREEN_FADED_IN()
IF CREATE_CONVERSATION(s_conversation_peds, "MIN2AU","MIN2_CEM",CONV_PRIORITY_MEDIUM) //Border Patrol! Come out to play!
REPLAY_RECORD_BACK_FOR_TIME(2.0, 4.0, REPLAY_IMPORTANCE_LOWEST)
iSeqCementFactory = 1
ENDIF
ELSE
iSeqCementFactory = 1
ENDIF
ENDIF
IF GET_GAME_TIMER() > iArrivedAtCementFactory + 100
IF iSeqCementFactory = 1
IF IS_PED_UNINJURED(pedImmigrant[i])
TASK_LOOK_AT_ENTITY(pedImmigrant[i],PLAYER_PED_ID(),-1)
ENDIF
iSeqCementFactory = 2
ENDIF
ENDIF
IF GET_GAME_TIMER() > iArrivedAtCementFactory + 200
IF iSeqCementFactory = 2
IF IS_PED_UNINJURED(pedImmigrant[i])
IF IS_VEHICLE_OK(vehChaseCar[i])
IF NOT IS_PLAYBACK_GOING_ON_FOR_VEHICLE(vehChaseCar[i])
START_PLAYBACK_RECORDED_VEHICLE(vehChaseCar[i],101,"Min2DB1")
SKIP_TIME_IN_PLAYBACK_RECORDED_VEHICLE(vehChaseCar[i],1000.0)
IF GET_ENTITY_SPEED(PLAYER_PED_ID()) < 6.0
fPlaybackSpeed = 0.82
ENDIF
IF GET_ENTITY_SPEED(PLAYER_PED_ID()) >= 6.0
AND GET_ENTITY_SPEED(PLAYER_PED_ID()) < 8.0
fPlaybackSpeed = 0.91
ENDIF
IF GET_ENTITY_SPEED(PLAYER_PED_ID()) >= 8.0
AND GET_ENTITY_SPEED(PLAYER_PED_ID()) < 10.0
fPlaybackSpeed = 1
ENDIF
IF GET_ENTITY_SPEED(PLAYER_PED_ID()) >= 10.0
AND GET_ENTITY_SPEED(PLAYER_PED_ID()) < 12.0
fPlaybackSpeed = 1.2
ENDIF
IF GET_ENTITY_SPEED(PLAYER_PED_ID()) >= 12.0
AND GET_ENTITY_SPEED(PLAYER_PED_ID()) < 14.0
fPlaybackSpeed = 1.3
ENDIF
IF GET_ENTITY_SPEED(PLAYER_PED_ID()) >= 14.0
AND GET_ENTITY_SPEED(PLAYER_PED_ID()) < 16.0
fPlaybackSpeed = 1.35
ENDIF
IF GET_ENTITY_SPEED(PLAYER_PED_ID()) >= 16.0
AND GET_ENTITY_SPEED(PLAYER_PED_ID()) < 18.0
fPlaybackSpeed = 1.4
ENDIF
IF GET_ENTITY_SPEED(PLAYER_PED_ID()) >= 18.0
fPlaybackSpeed = 1.5
ENDIF
SET_PLAYBACK_SPEED(vehChaseCar[i],fPlaybackSpeed)
ENDIF
ENDIF
IF IS_VEHICLE_OK(vehChaseCarChase2)
IF NOT IS_PLAYBACK_GOING_ON_FOR_VEHICLE(vehChaseCarChase2)
START_PLAYBACK_RECORDED_VEHICLE(vehChaseCarChase2,102,"Min2DB2")
SKIP_TIME_IN_PLAYBACK_RECORDED_VEHICLE(vehChaseCarChase2,1100.0) //1400
SET_PLAYBACK_SPEED(vehChaseCarChase2,fPlaybackSpeed)
ENDIF
ENDIF
ENDIF
iSeqCementFactory = 5
ENDIF
ENDIF
//IF IS_VEHICLE_OK(vehChaseCarChase2)
//AND IS_PLAYBACK_GOING_ON_FOR_VEHICLE(vehChaseCarChase2)
//AND GET_TIME_POSITION_IN_RECORDING(vehChaseCarChase2) > 800
IF GET_GAME_TIMER() > iArrivedAtCementFactory + 3400
IF iSeqCementFactory = 5
IF IS_PED_UNINJURED(pedImmigrantChase2)
IF GET_SCRIPT_TASK_STATUS(pedImmigrantChase2,SCRIPT_TASK_PERFORM_SEQUENCE) <> PERFORMING_TASK
TASK_PERFORM_SEQUENCE(pedImmigrantChase2,seqChase2RouteSECONDPED)
ENDIF
ENDIF
IF IS_PED_UNINJURED(pedImmigrant[i])
IF GET_SCRIPT_TASK_STATUS(pedImmigrant[i],SCRIPT_TASK_PERFORM_SEQUENCE) <> PERFORMING_TASK
TASK_PERFORM_SEQUENCE(pedImmigrant[i],seqChase2Route)
ENDIF
ENDIF
iSeqCementFactory = 6
ENDIF
ENDIF
IF IS_PED_UNINJURED(pedImmigrant[i])
IF IS_PED_UNINJURED(pedImmigrantChase2)
IF iSeqCementFactory = 10
iArrivedAtCementFactory = iArrivedAtCementFactory - 10000
iSeqCementFactory = 11
ENDIF
ENDIF
ENDIF
ENDPROC
/// PURPOSE: Spawn the immigrants
PROC SpawnImmigrant()
IF IS_VEHICLE_OK(vehChaseCar[i])
IF NOT DOES_ENTITY_EXIST(pedImmigrant[i])
IF i = 0
CREATE_NPC_PED_INSIDE_VEHICLE(pedImmigrant[i],CHAR_MANUEL,vehChaseCar[i])
//CREATE_NPC_PED_ON_FOOT(pedImmigrant[i],CHAR_MANUEL,<<162.2808, 4411.3193, 74.7961>>, 68.1696) //old version where he out of the car at the bank at the bottom of the road
SET_DRIVER_ABILITY(pedImmigrant[i],1)
SET_DRIVER_RACING_MODIFIER(pedImmigrant[i],1)
TASK_LOOK_AT_ENTITY(pedImmigrant[i],PLAYER_PED_ID(),-1)
//SET_PED_DIES_WHEN_INJURED(pedImmigrant[i],FALSE)
ENDIF
IF i = 1
pedImmigrant[i] = CREATE_PED_INSIDE_VEHICLE(vehChaseCar[i],PEDTYPE_MISSION,S_M_M_Migrant_01)
SET_PED_COMPONENT_VARIATION(pedImmigrant[i],PED_COMP_HEAD,0,1)
SET_PED_COMPONENT_VARIATION(pedImmigrant[i],PED_COMP_TORSO,1,0)
SET_PED_COMPONENT_VARIATION(pedImmigrant[i],PED_COMP_LEG,0,0)
SET_PED_COMPONENT_VARIATION(pedImmigrant[i],PED_COMP_FEET,1,0)
SET_PED_COMPONENT_VARIATION(pedImmigrant[i],PED_COMP_SPECIAL,1,0)
//SET_PED_DIES_WHEN_INJURED(pedImmigrant[i],FALSE)
IF IS_VEHICLE_OK(vehChaseCarChase2)
pedImmigrantChase2 = CREATE_PED_INSIDE_VEHICLE(vehChaseCarChase2,PEDTYPE_MISSION,S_M_M_Migrant_01)
SET_PED_COMPONENT_VARIATION(pedImmigrantChase2,PED_COMP_HEAD,1,0)
SET_PED_COMPONENT_VARIATION(pedImmigrantChase2,PED_COMP_TORSO,1,1)
SET_PED_COMPONENT_VARIATION(pedImmigrantChase2,PED_COMP_LEG,0,0)
SET_PED_COMPONENT_VARIATION(pedImmigrantChase2,PED_COMP_FEET,1,0)
SET_PED_COMPONENT_VARIATION(pedImmigrantChase2,PED_COMP_SPECIAL,1,0)
SET_ENTITY_IS_TARGET_PRIORITY(pedImmigrantChase2,TRUE)
SET_PED_CONFIG_FLAG(pedImmigrantChase2, PCF_DisableGoToWritheWhenInjured, TRUE)
SET_PED_CONFIG_FLAG(pedImmigrantChase2, PCF_WillFlyThroughWindscreen, FALSE)
SET_PED_CONFIG_FLAG(pedImmigrantChase2, PCF_GetOutUndriveableVehicle, FALSE)
SET_PED_CONFIG_FLAG(pedImmigrantChase2, PCF_GetOutBurningVehicle, FALSE)
//SET_PED_CONFIG_FLAG(pedImmigrantChase2, PCF_WaitForDirectEntryPointToBeFreeWhenExiting, TRUE)
SET_PED_CONFIG_FLAG(pedImmigrantChase2, PCF_ForceDirectEntry, TRUE)
//SET_PED_LEG_IK_MODE(pedImmigrantChase2, LEG_IK_FULL)
SET_PED_MAX_TIME_IN_WATER(pedImmigrantChase2,2)
IF IS_PED_ON_ANY_BIKE(pedImmigrantChase2)
SET_PED_CAN_BE_KNOCKED_OFF_VEHICLE(pedImmigrantChase2,KNOCKOFFVEHICLE_DEFAULT)
ENDIF
SET_PED_DIES_WHEN_INJURED(pedImmigrantChase2,FALSE)
TASK_SET_DECISION_MAKER(pedImmigrantChase2,DECISION_MAKER_EMPTY)
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedImmigrantChase2,TRUE)
SET_ENTITY_HEALTH(pedImmigrantChase2,300)
SET_PED_KEEP_TASK(pedImmigrantChase2,TRUE)
SET_PED_CONFIG_FLAG(pedImmigrantChase2, PCF_RunFromFiresAndExplosions, FALSE)
SET_PED_CONFIG_FLAG(pedImmigrantChase2, PCF_DisableExplosionReactions, TRUE)
IF IS_PED_ON_ANY_BIKE(pedImmigrant[i])
SET_PED_CAN_BE_KNOCKED_OFF_VEHICLE(pedImmigrant[i],KNOCKOFFVEHICLE_DEFAULT)
ENDIF
ENDIF
SET_MODEL_AS_NO_LONGER_NEEDED(S_M_M_Migrant_01)
ENDIF
SET_ENTITY_IS_TARGET_PRIORITY(pedImmigrant[i],TRUE)
SET_PED_COMBAT_ATTRIBUTES(pedImmigrant[i],CA_CAN_TAUNT_IN_VEHICLE,TRUE)
SET_PED_CONFIG_FLAG(pedImmigrant[i], PCF_DisableGoToWritheWhenInjured, TRUE)
SET_PED_CONFIG_FLAG(pedImmigrant[i], PCF_WillFlyThroughWindscreen, FALSE)
SET_PED_CONFIG_FLAG(pedImmigrant[i], PCF_GetOutUndriveableVehicle, FALSE)
SET_PED_CONFIG_FLAG(pedImmigrant[i], PCF_GetOutBurningVehicle, FALSE)
//SET_PED_CONFIG_FLAG(pedImmigrant[i], PCF_WaitForDirectEntryPointToBeFreeWhenExiting, TRUE)
SET_PED_CONFIG_FLAG(pedImmigrant[i], PCF_ForceDirectEntry, TRUE)
//SET_PED_LEG_IK_MODE(pedImmigrant[i], LEG_IK_FULL)
SET_PED_MAX_TIME_IN_WATER(pedImmigrant[i],2)
TASK_SET_DECISION_MAKER(pedImmigrant[i],DECISION_MAKER_EMPTY)
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedImmigrant[i],TRUE)
SET_ENTITY_HEALTH(pedImmigrant[i],300)
SET_PED_KEEP_TASK(pedImmigrant[i],TRUE)
SET_PED_CONFIG_FLAG(pedImmigrant[i], PCF_RunFromFiresAndExplosions, FALSE)
SET_PED_CONFIG_FLAG(pedImmigrant[i], PCF_DisableExplosionReactions, TRUE)
ENDIF
ENDIF
IF IS_PED_UNINJURED(pedImmigrant[i])
IF i = 0
IF GET_DISTANCE_BETWEEN_PEDS(pedImmigrant[i],PLAYER_PED_ID()) < 500 //125.0
bOkToStartChase = TRUE
ENDIF
ELSE
IF IS_ENTITY_IN_ANGLED_AREA( PLAYER_PED_ID(), <<313.491394,2974.186523,17.270653>>, <<354.219116,2772.717285,84.748848>>, 122.250000) //Cheat
OR IS_PLAYER_SHOOTING_NEAR_PED(pedImmigrant[i])
OR IS_PLAYER_SHOOTING_NEAR_PED(pedImmigrantChase2)
bOkToStartChase = TRUE
iSeqCementFactory = 10
ENDIF
IF IS_ENTITY_IN_ANGLED_AREA( PLAYER_PED_ID(), <<268.072601,2861.259766,37.143517>>, <<274.734955,2847.247070,66.008347>>, 15.750000) //Entrance
OR IS_ENTITY_IN_ANGLED_AREA( PLAYER_PED_ID(), <<281.031952,2884.983643,37.307434>>, <<304.812927,2837.810059,73.936058>>, 57.500000) //Whole place
bOkToStartChase = TRUE
ENDIF
ENDIF
ENDIF
ENDPROC
/// PURPOSE: Setup the chase route sequences for the immigrants
PROC SetupSequences()
IF bSeqSetup = FALSE
OPEN_SEQUENCE_TASK(seqChase2Route)
IF IS_VEHICLE_OK(vehChaseCar[i])
TASK_VEHICLE_FOLLOW_WAYPOINT_RECORDING(NULL,vehChaseCar[i],"Min2_Bike02",DRIVINGMODE_AVOIDCARS_RECKLESS,28) //10
TASK_VEHICLE_DRIVE_TO_COORD(NULL,vehChaseCar[i],vChase[44],24.0,DRIVINGSTYLE_NORMAL,SANCHEZ,DRIVINGMODE_AVOIDCARS_RECKLESS,20.0,5.0)
TASK_VEHICLE_DRIVE_TO_COORD(NULL,vehChaseCar[i],vChase[45],24.0,DRIVINGSTYLE_NORMAL,SANCHEZ,DRIVINGMODE_AVOIDCARS_RECKLESS,20.0,5.0)
TASK_VEHICLE_DRIVE_TO_COORD(NULL,vehChaseCar[i],vChase[46],24.0,DRIVINGSTYLE_NORMAL,SANCHEZ,DRIVINGMODE_AVOIDCARS_RECKLESS,20.0,5.0)
TASK_VEHICLE_DRIVE_WANDER(NULL,vehChaseCar[i],24.0,DRIVINGMODE_AVOIDCARS_RECKLESS)
ENDIF
CLOSE_SEQUENCE_TASK(seqChase2Route)
OPEN_SEQUENCE_TASK(seqChase2RouteSECONDPED)
TASK_LOOK_AT_ENTITY(NULL,PLAYER_PED_ID(),-1)
IF IS_VEHICLE_OK(vehChaseCarChase2)
IF IS_VEHICLE_OK(vehChaseCar[i])
TASK_VEHICLE_ESCORT(NULL,vehChaseCarChase2,vehChaseCar[i],VEHICLE_ESCORT_REAR,40.0,DRIVINGMODE_PLOUGHTHROUGH,fEscortDistance)
/*
TASK_VEHICLE_FOLLOW_WAYPOINT_RECORDING(NULL,vehChaseCarChase2,"Min2_Bike02",DRIVINGMODE_AVOIDCARS_RECKLESS,24) //12
TASK_VEHICLE_DRIVE_TO_COORD(NULL,vehChaseCarChase2,vChase[44],24.0,DRIVINGSTYLE_NORMAL,SANCHEZ,DRIVINGMODE_AVOIDCARS_RECKLESS,20.0,5.0)
TASK_VEHICLE_DRIVE_TO_COORD(NULL,vehChaseCarChase2,vChase[45],24.0,DRIVINGSTYLE_NORMAL,SANCHEZ,DRIVINGMODE_AVOIDCARS_RECKLESS,20.0,5.0)
TASK_VEHICLE_DRIVE_TO_COORD(NULL,vehChaseCarChase2,vChase[46],24.0,DRIVINGSTYLE_NORMAL,SANCHEZ,DRIVINGMODE_AVOIDCARS_RECKLESS,20.0,5.0)
TASK_VEHICLE_DRIVE_WANDER(NULL,vehChaseCarChase2,24.0,DRIVINGMODE_AVOIDCARS_RECKLESS)
*/
ENDIF
ENDIF
CLOSE_SEQUENCE_TASK(seqChase2RouteSECONDPED)
bSeqSetup = TRUE
ENDIF
ENDPROC
/// PURPOSE: Start chases
PROC StartVehiclePlayback()
IF i = 0
IF IS_VEHICLE_OK(vehChaseCar[i])
IF IS_PED_UNINJURED(pedImmigrant[i])
OPEN_SEQUENCE_TASK(seqChase1)
TASK_LOOK_AT_ENTITY(NULL,PLAYER_PED_ID(),-1,SLF_WHILE_NOT_IN_FOV)
TASK_VEHICLE_DRIVE_TO_COORD(NULL,vehChaseCar[i],<<161.1383, 4417.4663, 74.7775>>,10.0,DRIVINGSTYLE_NORMAL,BLAZER,DRIVINGMODE_AVOIDCARS_RECKLESS,30.0,2.0)
TASK_VEHICLE_DRIVE_TO_COORD(NULL,vehChaseCar[i],<<17.4915, 4453.2012, 58.9788>>,20.0,DRIVINGSTYLE_NORMAL,BLAZER,DRIVINGMODE_AVOIDCARS_RECKLESS,20.0,2.0)
TASK_VEHICLE_DRIVE_TO_COORD(NULL,vehChaseCar[i],<<-91.1074, 4301.0918, 45.4100>>,25.0,DRIVINGSTYLE_NORMAL,BLAZER,DRIVINGMODE_AVOIDCARS_RECKLESS,20.0,2.0)
TASK_VEHICLE_DRIVE_TO_COORD(NULL,vehChaseCar[i],<<-223.0806, 4012.2888, 36.0401>>,25.0,DRIVINGSTYLE_NORMAL,BLAZER,DRIVINGMODE_AVOIDCARS_RECKLESS,20.0,2.0)
TASK_VEHICLE_DRIVE_TO_COORD(NULL,vehChaseCar[i],<<-194.4012, 3733.1128, 42.2381>>,25.0,DRIVINGSTYLE_NORMAL,BLAZER,DRIVINGMODE_AVOIDCARS_RECKLESS,20.0,2.0)
TASK_VEHICLE_DRIVE_TO_COORD(NULL,vehChaseCar[i],<<89.5701, 3582.7971, 38.7910>>,25.0,DRIVINGSTYLE_NORMAL,BLAZER,DRIVINGMODE_AVOIDCARS_RECKLESS,20.0,2.0)
TASK_VEHICLE_DRIVE_TO_COORD(NULL,vehChaseCar[i],<< 326.0252, 3438.8760, 35.3116 >>,25.0,DRIVINGSTYLE_NORMAL,BLAZER,DRIVINGMODE_AVOIDCARS_RECKLESS,25.0,2.0)
TASK_VEHICLE_DRIVE_WANDER(NULL,vehChaseCar[i],22.0,DRIVINGMODE_AVOIDCARS_RECKLESS)
CLOSE_SEQUENCE_TASK(seqChase1)
TASK_PERFORM_SEQUENCE(pedImmigrant[i],seqChase1)
ENDIF
ENDIF
ENDIF
IF i = 1
IF IS_PED_UNINJURED(pedImmigrant[i])
IF bFirstImmigrantFleeing = FALSE
IF IS_VEHICLE_OK(vehChaseCar[i])
IF NOT IS_PLAYBACK_GOING_ON_FOR_VEHICLE(vehChaseCar[i])
START_PLAYBACK_RECORDED_VEHICLE(vehChaseCar[i],101,"Min2DB1")
ADD_ENTITY_TO_AUDIO_MIX_GROUP(vehChaseCar[i],"MINUTE_02_SCENE_SCRAMBLER_BIKE")
ENDIF
ENDIF
ENDIF
ENDIF
IF IS_PED_UNINJURED(pedImmigrantChase2)
IF bImmigrantChase2Fleeing = FALSE
IF IS_VEHICLE_OK(vehChaseCarChase2)
IF NOT IS_PLAYBACK_GOING_ON_FOR_VEHICLE(vehChaseCarChase2)
START_PLAYBACK_RECORDED_VEHICLE(vehChaseCarChase2,102,"Min2DB2")
ADD_ENTITY_TO_AUDIO_MIX_GROUP(vehChaseCarChase2,"MINUTE_02_SCENE_SCRAMBLER_BIKE")
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
iChaseStartedTimer = GET_GAME_TIMER()
bChaseStarted = TRUE
ENDPROC
/// PURPOSE: To fix B*1778492 - clamps the top speed of the lead bike in chase 2. Can no longer call TASK_VEHICLE_FOLLOW_WAYPOINT_RECORDING every frame.
PROC SET_LEAD_BIKE_TOP_SPEED(FLOAT fTopSpeed)
IF fTopSpeed = -1
VEHICLE_WAYPOINT_PLAYBACK_USE_DEFAULT_SPEED(vehChaseCar[i])
ELSE
IF GET_ENTITY_SPEED(vehChaseCar[i]) > fTopSpeed
VEHICLE_WAYPOINT_PLAYBACK_OVERRIDE_SPEED(vehChaseCar[i],fTopSpeed)
ELSE
VEHICLE_WAYPOINT_PLAYBACK_USE_DEFAULT_SPEED(vehChaseCar[i])
ENDIF
ENDIF
ENDPROC
/// PURPOSE: Manage rubberbanding etc for chases
PROC UpdateVehiclePlayback()
FLOAT fTopSpeed
IF i = 0
IF bBlokestunned = FALSE
//IF bImmigrantHandsUp = FALSE
//IF IS_VEHICLE_OK(vehChaseCar[i])
IF IS_PED_UNINJURED(pedImmigrant[i])
//IF IS_PED_IN_VEHICLE(pedImmigrant[i],vehChaseCar[i])
//CONTROL_VEHICLE_CHASE_HINT_CAM_ANY_MEANS(localChaseHintCamStruct, vehChaseCar[i])
CONTROL_PED_CHASE_HINT_CAM_IN_VEHICLE(localChaseHintCamStruct, pedImmigrant[i])
//ELSE
//KILL_CHASE_HINT_CAM(localChaseHintCamStruct)
//ENDIF
ENDIF
//ENDIF
ELSE
KILL_CHASE_HINT_CAM(localChaseHintCamStruct)
ENDIF
ELIF i = 1
IF iSeqHintCam = 0
IF bSecondBlokestunned = FALSE
IF IS_PED_UNINJURED(pedImmigrantChase2)
CONTROL_PED_CHASE_HINT_CAM_IN_VEHICLE(localChaseHintCamStruct, pedImmigrantChase2)
ENDIF
ELSE
KILL_CHASE_HINT_CAM(localChaseHintCamStruct)
iTimerHintCamSwitch = GET_GAME_TIMER()
iSeqHintCam = 1
ENDIF
ELIF iSeqHintCam = 1
IF GET_GAME_TIMER() > iTimerHintCamSwitch + 5
IF bBlokestunned = FALSE
IF IS_PED_UNINJURED(pedImmigrant[i])
CONTROL_PED_CHASE_HINT_CAM_IN_VEHICLE(localChaseHintCamStruct, pedImmigrant[i])
ENDIF
ELSE
KILL_CHASE_HINT_CAM(localChaseHintCamStruct)
iSeqHintCam = 2
ENDIF
ENDIF
ENDIF
/*
IF bBlokestunned = TRUE
AND bSecondBlokestunned = TRUE
KILL_CHASE_HINT_CAM(localChaseHintCamStruct)
ENDIF
*/
ELSE
IF iSeqHintCam < 3
KILL_CHASE_HINT_CAM(localChaseHintCamStruct)
iSeqHintCam = 3
ENDIF
ENDIF
/*
IF bBlokestunned = FALSE
IF IS_VEHICLE_OK(vehChaseCar[i])
IF IS_PED_UNINJURED(pedImmigrant[i])
IF IS_PED_IN_VEHICLE(pedImmigrant[i],vehChaseCar[i])
//CONTROL_VEHICLE_CHASE_HINT_CAM_ANY_MEANS(localChaseHintCamStruct, vehChaseCar[i])
CONTROL_PED_CHASE_HINT_CAM_IN_VEHICLE(localChaseHintCamStruct, pedImmigrant[i])
ELSE
//KILL_CHASE_HINT_CAM(localChaseHintCamStruct)
ENDIF
ENDIF
ENDIF
ELSE
IF bSECONDBlokestunned = FALSE
IF IS_VEHICLE_OK(vehChaseCarChase2)
IF IS_PED_UNINJURED(pedImmigrantChase2)
IF IS_PED_IN_VEHICLE(pedImmigrantChase2,vehChaseCarChase2)
//CONTROL_VEHICLE_CHASE_HINT_CAM_ANY_MEANS(localChaseHintCamStruct, vehChaseCarChase2)
CONTROL_PED_CHASE_HINT_CAM_IN_VEHICLE(localChaseHintCamStruct, pedImmigrantChase2)
ELSE
//KILL_CHASE_HINT_CAM(localChaseHintCamStruct)
ENDIF
ENDIF
ENDIF
ELSE
//KILL_CHASE_HINT_CAM(localChaseHintCamStruct)
ENDIF
ENDIF
ENDIF
*/
IF i = 0
IF bChaseStarted = TRUE //Chase 1
IF IS_PED_UNINJURED(pedImmigrant[i])
IF IS_VEHICLE_OK(vehChaseCar[i])
IF IS_PED_IN_VEHICLE(pedImmigrant[i],vehChaseCar[i])
IF DOES_BLIP_EXIST(blipImmigrant[i])
SET_BLIP_SCALE(blipImmigrant[i],BLIP_SIZE_VEHICLE)
ENDIF
/*
IF IS_PED_FACING_PED(pedImmigrant[i],PLAYER_PED_ID(),90)
//AND IS_ENTITY_IN_RANGE_ENTITY(pedImmigrant[i],PLAYER_PED_ID(),50)
IF GET_SCRIPT_TASK_STATUS(pedImmigrant[i],SCRIPT_TASK_VEHICLE_MISSION) <> PERFORMING_TASK
TASK_VEHICLE_MISSION_PED_TARGET(pedImmigrant[i],vehChaseCar[i],PLAYER_PED_ID(),MISSION_FLEE,35.0,DRIVINGMODE_AVOIDCARS,100.0,30.0) //100.0,30.0
ENDIF
ENDIF
*/
IF GET_GAME_TIMER() > iTimerChase1Started + 15000
IF GET_DISTANCE_BETWEEN_ENTITIES(pedImmigrant[i],PLAYER_PED_ID()) > 100
SET_DRIVE_TASK_CRUISE_SPEED(pedImmigrant[i],20)
ELSE
SET_DRIVE_TASK_CRUISE_SPEED(pedImmigrant[i],25)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF i = 1
IF bChaseStarted = TRUE
IF IS_PED_UNINJURED(pedImmigrant[i])
IF IS_VEHICLE_OK(vehChaseCar[i])
IF IS_PED_IN_VEHICLE(pedImmigrant[i],vehChaseCar[i])
//IF NOT IS_PLAYBACK_GOING_ON_FOR_VEHICLE(vehChaseCar[i])
//IF IS_ENTITY_IN_ANGLED_AREA(pedImmigrant[i], <<1183.165283,3536.686035,44.112286>>, <<1149.735107,3536.621582,28.927197>>, 25.250000)
//IF IS_ENTITY_IN_ANGLED_AREA(pedImmigrant[i], <<1927.303345,3249.611084,36.220833>>, <<1893.591064,3237.221436,50.346451>>, 18.500000)
//IF IS_ENTITY_IN_ANGLED_AREA(pedImmigrant[i], <<1300.488525,1099.818481,101.656265>>, <<1307.387573,1002.332336,113.962875>>, 21.250000)
IF bWander = TRUE
IF GET_SCRIPT_TASK_STATUS(pedImmigrant[i],SCRIPT_TASK_VEHICLE_DRIVE_WANDER) <> PERFORMING_TASK
TASK_VEHICLE_DRIVE_WANDER(pedImmigrant[i],vehChaseCar[i],24.0,DRIVINGMODE_AVOIDCARS_RECKLESS)
ENDIF
ELSE
//IF IS_ENTITY_IN_ANGLED_AREA(pedImmigrant[i], <<394.674927,2869.969971,31.988247>>, <<375.853394,2863.012939,47.178463>>, 18.500000)
//IF IS_ENTITY_IN_ANGLED_AREA(pedImmigrant[i], <<394.727386,2879.424072,36.769821>>, <<407.209137,2861.601318,46.693233>>, 24.750000)
//IF IS_ENTITY_IN_ANGLED_AREA(pedImmigrant[i], <<350.947235,2857.252686,39.281879>>, <<379.071808,2857.875977,50.558121>>, 21.250000)
IF bBikeLeftFactory = TRUE
IF IS_VEHICLE_OK(vehChaseCarChase2)
AND IS_ENTITY_IN_RANGE_ENTITY(pedImmigrantChase2,pedImmigrant[i],20)
fTopSpeed = -1
ELSE
fTopSpeed = 22
ENDIF
IF NOT bSwitchWaypointFlags
IF GET_VEHICLE_WAYPOINT_PROGRESS(vehChaseCar[i]) > 30
TASK_VEHICLE_FOLLOW_WAYPOINT_RECORDING(pedImmigrant[i],vehChaseCar[i],"Min2_Bike02",DRIVINGMODE_AVOIDCARS_RECKLESS,32,EWAYPOINT_START_FROM_CLOSEST_POINT,-1,fTopSpeed)
bSwitchWaypointFlags = TRUE
ENDIF
ELSE
IF NOT IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_VEHICLE(vehChaseCar[i])
TASK_VEHICLE_FOLLOW_WAYPOINT_RECORDING(pedImmigrant[i],vehChaseCar[i],"Min2_Bike02",DRIVINGMODE_AVOIDCARS_RECKLESS,32,EWAYPOINT_START_FROM_CLOSEST_POINT,-1,fTopSpeed)
ELSE
SET_LEAD_BIKE_TOP_SPEED(fTopSpeed)
ENDIF
ENDIF
/*
IF GET_SCRIPT_TASK_STATUS(pedImmigrant[i],SCRIPT_TASK_PERFORM_SEQUENCE) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(pedImmigrant[i],SCRIPT_TASK_VEHICLE_DRIVE_WANDER) <> PERFORMING_TASK
TASK_PERFORM_SEQUENCE(pedImmigrant[i],seqChase2Route)
ENDIF
*/
ENDIF
ENDIF
//ENDIF
IF bFirstImmigrantOnBike = FALSE
SET_PED_CAN_RAGDOLL(pedImmigrant[i],TRUE)
IF DOES_BLIP_EXIST(blipImmigrant[i])
SET_BLIP_SCALE(blipImmigrant[i],BLIP_SIZE_VEHICLE)
ENDIF
bFirstImmigrantOnBike = TRUE
ENDIF
ENDIF
ENDIF
ENDIF
IF IS_PED_UNINJURED(pedImmigrantChase2)
IF IS_VEHICLE_OK(vehChaseCarChase2)
IF IS_PED_IN_VEHICLE(pedImmigrantChase2,vehChaseCarChase2)
//IF NOT IS_PLAYBACK_GOING_ON_FOR_VEHICLE(vehChaseCarChase2)
//IF IS_ENTITY_IN_ANGLED_AREA(pedImmigrantChase2, <<1183.165283,3536.686035,44.112286>>, <<1149.735107,3536.621582,28.927197>>, 25.250000)
//IF IS_ENTITY_IN_ANGLED_AREA(pedImmigrantChase2, <<1927.303345,3249.611084,36.220833>>, <<1893.591064,3237.221436,50.346451>>, 18.500000)
IF bWander = TRUE
IF NOT IS_PED_IN_VEHICLE(pedImmigrant[i],vehChaseCar[i])
OR NOT IS_ENTITY_IN_RANGE_ENTITY(pedImmigrantChase2,pedImmigrant[i],29)
IF GET_SCRIPT_TASK_STATUS(pedImmigrantChase2,SCRIPT_TASK_VEHICLE_DRIVE_WANDER) <> PERFORMING_TASK
TASK_VEHICLE_DRIVE_WANDER(pedImmigrantChase2,vehChaseCarChase2,24.0,DRIVINGMODE_AVOIDCARS_RECKLESS)
bBikeEscorting = FALSE
ENDIF
ENDIF
ELSE
//IF IS_ENTITY_IN_ANGLED_AREA(pedImmigrantChase2, <<394.674927,2869.969971,31.988247>>, <<375.853394,2863.012939,47.178463>>, 18.500000)
IF bBikeLeftFactory = FALSE
IF IS_ENTITY_IN_ANGLED_AREA(pedImmigrantChase2, <<350.947235,2857.252686,39.281879>>, <<379.071808,2857.875977,50.558121>>, 21.250000)
IF IS_PED_UNINJURED(pedImmigrant[i])
IF IS_VEHICLE_OK(vehChaseCar[i])
TASK_VEHICLE_FOLLOW_WAYPOINT_RECORDING(pedImmigrant[i],vehChaseCar[i],"Min2_Bike02",DRIVINGMODE_PLOUGHTHROUGH,28,EWAYPOINT_DEFAULT,-1,-1) //10
//TASK_VEHICLE_ESCORT(pedImmigrantChase2,vehChaseCarChase2,vehChaseCar[i],VEHICLE_ESCORT_REAR,40.0,DRIVINGMODE_PLOUGHTHROUGH,8)
TASK_VEHICLE_FOLLOW_WAYPOINT_RECORDING(pedImmigrantChase2,vehChaseCarChase2,"Min2_Bike02",DRIVINGMODE_PLOUGHTHROUGH,27,EWAYPOINT_DEFAULT,-1,-1) //10
ENDIF
ENDIF
bBikeLeftFactory = TRUE
ENDIF
ENDIF
//IF bBikeLeftFactory = TRUE
IF IS_VEHICLE_OK(vehChaseCar[i])
AND IS_PED_UNINJURED(pedImmigrant[i])
AND IS_PED_IN_VEHICLE(pedImmigrant[i],vehChaseCar[i])
AND IS_ENTITY_IN_RANGE_ENTITY(pedImmigrantChase2,pedImmigrant[i],22) //20
AND GET_VEHICLE_WAYPOINT_PROGRESS(vehChaseCar[i]) > 29
IF bBikeEscorting = FALSE
//AND GET_SCRIPT_TASK_STATUS(pedImmigrantChase2,SCRIPT_TASK_VEHICLE_DRIVE_WANDER) <> PERFORMING_TASK
TASK_VEHICLE_ESCORT(pedImmigrantChase2,vehChaseCarChase2,vehChaseCar[i],VEHICLE_ESCORT_REAR,40.0,DRIVINGMODE_PLOUGHTHROUGH,fEscortDistance) //10
bBikeEscorting = TRUE
ENDIF
ELSE
IF NOT IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_VEHICLE(vehChaseCarChase2)
//IF GET_VEHICLE_WAYPOINT_PROGRESS(vehChaseCar[i]) > 23
TASK_VEHICLE_FOLLOW_WAYPOINT_RECORDING(pedImmigrantChase2,vehChaseCarChase2,"Min2_Bike02",DRIVINGMODE_PLOUGHTHROUGH,0,EWAYPOINT_START_FROM_CLOSEST_POINT,-1,-1)
bBikeEscorting = FALSE
ENDIF
ENDIF
/*
IF GET_SCRIPT_TASK_STATUS(pedImmigrantChase2,SCRIPT_TASK_PERFORM_SEQUENCE) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(pedImmigrantChase2,SCRIPT_TASK_VEHICLE_DRIVE_WANDER) <> PERFORMING_TASK
TASK_PERFORM_SEQUENCE(pedImmigrantChase2,seqChase2RouteSECONDPED)
ENDIF
*/
//ENDIF
ENDIF
//ENDIF
IF bImmigrantChase2OnBike = FALSE
SET_PED_CAN_RAGDOLL(pedImmigrantChase2,TRUE)
IF DOES_BLIP_EXIST(blipImmigrantChase2)
SET_BLIP_SCALE(blipImmigrantChase2,BLIP_SIZE_VEHICLE)
ENDIF
bImmigrantChase2OnBike = TRUE
ENDIF
ENDIF
ENDIF
ENDIF
IF IS_ENTITY_IN_ANGLED_AREA(pedImmigrantChase2, <<1300.488525,1099.818481,101.656265>>, <<1307.387573,1002.332336,113.962875>>, 21.250000)
OR IS_ENTITY_IN_ANGLED_AREA(pedImmigrant[i], <<1300.488525,1099.818481,101.656265>>, <<1307.387573,1002.332336,113.962875>>, 21.250000)
bWander = TRUE
ENDIF
//IF IS_VEHICLE_OK(vehChaseCarChase2)
//IF IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_VEHICLE(vehChaseCarChase2)
//IF IS_VEHICLE_OK(vehChaseCar[i])
/*
IF IS_PED_UNINJURED(pedImmigrantChase2) //Chase 2
IF IS_PED_UNINJURED(pedImmigrant[i])
IF IS_VEHICLE_OK(vehChaseCar[i])
IF IS_VEHICLE_OK(vehChaseCarChase2)
IF IS_PED_IN_VEHICLE(pedImmigrant[i],vehChaseCar[i])
AND IS_PED_IN_VEHICLE(pedImmigrantChase2,vehChaseCarChase2)
fDistBetweenBikers = GET_DISTANCE_BETWEEN_ENTITIES(pedImmigrant[i],pedImmigrantChase2)
IF fDistBetweenBikers > 10.0
iNextCoordPed1 = 0
fDistBiker1ToNextCoord = GET_DISTANCE_BETWEEN_COORDS(GET_ENTITY_COORDS(pedImmigrant[i]),vChase[iNextCoordPed1])
fDistBiker2ToNextCoord = GET_DISTANCE_BETWEEN_COORDS(GET_ENTITY_COORDS(pedImmigrantChase2),vChase[iNextCoordPed1])
IF fDistBiker1ToNextCoord < fDistBiker2ToNextCoord
IF GET_DISTANCE_BETWEEN_ENTITIES(pedImmigrant[i],PLAYER_PED_ID()) < 90
SET_DRIVE_TASK_CRUISE_SPEED(pedImmigrant[i],29)
SET_DRIVE_TASK_CRUISE_SPEED(pedImmigrantChase2,24)
ELSE
SET_DRIVE_TASK_CRUISE_SPEED(pedImmigrant[i],19)
SET_DRIVE_TASK_CRUISE_SPEED(pedImmigrantChase2,14)
ENDIF
ELIF fDistBiker1ToNextCoord >= fDistBiker2ToNextCoord
IF GET_DISTANCE_BETWEEN_ENTITIES(pedImmigrantChase2,PLAYER_PED_ID()) < 90
SET_DRIVE_TASK_CRUISE_SPEED(pedImmigrantChase2,29)
SET_DRIVE_TASK_CRUISE_SPEED(pedImmigrant[i],24)
ELSE
SET_DRIVE_TASK_CRUISE_SPEED(pedImmigrantChase2,19)
SET_DRIVE_TASK_CRUISE_SPEED(pedImmigrant[i],14)
ENDIF
ENDIF
ENDIF
ELSE
IF IS_PED_IN_VEHICLE(pedImmigrant[i],vehChaseCar[i])
IF GET_DISTANCE_BETWEEN_ENTITIES(pedImmigrant[i],PLAYER_PED_ID()) > 90
SET_DRIVE_TASK_CRUISE_SPEED(pedImmigrant[i],17)
ELSE
SET_DRIVE_TASK_CRUISE_SPEED(pedImmigrant[i],24)
ENDIF
ENDIF
IF IS_PED_IN_VEHICLE(pedImmigrantChase2,vehChaseCarChase2)
IF GET_DISTANCE_BETWEEN_ENTITIES(pedImmigrantChase2,PLAYER_PED_ID()) > 100
SET_DRIVE_TASK_CRUISE_SPEED(pedImmigrantChase2,17)
ELSE
SET_DRIVE_TASK_CRUISE_SPEED(pedImmigrantChase2,24)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
*/
ENDIF
ENDIF
IF i = 0
IF bBlokestunned = FALSE
IF IS_PED_UNINJURED(pedImmigrant[i])
SET_ENTITY_LOAD_COLLISION_FLAG(pedImmigrant[i],TRUE)
ENDIF
ENDIF
ELIF i = 1
IF bBlokestunned = FALSE
IF IS_PED_UNINJURED(pedImmigrant[i])
SET_ENTITY_LOAD_COLLISION_FLAG(pedImmigrant[i],TRUE)
ENDIF
ENDIF
IF bSECONDBlokestunned = FALSE
IF IS_PED_UNINJURED(pedImmigrantChase2)
SET_ENTITY_LOAD_COLLISION_FLAG(pedImmigrantChase2,TRUE)
ENDIF
ENDIF
ENDIF
ENDPROC
/// PURPOSE: Knocks ped off their bike and makes them stagger off
PROC KnockPedOffBike()
REPLAY_RECORD_BACK_FOR_TIME(3.0, 0, REPLAY_IMPORTANCE_LOWEST) //Taking out the alleged illegals (each instance).
IF HAS_ENTITY_BEEN_DAMAGED_BY_WEAPON(pedImmigrant[i],WEAPONTYPE_STUNGUN)
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "+ 1 Ped got stunned off his bike")
#ENDIF
++iPedsStunnedOffBike
IF iPedsStunnedOffBike > 2
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "STATS >>>> Shock and Awe <<<< ")
#ENDIF
//IF NOT IS_REPLAY_IN_PROGRESS()
INFORM_STAT_SYSTEM_OF_BOOL_STAT_HAPPENED(MIN2_STUNNED_ALL)
//ENDIF
ENDIF
ENDIF
CLEAR_PED_TASKS(pedImmigrant[i])
vpedImmigrant[i] = GET_ENTITY_COORDS(pedImmigrant[i])
IF IS_PED_IN_ANY_VEHICLE(pedImmigrant[i])
SET_PED_CAN_BE_KNOCKED_OFF_VEHICLE(pedImmigrant[i],KNOCKOFFVEHICLE_EASY)
KNOCK_PED_OFF_VEHICLE(pedImmigrant[i])
ENDIF
IF DOES_BLIP_EXIST(blipImmigrant[i])
SET_BLIP_SCALE(blipImmigrant[i],BLIP_SIZE_PED)
ENDIF
SET_ENTITY_PROOFS(pedImmigrant[i],FALSE,FALSE,FALSE,TRUE,FALSE)
SET_PED_COMBAT_ATTRIBUTES(sRCLauncherDataLocal.pedID[ic_JOE],CA_USE_COVER,FALSE)
IF i = 0
SET_PED_COMBAT_ATTRIBUTES(sRCLauncherDataLocal.pedID[ic_JOSEF],CA_USE_COVER,FALSE)
ENDIF
SET_PED_MOVEMENT_CLIPSET(pedImmigrant[i],"MOVE_M@BAIL_BOND_NOT_TAZERED")
GET_NTH_CLOSEST_VEHICLE_NODE(GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(sRCLauncherDataLocal.pedID[ic_JOE],<<-20.0,0.0,0.0>>),129,vSafeCoord)
iGameTimerPed1KnockedOff = GET_GAME_TIMER()
IF IS_ENTITY_ALIVE(vehChaseCar[i])
IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(vehChaseCar[i])
STOP_PLAYBACK_RECORDED_VEHICLE(vehChaseCar[i])
ENDIF
ENDIF
IF i = 0
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 3, pedImmigrant[0], "MANUEL") //Bullseye! etc
IF iPedsStunnedOffBike <> 0
CREATE_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_SURR_7", CONV_PRIORITY_LOW)
ELSE
CREATE_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_RAM", CONV_PRIORITY_LOW)
ENDIF
//IF NOT IS_REPLAY_IN_PROGRESS()
INFORM_MISSION_STATS_SYSTEM_OF_TIME_WINDOW_CLOSED(FALSE,MIN2_FIRST_CAPTURE)
//ENDIF
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "STATS >>>> TIME WINDOW CLOSED (First chase) <<<< ")
#ENDIF
ENDIF
IF i = 1
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 4, pedImmigrantChase2, "IMMIGRANTMALE")
//PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_SURR", "MIN2_SURR_9", CONV_PRIORITY_LOW)
CREATE_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_SURR_9", CONV_PRIORITY_LOW)
IF bSECONDBlokestunned = FALSE
iTimerDontLetTheOtherEscape = GET_GAME_TIMER()
bDialogueDontletTheOtherEscape = TRUE
ENDIF
ENDIF
bBlokestunned = TRUE
ENDPROC
/// PURPOSE: Knocks ped off their bike and makes them stagger off
PROC KnockSECONDPedOffBike()
REPLAY_RECORD_BACK_FOR_TIME(3.0, 0, REPLAY_IMPORTANCE_LOWEST) //Taking out the alleged illegals (each instance).
IF HAS_ENTITY_BEEN_DAMAGED_BY_WEAPON(pedImmigrantChase2,WEAPONTYPE_STUNGUN)
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "+ 1 Ped got stunned off his bike")
#ENDIF
++iPedsStunnedOffBike
IF iPedsStunnedOffBike > 2
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "STATS >>>> Shock and Awe <<<< ")
#ENDIF
//IF NOT IS_REPLAY_IN_PROGRESS()
INFORM_STAT_SYSTEM_OF_BOOL_STAT_HAPPENED(MIN2_STUNNED_ALL)
//ENDIF
ENDIF
ENDIF
CLEAR_PED_TASKS(pedImmigrantChase2)
IF IS_PED_ON_ANY_BIKE(pedImmigrantChase2)
SET_PED_CAN_BE_KNOCKED_OFF_VEHICLE(pedImmigrantChase2,KNOCKOFFVEHICLE_EASY)
KNOCK_PED_OFF_VEHICLE(pedImmigrantChase2)
ENDIF
IF DOES_BLIP_EXIST(blipImmigrantChase2)
SET_BLIP_SCALE(blipImmigrantChase2,BLIP_SIZE_PED)
ENDIF
SET_ENTITY_PROOFS(pedImmigrantChase2,FALSE,FALSE,FALSE,TRUE,FALSE)
SET_PED_COMBAT_ATTRIBUTES(sRCLauncherDataLocal.pedID[ic_JOSEF],CA_USE_COVER,FALSE)
SET_PED_MOVEMENT_CLIPSET(pedImmigrantChase2,"MOVE_M@BAIL_BOND_NOT_TAZERED")
GET_NTH_CLOSEST_VEHICLE_NODE(GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(sRCLauncherDataLocal.pedID[ic_JOSEF],<<-20.0,0.0,0.0>>),97,vSafeCoord)
iGameTimerPed2KnockedOff = GET_GAME_TIMER()
IF IS_ENTITY_ALIVE(vehChaseCarChase2)
IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(vehChaseCarChase2)
STOP_PLAYBACK_RECORDED_VEHICLE(vehChaseCarChase2)
ENDIF
ENDIF
CREATE_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_SURR_8", CONV_PRIORITY_LOW)
IF bBlokestunned = FALSE
iTimerDontLetTheOtherEscape = GET_GAME_TIMER()
bDialogueDontletTheOtherEscape = TRUE
ENDIF
bSECONDBlokestunned = TRUE
ENDPROC
/// PURPOSE: Makes immigrant put his hands up and get in the vehicle
PROC SetImmigrantChase2HandsUp()
CLEAR_PED_TASKS(pedImmigrantChase2)
//RESET_PED_MOVEMENT_CLIPSET(pedImmigrantChase2)
/*
OPEN_SEQUENCE_TASK(seqImmigrantBeCarried)
TASK_SET_DECISION_MAKER(NULL,DECISION_MAKER_EMPTY)
TASK_ENTER_VEHICLE(NULL,sRCLauncherDataLocal.vehID[0],-1,VS_BACK_RIGHT,PEDMOVEBLENDRATIO_WALK)
CLOSE_SEQUENCE_TASK(seqImmigrantBeCarried)
TASK_PERFORM_SEQUENCE(pedImmigrantChase2,seqImmigrantBeCarried)
*/
IF GET_SCRIPT_TASK_STATUS(pedImmigrantChase2,SCRIPT_TASK_PERFORM_SEQUENCE) <> PERFORMING_TASK
IF GET_SCRIPT_TASK_STATUS(pedImmigrantChase2,SCRIPT_TASK_ENTER_VEHICLE) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(pedImmigrantChase2,SCRIPT_TASK_ENTER_VEHICLE) <> WAITING_TO_START_TASK
TASK_ENTER_VEHICLE(pedImmigrantChase2,sRCLauncherDataLocal.vehID[0],DEFAULT_TIME_BEFORE_WARP_MINUTE_2,VS_BACK_RIGHT,1)
ENDIF
ENDIF
bImmigrantChase2HandsUp = TRUE
ENDPROC
/// PURPOSE: Makes immigrant put his hands up and get in the vehicle
PROC SetImmigrantHandsUp()
CLEAR_PED_TASKS(pedImmigrant[i])
//RESET_PED_MOVEMENT_CLIPSET(pedImmigrant[i])
/*
OPEN_SEQUENCE_TASK(seqImmigrantBeCarried)
TASK_SET_DECISION_MAKER(NULL,DECISION_MAKER_EMPTY)
TASK_ENTER_VEHICLE(NULL,sRCLauncherDataLocal.vehID[0],-1,VS_BACK_RIGHT,PEDMOVEBLENDRATIO_WALK)
CLOSE_SEQUENCE_TASK(seqImmigrantBeCarried)
TASK_PERFORM_SEQUENCE(pedImmigrant[i],seqImmigrantBeCarried)
*/
IF GET_SCRIPT_TASK_STATUS(pedImmigrant[i],SCRIPT_TASK_PERFORM_SEQUENCE) <> PERFORMING_TASK
IF GET_SCRIPT_TASK_STATUS(pedImmigrant[i],SCRIPT_TASK_ENTER_VEHICLE) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(pedImmigrant[i],SCRIPT_TASK_ENTER_VEHICLE) <> WAITING_TO_START_TASK
TASK_ENTER_VEHICLE(pedImmigrant[i],sRCLauncherDataLocal.vehID[0],DEFAULT_TIME_BEFORE_WARP_MINUTE_2,VS_BACK_RIGHT,1)
ENDIF
ENDIF
bImmigrantHandsUp = TRUE
ENDPROC
/// PURPOSE: Immigrant got in car so attach in the back
PROC AttachPedToCar()
IF i < 2
IF IS_PED_UNINJURED(pedImmigrant[i])
IF bpedImmigrantChase2Attached = FALSE
//CLEAR_PED_TASKS_IMMEDIATELY(pedImmigrant[i])
vpedImmigrant[i] = GET_ENTITY_COORDS(pedImmigrant[i])
ELSE
CLEAR_PED_TASKS(pedImmigrant[i])
CLEAR_SEQUENCE_TASK(seqChase2Route)
CLEAR_SEQUENCE_TASK(seqChase2RouteB)
CLEAR_SEQUENCE_TASK(seqChase2RouteC)
CLEAR_SEQUENCE_TASK(seqChase2RouteD)
ENDIF
//SET_ENTITY_COLLISION(pedImmigrant[i],FALSE)
SET_PED_CAN_BE_TARGETTED(pedImmigrant[i],FALSE)
SET_PED_RELATIONSHIP_GROUP_HASH(pedImmigrant[i],GET_PED_RELATIONSHIP_GROUP_HASH(PLAYER_PED_ID()))
ENDIF
ENDIF
SAFE_REMOVE_BLIP(blipJosef)
IF i = 0
PROCESS_ENTITY_ATTACHMENTS(pedImmigrant[i])
FORCE_PED_AI_AND_ANIMATION_UPDATE(pedImmigrant[i])
//RESET_PED_MOVEMENT_CLIPSET(pedImmigrant[i])
//ssClimbToBack_1 = CREATE_SYNCHRONIZED_SCENE(<<0.555,-0.79,0.171>>,<<0,0,0>>)
ssClimbToBack_1 = CREATE_SYNCHRONIZED_SCENE(<<0,0,0>>,<<0,0,0>>)
SET_SYNCHRONIZED_SCENE_HOLD_LAST_FRAME(ssClimbToBack_1,TRUE)
ATTACH_SYNCHRONIZED_SCENE_TO_ENTITY(ssClimbToBack_1,sRCLauncherDataLocal.vehID[0],GET_ENTITY_BONE_INDEX_BY_NAME(sRCLauncherDataLocal.vehID[0], "seat_pside_r"))
TASK_SYNCHRONIZED_SCENE(pedImmigrant[i], ssClimbToBack_1, "missminuteman_2ig_1", "entertrunk_manuel", SLOW_BLEND_IN, SLOW_BLEND_OUT,SYNCED_SCENE_DONT_INTERRUPT,RBF_BULLET_IMPACT | RBF_PLAYER_IMPACT | RBF_IMPACT_OBJECT | RBF_VEHICLE_IMPACT)
//SET_SYNCHRONIZED_SCENE_PHASE(ssClimbToBack_1,0.1)
SET_SYNCHRONIZED_SCENE_RATE(ssClimbToBack_1,2.0)
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedImmigrant[i],TRUE)
ENDIF
IF i = 1
IF bpedImmigrantChase2Attached = FALSE
IF NOT IS_PED_SITTING_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
PROCESS_ENTITY_ATTACHMENTS(pedImmigrant[i])
FORCE_PED_AI_AND_ANIMATION_UPDATE(pedImmigrant[i])
//RESET_PED_MOVEMENT_CLIPSET(pedImmigrant[i])
//ssClimbToBack_2 = CREATE_SYNCHRONIZED_SCENE(<<0.39,-0.8,0.171>>,<<0,0,0>>)
//ATTACH_SYNCHRONIZED_SCENE_TO_ENTITY(ssClimbToBack_2,sRCLauncherDataLocal.vehID[0],-1)
ssClimbToBack_2 = CREATE_SYNCHRONIZED_SCENE(<<0,0,0>>,<<0,0,0>>)
SET_SYNCHRONIZED_SCENE_HOLD_LAST_FRAME(ssClimbToBack_2,TRUE)
ATTACH_SYNCHRONIZED_SCENE_TO_ENTITY(ssClimbToBack_2,sRCLauncherDataLocal.vehID[0],GET_ENTITY_BONE_INDEX_BY_NAME(sRCLauncherDataLocal.vehID[0], "seat_pside_r"))
TASK_SYNCHRONIZED_SCENE(pedImmigrant[i], ssClimbToBack_2, "missminuteman_2ig_1", "entertrunk_josef", SLOW_BLEND_IN, SLOW_BLEND_OUT,SYNCED_SCENE_DONT_INTERRUPT,RBF_BULLET_IMPACT | RBF_PLAYER_IMPACT | RBF_IMPACT_OBJECT | RBF_VEHICLE_IMPACT)
//SET_SYNCHRONIZED_SCENE_PHASE(ssClimbToBack_2,0.06)
SET_SYNCHRONIZED_SCENE_RATE(ssClimbToBack_2,2.0)
ELSE
CLEAR_PED_TASKS(pedImmigrant[i])
CLEAR_SEQUENCE_TASK(seqChase2Route)
CLEAR_SEQUENCE_TASK(seqChase2RouteB)
CLEAR_SEQUENCE_TASK(seqChase2RouteC)
CLEAR_SEQUENCE_TASK(seqChase2RouteD)
bDoDelayedClimbInBack = TRUE
ENDIF
iSyncPed = 1
ENDIF
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedImmigrant[i],TRUE)
ENDIF
IF bDebugSkippedToCementFactory = FALSE
IF NOT IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOE],SCRIPT_TASK_ENTER_VEHICLE) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOE],SCRIPT_TASK_ENTER_VEHICLE) <> WAITING_TO_START_TASK
IF i = 0
TASK_ENTER_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0],DEFAULT_TIME_BEFORE_WARP_MINUTE_2,VS_FRONT_RIGHT,PEDMOVEBLENDRATIO_RUN)
ELSE
TASK_ENTER_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0],DEFAULT_TIME_BEFORE_WARP_MINUTE_2,VS_FRONT_RIGHT,PEDMOVEBLENDRATIO_WALK)
ENDIF
ENDIF
ENDIF
ENDIF
IF missionStage = MS_UPDATE_CHASE1
OR missionStage = MS_IMMIGRANT1_APPREHENDED
IF NOT IS_PED_IN_ANY_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF])
IF IS_IT_OK_FOR_JOSEF_TO_GET_IN()
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_ENTER_VEHICLE) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_ENTER_VEHICLE) <> WAITING_TO_START_TASK
IF IS_ENTITY_IN_RANGE_ENTITY(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0],10.0)
TASK_ENTER_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0],DEFAULT_TIME_BEFORE_WARP_MINUTE_2,VS_BACK_LEFT,1)
ELSE
TASK_ENTER_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0],DEFAULT_TIME_BEFORE_WARP_MINUTE_2,VS_BACK_LEFT,PEDMOVEBLENDRATIO_RUN)
ENDIF
ENDIF
ELSE
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_FOLLOW_NAV_MESH_TO_COORD) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_FOLLOW_NAV_MESH_TO_COORD) <> WAITING_TO_START_TASK
TASK_FOLLOW_NAV_MESH_TO_COORD(sRCLauncherDataLocal.pedID[ic_JOSEF],GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(sRCLauncherDataLocal.vehID[0],<<-1.8,-0.2,0>>),1,DEFAULT_TIME_BEFORE_WARP_MINUTE_2,0.5,ENAV_DEFAULT,GET_ENTITY_HEADING(sRCLauncherDataLocal.vehID[0])-90.0)
ENDIF
ENDIF
ENDIF
ENDIF
IF i = 0
bJosefCombatTaskGiven = FALSE
bJoeCombatTaskGiven = FALSE
bBlokestunned = FALSE
bImmigrantHandsUp = FALSE
bOkForJosefToLeaveCar = FALSE
bOkForJoeToLeaveCar = FALSE
bOkToStartChase = FALSE
bGetCloseMessagePrinted = FALSE
bImmigrantGettingIntoCar = FALSE
bEveryoneInCar = FALSE
iTimesTazed = 0
bChaseStarted = FALSE
ENDIF
IF i = 0
TASK_CLEAR_LOOK_AT(sRCLauncherDataLocal.pedID[ic_JOSEF])
TASK_CLEAR_LOOK_AT(sRCLauncherDataLocal.pedID[ic_JOE])
bBloke1AttachedToCar = TRUE
ENDIF
IF i = 1
TASK_CLEAR_LOOK_AT(sRCLauncherDataLocal.pedID[ic_JOE])
bBloke2AttachedToCar = TRUE
IF bSECONDBlokestunned = TRUE
IF bpedImmigrantChase2Attached = FALSE
IF IS_PED_UNINJURED(pedImmigrantChase2)
IF GET_DISTANCE_BETWEEN_PEDS(pedImmigrantChase2,PLAYER_PED_ID()) > 70.0
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0],TRUE)
PRINT_NOW("MIN2_31",DEFAULT_GOD_TEXT_TIME,0)
ELSE
IF bPrint19 = FALSE
PRINT_NOW("MIN2_19",DEFAULT_GOD_TEXT_TIME,0)
bPrint19 = TRUE
ENDIF
IF DOES_BLIP_EXIST(blipImmigrant[i])
SAFE_REMOVE_BLIP(blipImmigrant[i])
ENDIF
IF DOES_BLIP_EXIST(blipImmigrantChase2)
SAFE_REMOVE_BLIP(blipImmigrantChase2)
ENDIF
IF NOT DOES_BLIP_EXIST(blipPlayerCar)
blipPlayerCar = CREATE_VEHICLE_BLIP(sRCLauncherDataLocal.vehID[0])
ENDIF
bPlayerNotInCarBetweenCapturingImmigrants = TRUE
ENDIF
//PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_SURR", "MIN2_SURR_12", CONV_PRIORITY_LOW,DO_NOT_DISPLAY_SUBTITLES)
CREATE_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_SURR_12", CONV_PRIORITY_LOW,DO_NOT_DISPLAY_SUBTITLES)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF i = 2
REMOVE_PED_FOR_DIALOGUE(s_conversation_peds, 5)
ENDIF
IF i = 0
++i
ENDIF
iTimerPlayerNotInCar = GET_GAME_TIMER()
ENDPROC
/// PURPOSE: Immigrant got in car so attach in the back
PROC AttachSECONDPedToCar()
IF IS_PED_UNINJURED(pedImmigrantChase2)
IF bBloke2AttachedToCar = FALSE
IF NOT IS_PED_SITTING_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
PROCESS_ENTITY_ATTACHMENTS(pedImmigrantChase2)
FORCE_PED_AI_AND_ANIMATION_UPDATE(pedImmigrantChase2)
//RESET_PED_MOVEMENT_CLIPSET(pedImmigrantChase2)
//ssClimbToBack_2 = CREATE_SYNCHRONIZED_SCENE(<<0.39,-0.8,0.171>>,<<0,0,0>>)
//ATTACH_SYNCHRONIZED_SCENE_TO_ENTITY(ssClimbToBack_2,sRCLauncherDataLocal.vehID[0],-1)
ssClimbToBack_2 = CREATE_SYNCHRONIZED_SCENE(<<0,0,0>>,<<0,0,0>>)
ATTACH_SYNCHRONIZED_SCENE_TO_ENTITY(ssClimbToBack_2,sRCLauncherDataLocal.vehID[0],GET_ENTITY_BONE_INDEX_BY_NAME(sRCLauncherDataLocal.vehID[0], "seat_pside_r"))
TASK_SYNCHRONIZED_SCENE(pedImmigrantChase2, ssClimbToBack_2, "missminuteman_2ig_1", "entertrunk_josef", SLOW_BLEND_IN, SLOW_BLEND_OUT,SYNCED_SCENE_DONT_INTERRUPT,RBF_BULLET_IMPACT | RBF_PLAYER_IMPACT | RBF_IMPACT_OBJECT | RBF_VEHICLE_IMPACT)
//SET_SYNCHRONIZED_SCENE_PHASE(ssClimbToBack_2,0.06)
SET_SYNCHRONIZED_SCENE_RATE(ssClimbToBack_2,2.0)
ELSE
CLEAR_PED_TASKS(pedImmigrantChase2)
CLEAR_SEQUENCE_TASK(seqChase2RouteSECONDPED)
CLEAR_SEQUENCE_TASK(seqChase2RouteBSECONDPED)
CLEAR_SEQUENCE_TASK(seqChase2RouteCSECONDPED)
CLEAR_SEQUENCE_TASK(seqChase2RouteDSECONDPED)
bDoDelayedClimbInBack = TRUE
ENDIF
iSyncPed = 2
ELSE
CLEAR_PED_TASKS(pedImmigrantChase2)
CLEAR_SEQUENCE_TASK(seqChase2RouteSECONDPED)
CLEAR_SEQUENCE_TASK(seqChase2RouteBSECONDPED)
CLEAR_SEQUENCE_TASK(seqChase2RouteCSECONDPED)
CLEAR_SEQUENCE_TASK(seqChase2RouteDSECONDPED)
ENDIF
SET_PED_CAN_BE_TARGETTED(pedImmigrantChase2,FALSE)
SET_PED_RELATIONSHIP_GROUP_HASH(pedImmigrantChase2,GET_PED_RELATIONSHIP_GROUP_HASH(PLAYER_PED_ID()))
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedImmigrantChase2,TRUE)
ENDIF
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_ENTER_VEHICLE) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_ENTER_VEHICLE) <> WAITING_TO_START_TASK
TASK_ENTER_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0],DEFAULT_TIME_BEFORE_WARP_MINUTE_2,VS_BACK_LEFT)
ENDIF
IF i = 1
IF bBlokestunned = TRUE
IF bBloke2AttachedToCar = FALSE
IF IS_PED_UNINJURED(pedImmigrant[i])
IF GET_DISTANCE_BETWEEN_PEDS(pedImmigrant[i],PLAYER_PED_ID()) > 70.0
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0],TRUE)
PRINT_NOW("MIN2_31",DEFAULT_GOD_TEXT_TIME,0)
ELSE
IF bPrint19 = FALSE
PRINT_NOW("MIN2_19",DEFAULT_GOD_TEXT_TIME,0)
bPrint19 = TRUE
ENDIF
IF DOES_BLIP_EXIST(blipImmigrant[i])
SAFE_REMOVE_BLIP(blipImmigrant[i])
ENDIF
IF DOES_BLIP_EXIST(blipImmigrantChase2)
SAFE_REMOVE_BLIP(blipImmigrantChase2)
ENDIF
IF NOT DOES_BLIP_EXIST(blipPlayerCar)
blipPlayerCar = CREATE_VEHICLE_BLIP(sRCLauncherDataLocal.vehID[0])
ENDIF
bPlayerNotInCarBetweenCapturingImmigrants = TRUE
ENDIF
//PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_SURR", "MIN2_SURR_13", CONV_PRIORITY_LOW,DO_NOT_DISPLAY_SUBTITLES)
//CREATE_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_SURR_13", CONV_PRIORITY_LOW,DO_NOT_DISPLAY_SUBTITLES)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
bpedImmigrantChase2Attached = TRUE
TASK_CLEAR_LOOK_AT(sRCLauncherDataLocal.pedID[ic_JOSEF])
iTimerPlayerNotInCar = GET_GAME_TIMER()
ENDPROC
FUNC BOOL ARE_GUYS_IN_CAR_OR_DOING_SCENE()
IF IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
AND IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
RETURN TRUE
ENDIF
IF IS_SYNCHRONIZED_SCENE_RUNNING(ssPassport)
RETURN TRUE
ENDIF
RETURN FALSE
ENDFUNC
/// PURPOSE: Manage all the blips and objectives
PROC ManageBlipsAndObjectives()
IF missionStage <> MS_DRIVE_TO_END
AND missionStage <> MS_MISSION_PASSING
AND missionStage <> MS_MISSION_FAILING
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
SAFE_REMOVE_BLIP(blipPlayerCar)
ELSE
IF NOT DOES_BLIP_EXIST(blipPlayerCar)
blipPlayerCar = CREATE_VEHICLE_BLIP(sRCLauncherDataLocal.vehID[0])
ENDIF
ENDIF
IF IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
SAFE_REMOVE_BLIP(blipJosef)
ELSE
IF NOT DOES_BLIP_EXIST(blipJosef)
blipJosef = CREATE_PED_BLIP(sRCLauncherDataLocal.pedID[ic_JOE],TRUE,TRUE)
SET_BLIP_SCALE(blipJosef,BLIP_SIZE_PED)
SET_BLIP_PRIORITY(blipJosef,BLIPPRIORITY_LOW)
ENDIF
ENDIF
IF IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
SAFE_REMOVE_BLIP(blipJoe)
ELSE
IF NOT DOES_BLIP_EXIST(blipJoe)
blipJoe = CREATE_PED_BLIP(sRCLauncherDataLocal.pedID[ic_JOSEF],TRUE,TRUE)
SET_BLIP_SCALE(blipJoe,BLIP_SIZE_PED)
SET_BLIP_PRIORITY(blipJoe,BLIPPRIORITY_LOW)
ENDIF
ENDIF
ENDIF
IF missionStage = MS_SETUP_MISSION
OR missionStage = MS_SETUP_CHASE1
OR missionStage = MS_SETUP_CHASE2
OR missionStage = MS_SETUP_CHASE3
bPlayerAtChaseOnFootMessagePrinted = FALSE
SAFE_REMOVE_BLIP(blipImmigrant[0])
SAFE_REMOVE_BLIP(blipImmigrant[1])
SAFE_REMOVE_BLIP(blipImmigrant[2])
IF DOES_ENTITY_EXIST(pedImmigrant[0])
//fDistBetweenJosefAndImmigrant = GET_DISTANCE_BETWEEN_ENTITIES(sRCLauncherDataLocal.pedID[ic_JOE],pedImmigrant[i])
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
//SAFE_REMOVE_BLIP(blipPlayerCar)
//IF bBlipCar
bBlipCar = FALSE
//ENDIF
IF ARE_GUYS_IN_CAR_OR_DOING_SCENE()
//IF bBlipJoe
bBlipJoe = FALSE
//ENDIF
//IF bBlipJosef
bBlipJosef = FALSE
//ENDIF
//SAFE_REMOVE_BLIP(blipJosef)
//SAFE_REMOVE_BLIP(blipJoe)
IF bEveryoneInCar = FALSE
bEveryoneInCar = TRUE
ENDIF
IF NOT DOES_BLIP_EXIST(blipLocate[i])
//CLEAR_PRINTS()
IF i = 0 //Head towards the trailer park.
IF bPrint03 = FALSE
//PRINT_NOW("MIN2_03",7000,0) //Go to locate
bPrint03 = TRUE
ENDIF
ENDIF
IF i = 1 //The next target works at the cement factory.
IF GET_PLAYER_WANTED_LEVEL(PLAYER_ID()) = 0
IF bPrint06 = FALSE
IF bReplayCementFactory = FALSE
PRINT_NOW("MIN2_06",7000,0)
bPrint06 = TRUE
ENDIF
ENDIF
ENDIF
ENDIF
IF i = 2 //Head towards the gas station.
IF bPrint08 = FALSE
PRINT_NOW("MIN2_08",7000,0)
bPrint08 = TRUE
ENDIF
ENDIF
IF i = 0
//blipLocate[i] = CREATE_COORD_BLIP(<< 166.3456, 4418.0342, 74.5901 >>)
ELSE
IF i = 1
blipLocate[i] = CREATE_COORD_BLIP(<< 267.2497, 2852.1667, 42.6129 >>)
ELSE
vpedImmigrant[i] = GET_ENTITY_COORDS(pedImmigrant[i])
blipLocate[i] = CREATE_COORD_BLIP(vpedImmigrant[i])
ENDIF
ENDIF
iConvoTimer = GET_GAME_TIMER()
ENDIF
ELSE
SAFE_REMOVE_BLIP(blipLocate[i])
IF IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
//IF bBlipJosef
bBlipJosef = FALSE
//ENDIF
//SAFE_REMOVE_BLIP(blipJosef)
ELSE
//IF NOT DOES_BLIP_EXIST(blipJosef)
IF NOT bBlipJosef
IF NOT IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0],TRUE)
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOE],SCRIPT_TASK_ENTER_VEHICLE) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOE],SCRIPT_TASK_ENTER_VEHICLE) <> WAITING_TO_START_TASK
TASK_ENTER_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0],DEFAULT_TIME_BEFORE_WARP_MINUTE_2,VS_FRONT_RIGHT)
ENDIF
ENDIF
//blipJosef = CREATE_PED_BLIP(sRCLauncherDataLocal.pedID[ic_JOE],TRUE,TRUE)
//SET_BLIP_SCALE(blipJosef,BLIP_SIZE_PED)
bBlipJosef = TRUE
IF IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
IF bPrint33 = FALSE
PRINT_NOW("MIN2_33",7000,0) //Wait for ~b~Joe~s~ to get in the vehicle.
bPrint33 = TRUE
ENDIF
ELSE
IF bPrint29 = FALSE
PRINT_NOW("MIN2_29",7000,0) //Wait for ~b~Josef~s~ and ~b~Joe~s~ to get in the vehicle.
bPrint29 = TRUE
ENDIF
ENDIF
ENDIF
ENDIF
IF IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
//OR IS_SYNCHRONIZED_SCENE_RUNNING(ssPassport)
//IF DOES_BLIP_EXIST(blipJoe)
// SAFE_REMOVE_BLIP(blipJoe)
//ENDIF
//IF bBlipJoe
bBlipJoe = FALSE
//ENDIF
ELSE
//IF NOT DOES_BLIP_EXIST(blipJoe)
IF NOT bBlipJoe
IF IS_IT_OK_FOR_JOSEF_TO_GET_IN()
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_ENTER_VEHICLE) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_ENTER_VEHICLE) <> WAITING_TO_START_TASK
//AND NOT IS_SYNCHRONIZED_SCENE_RUNNING(ssPassport)
IF IS_ENTITY_IN_RANGE_ENTITY(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0],10.0)
TASK_ENTER_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0],DEFAULT_TIME_BEFORE_WARP_MINUTE_2,VS_BACK_LEFT,1)
ELSE
TASK_ENTER_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0],DEFAULT_TIME_BEFORE_WARP_MINUTE_2,VS_BACK_LEFT,PEDMOVEBLENDRATIO_RUN)
ENDIF
ENDIF
ELSE
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_FOLLOW_NAV_MESH_TO_COORD) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_FOLLOW_NAV_MESH_TO_COORD) <> WAITING_TO_START_TASK
TASK_FOLLOW_NAV_MESH_TO_COORD(sRCLauncherDataLocal.pedID[ic_JOSEF],GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(sRCLauncherDataLocal.vehID[0],<<-1.8,-0.2,0>>),1,DEFAULT_TIME_BEFORE_WARP_MINUTE_2,0.5,ENAV_DEFAULT,GET_ENTITY_HEADING(sRCLauncherDataLocal.vehID[0])-90.0)
ENDIF
ENDIF
//blipJoe = CREATE_PED_BLIP(sRCLauncherDataLocal.pedID[ic_JOSEF],TRUE,TRUE)
//SET_BLIP_SCALE(blipJoe,BLIP_SIZE_PED)
bBlipJoe = TRUE
IF IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
IF bPrint32 = FALSE
PRINT_NOW("MIN2_32",7000,0) //Wait for ~b~Josef~s~ to get in the vehicle.
bPrint32 = TRUE
ENDIF
ELSE
IF bPrint29 = FALSE
PRINT_NOW("MIN2_29",7000,0) //Wait for ~b~Josef~s~ and ~b~Joe~s~ to get in the vehicle.
bPrint29 = TRUE
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
//SAFE_REMOVE_BLIP(blipJosef)
//SAFE_REMOVE_BLIP(blipJoe)
//IF bBlipJoe
bBlipJoe = FALSE
//ENDIF
//IF bBlipJosef
bBlipJosef = FALSE
//ENDIF
SAFE_REMOVE_BLIP(blipLocate[i])
//IF NOT DOES_BLIP_EXIST(blipPlayerCar)
IF NOT bBlipCar
//CLEAR_PRINTS()
IF bPrint19 = FALSE
//IF IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
//AND IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
//KILL_ANY_CONVERSATION() //Where are you going?
//PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_CAR", "MIN2_CAR_3", CONV_PRIORITY_MEDIUM,DO_NOT_DISPLAY_SUBTITLES)
//ENDIF
PRINT_NOW("MIN2_19",7000,0) //Get back in Josef's Truck
bPrint19 = TRUE
ENDIF
//blipPlayerCar = CREATE_VEHICLE_BLIP(sRCLauncherDataLocal.vehID[0])
bBlipCar = TRUE
iTimerPlayerNotInCar = GET_GAME_TIMER()
ENDIF
ENDIF
ENDIF
ENDIF
IF missionStage = MS_DRIVE_TO_END
bPlayerAtChaseOnFootMessagePrinted = FALSE
SAFE_REMOVE_BLIP(blipImmigrant[2])
SAFE_REMOVE_BLIP(blipImmigrant[1])
SAFE_REMOVE_BLIP(blipImmigrantChase2)
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
SAFE_REMOVE_BLIP(blipPlayerCar)
//IF bBlipCar
bBlipCar = FALSE
//ENDIF
IF IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
AND IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
SAFE_REMOVE_BLIP(blipJosef)
SAFE_REMOVE_BLIP(blipJoe)
//IF bBlipJoe
bBlipJoe = FALSE
//ENDIF
//IF bBlipJosef
bBlipJosef = FALSE
//ENDIF
IF NOT DOES_BLIP_EXIST(blipLocate[i])
bDrivingToMotel = TRUE
iConvoTimer = GET_GAME_TIMER()
ENDIF
ELSE
SAFE_REMOVE_BLIP(blipLocate[i])
IF IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
SAFE_REMOVE_BLIP(blipJosef)
//IF bBlipJosef
bBlipJosef = FALSE
//ENDIF
ELSE
IF NOT DOES_BLIP_EXIST(blipJosef)
AND NOT bBlipJosef
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOE],SCRIPT_TASK_ENTER_VEHICLE) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOE],SCRIPT_TASK_ENTER_VEHICLE) <> WAITING_TO_START_TASK
TASK_ENTER_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0],DEFAULT_TIME_BEFORE_WARP_MINUTE_2,VS_FRONT_RIGHT)
ENDIF
blipJosef = CREATE_PED_BLIP(sRCLauncherDataLocal.pedID[ic_JOE],TRUE,TRUE)
SET_BLIP_SCALE(blipJosef,BLIP_SIZE_PED)
bBlipJosef = TRUE
IF IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
IF bPrint33 = FALSE
PRINT_NOW("MIN2_33",7000,0) //Wait for ~b~Joe~s~ to get in the vehicle.
bPrint33 = TRUE
ENDIF
ELSE
IF bPrint29 = FALSE
PRINT_NOW("MIN2_29",7000,0) //Wait for ~b~Josef~s~ and ~b~Joe~s~ to get in the vehicle.
bPrint29 = TRUE
ENDIF
ENDIF
ENDIF
ENDIF
IF IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
SAFE_REMOVE_BLIP(blipJoe)
//IF bBlipJoe
bBlipJoe = FALSE
//ENDIF
ELSE
IF NOT DOES_BLIP_EXIST(blipJoe)
AND NOT bBlipJoe
IF IS_IT_OK_FOR_JOSEF_TO_GET_IN()
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_ENTER_VEHICLE) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_ENTER_VEHICLE) <> WAITING_TO_START_TASK
IF IS_ENTITY_IN_RANGE_ENTITY(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0],10.0)
TASK_ENTER_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0],DEFAULT_TIME_BEFORE_WARP_MINUTE_2,VS_BACK_LEFT,1)
ELSE
TASK_ENTER_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0],DEFAULT_TIME_BEFORE_WARP_MINUTE_2,VS_BACK_LEFT,PEDMOVEBLENDRATIO_RUN)
ENDIF
ENDIF
ELSE
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_FOLLOW_NAV_MESH_TO_COORD) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_FOLLOW_NAV_MESH_TO_COORD) <> WAITING_TO_START_TASK
TASK_FOLLOW_NAV_MESH_TO_COORD(sRCLauncherDataLocal.pedID[ic_JOSEF],GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(sRCLauncherDataLocal.vehID[0],<<-1.8,-0.2,0>>),1,DEFAULT_TIME_BEFORE_WARP_MINUTE_2,0.5,ENAV_DEFAULT,GET_ENTITY_HEADING(sRCLauncherDataLocal.vehID[0])-90.0)
ENDIF
ENDIF
blipJoe = CREATE_PED_BLIP(sRCLauncherDataLocal.pedID[ic_JOSEF],TRUE,TRUE)
SET_BLIP_SCALE(blipJoe,BLIP_SIZE_PED)
bBlipJoe = TRUE
IF IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
IF bPrint32 = FALSE
PRINT_NOW("MIN2_32",7000,0) //Wait for ~b~Josef~s~ to get in the vehicle.
bPrint32 = TRUE
ENDIF
ELSE
IF bPrint29 = FALSE
PRINT_NOW("MIN2_29",7000,0) //Wait for ~b~Josef~s~ and ~b~Joe~s~ to get in the vehicle.
bPrint29 = TRUE
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
//IF bBlipJoe
bBlipJoe = FALSE
//ENDIF
//IF bBlipJosef
bBlipJosef = FALSE
//ENDIF
SAFE_REMOVE_BLIP(blipJosef)
SAFE_REMOVE_BLIP(blipJoe)
SAFE_REMOVE_BLIP(blipLocate[i])
ENDIF
ENDIF
IF missionStage = MS_UPDATE_CHASE1
OR missionStage = MS_UPDATE_CHASE2
OR missionStage = MS_UPDATE_CHASE3
//SAFE_REMOVE_BLIP(blipJosef)
//SAFE_REMOVE_BLIP(blipJoe)
//IF bBlipJoe
bBlipJoe = FALSE
//ENDIF
//IF bBlipJosef
bBlipJosef = FALSE
//ENDIF
IF i = 0
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
//SAFE_REMOVE_BLIP(blipPlayerCar)
//IF bBlipCar
bBlipCar = FALSE
//ENDIF
ELSE
IF IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
AND IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
AND bBlokestunned = FALSE
SAFE_REMOVE_BLIP(blipImmigrant[i])
SAFE_REMOVE_BLIP(blipImmigrantChase2)
SAFE_REMOVE_BLIP(blipLocate[i])
//IF NOT DOES_BLIP_EXIST(blipPlayerCar)
IF NOT bBlipCar
IF bPrint19 = FALSE
PRINT_NOW("MIN2_19",7000,0) //Get back in Josef's Truck
bPrint19 = TRUE
ENDIF
//blipPlayerCar = CREATE_VEHICLE_BLIP(sRCLauncherDataLocal.vehID[0])
bBlipCar = TRUE
iTimerPlayerNotInCar = GET_GAME_TIMER()
bPlayerAtChaseOnFootMessagePrinted = TRUE
ENDIF
ENDIF
ENDIF
iChaseStartedTimerUpdate = GET_GAME_TIMER()
IF iChaseStartedTimerUpdate > iChaseStartedTimer + 0 //4200
SAFE_REMOVE_BLIP(blipLocate[i])
IF IS_VEHICLE_OK(sRCLauncherDataLocal.vehID[0])
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
IF NOT DOES_BLIP_EXIST(blipImmigrant[i])
blipImmigrant[i] = CREATE_PED_BLIP(pedImmigrant[i])
//CLEAR_PRINTS()
IF bPrint01 = FALSE
PRINT_NOW("MIN2_01",7000,0) //chase the immigrant
bPrint01 = TRUE
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
//SAFE_REMOVE_BLIP(blipPlayerCar)
//IF bBlipCar
bBlipCar = FALSE
//ENDIF
ELSE
IF IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
AND IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
AND bBlokestunned = FALSE
AND bSecondBlokestunned = FALSE
SAFE_REMOVE_BLIP(blipImmigrant[i])
SAFE_REMOVE_BLIP(blipImmigrantChase2)
SAFE_REMOVE_BLIP(blipLocate[i])
//IF NOT DOES_BLIP_EXIST(blipPlayerCar)
IF NOT bBlipCar
IF bPrint19 = FALSE
PRINT_NOW("MIN2_19",7000,0) //Get back in Josef's Truck
bPrint19 = TRUE
ENDIF
//blipPlayerCar = CREATE_VEHICLE_BLIP(sRCLauncherDataLocal.vehID[0])
bBlipCar = TRUE
iTimerPlayerNotInCar = GET_GAME_TIMER()
bPlayerAtChaseOnFootMessagePrinted = TRUE
ENDIF
ENDIF
ENDIF
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
//SAFE_REMOVE_BLIP(blipPlayerCar)
//IF bBlipCar
bBlipCar = FALSE
//ENDIF
ELSE
IF IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
AND IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
AND GET_DISTANCE_BETWEEN_PEDS(PLAYER_PED_ID(),sRCLauncherDataLocal.pedID[ic_JOSEF]) > 90.0
SAFE_REMOVE_BLIP(blipImmigrant[i])
SAFE_REMOVE_BLIP(blipImmigrantChase2)
//IF NOT DOES_BLIP_EXIST(blipPlayerCar)
IF NOT bBlipCar
IF bPrint42 = FALSE
//PRINT_NOW("MIN2_42",7000,0) //Get back in Josef's Truck
bPrint42 = TRUE
ENDIF
//blipPlayerCar = CREATE_VEHICLE_BLIP(sRCLauncherDataLocal.vehID[0])
bBlipCar = TRUE
iTimerPlayerNotInCar = GET_GAME_TIMER()
SET_BLIP_AS_FRIENDLY(blipPlayercar,TRUE)
bPlayerAtChaseOnFootMessagePrinted = TRUE
ENDIF
ENDIF
ENDIF
iChaseStartedTimerUpdate = GET_GAME_TIMER()
IF iChaseStartedTimerUpdate > iChaseStartedTimer + 0
SAFE_REMOVE_BLIP(blipLocate[i])
IF bBloke2AttachedToCar = FALSE
IF IS_VEHICLE_OK(sRCLauncherDataLocal.vehID[0])
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
IF NOT DOES_BLIP_EXIST(blipImmigrant[i])
blipImmigrant[i] = CREATE_PED_BLIP(pedImmigrant[i])
IF NOT IS_PED_IN_ANY_VEHICLE(pedImmigrant[i])
SET_BLIP_SCALE(blipImmigrant[i],BLIP_SIZE_PED)
ELSE
SET_BLIP_SCALE(blipImmigrant[i],BLIP_SIZE_VEHICLE)
ENDIF
//CLEAR_PRINTS()
IF bPrint30 = FALSE
//PRINT_NOW("MIN2_30",7000,0) //chase the immigrants
bPrint30 = TRUE
IF i = 0 //There he is! Get after him! etc
//PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_JOSEF", "MIN2_JOSEF_4", CONV_PRIORITY_VERY_LOW)
CREATE_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_JOSEF_4", CONV_PRIORITY_LOW)
ELIF i = 1
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 4, pedImmigrantChase2, "IMMIGRANTMALE")
//PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_SURR", "MIN2_SURR_15", CONV_PRIORITY_VERY_LOW,DO_NOT_DISPLAY_SUBTITLES)
CREATE_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_SURR_15", CONV_PRIORITY_LOW,DO_NOT_DISPLAY_SUBTITLES)
ELIF i = 2
//PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_JOSEF", "MIN2_JOSEF_6", CONV_PRIORITY_VERY_LOW,DO_NOT_DISPLAY_SUBTITLES)
ENDIF
ENDIF
IF bPlayerNotInCarBetweenCapturingImmigrants = TRUE
IF bPrint31 = FALSE
PRINT_NOW("MIN2_31",7000,0) //Go back and pick up the ~r~questionable.
bPrint31 = TRUE
ENDIF
ENDIF
ENDIF
ELSE
IF NOT DOES_BLIP_EXIST(blipImmigrant[i])
IF bPlayerNotInCarBetweenCapturingImmigrants = FALSE
IF bPlayerAtChaseOnFootMessagePrinted = FALSE
IF bPrint39 = FALSE
PRINT_NOW("MIN2_39",7000,0) //The Immigrants are escaping! Get in the ~b~vehicle.
bPrint39 = TRUE
ENDIF
bPlayerAtChaseOnFootMessagePrinted = TRUE
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
SAFE_REMOVE_BLIP(blipImmigrant[i])
ENDIF
IF i = 1
IF bpedImmigrantChase2Attached = FALSE
IF IS_VEHICLE_OK(sRCLauncherDataLocal.vehID[0])
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
IF NOT DOES_BLIP_EXIST(blipImmigrantChase2)
blipImmigrantChase2 = CREATE_PED_BLIP(pedImmigrantChase2)
IF NOT IS_PED_IN_ANY_VEHICLE(pedImmigrantChase2)
SET_BLIP_SCALE(blipImmigrantChase2,BLIP_SIZE_PED)
ELSE
SET_BLIP_SCALE(blipImmigrantChase2,BLIP_SIZE_VEHICLE)
ENDIF
IF bPlayerNotInCarBetweenCapturingImmigrants = TRUE
IF bPrint31 = FALSE
PRINT_NOW("MIN2_31",7000,0) //Go back and pick up the ~r~questionable.
bPrint31 = TRUE
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
SAFE_REMOVE_BLIP(blipImmigrantChase2)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDPROC
/// PURPOSE: AI for Joe and Josef during chase 1
PROC Chase1JJAI()
IF IS_PED_UNINJURED(pedImmigrant[i])
fDistBetweenJosefAndImmigrant = GET_DISTANCE_BETWEEN_ENTITIES(sRCLauncherDataLocal.pedID[ic_JOE],pedImmigrant[i])
IF missionStage = MS_UPDATE_CHASE2
OR missionStage = MS_JOSEF_PICKED_UP_IMMIGRANT2
fDistBetweenJoeAndImmigrant = GET_DISTANCE_BETWEEN_ENTITIES(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrantChase2)
ELSE
fDistBetweenJoeAndImmigrant = GET_DISTANCE_BETWEEN_ENTITIES(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrant[i])
ENDIF
IF bGetCloseMessagePrinted = FALSE
IF bBlokestunned = FALSE
IF GET_GAME_TIMER() > iChaseStartedTimer + 20000
IF fDistBetweenJosefAndImmigrant < 50.0
IF i = 0 //get me close so i can taze the bastard
TEXT_LABEL_23 root = GET_CURRENTLY_PLAYING_STANDARD_CONVERSATION_ROOT()
IF ARE_STRINGS_EQUAL(root,"MIN2_JJ1")
OR ARE_STRINGS_EQUAL(root,"MIN2_JJ4")
KILL_FACE_TO_FACE_CONVERSATION()
ENDIF
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
//IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_JOSEF", "MIN2_JOSEF_2", CONV_PRIORITY_VERY_LOW)
IF CREATE_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_JOSEF_2", CONV_PRIORITY_LOW)
bGetCloseMessagePrinted = TRUE
ENDIF
ENDIF
ENDIF
IF i = 1
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
bGetCloseMessagePrinted = TRUE
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF bBlokestunned = FALSE
IF fDistBetweenJosefAndImmigrant > 200.0
IF bGettingAwayMessagePrinted = FALSE
IF IS_VEHICLE_OK(sRCLauncherDataLocal.vehID[0])
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
IF i = 0
IF GET_GAME_TIMER() > iTimerChase1Started + 12000
IF bPrint18 = FALSE
//PRINT_NOW("MIN2_18",7000,0) //The immigrant is getting away
bPrint18 = TRUE
ENDIF
ENDIF
ELSE
IF bBlokestunned = FALSE
AND bSECONDBlokestunned = FALSE
IF bPrint37 = FALSE
//PRINT_NOW("MIN2_37",7000,0) //The immigrants are getting away
bPrint37 = TRUE
ENDIF
ELSE
IF GET_GAME_TIMER() > iTimerChase1Started + 12000
IF bPrint18 = FALSE
//PRINT_NOW("MIN2_18",7000,0) //The immigrant is getting away
bPrint18 = TRUE
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
//iGameTimer = GET_GAME_TIMER()
bGettingAwayMessagePrinted = TRUE
ELSE
//iGameTimerUpdate = GET_GAME_TIMER()
//IF iGameTimerUpdate > (iGameTimer + 20000)
IF fDistBetweenJosefAndImmigrant > 300.0//260.0
IF i = 0
sFailReason = "MIN2_43"
ELSE
IF bBlokestunned = FALSE
AND bSECONDBlokestunned = FALSE
sFailReason = "MIN2_35"
ELSE
sFailReason = "MIN2_23"
ENDIF
ENDIF
missionStage = MS_MISSION_FAILING
ENDIF
//ENDIF
ENDIF
ELSE
bGettingAwayMessagePrinted = FALSE
ENDIF
ENDIF
IF bBlokestunned = FALSE
IF fDistBetweenJosefAndImmigrant < 9.0 //josef taze ped if within 10 meters otherwise clear tasks
AND IS_PED_IN_ANY_VEHICLE(pedImmigrant[i])
IF bJosefCombatTaskGiven = FALSE
//TASK_COMBAT_PED(sRCLauncherDataLocal.pedID[ic_JOE],pedImmigrant[i])
TASK_DRIVE_BY(sRCLauncherDataLocal.pedID[ic_JOE],pedImmigrant[i],NULL,<<0,0,0>>,10,100)
IF IS_PED_ON_ANY_BIKE(pedImmigrant[i])
SET_PED_CAN_BE_KNOCKED_OFF_VEHICLE(pedImmigrant[i],KNOCKOFFVEHICLE_EASY)
ENDIF
bJosefCombatTaskGiven = TRUE
ENDIF
ELSE
IF bJosefCombatTaskGiven = TRUE
OR GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOE],SCRIPT_TASK_COMBAT) = PERFORMING_TASK
OR IS_PED_IN_COMBAT(sRCLauncherDataLocal.pedID[ic_JOE],pedImmigrant[i])
CLEAR_PED_TASKS(sRCLauncherDataLocal.pedID[ic_JOE])
bJosefCombatTaskGiven = FALSE
ENDIF
ENDIF
ELSE
IF fDistBetweenJosefAndImmigrant >= 40.0
CLEAR_PED_TASKS(sRCLauncherDataLocal.pedID[ic_JOE])
ENDIF
ENDIF
IF missionStage = MS_UPDATE_CHASE2
OR missionStage = MS_JOSEF_PICKED_UP_IMMIGRANT2
/*
IF IS_PED_UNINJURED(pedImmigrantChase2)
IF bSECONDBlokestunned = FALSE
IF fDistBetweenJoeAndImmigrant < 9.0
IF bJoeCombatTaskGiven = FALSE
//TASK_COMBAT_PED(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrantChase2)
TASK_DRIVE_BY(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrantChase2,NULL,<<0,0,0>>,10,100)
IF IS_PED_ON_ANY_BIKE(pedImmigrantChase2)
SET_PED_CAN_BE_KNOCKED_OFF_VEHICLE(pedImmigrantChase2,KNOCKOFFVEHICLE_EASY)
ENDIF
bJoeCombatTaskGiven = TRUE
ENDIF
ELSE
IF bJoeCombatTaskGiven = TRUE
CLEAR_PED_TASKS(sRCLauncherDataLocal.pedID[ic_JOSEF])
bJoeCombatTaskGiven = FALSE
ENDIF
ENDIF
ENDIF
ELSE
bImmigrantDied = TRUE
ENDIF
*/
ELSE
IF bBlokestunned = FALSE
IF fDistBetweenJoeAndImmigrant < 9.0
AND IS_PED_IN_ANY_VEHICLE(pedImmigrant[i])
IF bJoeCombatTaskGiven = FALSE
//TASK_COMBAT_PED(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrant[i])
TASK_DRIVE_BY(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrant[i],NULL,<<0,0,0>>,10,100)
bJoeCombatTaskGiven = TRUE
ENDIF
ELSE
IF bJoeCombatTaskGiven = TRUE
OR GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_COMBAT) = PERFORMING_TASK
OR IS_PED_IN_COMBAT(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrant[i])
CLEAR_PED_TASKS(sRCLauncherDataLocal.pedID[ic_JOSEF])
bJoeCombatTaskGiven = FALSE
ENDIF
ENDIF
ELSE
IF fDistBetweenJoeAndImmigrant >= 40.0
CLEAR_PED_TASKS(sRCLauncherDataLocal.pedID[ic_JOSEF])
ENDIF
ENDIF
ENDIF
IF bBlokestunned = FALSE
//IF CAN_PED_RAGDOLL(pedImmigrant[i])
IF HAS_ENTITY_BEEN_DAMAGED_BY_WEAPON(pedImmigrant[i],WEAPONTYPE_STUNGUN)
OR HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(vehChaseCar[i],sRCLauncherDataLocal.vehID[0])
//vNodeSwitch1 = GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(PLAYER_PED_ID(),<<0,-70,0>>)
//vNodeSwitch2 = GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(PLAYER_PED_ID(),<<0,70,0>>)
//SET_ROADS_IN_ANGLED_AREA(vNodeSwitch1,vNodeSwitch2,140,FALSE,FALSE)
KnockPedOffBike() //Knock ped off bike if he gets tazed
ENDIF
//ENDIF
ENDIF
IF missionStage = MS_UPDATE_CHASE2
OR missionStage = MS_JOSEF_PICKED_UP_IMMIGRANT2
IF bSECONDBlokestunned = FALSE
IF HAS_ENTITY_BEEN_DAMAGED_BY_WEAPON(pedImmigrantChase2,WEAPONTYPE_STUNGUN)
KnockSECONDPedOffBike() //Knock ped off bike if he gets tazed
ENDIF
ENDIF
ENDIF
IF bBlokestunned = FALSE
IF IS_VEHICLE_OK(vehChaseCar[i])
IF GET_GAME_TIMER() > iTimerChase1Started + 15000
IF NOT IS_PED_IN_VEHICLE(pedImmigrant[i],vehChaseCar[i])
//IF CAN_PED_RAGDOLL(pedImmigrant[i])
IF bFirstImmigrantFleeing = FALSE
//vNodeSwitch2 = GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(PLAYER_PED_ID(),<<0,-70,0>>)
//vNodeSwitch2 = GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(PLAYER_PED_ID(),<<0,70,0>>)
//SET_ROADS_IN_ANGLED_AREA(vNodeSwitch1,vNodeSwitch2,140,FALSE,FALSE)
KnockPedOffBike() //Knock ped off bike if he gets rammed by player's car
ENDIF
//ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF bBlokestunned = TRUE
IF HAS_ENTITY_BEEN_DAMAGED_BY_WEAPON(pedImmigrant[i],WEAPONTYPE_STUNGUN)
CPRINTLN(DEBUG_MISSION, "IMMIGRANT DAMAGED BY STUNGUN")
IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(pedImmigrant[i],sRCLauncherDataLocal.pedID[ic_JOSEF],FALSE)
CPRINTLN(DEBUG_MISSION, "IMMIGRANT DAMAGED BY JOSEF")
IF NOT IS_PED_IN_ANY_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF])
++iTimesTazed
ENDIF
ENDIF
IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(pedImmigrant[i],sRCLauncherDataLocal.pedID[ic_JOE],FALSE)
CPRINTLN(DEBUG_MISSION, "IMMIGRANT DAMAGED BY JOE")
IF NOT IS_PED_IN_ANY_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE])
++iTimesTazed
ENDIF
ENDIF
IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(pedImmigrant[i],PLAYER_PED_ID(),FALSE)
CPRINTLN(DEBUG_MISSION, "IMMIGRANT DAMAGED BY PLAYER")
IF NOT IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
++iTimesTazed
ENDIF
ENDIF
CLEAR_PED_LAST_WEAPON_DAMAGE(pedImmigrant[i])
ENDIF
IF bImmigrantHandsUp = FALSE
iGameTimerPed1KnockedOffUpdate = GET_GAME_TIMER()
IF iGameTimerPed1KnockedOffUpdate > iGameTimerPed1KnockedOff + 4000
SET_ENTITY_PROOFS(pedImmigrant[i],FALSE,FALSE,FALSE,FALSE,FALSE)
ENDIF
IF NOT IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
IF HAS_PLAYER_THREATENED_PED(pedImmigrant[i])
IF iTimesTazed = 0
++iTimesTazed
ENDIF
SetImmigrantHandsUp()
ENDIF
IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(pedImmigrant[i],PLAYER_PED_ID(),FALSE)
fDistBetweenPlayerAndImmigrant = GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(),pedImmigrant[i])
IF fDistBetweenPlayerAndImmigrant < 9.0
IF iTimesTazed > 0
SetImmigrantHandsUp()
ENDIF
ENDIF
ENDIF
ENDIF
IF NOT IS_PED_IN_ANY_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE])
IF fDistBetweenJosefAndImmigrant < 7.0
IF iTimesTazed > 0
SetImmigrantHandsUp() //Hands up
ENDIF
ENDIF
ENDIF
IF NOT IS_PED_IN_ANY_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF])
IF fDistBetweenJoeAndImmigrant < 7.0
IF iTimesTazed > 0
SetImmigrantHandsUp() //Hands up
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF missionStage = MS_UPDATE_CHASE2
OR missionStage = MS_JOSEF_PICKED_UP_IMMIGRANT2
IF bSECONDBlokestunned = TRUE
IF bImmigrantChase2HandsUp = FALSE
IF GET_GAME_TIMER() > iChaseStartedTimer + 4000
SET_ENTITY_PROOFS(pedImmigrantChase2,FALSE,FALSE,FALSE,FALSE,FALSE)
ENDIF
IF NOT IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(pedImmigrantChase2,PLAYER_PED_ID(),FALSE)
fDistBetweenPlayerAndImmigrant = GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(),pedImmigrantChase2)
IF fDistBetweenPlayerAndImmigrant < 9.0
SetImmigrantChase2HandsUp()
ENDIF
ENDIF
ENDIF
IF NOT IS_PED_IN_ANY_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF])
IF fDistBetweenJoeAndImmigrant < 7.0
SetImmigrantChase2HandsUp() //Hands up
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDPROC
/// PURPOSE: AI for Josef when he's on foot
PROC JosefOnFoot()
FLOAT fAimGoTo
FLOAT fAimRange
IF missionStage = MS_UPDATE_CHASE2
OR missionStage = MS_JOSEF_PICKED_UP_IMMIGRANT2
fAimGoTo = 2.2
fAimRange = 3.5
ELSE
fAimGoTo = 4.5
fAimRange = 6.0
ENDIF
IF bBlokestunned = TRUE
IF IS_PED_SITTING_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
IF GET_ENTITY_SPEED(sRCLauncherDataLocal.vehID[0]) < 0.1
IF GET_DISTANCE_BETWEEN_ENTITIES(sRCLauncherDataLocal.pedID[ic_JOE],pedImmigrant[i]) < 40.0
iTimerJoeLeftCar = GET_GAME_TIMER()
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOE],SCRIPT_TASK_GO_TO_ENTITY) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOE],SCRIPT_TASK_GO_TO_ENTITY) <> WAITING_TO_START_TASK
SET_PED_COMBAT_ATTRIBUTES(sRCLauncherDataLocal.pedID[ic_JOE], CA_USE_VEHICLE, FALSE)
SET_PED_COMBAT_ATTRIBUTES(sRCLauncherDataLocal.pedID[ic_JOE], CA_DO_DRIVEBYS, FALSE)
TASK_LOOK_AT_ENTITY(sRCLauncherDataLocal.pedID[ic_JOE],pedImmigrant[i],-1)
TASK_GO_TO_ENTITY(sRCLauncherDataLocal.pedID[ic_JOE],pedImmigrant[i])
//IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF i <> 0
//PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_SURR", "MIN2_SURR_5", CONV_PRIORITY_MEDIUM) //Don't make me use the stun gun again!
//CREATE_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_SURR_5", CONV_PRIORITY_VERY_HIGH)
IF iShoutSurr5 <> 1
KILL_FACE_TO_FACE_CONVERSATION()
ENDIF
iShoutSurr5 = 1
ENDIF
//ENDIF
bOkForJosefToLeaveCar = TRUE
ENDIF
ENDIF
ENDIF
ENDIF
IF bOkForJosefToLeaveCar = TRUE
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF iShoutSurr5 = 1
IF CREATE_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_SURR_5", CONV_PRIORITY_VERY_HIGH)
iShoutSurr5 = 2
ENDIF
ENDIF
ENDIF
IF bImmigrantHandsUp = FALSE
IF GET_DISTANCE_BETWEEN_ENTITIES(sRCLauncherDataLocal.pedID[ic_JOE],pedImmigrant[i]) < 6.0
AND CAN_PED_SEE_PED(sRCLauncherDataLocal.pedID[ic_JOE],pedImmigrant[i])
IF NOT IS_PED_BEING_STUNNED(pedImmigrant[i])
OR IS_PED_GETTING_UP(pedImmigrant[i])
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOE],SCRIPT_TASK_COMBAT) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOE],SCRIPT_TASK_COMBAT) <> WAITING_TO_START_TASK
iTimerJoeLeftCar = GET_GAME_TIMER()
TASK_COMBAT_PED(sRCLauncherDataLocal.pedID[ic_JOE],pedImmigrant[i],COMBAT_PED_PREVENT_CHANGING_TARGET)
//TASK_SHOOT_AT_ENTITY(sRCLauncherDataLocal.pedID[ic_JOE],pedImmigrant[i],-1,FIRING_TYPE_DEFAULT)
ENDIF
ELSE
IF IS_PED_SITTING_IN_ANY_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE])
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOE],SCRIPT_TASK_LEAVE_ANY_VEHICLE) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOE],SCRIPT_TASK_LEAVE_ANY_VEHICLE) <> WAITING_TO_START_TASK
TASK_LEAVE_ANY_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE])
ENDIF
ELSE
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOE],SCRIPT_TASK_AIM_GUN_AT_ENTITY) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOE],SCRIPT_TASK_AIM_GUN_AT_ENTITY) <> WAITING_TO_START_TASK
iTimerJoeLeftCar = GET_GAME_TIMER()
TASK_AIM_GUN_AT_ENTITY(sRCLauncherDataLocal.pedID[ic_JOE],pedImmigrant[i],-1)
ENDIF
ENDIF
ENDIF
ELSE
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOE],SCRIPT_TASK_COMBAT) = PERFORMING_TASK
IF GET_DISTANCE_BETWEEN_ENTITIES(sRCLauncherDataLocal.pedID[ic_JOE],pedImmigrant[i]) > 9.0
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOE],SCRIPT_TASK_GO_TO_ENTITY) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOE],SCRIPT_TASK_GO_TO_ENTITY) <> WAITING_TO_START_TASK
TASK_GO_TO_ENTITY(sRCLauncherDataLocal.pedID[ic_JOE],pedImmigrant[i])
ENDIF
ENDIF
ELSE
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOE],SCRIPT_TASK_GO_TO_ENTITY) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOE],SCRIPT_TASK_GO_TO_ENTITY) <> WAITING_TO_START_TASK
TASK_GO_TO_ENTITY(sRCLauncherDataLocal.pedID[ic_JOE],pedImmigrant[i])
ENDIF
ENDIF
ENDIF
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOE],SCRIPT_TASK_ANY) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOE],SCRIPT_TASK_ANY) <> WAITING_TO_START_TASK
TASK_GO_TO_ENTITY(sRCLauncherDataLocal.pedID[ic_JOE],pedImmigrant[i])
ENDIF
ELSE
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOE],SCRIPT_TASK_COMBAT) = PERFORMING_TASK
CLEAR_PED_TASKS(sRCLauncherDataLocal.pedID[ic_JOE])
ENDIF
IF GET_DISTANCE_BETWEEN_ENTITIES(sRCLauncherDataLocal.pedID[ic_JOE],pedImmigrant[i]) < fAimRange
IF GET_DISTANCE_BETWEEN_ENTITIES(sRCLauncherDataLocal.pedID[ic_JOE],pedImmigrant[i]) < 1.6
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOE],SCRIPT_TASK_GO_TO_COORD_WHILE_AIMING_AT_ENTITY) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOE],SCRIPT_TASK_GO_TO_COORD_WHILE_AIMING_AT_ENTITY) <> WAITING_TO_START_TASK
//IF NOT IS_PED_FACING_PED(pedImmigrant[i],sRCLauncherDataLocal.pedID[ic_JOE],90)
TASK_GO_TO_COORD_WHILE_AIMING_AT_ENTITY(sRCLauncherDataLocal.pedID[ic_JOE],GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(sRCLauncherDataLocal.pedID[ic_JOE],<<0.0,-4.5,0.0>>),pedImmigrant[i],2.0,FALSE,2.5)
//ELSE
//IF NOT IS_POSITION_OCCUPIED(GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(pedImmigrant[i],<<4.5,0.0,0.0>>),3,FALSE,TRUE,TRUE,FALSE,FALSE)
// TASK_GO_TO_COORD_WHILE_AIMING_AT_ENTITY(sRCLauncherDataLocal.pedID[ic_JOE],GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(pedImmigrant[i],<<4.5,0.0,0.0>>),pedImmigrant[i],1.0,FALSE,2.5)
//ELSE
// TASK_GO_TO_COORD_WHILE_AIMING_AT_ENTITY(sRCLauncherDataLocal.pedID[ic_JOE],GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(pedImmigrant[i],<<-4.5,0.0,0.0>>),pedImmigrant[i],1.0,FALSE,2.5)
//ENDIF
//ENDIF
ENDIF
ELSE
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOE],SCRIPT_TASK_AIM_GUN_AT_ENTITY) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOE],SCRIPT_TASK_AIM_GUN_AT_ENTITY) <> WAITING_TO_START_TASK
TASK_AIM_GUN_AT_ENTITY(sRCLauncherDataLocal.pedID[ic_JOE],pedImmigrant[i],-1)
ENDIF
ENDIF
ELSE
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOE],SCRIPT_TASK_GO_TO_ENTITY_WHILE_AIMING_AT_ENTITY) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOE],SCRIPT_TASK_GO_TO_ENTITY_WHILE_AIMING_AT_ENTITY) <> WAITING_TO_START_TASK
TASK_GO_TO_ENTITY_WHILE_AIMING_AT_ENTITY(sRCLauncherDataLocal.pedID[ic_JOE],pedImmigrant[i],pedImmigrant[i],PEDMOVEBLENDRATIO_WALK,FALSE,fAimGoTo)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDPROC
FUNC BOOL IS_PLAYER_BLOCKING_DOOR()
IF NOT IS_PED_SITTING_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
AND IS_ENTITY_AT_COORD(PLAYER_PED_ID(),GET_WORLD_POSITION_OF_ENTITY_BONE(sRCLauncherDataLocal.vehID[0],14),<<1.5,1.5,1.5>>)
RETURN TRUE
ENDIF
RETURN FALSE
ENDFUNC
/// PURPOSE: AI for Joe when he's on foot
PROC JoeOnFoot()
FLOAT fJosefMBR
IF missionStage = MS_UPDATE_CHASE2
OR missionStage = MS_JOSEF_PICKED_UP_IMMIGRANT2
IF bSECONDBlokestunned = TRUE
IF IS_PED_SITTING_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
IF bOkForJoeToLeaveCar = FALSE
IF GET_ENTITY_SPEED(sRCLauncherDataLocal.vehID[0]) < 0.1
IF GET_DISTANCE_BETWEEN_ENTITIES(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrantChase2) < 40.0
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_GO_TO_ENTITY) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_GO_TO_ENTITY) <> WAITING_TO_START_TASK
//AND NOT IS_POSITION_OCCUPIED(GET_WORLD_POSITION_OF_ENTITY_BONE(sRCLauncherDataLocal.vehID[0],14),2.5,FALSE,FALSE,TRUE,FALSE,FALSE,pedImmigrantChase2)
AND NOT IS_PLAYER_BLOCKING_DOOR()
SET_PED_COMBAT_ATTRIBUTES(sRCLauncherDataLocal.pedID[ic_JOSEF], CA_USE_VEHICLE, FALSE)
SET_PED_COMBAT_ATTRIBUTES(sRCLauncherDataLocal.pedID[ic_JOSEF], CA_DO_DRIVEBYS, FALSE)
TASK_LOOK_AT_ENTITY(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrantChase2,-1)
TASK_GO_TO_ENTITY(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrantChase2)
//IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
//PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_SURR", "MIN2_SURR_3", CONV_PRIORITY_MEDIUM) //Nenutte me pouzit paralyzer znovu!
//CREATE_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_SURR_3", CONV_PRIORITY_VERY_HIGH)
//ENDIF
IF iShoutSurr3 <> 1
KILL_FACE_TO_FACE_CONVERSATION()
ENDIF
iShoutSurr3 = 1
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
bOkForJoeToLeaveCar = TRUE
ENDIF
IF bOkForJoeToLeaveCar = TRUE
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF iShoutSurr3 = 1
IF CREATE_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_SURR_3", CONV_PRIORITY_VERY_HIGH)
iShoutSurr3 = 2
ENDIF
ENDIF
ENDIF
IF bImmigrantChase2HandsUp = FALSE
IF GET_DISTANCE_BETWEEN_ENTITIES(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrantChase2) < 6.0
AND CAN_PED_SEE_PED(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrantChase2)
IF NOT IS_PED_BEING_STUNNED(pedImmigrantChase2)
OR IS_PED_GETTING_UP(pedImmigrantChase2)
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_COMBAT) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_COMBAT) <> WAITING_TO_START_TASK
TASK_COMBAT_PED(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrantChase2,COMBAT_PED_PREVENT_CHANGING_TARGET)
//TASK_SHOOT_AT_ENTITY(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrantChase2,-1,FIRING_TYPE_DEFAULT)
ENDIF
ELSE
IF IS_PED_SITTING_IN_ANY_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF])
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_LEAVE_ANY_VEHICLE) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_LEAVE_ANY_VEHICLE) <> WAITING_TO_START_TASK
//AND NOT IS_POSITION_OCCUPIED(GET_WORLD_POSITION_OF_ENTITY_BONE(sRCLauncherDataLocal.vehID[0],14),2.5,FALSE,FALSE,TRUE,FALSE,FALSE,pedImmigrantChase2)
AND NOT IS_PLAYER_BLOCKING_DOOR()
TASK_LEAVE_ANY_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF])
ENDIF
ELSE
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_AIM_GUN_AT_ENTITY) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_AIM_GUN_AT_ENTITY) <> WAITING_TO_START_TASK
TASK_AIM_GUN_AT_ENTITY(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrantChase2,-1)
ENDIF
ENDIF
ENDIF
ELSE
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_COMBAT) = PERFORMING_TASK
IF GET_DISTANCE_BETWEEN_ENTITIES(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrantChase2) > 9.0
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_GO_TO_ENTITY) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_GO_TO_ENTITY) <> WAITING_TO_START_TASK
TASK_GO_TO_ENTITY(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrantChase2)
ENDIF
ENDIF
ELSE
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_GO_TO_ENTITY) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_GO_TO_ENTITY) <> WAITING_TO_START_TASK
TASK_GO_TO_ENTITY(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrantChase2)
ENDIF
ENDIF
ENDIF
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_ANY) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_ANY) <> WAITING_TO_START_TASK
TASK_GO_TO_ENTITY(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrantChase2)
ENDIF
ELSE
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_COMBAT) = PERFORMING_TASK
CLEAR_PED_TASKS(sRCLauncherDataLocal.pedID[ic_JOSEF])
ENDIF
/*
IF GET_DISTANCE_BETWEEN_ENTITIES(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrantChase2) < 6.0
IF GET_DISTANCE_BETWEEN_ENTITIES(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrantChase2) < 1.6
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_GO_TO_COORD_WHILE_AIMING_AT_ENTITY) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_GO_TO_COORD_WHILE_AIMING_AT_ENTITY) <> WAITING_TO_START_TASK
//IF NOT IS_PED_FACING_PED(pedImmigrantChase2,sRCLauncherDataLocal.pedID[ic_JOSEF],90)
TASK_GO_TO_COORD_WHILE_AIMING_AT_ENTITY(sRCLauncherDataLocal.pedID[ic_JOSEF],GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(sRCLauncherDataLocal.pedID[ic_JOSEF],<<0.0,-4.5,0.0>>),pedImmigrantChase2,2.0,FALSE,2.5)
//ELSE
//IF NOT IS_POSITION_OCCUPIED(GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(pedImmigrantChase2,<<4.5,0.0,0.0>>),3,FALSE,TRUE,TRUE,FALSE,FALSE)
// TASK_GO_TO_COORD_WHILE_AIMING_AT_ENTITY(sRCLauncherDataLocal.pedID[ic_JOSEF],GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(pedImmigrantChase2,<<4.5,0.0,0.0>>),pedImmigrant[i],1.0,FALSE,2.5)
//ELSE
// TASK_GO_TO_COORD_WHILE_AIMING_AT_ENTITY(sRCLauncherDataLocal.pedID[ic_JOSEF],GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(pedImmigrantChase2,<<-4.5,0.0,0.0>>),pedImmigrant[i],1.0,FALSE,2.5)
//ENDIF
//ENDIF
ENDIF
ELSE
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_AIM_GUN_AT_ENTITY) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_AIM_GUN_AT_ENTITY) <> WAITING_TO_START_TASK
TASK_AIM_GUN_AT_ENTITY(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrantChase2,-1)
ENDIF
ENDIF
ELSE
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_GO_TO_ENTITY_WHILE_AIMING_AT_ENTITY) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_GO_TO_ENTITY_WHILE_AIMING_AT_ENTITY) <> WAITING_TO_START_TASK
TASK_GO_TO_ENTITY_WHILE_AIMING_AT_ENTITY(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrantChase2,pedImmigrantChase2,PEDMOVEBLENDRATIO_WALK,FALSE,4.5)
ENDIF
ENDIF
*/
IF GET_DISTANCE_BETWEEN_ENTITIES(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrantChase2) < 3.0//9.0
IF GET_DISTANCE_BETWEEN_ENTITIES(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrantChase2) < 1.4
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_GO_TO_COORD_WHILE_AIMING_AT_ENTITY) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_GO_TO_COORD_WHILE_AIMING_AT_ENTITY) <> WAITING_TO_START_TASK
TASK_GO_TO_COORD_WHILE_AIMING_AT_ENTITY(sRCLauncherDataLocal.pedID[ic_JOSEF],GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(sRCLauncherDataLocal.pedID[ic_JOSEF],<<0.0,-4.5,0.0>>),pedImmigrantChase2,2.0,FALSE,2.5)
ENDIF
ELSE
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_AIM_GUN_AT_ENTITY) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_AIM_GUN_AT_ENTITY) <> WAITING_TO_START_TASK
TASK_AIM_GUN_AT_ENTITY(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrantChase2,-1)
ENDIF
ENDIF
ELSE
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_GO_TO_ENTITY_WHILE_AIMING_AT_ENTITY) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_GO_TO_ENTITY_WHILE_AIMING_AT_ENTITY) <> WAITING_TO_START_TASK
IF GET_DISTANCE_BETWEEN_ENTITIES(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrantChase2) < 9.0
fJosefMBR = 1.0
ELSE
fJosefMBR = 2.0
ENDIF
TASK_GO_TO_ENTITY_WHILE_AIMING_AT_ENTITY(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrantChase2,pedImmigrantChase2,fJosefMBR,FALSE,2.0) //4.5
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
IF bBlokestunned = TRUE
IF IS_PED_SITTING_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
IF GET_ENTITY_SPEED(sRCLauncherDataLocal.vehID[0]) < 0.1
IF GET_DISTANCE_BETWEEN_ENTITIES(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrant[i]) < 40.0
IF bOkForJosefToLeaveCar = TRUE
IF GET_GAME_TIMER() > iTimerJoeLeftCar + 400 //200
TASK_LOOK_AT_ENTITY(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrant[i],-1)
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_GO_TO_ENTITY) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_GO_TO_ENTITY) <> WAITING_TO_START_TASK
//AND NOT IS_POSITION_OCCUPIED(GET_WORLD_POSITION_OF_ENTITY_BONE(sRCLauncherDataLocal.vehID[0],14),2.5,FALSE,FALSE,TRUE,FALSE,FALSE,pedImmigrant[i])
AND NOT IS_PLAYER_BLOCKING_DOOR()
SET_PED_COMBAT_ATTRIBUTES(sRCLauncherDataLocal.pedID[ic_JOSEF], CA_USE_VEHICLE, FALSE)
SET_PED_COMBAT_ATTRIBUTES(sRCLauncherDataLocal.pedID[ic_JOSEF], CA_DO_DRIVEBYS, FALSE)
TASK_GO_TO_ENTITY(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrant[i],-1)
//IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
//PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_SURR", "MIN2_SURR_1", CONV_PRIORITY_MEDIUM) //Ziskat do auta fuckermother!
//CREATE_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_SURR_1", CONV_PRIORITY_VERY_HIGH)
//ENDIF
IF iShoutSurr1 <> 1
KILL_FACE_TO_FACE_CONVERSATION()
ENDIF
iShoutSurr1 = 1
bOkForJoeToLeaveCar = TRUE
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF bOkForJoeToLeaveCar = TRUE
IF bImmigrantHandsUp = FALSE
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF iShoutSurr1 = 1
IF CREATE_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_SURR_1", CONV_PRIORITY_VERY_HIGH)
iShoutSurr1 = 2
ENDIF
ENDIF
ENDIF
IF GET_DISTANCE_BETWEEN_ENTITIES(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrant[i]) < 9//7.0
AND CAN_PED_SEE_PED(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrant[i])
IF NOT IS_PED_BEING_STUNNED(pedImmigrant[i])
OR IS_PED_GETTING_UP(pedImmigrant[i])
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_COMBAT) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_COMBAT) <> WAITING_TO_START_TASK
TASK_COMBAT_PED(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrant[i],COMBAT_PED_PREVENT_CHANGING_TARGET)
//TASK_SHOOT_AT_ENTITY(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrant[i],-1,FIRING_TYPE_DEFAULT)
ENDIF
ELSE
IF IS_PED_SITTING_IN_ANY_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF])
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_LEAVE_ANY_VEHICLE) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_LEAVE_ANY_VEHICLE) <> WAITING_TO_START_TASK
AND GET_ENTITY_SPEED(sRCLauncherDataLocal.vehID[0]) < 0.1
//AND NOT IS_POSITION_OCCUPIED(GET_WORLD_POSITION_OF_ENTITY_BONE(sRCLauncherDataLocal.vehID[0],14),2.5,FALSE,FALSE,TRUE,FALSE,FALSE,pedImmigrant[i])
AND NOT IS_PLAYER_BLOCKING_DOOR()
TASK_LEAVE_ANY_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],1200)
ENDIF
ELSE
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_AIM_GUN_AT_ENTITY) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_AIM_GUN_AT_ENTITY) <> WAITING_TO_START_TASK
TASK_AIM_GUN_AT_ENTITY(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrant[i],-1)
ENDIF
ENDIF
ENDIF
ELSE
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_COMBAT) = PERFORMING_TASK
IF GET_DISTANCE_BETWEEN_ENTITIES(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrant[i]) > 11//9.0
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_GO_TO_ENTITY) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_GO_TO_ENTITY) <> WAITING_TO_START_TASK
TASK_GO_TO_ENTITY(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrant[i],DEFAULT_TIME_BEFORE_WARP_MINUTE_2)
ENDIF
ENDIF
ELSE
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_GO_TO_ENTITY) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_GO_TO_ENTITY) <> WAITING_TO_START_TASK
TASK_GO_TO_ENTITY(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrant[i],DEFAULT_TIME_BEFORE_WARP_MINUTE_2)
ENDIF
ENDIF
ENDIF
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_ANY) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_ANY) <> WAITING_TO_START_TASK
TASK_GO_TO_ENTITY(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrant[i])
ENDIF
ELSE
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_ENTER_VEHICLE) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_ENTER_VEHICLE) <> WAITING_TO_START_TASK
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_COMBAT) = PERFORMING_TASK
CLEAR_PED_TASKS(sRCLauncherDataLocal.pedID[ic_JOSEF])
ENDIF
/*
IF GET_DISTANCE_BETWEEN_ENTITIES(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.pedID[ic_JOE]) < 9
AND GET_DISTANCE_BETWEEN_ENTITIES(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrant[i]) < 9
AND NOT IS_PED_BEING_STUNNED(pedImmigrant[i])
AND NOT IS_PED_RAGDOLL(pedImmigrant[i])
AND NOT IS_PED_GETTING_UP(pedImmigrant[i])
AND GET_DISTANCE_BETWEEN_ENTITIES(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0]) > 5.0
AND GET_DISTANCE_BETWEEN_ENTITIES(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0]) < 15.0
IF GET_DISTANCE_BETWEEN_ENTITIES(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrant[i]) < 1.6
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_GO_TO_COORD_WHILE_AIMING_AT_ENTITY) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_GO_TO_COORD_WHILE_AIMING_AT_ENTITY) <> WAITING_TO_START_TASK
TASK_GO_TO_COORD_WHILE_AIMING_AT_ENTITY(sRCLauncherDataLocal.pedID[ic_JOSEF],GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(sRCLauncherDataLocal.pedID[ic_JOSEF],<<0.0,-4.5,0.0>>),pedImmigrant[i],2.0,FALSE,2.5)
ENDIF
ELSE
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_GO_TO_ENTITY_WHILE_AIMING_AT_ENTITY) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_GO_TO_ENTITY_WHILE_AIMING_AT_ENTITY) <> WAITING_TO_START_TASK
TASK_GO_TO_ENTITY_WHILE_AIMING_AT_ENTITY(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0],pedImmigrant[i],1,FALSE,4)
ENDIF
ENDIF
ELSE
*/
IF GET_DISTANCE_BETWEEN_ENTITIES(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrant[i]) < 3.5//9.0
OR IS_PED_IN_VEHICLE(pedImmigrant[0],sRCLauncherDataLocal.vehID[0],TRUE)
IF GET_DISTANCE_BETWEEN_ENTITIES(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrant[i]) < 1.4//1.6
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_GO_TO_COORD_WHILE_AIMING_AT_ENTITY) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_GO_TO_COORD_WHILE_AIMING_AT_ENTITY) <> WAITING_TO_START_TASK
TASK_GO_TO_COORD_WHILE_AIMING_AT_ENTITY(sRCLauncherDataLocal.pedID[ic_JOSEF],GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(sRCLauncherDataLocal.pedID[ic_JOSEF],<<0.0,-4.5,0.0>>),pedImmigrant[i],2.0,FALSE,2.5)
ENDIF
ELSE
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_AIM_GUN_AT_ENTITY) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_AIM_GUN_AT_ENTITY) <> WAITING_TO_START_TASK
TASK_AIM_GUN_AT_ENTITY(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrant[i],-1)
ENDIF
ENDIF
ELSE
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_GO_TO_ENTITY_WHILE_AIMING_AT_ENTITY) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_GO_TO_ENTITY_WHILE_AIMING_AT_ENTITY) <> WAITING_TO_START_TASK
IF GET_DISTANCE_BETWEEN_ENTITIES(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrant[i]) < 9.0
fJosefMBR = 1.0
ELSE
fJosefMBR = 2.0
ENDIF
TASK_GO_TO_ENTITY_WHILE_AIMING_AT_ENTITY(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrant[i],pedImmigrant[i],fJosefMBR,FALSE,2.7) //4.5
ENDIF
ENDIF
//ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDPROC
/// PURPOSE: AI for Josef during chase 2
PROC Chase2JosefAi()
IF IS_PED_UNINJURED(pedImmigrant[1])
fDistBetweenJosefAndImmigrant = GET_DISTANCE_BETWEEN_ENTITIES(sRCLauncherDataLocal.pedID[ic_JOE],pedImmigrant[1])
IF bBlokestunned = FALSE
IF fDistBetweenJosefAndImmigrant < 9.0 //josef taze ped if within 10 meters otherwise clear tasks
IF bJosefCombatTaskGiven = FALSE
//TASK_COMBAT_PED(sRCLauncherDataLocal.pedID[ic_JOE],pedImmigrant[1])
TASK_DRIVE_BY(sRCLauncherDataLocal.pedID[ic_JOE],pedImmigrant[1],NULL,<<0,0,0>>,9,100)
IF IS_PED_ON_ANY_BIKE(pedImmigrant[1])
SET_PED_CAN_BE_KNOCKED_OFF_VEHICLE(pedImmigrant[1],KNOCKOFFVEHICLE_EASY)
ENDIF
bJosefCombatTaskGiven = TRUE
ENDIF
ELSE
IF bJosefCombatTaskGiven = TRUE
CLEAR_PED_TASKS(sRCLauncherDataLocal.pedID[ic_JOE])
bJosefCombatTaskGiven = FALSE
ENDIF
ENDIF
ELSE
IF fDistBetweenJosefAndImmigrant >= 40.0
CLEAR_PED_TASKS(sRCLauncherDataLocal.pedID[ic_JOE])
ENDIF
ENDIF
IF bBlokestunned = FALSE
IF fDistBetweenJosefAndImmigrant > 220.0
IF bGettingAwayMessagePrinted = FALSE
IF IS_VEHICLE_OK(sRCLauncherDataLocal.vehID[0])
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
IF i = 0
IF GET_GAME_TIMER() > iTimerChase1Started + 12000
IF bPrint18 = FALSE
//PRINT_NOW("MIN2_18",7000,0) //The immigrant is getting away
bPrint18 = TRUE
ENDIF
ENDIF
ELSE
IF bBlokestunned = FALSE
AND bSECONDBlokestunned = FALSE
IF bPrint37 = FALSE
//PRINT_NOW("MIN2_37",7000,0) //The immigrants are getting away
bPrint37 = TRUE
ENDIF
ELSE
IF GET_GAME_TIMER() > iTimerChase1Started + 12000
IF bPrint18 = FALSE
//PRINT_NOW("MIN2_18",7000,0) //The immigrant is getting away
bPrint18 = TRUE
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
//iGameTimer = GET_GAME_TIMER()
bGettingAwayMessagePrinted = TRUE
ELSE
//iGameTimerUpdate = GET_GAME_TIMER()
//IF iGameTimerUpdate > (iGameTimer + 20000)
IF fDistBetweenJosefAndImmigrant > 300.0
IF i = 0
sFailReason = "MIN2_43"
ELSE
IF bBlokestunned = FALSE
AND bSECONDBlokestunned = FALSE
sFailReason = "MIN2_35"
ELSE
sFailReason = "MIN2_23"
ENDIF
ENDIF
missionStage = MS_MISSION_FAILING
ENDIF
//ENDIF
ENDIF
ELSE
bGettingAwayMessagePrinted = FALSE
ENDIF
ENDIF
IF bBlokestunned = FALSE
//IF CAN_PED_RAGDOLL(pedImmigrant[i])
IF HAS_ENTITY_BEEN_DAMAGED_BY_WEAPON(pedImmigrant[1],WEAPONTYPE_STUNGUN)
KnockPedOffBike() //Knock ped off bike if he gets tazed
ENDIF
//ENDIF
ENDIF
IF bBlokestunned = FALSE
//IF CAN_PED_RAGDOLL(pedImmigrant[i])
IF IS_VEHICLE_OK(vehChaseCar[1])
IF NOT IS_PED_IN_VEHICLE(pedImmigrant[1],vehChaseCar[1])
IF bFirstImmigrantFleeing = FALSE
KnockPedOffBike() //Knock ped off bike if he gets rammed by player's car
ENDIF
ENDIF
ENDIF
//ENDIF
ENDIF
IF bBlokestunned = TRUE
IF HAS_ENTITY_BEEN_DAMAGED_BY_WEAPON(pedImmigrant[i],WEAPONTYPE_STUNGUN)
CPRINTLN(DEBUG_MISSION, "IMMIGRANT DAMAGED BY STUNGUN")
IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(pedImmigrant[i],sRCLauncherDataLocal.pedID[ic_JOSEF],FALSE)
CPRINTLN(DEBUG_MISSION, "IMMIGRANT DAMAGED BY JOSEF")
IF NOT IS_PED_IN_ANY_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF])
++iTimesTazed
ENDIF
ENDIF
IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(pedImmigrant[i],sRCLauncherDataLocal.pedID[ic_JOE],FALSE)
CPRINTLN(DEBUG_MISSION, "IMMIGRANT DAMAGED BY JOE")
IF NOT IS_PED_IN_ANY_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE])
++iTimesTazed
ENDIF
ENDIF
IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(pedImmigrant[i],PLAYER_PED_ID(),FALSE)
CPRINTLN(DEBUG_MISSION, "IMMIGRANT DAMAGED BY PLAYER")
IF NOT IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
++iTimesTazed
ENDIF
ENDIF
CLEAR_PED_LAST_WEAPON_DAMAGE(pedImmigrant[i])
ENDIF
IF bImmigrantHandsUp = FALSE
iGameTimerPed1KnockedOffUpdate = GET_GAME_TIMER()
IF iGameTimerPed1KnockedOffUpdate > iGameTimerPed1KnockedOff + 4000
SET_ENTITY_PROOFS(pedImmigrant[1],FALSE,FALSE,FALSE,FALSE,FALSE)
ENDIF
IF NOT IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
IF HAS_PLAYER_THREATENED_PED(pedImmigrant[i])
IF iTimesTazed = 0
++iTimesTazed
ENDIF
SetImmigrantHandsUp()
ENDIF
IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(pedImmigrant[i],PLAYER_PED_ID(),FALSE)
fDistBetweenPlayerAndImmigrant = GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(),pedImmigrant[1])
IF fDistBetweenPlayerAndImmigrant < 9.0
IF iTimesTazed > 0
SetImmigrantHandsUp()
ENDIF
ENDIF
ENDIF
ENDIF
IF NOT IS_PED_IN_ANY_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE])
IF fDistBetweenJosefAndImmigrant < 7.0
IF iTimesTazed > 0
SetImmigrantHandsUp() //Hands up
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDPROC
/// PURPOSE: AI for Joe during chase 2
PROC Chase2JoeAi()
IF IS_PED_UNINJURED(pedImmigrantChase2)
fDistBetweenJoeAndImmigrant = GET_DISTANCE_BETWEEN_ENTITIES(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrantChase2)
IF bSECONDBlokestunned = FALSE
IF fDistBetweenJoeAndImmigrant < 9.0 //joe taze ped if within 10 meters otherwise clear tasks
IF bJoeCombatTaskGiven = FALSE
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "~~~~~~~~~JOSEF SHOULD DO DRIVEBY~~~~~~~~~")
#ENDIF
//TASK_COMBAT_PED(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrantChase2)
TASK_DRIVE_BY(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrantChase2,NULL,<<0,0,0>>,10,100)
IF IS_PED_ON_ANY_BIKE(pedImmigrantChase2)
SET_PED_CAN_BE_KNOCKED_OFF_VEHICLE(pedImmigrantChase2,KNOCKOFFVEHICLE_EASY)
ENDIF
bJoeCombatTaskGiven = TRUE
ENDIF
ELSE
IF bJoeCombatTaskGiven = TRUE
CLEAR_PED_TASKS(sRCLauncherDataLocal.pedID[ic_JOSEF])
bJoeCombatTaskGiven = FALSE
ENDIF
ENDIF
ELSE
IF fDistBetweenJoeAndImmigrant >= 40.0
CLEAR_PED_TASKS(sRCLauncherDataLocal.pedID[ic_JOSEF])
ENDIF
ENDIF
IF bSECONDBlokestunned = FALSE
IF fDistBetweenJoeAndImmigrant > 220.0
IF bSecondGettingAwayMessagePrinted = FALSE
IF IS_VEHICLE_OK(sRCLauncherDataLocal.vehID[0])
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
IF i = 0
IF GET_GAME_TIMER() > iTimerChase1Started + 12000
IF bPrint18 = FALSE
//PRINT_NOW("MIN2_18",7000,0) //The immigrant is getting away
bPrint18 = TRUE
ENDIF
ENDIF
ELSE
IF bBlokestunned = FALSE
AND bSECONDBlokestunned = FALSE
IF bPrint37 = FALSE
//PRINT_NOW("MIN2_37",7000,0) //The immigrants are getting away
bPrint37 = TRUE
ENDIF
ELSE
IF bPrint18 = FALSE
//PRINT_NOW("MIN2_18",7000,0) //The immigrant is getting away
bPrint18 = TRUE
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
//iGameTimerSecondPedGettingAway = GET_GAME_TIMER()
bSecondGettingAwayMessagePrinted = TRUE
ELSE
//iGameTimerSecondPedGettingAwayUpdate = GET_GAME_TIMER()
//IF iGameTimerSecondPedGettingAwayUpdate > (iGameTimerSecondPedGettingAway + 20000)
IF fDistBetweenJoeAndImmigrant > 300.0
IF i = 0
sFailReason = "MIN2_43"
ELSE
IF bBlokestunned = FALSE
AND bSECONDBlokestunned = FALSE
sFailReason = "MIN2_35"
ELSE
sFailReason = "MIN2_23"
ENDIF
ENDIF
missionStage = MS_MISSION_FAILING
ENDIF
//ENDIF
ENDIF
ELSE
bSecondGettingAwayMessagePrinted = FALSE
ENDIF
ENDIF
IF bSECONDBlokestunned = FALSE
IF HAS_ENTITY_BEEN_DAMAGED_BY_WEAPON(pedImmigrantChase2,WEAPONTYPE_STUNGUN)
KnockSECONDPedOffBike() //Knock ped off bike if he gets tazed
ENDIF
ENDIF
IF bSECONDBlokestunned = FALSE
IF IS_PED_UNINJURED(pedImmigrantChase2)
IF NOT IS_PED_IN_VEHICLE(pedImmigrantChase2,vehChaseCarChase2)
IF bImmigrantChase2Fleeing = FALSE
KnockSECONDPedOffBike() //Knock ped off bike if he gets rammed by player's car
ENDIF
ENDIF
ENDIF
ENDIF
IF bSECONDBlokestunned = TRUE
IF HAS_ENTITY_BEEN_DAMAGED_BY_WEAPON(pedImmigrantChase2,WEAPONTYPE_STUNGUN)
CPRINTLN(DEBUG_MISSION, "IMMIGRANT DAMAGED BY STUNGUN")
IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(pedImmigrantChase2,sRCLauncherDataLocal.pedID[ic_JOSEF],FALSE)
CPRINTLN(DEBUG_MISSION, "IMMIGRANT DAMAGED BY JOSEF")
IF NOT IS_PED_IN_ANY_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF])
++iTimesTazedSECONDPED
ENDIF
ENDIF
IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(pedImmigrantChase2,sRCLauncherDataLocal.pedID[ic_JOE],FALSE)
CPRINTLN(DEBUG_MISSION, "IMMIGRANT DAMAGED BY JOE")
IF NOT IS_PED_IN_ANY_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE])
++iTimesTazedSECONDPED
ENDIF
ENDIF
IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(pedImmigrantChase2,PLAYER_PED_ID(),FALSE)
CPRINTLN(DEBUG_MISSION, "IMMIGRANT DAMAGED BY PLAYER")
IF NOT IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
++iTimesTazedSECONDPED
ENDIF
ENDIF
CLEAR_PED_LAST_WEAPON_DAMAGE(pedImmigrantChase2)
ENDIF
IF bImmigrantChase2HandsUp = FALSE
iGameTimerPed2KnockedOffUpdate = GET_GAME_TIMER()
IF iGameTimerPed2KnockedOffUpdate > iGameTimerPed2KnockedOff + 4000
SET_ENTITY_PROOFS(pedImmigrantChase2,FALSE,FALSE,FALSE,FALSE,FALSE)
ENDIF
IF NOT IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
IF HAS_PLAYER_THREATENED_PED(pedImmigrantChase2)
IF iTimesTazedSECONDPED = 0
++iTimesTazedSECONDPED
ENDIF
SetImmigrantChase2HandsUp()
ENDIF
IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(pedImmigrantChase2,PLAYER_PED_ID(),FALSE)
fDistBetweenPlayerAndImmigrant = GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(),pedImmigrantChase2)
IF fDistBetweenPlayerAndImmigrant < 9.0
IF iTimesTazedSECONDPED > 0
SetImmigrantChase2HandsUp()
ENDIF
ENDIF
ENDIF
ENDIF
IF NOT IS_PED_IN_ANY_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF])
IF fDistBetweenJoeAndImmigrant < 7.0
IF iTimesTazedSECONDPED > 0
SetImmigrantChase2HandsUp() //Hands up
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDPROC
/// PURPOSE: Manage Immigrant while he gets in the vehicle
PROC ImmigrantGetInTruck()
IF IS_PED_UNINJURED(pedImmigrant[i])
//SET_PED_MOVE_RATE_OVERRIDE(pedImmigrant[i],1.15)
IF IS_PED_SITTING_IN_VEHICLE(pedImmigrant[i],sRCLauncherDataLocal.vehID[0])
AttachPedToCar()
EXIT
ENDIF
IF bBloke2AttachedToCar = FALSE
fDistBetweenCarAndMigrant = GET_DISTANCE_BETWEEN_ENTITIES(sRCLauncherDataLocal.vehID[0],pedImmigrant[i])
IF fDistBetweenCarAndMigrant < 40
OR IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),pedImmigrant[i],40)
IF iPedKneeling = 0
//IF fDistBetweenCarAndMigrant < 2.5
//IF IS_ENTITY_IN_RANGE_COORDS(pedImmigrant[i],GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(sRCLauncherDataLocal.vehID[0],<<1.5,0,0>>),3)
IF IS_PED_RAGDOLL(pedImmigrant[i])
OR IS_PED_GETTING_UP(pedImmigrant[i])
OR IS_PED_BEING_STUNNED(pedImmigrant[i])
iTimerPed1Ragdoll = GET_GAME_TIMER()
ENDIF
IF IS_ENTITY_IN_RANGE_ENTITY(pedImmigrant[i],sRCLauncherDataLocal.vehID[0],4.5)
OR GET_GAME_TIMER() > iTimerPed1Ragdoll + 2500
SET_PED_MOVEMENT_CLIPSET(pedImmigrant[i],"MOVE_M@BAIL_BOND_TAZERED")
IF IS_ENTITY_PLAYING_ANIM(pedImmigrant[i],"rcmminute2","arrest_walk")
STOP_ANIM_TASK(pedImmigrant[i],"rcmminute2","arrest_walk",-2)
TASK_PLAY_ANIM(pedImmigrant[i],"rcmminute2","handsup_exit",REALLY_SLOW_BLEND_IN,SLOW_BLEND_OUT,-1,AF_SECONDARY | AF_UPPERBODY,0.3)
//KILL_ANY_CONVERSATION()
ENDIF
IF IS_ENTITY_IN_RANGE_ENTITY(pedImmigrant[i],sRCLauncherDataLocal.vehID[0],3)
AND IS_PED_IN_VEHICLE(pedImmigrant[i],sRCLauncherDataLocal.vehID[0],TRUE)
KILL_ANY_CONVERSATION()
ENDIF
IF bImmigrantGettingIntoCar = FALSE
/*
CLEAR_PED_TASKS(pedImmigrant[i])
OPEN_SEQUENCE_TASK(seqImmigrantBeCarried)
TASK_SET_DECISION_MAKER(NULL,DECISION_MAKER_EMPTY)
TASK_ENTER_VEHICLE(NULL,sRCLauncherDataLocal.vehID[0],DEFAULT_TIME_BEFORE_WARP_MINUTE_2,VS_BACK_RIGHT,PEDMOVEBLENDRATIO_WALK)
CLOSE_SEQUENCE_TASK(seqImmigrantBeCarried)
TASK_PERFORM_SEQUENCE(pedImmigrant[i],seqImmigrantBeCarried)
*/
IF GET_SCRIPT_TASK_STATUS(pedImmigrant[i],SCRIPT_TASK_PERFORM_SEQUENCE) <> PERFORMING_TASK
IF GET_SCRIPT_TASK_STATUS(pedImmigrant[i],SCRIPT_TASK_ENTER_VEHICLE) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(pedImmigrant[i],SCRIPT_TASK_ENTER_VEHICLE) <> WAITING_TO_START_TASK
TASK_ENTER_VEHICLE(pedImmigrant[i],sRCLauncherDataLocal.vehID[0],DEFAULT_TIME_BEFORE_WARP_MINUTE_2,VS_BACK_RIGHT,1)
ENDIF
ENDIF
bImmigrantGettingIntoCar = TRUE
ELSE
IF GET_SCRIPT_TASK_STATUS(pedImmigrant[i],SCRIPT_TASK_PERFORM_SEQUENCE) <> PERFORMING_TASK
IF GET_SCRIPT_TASK_STATUS(pedImmigrant[i],SCRIPT_TASK_ENTER_VEHICLE) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(pedImmigrant[i],SCRIPT_TASK_ENTER_VEHICLE) <> WAITING_TO_START_TASK
TASK_ENTER_VEHICLE(pedImmigrant[i],sRCLauncherDataLocal.vehID[0],DEFAULT_TIME_BEFORE_WARP_MINUTE_2,VS_BACK_RIGHT,1)
ENDIF
ENDIF
ENDIF
ELSE
SET_PED_MOVEMENT_CLIPSET(pedImmigrant[i],"MOVE_M@BAIL_BOND_NOT_TAZERED")
IF IS_PED_GETTING_UP(pedImmigrant[i])
IF bPed1GettingUp = FALSE
IF IS_ENTITY_PLAYING_ANIM(pedImmigrant[i],"rcmminute2","arrest_walk")
STOP_ANIM_TASK(pedImmigrant[i],"rcmminute2","arrest_walk",NORMAL_BLEND_OUT)
ENDIF
iTimerPed1GettingUp = GET_GAME_TIMER()
bPed1GettingUp = TRUE
ELSE
IF GET_GAME_TIMER() > iTimerPed1GettingUp + 3100//1400
IF NOT IS_PED_RAGDOLL(pedImmigrant[i])
//AND NOT IS_PED_BEING_STUNNED(pedImmigrant[i],WEAPONTYPE_STUNGUN)
IF NOT IS_ENTITY_PLAYING_ANIM(pedImmigrant[i],"rcmminute2","arrest_walk")
IF NOT IS_PED_PERFORMING_STEALTH_KILL(PLAYER_PED_ID())
TASK_PLAY_ANIM(pedImmigrant[i], "rcmminute2","arrest_walk", 1.4, NORMAL_BLEND_OUT, -1, AF_SECONDARY| AF_UPPERBODY | AF_LOOPING | AF_TAG_SYNC_CONTINUOUS)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
IF NOT IS_PED_RAGDOLL(pedImmigrant[i])
AND NOT IS_PED_BEING_STUNNED(pedImmigrant[i],WEAPONTYPE_STUNGUN)
IF NOT IS_ENTITY_PLAYING_ANIM(pedImmigrant[i],"rcmminute2","arrest_walk")
IF NOT IS_PED_PERFORMING_STEALTH_KILL(PLAYER_PED_ID())
TASK_PLAY_ANIM(pedImmigrant[i], "rcmminute2","arrest_walk", 1.4, NORMAL_BLEND_OUT, -1, AF_SECONDARY| AF_UPPERBODY | AF_LOOPING | AF_TAG_SYNC_CONTINUOUS)
ENDIF
ENDIF
ENDIF
bPed1GettingUp = FALSE
ENDIF
ENDIF
IF IS_PED_SITTING_IN_VEHICLE(pedImmigrant[i],sRCLauncherDataLocal.vehID[0])
iPed1getIn = 1000
ENDIF
IF IS_PED_IN_VEHICLE(pedImmigrant[i],sRCLauncherDataLocal.vehID[0],TRUE)
++iPed1getIn
IF i <> 0
OR iPed1getIn > 80
IF NOT IS_PED_IN_ANY_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],TRUE)
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOE],SCRIPT_TASK_ENTER_VEHICLE) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOE],SCRIPT_TASK_ENTER_VEHICLE) <> WAITING_TO_START_TASK
IF i = 0
IF IS_ENTITY_IN_RANGE_ENTITY(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0],15.0)
TASK_ENTER_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0],DEFAULT_TIME_BEFORE_WARP_MINUTE_2,VS_FRONT_RIGHT,PEDMOVEBLENDRATIO_WALK)
ELSE
TASK_ENTER_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0],DEFAULT_TIME_BEFORE_WARP_MINUTE_2,VS_FRONT_RIGHT,PEDMOVEBLENDRATIO_RUN)
ENDIF
ELSE
TASK_ENTER_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0],DEFAULT_TIME_BEFORE_WARP_MINUTE_2,VS_FRONT_RIGHT,PEDMOVEBLENDRATIO_WALK)
ENDIF
ENDIF
ENDIF
ENDIF
IF iPed1getIn > 20
AND i = 0
AND NOT IS_PED_INJURED(sRCLauncherDataLocal.pedID[ic_JOSEF])
IF NOT IS_PED_IN_ANY_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],TRUE)
IF IS_IT_OK_FOR_JOSEF_TO_GET_IN()
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_ENTER_VEHICLE) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_ENTER_VEHICLE) <> WAITING_TO_START_TASK
IF IS_ENTITY_IN_RANGE_ENTITY(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0],10.0)
TASK_ENTER_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0],DEFAULT_TIME_BEFORE_WARP_MINUTE_2,VS_BACK_LEFT,1)
ELSE
TASK_ENTER_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0],DEFAULT_TIME_BEFORE_WARP_MINUTE_2,VS_BACK_LEFT,PEDMOVEBLENDRATIO_RUN)
ENDIF
ENDIF
ELSE
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_FOLLOW_NAV_MESH_TO_COORD) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_FOLLOW_NAV_MESH_TO_COORD) <> WAITING_TO_START_TASK
TASK_FOLLOW_NAV_MESH_TO_COORD(sRCLauncherDataLocal.pedID[ic_JOSEF],GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(sRCLauncherDataLocal.vehID[0],<<-1.8,-0.2,0>>),1,DEFAULT_TIME_BEFORE_WARP_MINUTE_2,0.5,ENAV_DEFAULT,GET_ENTITY_HEADING(sRCLauncherDataLocal.vehID[0])-90.0)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ELIF iPedKneeling = 1
IF fDistBetweenCarAndMigrant < 20
OR IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),pedImmigrant[i],20)
IF NOT IS_ENTITY_PLAYING_ANIM(pedImmigrant[i],"rcmminute2","kneeling_arrest_get_up")
TASK_PLAY_ANIM(pedImmigrant[i], "rcmminute2","kneeling_arrest_get_up", FAST_BLEND_IN, -2, -1)
iPedKneeling = 2
ENDIF
ENDIF
ELIF iPedKneeling = 2
IF NOT IS_ENTITY_PLAYING_ANIM(pedImmigrant[i],"rcmminute2","kneeling_arrest_get_up")
//OR GET_ENTITY_ANIM_CURRENT_TIME(pedImmigrant[i],"rcmminute2","kneeling_arrest_get_up") > 0.9
TASK_PLAY_ANIM(pedImmigrant[i], "rcmminute2","arrest_walk", 2, NORMAL_BLEND_OUT, -1, AF_SECONDARY| AF_UPPERBODY | AF_LOOPING | AF_TAG_SYNC_CONTINUOUS)
TASK_ENTER_VEHICLE(pedImmigrant[i],sRCLauncherDataLocal.vehID[0],DEFAULT_TIME_BEFORE_WARP_MINUTE_2,VS_BACK_RIGHT,1.2)
iPedKneeling = 0
ENDIF
ENDIF
ELSE
IF NOT IS_PED_RAGDOLL(pedImmigrant[i])
AND NOT IS_PED_BEING_STUNNED(pedImmigrant[i],WEAPONTYPE_STUNGUN)
IF NOT IS_ENTITY_PLAYING_ANIM(pedImmigrant[i],"rcmminute2","kneeling_arrest_idle")
CLEAR_PED_TASKS(pedImmigrant[i])
TASK_PLAY_ANIM(pedImmigrant[i], "rcmminute2","kneeling_arrest_idle", 2, FAST_BLEND_OUT, -1, AF_LOOPING)
IF iPedKneeling <> 1
KILL_ANY_CONVERSATION()
ENDIF
iPedKneeling = 1
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDPROC
/// PURPOSE: Manage Immigrant while he gets in the vehicle
PROC ImmigrantChase2GetInTruck()
IF IS_PED_UNINJURED(pedImmigrantChase2)
//SET_PED_MOVE_RATE_OVERRIDE(pedImmigrantChase2,1.15)
IF IS_PED_SITTING_IN_VEHICLE(pedImmigrantChase2,sRCLauncherDataLocal.vehID[0])
AttachSECONDPedToCar()
EXIT
ENDIF
IF bpedImmigrantChase2Attached = FALSE
fDistBetweenCarAndMigrant = GET_DISTANCE_BETWEEN_ENTITIES(sRCLauncherDataLocal.vehID[0],pedImmigrantChase2)
IF fDistBetweenCarAndMigrant < 40
OR IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),pedImmigrantChase2,40)
IF iPed2Kneeling = 0
//IF fDistBetweenCarAndMigrant < 2.5
//IF IS_ENTITY_IN_RANGE_COORDS(pedImmigrantChase2,GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(sRCLauncherDataLocal.vehID[0],<<1.5,0,0>>),3)
IF IS_PED_RAGDOLL(pedImmigrantChase2)
OR IS_PED_GETTING_UP(pedImmigrantChase2)
OR IS_PED_BEING_STUNNED(pedImmigrantChase2)
iTimerPed2Ragdoll = GET_GAME_TIMER()
ENDIF
IF IS_ENTITY_IN_RANGE_ENTITY(pedImmigrantChase2,sRCLauncherDataLocal.vehID[0],4.5)
OR GET_GAME_TIMER() > iTimerPed2Ragdoll + 2500
SET_PED_MOVEMENT_CLIPSET(pedImmigrantChase2,"MOVE_M@BAIL_BOND_TAZERED")
IF IS_ENTITY_PLAYING_ANIM(pedImmigrantChase2,"rcmminute2","arrest_walk")
STOP_ANIM_TASK(pedImmigrantChase2,"rcmminute2","arrest_walk",-2)
TASK_PLAY_ANIM(pedImmigrantChase2,"rcmminute2","handsup_exit",REALLY_SLOW_BLEND_IN,SLOW_BLEND_OUT,-1,AF_SECONDARY | AF_UPPERBODY,0.3)
//KILL_ANY_CONVERSATION()
ENDIF
IF IS_ENTITY_IN_RANGE_ENTITY(pedImmigrantChase2,sRCLauncherDataLocal.vehID[0],3)
AND IS_PED_IN_VEHICLE(pedImmigrantChase2,sRCLauncherDataLocal.vehID[0],TRUE)
KILL_ANY_CONVERSATION()
ENDIF
IF bImmigrantChase2GettingIntoCar = FALSE
/*
CLEAR_PED_TASKS(pedImmigrantChase2)
OPEN_SEQUENCE_TASK(seqImmigrantBeCarried)
TASK_SET_DECISION_MAKER(NULL,DECISION_MAKER_EMPTY)
TASK_ENTER_VEHICLE(NULL,sRCLauncherDataLocal.vehID[0],DEFAULT_TIME_BEFORE_WARP_MINUTE_2,VS_BACK_RIGHT,PEDMOVEBLENDRATIO_WALK)
CLOSE_SEQUENCE_TASK(seqImmigrantBeCarried)
TASK_PERFORM_SEQUENCE(pedImmigrantChase2,seqImmigrantBeCarried)
*/
IF GET_SCRIPT_TASK_STATUS(pedImmigrantChase2,SCRIPT_TASK_PERFORM_SEQUENCE) <> PERFORMING_TASK
IF GET_SCRIPT_TASK_STATUS(pedImmigrantChase2,SCRIPT_TASK_ENTER_VEHICLE) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(pedImmigrantChase2,SCRIPT_TASK_ENTER_VEHICLE) <> WAITING_TO_START_TASK
TASK_ENTER_VEHICLE(pedImmigrantChase2,sRCLauncherDataLocal.vehID[0],DEFAULT_TIME_BEFORE_WARP_MINUTE_2,VS_BACK_RIGHT,1)
ENDIF
ENDIF
bImmigrantChase2GettingIntoCar = TRUE
ELSE
IF GET_SCRIPT_TASK_STATUS(pedImmigrantChase2,SCRIPT_TASK_PERFORM_SEQUENCE) <> PERFORMING_TASK
IF GET_SCRIPT_TASK_STATUS(pedImmigrantChase2,SCRIPT_TASK_ENTER_VEHICLE) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(pedImmigrantChase2,SCRIPT_TASK_ENTER_VEHICLE) <> WAITING_TO_START_TASK
TASK_ENTER_VEHICLE(pedImmigrantChase2,sRCLauncherDataLocal.vehID[0],DEFAULT_TIME_BEFORE_WARP_MINUTE_2,VS_BACK_RIGHT,1)
ENDIF
ENDIF
ENDIF
ELSE
IF IS_PED_GETTING_UP(pedImmigrantChase2)
IF bPed2GettingUp = FALSE
IF IS_ENTITY_PLAYING_ANIM(pedImmigrantChase2,"rcmminute2","arrest_walk")
STOP_ANIM_TASK(pedImmigrantChase2,"rcmminute2","arrest_walk",NORMAL_BLEND_OUT)
ENDIF
iTimerPed2GettingUp = GET_GAME_TIMER()
bPed2GettingUp = TRUE
ELSE
IF GET_GAME_TIMER() > iTimerPed2GettingUp + 3100//1400
IF NOT IS_PED_RAGDOLL(pedImmigrantChase2)
//AND NOT IS_PED_BEING_STUNNED(pedImmigrantChase2,WEAPONTYPE_STUNGUN)
IF NOT IS_ENTITY_PLAYING_ANIM(pedImmigrantChase2,"rcmminute2","arrest_walk")
IF NOT IS_PED_PERFORMING_STEALTH_KILL(PLAYER_PED_ID())
TASK_PLAY_ANIM(pedImmigrantChase2, "rcmminute2","arrest_walk", 1.4, NORMAL_BLEND_OUT, -1, AF_SECONDARY| AF_UPPERBODY | AF_LOOPING | AF_TAG_SYNC_CONTINUOUS)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
IF NOT IS_PED_RAGDOLL(pedImmigrantChase2)
AND NOT IS_PED_BEING_STUNNED(pedImmigrantChase2,WEAPONTYPE_STUNGUN)
IF NOT IS_ENTITY_PLAYING_ANIM(pedImmigrantChase2,"rcmminute2","arrest_walk")
IF NOT IS_PED_PERFORMING_STEALTH_KILL(PLAYER_PED_ID())
TASK_PLAY_ANIM(pedImmigrantChase2, "rcmminute2","arrest_walk", 1.4, NORMAL_BLEND_OUT, -1, AF_SECONDARY| AF_UPPERBODY | AF_LOOPING | AF_TAG_SYNC_CONTINUOUS)
ENDIF
ENDIF
ENDIF
bPed2GettingUp = FALSE
ENDIF
ENDIF
IF IS_PED_IN_VEHICLE(pedImmigrantChase2,sRCLauncherDataLocal.vehID[0])
IF NOT IS_PED_IN_ANY_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF])
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_ENTER_VEHICLE) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_ENTER_VEHICLE) <> WAITING_TO_START_TASK
TASK_ENTER_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0],DEFAULT_TIME_BEFORE_WARP_MINUTE_2,VS_BACK_LEFT,1.2)
ENDIF
ENDIF
ENDIF
ELIF iPed2Kneeling = 1
IF fDistBetweenCarAndMigrant < 20
OR IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),pedImmigrantChase2,20)
IF NOT IS_ENTITY_PLAYING_ANIM(pedImmigrantChase2,"rcmminute2","kneeling_arrest_get_up")
TASK_PLAY_ANIM(pedImmigrantChase2, "rcmminute2","kneeling_arrest_get_up", FAST_BLEND_IN, -2, -1)
iPed2Kneeling = 2
ENDIF
ENDIF
ELIF iPed2Kneeling = 2
IF NOT IS_ENTITY_PLAYING_ANIM(pedImmigrantChase2,"rcmminute2","kneeling_arrest_get_up")
//OR GET_ENTITY_ANIM_CURRENT_TIME(pedImmigrantChase2,"rcmminute2","kneeling_arrest_get_up") > 0.9
TASK_PLAY_ANIM(pedImmigrantChase2, "rcmminute2","arrest_walk", 2, NORMAL_BLEND_OUT, -1, AF_SECONDARY| AF_UPPERBODY | AF_LOOPING | AF_TAG_SYNC_CONTINUOUS)
TASK_ENTER_VEHICLE(pedImmigrantChase2,sRCLauncherDataLocal.vehID[0],DEFAULT_TIME_BEFORE_WARP_MINUTE_2,VS_BACK_RIGHT,1.4)
iPed2Kneeling = 0
ENDIF
ENDIF
ELSE
IF NOT IS_PED_RAGDOLL(pedImmigrantChase2)
AND NOT IS_PED_BEING_STUNNED(pedImmigrantChase2,WEAPONTYPE_STUNGUN)
IF NOT IS_ENTITY_PLAYING_ANIM(pedImmigrantChase2,"rcmminute2","kneeling_arrest_idle")
CLEAR_PED_TASKS(pedImmigrantChase2)
TASK_PLAY_ANIM(pedImmigrantChase2, "rcmminute2","kneeling_arrest_idle", 2, FAST_BLEND_OUT, -1, AF_LOOPING)
IF iPed2Kneeling <> 1
KILL_ANY_CONVERSATION()
ENDIF
iPed2Kneeling = 1
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDPROC
/// PURPOSE: Josef Throws Manuel's papers out the window
PROC JosefThrowPapers()
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[ic_JOSEF])
IF iSeqJosefThrowPapers = 0
IF NOT DOES_ENTITY_EXIST(ObjPapers)
ObjPapers = CREATE_OBJECT_NO_OFFSET(Prop_Passport_01, GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(sRCLauncherDataLocal.vehID[0],<<-1.8,-0.3,0.7>>))
ATTACH_ENTITY_TO_ENTITY(ObjPapers, sRCLauncherDataLocal.pedID[ic_JOSEF], GET_PED_BONE_INDEX(sRCLauncherDataLocal.pedID[ic_JOSEF], BONETAG_PH_R_HAND), <<0,0,0>>, <<0,0,0>>, TRUE, TRUE)
OPEN_SEQUENCE_TASK(seqJosefThrowPapers)
TASK_PLAY_ANIM(NULL,"rcmminute2","intro_90_l",SLOW_BLEND_IN,SLOW_BLEND_OUT,-1,AF_UPPERBODY)
TASK_PLAY_ANIM(NULL,"rcmminute2","outro_90_l",SLOW_BLEND_IN,SLOW_BLEND_OUT,-1,AF_UPPERBODY)
CLOSE_SEQUENCE_TASK(seqJosefThrowPapers)
TASK_PERFORM_SEQUENCE(sRCLauncherDataLocal.pedID[ic_JOSEF],seqJosefThrowPapers)
iSeqJosefThrowPapers = 1
ENDIF
ELIF iSeqJosefThrowPapers = 1
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_PERFORM_SEQUENCE) = PERFORMING_TASK
IF GET_SEQUENCE_PROGRESS(sRCLauncherDataLocal.pedID[ic_JOSEF]) = 1
DETACH_ENTITY(ObjPapers)
iSeqJosefThrowPapers = 2
ENDIF
ENDIF
ENDIF
ENDIF
ENDPROC
FUNC BOOL ARE_ANY_IN_CAR_PRINTS_BEING_DISPLAYED()
IF IS_THIS_PRINT_BEING_DISPLAYED("MIN2_COPS")
OR IS_THIS_PRINT_BEING_DISPLAYED("MIN2_47")
OR IS_THIS_PRINT_BEING_DISPLAYED("MIN2_48")
OR IS_THIS_PRINT_BEING_DISPLAYED("MIN2_31")
OR IS_THIS_PRINT_BEING_DISPLAYED("MIN2_01")
OR IS_THIS_PRINT_BEING_DISPLAYED("MIN2_49")
OR IS_THIS_PRINT_BEING_DISPLAYED("MIN2_06")
OR IS_THIS_PRINT_BEING_DISPLAYED("MIN2_08")
OR IS_THIS_PRINT_BEING_DISPLAYED("MIN2_33")
RETURN TRUE
ENDIF
RETURN FALSE
ENDFUNC
/// PURPOSE: Manage conversations
PROC Convo()
IF IS_ENTITY_ALIVE(sRCLauncherDataLocal.vehID[0])
AND DOES_BLIP_EXIST(blipPlayerCar)
AND IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
AND IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
IF NOT IS_PED_HEADTRACKING_PED(sRCLauncherDataLocal.pedID[ic_JOE],PLAYER_PED_ID())
TASK_LOOK_AT_ENTITY(sRCLauncherDataLocal.pedID[ic_JOE],PLAYER_PED_ID(),-1)
ENDIF
IF NOT IS_PED_HEADTRACKING_PED(sRCLauncherDataLocal.pedID[ic_JOSEF],PLAYER_PED_ID())
TASK_LOOK_AT_ENTITY(sRCLauncherDataLocal.pedID[ic_JOSEF],PLAYER_PED_ID(),-1)
ENDIF
ENDIF
IF DOES_BLIP_EXIST(blipLocate[i])
IF NOT bDialogueOkLetsGo
IF iConvoGetBackInCar <> 0
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF NOT IS_THIS_PRINT_BEING_DISPLAYED("MIN2_06")
IF CREATE_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_CAR3", CONV_PRIORITY_MEDIUM) //So unprofessional!
bDialogueOkLetsGo = TRUE
ENDIF
ELSE
IF CREATE_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_CAR3", CONV_PRIORITY_MEDIUM,DO_NOT_DISPLAY_SUBTITLES)
bDialogueOkLetsGo = TRUE
ENDIF
ENDIF
ELSE
bDialogueOkLetsGo = TRUE
ENDIF
ENDIF
ENDIF
ENDIF
IF IS_ENTITY_ALIVE(sRCLauncherDataLocal.vehID[0])
AND IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
AND IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
AND IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
AND DOES_BLIP_EXIST(blipLocate[i])
IF iConvo >= 4
IF iDialogueWrongWay = 0
vStorePlayerPosForWrongWayDialogue = GET_ENTITY_COORDS(PLAYER_PED_ID())
iDialogueWrongWay = 1
ELSE
IF iDialogueWrongWay < 4 //I said the cement factory, where are you going?
IF GET_DISTANCE_BETWEEN_COORDS(GET_ENTITY_COORDS(PLAYER_PED_ID()),<< 267.2497, 2852.1667, 42.6129 >>) >
GET_DISTANCE_BETWEEN_COORDS(vStorePlayerPosForWrongWayDialogue,<< 267.2497, 2852.1667, 42.6129 >>) + 200.0
IF NOT ARE_ANY_IN_CAR_PRINTS_BEING_DISPLAYED()
IF CREATE_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_WRONG", CONV_PRIORITY_MEDIUM)
++iDialogueWrongWay
vStorePlayerPosForWrongWayDialogue = GET_ENTITY_COORDS(PLAYER_PED_ID())
ENDIF
ELSE
IF CREATE_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_WRONG", CONV_PRIORITY_MEDIUM,DO_NOT_DISPLAY_SUBTITLES)
++iDialogueWrongWay
vStorePlayerPosForWrongWayDialogue = GET_ENTITY_COORDS(PLAYER_PED_ID())
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF GET_GAME_TIMER() > iTimerDialogueStopping + 9000
IF iDialogueStopping < 3
IF GET_ENTITY_SPEED(sRCLauncherDataLocal.vehID[0]) < 0.1
IF NOT ARE_ANY_IN_CAR_PRINTS_BEING_DISPLAYED()
IF CREATE_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_STOP", CONV_PRIORITY_MEDIUM)
++iDialogueStopping
iTimerDialogueStopping = GET_GAME_TIMER() + GET_RANDOM_INT_IN_RANGE(2000,4000)
ENDIF
ELSE
IF CREATE_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_STOP", CONV_PRIORITY_MEDIUM,DO_NOT_DISPLAY_SUBTITLES)
++iDialogueStopping
iTimerDialogueStopping = GET_GAME_TIMER() + GET_RANDOM_INT_IN_RANGE(2000,4000)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF GET_GAME_TIMER() > iTimerDialogueCrashed + 15000
IF iDialogueCrashed < 6
IF HAS_ENTITY_COLLIDED_WITH_ANYTHING(sRCLauncherDataLocal.vehID[0])
/*
IF CREATE_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_CRASH", CONV_PRIORITY_MEDIUM,DO_NOT_DISPLAY_SUBTITLES)
++iDialogueCrashed
iTimerDialogueCrashed = GET_GAME_TIMER() + GET_RANDOM_INT_IN_RANGE(2000,4000)
ENDIF
*/
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
IF NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
iTimerDialogueStopping = GET_GAME_TIMER() + 5000
ENDIF
ENDIF
IF missionStage = MS_IMMIGRANT1_APPREHENDED
IF bImmigrantHandsUp = TRUE
IF bConvoImmigrantManuelGiveUp = FALSE //I'm fucking legal man!
IF IS_PED_UNINJURED(pedImmigrant[0])
IF IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),pedImmigrant[0],50)
AND IS_ENTITY_IN_RANGE_ENTITY(sRCLauncherDataLocal.pedID[ic_JOE],pedImmigrant[0],20)
IF CREATE_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_CC1", CONV_PRIORITY_MEDIUM)
SET_AUDIO_FLAG("DisableAbortConversationForRagdoll", TRUE)
bDisableAbortConvo = TRUE
bConvoImmigrantManuelGiveUp = TRUE
ENDIF
ENDIF
ENDIF
ELSE
IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(pedImmigrant[0],PLAYER_PED_ID())
AND HAS_ENTITY_BEEN_DAMAGED_BY_WEAPON(pedImmigrant[0],WEAPONTYPE_STUNGUN)
IF IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),sRCLauncherDataLocal.pedID[ic_JOE],30)
IF iCrueltyLines < 5
IF GET_GAME_TIMER() > iTimerCrueltyLines + 7000
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF CREATE_CONVERSATION(s_conversation_peds, "MIN2AU","MIN2_STUN",CONV_PRIORITY_MEDIUM) //Yeah! Take that bitch!
++iCrueltyLines
iTimerCrueltyLines = GET_GAME_TIMER()
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
CLEAR_ENTITY_LAST_DAMAGE_ENTITY(pedImmigrant[0])
CLEAR_ENTITY_LAST_WEAPON_DAMAGE(pedImmigrant[0])
ENDIF
ENDIF
ENDIF
ELSE
IF GET_DISTANCE_BETWEEN_ENTITIES(sRCLauncherDataLocal.vehID[0],PLAYER_PED_ID()) < 30.0
IF DOES_BLIP_EXIST(blipPlayerCar)
AND NOT IS_THIS_PRINT_BEING_DISPLAYED("MIN2_19")
HANDLE_BUDDY_HEAD_TRACK_WHILE_ENTERING_VEHICLE()
IF GET_GAME_TIMER() > iTimerPlayerNotInCar + 7000
IF iConvoGetBackInCar = 0 //Hey, you getting back in the car or what?
IF iConvo >= 4
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF iConvoTrevorDamagingCar = 0
IF IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
AND IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
AND missionStage < MS_UPDATE_CHASE2
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_CAR","MIN2_CAR_2", CONV_PRIORITY_MEDIUM)
iConvoGetBackInCar = 1
iTimerPlayerNotInCar = GET_GAME_TIMER() + GET_RANDOM_INT_IN_RANGE(2000,4000)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ELIF iConvoGetBackInCar = 1 //Come on man! Uncle Sam needs you!
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
AND IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_CAR","MIN2_CAR_3", CONV_PRIORITY_MEDIUM)
iConvoGetBackInCar = 2
iTimerPlayerNotInCar = GET_GAME_TIMER() + GET_RANDOM_INT_IN_RANGE(2000,4000)
ENDIF
ENDIF
ENDIF
ELSE
IF iConvoGetBackInCar < 5
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
AND IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
IF CREATE_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_CAR2", CONV_PRIORITY_MEDIUM)
bDialogueOkLetsGo = FALSE
++iConvoGetBackInCar
iTimerPlayerNotInCar = GET_GAME_TIMER() + GET_RANDOM_INT_IN_RANGE(2000,4000)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF missionStage = MS_UPDATE_CHASE2
IF bImmigrantChase2HandsUp = TRUE
IF bConvoImmigrant2GiveUp = FALSE //What?
IF IS_PED_UNINJURED(pedImmigrantChase2)
IF IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),pedImmigrantChase2,50)
AND IS_ENTITY_IN_RANGE_ENTITY(sRCLauncherDataLocal.pedID[ic_JOSEF],pedImmigrantChase2,20)
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 4, pedImmigrantChase2, "IMMIGRANTMALE")
IF CREATE_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_CC2", CONV_PRIORITY_MEDIUM)
SET_AUDIO_FLAG("DisableAbortConversationForRagdoll", TRUE)
bDisableAbortConvoPed2 = TRUE
bConvoImmigrant2GiveUp = TRUE
ENDIF
ENDIF
ENDIF
ELSE
IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(pedImmigrantChase2,PLAYER_PED_ID())
AND HAS_ENTITY_BEEN_DAMAGED_BY_WEAPON(pedImmigrantChase2,WEAPONTYPE_STUNGUN)
IF IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),sRCLauncherDataLocal.pedID[ic_JOE],30)
IF iCrueltyLines < 5
IF GET_GAME_TIMER() > iTimerCrueltyLines + 7000
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF CREATE_CONVERSATION(s_conversation_peds, "MIN2AU","MIN2_STUN",CONV_PRIORITY_MEDIUM) //Yeah! Take that bitch!
++iCrueltyLines
iTimerCrueltyLines = GET_GAME_TIMER()
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
CLEAR_ENTITY_LAST_DAMAGE_ENTITY(pedImmigrantChase2)
CLEAR_ENTITY_LAST_WEAPON_DAMAGE(pedImmigrantChase2)
ENDIF
ENDIF
ENDIF
IF bImmigrantHandsUp = TRUE
IF bConvoImmigrant1GiveUp = FALSE //I'm fucking legal man!
IF IS_PED_UNINJURED(pedImmigrant[i])
IF IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),pedImmigrant[i],50)
AND IS_ENTITY_IN_RANGE_ENTITY(sRCLauncherDataLocal.pedID[ic_JOE],pedImmigrant[i],20)
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 5, pedImmigrant[i], "IMMIGRANTMALE2")
IF CREATE_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_CC3", CONV_PRIORITY_MEDIUM)
SET_AUDIO_FLAG("DisableAbortConversationForRagdoll", TRUE)
bDisableAbortConvo = TRUE
bConvoImmigrant1GiveUp = TRUE
ENDIF
ENDIF
ENDIF
ELSE
IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(pedImmigrant[i],PLAYER_PED_ID())
AND HAS_ENTITY_BEEN_DAMAGED_BY_WEAPON(pedImmigrant[i],WEAPONTYPE_STUNGUN)
IF IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),sRCLauncherDataLocal.pedID[ic_JOE],30)
IF iCrueltyLines < 5
IF GET_GAME_TIMER() > iTimerCrueltyLines + 7000
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF CREATE_CONVERSATION(s_conversation_peds, "MIN2AU","MIN2_STUN",CONV_PRIORITY_MEDIUM) //Yeah! Take that bitch!
++iCrueltyLines
iTimerCrueltyLines = GET_GAME_TIMER()
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
CLEAR_ENTITY_LAST_DAMAGE_ENTITY(pedImmigrant[i])
CLEAR_ENTITY_LAST_WEAPON_DAMAGE(pedImmigrant[i])
ENDIF
ENDIF
ENDIF
IF DOES_ENTITY_EXIST(pedImmigrantChase2)
IF DOES_ENTITY_EXIST(pedImmigrant[1])
IF IS_ENTITY_ATTACHED_TO_ANY_VEHICLE(pedImmigrantChase2)
OR IS_ENTITY_ATTACHED_TO_ANY_VEHICLE(pedImmigrant[1])
IF NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
IF GET_DISTANCE_BETWEEN_ENTITIES(sRCLauncherDataLocal.vehID[0],PLAYER_PED_ID()) < 30.0
IF IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
AND IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
IF GET_GAME_TIMER() > iTimerPlayerNotInCar + 9000
IF iConvoGetBackInCar = 0 //Hey, you getting back in the car or what?
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_CAR","MIN2_CAR_1", CONV_PRIORITY_MEDIUM)
iConvoGetBackInCar = 1
iTimerPlayerNotInCar = GET_GAME_TIMER()
ENDIF
ENDIF
ELIF iConvoGetBackInCar = 1 //Come on man! Uncle Sam needs you!
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_CAR","MIN2_CAR_2", CONV_PRIORITY_MEDIUM)
iConvoGetBackInCar = 2
iTimerPlayerNotInCar = GET_GAME_TIMER()
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF NOT IS_THIS_PRINT_BEING_DISPLAYED("MIN2_01")
IF missionStage = MS_SETUP_CHASE1
OR missionStage = MS_UPDATE_CHASE1
iConvoTimerUpdate = GET_GAME_TIMER()
IF iConvoTimerUpdate > (iConvoTimer + 7000)
IF iConvo < 1
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
IF HAS_PED_GOT_WEAPON(PLAYER_PED_ID(),WEAPONTYPE_STUNGUN)
IF CREATE_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_JJ5b", CONV_PRIORITY_MEDIUM)
SET_CURRENT_PED_WEAPON(PLAYER_PED_ID(),WEAPONTYPE_STUNGUN,TRUE)
iConvo = 1
ENDIF
ELSE //Here, use this stun gun.
IF CREATE_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_JJ5", CONV_PRIORITY_MEDIUM)
GIVE_WEAPON_TO_PED(PLAYER_PED_ID(),WEAPONTYPE_STUNGUN,1,TRUE)
SET_CURRENT_PED_WEAPON(PLAYER_PED_ID(),WEAPONTYPE_STUNGUN,TRUE)
iConvo = 1
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF missionStage = MS_UPDATE_CHASE1
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF bConvoSpottedImmigrant1 = FALSE
bConvoSpottedImmigrant1 = TRUE
ENDIF
IF iConvo < 2
IF IS_VEHICLE_OK(sRCLauncherDataLocal.vehID[0])
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0]) //These illegal aliens stealing the jobs of hard working Americans like Josef here...
IF CREATE_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_JJ1", CONV_PRIORITY_VERY_LOW)
iConvo = 2
ENDIF
ENDIF
ENDIF
ELSE
IF NOT bPatrolVehDialogue
//AND NOT bGetCloseMessagePrinted
IF IS_VEHICLE_OK(sRCLauncherDataLocal.vehID[0])
AND IS_PED_UNINJURED(pedImmigrant[0])
AND NOT IS_ENTITY_IN_RANGE_ENTITY(sRCLauncherDataLocal.vehID[0],pedImmigrant[0],50)
AND IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0]) //How did you get your hands on this patrol car?
AND IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
AND IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
AND NOT IS_THIS_PRINT_BEING_DISPLAYED("MIN2_48")
IF CREATE_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_JJ4", CONV_PRIORITY_VERY_LOW)
bPatrolVehDialogue = TRUE
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF missionStage = MS_SETUP_CHASE2
IF DOES_BLIP_EXIST(blipLocate[i])
iConvoTimerUpdate = GET_GAME_TIMER()
IF iConvoTimerUpdate > (iConvoTimer + 100)
IF iConvo < 3
IF bDebugSkippedToCementFactory = FALSE //The next targets work at the cement factory.
IF CREATE_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_JJ6", CONV_PRIORITY_VERY_LOW,DO_NOT_DISPLAY_SUBTITLES)
iConvo = 3
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF missionStage = MS_SETUP_CHASE2
IF iConvo = 3
IF bEveryoneInCar = TRUE
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF IS_VEHICLE_OK(sRCLauncherDataLocal.vehID[0])
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
IF bDebugSkippedToCementFactory = FALSE //Who the fuck are you guys?
IF IS_PED_UNINJURED(pedImmigrant[0])
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[ic_JOE])
TASK_LOOK_AT_ENTITY(pedImmigrant[0],sRCLauncherDataLocal.pedID[ic_JOE],-1)
ENDIF
ENDIF
IF CREATE_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_IMM1", CONV_PRIORITY_VERY_LOW)
iConvo = 4
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ELIF iConvo = 4
IF IS_SYNCHRONIZED_SCENE_RUNNING(ssPassport)
TEXT_LABEL_23 label = GET_CURRENTLY_PLAYING_STANDARD_CONVERSATION_LABEL()
IF ARE_STRINGS_EQUAL(label,"MIN2_IMM1_7")
AND GET_SYNCHRONIZED_SCENE_PHASE(ssPassport) < 0.54
KILL_FACE_TO_FACE_CONVERSATION()
ELSE
IF GET_SYNCHRONIZED_SCENE_PHASE(ssPassport) >= 0.54
IF NOT bButterFingers
CREATE_CONVERSATION_FROM_SPECIFIC_LINE(s_conversation_peds, "MIN2AU", "MIN2_IMM1","MIN2_IMM1_9", CONV_PRIORITY_MEDIUM) //Oops! Butterfingers!
bButterFingers = TRUE
ENDIF
ENDIF
ENDIF
ENDIF
IF GET_DISTANCE_BETWEEN_ENTITY_AND_COORD(PLAYER_PED_ID(),<< 267.2497, 2852.1667, 42.6129 >>) < 70
KILL_FACE_TO_FACE_CONVERSATION()
ENDIF
ELIF iConvo = 5
IF GET_DISTANCE_BETWEEN_ENTITY_AND_COORD(PLAYER_PED_ID(),<< 267.2497, 2852.1667, 42.6129 >>) < 70
KILL_FACE_TO_FACE_CONVERSATION()
ENDIF
ENDIF
ENDIF
IF missionStage = MS_SETUP_CHASE3
IF DOES_BLIP_EXIST(blipLocate[i])
iConvoTimerUpdate = GET_GAME_TIMER()
IF iConvoTimerUpdate > (iConvoTimer + 7000)
IF iConvo <= 5
IF CREATE_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_JJ7", CONV_PRIORITY_VERY_LOW)
iConvo = 5
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF missionStage = MS_UPDATE_CHASE3
IF GET_GAME_TIMER() > iChaseStartedTimer + 7000
IF iConvo < 6
IF bEveryoneInCar = TRUE
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF CREATE_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_JJ2", CONV_PRIORITY_VERY_LOW)
iConvo = 6
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF missionStage = MS_DRIVE_TO_END
IF bDrivingToMotel = TRUE
iConvoTimerUpdate = GET_GAME_TIMER()
IF iConvoTimerUpdate > (iConvoTimer + 7000)
IF iConvo < 7
iConvo = 7
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF missionStage = MS_UPDATE_CHASE1
IF IS_PED_IN_VEHICLE(pedImmigrant[0],vehChaseCar[0])
IF GET_DISTANCE_BETWEEN_PEDS(PLAYER_PED_ID(),pedImmigrant[0]) < 30
IF iShoutLines = 0
IF NOT IS_ANY_SPEECH_PLAYING(pedImmigrant[0])
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(pedImmigrant[0], "MIN2_ACAA_01", "MANUEL", SPEECH_PARAMS_STANDARD)
ELSE
iShoutLines = 1
iTimerShoutLines = GET_GAME_TIMER() + GET_RANDOM_INT_IN_RANGE(2000,4000)
ENDIF
ELIF iShoutLines = 1
IF GET_GAME_TIMER() > iTimerShoutLines + 4000
IF NOT IS_ANY_SPEECH_PLAYING(pedImmigrant[0])
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(pedImmigrant[0], "MIN2_ACAA_02", "MANUEL", SPEECH_PARAMS_STANDARD)
ELSE
iShoutLines = 2
iTimerShoutLines = GET_GAME_TIMER() + GET_RANDOM_INT_IN_RANGE(2000,4000)
ENDIF
ENDIF
ELIF iShoutLines = 2
IF GET_GAME_TIMER() > iTimerShoutLines + 4000
IF NOT IS_ANY_SPEECH_PLAYING(pedImmigrant[0])
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(pedImmigrant[0], "MIN2_ACAA_03", "MANUEL", SPEECH_PARAMS_STANDARD)
ELSE
iShoutLines = 3
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDPROC
/// PURPOSE: Opens the gates at the cement factory
PROC OpenGates()
IF DOES_OBJECT_OF_TYPE_EXIST_AT_COORDS(<<263.669403, 2854.145752, 43.939796>>,15.0,prop_facgate_03_l)
SET_STATE_OF_CLOSEST_DOOR_OF_TYPE(prop_facgate_03_l,<<263.669403, 2854.145752, 43.939796>>,TRUE,0.85)
ENDIF
IF DOES_OBJECT_OF_TYPE_EXIST_AT_COORDS(<<268.126953, 2845.054443, 44.089664 >>,15.0,prop_facgate_03_ld_l)
SET_STATE_OF_CLOSEST_DOOR_OF_TYPE(prop_facgate_03_ld_l,<<268.126953, 2845.054443, 44.089664 >>,TRUE,-0.85)
ENDIF
IF DOES_OBJECT_OF_TYPE_EXIST_AT_COORDS(<<346.19, 2859.69, 43.63>>,15.0,prop_fnclink_06gate3)
SET_STATE_OF_CLOSEST_DOOR_OF_TYPE(prop_fnclink_06gate3,<<346.19, 2859.69, 43.63>>,TRUE,1.2)
ENDIF
ENDPROC
/// PURPOSE: Player shot the car up so Joe drives off - mission fail
PROC FailDriveOff()
SEQUENCE_INDEX seqMoveOverDriveOff
IF IS_VEHICLE_OK(sRCLauncherDataLocal.vehID[0])
SET_VEHICLE_DOORS_LOCKED(sRCLauncherDataLocal.vehID[0],VEHICLELOCK_LOCKOUT_PLAYER_ONLY)
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[ic_JOE])
IF IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
OPEN_SEQUENCE_TASK(seqMoveOverDriveOff)
TASK_SHUFFLE_TO_NEXT_VEHICLE_SEAT(NULL,sRCLauncherDataLocal.vehID[0])
TASK_VEHICLE_DRIVE_WANDER(NULL,sRCLauncherDataLocal.vehID[0],100.0,DRIVINGMODE_AVOIDCARS_RECKLESS)
CLOSE_SEQUENCE_TASK(seqMoveOverDriveOff)
TASK_PERFORM_SEQUENCE(sRCLauncherDataLocal.pedID[ic_JOE],seqMoveOverDriveOff)
ELSE
OPEN_SEQUENCE_TASK(seqMoveOverDriveOff)
TASK_VEHICLE_DRIVE_WANDER(NULL,sRCLauncherDataLocal.vehID[0],100.0,DRIVINGMODE_AVOIDCARS_RECKLESS)
CLOSE_SEQUENCE_TASK(seqMoveOverDriveOff)
TASK_PERFORM_SEQUENCE(sRCLauncherDataLocal.pedID[ic_JOE],seqMoveOverDriveOff)
ENDIF
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[ic_JOSEF])
IF NOT IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
TASK_ENTER_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0],DEFAULT_TIME_BEFORE_WARP_MINUTE_2,VS_BACK_LEFT)
ENDIF
ENDIF
ENDIF
ENDIF
ENDPROC
/// PURPOSE: Check all the fail conditions
PROC CheckForFail()
IF NOT IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[ic_JOE])
AND NOT IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[ic_JOSEF])
sFailReason = "MIN2_45" // Josef and Joe died
missionStage = MS_MISSION_FAILING
EXIT
ENDIF
IF NOT IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[ic_JOSEF])
sFailReason = "MIN2_16" // Josef died
missionStage = MS_MISSION_FAILING
EXIT
ELSE
SET_PED_INCREASED_AVOIDANCE_RADIUS(sRCLauncherDataLocal.pedID[ic_JOSEF])
ENDIF
IF NOT IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[ic_JOE])
sFailReason = "MIN2_25" // Joe died
missionStage = MS_MISSION_FAILING
EXIT
ELSE
SET_PED_INCREASED_AVOIDANCE_RADIUS(sRCLauncherDataLocal.pedID[ic_JOE])
ENDIF
IF DOES_ENTITY_EXIST(pedImmigrant[0])
IF NOT IS_PED_UNINJURED(pedImmigrant[0])
sFailReason = "MIN2_44" // Immigrant died
missionStage = MS_MISSION_FAILING
EXIT
ELSE
SET_PED_INCREASED_AVOIDANCE_RADIUS(pedImmigrant[0])
IF NOT IS_ENTITY_ATTACHED(pedImmigrant[0])
AND NOT IS_PED_IN_ANY_VEHICLE(pedImmigrant[0])
SET_RANDOM_VEHICLE_DENSITY_MULTIPLIER_THIS_FRAME(0)
ENDIF
ENDIF
ENDIF
IF DOES_ENTITY_EXIST(pedImmigrant[1])
IF NOT IS_PED_UNINJURED(pedImmigrant[1])
sFailReason = "MIN2_15" // Immigrant died
missionStage = MS_MISSION_FAILING
EXIT
ELSE
SET_PED_INCREASED_AVOIDANCE_RADIUS(pedImmigrant[1])
IF NOT IS_ENTITY_ATTACHED(pedImmigrant[1])
AND NOT IS_PED_IN_ANY_VEHICLE(pedImmigrant[1])
SET_RANDOM_VEHICLE_DENSITY_MULTIPLIER_THIS_FRAME(0)
ENDIF
ENDIF
ENDIF
IF DOES_ENTITY_EXIST(pedImmigrantChase2)
IF NOT IS_PED_UNINJURED(pedImmigrantChase2)
sFailReason = "MIN2_15" // Immigrant died
missionStage = MS_MISSION_FAILING
EXIT
ELSE
SET_PED_INCREASED_AVOIDANCE_RADIUS(pedImmigrantChase2)
IF NOT IS_ENTITY_ATTACHED(pedImmigrantChase2)
AND NOT IS_PED_IN_ANY_VEHICLE(pedImmigrantChase2)
SET_RANDOM_VEHICLE_DENSITY_MULTIPLIER_THIS_FRAME(0)
ENDIF
ENDIF
ENDIF
/*
IF bBloke1AttachedToCar = TRUE
IF NOT IS_PED_UNINJURED(pedImmigrant[0])
sFailReason = "MIN2_15" // Immigrant died
missionStage = MS_MISSION_FAILING
EXIT
ENDIF
ENDIF
IF bBloke2AttachedToCar = TRUE
IF NOT IS_PED_UNINJURED(pedImmigrant[1])
sFailReason = "MIN2_15" // Immigrant died
missionStage = MS_MISSION_FAILING
EXIT
ENDIF
ENDIF
IF bpedImmigrantChase2Attached = TRUE
IF NOT IS_PED_UNINJURED(pedImmigrantChase2)
sFailReason = "MIN2_15" // Immigrant died
missionStage = MS_MISSION_FAILING
EXIT
ENDIF
ENDIF
*/
IF GET_DISTANCE_BETWEEN_PEDS(PLAYER_PED_ID(),sRCLauncherDataLocal.pedID[ic_JOE]) > 200.0
IF GET_DISTANCE_BETWEEN_PEDS(PLAYER_PED_ID(),sRCLauncherDataLocal.pedID[ic_JOSEF]) > 200.0
sFailReason = "MIN2_36" // Left Joe / Josef behind
missionStage = MS_MISSION_FAILING
EXIT
ENDIF
ENDIF
IF missionStage <> MS_UPDATE_CHASE2
AND missionStage <> MS_DRIVE_TO_END
AND missionStage <> MS_MISSION_PASSING
IF GET_DISTANCE_BETWEEN_PEDS(PLAYER_PED_ID(),sRCLauncherDataLocal.pedID[ic_JOSEF]) > 210.0
sFailReason = "MIN2_40" // Left Joe / Josef behind
missionStage = MS_MISSION_FAILING
EXIT
ENDIF
IF GET_DISTANCE_BETWEEN_PEDS(PLAYER_PED_ID(),sRCLauncherDataLocal.pedID[ic_JOE]) > 210.0
sFailReason = "MIN2_41" // Left Joe / Josef behind
missionStage = MS_MISSION_FAILING
EXIT
ENDIF
ENDIF
IF missionStage = MS_UPDATE_CHASE2
IF GET_DISTANCE_BETWEEN_PEDS(PLAYER_PED_ID(),sRCLauncherDataLocal.pedID[ic_JOSEF]) > 250.0
AND iPed2Kneeling = 0
sFailReason = "MIN2_40" // Left Joe / Josef behind
missionStage = MS_MISSION_FAILING
EXIT
ENDIF
IF GET_DISTANCE_BETWEEN_PEDS(PLAYER_PED_ID(),sRCLauncherDataLocal.pedID[ic_JOE]) > 250.0
AND iPedKneeling = 0
sFailReason = "MIN2_41" // Left Joe / Josef behind
missionStage = MS_MISSION_FAILING
EXIT
ENDIF
ENDIF
IF NOT IS_VEHICLE_OK(sRCLauncherDataLocal.vehID[0])
sFailReason = "MIN2_17" // Car wrecked
missionStage = MS_MISSION_FAILING
EXIT
ELSE
IF IS_VEHICLE_STUCK_TIMER_UP(sRCLauncherDataLocal.vehID[0],VEH_STUCK_ON_ROOF,12000)
CPRINTLN(DEBUG_MISSION, "STUCK")
sFailReason = "MIN2_17" // Car wrecked
missionStage = MS_MISSION_FAILING
EXIT
ENDIF
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
IF IS_VEHICLE_STUCK_TIMER_UP(sRCLauncherDataLocal.vehID[0],VEH_STUCK_ON_SIDE,20000)
OR IS_VEHICLE_STUCK_TIMER_UP(sRCLauncherDataLocal.vehID[0],VEH_STUCK_HUNG_UP,30000)
OR IS_VEHICLE_STUCK_TIMER_UP(sRCLauncherDataLocal.vehID[0],VEH_STUCK_JAMMED,30000)
CPRINTLN(DEBUG_MISSION, "STUCK")
sFailReason = "MIN2_17" // Car wrecked
missionStage = MS_MISSION_FAILING
EXIT
ENDIF
ENDIF
IF NOT IS_VEHICLE_DRIVEABLE(sRCLauncherDataLocal.vehID[0])
CPRINTLN(DEBUG_MISSION, "NOT DRIVEABLE")
sFailReason = "MIN2_17" // Car wrecked
missionStage = MS_MISSION_FAILING
EXIT
ENDIF
IF NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
IF iConvoTrevorDamagingCar = 0
IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(sRCLauncherDataLocal.vehID[0],PLAYER_PED_ID())
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED() //Hey! I just got that serviced!
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_SHCAR","MIN2_SHCAR_1", CONV_PRIORITY_VERY_HIGH)
CLEAR_ENTITY_LAST_DAMAGE_ENTITY(sRCLauncherDataLocal.vehID[0])
iConvoTrevorDamagingCar = 1
ENDIF
ENDIF
ENDIF
ELIF iConvoTrevorDamagingCar = 1
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
CLEAR_ENTITY_LAST_DAMAGE_ENTITY(sRCLauncherDataLocal.vehID[0])
iConvoTrevorDamagingCar = 2
ENDIF
ELIF iConvoTrevorDamagingCar = 2
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(sRCLauncherDataLocal.vehID[0],PLAYER_PED_ID()) //Leave my car alone you fucking psycho tweaker!
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_SHCAR","MIN2_SHCAR_2", CONV_PRIORITY_VERY_HIGH)
CLEAR_ENTITY_LAST_DAMAGE_ENTITY(sRCLauncherDataLocal.vehID[0])
iConvoTrevorDamagingCar = 3
ENDIF
ENDIF
ENDIF
ELIF iConvoTrevorDamagingCar = 3
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
CLEAR_ENTITY_LAST_DAMAGE_ENTITY(sRCLauncherDataLocal.vehID[0])
iConvoTrevorDamagingCar = 4
ENDIF
ELIF iConvoTrevorDamagingCar = 4
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(sRCLauncherDataLocal.vehID[0],PLAYER_PED_ID())
//IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_SHCAR","MIN2_SHCAR_3", CONV_PRIORITY_VERY_HIGH)
CLEAR_ENTITY_LAST_DAMAGE_ENTITY(sRCLauncherDataLocal.vehID[0])
iConvoTrevorDamagingCar = 5
//ENDIF
ENDIF
ENDIF
ELIF iConvoTrevorDamagingCar = 5
/*
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
CLEAR_ENTITY_LAST_DAMAGE_ENTITY(sRCLauncherDataLocal.vehID[0])
KILL_ANY_CONVERSATION()
iConvoTrevorDamagingCar = 6
sFailReason = "MIN2_46" // Cops Alerted
FailDriveOff()
missionStage = MS_MISSION_FAILING
EXIT
ENDIF
*/
ENDIF
ELSE
CLEAR_ENTITY_LAST_DAMAGE_ENTITY(sRCLauncherDataLocal.vehID[0])
ENDIF
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[ic_JOSEF])
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[ic_JOE])
IF NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
OR NOT IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
OR NOT IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
SET_VEHICLE_WILL_FORCE_OTHER_VEHICLES_TO_STOP(sRCLauncherDataLocal.vehID[0],TRUE)
IF IS_VEHICLE_OK(vehChaseCar[0])
SET_VEHICLE_WILL_FORCE_OTHER_VEHICLES_TO_STOP(vehChaseCar[0],TRUE)
ENDIF
IF IS_VEHICLE_OK(vehChaseCar[1])
SET_VEHICLE_WILL_FORCE_OTHER_VEHICLES_TO_STOP(vehChaseCar[1],TRUE)
ENDIF
IF IS_VEHICLE_OK(vehChaseCarChase2)
SET_VEHICLE_WILL_FORCE_OTHER_VEHICLES_TO_STOP(vehChaseCarChase2,TRUE)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDPROC
/// PURPOSE: All immigrants captured, Joe drives off - mission passed
PROC PassDriveOff()
SAFE_REMOVE_BLIP(blipLocate[i])
SAFE_REMOVE_BLIP(blipPlayerCar)
INT iBrakeTime
SEQUENCE_INDEX seqMoveOverDriveOff
IF IS_VEHICLE_OK(sRCLauncherDataLocal.vehID[0])
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[ic_JOE])
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 6, sRCLauncherDataLocal.pedID[ic_JOSEF], "JOSEF")
IF bThanks = FALSE
CREATE_CONVERSATION(s_conversation_peds,"MIN2AU","MIN2_JJ8",CONV_PRIORITY_HIGH) //Thanks for the help man, you're a true patriot.
ENDIF
CREDIT_BANK_ACCOUNT(CHAR_TREVOR, BAAC_UNLOGGED_SMALL_ACTION, 500)
REMOVE_ALL_PED_WEAPONS(sRCLauncherDataLocal.pedID[ic_JOE])
REMOVE_ALL_PED_WEAPONS(sRCLauncherDataLocal.pedID[ic_JOSEF])
ENDIF
ENDIF
iTimerPassDriveOff = GET_GAME_TIMER()
WHILE iJosefCutSeq < 2
REPLAY_CHECK_FOR_EVENT_THIS_FRAME("SF_AAW")
IF IS_VEHICLE_OK(sRCLauncherDataLocal.vehID[0])
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[ic_JOE])
IF iJosefCutSeq = 0
IF GET_GAME_TIMER() > iTimerPassDriveOff + iBrakeTime
REPLAY_RECORD_BACK_FOR_TIME(3.0, 3.0, REPLAY_IMPORTANCE_LOWEST)
iJosefCutSeq = 1
ENDIF
ENDIF
IF iJosefCutSeq = 1
IF GET_GAME_TIMER() > iTimerPassDriveOff + (iBrakeTime + 500)
IF IS_VEHICLE_OK(sRCLauncherDataLocal.vehID[0])
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
//PLAY_PED_AMBIENT_SPEECH(PLAYER_PED_ID(), "GENERIC_CURSE_HIGH")
CREATE_CONVERSATION(s_conversation_peds, "MIN2AU","MIN2_PUSH",CONV_PRIORITY_MEDIUM) //You're impeding national security, boy!
ELSE
PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_JJ8", "MIN2_JJ8_2", CONV_PRIORITY_MEDIUM) //So I just get left here?
ENDIF
SET_DISABLE_PRETEND_OCCUPANTS(sRCLauncherDataLocal.vehID[0], TRUE)
OPEN_SEQUENCE_TASK(seqMoveOverDriveOff)
TASK_SHUFFLE_TO_NEXT_VEHICLE_SEAT(NULL,sRCLauncherDataLocal.vehID[0])
IF IS_ENTITY_IN_ANGLED_AREA(sRCLauncherDataLocal.vehID[0], <<599.210693,2814.523682,37.923046>>, <<592.278625,2918.858154,67.900497>>, 110.000000)
TASK_VEHICLE_DRIVE_TO_COORD(NULL,sRCLauncherDataLocal.vehID[0],<<657.2675, 2820.9895, 40.3190>>,16,DRIVINGSTYLE_NORMAL,PRANGER,DRIVINGMODE_AVOIDCARS_RECKLESS,10,200)
TASK_VEHICLE_DRIVE_TO_COORD(NULL,sRCLauncherDataLocal.vehID[0],<<662.5688, 2702.0947, 39.7719>>,20,DRIVINGSTYLE_NORMAL,PRANGER,DRIVINGMODE_AVOIDCARS_RECKLESS,10,200)
TASK_VEHICLE_DRIVE_WANDER(NULL,sRCLauncherDataLocal.vehID[0],100.0,DRIVINGMODE_AVOIDCARS_RECKLESS)
ELIF IS_ENTITY_IN_ANGLED_AREA(sRCLauncherDataLocal.vehID[0], <<535.598022,2706.873047,40.613750>>, <<529.495911,2810.597412,50.720314>>, 36.000000)
TASK_VEHICLE_DRIVE_TO_COORD(NULL,sRCLauncherDataLocal.vehID[0],<<538.2090, 2696.4927, 41.2063>>,16,DRIVINGSTYLE_NORMAL,PRANGER,DRIVINGMODE_AVOIDCARS_RECKLESS,10,200)
TASK_VEHICLE_DRIVE_WANDER(NULL,sRCLauncherDataLocal.vehID[0],100.0,DRIVINGMODE_AVOIDCARS_RECKLESS)
ELSE
TASK_VEHICLE_DRIVE_WANDER(NULL,sRCLauncherDataLocal.vehID[0],100.0,DRIVINGMODE_AVOIDCARS_RECKLESS)
ENDIF
CLOSE_SEQUENCE_TASK(seqMoveOverDriveOff)
TASK_PERFORM_SEQUENCE(sRCLauncherDataLocal.pedID[ic_JOE],seqMoveOverDriveOff)
iJosefCutSeq = 2
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
WAIT(0)
ENDWHILE
IF IS_VEHICLE_OK(sRCLauncherDataLocal.vehID[0])
SET_VEHICLE_DOORS_LOCKED(sRCLauncherDataLocal.vehID[0],VEHICLELOCK_LOCKED)
ENDIF
ENDPROC
PROC EndSetup()
IF bMissionFailed = TRUE
ENDIF
vPlayer = GET_ENTITY_COORDS(PLAYER_PED_ID())
GET_SAFE_COORD_FOR_PED(vPlayer,FALSE,vSafeCoord)
ENDPROC
// ===========================================================================================================
// Termination
// ===========================================================================================================
// -----------------------------------------------------------------------------------------------------------
// Script Cleanup
// -----------------------------------------------------------------------------------------------------------
PROC Script_Cleanup()
// Ensure launcher is cleaned up
RC_CLEANUP_LAUNCHER()
/*
IF IS_PED_UNINJURED(pedImmigrant[0])
IF IS_ENTITY_ATTACHED(pedImmigrant[0])
IF NOT IS_PED_IN_ANY_VEHICLE(pedImmigrant[0])
SAFE_DELETE_PED(pedImmigrant[0])
ENDIF
ENDIF
ENDIF
IF IS_PED_UNINJURED(pedImmigrant[1])
IF IS_ENTITY_ATTACHED(pedImmigrant[1])
IF NOT IS_PED_IN_ANY_VEHICLE(pedImmigrant[1])
SAFE_DELETE_PED(pedImmigrant[1])
ENDIF
ENDIF
ENDIF
IF IS_PED_UNINJURED(pedImmigrantChase2)
IF IS_ENTITY_ATTACHED(pedImmigrantChase2)
IF NOT IS_PED_IN_ANY_VEHICLE(pedImmigrantChase2)
SAFE_DELETE_PED(pedImmigrantChase2)
ENDIF
ENDIF
ENDIF
*/
SET_NPC_PED_MODEL_AS_NO_LONGER_NEEDED(CHAR_MANUEL)
SET_INSTANCE_PRIORITY_HINT(INSTANCE_HINT_NONE)
TRIGGER_MUSIC_EVENT("MM2_FAIL")
RESET_SCENARIO_TYPES_ENABLED()
SET_MODEL_AS_NO_LONGER_NEEDED(SANCHEZ)
SET_MODEL_AS_NO_LONGER_NEEDED(PRANGER)
SET_MODEL_AS_NO_LONGER_NEEDED(BLAZER)
SET_MODEL_AS_NO_LONGER_NEEDED(S_M_M_Migrant_01)
SET_MODEL_AS_NO_LONGER_NEEDED(SPEEDO)
SET_MODEL_AS_NO_LONGER_NEEDED(S_M_M_GAFFER_01)
SET_MODEL_AS_NO_LONGER_NEEDED(P_AMB_PHONE_01)
SET_MODEL_AS_NO_LONGER_NEEDED(S_M_Y_CONSTRUCT_01)
SET_VEHICLE_MODEL_IS_SUPPRESSED(PRANGER,FALSE)
SET_VEHICLE_MODEL_IS_SUPPRESSED(SANCHEZ,FALSE)
SET_VEHICLE_MODEL_IS_SUPPRESSED(BLAZER,FALSE)
SET_WANTED_LEVEL_MULTIPLIER(1.0)
SET_AUDIO_FLAG("DisableAbortConversationForRagdoll", FALSE)
//REMOVE_SCENARIO_BLOCKING_AREA(blockScenarios)
REMOVE_SCENARIO_BLOCKING_AREA(sbiCement)
/*
IF NOT IS_REPLAY_IN_PROGRESS()
INFORM_MISSION_STATS_SYSTEM_OF_TIME_WINDOW_CLOSED(TRUE)
ENDIF
*/
CLEANUP_AUDIO_SCENE_CHASE()
//SET_ROADS_IN_ANGLED_AREA(vNodeSwitch1,vNodeSwitch2,140,FALSE,TRUE)
KILL_ANY_CONVERSATION()
// 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()
ENDIF
// Set the Character as no longer needed if it has been created
SAFE_RELEASE_PED(sRCLauncherDataLocal.pedID[ic_JOSEF])
SAFE_RELEASE_PED(sRCLauncherDataLocal.pedID[ic_JOE])
SET_SCENARIO_TYPE_ENABLED("WORLD_VEHICLE_DRIVE_SOLO",TRUE)
SET_SCENARIO_TYPE_ENABLED("WORLD_VEHICLE_CONSTRUCTION_SOLO", TRUE)
SET_SCENARIO_TYPE_ENABLED("WORLD_VEHICLE_CONSTRUCTION_PASSENGERS", TRUE)
SET_ROADS_BACK_TO_ORIGINAL(<<-199.2860, 4214.0547, 43.7470>> - <<10,10,10>>,<<-199.2860, 4214.0547, 43.7470>> + <<10,10,10>>)
TERMINATE_THIS_THREAD()
ENDPROC
// -----------------------------------------------------------------------------------------------------------
// Script Pass
// -----------------------------------------------------------------------------------------------------------
PROC Script_Passed()
//CREDIT_BANK_ACCOUNT(CHAR_TREVOR, BAAC_UNLOGGED_SMALL_ACTION, 200) // See B*1207293
Random_Character_Passed(CP_RAND_C_MIN2)
Script_Cleanup()
ENDPROC
// ===========================================================================================================
// DEBUG FUNCTIONS
// ===========================================================================================================
PROC ResetStuff()
CleanupTraffic()
i = 0
CLEAR_PRINTS()
eCutsceneState = eCutSpawnJJ
SAFE_REMOVE_BLIP(blipImmigrant[0])
SAFE_REMOVE_BLIP(blipImmigrant[1])
SAFE_REMOVE_BLIP(blipImmigrant[2])
SAFE_REMOVE_BLIP(blipLocate[0])
SAFE_REMOVE_BLIP(blipLocate[1])
SAFE_REMOVE_BLIP(blipLocate[2])
SAFE_REMOVE_BLIP(blipPlayerCar)
SAFE_REMOVE_BLIP(blipJosef)
SAFE_REMOVE_BLIP(blipJoe)
SAFE_DELETE_PED(sRCLauncherDataLocal.pedID[ic_JOE])
SAFE_DELETE_PED(sRCLauncherDataLocal.pedID[ic_JOSEF])
SAFE_DELETE_PED(pedImmigrant[0])
SAFE_DELETE_PED(pedImmigrant[1])
SAFE_DELETE_PED(pedImmigrant[2])
SAFE_DELETE_PED(pedWorker[0])
SAFE_DELETE_PED(pedWorker[1])
SAFE_DELETE_PED(pedImmigrantChase2)
SAFE_DELETE_PED(pedDusterPilot)
SAFE_DELETE_VEHICLE(vehDuster)
SAFE_DELETE_VEHICLE(vehChaseCar[0])
SAFE_DELETE_VEHICLE(vehChaseCar[1])
SAFE_DELETE_VEHICLE(vehChaseCar[2])
SAFE_DELETE_VEHICLE(vehChaseCarChase2)
SAFE_DELETE_VEHICLE(vehSpeedo)
SAFE_DELETE_OBJECT(ObjPapers)
IF IS_VEHICLE_OK(sRCLauncherDataLocal.vehID[0])
ENDIF
/*
IF DOES_ENTITY_EXIST(sRCLauncherDataLocal.vehID[0])
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
SET_ENTITY_COORDS(PLAYER_PED_ID(),<< 94.6126, 4506.0459, 87.7443 >>)
SET_ENTITY_HEADING(PLAYER_PED_ID(),198.9812)
SET_GAMEPLAY_CAM_RELATIVE_PITCH()
SET_GAMEPLAY_CAM_RELATIVE_HEADING()
ENDIF
ENDIF
*/
REMOVE_VEHICLE_STUCK_CHECK(sRCLauncherDataLocal.vehID[0])
SAFE_DELETE_VEHICLE(sRCLauncherDataLocal.vehID[0])
bBloke1AttachedToCar = FALSE
bBloke2AttachedToCar = FALSE
bpedImmigrantChase2Attached = FALSE
bChaseStarted = FALSE
iTimesTazed = 0
iTimesTazedSECONDPED = 0
//iNextCoordPed1 = 0
bSECONDBlokestunned = FALSE
bImmigrantChase2HandsUp = FALSE
bImmigrantChase2GettingIntoCar = FALSE
bBlokestunned = FALSE
bImmigrantHandsUp = FALSE
bImmigrantGettingIntoCar = FALSE
bSeqSetup = FALSE
bFirstImmigrantOnBike = FALSE
bImmigrantChase2OnBike = FALSE
bOkToStartChase = FALSE
iSeqCementFactory = 0
bImmigrantChase2Fleeing = FALSE
bFirstImmigrantFleeing = FALSE
iJosefCutSeq = 0
bDialogueDontletTheOtherEscape = FALSE
iConvoGetBackInCar = 0
iConvoTrevorDamagingCar = 0
bConvoSpottedImmigrant1 = FALSE
bCarHorn = FALSE
iSeqJosefThrowPapers = 0
bCementFactoryCheckpoint = FALSE
iGetOutOfCarLines = 0
iSeqHintCam = 0
bPlayerNotInCarBetweenCapturingImmigrants = FALSE
bBikeEscorting = FALSE
bBikeLeftFactory = FALSE
bWander = FALSE
fTrafficStopped = 0.0
iPedsStunnedOffBike = 0
bCloseFinalTimeWindowForStats = FALSE
bReplayCementFactory = FALSE
iPedKneeling = 0
iPed2Kneeling = 0
iCrueltyLines = 0
bSecondMusicCue = FALSE
bCreateNmMessage = FALSE
bRagdollTaskGiven = FALSE
bCreateNmMessagePed2 = FALSE
bRagdollTaskGivenPed2 = FALSE
bLosingCops = FALSE
bPrintLosingCops = FALSE
iSyncPed = 0
bPassport = FALSE
bManuelAttached = FALSE
iConvo = 0
bPassportSound = FALSE
bButterFingers = FALSE
bWeaponSwap = FALSE
bWarpJosef = FALSE
bThanks = FALSE
bPatrolVehDialogue = FALSE
bDialogueGoBack = FALSE
iGoBackLines = 0
iSeqChase2Dialogue = 0
bDialoguePickUpLastGuy = FALSE
bPatrolVehDialogue = FALSE
bDialogueGoBack = FALSE
bDialoguePickUpLastGuy = FALSE
bDialogueOkLetsGo = FALSE
bDialogueDriveOff = FALSE
bDoDelayedClimbInBack = FALSE
bDoneDelayedClimbInBack = FALSE
bSwitchWaypointFlags = FALSE
bPed1GettingUp = FALSE
bPed2GettingUp = FALSE
bPrint18 = FALSE
bPrint03 = FALSE
bPrint06 = FALSE
bPrint08 = FALSE
bPrint33 = FALSE
bPrint29 = FALSE
bPrint32 = FALSE
bPrint19 = FALSE
bPrint42 = FALSE
bPrint01 = FALSE
bPrint30 = FALSE
bPrint31 = FALSE
bPrint39 = FALSE
bPrint37 = FALSE
bPrint48GoBack = FALSE
bConvoImmigrantManuelGiveUp = FALSE
bConvoImmigrant1GiveUp = FALSE
bConvoImmigrant2GiveUp = FALSE
bJosefGetIn = FALSE
CLEAR_SEQUENCE_TASK(seqChase2Route)
CLEAR_SEQUENCE_TASK(seqChase2RouteB)
CLEAR_SEQUENCE_TASK(seqChase2RouteC)
CLEAR_SEQUENCE_TASK(seqChase2RouteD)
CLEAR_SEQUENCE_TASK(seqChase2RouteSECONDPED)
CLEAR_SEQUENCE_TASK(seqChase2RouteBSECONDPED)
CLEAR_SEQUENCE_TASK(seqChase2RouteCSECONDPED)
CLEAR_SEQUENCE_TASK(seqChase2RouteDSECONDPED)
ENDPROC
/// PURPOSE: Waits for the screen to fade out, then updates the fail reason for the mission
PROC FailWait()
SWITCH eFAIL_STATE
CASE FS_SETUP
TRIGGER_MUSIC_EVENT("MM2_FAIL")
RemoveBlips()
CLEAR_PRINTS()
CLEAR_HELP()
KILL_FACE_TO_FACE_CONVERSATION_DO_NOT_FINISH_LAST_LINE()
IF NOT IS_STRING_NULL_OR_EMPTY(sFailReason)
Random_Character_Failed_With_Reason(sFailReason)
ELSE
Random_Character_Failed()
ENDIF
eFAIL_STATE =FS_UPDATE
BREAK
CASE FS_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(<< 101.6329, 4519.8418, 89.4828 >>, 175.0489)
// SET_REPLAY_DECLINED_VEHICLE_WARP_LOCATION(<< 99.4852, 4507.5508, 88.1143 >>, 179.7428)
ResetStuff()
Script_Cleanup()
ELSE
// not finished fading out
// you may want to handle dialogue etc here.
ENDIF
BREAK
ENDSWITCH
ENDPROC
/// PURPOSE: skip from MS_SETUP_CHASE1
PROC SkipStage1()
SAFE_REMOVE_BLIP(blipLocate[i])
IF IS_VEHICLE_OK(sRCLauncherDataLocal.vehID[0])
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[ic_JOE])
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[ic_JOSEF])
IF NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
TASK_WARP_PED_INTO_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
ENDIF
IF NOT IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
TASK_WARP_PED_INTO_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0],VS_FRONT_RIGHT)
ENDIF
IF NOT IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
TASK_WARP_PED_INTO_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0],VS_BACK_LEFT)
ENDIF
ENDIF
ENDIF
ENDIF
SET_ENTITY_COORDS(sRCLauncherDataLocal.vehID[0],<< 132.1798, 4453.1421, 79.8101 >>)
SET_ENTITY_HEADING(sRCLauncherDataLocal.vehID[0],227.5366 )
SET_GAMEPLAY_CAM_RELATIVE_HEADING()
SET_GAMEPLAY_CAM_RELATIVE_PITCH()
ENDPROC
/// PURPOSE: skip from MS_UPDATE_CHASE1
PROC SkipStage2()
IF IS_VEHICLE_OK(sRCLauncherDataLocal.vehID[0])
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[ic_JOE])
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[ic_JOSEF])
IF NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
TASK_WARP_PED_INTO_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
ENDIF
IF NOT IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
TASK_WARP_PED_INTO_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0],VS_FRONT_RIGHT)
ENDIF
IF NOT IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
TASK_WARP_PED_INTO_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0],VS_BACK_LEFT)
ENDIF
ENDIF
ENDIF
ENDIF
AttachPedToCar()
IF IS_SYNCHRONIZED_SCENE_RUNNING(ssClimbToBack_1)
SET_SYNCHRONIZED_SCENE_PHASE(ssClimbToBack_1,0.9)
ENDIF
i = 1
SET_ENTITY_COORDS(sRCLauncherDataLocal.vehID[0],<< 227.1500, 2950.6118, 41.8969 >>)
SET_ENTITY_HEADING(sRCLauncherDataLocal.vehID[0],186.9743 )
SET_GAMEPLAY_CAM_RELATIVE_HEADING()
SET_GAMEPLAY_CAM_RELATIVE_PITCH()
missionStage = MS_SETUP_CHASE2
RequestModelsSecondChase()
LoadModelsSecondChase()
bDebugSkippedToCementFactory = TRUE
ENDPROC
/// PURPOSE: skip from MS_SETUP_CHASE2 or MS_CEMENT_FACTORY or MS_UPDATE_CHASE2
PROC SkipStage3()
IF IS_VEHICLE_OK(sRCLauncherDataLocal.vehID[0])
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[ic_JOE])
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[ic_JOSEF])
IF NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
TASK_WARP_PED_INTO_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
ENDIF
IF NOT IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
TASK_WARP_PED_INTO_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0],VS_FRONT_RIGHT)
ENDIF
IF NOT IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
TASK_WARP_PED_INTO_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0],VS_BACK_LEFT)
ENDIF
ENDIF
ENDIF
ENDIF
SAFE_REMOVE_BLIP(blipLocate[0])
SAFE_REMOVE_BLIP(blipLocate[1])
IF IS_PED_UNINJURED(pedImmigrant[i])
IF IS_VEHICLE_OK(sRCLauncherDataLocal.vehID[0])
IF NOT IS_PED_IN_VEHICLE(pedImmigrant[i],sRCLauncherDataLocal.vehID[0])
TASK_WARP_PED_INTO_VEHICLE(pedImmigrant[i],sRCLauncherDataLocal.vehID[0],VS_BACK_RIGHT)
ENDIF
ENDIF
ENDIF
SET_GAMEPLAY_CAM_RELATIVE_HEADING()
SET_GAMEPLAY_CAM_RELATIVE_PITCH()
missionStage = MS_DRIVE_TO_END
bDebugSkippedToCementFactory = TRUE
ENDPROC
/// PURPOSE: skip from MS_DRIVE_TO_END
PROC SkipStage4()
IF IS_VEHICLE_OK(sRCLauncherDataLocal.vehID[0])
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[ic_JOE])
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[ic_JOSEF])
IF NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
TASK_WARP_PED_INTO_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
ENDIF
IF NOT IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
TASK_WARP_PED_INTO_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0],VS_FRONT_RIGHT)
ENDIF
IF NOT IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
TASK_WARP_PED_INTO_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0],VS_BACK_LEFT)
ENDIF
ENDIF
ENDIF
ENDIF
SAFE_REMOVE_BLIP(blipLocate[0])
SAFE_REMOVE_BLIP(blipLocate[1])
SET_ENTITY_COORDS(sRCLauncherDataLocal.vehID[0],<< 325.4911, 2643.6294, 43.5842 >>)
SET_ENTITY_HEADING(sRCLauncherDataLocal.vehID[0],96.8564)
SET_GAMEPLAY_CAM_RELATIVE_HEADING()
SET_GAMEPLAY_CAM_RELATIVE_PITCH()
PassDriveOff()
//EndSetup()
missionStage = MS_MISSION_PASSING
//Script_Passed()
ENDPROC
/// PURPOSE: Check for Forced Pass or Fail
PROC DEBUG_Check_Debug_Keys()
// Check for Pass
#IF IS_DEBUG_BUILD
IF (IS_KEYBOARD_KEY_JUST_PRESSED(KEY_S))
//EndSetup()
WAIT_FOR_CUTSCENE_TO_STOP()
TRIGGER_MUSIC_EVENT("MM2_STOP")
CLEAR_PRINTS()
Script_Passed()
ENDIF
// Check for Fail
IF (IS_KEYBOARD_KEY_JUST_PRESSED(KEY_F))
//EndSetup()
WAIT_FOR_CUTSCENE_TO_STOP()
TRIGGER_MUSIC_EVENT("MM2_STOP")
CLEAR_PRINTS()
bMissionFailed = TRUE
missionStage = MS_MISSION_FAILING
ENDIF
#ENDIF
ENDPROC
/// PURPOSE: Play intro mocap
PROC IntroCutscene()
MODEL_NAMES mnVehPlayer
IF CAN_REQUEST_ASSETS_FOR_CUTSCENE_ENTITY()
//SET_CUTSCENE_PED_PROP_VARIATION("Joe", ANCHOR_HEAD, 0, 0)
SET_CUTSCENE_PED_PROP_VARIATION("Joe", ANCHOR_EYES, 0, 0)
SET_CUTSCENE_PED_PROP_VARIATION("Josef", ANCHOR_HEAD, 0, 0)
SET_CUTSCENE_PED_PROP_VARIATION("Josef", ANCHOR_EYES, 0, 0)
ENDIF
SWITCH eCutsceneState
CASE eCutSpawnJJ
//Added time to allow multihead blinders to turn on
IF IS_PC_VERSION() AND NOT bMultiheadTriggered
IF SET_MULTIHEAD_SAFE(TRUE)
iMultiHeadTimer = GET_GAME_TIMER() + 1000
bMultiheadTriggered = TRUE
ENDIF
ENDIF
IF iMultiHeadTimer < GET_GAME_TIMER()
IF NOT DOES_ENTITY_EXIST(sRCLauncherDataLocal.vehID[0])
sRCLauncherDataLocal.vehID[0] = CREATE_VEHICLE(PRANGER,<<20.80, 4532.65, 104.66>>, 284.70, TRUE, TRUE)
ENDIF
IF CREATE_NPC_PED_ON_FOOT(sRCLauncherDataLocal.pedID[ic_JOE],CHAR_JOE,<< 38.2818, 4537.5703, 95.4783 >>, 252.9034)
AND CREATE_NPC_PED_ON_FOOT(sRCLauncherDataLocal.pedID[ic_JOSEF],CHAR_JOSEF,<< 33.8430, 4537.3950, 95.9413 >>, 309.8384)
//SET_PED_PRELOAD_PROP_DATA(sRCLauncherDataLocal.pedID[ic_JOE],ANCHOR_HEAD,0)
//SET_PED_PROP_INDEX(sRCLauncherDataLocal.pedID[ic_JOE], ANCHOR_HEAD, 0)
SET_PED_PROP_INDEX(sRCLauncherDataLocal.pedID[ic_JOE], ANCHOR_EYES, 0)
SET_PED_PROP_INDEX(sRCLauncherDataLocal.pedID[ic_JOSEF], ANCHOR_HEAD, 0)
SET_PED_PROP_INDEX(sRCLauncherDataLocal.pedID[ic_JOSEF], ANCHOR_EYES, 0)
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "Min2****Init cutscene****")
#ENDIF
eCutsceneState = eCutInit
ENDIF
ENDIF
BREAK
CASE eCutInit
RC_REQUEST_CUTSCENE("mmb_2_rcm")
IF RC_IS_CUTSCENE_OK_TO_START()
IF IS_VEHICLE_OK(sRCLauncherDataLocal.vehID[0])
REGISTER_ENTITY_FOR_CUTSCENE(sRCLauncherDataLocal.vehID[0],"MMB_Parked_car",CU_ANIMATE_EXISTING_SCRIPT_ENTITY,PRANGER)
ENDIF
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[ic_JOSEF])
REGISTER_ENTITY_FOR_CUTSCENE(sRCLauncherDataLocal.pedID[ic_JOSEF],"Josef",CU_ANIMATE_EXISTING_SCRIPT_ENTITY,IG_JOSEF)
ENDIF
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[ic_JOE])
REGISTER_ENTITY_FOR_CUTSCENE(sRCLauncherDataLocal.pedID[ic_JOE],"Joe",CU_ANIMATE_EXISTING_SCRIPT_ENTITY,IG_JOEMINUTEMAN)
ENDIF
CCSExitTrev = FALSE
CCSExitJosef = FALSE
CCSExitJoe = FALSE
CCsExitTruck = FALSE
CCsExitCam = FALSE
REPLAY_START_EVENT(REPLAY_IMPORTANCE_LOW)
RC_CLEANUP_LAUNCHER()
START_CUTSCENE()
SET_VEHICLE_MODEL_PLAYER_WILL_EXIT_SCENE(PRANGER)
WAIT(0)
RESOLVE_VEHICLES_INSIDE_ANGLED_AREA(<<14.701344,4530.018066,102.562462>>, <<27.267115,4533.092285,107.864037>>, 11.250000,<<-0.3602, 4523.2480, 107.0955>>, 256.1712)
IF DOES_ENTITY_EXIST(GET_PLAYERS_LAST_VEHICLE())
mnVehPlayer = GET_ENTITY_MODEL(GET_PLAYERS_LAST_VEHICLE())
ENDIF
IF NOT IS_THIS_MODEL_A_HELI(mnVehPlayer)
AND NOT IS_THIS_MODEL_A_PLANE(mnVehPlayer)
AND NOT IS_THIS_MODEL_A_BOAT(mnVehPlayer)
AND NOT IS_THIS_MODEL_A_TRAIN(mnVehPlayer)
SET_MISSION_START_VEHICLE_AS_VEHICLE_GEN(<<0,0,0>>,0,TRUE,CHAR_TREVOR)
ENDIF
CLEAR_AREA(<< 18.00, 4527.00, 105.00 >>,150,TRUE)
RC_START_CUTSCENE_MODE(<< 18.00, 4527.00, 105.00 >>,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE)
eCutsceneState = eCutUpdate
ENDIF
BREAK
CASE eCutUpdate
//IF IS_CUTSCENE_PLAYING()
IF CCSExitTrev
AND CCSExitJosef
AND CCSExitJoe
//AND CCsExitTruck
AND CCsExitCam
eCutsceneState = eCutCleanup
ENDIF
IF CAN_SET_EXIT_STATE_FOR_CAMERA()
SET_GAMEPLAY_CAM_RELATIVE_HEADING(0)
SET_GAMEPLAY_CAM_RELATIVE_PITCH(0)
CCsExitCam = TRUE
ENDIF
IF CAN_SET_EXIT_STATE_FOR_REGISTERED_ENTITY("Trevor")
REPLAY_STOP_EVENT()
IF IS_VEHICLE_OK(sRCLauncherDataLocal.vehID[0])
IF IS_PED_UNINJURED(PLAYER_PED_ID())
SET_PED_INTO_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
FORCE_PED_AI_AND_ANIMATION_UPDATE(PLAYER_PED_ID())
CCSExitTrev = TRUE
ENDIF
ENDIF
ENDIF
IF CAN_SET_EXIT_STATE_FOR_REGISTERED_ENTITY("Josef",IG_JOSEF)
IF IS_VEHICLE_OK(sRCLauncherDataLocal.vehID[0])
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[ic_JOSEF])
SET_PED_INTO_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0],VS_BACK_RIGHT)
FORCE_PED_AI_AND_ANIMATION_UPDATE(sRCLauncherDataLocal.pedID[ic_JOSEF])
CCSExitJosef = TRUE
ENDIF
ENDIF
ENDIF
IF CAN_SET_EXIT_STATE_FOR_REGISTERED_ENTITY("Joe",IG_JOEMINUTEMAN)
IF IS_VEHICLE_OK(sRCLauncherDataLocal.vehID[0])
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[ic_JOE])
SET_PED_INTO_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0],VS_FRONT_RIGHT)
FORCE_PED_AI_AND_ANIMATION_UPDATE(sRCLauncherDataLocal.pedID[ic_JOE])
CCSExitJoe = TRUE
ENDIF
ENDIF
ENDIF
IF CAN_SET_EXIT_STATE_FOR_REGISTERED_ENTITY("MMB_Parked_car",PRANGER)
CCsExitTruck = TRUE
ENDIF
CCsExitTruck = CCsExitTruck
IF NOT DOES_ENTITY_EXIST(sRCLauncherDataLocal.vehID[0])
IF DOES_ENTITY_EXIST(GET_ENTITY_INDEX_OF_REGISTERED_ENTITY("MMB_Parked_car"))
sRCLauncherDataLocal.vehID[0] = GET_VEHICLE_INDEX_FROM_ENTITY_INDEX(GET_ENTITY_INDEX_OF_REGISTERED_ENTITY("MMB_Parked_car"))
CPRINTLN(DEBUG_MISSION, "Min2**** GRABBED CAR FROM CS ****")
ENDIF
ENDIF
#IF IS_DEBUG_BUILD
IF IS_KEYBOARD_KEY_JUST_PRESSED(KEY_J)
STOP_CUTSCENE()
ENDIF
DEBUG_Check_Debug_Keys()
#ENDIF
//ELSE
//SET_GAMEPLAY_CAM_RELATIVE_HEADING(0)
//SET_GAMEPLAY_CAM_RELATIVE_PITCH(0)
//eCutsceneState = eCutCleanup
//ENDIF
BREAK
CASE eCutCleanup
IF IS_VEHICLE_OK(sRCLauncherDataLocal.vehID[0])
SET_VEHICLE_DOOR_SHUT(sRCLauncherDataLocal.vehID[0],SC_DOOR_FRONT_LEFT)
SET_VEHICLE_DOOR_SHUT(sRCLauncherDataLocal.vehID[0],SC_DOOR_REAR_RIGHT)
SET_VEHICLE_DOOR_SHUT(sRCLauncherDataLocal.vehID[0],SC_DOOR_FRONT_RIGHT)
ENDIF
IF bPrint01 = FALSE
PRINT_NOW("MIN2_01",7000,0) //chase the immigrant
bPrint01 = TRUE
ENDIF
SET_GAMEPLAY_CAM_RELATIVE_HEADING(0)
SET_GAMEPLAY_CAM_RELATIVE_PITCH(0)
RC_END_CUTSCENE_MODE()
RC_SET_ENTITY_PROOFS_FOR_CUTSCENE(sRCLauncherDataLocal, FALSE)
//Cleanup multihead blinders
IF IS_PC_VERSION()
SET_MULTIHEAD_SAFE(FALSE)
ENDIF
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "Min2****Cleanup cutscene****")
#ENDIF
missionStage = MS_SETUP_MISSION
BREAK
ENDSWITCH
ENDPROC
/// PURPOSE: Skip past intro mocap
PROC SkipPastCS()
START_REPLAY_SETUP(<<20.80, 4532.65, 104.66>>, 284.70)
SAFE_FADE_SCREEN_OUT_TO_BLACK(0,FALSE)
Initialise()
WaitForAssets()
SpawnPlayerCar()
SpawnJosefAndJoe()
missionStage = MS_SETUP_CHASE1
END_REPLAY_SETUP(sRCLauncherDataLocal.vehID[0])
//LOAD_SCENE(GET_ENTITY_COORDS(PLAYER_PED_ID()))
//WAIT(1000)
SET_GAMEPLAY_CAM_RELATIVE_HEADING(0)
SET_GAMEPLAY_CAM_RELATIVE_PITCH(0)
SET_PLAYER_CONTROL(PLAYER_ID(),TRUE)
IF IS_SCREEN_FADED_OUT()
IF NOT IS_SCREEN_FADING_IN()
SAFE_FADE_SCREEN_IN_FROM_BLACK(DEFAULT_FADE_TIME,FALSE)
ENDIF
ENDIF
IF bPrint01 = FALSE
PRINT_NOW("MIN2_01",7000,0) //chase the immigrant
bPrint01 = TRUE
ENDIF
iTimerChase1Started = GET_GAME_TIMER()
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "Min2****Replay skipped past cutscene****")
#ENDIF
RC_END_Z_SKIP(TRUE)
ENDPROC
/// PURPOSE: Skip the first chase
PROC SkipFirstChase()
START_REPLAY_SETUP(<< 13.7719, 3617.9197, 39.2074 >>, 242.9842)
SAFE_FADE_SCREEN_OUT_TO_BLACK(0,FALSE)
Initialise()
WaitForAssets()
SpawnPlayerCar()
SpawnJosefAndJoe()
SkipStage1()
SpawnChaseCar()
SpawnImmigrant()
SkipStage2()
RequestModelsSecondChase()
LoadModelsSecondChase()
END_REPLAY_SETUP(sRCLauncherDataLocal.vehID[0])
bDebugSkippedToCementFactory = FALSE
IF IS_VEHICLE_OK(sRCLauncherDataLocal.vehID[0])
SET_ENTITY_COORDS(sRCLauncherDataLocal.vehID[0],<< 13.7719, 3617.9197, 39.2074 >>)
SET_ENTITY_HEADING(sRCLauncherDataLocal.vehID[0],242.9842)
ENDIF
missionStage = MS_SETUP_CHASE2
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 3, pedImmigrant[0], "MANUEL")
iConvo = 2
//LOAD_SCENE(GET_ENTITY_COORDS(PLAYER_PED_ID()))
IF NOT HAS_PED_GOT_WEAPON(PLAYER_PED_ID(),WEAPONTYPE_STUNGUN)
GIVE_WEAPON_TO_PED(PLAYER_PED_ID(),WEAPONTYPE_STUNGUN,1,TRUE)
ENDIF
WAIT(500)
SET_GAMEPLAY_CAM_RELATIVE_HEADING(0)
SET_GAMEPLAY_CAM_RELATIVE_PITCH(0)
SET_PLAYER_CONTROL(PLAYER_ID(),TRUE)
IF IS_SCREEN_FADED_OUT()
IF NOT IS_SCREEN_FADING_IN()
SAFE_FADE_SCREEN_IN_FROM_BLACK(DEFAULT_FADE_TIME,FALSE)
ENDIF
ENDIF
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "Min2****Replay skipped first chase****")
#ENDIF
RC_END_Z_SKIP(TRUE)
ENDPROC
/// PURPOSE: Skip to chase 2
PROC SkipToCementFact()
START_REPLAY_SETUP(<< 277.4130, 2856.9407, 42.6421 >>, 300.9114)
SAFE_FADE_SCREEN_OUT_TO_BLACK(0,FALSE)
Initialise()
WaitForAssets()
SpawnPlayerCar()
SpawnJosefAndJoe()
SkipStage1()
SpawnChaseCar()
SpawnImmigrant()
SkipStage2()
RequestModelsSecondChase()
LoadModelsSecondChase()
SpawnChaseCar()
SpawnImmigrant()
bDebugSkippedToCementFactory = FALSE
END_REPLAY_SETUP(sRCLauncherDataLocal.vehID[0])
IF IS_VEHICLE_OK(vehChaseCar[i])
IF NOT IS_PLAYBACK_GOING_ON_FOR_VEHICLE(vehChaseCar[i])
START_PLAYBACK_RECORDED_VEHICLE(vehChaseCar[i],101,"Min2DB1")
SKIP_TIME_IN_PLAYBACK_RECORDED_VEHICLE(vehChaseCar[i],400)
SET_PLAYBACK_SPEED(vehChaseCar[i],1.1)
ENDIF
ENDIF
IF IS_VEHICLE_OK(vehChaseCarChase2)
IF NOT IS_PLAYBACK_GOING_ON_FOR_VEHICLE(vehChaseCarChase2)
START_PLAYBACK_RECORDED_VEHICLE(vehChaseCarChase2,102,"Min2DB2")
SKIP_TIME_IN_PLAYBACK_RECORDED_VEHICLE(vehChaseCarChase2,500)
SET_PLAYBACK_SPEED(vehChaseCarChase2,1.1)
ENDIF
ENDIF
IF IS_VEHICLE_OK(sRCLauncherDataLocal.vehID[0])
SET_ENTITY_COORDS(sRCLauncherDataLocal.vehID[0],<< 277.4130, 2856.9407, 42.6421 >>)
SET_ENTITY_HEADING(sRCLauncherDataLocal.vehID[0],300.9114)
START_PLAYBACK_RECORDED_VEHICLE(sRCLauncherDataLocal.vehID[0],269,"Min2Rolling")
SET_PLAYBACK_SPEED(sRCLauncherDataLocal.vehID[0],1.0)
iRollingStartTimer = GET_GAME_TIMER()
ENDIF
missionStage = MS_SETUP_CHASE2
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 3, pedImmigrant[0], "MANUEL")
//LOAD_SCENE(GET_ENTITY_COORDS(PLAYER_PED_ID()))
IF NOT HAS_PED_GOT_WEAPON(PLAYER_PED_ID(),WEAPONTYPE_STUNGUN)
GIVE_WEAPON_TO_PED(PLAYER_PED_ID(),WEAPONTYPE_STUNGUN,1,TRUE)
ENDIF
WAIT(800)
SET_GAMEPLAY_CAM_RELATIVE_HEADING(0)
SET_GAMEPLAY_CAM_RELATIVE_PITCH(0)
SET_PLAYER_CONTROL(PLAYER_ID(),TRUE)
IF IS_SCREEN_FADED_OUT()
IF NOT IS_SCREEN_FADING_IN()
SAFE_FADE_SCREEN_IN_FROM_BLACK(DEFAULT_FADE_TIME,FALSE)
ENDIF
ENDIF
TRIGGER_MUSIC_EVENT("MM2_RESTART1")
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "Min2****Replay skipped to cement factory****")
#ENDIF
bReplayCementFactory = TRUE
RC_END_Z_SKIP(TRUE)
ENDPROC
PROC SkipToEnd()
START_REPLAY_SETUP(<<349.8519, 2662.7688, 43.6822>>, 137.3727)
WAIT_FOR_CUTSCENE_TO_STOP()
TRIGGER_MUSIC_EVENT("MM2_STOP")
bDebugSkipping = TRUE
ResetStuff()
Initialise()
WaitForAssets()
SpawnPlayerCar()
SpawnJosefAndJoe()
SkipStage1()
SpawnChaseCar()
SpawnImmigrant()
SkipStage2()
RequestModelsSecondChase()
LoadModelsSecondChase()
SpawnChaseCar()
SpawnImmigrant()
END_REPLAY_SETUP()
IF IS_VEHICLE_OK(sRCLauncherDataLocal.vehID[0])
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[ic_JOE])
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[ic_JOSEF])
//IF NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
// SET_PED_INTO_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
//ENDIF
IF NOT IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
SET_PED_INTO_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0],VS_FRONT_RIGHT)
ENDIF
//IF NOT IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
SET_PED_INTO_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0],VS_BACK_LEFT)
//ENDIF
ENDIF
ENDIF
IF NOT DOES_ENTITY_EXIST(pedImmigrant[1])
pedImmigrant[1] = CREATE_PED(PEDTYPE_MISSION,S_M_M_Migrant_01,GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(sRCLauncherDataLocal.vehID[0],<<0,0,10>>),0)
SET_PED_COMPONENT_VARIATION(pedImmigrant[1],PED_COMP_HEAD,0,1)
SET_PED_COMPONENT_VARIATION(pedImmigrant[1],PED_COMP_TORSO,1,0)
SET_PED_COMPONENT_VARIATION(pedImmigrant[1],PED_COMP_LEG,0,0)
SET_PED_COMPONENT_VARIATION(pedImmigrant[1],PED_COMP_FEET,1,0)
SET_PED_COMPONENT_VARIATION(pedImmigrant[1],PED_COMP_SPECIAL,1,0)
CPRINTLN(DEBUG_MISSION, "**** pedImmigrant[1] didn't exist - create ****")
ENDIF
IF IS_PED_UNINJURED(pedImmigrant[1])
//RESET_PED_MOVEMENT_CLIPSET(pedImmigrant[1])
ssClimbToBack_2 = CREATE_SYNCHRONIZED_SCENE(<<0,0,0>>,<<0,0,0>>)
SET_SYNCHRONIZED_SCENE_HOLD_LAST_FRAME(ssClimbToBack_2,TRUE)
ATTACH_SYNCHRONIZED_SCENE_TO_ENTITY(ssClimbToBack_2,sRCLauncherDataLocal.vehID[0],GET_ENTITY_BONE_INDEX_BY_NAME(sRCLauncherDataLocal.vehID[0], "seat_pside_r"))
TASK_SYNCHRONIZED_SCENE(pedImmigrant[1], ssClimbToBack_2, "missminuteman_2ig_1", "entertrunk_josef", SLOW_BLEND_IN, SLOW_BLEND_OUT,SYNCED_SCENE_DONT_INTERRUPT,RBF_BULLET_IMPACT | RBF_PLAYER_IMPACT | RBF_IMPACT_OBJECT | RBF_VEHICLE_IMPACT)
SET_SYNCHRONIZED_SCENE_PHASE(ssClimbToBack_2,0.99)
SET_PED_CAN_BE_TARGETTED(pedImmigrant[1],FALSE)
SET_PED_RELATIONSHIP_GROUP_HASH(pedImmigrant[1],GET_PED_RELATIONSHIP_GROUP_HASH(PLAYER_PED_ID()))
iSyncPed = 1
CPRINTLN(DEBUG_MISSION, "**** pedImmigrant[1] kick off SS ****")
ENDIF
IF IS_PED_UNINJURED(pedImmigrantChase2)
IF NOT IS_PED_IN_VEHICLE(pedImmigrantChase2,sRCLauncherDataLocal.vehID[0])
SET_PED_INTO_VEHICLE(pedImmigrantChase2,sRCLauncherDataLocal.vehID[0],VS_BACK_RIGHT)
SET_PED_CAN_BE_TARGETTED(pedImmigrantChase2,FALSE)
SET_PED_RELATIONSHIP_GROUP_HASH(pedImmigrantChase2,GET_PED_RELATIONSHIP_GROUP_HASH(PLAYER_PED_ID()))
ENDIF
ENDIF
ENDIF
//RESOLVE_IDLES()
SAFE_REMOVE_BLIP(blipLocate[0])
SAFE_REMOVE_BLIP(blipLocate[1])
SET_ENTITY_COORDS(sRCLauncherDataLocal.vehID[0],<<696.1606, 2704.9006, 39.4572>>)
SET_ENTITY_HEADING(sRCLauncherDataLocal.vehID[0],92.8104)
SET_GAMEPLAY_CAM_RELATIVE_HEADING()
SET_GAMEPLAY_CAM_RELATIVE_PITCH()
SAFE_TELEPORT_ENTITY(PLAYER_PED_ID(),<<698.7277, 2708.0000, 39.3397>>, 91.2899)
Passdriveoff()
iTimerPassDriveOff = GET_GAME_TIMER() - 17000
missionStage = MS_MISSION_PASSING
//LOAD_SCENE(<<349.8519, 2662.7688, 43.6822>>)
IF NOT HAS_PED_GOT_WEAPON(PLAYER_PED_ID(),WEAPONTYPE_STUNGUN)
GIVE_WEAPON_TO_PED(PLAYER_PED_ID(),WEAPONTYPE_STUNGUN,1,TRUE)
ENDIF
//WAIT(500)
SET_GAMEPLAY_CAM_RELATIVE_HEADING(0)
SET_GAMEPLAY_CAM_RELATIVE_PITCH(0)
SAFE_FADE_SCREEN_IN_FROM_BLACK(DEFAULT_FADE_TIME,FALSE)
ENDPROC
PROC DEBUG_Check_Skips()
#IF IS_DEBUG_BUILD
SkipMenuStruct[0].sTxtLabel = "Intro Cutscene"
SkipMenuStruct[1].sTxtLabel = "Quad Chase"
SkipMenuStruct[2].sTxtLabel = "Scrambler Chase"
SkipMenuStruct[3].sTxtLabel = "End"
IF LAUNCH_MISSION_STAGE_MENU(SkipMenuStruct, iReturnStage)
IF iReturnStage = 0
WAIT_FOR_CUTSCENE_TO_STOP()
//bDebugSkipping = TRUE
ResetStuff()
Initialise()
missionStage = MS_INTRO_MOCAP
ELIF iReturnStage = 1
WAIT_FOR_CUTSCENE_TO_STOP()
bDebugSkipping = TRUE
ResetStuff()
Initialise()
WaitForAssets()
SpawnPlayerCar()
SpawnJosefAndJoe()
SkipStage1()
missionStage = MS_SETUP_CHASE1
ELIF iReturnStage = 2
WAIT_FOR_CUTSCENE_TO_STOP()
bDebugSkipping = TRUE
ResetStuff()
Initialise()
WaitForAssets()
SpawnPlayerCar()
SpawnJosefAndJoe()
SkipStage1()
SpawnChaseCar()
SpawnImmigrant()
SkipStage2()
RequestModelsSecondChase()
LoadModelsSecondChase()
missionStage = MS_SETUP_CHASE2
ELIF iReturnStage = 3
/*
WAIT_FOR_CUTSCENE_TO_STOP()
bDebugSkipping = TRUE
ResetStuff()
Initialise()
WaitForAssets()
SpawnPlayerCar()
SpawnJosefAndJoe()
SkipStage1()
SpawnChaseCar()
SpawnImmigrant()
SkipStage2()
RequestModelsSecondChase()
LoadModelsSecondChase()
SpawnChaseCar()
SpawnImmigrant()
SkipStage4()
*/
SkipToEnd()
ENDIF
ENDIF
IF IS_KEYBOARD_KEY_JUST_PRESSED(KEY_J)
bDebugSkipping = TRUE
TRIGGER_MUSIC_EVENT("MM2_STOP")
SWITCH missionStage
CASE MS_SETUP_MISSION
WAIT_FOR_CUTSCENE_TO_STOP()
BREAK
CASE MS_SETUP_CHASE1
WAIT_FOR_CUTSCENE_TO_STOP()
SkipStage1()
BREAK
CASE MS_UPDATE_CHASE1
WAIT_FOR_CUTSCENE_TO_STOP()
SkipStage2()
BREAK
CASE MS_IMMIGRANT1_APPREHENDED
WAIT_FOR_CUTSCENE_TO_STOP()
SkipStage2()
BREAK
CASE MS_SETUP_CHASE2
WAIT_FOR_CUTSCENE_TO_STOP()
SkipStage3()
BREAK
CASE MS_CEMENT_FACTORY
WAIT_FOR_CUTSCENE_TO_STOP()
SkipStage3()
BREAK
CASE MS_UPDATE_CHASE2
WAIT_FOR_CUTSCENE_TO_STOP()
SkipStage3()
BREAK
CASE MS_JOSEF_PICKED_UP_IMMIGRANT2
WAIT_FOR_CUTSCENE_TO_STOP()
SkipStage3()
BREAK
CASE MS_SETUP_CHASE3
WAIT_FOR_CUTSCENE_TO_STOP()
SkipStage3()
BREAK
CASE MS_DRIVE_TO_END
WAIT_FOR_CUTSCENE_TO_STOP()
SkipStage4()
BREAK
CASE MS_MISSION_PASSING
WAIT_FOR_CUTSCENE_TO_STOP()
CLEAR_PRINTS()
Script_Passed()
BREAK
ENDSWITCH
ENDIF
IF IS_KEYBOARD_KEY_JUST_PRESSED(KEY_P)
WAIT_FOR_CUTSCENE_TO_STOP()
bDebugSkipping = TRUE
ResetStuff()
Initialise()
IF missionStage = MS_INTRO_MOCAP
missionStage = MS_INTRO_MOCAP
ELIF missionStage = MS_SETUP_MISSION
missionStage = MS_INTRO_MOCAP
ELIF missionStage = MS_SETUP_CHASE1
missionStage = MS_INTRO_MOCAP
ELIF missionStage = MS_UPDATE_CHASE1
missionStage = MS_INTRO_MOCAP
ELIF missionStage = MS_IMMIGRANT1_APPREHENDED
SkipPastCS()
ELIF missionStage = MS_SETUP_CHASE2
SkipPastCS()
ELIF missionStage = MS_CEMENT_FACTORY
SkipFirstChase()
ELIF missionStage = MS_UPDATE_CHASE2
IF GET_GAME_TIMER() > iArrivedAtCementFactory + 15000
SkipToCementFact()
ELSE
SkipFirstChase()
ENDIF
ELIF missionStage = MS_DRIVE_TO_END
SkipToCementFact()
ELIF missionStage = MS_MISSION_PASSING
SkipToCementFact()
ENDIF
ENDIF
#ENDIF
ENDPROC
/// PURPOSE: Manage the rolling start at chase 2
PROC ManageRollingStart()
IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(sRCLauncherDataLocal.vehID[0])
IF IS_CONTROL_PRESSED(PLAYER_CONTROL, INPUT_VEH_ACCELERATE)
OR IS_CONTROL_PRESSED(PLAYER_CONTROL, INPUT_VEH_BRAKE)
OR IS_CONTROL_PRESSED(PLAYER_CONTROL, INPUT_VEH_MOVE_LEFT)
OR IS_CONTROL_PRESSED(PLAYER_CONTROL, INPUT_VEH_MOVE_RIGHT)
OR GET_GAME_TIMER() > iRollingStartTimer + 3500
IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(sRCLauncherDataLocal.vehID[0])
STOP_PLAYBACK_RECORDED_VEHICLE(sRCLauncherDataLocal.vehID[0])
CLEAR_PED_TASKS(PLAYER_PED_ID())
SET_PLAYER_CONTROL(PLAYER_ID(),TRUE)
ENDIF
ENDIF
ENDIF
ENDPROC
/// PURPOSE: Sets up the mission, spawn/init everything
PROC MS_IntroMocap()
IF IS_REPLAY_IN_PROGRESS() = TRUE
AND bDebugSkipping = FALSE
IF CREATE_NPC_PED_ON_FOOT(sRCLauncherDataLocal.pedID[ic_JOE],CHAR_JOE,<< 38.2818, 4537.5703, 95.4783 >>, 252.9034)
AND CREATE_NPC_PED_ON_FOOT(sRCLauncherDataLocal.pedID[ic_JOSEF],CHAR_JOSEF,<< 33.8430, 4537.3950, 95.9413 >>, 309.8384)
//SET_PED_PRELOAD_PROP_DATA(sRCLauncherDataLocal.pedID[ic_JOE],ANCHOR_HEAD,0)
//SET_PED_PROP_INDEX(sRCLauncherDataLocal.pedID[ic_JOE], ANCHOR_HEAD, 0)
SET_PED_PROP_INDEX(sRCLauncherDataLocal.pedID[ic_JOE], ANCHOR_EYES, 0)
SET_PED_PROP_INDEX(sRCLauncherDataLocal.pedID[ic_JOSEF], ANCHOR_HEAD, 0)
SET_PED_PROP_INDEX(sRCLauncherDataLocal.pedID[ic_JOSEF], ANCHOR_EYES, 0)
INT iReplayStage = GET_REPLAY_MID_MISSION_STAGE()
IF g_bShitskipAccepted = TRUE
iReplayStage++ // player is skipping this stage
ENDIF
IF iReplayStage = 0
SkipPastCS()
ELIF iReplayStage = 1
SkipFirstChase()
ELIF iReplayStage = 2
SkipToCementFact()
ELIF iReplayStage > 2
SkipToEnd()
ENDIF
ENDIF
ELSE
IntroCutscene()
ENDIF
ENDPROC
/// PURPOSE: Sets up the mission, spawn/init everything
PROC MS_SetupMission()
WaitForAssets()
SpawnPlayerCar()
SpawnJosefAndJoe()
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "Min2****Init setup chase 1****")
#ENDIF
IF bPrint01 = FALSE
PRINT_NOW("MIN2_01",7000,0) //chase the immigrant
bPrint01 = TRUE
ENDIF
iTimerChase1Started = GET_GAME_TIMER()
missionStage = MS_SETUP_CHASE1
ENDPROC
/// PURPOSE: Setup the first chase
PROC MS_SetupChase1()
SpawnChaseCar()
SpawnImmigrant()
Convo()
IF bOkToStartChase = TRUE
StartVehiclePlayback()
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "Min2****Init update chase 1****")
#ENDIF
//IF NOT IS_REPLAY_IN_PROGRESS()
INFORM_MISSION_STATS_SYSTEM_OF_TIME_WINDOW_OPEN(MIN2_FIRST_CAPTURE)
//ENDIF
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "STATS >>>> TIME WINDOW OPENED (First chase) <<<< ")
#ENDIF
REPLAY_RECORD_BACK_FOR_TIME(5.0, 4.0, REPLAY_IMPORTANCE_LOWEST)
missionStage = MS_UPDATE_CHASE1
ENDIF
ENDPROC
/// PURPOSE: Manage the first chase
PROC MS_UpdateChase1()
SET_INSTANCE_PRIORITY_HINT(INSTANCE_HINT_DRIVING)
IF IS_PED_UNINJURED(pedImmigrant[0])
IF NOT IS_PED_IN_ANY_VEHICLE(pedImmigrant[0])
AND NOT IS_PED_RAGDOLL(pedImmigrant[0])
AND GET_ENTITY_HEALTH(pedImmigrant[0]) > 150
SET_ENTITY_HEALTH(pedImmigrant[0],150)
ENDIF
IF bDisableAbortConvo
AND IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
AND NOT IS_PED_RAGDOLL(pedImmigrant[i])
SET_AUDIO_FLAG("DisableAbortConversationForRagdoll", FALSE)
bDisableAbortConvo = FALSE
ENDIF
START_AUDIO_SCENE_CHASE()
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[ic_JOE])
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[ic_JOSEF])
IF bBlokestunned = TRUE
IF bImmigrantHandsUp = FALSE
IF IS_ENTITY_ALIVE(vehChaseCar[0])
IF GET_IS_VEHICLE_ENGINE_RUNNING(vehChaseCar[0])
SET_VEHICLE_ENGINE_ON(vehChaseCar[0],FALSE,TRUE)
ENDIF
ENDIF
//IF NOT IS_PED_RAGDOLL(pedImmigrant[i])
IF GET_SCRIPT_TASK_STATUS(pedImmigrant[i],SCRIPT_TASK_VEHICLE_DRIVE_TO_COORD) = PERFORMING_TASK
OR GET_SCRIPT_TASK_STATUS(pedImmigrant[i],SCRIPT_TASK_VEHICLE_DRIVE_WANDER) = PERFORMING_TASK
OR GET_SCRIPT_TASK_STATUS(pedImmigrant[i],SCRIPT_TASK_VEHICLE_FOLLOW_WAYPOINT_RECORDING) = PERFORMING_TASK
CLEAR_PED_TASKS(pedImmigrant[i])
ENDIF
//ENDIF
IF IS_VEHICLE_OK(sRCLauncherDataLocal.vehID[0])
IF NOT IS_ENTITY_IN_RANGE_ENTITY(pedImmigrant[i],sRCLauncherDataLocal.pedID[ic_JOE],10)
AND NOT IS_ENTITY_IN_RANGE_ENTITY(pedImmigrant[i],sRCLauncherDataLocal.pedID[ic_JOSEF],10)
AND NOT IS_ENTITY_IN_RANGE_ENTITY(pedImmigrant[i],PLAYER_PED_ID(),10)
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF NOT IS_ENTITY_IN_RANGE_ENTITY(pedImmigrant[i],PLAYER_PED_ID(),100)
IF bPrint48GoBack = FALSE
PRINT_NOW("MIN2_48",DEFAULT_GOD_TEXT_TIME,0) //Go back and pick up the ~r~questionable.
bPrint48GoBack = TRUE
ENDIF
ENDIF
ENDIF
IF NOT IS_ENTITY_IN_WATER(pedImmigrant[i])
iPedInWater = 0
/*
IF GET_SCRIPT_TASK_STATUS(pedImmigrant[i],SCRIPT_TASK_WRITHE) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(pedImmigrant[i],SCRIPT_TASK_WRITHE) <> WAITING_TO_START_TASK
TASK_WRITHE(pedImmigrant[i],PLAYER_PED_ID(),-1,SHM_ONGROUND)
ENDIF
*/
IF NOT IS_PED_RAGDOLL(pedImmigrant[i])
bCreateNmMessage = FALSE
IF CAN_PED_RAGDOLL(pedImmigrant[i])
bRagdollTaskGiven = TRUE
SET_PED_TO_RAGDOLL(pedImmigrant[i],1000,2000,TASK_NM_SCRIPT)
ENDIF
ELSE
IF bRagdollTaskGiven = TRUE
IF bCreateNmMessage = FALSE
AND IS_PED_RUNNING_RAGDOLL_TASK(pedImmigrant[i])
CREATE_NM_MESSAGE(NM_START_START,NM_INJURED_ON_GROUND_MSG)
GIVE_PED_NM_MESSAGE(pedImmigrant[i])
bRagdollTaskGiven = FALSE
bCreateNmMessage = TRUE
IF IS_ENTITY_IN_RANGE_ENTITY(pedImmigrant[i],PLAYER_PED_ID(),40)
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 3, pedImmigrant[0], "MANUEL")
CREATE_CONVERSATION(s_conversation_peds, "MIN2AU","MIN2_INJ1",CONV_PRIORITY_MEDIUM, DO_NOT_DISPLAY_SUBTITLES) //Immigrant groaning in pain 1
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
++iPedInWater
IF iPedInWater > 20
SET_ENTITY_HEALTH(pedImmigrant[i],0)
ENDIF
ENDIF
ENDIF
IF IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
AND IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
AND IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
IF NOT IS_ENTITY_IN_WATER(pedImmigrant[i])
iPedInWater = 0
/*
IF GET_SCRIPT_TASK_STATUS(pedImmigrant[i],SCRIPT_TASK_WRITHE) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(pedImmigrant[i],SCRIPT_TASK_WRITHE) <> WAITING_TO_START_TASK
TASK_WRITHE(pedImmigrant[i],PLAYER_PED_ID(),-1,SHM_ONGROUND)
ENDIF
*/
IF NOT IS_PED_RAGDOLL(pedImmigrant[i])
bCreateNmMessage = FALSE
IF CAN_PED_RAGDOLL(pedImmigrant[i])
bRagdollTaskGiven = TRUE
SET_PED_TO_RAGDOLL(pedImmigrant[i],1000,2000,TASK_NM_SCRIPT)
ENDIF
ELSE
IF bRagdollTaskGiven = TRUE
IF bCreateNmMessage = FALSE
AND IS_PED_RUNNING_RAGDOLL_TASK(pedImmigrant[i])
CREATE_NM_MESSAGE(NM_START_START,NM_INJURED_ON_GROUND_MSG)
GIVE_PED_NM_MESSAGE(pedImmigrant[i])
bRagdollTaskGiven = FALSE
bCreateNmMessage = TRUE
IF IS_ENTITY_IN_RANGE_ENTITY(pedImmigrant[i],PLAYER_PED_ID(),40)
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 3, pedImmigrant[0], "MANUEL")
CREATE_CONVERSATION(s_conversation_peds, "MIN2AU","MIN2_INJ1",CONV_PRIORITY_MEDIUM, DO_NOT_DISPLAY_SUBTITLES) //Immigrant groaning in pain 1
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
++iPedInWater
IF iPedInWater > 20
SET_ENTITY_HEALTH(pedImmigrant[i],0)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF IS_VEHICLE_OK(vehChaseCar[i])
IF IS_PED_IN_VEHICLE(pedImmigrant[i],vehChaseCar[i])
IF DOES_BLIP_EXIST(blipImmigrant[i])
UPDATE_CHASE_BLIP(blipImmigrant[i],pedImmigrant[i],300,0.8)
ENDIF
ENDIF
IF bBlokestunned = FALSE
IF GET_GAME_TIMER() > iTimerChase1Started + 9000
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF IS_VEHICLE_OK(sRCLauncherDataLocal.vehID[0])
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[ic_JOE])
IF IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
IF NOT IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),pedImmigrant[i],180)
IF iCatchUpLines < 3
IF GET_GAME_TIMER() > iTimerCatchUpLines + 6000
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF CREATE_CONVERSATION(s_conversation_peds, "MIN2AU","MIN2_CATCH1",CONV_PRIORITY_MEDIUM) //Come on! Step on it!
++iCatchUpLines
iTimerCatchUpLines = GET_GAME_TIMER() + GET_RANDOM_INT_IN_RANGE(0,2000)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF GET_SCRIPT_TASK_STATUS(pedImmigrant[i],SCRIPT_TASK_PERFORM_SEQUENCE) <> PERFORMING_TASK
TASK_PERFORM_SEQUENCE(pedImmigrant[i],seqChase1)
ENDIF
ENDIF
ELSE
IF NOT IS_THIS_PRINT_BEING_DISPLAYED("MIN2_48")
IF NOT bDialogueGoBack
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
AND IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
AND IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
IF NOT IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),pedImmigrant[i],20)
IF CREATE_CONVERSATION(s_conversation_peds, "MIN2AU","MIN2_GOBACK",CONV_PRIORITY_MEDIUM) //Right, let's go get him in custody.
REPLAY_RECORD_BACK_FOR_TIME(3.0, 7.0, REPLAY_IMPORTANCE_LOW)
bDialogueGoBack = TRUE
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF iGoBackLines < 4
IF GET_GAME_TIMER() > iTimerGoBackLines + 6000
IF IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
AND IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
AND IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
IF NOT IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),pedImmigrant[i],40)
IF iGoBackLines < 4
IF CREATE_CONVERSATION(s_conversation_peds, "MIN2AU","MIN2_REMIND",CONV_PRIORITY_MEDIUM) //Are you just going to leave an enemy of this country on the side of the road?
++iGoBackLines
iTimerGoBackLines = GET_GAME_TIMER() + GET_RANDOM_INT_IN_RANGE(0,2000)
ENDIF
/*
ELSE
IF CREATE_CONVERSATION(s_conversation_peds, "MIN2AU","MIN2_ABAND",CONV_PRIORITY_MEDIUM) //Trevor, you forgot the illegal!
++iGoBackLines
iTimerGoBackLines = GET_GAME_TIMER() + GET_RANDOM_INT_IN_RANGE(0,2000)
ENDIF
*/
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
//DoTraffic()
JosefOnFoot()
JoeOnFoot()
UpdateVehiclePlayback()
Chase1JJAI()
Convo()
//RandomCarHorns()
IsPlayerAbandoning()
IF GET_GAME_TIMER() > iTimerChase1Started + 20000
IF IS_PED_UNINJURED(pedImmigrant[0])
IF IS_ENTITY_ATTACHED(pedImmigrant[0])
OR IS_PED_IN_ANY_VEHICLE(pedImmigrant[0])
SET_RANDOM_VEHICLE_DENSITY_MULTIPLIER_THIS_FRAME(0.5)
ENDIF
ENDIF
ELSE
SET_RANDOM_VEHICLE_DENSITY_MULTIPLIER_THIS_FRAME(0)
ENDIF
IF bImmigrantHandsUp = TRUE
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "Min2****Init immigrant 1 apprehended****")
#ENDIF
SET_AUDIO_FLAG("DisableAbortConversationForRagdoll", FALSE)
bDisableAbortConvo = FALSE
iCatchUpLines = 0
missionStage = MS_IMMIGRANT1_APPREHENDED
ENDIF
ENDPROC
/// PURPOSE: First immigrant captured, waiting for them to get in the vehicle
PROC MS_Immigrant1Apprehended()
JoeOnFoot()
ImmigrantGetInTruck()
IsPlayerAbandoning()
Convo()
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOE],SCRIPT_TASK_ENTER_VEHICLE) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOE],SCRIPT_TASK_ENTER_VEHICLE) <> WAITING_TO_START_TASK
JosefOnFoot()
/*
IF IS_PED_IN_VEHICLE(pedImmigrant[0],sRCLauncherDataLocal.vehID[0],TRUE)
IF IS_ENTITY_IN_RANGE_ENTITY(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0],15.0)
TASK_ENTER_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0],DEFAULT_TIME_BEFORE_WARP_MINUTE_2,VS_BACK_LEFT,PEDMOVEBLENDRATIO_WALK)
ELSE
TASK_ENTER_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0],DEFAULT_TIME_BEFORE_WARP_MINUTE_2,VS_BACK_LEFT,PEDMOVEBLENDRATIO_RUN)
ENDIF
ENDIF
*/
ENDIF
IF bBloke1AttachedToCar = TRUE
//RequestModelsSecondChase()
//LoadModelsSecondChase()
bLosingCops = TRUE
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "Min2****Init setup chase 2****")
#ENDIF
REPLAY_RECORD_BACK_FOR_TIME(5.0, 5.0, REPLAY_IMPORTANCE_LOW)
missionStage = MS_SETUP_CHASE2
ENDIF
ENDPROC
/// PURPOSE: Setup the second chase, waiting for the player to get to the cement factory
PROC MS_SetupChase2()
IF GET_DISTANCE_BETWEEN_ENTITY_AND_COORD(PLAYER_PED_ID(),<< 267.2497, 2852.1667, 42.6129 >>) < 200
SET_PLAYER_WANTED_LEVEL(PLAYER_ID(),GET_PLAYER_WANTED_LEVEL(PLAYER_ID()))
ENDIF
IF GET_PLAYER_WANTED_LEVEL(PLAYER_ID()) = 0
IF IS_ENTITY_IN_RANGE_COORDS(PLAYER_PED_ID(),<< 267.2497, 2852.1667, 42.6129 >>,250)
IF bLosingCops = TRUE
RequestModelsSecondChase()
LoadModelsSecondChase()
ENDIF
bLosingCops = FALSE
bPrintLosingCops = FALSE
SpawnChaseCar()
SpawnImmigrant()
OpenGates()
ENDIF
IF DOES_BLIP_EXIST(blipLocate[i])
IF IS_ENTITY_AT_COORD(PLAYER_PED_ID(),<< 267.2497, 2852.1667, 42.6129 >>,<<LOCATE_SIZE_ANY_MEANS,LOCATE_SIZE_ANY_MEANS,LOCATE_SIZE_HEIGHT>>,TRUE)
ENDIF
IF bCementFactoryCheckpoint = FALSE
CleanupTraffic()
SET_REPLAY_MID_MISSION_STAGE_WITH_NAME(1,"Driving to the cement factory")
bCementFactoryCheckpoint = TRUE
ENDIF
IF IS_ENTITY_IN_RANGE_COORDS(PLAYER_PED_ID(),<< 267.2497, 2852.1667, 42.6129 >>,240)
SetupSequences()
ENDIF
ELSE
IF bCementFactoryCheckpoint = FALSE
//DoTraffic()
ENDIF
ENDIF
Convo()
IF bOkToStartChase = TRUE
SetupSequences()
iArrivedAtCementFactory = GET_GAME_TIMER()
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "Min2****Init cement factory****")
#ENDIF
TRIGGER_MUSIC_EVENT("MM2_START_FORA")
missionStage = MS_CEMENT_FACTORY
ENDIF
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[ic_JOSEF])
SET_PED_COMBAT_ATTRIBUTES(sRCLauncherDataLocal.pedID[ic_JOSEF], CA_USE_VEHICLE, TRUE)
SET_PED_COMBAT_ATTRIBUTES(sRCLauncherDataLocal.pedID[ic_JOSEF], CA_DO_DRIVEBYS, TRUE)
IF NOT IS_PED_IN_ANY_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF])
AND NOT IS_SYNCHRONIZED_SCENE_RUNNING(ssPassport)
IF IS_IT_OK_FOR_JOSEF_TO_GET_IN()
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_ENTER_VEHICLE) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_ENTER_VEHICLE) <> WAITING_TO_START_TASK
IF IS_ENTITY_IN_RANGE_ENTITY(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0],10.0)
TASK_ENTER_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0],DEFAULT_TIME_BEFORE_WARP_MINUTE_2,VS_BACK_LEFT,1)
ELSE
TASK_ENTER_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0],DEFAULT_TIME_BEFORE_WARP_MINUTE_2,VS_BACK_LEFT,PEDMOVEBLENDRATIO_RUN)
ENDIF
ENDIF
ELSE
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_FOLLOW_NAV_MESH_TO_COORD) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_FOLLOW_NAV_MESH_TO_COORD) <> WAITING_TO_START_TASK
TASK_FOLLOW_NAV_MESH_TO_COORD(sRCLauncherDataLocal.pedID[ic_JOSEF],GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(sRCLauncherDataLocal.vehID[0],<<-1.8,-0.2,0>>),1,DEFAULT_TIME_BEFORE_WARP_MINUTE_2,0.5,ENAV_DEFAULT,GET_ENTITY_HEADING(sRCLauncherDataLocal.vehID[0])-90.0)
ENDIF
ENDIF
ENDIF
ENDIF
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[ic_JOE])
SET_PED_COMBAT_ATTRIBUTES(sRCLauncherDataLocal.pedID[ic_JOE], CA_USE_VEHICLE, TRUE)
SET_PED_COMBAT_ATTRIBUTES(sRCLauncherDataLocal.pedID[ic_JOE], CA_DO_DRIVEBYS, TRUE)
IF NOT IS_PED_IN_ANY_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],TRUE)
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOE],SCRIPT_TASK_ENTER_VEHICLE) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOE],SCRIPT_TASK_ENTER_VEHICLE) <> WAITING_TO_START_TASK
TASK_ENTER_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0],DEFAULT_TIME_BEFORE_WARP_MINUTE_2,VS_FRONT_RIGHT)
ENDIF
ENDIF
ENDIF
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF NOT bPatrolVehDialogue
AND bButterFingers
IF NOT IS_ENTITY_IN_RANGE_COORDS(PLAYER_PED_ID(),<< 267.2497, 2852.1667, 42.6129 >>,200)
IF IS_VEHICLE_OK(sRCLauncherDataLocal.vehID[0])
AND IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0]) //How did you get your hands on this patrol car?
AND IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
AND IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
AND NOT IS_THIS_PRINT_BEING_DISPLAYED("MIN2_48")
IF CREATE_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_JJ4", CONV_PRIORITY_VERY_LOW)
bPatrolVehDialogue = TRUE
ENDIF
ENDIF
ENDIF
ENDIF
IF NOT IS_SYNCHRONIZED_SCENE_RUNNING(ssPassport)
IF NOT bDialogueLeftJorJ
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
IF GET_ENTITY_SPEED(PLAYER_PED_ID()) > 10.0
IF NOT IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
AND IS_ENTITY_IN_RANGE_ENTITY(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0],40)
IF NOT IS_THIS_PRINT_BEING_DISPLAYED("MIN2_29")
AND NOT IS_THIS_PRINT_BEING_DISPLAYED("MIN2_32")
AND NOT IS_THIS_PRINT_BEING_DISPLAYED("MIN2_33")
AND NOT IS_THIS_PRINT_BEING_DISPLAYED("MIN2_49")
AND NOT IS_THIS_PRINT_BEING_DISPLAYED("MIN2_06")
CREATE_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_NOJOE", CONV_PRIORITY_VERY_LOW) //Hey, you forgot me, you dolt!
ELSE
CREATE_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_NOJOE", CONV_PRIORITY_VERY_LOW,DO_NOT_DISPLAY_SUBTITLES)
ENDIF
bDialogueLeftJorJ = TRUE
ENDIF
IF NOT IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
AND IS_ENTITY_IN_RANGE_ENTITY(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0],40)
IF NOT IS_THIS_PRINT_BEING_DISPLAYED("MIN2_29")
AND NOT IS_THIS_PRINT_BEING_DISPLAYED("MIN2_32")
AND NOT IS_THIS_PRINT_BEING_DISPLAYED("MIN2_33")
AND NOT IS_THIS_PRINT_BEING_DISPLAYED("MIN2_49")
AND NOT IS_THIS_PRINT_BEING_DISPLAYED("MIN2_06")
CREATE_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_NOJOSEF", CONV_PRIORITY_VERY_LOW) //Hey! I hate this new guy!
ELSE
CREATE_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_NOJOSEF", CONV_PRIORITY_VERY_LOW,DO_NOT_DISPLAY_SUBTITLES)
ENDIF
bDialogueLeftJorJ = TRUE
ENDIF
ENDIF
ENDIF
ELSE
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
IF iDialogueGoBackJorJ < 3
AND GET_GAME_TIMER() > iTimerGoBackJorJ + 6000
IF NOT IS_THIS_PRINT_BEING_DISPLAYED("MIN2_29")
AND NOT IS_THIS_PRINT_BEING_DISPLAYED("MIN2_32")
AND NOT IS_THIS_PRINT_BEING_DISPLAYED("MIN2_33")
AND NOT IS_THIS_PRINT_BEING_DISPLAYED("MIN2_49")
AND NOT IS_THIS_PRINT_BEING_DISPLAYED("MIN2_06")
IF NOT IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
AND IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
AND NOT IS_ENTITY_IN_RANGE_ENTITY(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0],50)
CREATE_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_GOBACK2", CONV_PRIORITY_VERY_LOW) //No! No! Need Joe!
++iDialogueGoBackJorJ
iTimerGoBackJorJ = GET_GAME_TIMER() + GET_RANDOM_INT_IN_RANGE(0,2000)
ENDIF
IF NOT IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
AND IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
AND NOT IS_ENTITY_IN_RANGE_ENTITY(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0],50)
CREATE_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_GOBACK1", CONV_PRIORITY_VERY_LOW) //We're not leaving without Josef.
++iDialogueGoBackJorJ
iTimerGoBackJorJ = GET_GAME_TIMER() + GET_RANDOM_INT_IN_RANGE(0,2000)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
bLosingCops = TRUE
SAFE_DELETE_PED(pedImmigrant[1])
SAFE_DELETE_PED(pedImmigrantChase2)
SAFE_DELETE_PED(pedWorker[0])
SAFE_DELETE_VEHICLE(vehChaseCar[1])
SAFE_DELETE_VEHICLE(vehChaseCarChase2)
SAFE_DELETE_VEHICLE(vehSpeedo)
IF NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
IF NOT DOES_BLIP_EXIST(blipPlayerCar)
blipPlayerCar = CREATE_VEHICLE_BLIP(sRCLauncherDataLocal.vehID[0])
ENDIF
ELSE
IF bPrintLosingCops = FALSE
PRINT_NOW("MIN2_COPS",DEFAULT_GOD_TEXT_TIME,0)
bPrintLosingCops = TRUE
ENDIF
SAFE_REMOVE_BLIP(blipPlayerCar)
ENDIF
//<< 267.2497, 2852.1667, 42.6129 >> //cement factory
ENDIF
ENDPROC
/// PURPOSE: Player arrived at the cement factory, start second chase
PROC MS_CementFactory()
IF bSecondMusicCue = FALSE
IF GET_GAME_TIMER() > iArrivedAtCementFactory + 5000
TRIGGER_MUSIC_EVENT("MM2_START_STA")
bSecondMusicCue = TRUE
ENDIF
ENDIF
/*
WHILE(TRUE)
OpenGates()
DEBUG_Check_Debug_Keys()
DEBUG_Check_Skips()
WAIT(0)
ENDWHILE
*/
SAFE_REMOVE_BLIP(blipLocate[i])
OpenGates()
Convo()
UpdateAmbientCementFactory()
IF GET_GAME_TIMER() > iArrivedAtCementFactory + 2000
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
IF NOT DOES_BLIP_EXIST(blipImmigrant[i])
blipImmigrant[i] = CREATE_PED_BLIP(pedImmigrant[i])
IF NOT IS_PED_IN_ANY_VEHICLE(pedImmigrant[i])
SET_BLIP_SCALE(blipImmigrant[i],BLIP_SIZE_PED)
ELSE
SET_BLIP_SCALE(blipImmigrant[i],BLIP_SIZE_VEHICLE)
ENDIF
//CLEAR_PRINTS()
IF bPrint30 = FALSE
//PRINT_NOW("",7000,0) //chase the immigrants
bPrint30 = TRUE
IF i = 0 //There he is! Get after him! etc
PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_JOSEF", "MIN2_JOSEF_4", CONV_PRIORITY_VERY_LOW)
REPLAY_RECORD_BACK_FOR_TIME(3.0, 8.0, REPLAY_IMPORTANCE_LOW)
ELIF i = 1
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 4, pedImmigrantChase2, "IMMIGRANTMALE")
//PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_SURR", "MIN2_SURR_15", CONV_PRIORITY_VERY_LOW,DO_NOT_DISPLAY_SUBTITLES)
CREATE_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_SURR_15", CONV_PRIORITY_LOW,DO_NOT_DISPLAY_SUBTITLES)
ELIF i = 2
//PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_JOSEF", "MIN2_JOSEF_6", CONV_PRIORITY_VERY_LOW,DO_NOT_DISPLAY_SUBTITLES)
ENDIF
ENDIF
IF bPlayerNotInCarBetweenCapturingImmigrants = TRUE
IF bPrint31 = FALSE
PRINT_NOW("MIN2_31",7000,0) //Go back and pick up the ~r~questionable.
bPrint31 = TRUE
ENDIF
ENDIF
ENDIF
IF NOT DOES_BLIP_EXIST(blipImmigrantChase2)
blipImmigrantChase2 = CREATE_PED_BLIP(pedImmigrantChase2)
IF NOT IS_PED_IN_ANY_VEHICLE(pedImmigrantChase2)
SET_BLIP_SCALE(blipImmigrantChase2,BLIP_SIZE_PED)
ELSE
SET_BLIP_SCALE(blipImmigrantChase2,BLIP_SIZE_VEHICLE)
ENDIF
ENDIF
ELSE
IF NOT DOES_BLIP_EXIST(blipImmigrant[i])
IF bPlayerNotInCarBetweenCapturingImmigrants = FALSE
IF bPlayerAtChaseOnFootMessagePrinted = FALSE
IF bPrint39 = FALSE
PRINT_NOW("MIN2_39",7000,0) //The Immigrants are escaping! Get in the ~b~vehicle.
bPrint39 = TRUE
ENDIF
bPlayerAtChaseOnFootMessagePrinted = TRUE
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF GET_GAME_TIMER() > iArrivedAtCementFactory + 5000
SetupSequences()
StartVehiclePlayback()
SET_REPLAY_MID_MISSION_STAGE_WITH_NAME(2,"Dirt bike chase",TRUE)
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "Min2****Init update chase 2****")
#ENDIF
//IF NOT IS_REPLAY_IN_PROGRESS()
INFORM_MISSION_STATS_SYSTEM_OF_TIME_WINDOW_OPEN(MIN2_SECOND_CAPTURE)
//ENDIF
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "STATS >>>> TIME WINDOW OPENED (Second chase) <<<< ")
#ENDIF
missionStage = MS_UPDATE_CHASE2
ENDIF
ENDPROC
/// PURPOSE: Manage second chase
PROC MS_UpdateChase2()
SET_INSTANCE_PRIORITY_HINT(INSTANCE_HINT_DRIVING)
IF bSecondMusicCue = FALSE
IF GET_GAME_TIMER() > iArrivedAtCementFactory + 5000
TRIGGER_MUSIC_EVENT("MM2_START_STA")
bSecondMusicCue = TRUE
ENDIF
ENDIF
//IF GET_GAME_TIMER() > iChaseStartedTimer + 32500
// SpawnDuster()
//ENDIF
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[ic_JOE])
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[ic_JOSEF])
IF bSECONDBlokestunned = TRUE
IF bImmigrantChase2HandsUp = FALSE
IF IS_VEHICLE_OK(sRCLauncherDataLocal.vehID[0])
IF NOT IS_ENTITY_IN_RANGE_ENTITY(pedImmigrantChase2,sRCLauncherDataLocal.pedID[ic_JOE],10)
AND NOT IS_ENTITY_IN_RANGE_ENTITY(pedImmigrantChase2,sRCLauncherDataLocal.pedID[ic_JOSEF],10)
AND NOT IS_ENTITY_IN_RANGE_ENTITY(pedImmigrantChase2,PLAYER_PED_ID(),10)
IF NOT IS_ENTITY_IN_WATER(pedImmigrantChase2)
iPed2InWater = 0
/*
IF GET_SCRIPT_TASK_STATUS(pedImmigrantChase2,SCRIPT_TASK_WRITHE) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(pedImmigrantChase2,SCRIPT_TASK_WRITHE) <> WAITING_TO_START_TASK
TASK_WRITHE(pedImmigrantChase2,PLAYER_PED_ID(),-1,SHM_ONGROUND)
ENDIF
*/
IF NOT IS_PED_RAGDOLL(pedImmigrantChase2)
bCreateNmMessagePed2 = FALSE
IF CAN_PED_RAGDOLL(pedImmigrantChase2)
bRagdollTaskGivenPed2 = TRUE
SET_PED_TO_RAGDOLL(pedImmigrantChase2,1000,2000,TASK_NM_SCRIPT)
ENDIF
ELSE
IF bRagdollTaskGivenPed2 = TRUE
IF bCreateNmMessagePed2 = FALSE
AND IS_PED_RUNNING_RAGDOLL_TASK(pedImmigrantChase2)
CREATE_NM_MESSAGE(NM_START_START,NM_INJURED_ON_GROUND_MSG)
GIVE_PED_NM_MESSAGE(pedImmigrantChase2)
bRagdollTaskGivenPed2 = FALSE
bCreateNmMessagePed2 = TRUE
IF IS_ENTITY_IN_RANGE_ENTITY(pedImmigrantChase2,PLAYER_PED_ID(),40)
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 4, pedImmigrantChase2, "IMMIGRANTMALE")
CREATE_CONVERSATION(s_conversation_peds, "MIN2AU","MIN2_INJ2",CONV_PRIORITY_MEDIUM, DO_NOT_DISPLAY_SUBTITLES) //Immigrant groaning in pain 4
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
++iPed2InWater
IF iPed2InWater > 60
SET_ENTITY_HEALTH(pedImmigrantChase2,0)
ENDIF
ENDIF
ENDIF
IF IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
AND IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
AND IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
IF NOT IS_ENTITY_IN_WATER(pedImmigrantChase2)
iPed2InWater = 0
/*
IF GET_SCRIPT_TASK_STATUS(pedImmigrantChase2,SCRIPT_TASK_WRITHE) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(pedImmigrantChase2,SCRIPT_TASK_WRITHE) <> WAITING_TO_START_TASK
TASK_WRITHE(pedImmigrantChase2,PLAYER_PED_ID(),-1,SHM_ONGROUND)
ENDIF
*/
IF NOT IS_PED_RAGDOLL(pedImmigrantChase2)
bCreateNmMessagePed2 = FALSE
IF CAN_PED_RAGDOLL(pedImmigrantChase2)
bRagdollTaskGivenPed2 = TRUE
SET_PED_TO_RAGDOLL(pedImmigrantChase2,1000,2000,TASK_NM_SCRIPT)
ENDIF
ELSE
IF bRagdollTaskGivenPed2 = TRUE
IF bCreateNmMessagePed2 = FALSE
AND IS_PED_RUNNING_RAGDOLL_TASK(pedImmigrantChase2)
CREATE_NM_MESSAGE(NM_START_START,NM_INJURED_ON_GROUND_MSG)
GIVE_PED_NM_MESSAGE(pedImmigrantChase2)
bRagdollTaskGivenPed2 = FALSE
bCreateNmMessagePed2 = TRUE
IF IS_ENTITY_IN_RANGE_ENTITY(pedImmigrantChase2,PLAYER_PED_ID(),40)
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 4, pedImmigrantChase2, "IMMIGRANTMALE2")
CREATE_CONVERSATION(s_conversation_peds, "MIN2AU","MIN2_INJ2",CONV_PRIORITY_MEDIUM, DO_NOT_DISPLAY_SUBTITLES) //Immigrant groaning in pain 4
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
++iPed2InWater
IF iPed2InWater > 60
SET_ENTITY_HEALTH(pedImmigrantChase2,0)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF bBlokestunned = TRUE
IF bImmigrantHandsUp = FALSE
IF IS_VEHICLE_OK(sRCLauncherDataLocal.vehID[0])
IF NOT IS_ENTITY_IN_RANGE_ENTITY(pedImmigrant[i],sRCLauncherDataLocal.pedID[ic_JOE],10) //9.2
AND NOT IS_ENTITY_IN_RANGE_ENTITY(pedImmigrant[i],sRCLauncherDataLocal.pedID[ic_JOSEF],10)
AND NOT IS_ENTITY_IN_RANGE_ENTITY(pedImmigrant[i],PLAYER_PED_ID(),10)
IF NOT IS_ENTITY_IN_WATER(pedImmigrant[i])
iPedInWater = 0
/*
IF GET_SCRIPT_TASK_STATUS(pedImmigrant[i],SCRIPT_TASK_WRITHE) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(pedImmigrant[i],SCRIPT_TASK_WRITHE) <> WAITING_TO_START_TASK
TASK_WRITHE(pedImmigrant[i],PLAYER_PED_ID(),-1,SHM_ONGROUND)
ENDIF
*/
IF NOT IS_PED_RAGDOLL(pedImmigrant[i])
bCreateNmMessage = FALSE
IF CAN_PED_RAGDOLL(pedImmigrant[i])
bRagdollTaskGiven = TRUE
SET_PED_TO_RAGDOLL(pedImmigrant[i],1000,2000,TASK_NM_SCRIPT)
ENDIF
ELSE
IF bRagdollTaskGiven = TRUE
IF bCreateNmMessage = FALSE
AND IS_PED_RUNNING_RAGDOLL_TASK(pedImmigrant[i])
CREATE_NM_MESSAGE(NM_START_START,NM_INJURED_ON_GROUND_MSG)
GIVE_PED_NM_MESSAGE(pedImmigrant[i])
bRagdollTaskGiven = FALSE
bCreateNmMessage = TRUE
IF IS_ENTITY_IN_RANGE_ENTITY(pedImmigrant[i],PLAYER_PED_ID(),40)
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 5, pedImmigrant[i], "IMMIGRANTMALE2")
CREATE_CONVERSATION(s_conversation_peds, "MIN2AU","MIN2_INJ3",CONV_PRIORITY_MEDIUM, DO_NOT_DISPLAY_SUBTITLES) //Immigrant groaning in pain 7
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
++iPedInWater
IF iPedInWater > 60
SET_ENTITY_HEALTH(pedImmigrant[i],0)
ENDIF
ENDIF
ENDIF
IF IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
AND IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
AND IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
IF NOT IS_ENTITY_IN_WATER(pedImmigrant[i])
iPedInWater = 0
/*
IF GET_SCRIPT_TASK_STATUS(pedImmigrant[i],SCRIPT_TASK_WRITHE) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(pedImmigrant[i],SCRIPT_TASK_WRITHE) <> WAITING_TO_START_TASK
TASK_WRITHE(pedImmigrant[i],PLAYER_PED_ID(),-1,SHM_ONGROUND)
ENDIF
*/
IF NOT IS_PED_RAGDOLL(pedImmigrant[i])
bCreateNmMessage = FALSE
IF CAN_PED_RAGDOLL(pedImmigrant[i])
bRagdollTaskGiven = TRUE
SET_PED_TO_RAGDOLL(pedImmigrant[i],1000,2000,TASK_NM_SCRIPT)
ENDIF
ELSE
IF bRagdollTaskGiven = TRUE
IF bCreateNmMessage = FALSE
AND IS_PED_RUNNING_RAGDOLL_TASK(pedImmigrant[i])
CREATE_NM_MESSAGE(NM_START_START,NM_INJURED_ON_GROUND_MSG)
GIVE_PED_NM_MESSAGE(pedImmigrant[i])
bRagdollTaskGiven = FALSE
bCreateNmMessage = TRUE
IF IS_ENTITY_IN_RANGE_ENTITY(pedImmigrant[i],PLAYER_PED_ID(),40)
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 5, pedImmigrant[i], "IMMIGRANTMALE2")
CREATE_CONVERSATION(s_conversation_peds, "MIN2AU","MIN2_INJ3",CONV_PRIORITY_MEDIUM, DO_NOT_DISPLAY_SUBTITLES) //Immigrant groaning in pain 7
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
++iPedInWater
IF iPedInWater > 60
SET_ENTITY_HEALTH(pedImmigrant[i],0)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF bBlokestunned = TRUE
AND bSECONDBlokestunned = TRUE
IF bCloseFinalTimeWindowForStats = FALSE
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "STATS >>>> TIME WINDOW CLOSED (Second chase) <<<< ")
#ENDIF
REPLAY_RECORD_BACK_FOR_TIME(3.0, 8.0, REPLAY_IMPORTANCE_LOWEST)
TRIGGER_MUSIC_EVENT("MM2_STOP")
//IF NOT IS_REPLAY_IN_PROGRESS()
INFORM_MISSION_STATS_SYSTEM_OF_TIME_WINDOW_CLOSED(TRUE,MIN2_SECOND_CAPTURE)
//ENDIF
bCloseFinalTimeWindowForStats = TRUE
ENDIF
ENDIF
IF IS_REPLAY_IN_PROGRESS()
ManageRollingStart()
ENDIF
IF bDialogueDontletTheOtherEscape = TRUE
IF bBlokeStunned = FALSE
OR bSECONDBlokeStunned = FALSE
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF GET_GAME_TIMER() > iTimerDontLetTheOtherEscape + 1500 //We can come back for him... Don't let the other one get away!
//IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_SURR", "MIN2_SURR_10", CONV_PRIORITY_LOW)
IF CREATE_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_SURR_10", CONV_PRIORITY_LOW)
bDialogueDontletTheOtherEscape = FALSE
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF bBloke2AttachedToCar = FALSE
IF bBlokestunned = TRUE
AND bSECONDBlokestunned = TRUE
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOE],SCRIPT_TASK_ENTER_VEHICLE) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOE],SCRIPT_TASK_ENTER_VEHICLE) <> WAITING_TO_START_TASK
JosefOnFoot()
ENDIF
ELSE
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[ic_JOE])
IF NOT IS_PED_IN_ANY_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],TRUE)
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOE],SCRIPT_TASK_ENTER_VEHICLE) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOE],SCRIPT_TASK_ENTER_VEHICLE) <> WAITING_TO_START_TASK
TASK_ENTER_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0],DEFAULT_TIME_BEFORE_WARP_MINUTE_2,VS_FRONT_RIGHT,PEDMOVEBLENDRATIO_WALK)
ENDIF
ENDIF
ENDIF
ENDIF
IF bpedImmigrantChase2Attached = FALSE
IF bBlokestunned = TRUE
AND bSECONDBlokestunned = TRUE
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_ENTER_VEHICLE) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_ENTER_VEHICLE) <> WAITING_TO_START_TASK
JoeOnFoot()
ENDIF
ENDIF
ELSE
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[ic_JOSEF])
IF NOT IS_PED_IN_ANY_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF])
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_ENTER_VEHICLE) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_ENTER_VEHICLE) <> WAITING_TO_START_TASK
TASK_ENTER_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0],DEFAULT_TIME_BEFORE_WARP_MINUTE_2,VS_BACK_LEFT)
ENDIF
ENDIF
ENDIF
ENDIF
IF bBlokestunned = FALSE
OR bSECONDBlokestunned = FALSE
UpdateVehiclePlayback()
ELSE
IF iSeqHintCam < 3
KILL_CHASE_HINT_CAM(localChaseHintCamStruct)
iSeqHintCam = 3
ENDIF
ENDIF
OpenGates()
Convo()
UpdateAmbientCementFactory()
IF bImmigrantHandsUp = TRUE
IF bBloke2AttachedToCar = FALSE
ImmigrantGetInTruck()
ELSE
IF NOT bDialoguePickUpLastGuy
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF NOT IS_THIS_PRINT_BEING_DISPLAYED("MIN2_31")
IF IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
AND IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
AND IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
AND NOT IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),pedImmigrantChase2,100)
IF IS_ENTITY_ALIVE(pedImmigrant[0])
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 3, pedImmigrant[0], "MANUEL")
ENDIF
IF IS_ENTITY_ALIVE(pedImmigrant[1])
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 5, pedImmigrant[1], "IMMIGRANTMALE2")
ENDIF
IF CREATE_CONVERSATION(s_conversation_peds, "MIN2AU","MIN2_CHATB2",CONV_PRIORITY_MEDIUM) //Please, I have a family.
bDialoguePickUpLastGuy = TRUE
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
Chase2JosefAi()
ENDIF
IF bImmigrantChase2HandsUp = TRUE
IF bpedImmigrantChase2Attached = FALSE
ImmigrantChase2GetInTruck()
ELSE
IF NOT bDialoguePickUpLastGuy
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF NOT IS_THIS_PRINT_BEING_DISPLAYED("MIN2_31")
IF IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
AND IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
AND IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
AND NOT IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),pedImmigrant[i],100)
IF IS_ENTITY_ALIVE(pedImmigrantChase2)
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 4, pedImmigrantChase2, "IMMIGRANTMALE2")
ENDIF
IF IS_ENTITY_ALIVE(pedImmigrant[0])
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 3, pedImmigrant[0], "MANUEL")
ENDIF
IF CREATE_CONVERSATION(s_conversation_peds, "MIN2AU","MIN2_CHATB1",CONV_PRIORITY_MEDIUM) //Whoa, boys. What happened to the land of the free, here?
bDialoguePickUpLastGuy = TRUE
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
Chase2JoeAi()
ENDIF
IF IS_PED_UNINJURED(pedImmigrant[1])
IF NOT IS_PED_IN_ANY_VEHICLE(pedImmigrant[1])
AND NOT IS_PED_RAGDOLL(pedImmigrant[1])
AND GET_ENTITY_HEALTH(pedImmigrant[1]) > 150
SET_ENTITY_HEALTH(pedImmigrant[1],150)
ENDIF
IF bBlokestunned = TRUE
IF bImmigrantHandsUp = FALSE
//IF NOT IS_PED_RAGDOLL(pedImmigrant[i])
IF GET_SCRIPT_TASK_STATUS(pedImmigrant[i],SCRIPT_TASK_VEHICLE_DRIVE_TO_COORD) = PERFORMING_TASK
OR GET_SCRIPT_TASK_STATUS(pedImmigrant[i],SCRIPT_TASK_VEHICLE_DRIVE_WANDER) = PERFORMING_TASK
OR GET_SCRIPT_TASK_STATUS(pedImmigrant[i],SCRIPT_TASK_VEHICLE_FOLLOW_WAYPOINT_RECORDING) = PERFORMING_TASK
CLEAR_PED_TASKS(pedImmigrant[i])
ENDIF
//ENDIF
ENDIF
ENDIF
IF IS_VEHICLE_OK(vehChaseCar[i])
IF IS_PED_IN_VEHICLE(pedImmigrant[i],vehChaseCar[i])
IF DOES_BLIP_EXIST(blipImmigrant[i])
UPDATE_CHASE_BLIP(blipImmigrant[i],pedImmigrant[i],300,0.8)
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF IS_VEHICLE_OK(sRCLauncherDataLocal.vehID[0])
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[ic_JOE])
IF IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
IF NOT IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),pedImmigrant[i],180)
IF iCatchUpLines < 3
IF GET_GAME_TIMER() > iTimerCatchUpLines + 7000
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF CREATE_CONVERSATION(s_conversation_peds, "MIN2AU","MIN2_CATCH2",CONV_PRIORITY_MEDIUM) //Come on! Step on it!
++iCatchUpLines
iTimerCatchUpLines = GET_GAME_TIMER()
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF IS_PED_UNINJURED(pedImmigrantChase2)
IF NOT IS_PED_IN_ANY_VEHICLE(pedImmigrantChase2)
AND NOT IS_PED_RAGDOLL(pedImmigrantChase2)
AND GET_ENTITY_HEALTH(pedImmigrantChase2) > 150
SET_ENTITY_HEALTH(pedImmigrantChase2,150)
ENDIF
IF bSECONDBlokestunned = TRUE
IF bImmigrantChase2HandsUp = FALSE
//IF NOT IS_PED_RAGDOLL(pedImmigrantChase2)
IF GET_SCRIPT_TASK_STATUS(pedImmigrantChase2,SCRIPT_TASK_VEHICLE_DRIVE_TO_COORD) = PERFORMING_TASK
OR GET_SCRIPT_TASK_STATUS(pedImmigrantChase2,SCRIPT_TASK_VEHICLE_DRIVE_WANDER) = PERFORMING_TASK
OR GET_SCRIPT_TASK_STATUS(pedImmigrantChase2,SCRIPT_TASK_VEHICLE_FOLLOW_WAYPOINT_RECORDING) = PERFORMING_TASK
CLEAR_PED_TASKS(pedImmigrantChase2)
ENDIF
//ENDIF
ENDIF
ENDIF
IF IS_VEHICLE_OK(vehChaseCarChase2)
IF IS_PED_IN_VEHICLE(pedImmigrantChase2,vehChaseCarChase2)
IF DOES_BLIP_EXIST(blipImmigrantChase2)
UPDATE_CHASE_BLIP(blipImmigrantChase2,pedImmigrantChase2,300,0.8)
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF IS_VEHICLE_OK(sRCLauncherDataLocal.vehID[0])
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[ic_JOE])
IF IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
IF NOT IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),pedImmigrantChase2,180)
IF iCatchUpLines < 3
IF GET_GAME_TIMER() > iTimerCatchUpLines + 7000
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF CREATE_CONVERSATION(s_conversation_peds, "MIN2AU","MIN2_CATCH2",CONV_PRIORITY_MEDIUM) //Come on! Step on it!
++iCatchUpLines
iTimerCatchUpLines = GET_GAME_TIMER()
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF iSeqChase2Dialogue <> 5
AND GET_GAME_TIMER() > iArrivedAtCementFactory + 20000
iSeqChase2Dialogue = 5
ENDIF
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF iSeqChase2Dialogue = 0
IF IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
AND IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
AND IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
IF CREATE_CONVERSATION(s_conversation_peds, "MIN2AU","MIN2_CHAT1",CONV_PRIORITY_MEDIUM) //That's an admission of guilt if ever I saw one!
iSeqChase2Dialogue = GET_RANDOM_INT_IN_RANGE(1,5)
//++iSeqChase2Dialogue
ENDIF
ENDIF
ELIF iSeqChase2Dialogue = 1
IF IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
AND IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
AND IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
IF NOT IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),pedImmigrantChase2,50)
AND NOT IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),pedImmigrant[i],50)
IF IS_ENTITY_ALIVE(pedImmigrant[0])
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 3, pedImmigrant[0], "MANUEL")
ENDIF
IF CREATE_CONVERSATION(s_conversation_peds, "MIN2AU","MIN2_CHAT2",CONV_PRIORITY_MEDIUM) //Who the hell are you guys?
iSeqChase2Dialogue = 5
//++iSeqChase2Dialogue
ENDIF
ENDIF
ENDIF
ELIF iSeqChase2Dialogue = 2
IF IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
AND IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
AND IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
IF NOT IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),pedImmigrantChase2,50)
AND NOT IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),pedImmigrant[i],50)
IF IS_ENTITY_ALIVE(pedImmigrant[0])
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 3, pedImmigrant[0], "MANUEL")
ENDIF
IF CREATE_CONVERSATION(s_conversation_peds, "MIN2AU","MIN2_CHAT5",CONV_PRIORITY_MEDIUM) //Look at them. Where's the moral code, huh?
iSeqChase2Dialogue = 5
//++iSeqChase2Dialogue
ENDIF
ENDIF
ENDIF
ELIF iSeqChase2Dialogue = 3
IF IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
AND IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
AND IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
IF NOT IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),pedImmigrantChase2,50)
AND NOT IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),pedImmigrant[i],50)
IF IS_ENTITY_ALIVE(pedImmigrant[0])
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 3, pedImmigrant[0], "MANUEL")
ENDIF
IF CREATE_CONVERSATION(s_conversation_peds, "MIN2AU","MIN2_CHAT4",CONV_PRIORITY_MEDIUM) //All they want to do is work menial jobs for abysmal pay with no benefits.
iSeqChase2Dialogue = 5
//++iSeqChase2Dialogue
ENDIF
ENDIF
ENDIF
ELIF iSeqChase2Dialogue = 4
IF IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
AND IS_PED_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
AND IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
IF NOT IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),pedImmigrantChase2,50)
AND NOT IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),pedImmigrant[i],50)
IF IS_ENTITY_ALIVE(pedImmigrant[0])
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 3, pedImmigrant[0], "MANUEL")
ENDIF
IF CREATE_CONVERSATION(s_conversation_peds, "MIN2AU","MIN2_CHAT3",CONV_PRIORITY_MEDIUM) //Haven't you got anything better to do?
iSeqChase2Dialogue = 5
//++iSeqChase2Dialogue
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF IS_PED_UNINJURED(pedImmigrant[1])
IF bDisableAbortConvo
AND IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
AND NOT IS_PED_RAGDOLL(pedImmigrant[1])
SET_AUDIO_FLAG("DisableAbortConversationForRagdoll", FALSE)
bDisableAbortConvo = FALSE
ENDIF
ENDIF
IF IS_PED_UNINJURED(pedImmigrantChase2)
IF bDisableAbortConvoPed2
AND IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
AND NOT IS_PED_RAGDOLL(pedImmigrantChase2)
SET_AUDIO_FLAG("DisableAbortConversationForRagdoll", FALSE)
bDisableAbortConvoPed2 = FALSE
ENDIF
ENDIF
IF bBloke2AttachedToCar = TRUE
AND bpedImmigrantChase2Attached = TRUE
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "Min2****Init exit vehicle****")
#ENDIF
SET_AUDIO_FLAG("DisableAbortConversationForRagdoll", FALSE)
bDisableAbortConvo = FALSE
bDisableAbortConvoPed2 = FALSE
iTimerJackTrev = GET_GAME_TIMER()
iTimerJackTrev = iTimerJackTrev
missionStage = MS_DRIVE_TO_END
ENDIF
ENDPROC
/// PURPOSE: All immigrants captured, waiting for Joe and Josef to get back in the car
PROC MS_DriveToEnd()
IF GET_PLAYER_WANTED_LEVEL(PLAYER_ID()) = 0
bLosingCops = FALSE
bPrintLosingCops = FALSE
Convo()
IF IS_PED_SITTING_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0])
AND IS_PED_SITTING_IN_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0])
SET_VEHICLE_DOORS_LOCKED(sRCLauncherDataLocal.vehID[0],VEHICLELOCK_CANNOT_ENTER)
IF NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
OR GET_GAME_TIMER() > iTimerJackTrev + 30000//20000
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "Min2****Init pass drive off****")
#ENDIF
REPLAY_RECORD_BACK_FOR_TIME(5.0, 12.0, REPLAY_IMPORTANCE_LOWEST)
SET_ROADS_IN_ANGLED_AREA(GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(sRCLauncherDataLocal.vehID[0],<<200,0,50>>),GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(sRCLauncherDataLocal.vehID[0],<<-200,0,-50>>),400,FALSE,TRUE)
PassDriveOff()
missionStage = MS_MISSION_PASSING
ENDIF
ELSE
IF bThanks = FALSE
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "MIN2AU", "MIN2_JJ8", "MIN2_JJ8_1", CONV_PRIORITY_HIGH) //Thanks for the help man, you're a true patriot.
bThanks = TRUE
ENDIF
ELSE
IF bPrint47 = FALSE
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
PRINT_NOW("MIN2_47",DEFAULT_GOD_TEXT_TIME,0) //Exit the vehicle
iTimerGetOutOfCarLines = GET_GAME_TIMER()
bPrint47 = TRUE
ENDIF
ELSE
IF NOT IS_THIS_PRINT_BEING_DISPLAYED("MIN2_47")
IF iGetOutOfCarLines < 6
IF GET_GAME_TIMER() > iTimerGetOutOfCarLines + 9000
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF CREATE_CONVERSATION(s_conversation_peds, "MIN2AU","MIN2_BYE",CONV_PRIORITY_MEDIUM) //Get out of the car, we'll take it from here.
++iGetOutOfCarLines
iTimerGetOutOfCarLines = GET_GAME_TIMER()
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[ic_JOSEF])
IF NOT IS_PED_IN_ANY_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF])
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_ENTER_VEHICLE) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOSEF],SCRIPT_TASK_ENTER_VEHICLE) <> WAITING_TO_START_TASK
TASK_ENTER_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOSEF],sRCLauncherDataLocal.vehID[0],DEFAULT_TIME_BEFORE_WARP_MINUTE_2,VS_BACK_LEFT)
ENDIF
ENDIF
ENDIF
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[ic_JOE])
IF NOT IS_PED_IN_ANY_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE])
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOE],SCRIPT_TASK_ENTER_VEHICLE) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[ic_JOE],SCRIPT_TASK_ENTER_VEHICLE) <> WAITING_TO_START_TASK
TASK_ENTER_VEHICLE(sRCLauncherDataLocal.pedID[ic_JOE],sRCLauncherDataLocal.vehID[0],DEFAULT_TIME_BEFORE_WARP_MINUTE_2,VS_FRONT_RIGHT)
ENDIF
ENDIF
ENDIF
ELSE
bLosingCops = TRUE
IF NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
IF NOT DOES_BLIP_EXIST(blipPlayerCar)
blipPlayerCar = CREATE_VEHICLE_BLIP(sRCLauncherDataLocal.vehID[0])
ENDIF
ELSE
IF bPrintLosingCops = FALSE
PRINT_NOW("MIN2_COPS",DEFAULT_GOD_TEXT_TIME,0)
bPrintLosingCops = TRUE
ENDIF
SAFE_REMOVE_BLIP(blipPlayerCar)
ENDIF
ENDIF
ENDPROC
/// PURPOSE: Mission is passing, wait for the car to get away or time out
PROC MS_MissionPassing()
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF NOT bDialogueDriveOff
AND IS_VEHICLE_OK(sRCLauncherDataLocal.vehID[0])
AND GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0]) < 35.0
IF GET_GAME_TIMER() > iTimerPassDriveOff + 3000
IF CREATE_CONVERSATION(s_conversation_peds, "MIN2AU","MIN2_DRIVOFF",CONV_PRIORITY_MEDIUM) //We made Uncle Sam proud today!
bDialogueDriveOff = TRUE
ENDIF
ENDIF
ENDIF
ENDIF
IF IS_VEHICLE_OK(sRCLauncherDataLocal.vehID[0])
IF GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0]) > 150.0 //100.0
OR GET_GAME_TIMER() > iTimerPassDriveOff + 20000 //15000
Script_Passed()
ENDIF
ENDIF
ENDPROC
/// PURPOSE: Epand capsules on the immigrants while they get in the vehicle (to stop them clipping)
PROC EXPAND_PED_CAPSULES_WHILE_ENTERING_VEHICLES()
IF IS_PED_UNINJURED(pedImmigrant[0])
IF NOT IS_PED_IN_ANY_VEHICLE(pedImmigrant[0])
IF GET_SCRIPT_TASK_STATUS(pedImmigrant[0],SCRIPT_TASK_ENTER_VEHICLE) = PERFORMING_TASK
SET_PED_RESET_FLAG(pedImmigrant[0],PRF_ExpandPedCapsuleFromSkeleton,TRUE)
CPRINTLN(DEBUG_MISSION, "MIN2 - Expand capsule - Manuel")
ENDIF
ENDIF
ENDIF
IF IS_PED_UNINJURED(pedImmigrant[1])
IF NOT IS_PED_IN_ANY_VEHICLE(pedImmigrant[1])
IF GET_SCRIPT_TASK_STATUS(pedImmigrant[1],SCRIPT_TASK_ENTER_VEHICLE) = PERFORMING_TASK
SET_PED_RESET_FLAG(pedImmigrant[1],PRF_ExpandPedCapsuleFromSkeleton,TRUE)
CPRINTLN(DEBUG_MISSION, "MIN2 - Expand capsule - Immigrant 2")
ENDIF
ENDIF
ENDIF
IF IS_PED_UNINJURED(pedImmigrantChase2)
IF NOT IS_PED_IN_ANY_VEHICLE(pedImmigrantChase2)
IF GET_SCRIPT_TASK_STATUS(pedImmigrantChase2,SCRIPT_TASK_ENTER_VEHICLE) = PERFORMING_TASK
SET_PED_RESET_FLAG(pedImmigrantChase2,PRF_ExpandPedCapsuleFromSkeleton,TRUE)
CPRINTLN(DEBUG_MISSION, "MIN2 - Expand capsule - Immigrant 3")
ENDIF
ENDIF
ENDIF
ENDPROC
// ===========================================================================================================
// Script Loop
// ===========================================================================================================
SCRIPT(g_structRCScriptArgs sRCLauncherDataIn)
sRCLauncherDataLocal = sRCLauncherDataIn
RC_TakeEntityOwnership(sRCLauncherDataLocal)
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_MINUTE_2(sRCLauncherDataLocal)
WAIT(0)
ENDWHILE
RC_SET_ENTITY_PROOFS_FOR_CUTSCENE(sRCLauncherDataLocal, FALSE)
g_bSceneAutoTrigger = FALSE
ENDIF
ADD_CONTACT_TO_PHONEBOOK(CHAR_JOE, TREVOR_BOOK, FALSE)
ADD_CONTACT_TO_PHONEBOOK(CHAR_JOSEF, TREVOR_BOOK, FALSE)
IF DOES_ENTITY_EXIST(sRCLauncherDataLocal.vehID[0])
SET_VEHICLE_DOORS_LOCKED(sRCLauncherDataLocal.vehID[0], VEHICLELOCK_UNLOCKED)
ENDIF
Initialise()
// Loop within here until the mission passes or fails
WHILE(TRUE)
WAIT(0)
REPLAY_CHECK_FOR_EVENT_THIS_FRAME("SF_AAW")
UPDATE_MISSION_NAME_DISPLAYING(sRCLauncherDataLocal.sIntroCutscene)
IF IS_PED_UNINJURED(PLAYER_PED_ID())
SET_ALL_RANDOM_PEDS_FLEE_THIS_FRAME(PLAYER_ID())
ENDIF
IF missionStage <> MS_SETUP_MISSION
AND missionStage <> MS_INTRO_MOCAP
IF missionStage <> MS_MISSION_FAILING
CheckForFail()
ENDIF
IF NOT JOSEF_AND_JOE_LEFT_BEHIND()
ManageBlipsAndObjectives()
ENDIF
IF GET_PLAYER_WANTED_LEVEL(PLAYER_ID()) > 0
SAFE_REMOVE_BLIP(blipLocate[i])
ENDIF
ENDIF
RESOLVE_IDLES()
DO_VEHICLE_WEAPON_SWAP()
/*
IF IS_ENTITY_ALIVE(sRCLauncherDataLocal.pedID[ic_JOSEF])
AND IS_ENTITY_ALIVE(sRCLauncherDataLocal.vehID[0])
PRINTVECTOR(GET_OFFSET_FROM_ENTITY_GIVEN_WORLD_COORDS(sRCLauncherDataLocal.vehID[0],GET_WORLD_POSITION_OF_ENTITY_BONE(sRCLauncherDataLocal.vehID[0],GET_ENTITY_BONE_INDEX_BY_NAME(sRCLauncherDataLocal.vehID[0], "seat_pside_r"))))
PRINTNL()
//<< 0.447884, -0.807867, 0.211781 >> //?
ENDIF
*/
EXPAND_PED_CAPSULES_WHILE_ENTERING_VEHICLES()
SWITCH missionStage
CASE MS_INTRO_MOCAP
MS_IntroMocap()
BREAK
CASE MS_SETUP_MISSION
MS_SetupMission()
BREAK
CASE MS_SETUP_CHASE1
MS_SetupChase1()
BREAK
CASE MS_UPDATE_CHASE1
MS_UpdateChase1()
BREAK
CASE MS_IMMIGRANT1_APPREHENDED
MS_Immigrant1Apprehended()
BREAK
CASE MS_SETUP_CHASE2
MS_SetupChase2()
BREAK
CASE MS_CEMENT_FACTORY
MS_CementFactory()
BREAK
CASE MS_UPDATE_CHASE2
MS_UpdateChase2()
BREAK
CASE MS_DRIVE_TO_END
MS_DriveToEnd()
BREAK
CASE MS_MISSION_PASSING
MS_MissionPassing()
BREAK
CASE MS_MISSION_FAILING
FailWait()
BREAK
ENDSWITCH
// Check debug completion/failure
IF missionStage <> MS_MISSION_FAILING
DEBUG_Check_Debug_Keys()
DEBUG_Check_Skips()
ENDIF
ENDWHILE
// Script should never reach here. Always terminate with cleanup function.
ENDSCRIPT