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

7216 lines
283 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 "chase_hint_cam.sch"
USING "RC_Threat_Public.sch"
USING "RC_Launcher_public.sch"
USING "initial_scenes_Epsilon.sch"
USING "achievement_public.sch"
USING "commands_recording.sch"
#IF IS_DEBUG_BUILD
USING "select_mission_stage.sch"
#ENDIF
// *****************************************************************************************
// *****************************************************************************************
// *****************************************************************************************
//
// MISSION NAME : Epsilon8.sc
// AUTHOR : Tom Kingsley
// DESCRIPTION : Michael has to drive a car full of money for the Epsilonists,
// he can choose to drive it to their helicopter or steal it.
//
// *****************************************************************************************
// *****************************************************************************************
// *****************************************************************************************
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// RC scene information
g_structRCScriptArgs sRCLauncherDataLocal
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
FLOAT fEscapeDistance = 400.0 // How far away you have to get to evade security cars
FLOAT fOnFootEscapeDistance = 150.0 // How far away you have to get to evade security (on foot)
FLOAT fHeliEscapeDistance = 450.0 // How far away you have to get to evade Helicopter
FLOAT fSmallBlipScale = BLIP_SIZE_PED
FLOAT fLargeBlipScale = BLIP_SIZE_VEHICLE
FLOAT fObjectBlipScale = BLIP_SIZE_PICKUP
INT iNumberOfMoneyBags = 4 // Number of money bags
INT iCashInEachBag = 525000 // Amount of $ in each bag
FLOAT fAreaWidth = 34.750000 // Default width of area at helipad
FLOAT fHeliSpeed = 50 // Default heli speed (it won't actually go this fast but this float affects how fast it loses speed if all other guys evaded)
INT iAccuracy = 25 // Accuracy of guys before modifiers //35
INT iHeliSniperAccModifier = 10 // Less accuracy for Todd
INT iShootRate = 25 // Shoot rate of guys before modifiers //16
INT iHeliSniperSRModifier = 75 // Extra shoot rate for Todd
VECTOR vParkPos = <<-363.3094, -82.3607, 44.6577>> //Park position at the helicopter
INT iCol1 = 157 //67 //140
//INT iCol2 = 140 //127 //140
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
VECTOR vPosEpsilonCar[7]
VECTOR vPosEpsilonHiSec[7]
VECTOR vPosChopper
VECTOR vPlayer
VECTOR vPosPlayerCar
VECTOR vCashCarParkedPos
VECTOR vCashCar
VECTOR vHeliTarget
VECTOR vCompoundBack
VECTOR vCompoundFront
VECTOR vSafeCoord
FLOAT fHeadingEpsilonCar[7]
FLOAT fHeadingEpsilonHiSec[7]
FLOAT fDistBetweenPlayerAndDriver
FLOAT fHeadingChopper
FLOAT fHeadingPlayerCar
FLOAT fTopSpeed
FLOAT fPlayerCarPetrolTankHP
FLOAT fPlayerCarEngineHP
/*
FLOAT fY
FLOAT fX
FLOAT fZ2
*/
//FLOAT fHeadingHeliTarget
INT iTotalCash
INT i = 0
INT iEpSecBlipped = 0
INT iEpSecEvaded = 0
//INT iRandomInt
INT iWantedLevel
INT iZ
INT iConvoCounter
INT iHeliNoLosConvoCounter
INT iTimerHeliDeadUpdate
INT iTimerHeliDead
INT iPassedDelay
INT iCounterPassedDelay
INT iCounterPassedDelayUpdate
INT iTimerHeliLostSightOfPlayer
INT iTimerHeliLostSightOfPlayerUpdate
INT iHeliGivenUp
INT iPlayerCarHP
INT iSeqHeli
INT iTimerHeliSeq
INT iTimerHeliSeqUpdate
INT iPlayerDamagingEscort
//INT i2
INT iTimerThreatenPlayerInCar
INT iSeqThreatenPlayerInCar
INT iTimerPlayerCarDestroyed
INT iNodeNumber = 1
//INT iLoadChopperSeqSwitch
INT iConvoChaseRandom
INT iConvoChaseCar
INT iTimerPlayerLeftCar
INT iPrintPlayerLeftCar
INT iHeliSpotPlayerConvo
INT iHeliCamSwitch
INT iPrintToddDied
INT iTimerToddDied
INT iEpsilonistBeckonConvo
INT iTimerPrayConvo
INT iTimerPlayerStoleMoney
INT iTimerMissionInit
INT iTimerSecurityGettingOnChopper
INT iTimerPlayerParkedAtHeli
INT iTimerDetectDamage
INT iEpsilonistsKilled
INT iTimerDelayAggression
INT iSeqDelayAggression
INT iSeqDelayAggressionParkedUp
INT iVehThief = -1
INT iHeliTask = 0
INT iCounterHeliCamLostPlayer
INT iCam = 0
INT iTriggerSecondMusicCue = 0
INT iBagsPutInHeli
//INT iBagsTakenFromCar
INT iTimerHurryUp
INT iCounterHurryUp = 0
INT iTimerIntroCams
INT iIntroCamSeq
INT issLoadHeli
INT iTimerOverrideStartWalk
//INT iTimerWaypointRec
//INT iCounterHeliCantSeePlayerChase = 0
BOOL bPlayerStoleMoney
BOOL bPlayerGaveMoney
BOOL bCutsceneChopperTaskGiven
BOOL bLoseCopsObjGiven
BOOL bHelicopterHostile
BOOL bDriveByTaskGiven[7]
BOOL bGuard1SaidKifflom
BOOL bGuard2SaidKifflom
BOOL bGuard3SaidKifflom
BOOL bMissionPassed
BOOL bPlayerAtHelipad
BOOL bMessagePrintedLeavingCash
//BOOL bHeliLoadSwitch[7]
BOOL bBootOpen
BOOL bGuardGettingOnHeli
BOOL bGetInCarObjGiven
BOOL bChopperBeingJacked
BOOL bPlayerWentToTractor
BOOL bEscapeMessagePrinted
BOOL bNoCashLeftInCar
BOOL bPlayerCarDestroyed
BOOL bEpsilonistAtTractor
BOOL bRoadSwitchOn
BOOL bEpsilonistPlayingAnims
BOOL bEpsDriverForcedToLeaveVeh[7]
BOOL bPrintHurryUp
BOOL bPrintRamWarning1
BOOL bPrintRamWarning2
BOOL bPrintFrontWarning
BOOL bPrintEscapeWarning
BOOL bPrintMikeOnFoot
BOOL bPrintMikeInCover
BOOL bPrintToddShotMike
BOOL bDebugSkipping
BOOL bFollowEpsSecObj
BOOL bPlayerSkippedToEnd
BOOL bHeliCantSeePlayer
BOOL bPrintHeliCamHelp
BOOL bMikeLookAtEpsilonist
BOOL bStartRearConvoyCar
BOOL bOnlyHeliLeft
BOOL bPrintEvadeHeli
BOOL bPrayConvo
BOOL bOnlyHeliLeftConvo
BOOL bDoHeliCam
BOOL bPrintFollowEpsilonist
BOOL bDebugPassOrFail
BOOL bDoneCrisAngryPhoneCall
BOOL bHeliCollOff
BOOL bOverrideHeliColl
BOOL bSecurityStealingTailgater
BOOL bMikePickedUpABag = FALSE
BOOL bHeliGivenUp = FALSE
BOOL bPrintExitCar = FALSE
BOOL bCSExitMike = FALSE
BOOL bCSExitCris = FALSE
BOOL bCSExitCam = FALSE
BOOL bCSExitCar = FALSE
BOOL bCarStopped = FALSE
BOOL bOverrideStartWalk = FALSE
BOOL bTriggerMusic = FALSE
BOOL bSwitchWaypointFlags = FALSE
//BOOL bHeliCantSeePlayerChase = FALSE
STRING sFailReason
// Mission stages
ENUM MISSION_STAGE
MS_SETUP,
MS_MOCAP,
MS_INIT,
MS_DRIVING_TO_CHOPPER,
MS_PARKING_AT_CHOPPER,
MS_PARKED_AT_CHOPPER,
MS_EXITED_CAR,
MS_WALKING_TO_REWARD,
MS_TAKEN_MONEY,
MS_LOADED_MONEY_IN_CHOPPER,
MS_MISSION_FAILING
ENDENUM
// Fail stages
ENUM FAIL_STATE
FS_SETUP,
FS_UPDATE,
FS_CLEANUP
ENDENUM
// Cutscene stages
ENUM CUTSCENE_STAGE
eCutInit,
eCutUpdate,
eCutCleanup
ENDENUM
ENUM LOAD_HELI_STAGE
LOAD_HELI_INIT,
WALK_TO_CAR,
TAKE_BAG,
WALK_TO_HELI,
DROP_OFF_BAG,
GET_IN_HELI
ENDENUM
LOAD_HELI_STAGE eLOAD_HELI = LOAD_HELI_INIT
/*
ENUM iSub
iSubTrue,
iSubFalse
ENDENUM
*/
/*
ENUM enumSubtitlesState
DISPLAY_SUBTITLES,
DO_NOT_DISPLAY_SUBTITLES
ENDENUM
*/
REL_GROUP_HASH relEpsilon
REL_GROUP_HASH relEpsilonCiv
structPedsForConversation s_conversation_peds
CHASE_HINT_CAM_STRUCT localChaseHintCamStruct
CUTSCENE_STAGE eCutsceneState = eCutInit
MISSION_STAGE missionStage = MS_SETUP
FAIL_STATE eFAIL_STATE
PED_INDEX pedEpsilonHiSecurity[7]
PED_INDEX pedPilot
PED_INDEX pedChopperShotgun
PED_INDEX pedEpsilonHiSecDriver[7]
PED_INDEX pedEpsilonHiSecShotgun[7]
PED_INDEX pedEpsilonist
OBJECT_INDEX objCashBag[10]
CAMERA_INDEX camHeli
CAMERA_INDEX camHeli2
CAMERA_INDEX camHeliLostPlayer[2]
CAMERA_INDEX camIntro1
CAMERA_INDEX camIntro2
VEHICLE_INDEX vehEpsilonChopper
VEHICLE_INDEX vehEpsilonCar[7]
VEHICLE_INDEX vehExtraCar[7]
VEHICLE_INDEX vehPlayerCar
VEHICLE_INDEX vehTractor
VEHICLE_INDEX vehTrafficRoute1[7]
PED_INDEX pedTrafficRoute1[7]
VECTOR vTrafficRoute1[7]
FLOAT fHeadingTrafficRoute1[7]
VEHICLE_INDEX vehTrafficRoute2[7]
PED_INDEX pedTrafficRoute2[7]
VECTOR vTrafficRoute2[7]
FLOAT fHeadingTrafficRoute2[7]
VEHICLE_INDEX vehTrafficRoute3[7]
PED_INDEX pedTrafficRoute3[7]
VECTOR vTrafficRoute3[7]
FLOAT fHeadingTrafficRoute3[7]
VEHICLE_INDEX vehTrafficRoute4[7]
PED_INDEX pedTrafficRoute4[7]
VECTOR vTrafficRoute4[7]
FLOAT fHeadingTrafficRoute4[7]
VEHICLE_INDEX vehTrafficRoute5[7]
PED_INDEX pedTrafficRoute5[7]
VECTOR vTrafficRoute5[7]
FLOAT fHeadingTrafficRoute5[7]
VEHICLE_INDEX vehTrafficRoute6[7]
PED_INDEX pedTrafficRoute6[7]
VECTOR vTrafficRoute6[7]
FLOAT fHeadingTrafficRoute6[7]
INT iTraffic
BLIP_INDEX blipEpsilonHiSecDriver[7]
BLIP_INDEX blipEpsilonHiSecShotgun[7]
BLIP_INDEX blipEpsilonHiSecurity[7]
BLIP_INDEX blipChopper
BLIP_INDEX blipRandomChar
BLIP_INDEX blipPilot
BLIP_INDEX blipPlayerCar
BLIP_INDEX blipEscort
BLIP_INDEX blipEpsOnFootEscort
BLIP_INDEX blipLastCashBag
//BLIP_INDEX blipCashBag
SEQUENCE_INDEX seqExitLeanStartDriving
SEQUENCE_INDEX seqGoToPlayerFacePlayer
//SEQUENCE_INDEX seqStopCarAndExit
//SEQUENCE_INDEX seqLoadChopper1
//SEQUENCE_INDEX seqLoadChopper2
SEQUENCE_INDEX seqPrayToTractor
SCENARIO_BLOCKING_INDEX EpsBuildingBlock
SCENARIO_BLOCKING_INDEX EpsBuildingBlock2
SCENARIO_BLOCKING_INDEX CockatoosCarBlocker
#IF IS_DEBUG_BUILD
CONST_INT MAX_SKIP_MENU_LENGTH 3
INT iReturnStage
MissionStageMenuTextStruct SkipMenuStruct[MAX_SKIP_MENU_LENGTH]
#ENDIF
/// PURPOSE: Gets a heading between 2 vectors
FUNC FLOAT GET_HEADING_FROM_COORDS(vector oldCoords,vector newCoords, bool invert=true)
float heading
float dX = newCoords.x - oldCoords.x
float dY = newCoords.y - oldCoords.y
if dY != 0
heading = ATAN2(dX,dY)
ELSE
if dX < 0
heading = -90
ELSE
heading = 90
ENDIF
ENDIF
//flip because for some odd reason the coders think west is a heading of 90 degrees, so this'll match the output of commands such as GET_ENTITY_HEADING()
IF invert = TRUE
heading *= -1.0
//below not necessary but helps for debugging
IF heading < 0
heading += 360.0
ENDIF
ENDIF
RETURN heading
ENDFUNC
// ===========================================================================================================
// Termination
// ===========================================================================================================
// -----------------------------------------------------------------------------------------------------------
// Script Cleanup
// -----------------------------------------------------------------------------------------------------------
/// PURPOSE: //Remove all blips
PROC RemoveBlips()
SAFE_REMOVE_BLIP(blipEpsilonHiSecDriver[0])
SAFE_REMOVE_BLIP(blipEpsilonHiSecDriver[1])
SAFE_REMOVE_BLIP(blipEpsilonHiSecDriver[2])
SAFE_REMOVE_BLIP(blipEpsilonHiSecDriver[3])
SAFE_REMOVE_BLIP(blipEpsilonHiSecDriver[4])
SAFE_REMOVE_BLIP(blipEpsilonHiSecDriver[5])
SAFE_REMOVE_BLIP(blipEpsilonHiSecDriver[6])
SAFE_REMOVE_BLIP(blipEpsilonHiSecShotgun[0])
SAFE_REMOVE_BLIP(blipEpsilonHiSecShotgun[1])
SAFE_REMOVE_BLIP(blipEpsilonHiSecShotgun[2])
SAFE_REMOVE_BLIP(blipEpsilonHiSecShotgun[3])
SAFE_REMOVE_BLIP(blipEpsilonHiSecShotgun[4])
SAFE_REMOVE_BLIP(blipEpsilonHiSecShotgun[5])
SAFE_REMOVE_BLIP(blipEpsilonHiSecShotgun[6])
SAFE_REMOVE_BLIP(blipEpsilonHiSecurity[0])
SAFE_REMOVE_BLIP(blipEpsilonHiSecurity[1])
SAFE_REMOVE_BLIP(blipEpsilonHiSecurity[2])
SAFE_REMOVE_BLIP(blipEpsilonHiSecurity[3])
SAFE_REMOVE_BLIP(blipEpsilonHiSecurity[4])
SAFE_REMOVE_BLIP(blipEpsilonHiSecurity[5])
SAFE_REMOVE_BLIP(blipEpsilonHiSecurity[6])
SAFE_REMOVE_BLIP(blipChopper)
SAFE_REMOVE_BLIP(blipRandomChar)
SAFE_REMOVE_BLIP(blipPilot)
SAFE_REMOVE_BLIP(blipPlayerCar)
SAFE_REMOVE_BLIP(blipEscort)
SAFE_REMOVE_BLIP(blipEpsOnFootEscort)
SAFE_REMOVE_BLIP(blipLastCashBag)
ENDPROC
PROC START_AUDIO_SCENE_COMPLIANCE()
IF NOT IS_AUDIO_SCENE_ACTIVE("EPSILONISM_08_COMPLIANCE")
IF IS_ENTITY_ALIVE(vehEpsilonCar[0])
ADD_ENTITY_TO_AUDIO_MIX_GROUP(vehEpsilonCar[0], "EPSILONISM_08_COMPLIANCE_CAR_LEADER")
ENDIF
IF IS_ENTITY_ALIVE(vehEpsilonChopper)
ADD_ENTITY_TO_AUDIO_MIX_GROUP(vehEpsilonChopper, "EPSILONISM_08_COMPLIANCE_HELI")
ENDIF
START_AUDIO_SCENE("EPSILONISM_08_COMPLIANCE")
ENDIF
ENDPROC
PROC CLEANUP_AUDIO_SCENE_COMPLIANCE()
IF IS_AUDIO_SCENE_ACTIVE("EPSILONISM_08_COMPLIANCE")
/*
IF IS_ENTITY_ALIVE(vehEpsilonCar[0])
REMOVE_ENTITY_FROM_AUDIO_MIX_GROUP(vehEpsilonCar[0])
ENDIF
IF IS_ENTITY_ALIVE(vehPlayerCar)
REMOVE_ENTITY_FROM_AUDIO_MIX_GROUP(vehPlayerCar)
ENDIF
IF IS_ENTITY_ALIVE(vehEpsilonChopper)
REMOVE_ENTITY_FROM_AUDIO_MIX_GROUP(vehEpsilonChopper)
ENDIF
*/
STOP_AUDIO_SCENE("EPSILONISM_08_COMPLIANCE")
ENDIF
ENDPROC
PROC START_AUDIO_SCENE_NON_COMPLIANCE()
IF NOT IS_AUDIO_SCENE_ACTIVE("EPSILONISM_08_COMPLIANCE")
IF NOT IS_AUDIO_SCENE_ACTIVE("EPSILONISM_08_NON_COMPLIANCE")
IF IS_ENTITY_ALIVE(vehEpsilonCar[0])
ADD_ENTITY_TO_AUDIO_MIX_GROUP(vehEpsilonCar[0], "EPSILONISM_08_NON_COMPLIANCE_ENEMY_CAR")
ENDIF
IF IS_ENTITY_ALIVE(vehEpsilonCar[1])
ADD_ENTITY_TO_AUDIO_MIX_GROUP(vehEpsilonCar[1], "EPSILONISM_08_NON_COMPLIANCE_ENEMY_CAR")
ENDIF
IF IS_ENTITY_ALIVE(vehEpsilonCar[2])
ADD_ENTITY_TO_AUDIO_MIX_GROUP(vehEpsilonCar[2], "EPSILONISM_08_NON_COMPLIANCE_ENEMY_CAR")
ENDIF
IF IS_ENTITY_ALIVE(vehEpsilonCar[3])
ADD_ENTITY_TO_AUDIO_MIX_GROUP(vehEpsilonCar[3], "EPSILONISM_08_NON_COMPLIANCE_ENEMY_CAR")
ENDIF
IF IS_ENTITY_ALIVE(vehEpsilonCar[4])
ADD_ENTITY_TO_AUDIO_MIX_GROUP(vehEpsilonCar[4], "EPSILONISM_08_NON_COMPLIANCE_ENEMY_CAR")
ENDIF
IF IS_ENTITY_ALIVE(vehEpsilonCar[5])
ADD_ENTITY_TO_AUDIO_MIX_GROUP(vehEpsilonCar[5], "EPSILONISM_08_NON_COMPLIANCE_ENEMY_CAR")
ENDIF
IF IS_ENTITY_ALIVE(vehEpsilonCar[6])
ADD_ENTITY_TO_AUDIO_MIX_GROUP(vehEpsilonCar[6], "EPSILONISM_08_NON_COMPLIANCE_ENEMY_CAR")
ENDIF
IF IS_ENTITY_ALIVE(vehEpsilonChopper)
ADD_ENTITY_TO_AUDIO_MIX_GROUP(vehEpsilonChopper, "EPSILONISM_08_NON_COMPLIANCE_HELI")
ENDIF
START_AUDIO_SCENE("EPSILONISM_08_NON_COMPLIANCE")
ENDIF
ELSE
STOP_AUDIO_SCENE("EPSILONISM_08_COMPLIANCE")
ENDIF
ENDPROC
PROC CLEANUP_AUDIO_SCENE_NON_COMPLIANCE()
IF IS_AUDIO_SCENE_ACTIVE("EPSILONISM_08_NON_COMPLIANCE")
/*
IF IS_ENTITY_ALIVE(vehEpsilonCar[0])
REMOVE_ENTITY_FROM_AUDIO_MIX_GROUP(vehEpsilonCar[0])
ENDIF
IF IS_ENTITY_ALIVE(vehEpsilonCar[1])
REMOVE_ENTITY_FROM_AUDIO_MIX_GROUP(vehEpsilonCar[1])
ENDIF
IF IS_ENTITY_ALIVE(vehEpsilonCar[2])
REMOVE_ENTITY_FROM_AUDIO_MIX_GROUP(vehEpsilonCar[2])
ENDIF
IF IS_ENTITY_ALIVE(vehEpsilonCar[3])
REMOVE_ENTITY_FROM_AUDIO_MIX_GROUP(vehEpsilonCar[3])
ENDIF
IF IS_ENTITY_ALIVE(vehEpsilonCar[4])
REMOVE_ENTITY_FROM_AUDIO_MIX_GROUP(vehEpsilonCar[4])
ENDIF
IF IS_ENTITY_ALIVE(vehEpsilonCar[5])
REMOVE_ENTITY_FROM_AUDIO_MIX_GROUP(vehEpsilonCar[5])
ENDIF
IF IS_ENTITY_ALIVE(vehEpsilonCar[6])
REMOVE_ENTITY_FROM_AUDIO_MIX_GROUP(vehEpsilonCar[6])
ENDIF
IF IS_ENTITY_ALIVE(vehPlayerCar)
REMOVE_ENTITY_FROM_AUDIO_MIX_GROUP(vehPlayerCar)
ENDIF
IF IS_ENTITY_ALIVE(vehEpsilonChopper)
REMOVE_ENTITY_FROM_AUDIO_MIX_GROUP(vehEpsilonChopper)
ENDIF
*/
STOP_AUDIO_SCENE("EPSILONISM_08_NON_COMPLIANCE")
ENDIF
ENDPROC
PROC Script_Cleanup()
// Ensure launcher is cleaned up
RC_CLEANUP_LAUNCHER()
// 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
// Cleanup scene entities created by the RC launcher
RC_CleanupSceneEntities(sRCLauncherDataLocal)
KILL_CHASE_HINT_CAM(localChaseHintCamStruct)
CLEANUP_AUDIO_SCENE_COMPLIANCE()
CLEANUP_AUDIO_SCENE_NON_COMPLIANCE()
SET_ALL_SHOPS_TEMPORARILY_UNAVAILABLE(FALSE)
SET_INSTANCE_PRIORITY_HINT(INSTANCE_HINT_NONE)
IF IS_SYNCHRONIZED_SCENE_RUNNING(issLoadHeli)
STOP_SYNCHRONIZED_ENTITY_ANIM(vehPlayerCar,NORMAL_BLEND_OUT,TRUE)
ENDIF
IF (DOES_ENTITY_EXIST(pedPilot))
IF bPlayerGaveMoney = TRUE
IF NOT IS_ENTITY_DEAD(pedPilot)
SET_PED_KEEP_TASK(pedPilot,TRUE)
ENDIF
ENDIF
SAFE_RELEASE_PED(pedPilot)
ENDIF
IF IS_ENTITY_ALIVE(vehPlayerCar)
IF bBootOpen = TRUE
SET_VEHICLE_DOOR_SHUT(vehPlayerCar,SC_DOOR_BOOT,FALSE)
SET_VEHICLE_DOORS_LOCKED(vehPlayerCar,VEHICLELOCK_UNLOCKED)
bBootOpen = FALSE
ENDIF
ENDIF
SAFE_RELEASE_PED(pedChopperShotgun)
IF IS_ENTITY_ALIVE(vehEpsilonChopper)
SET_VEHICLE_DOORS_LOCKED(vehEpsilonChopper,VEHICLELOCK_UNLOCKED)
ENDIF
SAFE_RELEASE_VEHICLE(vehEpsilonChopper)
IF DOES_CAM_EXIST(camHeli)
SET_CAM_ACTIVE(camHeli,FALSE)
RENDER_SCRIPT_CAMS(FALSE, FALSE)
DESTROY_CAM(camHeli)
IF DOES_CAM_EXIST(camHeli2)
SET_CAM_ACTIVE(camHeli2,FALSE)
RENDER_SCRIPT_CAMS(FALSE, FALSE)
DESTROY_CAM(camHeli2)
ENDIF
DISPLAY_HUD(TRUE)
DISPLAY_RADAR(TRUE)
SET_GAMEPLAY_CAM_RELATIVE_PITCH()
SET_GAMEPLAY_CAM_RELATIVE_HEADING()
ENDIF
SET_CINEMATIC_BUTTON_ACTIVE(TRUE)
i = 0
IF IS_VEHICLE_OK(vehEpsilonCar[0])
REMOVE_ENTITY_FROM_AUDIO_MIX_GROUP(vehEpsilonCar[0])
SET_DISABLE_PRETEND_OCCUPANTS(vehEpsilonCar[0], TRUE)
ENDIF
IF IS_VEHICLE_OK(vehEpsilonCar[1])
REMOVE_ENTITY_FROM_AUDIO_MIX_GROUP(vehEpsilonCar[1])
SET_DISABLE_PRETEND_OCCUPANTS(vehEpsilonCar[1], TRUE)
ENDIF
IF IS_VEHICLE_OK(vehEpsilonCar[2])
REMOVE_ENTITY_FROM_AUDIO_MIX_GROUP(vehEpsilonCar[2])
SET_DISABLE_PRETEND_OCCUPANTS(vehEpsilonCar[2], TRUE)
ENDIF
IF IS_VEHICLE_OK(vehEpsilonCar[3])
REMOVE_ENTITY_FROM_AUDIO_MIX_GROUP(vehEpsilonCar[3])
SET_DISABLE_PRETEND_OCCUPANTS(vehEpsilonCar[3], TRUE)
ENDIF
IF IS_VEHICLE_OK(vehEpsilonCar[4])
REMOVE_ENTITY_FROM_AUDIO_MIX_GROUP(vehEpsilonCar[4])
SET_DISABLE_PRETEND_OCCUPANTS(vehEpsilonCar[4], TRUE)
ENDIF
IF IS_VEHICLE_OK(vehEpsilonCar[5])
REMOVE_ENTITY_FROM_AUDIO_MIX_GROUP(vehEpsilonCar[5])
SET_DISABLE_PRETEND_OCCUPANTS(vehEpsilonCar[5], TRUE)
ENDIF
IF IS_VEHICLE_OK(vehEpsilonCar[6])
REMOVE_ENTITY_FROM_AUDIO_MIX_GROUP(vehEpsilonCar[6])
SET_DISABLE_PRETEND_OCCUPANTS(vehEpsilonCar[6], TRUE)
ENDIF
IF IS_VEHICLE_OK(vehExtraCar[0])
REMOVE_ENTITY_FROM_AUDIO_MIX_GROUP(vehExtraCar[0])
SET_DISABLE_PRETEND_OCCUPANTS(vehExtraCar[0], TRUE)
ENDIF
IF IS_VEHICLE_OK(vehExtraCar[1])
REMOVE_ENTITY_FROM_AUDIO_MIX_GROUP(vehExtraCar[1])
SET_DISABLE_PRETEND_OCCUPANTS(vehExtraCar[1], TRUE)
ENDIF
IF IS_AUDIO_SCENE_ACTIVE("EPSILONISM_08_CHOPPER")
STOP_AUDIO_SCENE("EPSILONISM_08_CHOPPER")
ENDIF
REMOVE_SCENARIO_BLOCKING_AREA(EpsBuildingBlock)
REMOVE_SCENARIO_BLOCKING_AREA(EpsBuildingBlock2)
REMOVE_SCENARIO_BLOCKING_AREA(CockatoosCarBlocker)
SET_MODEL_AS_NO_LONGER_NEEDED(S_M_M_HIGHSEC_01)
SET_MODEL_AS_NO_LONGER_NEEDED(SENTINEL)
SET_MODEL_AS_NO_LONGER_NEEDED(MAVERICK)
SET_MODEL_AS_NO_LONGER_NEEDED(LANDSTALKER)
SET_MODEL_AS_NO_LONGER_NEEDED(A_M_Y_EPSILON_01)
REMOVE_ANIM_DICT("rcmepsilonism8")
SET_VEHICLE_MODEL_IS_SUPPRESSED(LANDSTALKER,FALSE)
SET_VEHICLE_MODEL_IS_SUPPRESSED(SENTINEL,FALSE)
SET_VEHICLE_MODEL_IS_SUPPRESSED(SENTINEL2,FALSE)
SET_VEHICLE_MODEL_IS_SUPPRESSED(TAILGATER,FALSE)
SET_PED_MODEL_IS_SUPPRESSED(A_F_Y_EPSILON_01,FALSE)
SET_PED_MODEL_IS_SUPPRESSED(A_M_Y_EPSILON_01,FALSE)
SET_PED_MODEL_IS_SUPPRESSED(A_M_Y_EPSILON_02,FALSE)
BLOCK_DISPATCH_SERVICE_RESOURCE_CREATION(DT_SWAT_HELICOPTER,FALSE)
BLOCK_DISPATCH_SERVICE_RESOURCE_CREATION(DT_POLICE_HELICOPTER,FALSE)
BLOCK_DISPATCH_SERVICE_RESOURCE_CREATION(DT_AMBULANCE_DEPARTMENT,FALSE)
BLOCK_DISPATCH_SERVICE_RESOURCE_CREATION(DT_FIRE_DEPARTMENT,FALSE)
SET_WANTED_LEVEL_MULTIPLIER(1)
IF bMissionPassed = TRUE
DISABLE_CELLPHONE(FALSE)
IF bPlayerStoleMoney = TRUE
KILL_ANY_CONVERSATION() //Cris rings Michael (pissed off)
IF bPlayerSkippedToEnd = FALSE
TASK_CLEAR_LOOK_AT(PLAYER_PED_ID())
IF bDoneCrisAngryPhonecall = FALSE
REMOVE_PED_FOR_DIALOGUE(s_conversation_peds, 4)
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 4, NULL, "CRIS")
REGISTER_CALL_FROM_CHARACTER_TO_PLAYER(CALL_EPSILON8_STOLE,CT_END_OF_MISSION,BIT_MICHAEL,CHAR_CRIS,4,CC_END_OF_MISSION_QUEUE_TIME,CC_END_OF_MISSION_QUEUE_TIME)
bDoneCrisAngryPhonecall = TRUE
ENDIF
ENDIF
IF bNoCashLeftInCar = FALSE
IF IS_VEHICLE_OK(vehPlayerCar)
IF NOT IS_ENTITY_DEAD(objCashBag[0]) //Working out how much cash to give player
IF IS_ENTITY_ATTACHED_TO_ENTITY(objCashBag[0],vehPlayerCar)
iTotalCash = iTotalCash + iCashInEachBag
ENDIF
ENDIF
IF NOT IS_ENTITY_DEAD(objCashBag[1])
IF IS_ENTITY_ATTACHED_TO_ENTITY(objCashBag[1],vehPlayerCar)
iTotalCash = iTotalCash + iCashInEachBag
ENDIF
ENDIF
IF NOT IS_ENTITY_DEAD(objCashBag[2])
IF IS_ENTITY_ATTACHED_TO_ENTITY(objCashBag[2],vehPlayerCar)
iTotalCash = iTotalCash + iCashInEachBag
ENDIF
ENDIF
IF NOT IS_ENTITY_DEAD(objCashBag[3])
IF IS_ENTITY_ATTACHED_TO_ENTITY(objCashBag[3],vehPlayerCar)
iTotalCash = iTotalCash + iCashInEachBag
ENDIF
ENDIF
ENDIF
ELSE
//iTotalCash = iTotalCash + iCashInEachBag
ENDIF
IF iTotalCash <> 0 //If cash is not 0 pay it into Michael's bank
CREDIT_BANK_ACCOUNT(CHAR_MICHAEL, BAAC_UNLOGGED_SMALL_ACTION, iTotalCash)
ENDIF
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "STAT **** JUDAS - PLAYER STOLE MONEY AND ESCAPED ****")
#ENDIF
INFORM_STAT_SYSTEM_OF_BOOL_STAT_HAPPENED(EP8_MONEY_STOLEN)
ELSE
IF bPlayerWentToTractor = TRUE //Player went to tractor
/*
IF IS_PED_UNINJURED(pedEpsilonist)
FORCE_PED_MOTION_STATE(pedEpsilonist,MS_ON_FOOT_RUN,FALSE,FAUS_DEFAULT)
SET_PED_KEEP_TASK(pedEpsilonist,TRUE)
TASK_FOLLOW_NAV_MESH_TO_COORD(pedEpsilonist,<<-355.7390, -181.6352, 36.7355>>,PEDMOVEBLENDRATIO_RUN,-1,3.0,ENAV_DEFAULT)
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedEpsilonist,FALSE)
SET_PED_AS_NO_LONGER_NEEDED(pedEpsilonist)
ENDIF
*/
IF bBootOpen = TRUE
SET_VEHICLE_DOOR_SHUT(vehPlayerCar,SC_DOOR_BOOT,FALSE)
SET_VEHICLE_DOORS_LOCKED(vehPlayerCar,VEHICLELOCK_UNLOCKED)
bBootOpen = FALSE
ENDIF
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "STAT **** PRAISE KIFFLOM - PLAYER ACCEPTED REWARD ****")
#ENDIF
ELSE //Player stood around watching the guy load the chopper
IF bPlayerSkippedToEnd = FALSE
TASK_CLEAR_LOOK_AT(PLAYER_PED_ID())
/*
REMOVE_PED_FOR_DIALOGUE(s_conversation_peds, 4)
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 4, NULL, "CRIS")
//CHAR_CALL_PLAYER_CELLPHONE(s_conversation_peds,CHAR_CRIS,"EPS8AU", "EPS8_CF3",CONV_PRIORITY_VERY_HIGH)
REGISTER_CALL_FROM_CHARACTER_TO_PLAYER(CALL_EPSILON8_DONE,CT_END_OF_MISSION,BIT_MICHAEL,CHAR_CRIS,4,CC_END_OF_MISSION_QUEUE_TIME,CC_END_OF_MISSION_QUEUE_TIME)
*/
ENDIF
ENDIF
ENDIF
ENDIF
SET_STATIC_EMITTER_ENABLED("SE_LOS_SANTOS_EPSILONISM_BUILDING_01",TRUE)
TERMINATE_THIS_THREAD()
ENDPROC
// -----------------------------------------------------------------------------------------------------------
// Script Pass
// -----------------------------------------------------------------------------------------------------------
PROC Script_Passed()
IF bPlayerStoleMoney = TRUE
IF iEpsilonistsKilled = iEpSecBlipped
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "STAT **** CULT INTERVENTION - ALL EPSILONISTS KILLED ****")
#ENDIF
INFORM_STAT_SYSTEM_OF_BOOL_STAT_HAPPENED(EP8_SECURITY_WIPED_OUT)
ENDIF
TRIGGER_MUSIC_EVENT("EPS8_PASS")
g_savedGlobals.sRandomChars.g_bStoleEpsilonCash = TRUE
ELSE
TRIGGER_MUSIC_EVENT("EPS8_PASS")
g_savedGlobals.sRandomChars.g_bStoleEpsilonCash = FALSE
ENDIF
//Set epsilon step stat
INT iCurrent
STAT_GET_INT(NUM_EPSILON_STEP,iCurrent)
IF iCurrent < 20
STAT_SET_INT(NUM_EPSILON_STEP,20)
SET_ACHIEVEMENT_PROGRESS_SAFE(ENUM_TO_INT(ACH20),20)
CPRINTLN(debug_dan,"Epsilon progress:",20)
ENDIF
// [AG]: Achievement Unlocked
AWARD_ACHIEVEMENT(ACH20) // Kifflom!
Random_Character_Passed(CP_RAND_C_EPS8)
bMissionPassed = TRUE
Script_Cleanup()
ENDPROC
/// PURPOSE: //Load models and text
PROC LoadStuff()
REQUEST_VEHICLE_RECORDING(222,"Ep8Heli01")
REQUEST_WAYPOINT_RECORDING("Eps8EPED")
REQUEST_WAYPOINT_RECORDING("Eps8LS01")
REQUEST_ANIM_DICT("rcmepsilonism8")
REQUEST_MODEL(S_M_M_HIGHSEC_01)
REQUEST_MODEL(A_M_Y_EPSILON_01)
REQUEST_MODEL(SENTINEL)
REQUEST_MODEL(MAVERICK)
REQUEST_MODEL(LANDSTALKER)
REQUEST_MODEL(TAILGATER)
REQUEST_MODEL(P_LD_HEIST_BAG_S_1)
REQUEST_WAYPOINT_RECORDING("Eps8TRAFFIC01")
REQUEST_WAYPOINT_RECORDING("Eps8TRAFFIC02")
REQUEST_WAYPOINT_RECORDING("Eps8TRAFFIC03")
REQUEST_WAYPOINT_RECORDING("Eps8TRAFFIC04")
REQUEST_WAYPOINT_RECORDING("Eps8TRAFFIC05")
REQUEST_WAYPOINT_RECORDING("Eps8TRAFFIC06")
REQUEST_MODEL(TAXI)
//REQUEST_MODEL(PATRIOT)
REQUEST_MODEL(SADLER)
REQUEST_MODEL(HABANERO)
REQUEST_MODEL(SCHAFTER2)
REQUEST_MODEL(RUMPO)
REQUEST_STREAMED_TEXTURE_DICT("helicopterhud")
REQUEST_ADDITIONAL_TEXT("EPS8",MISSION_TEXT_SLOT)
//REQUEST_ADDITIONAL_TEXT("EPS8AU",MISSION_DIALOGUE_TEXT_SLOT)
WHILE NOT HAS_ADDITIONAL_TEXT_LOADED(MISSION_TEXT_SLOT) //wait for stuff we need right at the start
//OR NOT HAS_ADDITIONAL_TEXT_LOADED(MISSION_DIALOGUE_TEXT_SLOT)
OR NOT HAS_MODEL_LOADED(LANDSTALKER)
OR NOT HAS_MODEL_LOADED(TAILGATER)
OR NOT HAS_MODEL_LOADED(S_M_M_HIGHSEC_01)
WAIT(0)
ENDWHILE
vCompoundBack = << -281.6395, -102.0944, 45.8373 >> //back alley
vCompoundFront = << -409.0169, -58.1734, 43.6077 >>
vPosPlayerCar = <<-697.321533,39.040600,42.867363>>
fHeadingPlayerCar = -66.988541
vPosChopper = << -357.1071, -91.7128, 45.0982 >>
fHeadingChopper = 8.7486
vPosEpsilonCar[0] = << -686.5046, 43.9098, 42.2067 >> //used
vPosEpsilonCar[1] = << 188.3458, 169.2785, 104.3145 >>
vPosEpsilonCar[2] = << -410.1774, -68.8325, 42.4324 >> //used
vPosEpsilonCar[3] = << -656.5880, 56.5390, 42.7190 >> //used //<< 271.0465, 144.4226, 103.3244 >> //<< 271.7032, 143.8821, 103.2951 >>
vPosEpsilonCar[4] = << 299.5176, -11.6420, 76.1623 >>
vPosEpsilonCar[5] = << 175.4031, 93.0495, 87.8098 >>
vPosEpsilonCar[6] = << 257.4567, 161.3084, 103.6166 >>
fHeadingEpsilonCar[0] = 296.8100 //used
fHeadingEpsilonCar[1] = 162.1519
fHeadingEpsilonCar[2] = 317.5537 //used
fHeadingEpsilonCar[3] = 176.38631 //used
fHeadingEpsilonCar[4] = 157.9
fHeadingEpsilonCar[5] = 340.5091
fHeadingEpsilonCar[6] = 249.2435
vPosEpsilonHiSec[0] = <<-726.455505,33.335682,43.226952>> //used keep //Guy at west entrance of epsilon mansion //<< -727.0070, 32.2846, 41.9410 >>
vPosEpsilonHiSec[1] = << 222.1460, 206.6046, 104.4984 >>
vPosEpsilonHiSec[2] = <<-666.551208,49.197594,42.071537>> //used keep //Guy at east entrance of epsilon mansion //<< -663.8454, 41.9318, 39.3568 >>
vPosEpsilonHiSec[3] = << -379.9735, -73.8836, 44.6215 >> //used
vPosEpsilonHiSec[4] = << -378.7636, -86.7811, 44.6579 >> //used
vPosEpsilonHiSec[5] = << -374.7542, -81.9368, 44.6577 >> //used
vPosEpsilonHiSec[6] = << 248.7298, 109.6775, 101.4054 >>
fHeadingEpsilonHiSec[0] = -147.809906 //used //Guy at west entrance of epsilon mansion //201.3041
fHeadingEpsilonHiSec[1] = 129.6183
fHeadingEpsilonHiSec[2] = -171.680267 //used //Guy at east entrance of epsilon mansion //262.2314
fHeadingEpsilonHiSec[3] = 340.8513 //used
fHeadingEpsilonHiSec[4] = 256.0816 //used
fHeadingEpsilonHiSec[5] = 251.5665 //used
fHeadingEpsilonHiSec[6] = 23.1111
SET_VEHICLE_MODEL_IS_SUPPRESSED(LANDSTALKER,TRUE)
SET_VEHICLE_MODEL_IS_SUPPRESSED(SENTINEL,TRUE)
SET_VEHICLE_MODEL_IS_SUPPRESSED(SENTINEL2,TRUE)
SET_VEHICLE_MODEL_IS_SUPPRESSED(TAILGATER,TRUE)
SET_PED_MODEL_IS_SUPPRESSED(A_F_Y_EPSILON_01,TRUE)
SET_PED_MODEL_IS_SUPPRESSED(A_M_Y_EPSILON_01,TRUE)
SET_PED_MODEL_IS_SUPPRESSED(A_M_Y_EPSILON_02,TRUE)
SET_WANTED_LEVEL_MULTIPLIER(0.5)
SET_ALL_VEHICLE_GENERATORS_ACTIVE_IN_AREA(<<-375.76, -101.27, 42.79>>, <<-344.30, -100.84, 48.77>>, FALSE)
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 0, PLAYER_PED_ID(), "MICHAEL")
ADD_CONTACT_TO_PHONEBOOK(CHAR_CRIS,MICHAEL_BOOK,FALSE)
ENDPROC
/// PURPOSE: //After Cutscene, Wait for the rest of the stuff to load (it probably has)
PROC WaitForLoad()
WHILE NOT HAS_MODEL_LOADED(S_M_M_HIGHSEC_01)
OR NOT HAS_MODEL_LOADED(A_M_Y_EPSILON_01)
OR NOT HAS_MODEL_LOADED(SENTINEL)
OR NOT HAS_MODEL_LOADED(MAVERICK)
OR NOT HAS_MODEL_LOADED(P_LD_HEIST_BAG_S_1)
OR NOT HAS_VEHICLE_RECORDING_BEEN_LOADED(222,"Ep8Heli01")
OR NOT HAS_ANIM_DICT_LOADED("rcmepsilonism8")
OR NOT GET_IS_WAYPOINT_RECORDING_LOADED("Eps8EPED")
OR NOT GET_IS_WAYPOINT_RECORDING_LOADED("Eps8LS01")
OR NOT HAS_STREAMED_TEXTURE_DICT_LOADED("helicopterhud")
WAIT(0)
ENDWHILE
ENDPROC
/// PURPOSE: //Spawn all the epsilon vehicles and peds, give them weapons etc
PROC Init()
//Init helicopter and occupants
vehEpsilonChopper = CREATE_VEHICLE(MAVERICK,vPosChopper, fHeadingChopper)
//SET_VEHICLE_COLOURS(vehEpsilonChopper,23,23)
//SET_VEHICLE_EXTRA_COLOURS(vehEpsilonChopper,111,111)
SET_VEHICLE_COLOURS(vehEpsilonChopper,iCol1,iCol1)
SET_VEHICLE_EXTRA_COLOURS(vehEpsilonChopper,0,0)
//SET_VEHICLE_CUSTOM_SECONDARY_COLOUR(vehEpsilonChopper,204, 255, 255 )
SET_MODEL_AS_NO_LONGER_NEEDED(MAVERICK)
pedPilot = CREATE_PED_INSIDE_VEHICLE(vehEpsilonChopper,PEDTYPE_MISSION,S_M_M_HIGHSEC_01)
SET_PED_ACCURACY(pedPilot,iAccuracy)
SET_PED_SHOOT_RATE(pedPilot,iShootRate)
//SET_PED_COMP_ITEM_CURRENT_SP(pedPilot, COMP_TYPE_PROPS, PROPS_P0_HEADSET)
GIVE_WEAPON_TO_PED(pedPilot,WEAPONTYPE_COMBATPISTOL,-1,FALSE,FALSE)
SET_PED_RELATIONSHIP_GROUP_HASH(pedPilot,relEpsilon)
SET_VEHICLE_DOORS_LOCKED(vehEpsilonChopper,VEHICLELOCK_LOCKOUT_PLAYER_ONLY)
SET_ENTITY_IS_TARGET_PRIORITY(pedPilot,TRUE)
SET_PED_COMPONENT_VARIATION(pedPilot, INT_TO_ENUM(PED_COMPONENT,0), 0, 1, 0) //(head)
SET_PED_COMPONENT_VARIATION(pedPilot, INT_TO_ENUM(PED_COMPONENT,3), 0, 2, 0) //(uppr)
SET_PED_COMPONENT_VARIATION(pedPilot, INT_TO_ENUM(PED_COMPONENT,4), 0, 2, 0) //(lowr)
SET_PED_COMPONENT_VARIATION(pedPilot, INT_TO_ENUM(PED_COMPONENT,8), 1, 0, 0) //(accs)
SET_PED_COMPONENT_VARIATION(pedPilot, INT_TO_ENUM(PED_COMPONENT,11), 1, 0, 0) //(jbib)
pedEpsilonist = CREATE_PED_INSIDE_VEHICLE(vehEpsilonChopper,PEDTYPE_MISSION,A_M_Y_EPSILON_01,VS_BACK_LEFT)
SET_ENTITY_LOD_DIST(pedEpsilonist,100)
SET_PED_ACCURACY(pedEpsilonist,iAccuracy)
SET_PED_SHOOT_RATE(pedEpsilonist,iShootRate)
//SET_PED_COMP_ITEM_CURRENT_SP(pedEpsilonist, COMP_TYPE_PROPS, PROPS_P0_HEADSET)
/*
SET_PED_COMPONENT_VARIATION(pedEpsilonist,PED_COMP_HEAD,1,1,0)
SET_PED_COMPONENT_VARIATION(pedEpsilonist,PED_COMP_HAIR,1,1,0)
SET_PED_COMPONENT_VARIATION(pedEpsilonist,PED_COMP_TORSO,1,0,0)
SET_PED_COMPONENT_VARIATION(pedEpsilonist,PED_COMP_LEG,0,1,0)
*/
SET_PED_COMPONENT_VARIATION(pedEpsilonist, INT_TO_ENUM(PED_COMPONENT,0), 1, 0, 0) //(head)
SET_PED_COMPONENT_VARIATION(pedEpsilonist, INT_TO_ENUM(PED_COMPONENT,1), 1, 0, 0) //(berd)
SET_PED_COMPONENT_VARIATION(pedEpsilonist, INT_TO_ENUM(PED_COMPONENT,3), 0, 0, 0) //(uppr)
SET_PED_COMPONENT_VARIATION(pedEpsilonist, INT_TO_ENUM(PED_COMPONENT,4), 0, 0, 0) //(lowr)
SET_PED_COMPONENT_VARIATION(pedEpsilonist, INT_TO_ENUM(PED_COMPONENT,10), 1, 0, 0) //(decl)
SET_PED_RELATIONSHIP_GROUP_HASH(pedEpsilonist,relEpsilon)
GIVE_WEAPON_TO_PED(pedEpsilonist,WEAPONTYPE_COMBATPISTOL,-1,FALSE,FALSE)
GIVE_WEAPON_COMPONENT_TO_PED(pedEpsilonist,WEAPONTYPE_COMBATPISTOL,WEAPONCOMPONENT_AT_PI_FLSH)
SET_PED_KEEP_TASK(pedEpsilonist,TRUE)
TASK_LOOK_AT_ENTITY(pedEpsilonist,PLAYER_PED_ID(),-1)
SET_PED_CAN_HEAD_IK(pedEpsilonist,TRUE)
SET_PED_COMBAT_ATTRIBUTES(pedEpsilonist,CA_AGGRESSIVE,TRUE)
SET_PED_CAN_BE_TARGETTED(pedEpsilonist,FALSE)
pedChopperShotgun = CREATE_PED_INSIDE_VEHICLE(vehEpsilonChopper,PEDTYPE_MISSION,S_M_M_HIGHSEC_01,VS_BACK_RIGHT)
SET_PED_ACCURACY(pedChopperShotgun,iAccuracy - iHeliSniperAccModifier)
SET_PED_SHOOT_RATE(pedChopperShotgun,iShootRate + iHeliSniperSRModifier)
SET_PED_CONFIG_FLAG(pedChopperShotgun,PCF_DontBehaveLikeLaw,TRUE)
/*
GIVE_WEAPON_TO_PED(pedChopperShotgun,WEAPONTYPE_COMBATMG,-1,FALSE,FALSE)
GIVE_WEAPON_COMPONENT_TO_PED(pedChopperShotgun,WEAPONTYPE_COMBATMG,WEAPONCOMPONENT_COMBATMG_CLIP_02)
GIVE_WEAPON_COMPONENT_TO_PED(pedChopperShotgun,WEAPONTYPE_COMBATMG,WEAPONCOMPONENT_AT_SCOPE_MEDIUM)
SET_CURRENT_PED_WEAPON(pedChopperShotgun,WEAPONTYPE_COMBATMG,TRUE)
*/
GIVE_WEAPON_TO_PED(pedChopperShotgun,WEAPONTYPE_ADVANCEDRIFLE,-1,FALSE,FALSE)
GIVE_WEAPON_COMPONENT_TO_PED(pedChopperShotgun,WEAPONTYPE_ADVANCEDRIFLE,WEAPONCOMPONENT_AT_AR_FLSH)
GIVE_WEAPON_COMPONENT_TO_PED(pedChopperShotgun,WEAPONTYPE_ADVANCEDRIFLE,WEAPONCOMPONENT_AT_SCOPE_SMALL)
SET_CURRENT_PED_WEAPON(pedChopperShotgun,WEAPONTYPE_ADVANCEDRIFLE,TRUE)
/*
GIVE_WEAPON_TO_PED(pedChopperShotgun,WEAPONTYPE_CARBINERIFLE,-1,FALSE,FALSE)
GIVE_WEAPON_COMPONENT_TO_PED(pedChopperShotgun,WEAPONTYPE_CARBINERIFLE,WEAPONCOMPONENT_AT_RAILCOVER_01)
GIVE_WEAPON_COMPONENT_TO_PED(pedChopperShotgun,WEAPONTYPE_CARBINERIFLE,WEAPONCOMPONENT_AT_AR_FLSH)
GIVE_WEAPON_COMPONENT_TO_PED(pedChopperShotgun,WEAPONTYPE_CARBINERIFLE,WEAPONCOMPONENT_AT_SCOPE_MEDIUM)
SET_CURRENT_PED_WEAPON(pedChopperShotgun,WEAPONTYPE_CARBINERIFLE,TRUE)
*/
SET_PED_KEEP_TASK(pedChopperShotgun,TRUE)
SET_PED_COMBAT_RANGE(pedChopperShotgun,CR_FAR)
SET_PED_HEARING_RANGE(pedChopperShotgun,400.0)
SET_PED_SEEING_RANGE(pedChopperShotgun,400.0)
SET_PED_ID_RANGE(pedChopperShotgun,400.0)
SET_PED_FIRING_PATTERN(pedChopperShotgun,FIRING_PATTERN_FULL_AUTO)
SET_PED_COMBAT_ATTRIBUTES(pedChopperShotgun,CA_DO_DRIVEBYS,TRUE)
SET_PED_COMBAT_ATTRIBUTES(pedChopperShotgun,CA_LEAVE_VEHICLES,FALSE)
SET_PED_RELATIONSHIP_GROUP_HASH(pedChopperShotgun,relEpsilon)
TASK_LOOK_AT_ENTITY(pedChopperShotgun,PLAYER_PED_ID(),-1)
SET_ENTITY_IS_TARGET_PRIORITY(pedChopperShotgun,TRUE)
pedEpsilonHiSecurity[5] = CREATE_PED_INSIDE_VEHICLE(vehEpsilonChopper,PEDTYPE_MISSION,S_M_M_HIGHSEC_01,VS_FRONT_RIGHT)
SET_PED_ACCURACY(pedEpsilonHiSecurity[5],iAccuracy)
SET_PED_SHOOT_RATE(pedEpsilonHiSecurity[5],iShootRate)
GIVE_WEAPON_TO_PED(pedEpsilonHiSecurity[5],WEAPONTYPE_COMBATPISTOL,-1,FALSE,FALSE)
GIVE_WEAPON_COMPONENT_TO_PED(pedEpsilonHiSecurity[5],WEAPONTYPE_COMBATPISTOL,WEAPONCOMPONENT_AT_PI_FLSH)
SET_PED_COMBAT_ATTRIBUTES(pedEpsilonHiSecurity[5],CA_BLIND_FIRE_IN_COVER,TRUE)
SET_PED_RELATIONSHIP_GROUP_HASH(pedEpsilonHiSecurity[5],relEpsilon)
SET_ENTITY_IS_TARGET_PRIORITY(pedEpsilonHiSecurity[5],TRUE)
SET_PED_CONFIG_FLAG(pedEpsilonHiSecurity[5],PCF_DontBehaveLikeLaw,TRUE)
//Init first security car and occupants
vehEpsilonCar[2] = CREATE_VEHICLE(SENTINEL,vPosEpsilonCar[2], fHeadingEpsilonCar[2])
SET_VEHICLE_ON_GROUND_PROPERLY(vehEpsilonCar[2])
//SET_VEHICLE_COLOURS(vehEpsilonCar[2],0,0)
//SET_VEHICLE_EXTRA_COLOURS(vehEpsilonCar[2],0,0)
SET_VEHICLE_COLOURS(vehEpsilonCar[2],iCol1,iCol1)
SET_VEHICLE_EXTRA_COLOURS(vehEpsilonCar[2],0,0)
//SET_VEHICLE_CUSTOM_SECONDARY_COLOUR(vehEpsilonCar[2],204, 255, 255 )
SET_ENTITY_ONLY_DAMAGED_BY_PLAYER(vehEpsilonCar[2],TRUE)
SET_VEHICLE_MOD_KIT(vehEpsilonCar[2],0)
SET_VEHICLE_WINDOW_TINT(vehEpsilonCar[2],2)
SET_VEHICLE_MOD(vehEpsilonCar[2],MOD_SUSPENSION,1)
SET_VEHICLE_MOD(vehEpsilonCar[2],MOD_ENGINE,1)
SET_VEHICLE_MOD(vehEpsilonCar[2],MOD_BRAKES,0)
TOGGLE_VEHICLE_MOD(vehEpsilonCar[2],MOD_TOGGLE_TURBO,TRUE)
SET_VEHICLE_NUMBER_PLATE_TEXT_INDEX(vehEpsilonCar[2], 0)
pedEpsilonHiSecDriver[2] = CREATE_PED_INSIDE_VEHICLE(vehEpsilonCar[2],PEDTYPE_MISSION,S_M_M_HIGHSEC_01)
SET_DRIVER_ABILITY(pedEpsilonHiSecDriver[2],1)
SET_DRIVER_RACING_MODIFIER(pedEpsilonHiSecDriver[2],1)
SET_PED_ACCURACY(pedEpsilonHiSecDriver[2],iAccuracy)
SET_PED_SHOOT_RATE(pedEpsilonHiSecDriver[2],iShootRate)
SET_ENTITY_LOAD_COLLISION_FLAG(pedEpsilonHiSecDriver[2],TRUE)
SET_PED_KEEP_TASK(pedEpsilonHiSecDriver[2],TRUE)
GIVE_WEAPON_TO_PED(pedEpsilonHiSecDriver[2],WEAPONTYPE_PISTOL,-1,FALSE,FALSE)
SET_PED_COMBAT_ATTRIBUTES(pedEpsilonHiSecDriver[2],CA_DO_DRIVEBYS,TRUE)
SET_PED_COMBAT_ATTRIBUTES(pedEpsilonHiSecDriver[2],CA_BLIND_FIRE_IN_COVER,TRUE)
SET_PED_RELATIONSHIP_GROUP_HASH(pedEpsilonHiSecDriver[2],relEpsilon)
SET_ENTITY_IS_TARGET_PRIORITY(pedEpsilonHiSecDriver[2],TRUE)
SET_PED_CONFIG_FLAG(pedEpsilonHiSecDriver[2],PCF_DontBehaveLikeLaw,TRUE)
pedEpsilonHiSecShotgun[2] = CREATE_PED_INSIDE_VEHICLE(vehEpsilonCar[2],PEDTYPE_MISSION,S_M_M_HIGHSEC_01,VS_FRONT_RIGHT)
SET_PED_ACCURACY(pedEpsilonHiSecShotgun[2],iAccuracy)
SET_PED_SHOOT_RATE(pedEpsilonHiSecShotgun[2],iShootRate)
SET_PED_KEEP_TASK(pedEpsilonHiSecShotgun[2],TRUE)
GIVE_WEAPON_TO_PED(pedEpsilonHiSecShotgun[2],WEAPONTYPE_COMBATPISTOL,-1,FALSE,FALSE)
GIVE_WEAPON_COMPONENT_TO_PED(pedEpsilonHiSecShotgun[2],WEAPONTYPE_COMBATPISTOL,WEAPONCOMPONENT_AT_PI_FLSH)
SET_PED_COMBAT_ATTRIBUTES(pedEpsilonHiSecShotgun[2],CA_DO_DRIVEBYS,TRUE)
SET_PED_COMBAT_ATTRIBUTES(pedEpsilonHiSecShotgun[2],CA_AGGRESSIVE,TRUE)
SET_PED_RELATIONSHIP_GROUP_HASH(pedEpsilonHiSecShotgun[2],relEpsilon)
SET_ENTITY_IS_TARGET_PRIORITY(pedEpsilonHiSecShotgun[2],TRUE)
SET_PED_CONFIG_FLAG(pedEpsilonHiSecShotgun[2],PCF_DontBehaveLikeLaw,TRUE)
//Init second security car and occupants
vehEpsilonCar[3] = CREATE_VEHICLE(SENTINEL,vPosEpsilonCar[3], fHeadingEpsilonCar[3])
SET_VEHICLE_ON_GROUND_PROPERLY(vehEpsilonCar[3])
//SET_VEHICLE_COLOURS(vehEpsilonCar[3],0,0)
//SET_VEHICLE_EXTRA_COLOURS(vehEpsilonCar[3],0,0)
SET_VEHICLE_COLOURS(vehEpsilonCar[3],iCol1,iCol1)
SET_VEHICLE_EXTRA_COLOURS(vehEpsilonCar[3],0,0)
//SET_VEHICLE_CUSTOM_SECONDARY_COLOUR(vehEpsilonCar[3],204, 255, 255 )
SET_ENTITY_ONLY_DAMAGED_BY_PLAYER(vehEpsilonCar[3],TRUE)
SET_VEHICLE_MOD_KIT(vehEpsilonCar[3],0)
SET_VEHICLE_WINDOW_TINT(vehEpsilonCar[3],2)
SET_VEHICLE_MOD(vehEpsilonCar[3],MOD_SUSPENSION,1)
SET_VEHICLE_MOD(vehEpsilonCar[3],MOD_ENGINE,1)
SET_VEHICLE_MOD(vehEpsilonCar[3],MOD_BRAKES,0)
TOGGLE_VEHICLE_MOD(vehEpsilonCar[3],MOD_TOGGLE_TURBO,TRUE)
SET_VEHICLE_NUMBER_PLATE_TEXT_INDEX(vehEpsilonCar[3], 0)
pedEpsilonHiSecDriver[3] = CREATE_PED_INSIDE_VEHICLE(vehEpsilonCar[3],PEDTYPE_MISSION,S_M_M_HIGHSEC_01)
SET_DRIVER_ABILITY(pedEpsilonHiSecDriver[3],1)
SET_DRIVER_RACING_MODIFIER(pedEpsilonHiSecDriver[3],1)
SET_PED_ACCURACY(pedEpsilonHiSecDriver[3],iAccuracy)
SET_PED_SHOOT_RATE(pedEpsilonHiSecDriver[3],iShootRate)
SET_ENTITY_LOAD_COLLISION_FLAG(pedEpsilonHiSecDriver[3],TRUE)
SET_PED_KEEP_TASK(pedEpsilonHiSecDriver[3],TRUE)
GIVE_WEAPON_TO_PED(pedEpsilonHiSecDriver[3],WEAPONTYPE_PISTOL,-1,FALSE,FALSE)
SET_PED_COMBAT_ATTRIBUTES(pedEpsilonHiSecDriver[3],CA_DO_DRIVEBYS,TRUE)
SET_PED_COMBAT_ATTRIBUTES(pedEpsilonHiSecDriver[3],CA_BLIND_FIRE_IN_COVER,TRUE)
SET_PED_RELATIONSHIP_GROUP_HASH(pedEpsilonHiSecDriver[3],relEpsilon)
SET_ENTITY_IS_TARGET_PRIORITY(pedEpsilonHiSecDriver[3],TRUE)
SET_PED_CONFIG_FLAG(pedEpsilonHiSecDriver[3],PCF_DontBehaveLikeLaw,TRUE)
pedEpsilonHiSecShotgun[3] = CREATE_PED_INSIDE_VEHICLE(vehEpsilonCar[3],PEDTYPE_MISSION,S_M_M_HIGHSEC_01,VS_FRONT_RIGHT)
SET_PED_ACCURACY(pedEpsilonHiSecShotgun[3],iAccuracy)
SET_PED_SHOOT_RATE(pedEpsilonHiSecShotgun[3],iShootRate)
SET_PED_KEEP_TASK(pedEpsilonHiSecShotgun[3],TRUE)
GIVE_WEAPON_TO_PED(pedEpsilonHiSecShotgun[3],WEAPONTYPE_PISTOL,-1,FALSE,FALSE)
GIVE_WEAPON_COMPONENT_TO_PED(pedEpsilonHiSecShotgun[3],WEAPONTYPE_PISTOL,WEAPONCOMPONENT_AT_PI_FLSH)
SET_PED_COMBAT_ATTRIBUTES(pedEpsilonHiSecShotgun[3],CA_DO_DRIVEBYS,TRUE)
SET_PED_COMBAT_ATTRIBUTES(pedEpsilonHiSecShotgun[3],CA_AGGRESSIVE,TRUE)
SET_PED_RELATIONSHIP_GROUP_HASH(pedEpsilonHiSecShotgun[3],relEpsilon)
SET_ENTITY_IS_TARGET_PRIORITY(pedEpsilonHiSecShotgun[3],TRUE)
SET_PED_CONFIG_FLAG(pedEpsilonHiSecShotgun[3],PCF_DontBehaveLikeLaw,TRUE)
//Init on-foot security guys
IF IS_PED_UNINJURED(pedEpsilonHiSecurity[0])
SET_PED_ACCURACY(pedEpsilonHiSecurity[0],iAccuracy)
SET_PED_SHOOT_RATE(pedEpsilonHiSecurity[0],iShootRate)
GIVE_WEAPON_TO_PED(pedEpsilonHiSecurity[0],WEAPONTYPE_SMG,-1,FALSE,FALSE)
SET_PED_COMBAT_ATTRIBUTES(pedEpsilonHiSecurity[0],CA_BLIND_FIRE_IN_COVER,TRUE)
SET_PED_COMBAT_ATTRIBUTES(pedEpsilonHiSecurity[0],CA_USE_VEHICLE,FALSE)
TASK_LOOK_AT_ENTITY(pedEpsilonHiSecurity[0],PLAYER_PED_ID(),-1)
SET_PED_RELATIONSHIP_GROUP_HASH(pedEpsilonHiSecurity[0],relEpsilon)
SET_ENTITY_IS_TARGET_PRIORITY(pedEpsilonHiSecurity[0],TRUE)
SET_PED_CAN_EVASIVE_DIVE(pedEpsilonHiSecurity[0],FALSE)
SET_PED_CONFIG_FLAG(pedEpsilonHiSecurity[0],PCF_DontBehaveLikeLaw,TRUE)
SET_PED_COMPONENT_VARIATION(pedEpsilonHiSecurity[0], INT_TO_ENUM(PED_COMPONENT,0), 1, 1, 0) //(head)
SET_PED_COMPONENT_VARIATION(pedEpsilonHiSecurity[0], INT_TO_ENUM(PED_COMPONENT,3), 0, 1, 0) //(uppr)
SET_PED_COMPONENT_VARIATION(pedEpsilonHiSecurity[0], INT_TO_ENUM(PED_COMPONENT,4), 0, 1, 0) //(lowr)
SET_PED_COMPONENT_VARIATION(pedEpsilonHiSecurity[0], INT_TO_ENUM(PED_COMPONENT,8), 1, 0, 0) //(accs)
SET_PED_COMPONENT_VARIATION(pedEpsilonHiSecurity[0], INT_TO_ENUM(PED_COMPONENT,11), 1, 0, 0) //(jbib)
//TASK_START_SCENARIO_IN_PLACE(pedEpsilonHiSecurity[0],"WORLD_HUMAN_GUARD_STAND")
ENDIF
IF IS_PED_UNINJURED(pedEpsilonHiSecurity[2])
SET_PED_ACCURACY(pedEpsilonHiSecurity[2],iAccuracy)
SET_PED_SHOOT_RATE(pedEpsilonHiSecurity[2],iShootRate)
GIVE_WEAPON_TO_PED(pedEpsilonHiSecurity[2],WEAPONTYPE_SMG,-1,FALSE,FALSE)
GIVE_WEAPON_COMPONENT_TO_PED(pedEpsilonHiSecurity[2],WEAPONTYPE_SMG,WEAPONCOMPONENT_AT_AR_FLSH)
SET_PED_COMBAT_ATTRIBUTES(pedEpsilonHiSecurity[2],CA_BLIND_FIRE_IN_COVER,TRUE)
SET_PED_COMBAT_ATTRIBUTES(pedEpsilonHiSecurity[2],CA_USE_VEHICLE,FALSE)
TASK_LOOK_AT_ENTITY(pedEpsilonHiSecurity[2],PLAYER_PED_ID(),-1)
SET_PED_RELATIONSHIP_GROUP_HASH(pedEpsilonHiSecurity[2],relEpsilon)
SET_ENTITY_IS_TARGET_PRIORITY(pedEpsilonHiSecurity[2],TRUE)
SET_PED_CAN_EVASIVE_DIVE(pedEpsilonHiSecurity[2],FALSE)
SET_PED_CONFIG_FLAG(pedEpsilonHiSecurity[2],PCF_DontBehaveLikeLaw,TRUE)
SET_PED_COMPONENT_VARIATION(pedEpsilonHiSecurity[2], INT_TO_ENUM(PED_COMPONENT,0), 0, 0, 0) //(head)
SET_PED_COMPONENT_VARIATION(pedEpsilonHiSecurity[2], INT_TO_ENUM(PED_COMPONENT,3), 0, 1, 0) //(uppr)
SET_PED_COMPONENT_VARIATION(pedEpsilonHiSecurity[2], INT_TO_ENUM(PED_COMPONENT,4), 0, 1, 0) //(lowr)
SET_PED_COMPONENT_VARIATION(pedEpsilonHiSecurity[2], INT_TO_ENUM(PED_COMPONENT,8), 0, 0, 0) //(accs)
SET_PED_COMPONENT_VARIATION(pedEpsilonHiSecurity[2], INT_TO_ENUM(PED_COMPONENT,11), 0, 0, 0) //(jbib)
//TASK_START_SCENARIO_IN_PLACE(pedEpsilonHiSecurity[2],"WORLD_HUMAN_GUARD_STAND")
ENDIF
pedEpsilonHiSecurity[3] = CREATE_PED(PEDTYPE_MISSION,S_M_M_HIGHSEC_01,vPosEpsilonHiSec[3],fHeadingEpsilonHiSec[3])
SET_PED_ACCURACY(pedEpsilonHiSecurity[3],iAccuracy)
SET_PED_SHOOT_RATE(pedEpsilonHiSecurity[3],iShootRate)
GIVE_WEAPON_TO_PED(pedEpsilonHiSecurity[3],WEAPONTYPE_SMG,-1,FALSE,FALSE)
SET_PED_COMBAT_ATTRIBUTES(pedEpsilonHiSecurity[3],CA_BLIND_FIRE_IN_COVER,TRUE)
SET_PED_COMBAT_ATTRIBUTES(pedEpsilonHiSecurity[3],CA_USE_VEHICLE,FALSE)
TASK_LOOK_AT_ENTITY(pedEpsilonHiSecurity[3],PLAYER_PED_ID(),-1)
SET_PED_RELATIONSHIP_GROUP_HASH(pedEpsilonHiSecurity[3],relEpsilon)
SET_ENTITY_IS_TARGET_PRIORITY(pedEpsilonHiSecurity[3],TRUE)
//TASK_START_SCENARIO_IN_PLACE(pedEpsilonHiSecurity[3],"WORLD_HUMAN_GUARD_STAND")
TASK_PLAY_ANIM(pedEpsilonHiSecurity[3],"rcmepsilonism8","security_idle",4,-4,-1,AF_LOOPING)
SET_PED_CAN_EVASIVE_DIVE(pedEpsilonHiSecurity[3],FALSE)
SET_PED_CONFIG_FLAG(pedEpsilonHiSecurity[3],PCF_DontBehaveLikeLaw,TRUE)
SET_PED_COMPONENT_VARIATION(pedEpsilonHiSecurity[3], INT_TO_ENUM(PED_COMPONENT,0), 1, 2, 0) //(head)
SET_PED_COMPONENT_VARIATION(pedEpsilonHiSecurity[3], INT_TO_ENUM(PED_COMPONENT,3), 0, 0, 0) //(uppr)
SET_PED_COMPONENT_VARIATION(pedEpsilonHiSecurity[3], INT_TO_ENUM(PED_COMPONENT,4), 0, 0, 0) //(lowr)
SET_PED_COMPONENT_VARIATION(pedEpsilonHiSecurity[3], INT_TO_ENUM(PED_COMPONENT,8), 0, 0, 0) //(accs)
SET_PED_COMPONENT_VARIATION(pedEpsilonHiSecurity[3], INT_TO_ENUM(PED_COMPONENT,11), 0, 0, 0) //(jbib)
pedEpsilonHiSecurity[4] = CREATE_PED(PEDTYPE_MISSION,S_M_M_HIGHSEC_01,vPosEpsilonHiSec[4],fHeadingEpsilonHiSec[4])
SET_PED_ACCURACY(pedEpsilonHiSecurity[4],iAccuracy)
SET_PED_SHOOT_RATE(pedEpsilonHiSecurity[4],iShootRate)
GIVE_WEAPON_TO_PED(pedEpsilonHiSecurity[4],WEAPONTYPE_SMG,-1,FALSE,FALSE)
GIVE_WEAPON_COMPONENT_TO_PED(pedEpsilonHiSecurity[4],WEAPONTYPE_SMG,WEAPONCOMPONENT_AT_AR_FLSH)
SET_PED_COMBAT_ATTRIBUTES(pedEpsilonHiSecurity[4],CA_AGGRESSIVE,TRUE)
SET_PED_COMBAT_ATTRIBUTES(pedEpsilonHiSecurity[4],CA_USE_VEHICLE,FALSE)
TASK_LOOK_AT_ENTITY(pedEpsilonHiSecurity[4],PLAYER_PED_ID(),-1)
SET_PED_RELATIONSHIP_GROUP_HASH(pedEpsilonHiSecurity[4],relEpsilon)
SET_ENTITY_IS_TARGET_PRIORITY(pedEpsilonHiSecurity[4],TRUE)
//TASK_START_SCENARIO_IN_PLACE(pedEpsilonHiSecurity[4],"WORLD_HUMAN_GUARD_STAND")
TASK_PLAY_ANIM(pedEpsilonHiSecurity[4],"rcmepsilonism8","security_idle",4,-4,-1,AF_LOOPING)
SET_PED_CAN_EVASIVE_DIVE(pedEpsilonHiSecurity[4],FALSE)
SET_PED_CONFIG_FLAG(pedEpsilonHiSecurity[4],PCF_DontBehaveLikeLaw,TRUE)
SET_PED_COMPONENT_VARIATION(pedEpsilonHiSecurity[4], INT_TO_ENUM(PED_COMPONENT,0), 1, 0, 0) //(head)
SET_PED_COMPONENT_VARIATION(pedEpsilonHiSecurity[4], INT_TO_ENUM(PED_COMPONENT,3), 0, 2, 0) //(uppr)
SET_PED_COMPONENT_VARIATION(pedEpsilonHiSecurity[4], INT_TO_ENUM(PED_COMPONENT,4), 0, 0, 0) //(lowr)
SET_PED_COMPONENT_VARIATION(pedEpsilonHiSecurity[4], INT_TO_ENUM(PED_COMPONENT,8), 1, 0, 0) //(accs)
SET_PED_COMPONENT_VARIATION(pedEpsilonHiSecurity[4], INT_TO_ENUM(PED_COMPONENT,11), 1, 0, 0) //(jbib)
IF IS_PED_UNINJURED(pedEpsilonHiSecDriver[0])
SET_DRIVER_ABILITY(pedEpsilonHiSecDriver[0],1)
SET_DRIVER_RACING_MODIFIER(pedEpsilonHiSecDriver[0],1)
SET_PED_ACCURACY(pedEpsilonHiSecDriver[0],iAccuracy)
SET_PED_SHOOT_RATE(pedEpsilonHiSecDriver[0],iShootRate)
GIVE_WEAPON_TO_PED(pedEpsilonHiSecDriver[0],WEAPONTYPE_COMBATPISTOL,-1,FALSE,FALSE)
SET_PED_COMBAT_ATTRIBUTES(pedEpsilonHiSecDriver[0],CA_BLIND_FIRE_IN_COVER,TRUE)
SET_PED_COMBAT_ATTRIBUTES(pedEpsilonHiSecDriver[0],CA_DO_DRIVEBYS,TRUE)
SET_PED_RELATIONSHIP_GROUP_HASH(pedEpsilonHiSecDriver[0],relEpsilon)
SET_ENTITY_IS_TARGET_PRIORITY(pedEpsilonHiSecDriver[0],TRUE)
SET_PED_CONFIG_FLAG(pedEpsilonHiSecDriver[0],PCF_DontBehaveLikeLaw,TRUE)
SET_PED_COMPONENT_VARIATION(pedEpsilonHiSecDriver[0], INT_TO_ENUM(PED_COMPONENT,0), 0, 1, 0) //(head)
SET_PED_COMPONENT_VARIATION(pedEpsilonHiSecDriver[0], INT_TO_ENUM(PED_COMPONENT,3), 0, 1, 0) //(uppr)
SET_PED_COMPONENT_VARIATION(pedEpsilonHiSecDriver[0], INT_TO_ENUM(PED_COMPONENT,4), 0, 1, 0) //(lowr)
SET_PED_COMPONENT_VARIATION(pedEpsilonHiSecDriver[0], INT_TO_ENUM(PED_COMPONENT,8), 0, 0, 0) //(accs)
SET_PED_COMPONENT_VARIATION(pedEpsilonHiSecDriver[0], INT_TO_ENUM(PED_COMPONENT,11), 0, 0, 0) //(jbib)
ENDIF
IF IS_PED_UNINJURED(pedEpsilonHiSecShotgun[0])
SET_PED_ACCURACY(pedEpsilonHiSecShotgun[0],iAccuracy)
SET_PED_SHOOT_RATE(pedEpsilonHiSecShotgun[0],iShootRate)
GIVE_WEAPON_TO_PED(pedEpsilonHiSecShotgun[0],WEAPONTYPE_MICROSMG,-1,FALSE,FALSE)
GIVE_WEAPON_COMPONENT_TO_PED(pedEpsilonHiSecShotgun[0],WEAPONTYPE_MICROSMG,WEAPONCOMPONENT_AT_PI_FLSH)
GIVE_WEAPON_COMPONENT_TO_PED(pedEpsilonHiSecShotgun[0],WEAPONTYPE_MICROSMG,WEAPONCOMPONENT_AT_SCOPE_MACRO)
SET_PED_COMBAT_ATTRIBUTES(pedEpsilonHiSecShotgun[0],CA_DO_DRIVEBYS,TRUE)
SET_PED_COMBAT_ATTRIBUTES(pedEpsilonHiSecShotgun[0],CA_AGGRESSIVE,TRUE)
SET_PED_RELATIONSHIP_GROUP_HASH(pedEpsilonHiSecShotgun[0],relEpsilon)
SET_ENTITY_IS_TARGET_PRIORITY(pedEpsilonHiSecShotgun[0],TRUE)
SET_PED_CONFIG_FLAG(pedEpsilonHiSecShotgun[0],PCF_DontBehaveLikeLaw,TRUE)
SET_PED_COMPONENT_VARIATION(pedEpsilonHiSecShotgun[0], INT_TO_ENUM(PED_COMPONENT,0), 1, 0, 0) //(head)
SET_PED_COMPONENT_VARIATION(pedEpsilonHiSecShotgun[0], INT_TO_ENUM(PED_COMPONENT,3), 0, 2, 0) //(uppr)
SET_PED_COMPONENT_VARIATION(pedEpsilonHiSecShotgun[0], INT_TO_ENUM(PED_COMPONENT,4), 0, 2, 0) //(lowr)
SET_PED_COMPONENT_VARIATION(pedEpsilonHiSecShotgun[0], INT_TO_ENUM(PED_COMPONENT,8), 1, 0, 0) //(accs)
SET_PED_COMPONENT_VARIATION(pedEpsilonHiSecShotgun[0], INT_TO_ENUM(PED_COMPONENT,11), 0, 1, 0) //(jbib)
ENDIF
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 8, pedEpsilonist, "EPSGUARD")
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 3, pedPilot, "EPSPILOT")
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 5, pedEpsilonHiSecurity[0], "EPSGUARD2")
//ADD_PED_FOR_DIALOGUE(s_conversation_peds, 4, pedEpsilonHiSecurity[5], "EPSGUARD")
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 6, pedEpsilonHiSecurity[3], "EPSGUARD7") //EPSGUARD4
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 7, pedEpsilonHiSecurity[4], "EPSGUARD8") //EPSGUARD3
ADD_CONTACT_TO_PHONEBOOK(CHAR_FRANKLIN,MICHAEL_BOOK,FALSE)
ADD_CONTACT_TO_PHONEBOOK(CHAR_MARNIE, MICHAEL_BOOK, FALSE)
ADD_CONTACT_TO_PHONEBOOK(CHAR_JIMMY_BOSTON, MICHAEL_BOOK, FALSE)
//Give Michael a headset
SET_PED_COMP_ITEM_CURRENT_SP(PLAYER_PED_ID(), COMP_TYPE_PROPS, PROPS_P0_HEADSET)
//Block police helicopters or it can get confusing
BLOCK_DISPATCH_SERVICE_RESOURCE_CREATION(DT_SWAT_HELICOPTER,TRUE)
BLOCK_DISPATCH_SERVICE_RESOURCE_CREATION(DT_POLICE_HELICOPTER,TRUE)
BLOCK_DISPATCH_SERVICE_RESOURCE_CREATION(DT_AMBULANCE_DEPARTMENT,TRUE)
BLOCK_DISPATCH_SERVICE_RESOURCE_CREATION(DT_FIRE_DEPARTMENT,TRUE)
iTimerMissionInit = GET_GAME_TIMER()
ENDPROC
PROC LockDoors()
IF DOES_OBJECT_OF_TYPE_EXIST_AT_COORDS(<<-697.94, 48.35, 44.30>>,15.0,prop_epsilon_door_r)
SET_STATE_OF_CLOSEST_DOOR_OF_TYPE(prop_epsilon_door_r,<<-697.94, 48.35, 44.30>>,TRUE,0)
ENDIF
IF DOES_OBJECT_OF_TYPE_EXIST_AT_COORDS(<<-700.17, 47.31, 44.30>>,15.0,prop_epsilon_door_l)
SET_STATE_OF_CLOSEST_DOOR_OF_TYPE(prop_epsilon_door_l,<<-700.17, 47.31, 44.30>>,TRUE,0)
ENDIF
ENDPROC
PROC DoTraffic()
CLEAR_AREA_OF_VEHICLES(GET_ENTITY_COORDS(PLAYER_PED_ID()),200,TRUE,TRUE)
IF HAS_MODEL_LOADED(TAXI)
//AND HAS_MODEL_LOADED(PATRIOT)
AND HAS_MODEL_LOADED(SADLER)
AND HAS_MODEL_LOADED(HABANERO)
AND HAS_MODEL_LOADED(SCHAFTER2)
AND HAS_MODEL_LOADED(RUMPO)
vTrafficRoute1[0] = << -131.8380, -84.8160, 54.8058 >>
vTrafficRoute1[1] = << -131.8380, -84.8160, 54.8058 >>
vTrafficRoute1[2] = << -202.8393, -60.2254, 49.8713 >>
vTrafficRoute1[3] = << -283.2474, -32.2227, 48.2857 >>
vTrafficRoute1[4] = << -372.0164, -1.9755, 45.9995 >>
vTrafficRoute1[5] = << -463.3591, 7.4364, 44.6764 >>
vTrafficRoute1[6] = << -536.8303, 12.2933, 43.2611 >>
fHeadingTrafficRoute1[0] = 71.7829
fHeadingTrafficRoute1[1] = 71.7829
fHeadingTrafficRoute1[2] = 70.6852
fHeadingTrafficRoute1[3] = 70.5582
fHeadingTrafficRoute1[4] = 75.2358
fHeadingTrafficRoute1[5] = 88.0273
fHeadingTrafficRoute1[6] = 86.8248
vTrafficRoute2[0] = << -312.1015, 130.6894, 66.5865 >>
vTrafficRoute2[1] = << -345.6338, 129.7367, 65.7121 >>
vTrafficRoute2[2] = << -393.3472, 75.7086, 58.9759 >>
vTrafficRoute2[3] = << -394.0365, 33.2626, 47.2826 >>
vTrafficRoute2[4] = << -432.5279, 11.5918, 45.1093 >>
vTrafficRoute2[5] = << -473.8784, 13.9020, 44.3884 >>
vTrafficRoute2[6] = << -515.9524, 16.8126, 43.5537 >>
fHeadingTrafficRoute2[0] = 91.2112
fHeadingTrafficRoute2[1] = 92.7461
fHeadingTrafficRoute2[2] = 179.5078
fHeadingTrafficRoute2[3] = 174.2351
fHeadingTrafficRoute2[4] = 87.2938
fHeadingTrafficRoute2[5] = 85.9476
fHeadingTrafficRoute2[6] = 86.5195
vTrafficRoute3[0] = << -821.8678, -15.2100, 38.7738 >>
vTrafficRoute3[1] = << -762.9101, -61.3690, 36.8265 >>
vTrafficRoute3[2] = << -683.5615, -22.2863, 37.2221 >>
vTrafficRoute3[3] = << -598.2457, -13.4337, 42.8497 >>
vTrafficRoute3[4] = << -566.7648, -39.6658, 41.7440 >>
vTrafficRoute3[5] = << -547.0430, -87.3705, 39.7725 >>
vTrafficRoute3[6] = << -542.4178, -145.0670, 37.4423 >>
fHeadingTrafficRoute3[0] = 213.1008
fHeadingTrafficRoute3[1] = 292.6512
fHeadingTrafficRoute3[2] = 280.8633
fHeadingTrafficRoute3[3] = 270.1932
fHeadingTrafficRoute3[4] = 162.4637
fHeadingTrafficRoute3[5] = 220.7259
fHeadingTrafficRoute3[6] = 109.6765
vTrafficRoute4[0] = << -538.8824, 2.5863, 43.2495 >>
vTrafficRoute4[1] = << -510.9343, 0.7568, 43.7336 >>
vTrafficRoute4[2] = << -468.7612, -1.3575, 44.5868 >>
vTrafficRoute4[3] = << -419.5594, -4.5629, 45.5167 >>
vTrafficRoute4[4] = << -373.0446, -11.2775, 46.0324 >>
vTrafficRoute4[5] = << -278.3581, -44.5050, 48.5490 >>
vTrafficRoute4[6] = << -211.5438, -68.0673, 49.5385 >>
fHeadingTrafficRoute4[0] = 264.3932
fHeadingTrafficRoute4[1] = 265.6151
fHeadingTrafficRoute4[2] = 265.8879
fHeadingTrafficRoute4[3] = 267.9286
fHeadingTrafficRoute4[4] = 251.6172
fHeadingTrafficRoute4[5] = 254.6602
fHeadingTrafficRoute4[6] = 252.3606
vTrafficRoute5[0] = << -669.2421, -7.4354, 37.8635 >>
vTrafficRoute5[1] = << -700.1176, -17.5754, 36.9578 >>
vTrafficRoute5[2] = << -727.3986, -31.1413, 36.8838 >>
vTrafficRoute5[3] = << -775.4231, -56.9022, 36.8581 >>
vTrafficRoute5[4] = << -813.0173, -76.7235, 36.8717 >>
vTrafficRoute5[5] = << -857.0458, -99.6788, 36.9241 >>
vTrafficRoute5[6] = << -911.4196, -127.5572, 36.8240 >>
fHeadingTrafficRoute5[0] = 101.9021
fHeadingTrafficRoute5[1] = 116.4117
fHeadingTrafficRoute5[2] = 116.5154
fHeadingTrafficRoute5[3] = 117.9260
fHeadingTrafficRoute5[4] = 117.6888
fHeadingTrafficRoute5[5] = 117.7467
fHeadingTrafficRoute5[6] = 115.4069
vTrafficRoute6[0] = << -808.2740, -46.2696, 36.8528 >>
vTrafficRoute6[1] = << -823.1899, -74.6149, 36.7824 >>
vTrafficRoute6[2] = << -862.0953, -95.4273, 36.8721 >>
vTrafficRoute6[3] = << -913.0912, -122.3970, 36.7913 >>
vTrafficRoute6[4] = << -959.4056, -145.7552, 36.7732 >>
vTrafficRoute6[5] = << -1020.0234, -163.9246, 36.7896 >>
vTrafficRoute6[6] = << -1071.1110, -164.6870, 36.7161 >>
fHeadingTrafficRoute6[0] = 206.0301
fHeadingTrafficRoute6[1] = 119.7110
fHeadingTrafficRoute6[2] = 117.2803
fHeadingTrafficRoute6[3] = 117.1178
fHeadingTrafficRoute6[4] = 115.7739
fHeadingTrafficRoute6[5] = 118.1293
fHeadingTrafficRoute6[6] = 66.6215
MODEL_NAMES modVeh
INT iRandom
FLOAT fZ
IF GET_IS_WAYPOINT_RECORDING_LOADED("Eps8TRAFFIC01")
IF NOT DOES_ENTITY_EXIST(vehTrafficRoute1[iTraffic])
IF NOT IS_ENTITY_IN_RANGE_COORDS(PLAYER_PED_ID(),vTrafficRoute1[iTraffic],50)
AND NOT IS_POSITION_OCCUPIED(vTrafficRoute1[iTraffic],15,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 = TAXI
ELIF iRandom = 1
modVeh = SADLER
ELIF iRandom = 2
modVeh = SCHAFTER2
ELIF iRandom = 3
modVeh = HABANERO
ELIF iRandom = 4
modVeh = SCHAFTER2
ELSE
modVeh = RUMPO
ENDIF
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "SPAWNING TRAFFIC ON 1")
#ENDIF
IF NOT GET_GROUND_Z_FOR_3D_COORD(vTrafficRoute1[iTraffic],fZ)
fZ = vTrafficRoute1[iTraffic].z
ENDIF
IF iTraffic > 4 //test
OR IS_ENTITY_IN_RANGE_COORDS(PLAYER_PED_ID(),vParkPos,150)
vehTrafficRoute1[iTraffic] = CREATE_VEHICLE(modVeh,<<vTrafficRoute1[iTraffic].x,vTrafficRoute1[iTraffic].y,fZ>>, fHeadingTrafficRoute1[iTraffic])
pedTrafficRoute1[iTraffic] = CREATE_RANDOM_PED_AS_DRIVER(vehTrafficRoute1[iTraffic])
SET_VEHICLE_ON_GROUND_PROPERLY(vehTrafficRoute1[iTraffic])
TASK_VEHICLE_FOLLOW_WAYPOINT_RECORDING(pedTrafficRoute1[iTraffic],vehTrafficRoute1[iTraffic],"Eps8TRAFFIC01",DRIVINGMODE_STOPFORCARS_STRICT,0,EWAYPOINT_START_FROM_CLOSEST_POINT| EWAYPOINT_ALLOW_STEERING_AROUND_PEDS)
ENDIF
ENDIF
ENDIF
ELSE
IF IS_ENTITY_ALIVE(vehTrafficRoute1[iTraffic])
IF IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_VEHICLE(vehTrafficRoute1[iTraffic])
IF GET_VEHICLE_WAYPOINT_PROGRESS(vehTrafficRoute1[iTraffic]) > 70
IF NOT IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),vehTrafficRoute1[iTraffic],70)
IF IS_ENTITY_OCCLUDED(vehTrafficRoute1[iTraffic])
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "CLEANING UP TRAFFIC ON 1")
#ENDIF
SAFE_DELETE_PED(pedTrafficRoute1[iTraffic])
SAFE_DELETE_VEHICLE(vehTrafficRoute1[iTraffic])
ENDIF
ENDIF
ENDIF
ELSE
IF IS_ENTITY_OCCLUDED(vehTrafficRoute1[iTraffic])
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "CLEANING UP TRAFFIC ON 1")
#ENDIF
SAFE_DELETE_PED(pedTrafficRoute1[iTraffic])
SAFE_DELETE_VEHICLE(vehTrafficRoute1[iTraffic])
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF GET_IS_WAYPOINT_RECORDING_LOADED("Eps8TRAFFIC02")
IF NOT DOES_ENTITY_EXIST(vehTrafficRoute2[iTraffic])
IF NOT IS_ENTITY_IN_RANGE_COORDS(PLAYER_PED_ID(),vTrafficRoute2[iTraffic],50)
AND NOT IS_POSITION_OCCUPIED(vTrafficRoute2[iTraffic],15,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 = TAXI
ELIF iRandom = 1
modVeh = TAXI
ELIF iRandom = 2
modVeh = SADLER
ELIF iRandom = 3
modVeh = HABANERO
ELIF iRandom = 4
modVeh = SCHAFTER2
ELSE
modVeh = RUMPO
ENDIF
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "SPAWNING TRAFFIC ON 2")
#ENDIF
IF NOT GET_GROUND_Z_FOR_3D_COORD(vTrafficRoute2[iTraffic],fZ)
fZ = vTrafficRoute2[iTraffic].z
ENDIF
vehTrafficRoute2[iTraffic] = CREATE_VEHICLE(modVeh,<<vTrafficRoute2[iTraffic].x,vTrafficRoute2[iTraffic].y,fZ>>, fHeadingTrafficRoute2[iTraffic])
pedTrafficRoute2[iTraffic] = CREATE_RANDOM_PED_AS_DRIVER(vehTrafficRoute2[iTraffic])
SET_VEHICLE_ON_GROUND_PROPERLY(vehTrafficRoute2[iTraffic])
TASK_VEHICLE_FOLLOW_WAYPOINT_RECORDING(pedTrafficRoute2[iTraffic],vehTrafficRoute2[iTraffic],"Eps8TRAFFIC02",DRIVINGMODE_STOPFORCARS_STRICT,0,EWAYPOINT_START_FROM_CLOSEST_POINT| EWAYPOINT_ALLOW_STEERING_AROUND_PEDS)
ENDIF
ENDIF
ELSE
IF IS_ENTITY_ALIVE(vehTrafficRoute2[iTraffic])
IF IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_VEHICLE(vehTrafficRoute2[iTraffic])
IF GET_VEHICLE_WAYPOINT_PROGRESS(vehTrafficRoute2[iTraffic]) > 70
IF NOT IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),vehTrafficRoute2[iTraffic],70)
IF IS_ENTITY_OCCLUDED(vehTrafficRoute2[iTraffic])
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "CLEANING UP TRAFFIC ON 2")
#ENDIF
SAFE_DELETE_PED(pedTrafficRoute2[iTraffic])
SAFE_DELETE_VEHICLE(vehTrafficRoute2[iTraffic])
ENDIF
ENDIF
ENDIF
ELSE
IF IS_ENTITY_OCCLUDED(vehTrafficRoute2[iTraffic])
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "CLEANING UP TRAFFIC ON 2")
#ENDIF
SAFE_DELETE_PED(pedTrafficRoute2[iTraffic])
SAFE_DELETE_VEHICLE(vehTrafficRoute2[iTraffic])
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF GET_IS_WAYPOINT_RECORDING_LOADED("Eps8TRAFFIC03")
IF NOT DOES_ENTITY_EXIST(vehTrafficRoute3[iTraffic])
IF NOT IS_ENTITY_IN_RANGE_COORDS(PLAYER_PED_ID(),vTrafficRoute3[iTraffic],50)
AND IS_ENTITY_IN_RANGE_COORDS(PLAYER_PED_ID(),vTrafficRoute3[iTraffic],220)
AND NOT IS_POSITION_OCCUPIED(vTrafficRoute3[iTraffic],15,FALSE,TRUE,FALSE,FALSE,FALSE)
IF NOT IS_SPHERE_VISIBLE(vTrafficRoute3[iTraffic],8)
iRandom = GET_RANDOM_INT_IN_RANGE(0,6)
IF iRandom = 0
modVeh = TAXI
ELIF iRandom = 1
modVeh = SCHAFTER2
ELIF iRandom = 2
modVeh = RUMPO
ELIF iRandom = 3
modVeh = HABANERO
ELIF iRandom = 4
modVeh = SCHAFTER2
ELSE
modVeh = RUMPO
ENDIF
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "SPAWNING TRAFFIC ON 3")
#ENDIF
IF NOT GET_GROUND_Z_FOR_3D_COORD(vTrafficRoute3[iTraffic],fZ)
fZ = vTrafficRoute3[iTraffic].z
ENDIF
vehTrafficRoute3[iTraffic] = CREATE_VEHICLE(modVeh,<<vTrafficRoute3[iTraffic].x,vTrafficRoute3[iTraffic].y,fZ>>, fHeadingTrafficRoute3[iTraffic])
pedTrafficRoute3[iTraffic] = CREATE_RANDOM_PED_AS_DRIVER(vehTrafficRoute3[iTraffic])
SET_VEHICLE_ON_GROUND_PROPERLY(vehTrafficRoute3[iTraffic])
TASK_VEHICLE_FOLLOW_WAYPOINT_RECORDING(pedTrafficRoute3[iTraffic],vehTrafficRoute3[iTraffic],"Eps8TRAFFIC03",DRIVINGMODE_STOPFORCARS_STRICT,0,EWAYPOINT_START_FROM_CLOSEST_POINT| EWAYPOINT_ALLOW_STEERING_AROUND_PEDS)
ENDIF
ENDIF
ELSE
IF IS_ENTITY_ALIVE(vehTrafficRoute3[iTraffic])
IF IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_VEHICLE(vehTrafficRoute3[iTraffic])
IF GET_VEHICLE_WAYPOINT_PROGRESS(vehTrafficRoute3[iTraffic]) > 70
IF NOT IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),vehTrafficRoute3[iTraffic],70)
IF IS_ENTITY_OCCLUDED(vehTrafficRoute3[iTraffic])
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "CLEANING UP TRAFFIC ON 3")
#ENDIF
SAFE_DELETE_PED(pedTrafficRoute3[iTraffic])
SAFE_DELETE_VEHICLE(vehTrafficRoute3[iTraffic])
ENDIF
ENDIF
ENDIF
ELSE
IF IS_ENTITY_OCCLUDED(vehTrafficRoute3[iTraffic])
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "CLEANING UP TRAFFIC ON 3")
#ENDIF
SAFE_DELETE_PED(pedTrafficRoute3[iTraffic])
SAFE_DELETE_VEHICLE(vehTrafficRoute3[iTraffic])
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF GET_IS_WAYPOINT_RECORDING_LOADED("Eps8TRAFFIC04")
IF NOT DOES_ENTITY_EXIST(vehTrafficRoute4[iTraffic])
IF NOT IS_ENTITY_IN_RANGE_COORDS(PLAYER_PED_ID(),vTrafficRoute4[iTraffic],50)
AND NOT IS_POSITION_OCCUPIED(vTrafficRoute4[iTraffic],15,FALSE,TRUE,FALSE,FALSE,FALSE)
IF NOT IS_SPHERE_VISIBLE(vTrafficRoute4[iTraffic],8)
iRandom = GET_RANDOM_INT_IN_RANGE(0,6)
IF iRandom = 0
modVeh = TAXI
ELIF iRandom = 1
modVeh = SADLER
ELIF iRandom = 2
modVeh = SADLER
ELIF iRandom = 3
modVeh = HABANERO
ELIF iRandom = 4
modVeh = SCHAFTER2
ELSE
modVeh = RUMPO
ENDIF
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "SPAWNING TRAFFIC ON 4")
#ENDIF
IF NOT GET_GROUND_Z_FOR_3D_COORD(vTrafficRoute4[iTraffic],fZ)
fZ = vTrafficRoute4[iTraffic].z
ENDIF
vehTrafficRoute4[iTraffic] = CREATE_VEHICLE(modVeh,<<vTrafficRoute4[iTraffic].x,vTrafficRoute4[iTraffic].y,fZ>>, fHeadingTrafficRoute4[iTraffic])
pedTrafficRoute4[iTraffic] = CREATE_RANDOM_PED_AS_DRIVER(vehTrafficRoute4[iTraffic])
SET_VEHICLE_ON_GROUND_PROPERLY(vehTrafficRoute4[iTraffic])
TASK_VEHICLE_FOLLOW_WAYPOINT_RECORDING(pedTrafficRoute4[iTraffic],vehTrafficRoute4[iTraffic],"Eps8TRAFFIC04",DRIVINGMODE_STOPFORCARS_STRICT,0,EWAYPOINT_START_FROM_CLOSEST_POINT| EWAYPOINT_ALLOW_STEERING_AROUND_PEDS)
ENDIF
ENDIF
ELSE
IF IS_ENTITY_ALIVE(vehTrafficRoute4[iTraffic])
IF IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_VEHICLE(vehTrafficRoute4[iTraffic])
IF GET_VEHICLE_WAYPOINT_PROGRESS(vehTrafficRoute4[iTraffic]) > 70
IF NOT IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),vehTrafficRoute4[iTraffic],70)
IF IS_ENTITY_OCCLUDED(vehTrafficRoute4[iTraffic])
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "CLEANING UP TRAFFIC ON 4")
#ENDIF
SAFE_DELETE_PED(pedTrafficRoute4[iTraffic])
SAFE_DELETE_VEHICLE(vehTrafficRoute4[iTraffic])
ENDIF
ENDIF
ENDIF
ELSE
IF IS_ENTITY_OCCLUDED(vehTrafficRoute4[iTraffic])
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "CLEANING UP TRAFFIC ON 4")
#ENDIF
SAFE_DELETE_PED(pedTrafficRoute4[iTraffic])
SAFE_DELETE_VEHICLE(vehTrafficRoute4[iTraffic])
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF GET_IS_WAYPOINT_RECORDING_LOADED("Eps8TRAFFIC05")
IF NOT DOES_ENTITY_EXIST(vehTrafficRoute5[iTraffic])
IF NOT IS_ENTITY_IN_RANGE_COORDS(PLAYER_PED_ID(),vTrafficRoute5[iTraffic],50)
AND IS_ENTITY_IN_RANGE_COORDS(PLAYER_PED_ID(),vTrafficRoute5[iTraffic],170)
AND NOT IS_POSITION_OCCUPIED(vTrafficRoute5[iTraffic],15,FALSE,TRUE,FALSE,FALSE,FALSE)
IF NOT IS_SPHERE_VISIBLE(vTrafficRoute5[iTraffic],8)
iRandom = GET_RANDOM_INT_IN_RANGE(0,6)
IF iRandom = 0
modVeh = TAXI
ELIF iRandom = 1
modVeh = SCHAFTER2
ELIF iRandom = 2
modVeh = SADLER
ELIF iRandom = 3
modVeh = HABANERO
ELIF iRandom = 4
modVeh = SCHAFTER2
ELSE
modVeh = RUMPO
ENDIF
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "SPAWNING TRAFFIC ON 5")
#ENDIF
IF NOT GET_GROUND_Z_FOR_3D_COORD(vTrafficRoute5[iTraffic],fZ)
fZ = vTrafficRoute5[iTraffic].z
ENDIF
vehTrafficRoute5[iTraffic] = CREATE_VEHICLE(modVeh,<<vTrafficRoute5[iTraffic].x,vTrafficRoute5[iTraffic].y,fZ>>, fHeadingTrafficRoute5[iTraffic])
pedTrafficRoute5[iTraffic] = CREATE_RANDOM_PED_AS_DRIVER(vehTrafficRoute5[iTraffic])
SET_VEHICLE_ON_GROUND_PROPERLY(vehTrafficRoute5[iTraffic])
TASK_VEHICLE_FOLLOW_WAYPOINT_RECORDING(pedTrafficRoute5[iTraffic],vehTrafficRoute5[iTraffic],"Eps8TRAFFIC05",DRIVINGMODE_STOPFORCARS_STRICT,0,EWAYPOINT_START_FROM_CLOSEST_POINT| EWAYPOINT_ALLOW_STEERING_AROUND_PEDS)
ENDIF
ENDIF
ELSE
IF IS_ENTITY_ALIVE(vehTrafficRoute5[iTraffic])
IF IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_VEHICLE(vehTrafficRoute5[iTraffic])
IF GET_VEHICLE_WAYPOINT_PROGRESS(vehTrafficRoute5[iTraffic]) > 40
IF NOT IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),vehTrafficRoute5[iTraffic],60)
IF IS_ENTITY_OCCLUDED(vehTrafficRoute5[iTraffic])
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "CLEANING UP TRAFFIC ON 5")
#ENDIF
SAFE_DELETE_PED(pedTrafficRoute5[iTraffic])
SAFE_DELETE_VEHICLE(vehTrafficRoute5[iTraffic])
ENDIF
ENDIF
ENDIF
ELSE
IF IS_ENTITY_OCCLUDED(vehTrafficRoute5[iTraffic])
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "CLEANING UP TRAFFIC ON 5")
#ENDIF
SAFE_DELETE_PED(pedTrafficRoute5[iTraffic])
SAFE_DELETE_VEHICLE(vehTrafficRoute5[iTraffic])
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF GET_IS_WAYPOINT_RECORDING_LOADED("Eps8TRAFFIC06")
IF NOT DOES_ENTITY_EXIST(vehTrafficRoute6[iTraffic])
IF NOT IS_ENTITY_IN_RANGE_COORDS(PLAYER_PED_ID(),vTrafficRoute6[iTraffic],50)
AND IS_ENTITY_IN_RANGE_COORDS(PLAYER_PED_ID(),vTrafficRoute6[iTraffic],170)
AND NOT IS_POSITION_OCCUPIED(vTrafficRoute6[iTraffic],15,FALSE,TRUE,FALSE,FALSE,FALSE)
IF NOT IS_SPHERE_VISIBLE(vTrafficRoute6[iTraffic],8)
iRandom = GET_RANDOM_INT_IN_RANGE(0,6)
IF iRandom = 0
modVeh = TAXI
ELIF iRandom = 1
modVeh = SADLER
ELIF iRandom = 2
modVeh = SADLER
ELIF iRandom = 3
modVeh = HABANERO
ELIF iRandom = 4
modVeh = SCHAFTER2
ELSE
modVeh = RUMPO
ENDIF
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "SPAWNING TRAFFIC ON 6")
#ENDIF
IF NOT GET_GROUND_Z_FOR_3D_COORD(vTrafficRoute6[iTraffic],fZ)
fZ = vTrafficRoute6[iTraffic].z
ENDIF
vehTrafficRoute6[iTraffic] = CREATE_VEHICLE(modVeh,<<vTrafficRoute6[iTraffic].x,vTrafficRoute6[iTraffic].y,fZ>>, fHeadingTrafficRoute6[iTraffic])
pedTrafficRoute6[iTraffic] = CREATE_RANDOM_PED_AS_DRIVER(vehTrafficRoute6[iTraffic])
SET_VEHICLE_ON_GROUND_PROPERLY(vehTrafficRoute6[iTraffic])
TASK_VEHICLE_FOLLOW_WAYPOINT_RECORDING(pedTrafficRoute6[iTraffic],vehTrafficRoute6[iTraffic],"Eps8TRAFFIC06",DRIVINGMODE_STOPFORCARS_STRICT,0,EWAYPOINT_START_FROM_CLOSEST_POINT| EWAYPOINT_ALLOW_STEERING_AROUND_PEDS)
ENDIF
ENDIF
ELSE
IF IS_ENTITY_ALIVE(vehTrafficRoute6[iTraffic])
IF IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_VEHICLE(vehTrafficRoute6[iTraffic])
IF GET_VEHICLE_WAYPOINT_PROGRESS(vehTrafficRoute6[iTraffic]) > 40
IF NOT IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),vehTrafficRoute6[iTraffic],60)
IF IS_ENTITY_OCCLUDED(vehTrafficRoute6[iTraffic])
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "CLEANING UP TRAFFIC ON 6")
#ENDIF
SAFE_DELETE_PED(pedTrafficRoute6[iTraffic])
SAFE_DELETE_VEHICLE(vehTrafficRoute6[iTraffic])
ENDIF
ENDIF
ENDIF
ELSE
IF IS_ENTITY_OCCLUDED(vehTrafficRoute6[iTraffic])
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "CLEANING UP TRAFFIC ON 6")
#ENDIF
SAFE_DELETE_PED(pedTrafficRoute6[iTraffic])
SAFE_DELETE_VEHICLE(vehTrafficRoute6[iTraffic])
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
++iTraffic
IF iTraffic > 6
iTraffic = 0
ENDIF
ENDIF
ENDPROC
PROC CleanupTraffic()
SET_MODEL_AS_NO_LONGER_NEEDED(TAXI)
//SET_MODEL_AS_NO_LONGER_NEEDED(PATRIOT)
SET_MODEL_AS_NO_LONGER_NEEDED(SADLER)
SET_MODEL_AS_NO_LONGER_NEEDED(HABANERO)
SET_MODEL_AS_NO_LONGER_NEEDED(SCHAFTER2)
SET_MODEL_AS_NO_LONGER_NEEDED(RUMPO)
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_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_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_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_PED(pedTrafficRoute3[0])
SAFE_RELEASE_PED(pedTrafficRoute3[1])
SAFE_RELEASE_PED(pedTrafficRoute3[2])
SAFE_RELEASE_PED(pedTrafficRoute3[3])
SAFE_RELEASE_PED(pedTrafficRoute3[4])
SAFE_RELEASE_PED(pedTrafficRoute3[5])
SAFE_RELEASE_PED(pedTrafficRoute3[6])
SAFE_RELEASE_VEHICLE(vehTrafficRoute3[0])
SAFE_RELEASE_VEHICLE(vehTrafficRoute3[1])
SAFE_RELEASE_VEHICLE(vehTrafficRoute3[2])
SAFE_RELEASE_VEHICLE(vehTrafficRoute3[3])
SAFE_RELEASE_VEHICLE(vehTrafficRoute3[4])
SAFE_RELEASE_VEHICLE(vehTrafficRoute3[5])
SAFE_RELEASE_VEHICLE(vehTrafficRoute3[6])
SAFE_RELEASE_PED(pedTrafficRoute4[0])
SAFE_RELEASE_PED(pedTrafficRoute4[1])
SAFE_RELEASE_PED(pedTrafficRoute4[2])
SAFE_RELEASE_PED(pedTrafficRoute4[3])
SAFE_RELEASE_PED(pedTrafficRoute4[4])
SAFE_RELEASE_PED(pedTrafficRoute4[5])
SAFE_RELEASE_PED(pedTrafficRoute4[6])
SAFE_RELEASE_VEHICLE(vehTrafficRoute4[0])
SAFE_RELEASE_VEHICLE(vehTrafficRoute4[1])
SAFE_RELEASE_VEHICLE(vehTrafficRoute4[2])
SAFE_RELEASE_VEHICLE(vehTrafficRoute4[3])
SAFE_RELEASE_VEHICLE(vehTrafficRoute4[4])
SAFE_RELEASE_VEHICLE(vehTrafficRoute4[5])
SAFE_RELEASE_VEHICLE(vehTrafficRoute4[6])
SAFE_RELEASE_PED(pedTrafficRoute5[0])
SAFE_RELEASE_PED(pedTrafficRoute5[1])
SAFE_RELEASE_PED(pedTrafficRoute5[2])
SAFE_RELEASE_PED(pedTrafficRoute5[3])
SAFE_RELEASE_PED(pedTrafficRoute5[4])
SAFE_RELEASE_PED(pedTrafficRoute5[5])
SAFE_RELEASE_PED(pedTrafficRoute5[6])
SAFE_RELEASE_VEHICLE(vehTrafficRoute5[0])
SAFE_RELEASE_VEHICLE(vehTrafficRoute5[1])
SAFE_RELEASE_VEHICLE(vehTrafficRoute5[2])
SAFE_RELEASE_VEHICLE(vehTrafficRoute5[3])
SAFE_RELEASE_VEHICLE(vehTrafficRoute5[4])
SAFE_RELEASE_VEHICLE(vehTrafficRoute5[5])
SAFE_RELEASE_VEHICLE(vehTrafficRoute5[6])
SAFE_RELEASE_PED(pedTrafficRoute6[0])
SAFE_RELEASE_PED(pedTrafficRoute6[1])
SAFE_RELEASE_PED(pedTrafficRoute6[2])
SAFE_RELEASE_PED(pedTrafficRoute6[3])
SAFE_RELEASE_PED(pedTrafficRoute6[4])
SAFE_RELEASE_PED(pedTrafficRoute6[5])
SAFE_RELEASE_PED(pedTrafficRoute6[6])
SAFE_RELEASE_VEHICLE(vehTrafficRoute6[0])
SAFE_RELEASE_VEHICLE(vehTrafficRoute6[1])
SAFE_RELEASE_VEHICLE(vehTrafficRoute6[2])
SAFE_RELEASE_VEHICLE(vehTrafficRoute6[3])
SAFE_RELEASE_VEHICLE(vehTrafficRoute6[4])
SAFE_RELEASE_VEHICLE(vehTrafficRoute6[5])
SAFE_RELEASE_VEHICLE(vehTrafficRoute6[6])
ENDPROC
/// PURPOSE: //Heli flies off
PROC PlayerGaveMoneyHeliFlyAway()
SEQUENCE_INDEX seqHeliFlyAway
SAFE_REMOVE_BLIP(blipEscort)
IF IS_PED_UNINJURED(pedEpsilonist)
CLEAR_PED_TASKS_IMMEDIATELY(pedEpsilonist)
ENDIF
IF IS_VEHICLE_OK(vehEpsilonChopper)
IF IS_PED_UNINJURED(pedPilot)
IF bCutsceneChopperTaskGiven = FALSE
SET_VEHICLE_ENGINE_ON(vehEpsilonChopper,TRUE,TRUE)
IF NOT IS_ENTITY_DEAD(PLAYER_PED_ID())
vPlayer = GET_ENTITY_COORDS(PLAYER_PED_ID())
ENDIF
iZ = ROUND(vPlayer.z + 10.0)
OPEN_SEQUENCE_TASK(seqHeliFlyAway)
TASK_HELI_MISSION(NULL,vehEpsilonChopper,NULL,NULL,<< -582.5234, -363.9155, 498.4256 >>,MISSION_GOTO,200.0,2.0,130.0071,100,30)
TASK_HELI_MISSION(NULL,vehEpsilonChopper,NULL,NULL,<< -1352.7047, -2861.1943, 498.4256 >>,MISSION_GOTO,200.0,2.0,183.7912,100,30)
CLOSE_SEQUENCE_TASK(seqHeliFlyAway)
TASK_PERFORM_SEQUENCE(pedPilot,seqHeliFlyAway)
CLEAR_SEQUENCE_TASK(seqHeliFlyAway)
SET_PED_KEEP_TASK(pedPilot,TRUE)
bCutsceneChopperTaskGiven = TRUE
ENDIF
ENDIF
ENDIF
ENDPROC
PROC DO_LOAD_HELI()
IF IS_PED_UNINJURED(PLAYER_PED_ID())
SET_PED_INCREASED_AVOIDANCE_RADIUS(PLAYER_PED_ID())
ENDIF
//VECTOR vRot
SEQUENCE_INDEX seqGuard
IF IS_PED_UNINJURED(pedEpsilonHiSecurity[5])
AND IS_ENTITY_ALIVE(vehPlayerCar)
AND IS_ENTITY_ALIVE(vehEpsilonChopper)
SWITCH eLOAD_HELI
CASE LOAD_HELI_INIT
OPEN_SEQUENCE_TASK(seqGuard)
TASK_LOOK_AT_ENTITY(NULL,PLAYER_PED_ID(),-1)
//TASK_FOLLOW_NAV_MESH_TO_COORD(NULL,<<-357.75, -87.47, 45.49>>,PEDMOVEBLENDRATIO_WALK,-1,0.25,ENAV_ACCURATE_WALKRUN_START,70.00)
//IF IS_ENTITY_ALIVE(vehPlayerCar)
// TASK_GO_TO_ENTITY(NULL,vehPlayerCar,-1,8,PEDMOVEBLENDRATIO_WALK,3)
//ENDIF
IF IS_ENTITY_ALIVE(vehPlayerCar)
TASK_FOLLOW_NAV_MESH_TO_COORD(NULL,GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(vehPlayerCar,<<0.0,-3.2,0.0>>),PEDMOVEBLENDRATIO_WALK,-1,0.4,ENAV_ACCURATE_WALKRUN_START,140.8925)
ENDIF
TASK_START_SCENARIO_IN_PLACE(NULL,"WORLD_HUMAN_GUARD_STAND",0,TRUE)
CLOSE_SEQUENCE_TASK(seqGuard)
TASK_PERFORM_SEQUENCE(pedEpsilonHiSecurity[5],seqGuard)
CLEAR_SEQUENCE_TASK(seqGuard)
eLOAD_HELI = GET_IN_HELI
//eLOAD_HELI = WALK_TO_CAR //UNCOMMENT FOR LOADING HELI SYNCED SCENE
BREAK
CASE WALK_TO_CAR
/*
IF IS_ENTITY_IN_RANGE_COORDS(pedEpsilonHiSecurity[5],GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(vehPlayerCar,<<0.0,-3.2,0.0>>),1)
AND GET_SCRIPT_TASK_STATUS(pedEpsilonHiSecurity[5],SCRIPT_TASK_FOLLOW_NAV_MESH_TO_COORD) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(pedEpsilonHiSecurity[5],SCRIPT_TASK_FOLLOW_NAV_MESH_TO_COORD) <> WAITING_TO_START_TASK
IF iBagsTakenFromCar = 0
TASK_PLAY_ANIM(pedEpsilonHiSecurity[5],"rcmepsilonism8","bag_handler_grab_walk_right",NORMAL_BLEND_IN,NORMAL_BLEND_OUT,-1,AF_TAG_SYNC_OUT | AF_TAG_SYNC_CONTINUOUS | AF_TAG_SYNC_IN)
ELSE
TASK_PLAY_ANIM(pedEpsilonHiSecurity[5],"rcmepsilonism8","bag_handler_grab_walk_right",NORMAL_BLEND_IN,NORMAL_BLEND_OUT,-1,AF_TAG_SYNC_OUT | AF_TAG_SYNC_CONTINUOUS | AF_TAG_SYNC_IN)
ENDIF
eLOAD_HELI = TAKE_BAG
ELSE
IF GET_SCRIPT_TASK_STATUS(pedEpsilonHiSecurity[5],SCRIPT_TASK_FOLLOW_NAV_MESH_TO_COORD) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(pedEpsilonHiSecurity[5],SCRIPT_TASK_FOLLOW_NAV_MESH_TO_COORD) <> WAITING_TO_START_TASK
TASK_FOLLOW_NAV_MESH_TO_COORD(pedEpsilonHiSecurity[5],GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(vehPlayerCar,<<0.0,-3.2,0.0>>),PEDMOVEBLENDRATIO_WALK,-1,0.4,ENAV_DEFAULT,GET_ENTITY_HEADING(vehPlayerCar)) //<<0.0,-2.6,0.0>>
ENDIF
ENDIF
*/
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-371.399628,-88.471542,44.658291>>, <<-378.745514,-85.821953,48.210369>>, 5.750000)
AND IS_SPHERE_VISIBLE(<<-378.46, -88.44, 45.66>>,2)
AND NOT IS_ENTITY_ON_SCREEN(vehPlayerCar)
AND IS_PED_FACING_PED(PLAYER_PED_ID(),pedEpsilonist,120)
issLoadHeli = CREATE_SYNCHRONIZED_SCENE(<<-356.91, -89.03, 45.875>>,<<0.0, 0.0, -120>>) //336.09 //z 45.75
//vRot = GET_ENTITY_ROTATION(vehEpsilonChopper)
//issLoadHeli = CREATE_SYNCHRONIZED_SCENE(GET_ENTITY_COORDS(vehEpsilonChopper),<<vRot.x,vRot.y,vRot.z - 120>>)
TASK_SYNCHRONIZED_SCENE(pedEpsilonHiSecurity[5], issLoadHeli, "rcmepsilonism8", "grab_all_4_bags_carrier", SLOW_BLEND_IN, REALLY_SLOW_BLEND_OUT)
PLAY_SYNCHRONIZED_ENTITY_ANIM(vehPlayerCar, issLoadHeli, "grab_all_4_bags_car","rcmepsilonism8", INSTANT_BLEND_IN, -1.5)
//SET_SYNCHRONIZED_SCENE_RATE(issLoadHeli,0)
eLOAD_HELI = TAKE_BAG
DETACH_ENTITY(objCashBag[0])
DETACH_ENTITY(objCashBag[1])
DETACH_ENTITY(objCashBag[2])
DETACH_ENTITY(objCashBag[3])
PLAY_SYNCHRONIZED_ENTITY_ANIM(objCashBag[0],issLoadHeli,"base_bag_1","rcmepsilonism8",INSTANT_BLEND_IN,INSTANT_BLEND_OUT)
PLAY_SYNCHRONIZED_ENTITY_ANIM(objCashBag[1],issLoadHeli,"base_bag_2","rcmepsilonism8",INSTANT_BLEND_IN,INSTANT_BLEND_OUT)
PLAY_SYNCHRONIZED_ENTITY_ANIM(objCashBag[2],issLoadHeli,"base_bag_3","rcmepsilonism8",INSTANT_BLEND_IN,INSTANT_BLEND_OUT)
PLAY_SYNCHRONIZED_ENTITY_ANIM(objCashBag[3],issLoadHeli,"base_bag_4","rcmepsilonism8",INSTANT_BLEND_IN,INSTANT_BLEND_OUT)
SET_SYNCHRONIZED_SCENE_PHASE(issLoadHeli,0.098)
/*
SET_ENTITY_COORDS(objCashBag[0],<<-364.871, -84.4189, 45.3012>>)
SET_ENTITY_ROTATION(objCashBag[0],<<-14.2576, 65.8288, 162.947>>)
FREEZE_ENTITY_POSITION(objCashBag[0],TRUE)
SET_ENTITY_COORDS(objCashBag[1],<<-364.895, -84.1603, 45.3983>>)
SET_ENTITY_ROTATION(objCashBag[1],<<-22.5393, 67.4194, 171.118>>)
FREEZE_ENTITY_POSITION(objCashBag[1],TRUE)
SET_ENTITY_COORDS(objCashBag[2],<<-364.748, -83.8787, 45.4493 >>)
SET_ENTITY_ROTATION(objCashBag[2],<<-41.7808, 62.5704, -173.08>>)
FREEZE_ENTITY_POSITION(objCashBag[2],TRUE)
SET_ENTITY_COORDS(objCashBag[3],<<-364.508, -83.818, 45.2875>>)
SET_ENTITY_ROTATION(objCashBag[3],<<-9.77984, 56.2112, 153.408>>)
FREEZE_ENTITY_POSITION(objCashBag[3],TRUE)
*/
//ATTACH_ENTITY_TO_ENTITY(objCashBag[0],vehPlayerCar,-1,GET_OFFSET_FROM_ENTITY_GIVEN_WORLD_COORDS(vehPlayerCar,GET_ENTITY_COORDS(objCashBag[0])),GET_ENTITY_ROTATION(objCashBag[0]))
//ATTACH_ENTITY_TO_ENTITY(objCashBag[1],vehPlayerCar,-1,GET_OFFSET_FROM_ENTITY_GIVEN_WORLD_COORDS(vehPlayerCar,GET_ENTITY_COORDS(objCashBag[1])),GET_ENTITY_ROTATION(objCashBag[1]))
//ATTACH_ENTITY_TO_ENTITY(objCashBag[2],vehPlayerCar,-1,GET_OFFSET_FROM_ENTITY_GIVEN_WORLD_COORDS(vehPlayerCar,GET_ENTITY_COORDS(objCashBag[2])),GET_ENTITY_ROTATION(objCashBag[2]))
//ATTACH_ENTITY_TO_ENTITY(objCashBag[3],vehPlayerCar,-1,GET_OFFSET_FROM_ENTITY_GIVEN_WORLD_COORDS(vehPlayerCar,GET_ENTITY_COORDS(objCashBag[3])),GET_ENTITY_ROTATION(objCashBag[3]))
//TASK_FOLLOW_NAV_MESH_TO_COORD(pedEpsilonHiSecurity[5],GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(vehPlayerCar,<<0.0,-3.2,0.0>>),PEDMOVEBLENDRATIO_WALK,-1,0.4,ENAV_DEFAULT,GET_ENTITY_HEADING(vehPlayerCar)) //<<0.0,-2.6,0.0>>
//ATTACH_ENTITY_TO_ENTITY(objCashBag[0],vehPlayerCar,-1,<<0,0,0>>,GET_ENTITY_ROTATION(objCashBag[0]),FALSE,FALSE,FALSE,FALSE,EULER_YXZ,FALSE)
//ATTACH_ENTITY_TO_ENTITY(objCashBag[1],vehPlayerCar,-1,<<0,0,0>>,GET_ENTITY_ROTATION(objCashBag[0]),FALSE,FALSE,FALSE,FALSE,EULER_YXZ,FALSE)
//ATTACH_ENTITY_TO_ENTITY(objCashBag[2],vehPlayerCar,-1,<<0,0,0>>,GET_ENTITY_ROTATION(objCashBag[0]),FALSE,FALSE,FALSE,FALSE,EULER_YXZ,FALSE)
//ATTACH_ENTITY_TO_ENTITY(objCashBag[3],vehPlayerCar,-1,<<0,0,0>>,GET_ENTITY_ROTATION(objCashBag[0]),FALSE,FALSE,FALSE,FALSE,EULER_YXZ,FALSE)
//ATTACH_ENTITY_TO_ENTITY(objCashBag[0],vehPlayerCar,-1,GET_OFFSET_FROM_ENTITY_GIVEN_WORLD_COORDS(vehPlayerCar,GET_ENTITY_COORDS(objCashBag[0])),GET_ENTITY_ROTATION(objCashBag[0]))
//ATTACH_ENTITY_TO_ENTITY(objCashBag[1],vehPlayerCar,-1,GET_OFFSET_FROM_ENTITY_GIVEN_WORLD_COORDS(vehPlayerCar,GET_ENTITY_COORDS(objCashBag[1])),GET_ENTITY_ROTATION(objCashBag[1]))
//ATTACH_ENTITY_TO_ENTITY(objCashBag[2],vehPlayerCar,-1,GET_OFFSET_FROM_ENTITY_GIVEN_WORLD_COORDS(vehPlayerCar,GET_ENTITY_COORDS(objCashBag[2])),GET_ENTITY_ROTATION(objCashBag[2]))
//ATTACH_ENTITY_TO_ENTITY(objCashBag[3],vehPlayerCar,-1,GET_OFFSET_FROM_ENTITY_GIVEN_WORLD_COORDS(vehPlayerCar,GET_ENTITY_COORDS(objCashBag[3])),GET_ENTITY_ROTATION(objCashBag[3]))
//ATTACH_ENTITY_TO_ENTITY(objCashBag[0],vehPlayerCar,-1,GET_OFFSET_FROM_ENTITY_GIVEN_WORLD_COORDS(vehPlayerCar,GET_ENTITY_COORDS(objCashBag[0])),<<0,0,0>>)
//ATTACH_ENTITY_TO_ENTITY(objCashBag[1],vehPlayerCar,-1,GET_OFFSET_FROM_ENTITY_GIVEN_WORLD_COORDS(vehPlayerCar,GET_ENTITY_COORDS(objCashBag[1])),<<0,0,0>>)
//ATTACH_ENTITY_TO_ENTITY(objCashBag[2],vehPlayerCar,-1,GET_OFFSET_FROM_ENTITY_GIVEN_WORLD_COORDS(vehPlayerCar,GET_ENTITY_COORDS(objCashBag[2])),<<0,0,0>>)
//ATTACH_ENTITY_TO_ENTITY(objCashBag[3],vehPlayerCar,-1,GET_OFFSET_FROM_ENTITY_GIVEN_WORLD_COORDS(vehPlayerCar,GET_ENTITY_COORDS(objCashBag[3])),<<0,0,0>>)
ENDIF
BREAK
CASE TAKE_BAG
IF IS_SYNCHRONIZED_SCENE_RUNNING(issLoadHeli)
//0.126 pickup bag 1
//0.237 drop off bag 1
//0.347 pickup bag 2
//0.455 drop off bag 2
//0.563 pickup bag 3
//0.678 drop off bag 3
//0.786 pick up bag 4
//0.901 drop off bag 4
IF GET_SYNCHRONIZED_SCENE_PHASE(issLoadHeli) >= 0.126
AND GET_SYNCHRONIZED_SCENE_PHASE(issLoadHeli) < 0.237
IF NOT IS_ENTITY_ATTACHED_TO_ENTITY(objCashBag[0],pedEpsilonHiSecurity[5])
ATTACH_ENTITY_TO_ENTITY(objCashBag[0],pedEpsilonHiSecurity[5],GET_PED_BONE_INDEX(pedEpsilonHiSecurity[5],BONETAG_PH_R_HAND),<< 0.25, 0.075, -0.3 >>,<< 50, 50, -135 >>) //<<0.1,-0.35,-0.35>>
FREEZE_ENTITY_POSITION(objCashBag[0],FALSE)
PRINTVECTOR(GET_ENTITY_COORDS(objCashBag[0]))
PRINTVECTOR(GET_ENTITY_ROTATION(objCashBag[0]))
PRINTNL()
ELSE
/*
SET_SYNCHRONIZED_SCENE_RATE(issLoadHeli,0.025)
DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_ATTACK)
DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_ATTACK2)
DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_MELEE_ATTACK_ALTERNATE)
DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_MELEE_ATTACK_HEAVY)
DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_MELEE_ATTACK_LIGHT)
DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_MELEE_ATTACK1)
DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_MELEE_ATTACK2)
DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_TALK)
DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_TALK)
IF IS_CONTROL_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_LT)
IF IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_LEFT)
fy = fy + 0.025
ENDIF
IF IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_RIGHT)
fy = fy - 0.025
ENDIF
DETACH_ENTITY(objCashBag[0])
ATTACH_ENTITY_TO_ENTITY(objCashBag[0],pedEpsilonHiSecurity[5],GET_PED_BONE_INDEX(pedEpsilonHiSecurity[5],BONETAG_PH_R_HAND),<<fy,fx,fZ2>>,<< 50, 50, -135 >>)
PRINTVECTOR(<<fy,fx,fZ2>>)
PRINTNL()
ENDIF
IF IS_CONTROL_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_RT)
IF IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_LEFT)
fx = fx + 0.025
ENDIF
IF IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_RIGHT)
fx = fx - 0.025
ENDIF
DETACH_ENTITY(objCashBag[0])
ATTACH_ENTITY_TO_ENTITY(objCashBag[0],pedEpsilonHiSecurity[5],GET_PED_BONE_INDEX(pedEpsilonHiSecurity[5],BONETAG_PH_R_HAND),<<fy,fx,fZ2>>,<< 50, 50, -135 >>)
PRINTVECTOR(<<fy,fx,fZ2>>)
PRINTNL()
ENDIF
IF NOT IS_CONTROL_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_LT)
AND NOT IS_CONTROL_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_RT)
IF IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_LEFT)
fz2 = fz2 + 0.025
ENDIF
IF IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_RIGHT)
fz2 = fz2 - 0.025
ENDIF
DETACH_ENTITY(objCashBag[0])
ATTACH_ENTITY_TO_ENTITY(objCashBag[0],pedEpsilonHiSecurity[5],GET_PED_BONE_INDEX(pedEpsilonHiSecurity[5],BONETAG_PH_R_HAND),<<fy,fx,fZ2>>,<< 50, 50, -135 >>)
PRINTVECTOR(<<fy,fx,fZ2>>)
PRINTNL()
ENDIF
*/
ENDIF
ELSE
IF DOES_ENTITY_EXIST(objCashBag[0])
IF GET_SYNCHRONIZED_SCENE_PHASE(issLoadHeli) >= 0.237
DETACH_ENTITY(objCashBag[0])
DELETE_OBJECT(objCashBag[0])
ENDIF
ENDIF
ENDIF
IF GET_SYNCHRONIZED_SCENE_PHASE(issLoadHeli) >= 0.347
AND GET_SYNCHRONIZED_SCENE_PHASE(issLoadHeli) < 0.455
IF NOT IS_ENTITY_ATTACHED_TO_ENTITY(objCashBag[1],pedEpsilonHiSecurity[5])
ATTACH_ENTITY_TO_ENTITY(objCashBag[1],pedEpsilonHiSecurity[5],GET_PED_BONE_INDEX(pedEpsilonHiSecurity[5],BONETAG_PH_R_HAND),<< 0.25, 0.075, -0.3 >>,<< 50, 50, -135 >>)
FREEZE_ENTITY_POSITION(objCashBag[1],FALSE)
PRINTVECTOR(GET_ENTITY_COORDS(objCashBag[1]))
PRINTVECTOR(GET_ENTITY_ROTATION(objCashBag[1]))
PRINTNL()
ENDIF
ELSE
IF DOES_ENTITY_EXIST(objCashBag[1])
IF GET_SYNCHRONIZED_SCENE_PHASE(issLoadHeli) >= 0.455
DETACH_ENTITY(objCashBag[1])
DELETE_OBJECT(objCashBag[1])
ENDIF
ENDIF
ENDIF
IF GET_SYNCHRONIZED_SCENE_PHASE(issLoadHeli) >= 0.563
AND GET_SYNCHRONIZED_SCENE_PHASE(issLoadHeli) < 0.678
IF NOT IS_ENTITY_ATTACHED_TO_ENTITY(objCashBag[2],pedEpsilonHiSecurity[5])
ATTACH_ENTITY_TO_ENTITY(objCashBag[2],pedEpsilonHiSecurity[5],GET_PED_BONE_INDEX(pedEpsilonHiSecurity[5],BONETAG_PH_R_HAND),<< 0.25, 0.075, -0.3 >>,<< 50, 50, -135 >>)
FREEZE_ENTITY_POSITION(objCashBag[2],FALSE)
PRINTVECTOR(GET_ENTITY_COORDS(objCashBag[2]))
PRINTVECTOR(GET_ENTITY_ROTATION(objCashBag[2]))
PRINTNL()
ENDIF
ELSE
IF DOES_ENTITY_EXIST(objCashBag[2])
IF GET_SYNCHRONIZED_SCENE_PHASE(issLoadHeli) >= 0.678
DETACH_ENTITY(objCashBag[2])
DELETE_OBJECT(objCashBag[2])
ENDIF
ENDIF
ENDIF
IF GET_SYNCHRONIZED_SCENE_PHASE(issLoadHeli) >= 0.789
AND GET_SYNCHRONIZED_SCENE_PHASE(issLoadHeli) < 0.901
IF NOT IS_ENTITY_ATTACHED_TO_ENTITY(objCashBag[3],pedEpsilonHiSecurity[5])
ATTACH_ENTITY_TO_ENTITY(objCashBag[3],pedEpsilonHiSecurity[5],GET_PED_BONE_INDEX(pedEpsilonHiSecurity[5],BONETAG_PH_R_HAND),<< 0.25, 0.075, -0.3 >>,<< 50, 50, -135 >>)
FREEZE_ENTITY_POSITION(objCashBag[3],FALSE)
bNoCashLeftInCar = TRUE
PRINTVECTOR(GET_ENTITY_COORDS(objCashBag[3]))
PRINTVECTOR(GET_ENTITY_ROTATION(objCashBag[3]))
PRINTNL()
ENDIF
ELSE
IF DOES_ENTITY_EXIST(objCashBag[3])
IF GET_SYNCHRONIZED_SCENE_PHASE(issLoadHeli) >= 0.901
//DETACH_ENTITY(objCashBag[3])
//DELETE_OBJECT(objCashBag[3])
ENDIF
ENDIF
ENDIF
/*
IF GET_SYNCHRONIZED_SCENE_PHASE(issLoadHeli) >= 0.126
AND GET_SYNCHRONIZED_SCENE_PHASE(issLoadHeli) < 0.237
IF NOT IS_ENTITY_ATTACHED_TO_ENTITY(objCashBag[0],pedEpsilonHiSecurity[5])
ATTACH_ENTITY_TO_ENTITY(objCashBag[0],pedEpsilonHiSecurity[5],GET_PED_BONE_INDEX(pedEpsilonHiSecurity[5],BONETAG_PH_R_HAND),<<0.0,0.0,0.0>>,<<0.0,0.0,0.0>>)
ENDIF
ELSE
IF GET_SYNCHRONIZED_SCENE_PHASE(issLoadHeli) >= 0.237
DETACH_ENTITY(objCashBag[0])
ENDIF
ENDIF
*/
IF GET_SYNCHRONIZED_SCENE_PHASE(issLoadHeli) >= 0.903
IF DOES_ENTITY_EXIST(objCashBag[3])
DETACH_ENTITY(objCashBag[3])
DELETE_OBJECT(objCashBag[3])
ENDIF
CLEAR_PED_TASKS(pedEpsilonHiSecurity[5])
SET_PED_KEEP_TASK(pedEpsilonHiSecurity[5],TRUE)
TASK_ENTER_VEHICLE(pedEpsilonHiSecurity[5],vehEpsilonChopper,DEFAULT_TIME_BEFORE_WARP,VS_BACK_LEFT,PEDMOVEBLENDRATIO_WALK)
iTimerSecurityGettingOnChopper = GET_GAME_TIMER()
bGuardGettingOnHeli = TRUE
eLOAD_HELI = GET_IN_HELI
ENDIF
ENDIF
/*
//IF iBagsTakenFromCar = 0
IF IS_ENTITY_PLAYING_ANIM(pedEpsilonHiSecurity[5],"rcmepsilonism8","bag_handler_grab_walk_right")
AND GET_ENTITY_ANIM_CURRENT_TIME(pedEpsilonHiSecurity[5],"rcmepsilonism8","bag_handler_grab_walk_right") > 0.24
IF bBootOpen = FALSE
SET_VEHICLE_DOOR_OPEN(vehPlayerCar,SC_DOOR_BOOT)
SET_VEHICLE_DOORS_LOCKED(vehPlayerCar,VEHICLELOCK_UNLOCKED)
bBootOpen = TRUE
ENDIF
ENDIF
IF NOT IS_ENTITY_ATTACHED_TO_ENTITY(objCashBag[iBagsTakenFromCar],pedEpsilonHiSecurity[5])
DETACH_ENTITY(objCashBag[iBagsTakenFromCar])
//ATTACH_ENTITY_TO_ENTITY(objCashBag[iBagsTakenFromCar],pedEpsilonHiSecurity[5],GET_PED_BONE_INDEX(pedEpsilonHiSecurity[5],BONETAG_PH_R_HAND),<<0.1,-0.35,-0.35>>,<<0.0,0.0,0.0>>)
ATTACH_ENTITY_TO_ENTITY(objCashBag[iBagsTakenFromCar],pedEpsilonHiSecurity[5],GET_PED_BONE_INDEX(pedEpsilonHiSecurity[5],BONETAG_PH_R_HAND),<<0.0,0.0,0.0>>,<<0.0,0.0,0.0>>)
//SET_ENTITY_DYNAMIC(objCashBag[iBagsTakenFromCar], TRUE)
//SET_PED_WEAPON_MOVEMENT_CLIPSET(pedEpsilonHiSecurity[5],"move_ped_wpn_jerrycan_generic")
SET_PED_ALTERNATE_MOVEMENT_ANIM(pedEpsilonHiSecurity[5],AAT_WALK,"rcmepsilonism8","bag_handler_walk",INSTANT_BLEND_IN)
SET_PED_ALTERNATE_MOVEMENT_ANIM(pedEpsilonHiSecurity[5],AAT_IDLE,"rcmepsilonism8","bag_handler_idle",INSTANT_BLEND_IN)
ENDIF
IF NOT IS_ENTITY_PLAYING_ANIM(pedEpsilonHiSecurity[5],"rcmepsilonism8","bag_handler_grab_walk_right")
AND NOT IS_ENTITY_PLAYING_ANIM(pedEpsilonHiSecurity[5],"rcmepsilonism8","bag_handler_grab_walk_left")
AND NOT IS_ENTITY_PLAYING_ANIM(pedEpsilonHiSecurity[5],"rcmepsilonism8","bag_handler_close_trunk_walk_left")
AND NOT IS_ENTITY_PLAYING_ANIM(pedEpsilonHiSecurity[5],"rcmepsilonism8","bag_handler_close_trunk_walk_right")
//IF GET_ENTITY_ANIM_CURRENT_TIME(pedEpsilonHiSecurity[5],"rcmepsilonism8","bag_handler_grab_walk_right") > 0.7
//OR GET_ENTITY_ANIM_CURRENT_TIME(pedEpsilonHiSecurity[5],"rcmepsilonism8","bag_handler_grab_walk_left") > 0.7
//OR GET_ENTITY_ANIM_CURRENT_TIME(pedEpsilonHiSecurity[5],"rcmepsilonism8","bag_handler_close_trunk_walk_left") > 0.7
//OR GET_ENTITY_ANIM_CURRENT_TIME(pedEpsilonHiSecurity[5],"rcmepsilonism8","bag_handler_close_trunk_walk_right") > 0.7
++iBagsTakenFromCar
IF iBagsTakenFromCar = iNumberOfMoneyBags
bNoCashLeftInCar = TRUE
IF bBootOpen = TRUE
SET_VEHICLE_DOOR_SHUT(vehPlayerCar,SC_DOOR_BOOT,FALSE)
SET_VEHICLE_DOORS_LOCKED(vehPlayerCar,VEHICLELOCK_UNLOCKED)
bBootOpen = FALSE
ENDIF
ENDIF
TASK_PLAY_ANIM(pedEpsilonHiSecurity[5],"rcmepsilonism8","bag_handler_walk",INSTANT_BLEND_IN,INSTANT_BLEND_OUT, -1, AF_UPPERBODY | AF_LOOPING | AF_SECONDARY | AF_TAG_SYNC_CONTINUOUS)
TASK_FOLLOW_NAV_MESH_TO_COORD(pedEpsilonHiSecurity[5],GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(vehEpsilonChopper,<<-1.5,0,0>>),PEDMOVEBLENDRATIO_WALK,-1,0.4,ENAV_DEFAULT,GET_ENTITY_HEADING(vehEpsilonChopper) - 90)
eLOAD_HELI = WALK_TO_HELI
ENDIF
*/
BREAK
CASE WALK_TO_HELI
IF IS_ENTITY_IN_RANGE_COORDS(pedEpsilonHiSecurity[5],GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(vehEpsilonChopper,<<-1.5,0,0>>),0.5)
AND GET_SCRIPT_TASK_STATUS(pedEpsilonHiSecurity[5],SCRIPT_TASK_FOLLOW_NAV_MESH_TO_COORD) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(pedEpsilonHiSecurity[5],SCRIPT_TASK_FOLLOW_NAV_MESH_TO_COORD) <> WAITING_TO_START_TASK
STOP_ANIM_TASK(pedEpsilonHiSecurity[5],"rcmepsilonism8","bag_handler_walk")
TASK_PLAY_ANIM(pedEpsilonHiSecurity[5],"rcmepsilonism8","bag_handler_load_walk_away_left",NORMAL_BLEND_IN,NORMAL_BLEND_OUT,-1,AF_TAG_SYNC_OUT | AF_TAG_SYNC_CONTINUOUS | AF_TAG_SYNC_IN | AF_USE_MOVER_EXTRACTION | AF_REORIENT_WHEN_FINISHED | AF_REPOSITION_WHEN_FINISHED)
eLOAD_HELI = DROP_OFF_BAG
ELSE
IF GET_SCRIPT_TASK_STATUS(pedEpsilonHiSecurity[5],SCRIPT_TASK_FOLLOW_NAV_MESH_TO_COORD) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(pedEpsilonHiSecurity[5],SCRIPT_TASK_FOLLOW_NAV_MESH_TO_COORD) <> WAITING_TO_START_TASK
TASK_FOLLOW_NAV_MESH_TO_COORD(pedEpsilonHiSecurity[5],GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(vehEpsilonChopper,<<-1.5,0,0>>),PEDMOVEBLENDRATIO_WALK,-1,0.4,ENAV_DEFAULT,GET_ENTITY_HEADING(vehEpsilonChopper) - 90)
ENDIF
ENDIF
BREAK
CASE DROP_OFF_BAG
IF IS_ENTITY_PLAYING_ANIM(pedEpsilonHiSecurity[5],"rcmepsilonism8","bag_handler_load_walk_away_left")
AND GET_ENTITY_ANIM_CURRENT_TIME(pedEpsilonHiSecurity[5],"rcmepsilonism8","bag_handler_load_walk_away_left") > 0.5
DETACH_ENTITY(objCashBag[iBagsPutInHeli])
ENDIF
IF NOT IS_ENTITY_PLAYING_ANIM(pedEpsilonHiSecurity[5],"rcmepsilonism8","bag_handler_load_walk_away_left")
OR GET_ENTITY_ANIM_CURRENT_TIME(pedEpsilonHiSecurity[5],"rcmepsilonism8","bag_handler_load_walk_away_left") > 0.8
//DETACH_ENTITY(objCashBag[iBagsPutInHeli])
SAFE_DELETE_OBJECT(objCashBag[iBagsPutInHeli])
//RESET_PED_WEAPON_MOVEMENT_CLIPSET(pedEpsilonHiSecurity[5])
CLEAR_PED_ALTERNATE_MOVEMENT_ANIM(pedEpsilonHiSecurity[5],AAT_WALK,INSTANT_BLEND_OUT)
CLEAR_PED_ALTERNATE_MOVEMENT_ANIM(pedEpsilonHiSecurity[5],AAT_IDLE,INSTANT_BLEND_OUT)
++iBagsPutInHeli
IF iBagsPutInHeli = iNumberOfMoneyBags
CLEAR_PED_TASKS(pedEpsilonHiSecurity[5])
SET_PED_KEEP_TASK(pedEpsilonHiSecurity[5],TRUE)
TASK_ENTER_VEHICLE(pedEpsilonHiSecurity[5],vehEpsilonChopper,DEFAULT_TIME_BEFORE_WARP,VS_BACK_LEFT,PEDMOVEBLENDRATIO_WALK)
iTimerSecurityGettingOnChopper = GET_GAME_TIMER()
bGuardGettingOnHeli = TRUE
eLOAD_HELI = GET_IN_HELI
ELSE
TASK_FOLLOW_NAV_MESH_TO_COORD(pedEpsilonHiSecurity[5],GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(vehPlayerCar,<<0.0,-3.2,0.0>>),PEDMOVEBLENDRATIO_WALK,-1,0.3,ENAV_DEFAULT,GET_ENTITY_HEADING(vehPlayerCar))
eLOAD_HELI = WALK_TO_CAR
ENDIF
ENDIF
BREAK
CASE GET_IN_HELI
BREAK
ENDSWITCH
ENDIF
/*
OPEN_SEQUENCE_TASK(seqLoadChopper1)
TASK_LEAVE_ANY_VEHICLE(NULL)
TASK_FOLLOW_NAV_MESH_TO_COORD(NULL,<< -354.5543, -85.2916, 44.6475 >>,PEDMOVEBLENDRATIO_WALK,-1,1.0,ENAV_NO_STOPPING)
TASK_FOLLOW_NAV_MESH_TO_COORD(NULL,GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(vehPlayerCar,<<0.0,-2.15,0.0>>),PEDMOVEBLENDRATIO_WALK,-1,0.3)
CLOSE_SEQUENCE_TASK(seqLoadChopper1)
OPEN_SEQUENCE_TASK(seqLoadChopper2)
TASK_FOLLOW_NAV_MESH_TO_COORD(NULL,GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(vehPlayerCar,<<0.0,-2.15,0.0>>),PEDMOVEBLENDRATIO_WALK,-1,0.3)
TASK_TURN_PED_TO_FACE_ENTITY(NULL,vehPlayerCar,1200)
//TASK_FOLLOW_NAV_MESH_TO_COORD(NULL,<< -358.1744, -88.4951, 44.5940 >>,PEDMOVEBLENDRATIO_WALK,DEFAULT_TIME_BEFORE_WARP,0.3)
TASK_FOLLOW_NAV_MESH_TO_COORD(NULL,GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(vehEpsilonChopper,<<-1.5,0,0>>),PEDMOVEBLENDRATIO_WALK,-1,0.3)
TASK_TURN_PED_TO_FACE_ENTITY(NULL,vehEpsilonChopper,1200)
SET_SEQUENCE_TO_REPEAT(seqLoadChopper2,REPEAT_FOREVER)
CLOSE_SEQUENCE_TASK(seqLoadChopper2)
OPEN_SEQUENCE_TASK(seqGoToPlayerFacePlayer)
TASK_GO_TO_ENTITY(NULL,PLAYER_PED_ID(),-1,6.1,PEDMOVEBLENDRATIO_WALK)
TASK_TURN_PED_TO_FACE_ENTITY(NULL,PLAYER_PED_ID(),-1)
CLOSE_SEQUENCE_TASK(seqGoToPlayerFacePlayer)
TASK_PERFORM_SEQUENCE(pedEpsilonist,seqGoToPlayerFacePlayer)
CLEAR_SEQUENCE_TASK(seqGoToPlayerFacePlayer)
IF iLoadChopperSeqSwitch = 2
IF IS_PED_UNINJURED(pedEpsilonHiSecurity[5])
IF GET_SCRIPT_TASK_STATUS(pedEpsilonHiSecurity[5],SCRIPT_TASK_PERFORM_SEQUENCE) = PERFORMING_TASK
IF GET_SEQUENCE_PROGRESS(pedEpsilonHiSecurity[5]) = 1
IF bNoCashLeftInCar = FALSE
IF bBootOpen = FALSE
SET_VEHICLE_DOOR_OPEN(vehPlayerCar,SC_DOOR_BOOT)
SET_VEHICLE_DOORS_LOCKED(vehPlayerCar,VEHICLELOCK_UNLOCKED)
bBootOpen = TRUE
ENDIF
ENDIF
ELIF GET_SEQUENCE_PROGRESS(pedEpsilonHiSecurity[5]) = 2
IF NOT IS_ENTITY_ATTACHED_TO_ENTITY(objCashBag[i2],pedEpsilonHiSecurity[5])
DETACH_ENTITY(objCashBag[i2])
ATTACH_ENTITY_TO_ENTITY(objCashBag[i2],pedEpsilonHiSecurity[5],GET_PED_BONE_INDEX(pedEpsilonHiSecurity[5],BONETAG_PH_R_HAND),<<0.1,-0.35,-0.35>>,<<0.0,0.0,0.0>>)
SET_PED_WEAPON_MOVEMENT_CLIPSET(pedEpsilonHiSecurity[5],"move_ped_wpn_jerrycan_generic")
ENDIF
//SET_PED_ALTERNATE_MOVEMENT_ANIM(pedEpsilonHiSecurity[5],AAT_WALK,"move_ped_wpn_jerrycan_generic","walk")
//SET_PED_ALTERNATE_MOVEMENT_ANIM(pedEpsilonHiSecurity[5],AAT_IDLE,"move_ped_wpn_jerrycan_generic","idle")
//SET_PED_ALTERNATE_MOVEMENT_ANIM(pedEpsilonHiSecurity[5],AAT_RUN,"move_ped_wpn_jerrycan_generic","run")
bHeliLoadSwitch[i2] = FALSE
IF i2 = (iNumberOfMoneyBags - 1)
bNoCashLeftInCar = TRUE
IF bBootOpen = TRUE
SET_VEHICLE_DOOR_SHUT(vehPlayerCar,SC_DOOR_BOOT,FALSE)
SET_VEHICLE_DOORS_LOCKED(vehPlayerCar,VEHICLELOCK_UNLOCKED)
bBootOpen = FALSE
ENDIF
ENDIF
ELIF GET_SEQUENCE_PROGRESS(pedEpsilonHiSecurity[5]) = 3
IF bHeliLoadSwitch[i2] = FALSE
IF i2 <> (iNumberOfMoneyBags - 1)
SAFE_DELETE_OBJECT(objCashBag[i2])
RESET_PED_WEAPON_MOVEMENT_CLIPSET(pedEpsilonHiSecurity[5])
//CLEAR_PED_ALTERNATE_MOVEMENT_ANIM(pedEpsilonHiSecurity[5],AAT_WALK)
//CLEAR_PED_ALTERNATE_MOVEMENT_ANIM(pedEpsilonHiSecurity[5],AAT_IDLE)
//CLEAR_PED_ALTERNATE_MOVEMENT_ANIM(pedEpsilonHiSecurity[5],AAT_RUN)
ENDIF
++i2
bHeliLoadSwitch[i2] = TRUE
IF i2 > (iNumberOfMoneyBags - 1)
IF bGuardGettingOnHeli = FALSE
CLEAR_PED_TASKS(pedEpsilonHiSecurity[5])
CLEAR_SEQUENCE_TASK(seqLoadChopper1)
CLEAR_SEQUENCE_TASK(seqLoadChopper2)
SET_PED_KEEP_TASK(pedEpsilonHiSecurity[5],TRUE)
TASK_ENTER_VEHICLE(pedEpsilonHiSecurity[5],vehEpsilonChopper,DEFAULT_TIME_BEFORE_WARP,VS_BACK_LEFT,PEDMOVEBLENDRATIO_WALK)
iTimerSecurityGettingOnChopper = GET_GAME_TIMER()
bGuardGettingOnHeli = TRUE
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
*/
ENDPROC
/// PURPOSE: //Respawn/Init Michael's car and attach cash bags
PROC InitPlayerCar()
IF NOT DOES_ENTITY_EXIST(vehPlayerCar)
vehPlayerCar = CREATE_VEHICLE(TAILGATER,vPosPlayerCar,fHeadingPlayerCar)
SET_VEHICLE_AS_RESTRICTED(vehPlayerCar,0)
//SET_VEHICLE_COLOUR_COMBINATION(vehPlayerCar,5)
SET_VEHICLE_COLOURS(vehPlayerCar,iCol1,iCol1)
SET_VEHICLE_EXTRA_COLOURS(vehPlayerCar,0,0)
//SET_VEHICLE_CUSTOM_SECONDARY_COLOUR(vehPlayerCar,204, 255, 255 )
SET_VEHICLE_NUMBER_PLATE_TEXT_INDEX(vehPlayerCar, 0)
SET_VEHICLE_NUMBER_PLATE_TEXT(vehPlayerCar,"K1FFL0M")
ENDIF
IF IS_VEHICLE_OK(vehPlayerCar)
iPlayerCarHP = GET_ENTITY_HEALTH(vehPlayerCar)
fPlayerCarPetrolTankHP = GET_VEHICLE_PETROL_TANK_HEALTH(vehPlayerCar)
fPlayerCarEngineHP = GET_VEHICLE_ENGINE_HEALTH(vehPlayerCar)
SET_ENTITY_HEALTH(vehPlayerCar,(iPlayerCarHP + (iPlayerCarHP/3)))
SET_VEHICLE_PETROL_TANK_HEALTH(vehPlayerCar,(fPlayerCarPetrolTankHP + (fPlayerCarPetrolTankHP/3)))
SET_VEHICLE_ENGINE_HEALTH(vehPlayerCar,(fPlayerCarEngineHP + (fPlayerCarEngineHP/3)))
SET_VEHICLE_CAN_LEAK_OIL(vehPlayerCar, FALSE)
SET_VEHICLE_CAN_LEAK_PETROL(vehPlayerCar, FALSE)
SET_VEHICLE_TYRES_CAN_BURST(vehPlayerCar, FALSE)
SET_VEHICLE_HAS_STRONG_AXLES(vehPlayerCar, TRUE)
SET_DOOR_ALLOWED_TO_BE_BROKEN_OFF(vehPlayerCar,SC_DOOR_BOOT,FALSE)
ADD_VEHICLE_STUCK_CHECK_WITH_WARP(vehPlayerCar,0.2,1000,FALSE,FALSE,FALSE,-1)
objCashBag[0] = CREATE_OBJECT(P_LD_HEIST_BAG_S_1,GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(vehPlayerCar,<<0.0,0.0,10.0>>))
objCashBag[1] = CREATE_OBJECT(P_LD_HEIST_BAG_S_1,GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(vehPlayerCar,<<0.0,0.0,11.0>>))
objCashBag[2] = CREATE_OBJECT(P_LD_HEIST_BAG_S_1,GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(vehPlayerCar,<<0.0,0.0,12.0>>))
objCashBag[3] = CREATE_OBJECT(P_LD_HEIST_BAG_S_1,GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(vehPlayerCar,<<0.0,0.0,13.0>>))
//ATTACH_ENTITY_TO_ENTITY(objCashBag[0],vehPlayerCar,0,<<-0.1,-2.0,0.16>>,<<40.0,22.0,0.0>>) //old prop P_LD_HEIST_BAG_S
//ATTACH_ENTITY_TO_ENTITY(objCashBag[1],vehPlayerCar,0,<<0.3,-2.0,0.05>>,<<140.0,18.0,50.0>>)
//ATTACH_ENTITY_TO_ENTITY(objCashBag[2],vehPlayerCar,0,<<-0.34,-2.1,0.05>>,<<105.0,1.0,10.0>>)
//ATTACH_ENTITY_TO_ENTITY(objCashBag[0],vehPlayerCar,0,<<-0.06,-1.93,-0.1>>,<<0,0,91>>)
//ATTACH_ENTITY_TO_ENTITY(objCashBag[1],vehPlayerCar,0,<<0.3,-1.92,-0.1>>,<<0,0,93>>)
//ATTACH_ENTITY_TO_ENTITY(objCashBag[2],vehPlayerCar,0,<<0.66,-1.94,-0.1>>,<<0,0,89>>)
ATTACH_ENTITY_TO_ENTITY(objCashBag[0],vehPlayerCar,0,<<-0.06,-1.93,-0.1>>,<<0,0,91>>)
ATTACH_ENTITY_TO_ENTITY(objCashBag[1],vehPlayerCar,0,<<0.2,-1.92,-0.1>>,<<0,0,93>>)
ATTACH_ENTITY_TO_ENTITY(objCashBag[2],vehPlayerCar,0,<<0.4,-1.94,-0.1>>,<<0,0,89>>)
ATTACH_ENTITY_TO_ENTITY(objCashBag[3],vehPlayerCar,0,<<0.66,-1.95,-0.1>>,<<0,0,89>>)
SET_VEHICLE_DOORS_LOCKED(vehPlayerCar,VEHICLELOCK_UNLOCKED)
IF NOT IS_REPLAY_BEING_SET_UP()
IF NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehPlayerCar)
SET_PED_INTO_VEHICLE(PLAYER_PED_ID(),vehPlayerCar)
ENDIF
ENDIF
ENDIF
CLEAR_AREA_OF_VEHICLES(<< -567.6498, -2.9035, 43.3971 >>,400,TRUE)
SET_PED_NON_CREATION_AREA(<< -711.6323, 42.0868, 14.5077 >>,<< -663.5175, 118.0403, 86.0362 >>)
ENDPROC
/// PURPOSE: //Start convoy
PROC Init2()
CLEAR_PRINTS()
SET_MODEL_AS_NO_LONGER_NEEDED(S_M_M_HIGHSEC_01)
SET_MODEL_AS_NO_LONGER_NEEDED(SENTINEL)
SET_MODEL_AS_NO_LONGER_NEEDED(LANDSTALKER)
blipEscort = CREATE_VEHICLE_BLIP(vehEpsilonCar[0],TRUE)
PRINT_NOW("EPS8_05",DEFAULT_GOD_TEXT_TIME,0) // Follow ~b~Epsilon's security~s~ to the helicopter.
bFollowEpsSecObj = TRUE
iTimerMissionInit = GET_GAME_TIMER()
IF IS_VEHICLE_OK(vehEpsilonCar[0])
IF IS_PED_UNINJURED(pedEpsilonHiSecDriver[0])
OPEN_SEQUENCE_TASK(seqExitLeanStartDriving)
TASK_VEHICLE_FOLLOW_WAYPOINT_RECORDING(NULL,vehEpsilonCar[0],"Eps8LS01",DRIVINGMODE_AVOIDCARS_RECKLESS,0,EWAYPOINT_START_FROM_CLOSEST_POINT,-1,-1)
CLOSE_SEQUENCE_TASK(seqExitLeanStartDriving)
CLEAR_PED_TASKS(pedEpsilonHiSecDriver[0])
TASK_PERFORM_SEQUENCE(pedEpsilonHiSecDriver[0],seqExitLeanStartDriving)
CLEAR_SEQUENCE_TASK(seqExitLeanStartDriving)
ENDIF
ENDIF
IF IS_VEHICLE_OK(vehEpsilonChopper)
START_PLAYBACK_RECORDED_VEHICLE(vehEpsilonChopper, 222, "Ep8Heli01")
SET_PLAYBACK_SPEED(vehEpsilonChopper,1.25)
ENDIF
ENDPROC
/// PURPOSE: //Respot launcher vehicles
PROC RespotLauncherVehicles()
VECTOR vPosPlayerCarCurrent
VECTOR vPosLandstalkerCurrent
IF IS_VEHICLE_OK(sRCLauncherDataLocal.vehID[1])
vehPlayerCar = sRCLauncherDataLocal.vehID[1]
sRCLauncherDataLocal.vehID[1] = NULL
SET_VEHICLE_AS_RESTRICTED(vehPlayerCar,0)
vPosPlayerCarCurrent = GET_ENTITY_COORDS(vehPlayerCar)
IF vPosPlayerCarCurrent.x < vPosPlayerCar.x - 0.01
OR vPosPlayerCarCurrent.x > vPosPlayerCar.x + 0.01
OR vPosPlayerCarCurrent.y < vPosPlayerCar.y - 0.01
OR vPosPlayerCarCurrent.y > vPosPlayerCar.y + 0.01
SAFE_TELEPORT_ENTITY(vehPlayerCar,vPosPlayerCar, fHeadingPlayerCar)
SET_VEHICLE_ON_GROUND_PROPERLY(vehPlayerCar)
ENDIF
ELSE
vehPlayerCar = CREATE_VEHICLE(TAILGATER,vPosPlayerCar, fHeadingPlayerCar)
SET_VEHICLE_AS_RESTRICTED(vehPlayerCar,0)
SET_VEHICLE_NUMBER_PLATE_TEXT_INDEX(vehPlayerCar, 0)
SET_VEHICLE_NUMBER_PLATE_TEXT(vehPlayerCar,"K1FFL0M")
//SET_VEHICLE_COLOUR_COMBINATION(vehPlayerCar,5)
SET_VEHICLE_COLOURS(vehPlayerCar,iCol1,iCol1)
SET_VEHICLE_EXTRA_COLOURS(vehPlayerCar,0,0)
//SET_VEHICLE_CUSTOM_SECONDARY_COLOUR(vehPlayerCar,204, 255, 255 )
SET_VEHICLE_ON_GROUND_PROPERLY(vehPlayerCar)
ENDIF
IF IS_VEHICLE_OK(sRCLauncherDataLocal.vehID[0])
vehEpsilonCar[0] = sRCLauncherDataLocal.vehID[0]
sRCLauncherDataLocal.vehID[0] = NULL
SET_VEHICLE_DOORS_LOCKED(vehEpsilonCar[0],VEHICLELOCK_UNLOCKED)
vPosLandstalkerCurrent = GET_ENTITY_COORDS(vehPlayerCar)
IF vPosLandstalkerCurrent.x < vPosEpsilonCar[0].x - 0.01
OR vPosLandstalkerCurrent.x > vPosEpsilonCar[0].x + 0.01
OR vPosLandstalkerCurrent.y < vPosEpsilonCar[0].y - 0.01
OR vPosLandstalkerCurrent.y > vPosEpsilonCar[0].y + 0.01
SAFE_TELEPORT_ENTITY(vehEpsilonCar[0],vPosEpsilonCar[0], fHeadingEpsilonCar[0])
SET_VEHICLE_ON_GROUND_PROPERLY(vehEpsilonCar[0])
ENDIF
ELSE
vehEpsilonCar[0] = CREATE_VEHICLE(LANDSTALKER,vPosEpsilonCar[0], fHeadingEpsilonCar[0])
SET_VEHICLE_COLOURS(vehEpsilonCar[0],iCol1,iCol1)
SET_VEHICLE_EXTRA_COLOURS(vehEpsilonCar[0],0,0)
//SET_VEHICLE_CUSTOM_SECONDARY_COLOUR(vehEpsilonCar[0],204, 255, 255 )
SET_VEHICLE_ON_GROUND_PROPERLY(vehEpsilonCar[0])
SET_VEHICLE_NUMBER_PLATE_TEXT_INDEX(vehEpsilonCar[0], 0)
ENDIF
IF NOT DOES_ENTITY_EXIST(pedEpsilonHiSecDriver[0])
pedEpsilonHiSecDriver[0] = CREATE_PED_INSIDE_VEHICLE(vehEpsilonCar[0],PEDTYPE_MISSION,S_M_M_HIGHSEC_01)
ENDIF
IF IS_PED_UNINJURED(pedEpsilonHiSecDriver[0])
SET_PED_COMP_ITEM_CURRENT_SP(pedEpsilonHiSecDriver[0], COMP_TYPE_PROPS, PROPS_P0_HEADSET)
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 5, pedEpsilonHiSecDriver[0], "EPSGUARD2")
ENDIF
IF NOT DOES_ENTITY_EXIST(pedEpsilonHiSecShotgun[0])
pedEpsilonHiSecShotgun[0] = CREATE_PED_INSIDE_VEHICLE(vehEpsilonCar[0],PEDTYPE_MISSION,S_M_M_HIGHSEC_01,VS_FRONT_RIGHT)
ENDIF
IF NOT DOES_ENTITY_EXIST(pedEpsilonHiSecurity[0])
pedEpsilonHiSecurity[0] = CREATE_PED(PEDTYPE_MISSION,S_M_M_HIGHSEC_01,vPosEpsilonHiSec[0],fHeadingEpsilonHiSec[0])
ENDIF
IF NOT DOES_ENTITY_EXIST(pedEpsilonHiSecurity[2])
pedEpsilonHiSecurity[2] = CREATE_PED(PEDTYPE_MISSION,S_M_M_HIGHSEC_01,vPosEpsilonHiSec[2],fHeadingEpsilonHiSec[2])
ENDIF
ENDPROC
/// PURPOSE: Added for B*1776144 - Can't call TASK_VEHICLE_FOLLOW_WAYPOINT_RECORDING every frame anymore.
PROC SET_LEAD_CAR_SPEED()
IF fTopSpeed = -1
VEHICLE_WAYPOINT_PLAYBACK_USE_DEFAULT_SPEED(vehEpsilonCar[0])
ELSE
IF GET_ENTITY_SPEED(vehEpsilonCar[0]) > fTopSpeed
VEHICLE_WAYPOINT_PLAYBACK_OVERRIDE_SPEED(vehEpsilonCar[0],fTopSpeed)
ELSE
VEHICLE_WAYPOINT_PLAYBACK_USE_DEFAULT_SPEED(vehEpsilonCar[0])
ENDIF
ENDIF
ENDPROC
/// PURPOSE: //Rubberbanding for the convoy
PROC RubberBand()
BOOL bLeadCarDecel = FALSE
IF GET_DISTANCE_BETWEEN_COORDS(GET_ENTITY_COORDS(PLAYER_PED_ID()),<< -358.0764, -88.2705, 44.5901 >>) > GET_DISTANCE_BETWEEN_COORDS(GET_ENTITY_COORDS(pedEpsilonHiSecDriver[0]),<< -358.0764, -88.2705, 44.5901 >>)
fTopSpeed = (40.0 - (GET_DISTANCE_BETWEEN_ENTITIES(pedEpsilonHiSecDriver[0],vehPlayerCar))) //60.0 -
IF fTopSpeed > 0.0
fTopSpeed = (fTopSpeed / 2.5)
ELSE
fTopSpeed = 0.000001
ENDIF
IF fTopSpeed < 4.0
fTopSpeed = 0.000001
ENDIF
IF fTopSpeed > 8.0
fTopSpeed = -1
ENDIF
IF fTopSpeed < 3.0
bLeadCarDecel = TRUE
ENDIF
IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(vehEpsilonChopper)
IF GET_TIME_POSITION_IN_RECORDING(vehEpsilonChopper) < 47043.750000
SET_PLAYBACK_SPEED(vehEpsilonChopper,1.25)
ENDIF
ENDIF
ELSE
fTopSpeed = -1
IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(vehEpsilonChopper) //Heli speeds up if player goes in front of lead car
IF GET_TIME_POSITION_IN_RECORDING(vehEpsilonChopper) < 47043.750000
SET_PLAYBACK_SPEED(vehEpsilonChopper,1.5)
ENDIF
ENDIF
ENDIF
IF IS_PED_UNINJURED(pedEpsilonHiSecDriver[0])
IF IS_VEHICLE_OK(vehEpsilonCar[0])
IF IS_PED_SITTING_IN_VEHICLE(pedEpsilonHiSecDriver[0],vehEpsilonCar[0])
IF fTopSpeed <> -1
IF bLeadCarDecel
SET_VEHICLE_BRAKE_LIGHTS(vehEpsilonCar[0],TRUE)
ELSE
SET_VEHICLE_BRAKE_LIGHTS(vehEpsilonCar[0],FALSE)
ENDIF
ENDIF
IF NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehPlayerCar)
IF missionStage = MS_DRIVING_TO_CHOPPER
OR missionStage = MS_PARKING_AT_CHOPPER
OR missionStage = MS_PARKED_AT_CHOPPER
IF IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_VEHICLE(vehEpsilonCar[0])
VEHICLE_WAYPOINT_PLAYBACK_PAUSE(vehEpsilonCar[0])
ENDIF
ELSE
IF IS_ENTITY_IN_ANGLED_AREA(pedEpsilonHiSecDriver[0], <<-345.643707,-85.666794,53.658215>>, <<-378.453491,-73.822990,43.158215>>, 18.250000)
IF NOT IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_VEHICLE(vehEpsilonCar[0]) OR NOT bSwitchWaypointFlags
TASK_VEHICLE_FOLLOW_WAYPOINT_RECORDING(pedEpsilonHiSecDriver[0],vehEpsilonCar[0],"Eps8LS01",DRIVINGMODE_AVOIDCARS_STOPFORPEDS_OBEYLIGHTS,0,EWAYPOINT_START_FROM_CLOSEST_POINT,-1,fTopSpeed)
bSwitchWaypointFlags = TRUE
ELSE
SET_LEAD_CAR_SPEED()
ENDIF
ELSE
IF NOT IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_VEHICLE(vehEpsilonCar[0])
TASK_VEHICLE_FOLLOW_WAYPOINT_RECORDING(pedEpsilonHiSecDriver[0],vehEpsilonCar[0],"Eps8LS01",DRIVINGMODE_AVOIDCARS_RECKLESS,0,EWAYPOINT_START_FROM_CLOSEST_POINT,-1,fTopSpeed)
ELSE
SET_LEAD_CAR_SPEED()
ENDIF
ENDIF
ENDIF
ELSE
IF IS_ENTITY_IN_ANGLED_AREA(pedEpsilonHiSecDriver[0], <<-345.643707,-85.666794,53.658215>>, <<-378.453491,-73.822990,43.158215>>, 18.250000)
IF NOT IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_VEHICLE(vehEpsilonCar[0]) OR NOT bSwitchWaypointFlags
TASK_VEHICLE_FOLLOW_WAYPOINT_RECORDING(pedEpsilonHiSecDriver[0],vehEpsilonCar[0],"Eps8LS01",DRIVINGMODE_AVOIDCARS_STOPFORPEDS_OBEYLIGHTS,0,EWAYPOINT_START_FROM_CLOSEST_POINT,-1,fTopSpeed)
bSwitchWaypointFlags = TRUE
ELSE
SET_LEAD_CAR_SPEED()
ENDIF
ELSE
IF NOT IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_VEHICLE(vehEpsilonCar[0])
TASK_VEHICLE_FOLLOW_WAYPOINT_RECORDING(pedEpsilonHiSecDriver[0],vehEpsilonCar[0],"Eps8LS01",DRIVINGMODE_AVOIDCARS_RECKLESS,0,EWAYPOINT_START_FROM_CLOSEST_POINT,-1,fTopSpeed)
ELSE
SET_LEAD_CAR_SPEED()
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
////Lead car Indicators////
SET_VEHICLE_INDICATOR_LIGHTS(vehEpsilonCar[0],FALSE,FALSE)
SET_VEHICLE_INDICATOR_LIGHTS(vehEpsilonCar[0],TRUE,FALSE)
//first right turn
IF IS_ENTITY_IN_ANGLED_AREA( pedEpsilonHiSecDriver[0], <<-673.624207,46.507320,45.420940>>, <<-657.845581,45.623535,35.899090>>, 7.000000)
SET_VEHICLE_INDICATOR_LIGHTS(vehEpsilonCar[0],FALSE,TRUE)
ENDIF
//second left turn
IF IS_ENTITY_IN_ANGLED_AREA( pedEpsilonHiSecDriver[0], <<-659.369751,21.066603,45.169373>>, <<-641.968750,-12.162420,35.589779>>, 14.000000)
SET_VEHICLE_INDICATOR_LIGHTS(vehEpsilonCar[0],TRUE,TRUE)
ENDIF
//third right
IF IS_ENTITY_IN_ANGLED_AREA( pedEpsilonHiSecDriver[0], <<-429.660980,-7.262719,52.317867>>, <<-394.008270,-12.029229,41.923225>>, 14.000000)
SET_VEHICLE_INDICATOR_LIGHTS(vehEpsilonCar[0],FALSE,TRUE)
ENDIF
//forth left
IF IS_ENTITY_IN_ANGLED_AREA( pedEpsilonHiSecDriver[0], <<-405.986420,-54.693531,51.030403>>, <<-397.146149,-36.447598,41.663853>>, 14.000000)
SET_VEHICLE_INDICATOR_LIGHTS(vehEpsilonCar[0],TRUE,TRUE)
ENDIF
ENDPROC
/// PURPOSE: Cinematic camera for the helicopter
PROC HeliCinematicCam()
VECTOR vHeliLostPlayerOffset
/*
IF iEpSecBlipped <> iEpSecEvaded + 1
IF bHeliCantSeePlayer = FALSE
IF CAN_HELI_PILOT_SEE_PLAYER(pedPilot)
iCounterHeliCantSeePlayerChase = 0
bHeliCantSeePlayerChase = FALSE
ELSE
++iCounterHeliCantSeePlayerChase
IF iCounterHeliCantSeePlayerChase > 100
bHeliCantSeePlayerChase = TRUE
iCounterHeliCantSeePlayerChase = 101
ENDIF
ENDIF
ELSE
iCounterHeliCantSeePlayerChase = 0
bHeliCantSeePlayerChase = FALSE
ENDIF
ELSE
iCounterHeliCantSeePlayerChase = 0
bHeliCantSeePlayerChase = FALSE
ENDIF
*/
IF IS_PED_UNINJURED(pedPilot)
AND IS_VEHICLE_OK(vehEpsilonChopper)
AND IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
AND bHelicopterHostile = TRUE
AND NOT IS_PHONE_ONSCREEN_AND_RINGING()
AND bHeliGivenUp = FALSE
IF IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),vehEpsilonChopper,300.0)
IF bPrintHeliCamHelp = FALSE
PRINT_HELP("EPS8_22") //Hold ~INPUT_VEH_CIN_CAM~ to see the view from the helicopter.
bPrintHeliCamHelp = TRUE
ENDIF
ENDIF
IF bPrintHeliCamHelp = TRUE
SET_CINEMATIC_BUTTON_ACTIVE(FALSE)
IF IS_CONTROL_JUST_PRESSED(PLAYER_CONTROL, INPUT_VEH_CIN_CAM)
IF bDoHeliCam = FALSE
bDoHeliCam = TRUE
ELSE
bDoHeliCam = FALSE
ENDIF
ENDIF
ENDIF
ELSE
SET_CINEMATIC_BUTTON_ACTIVE(TRUE)
bDoHeliCam = FALSE
ENDIF
IF bDoHeliCam = TRUE
IF IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("EPS8_22")
CLEAR_HELP(TRUE)
ENDIF
DRAW_SPRITE("helicopterhud", "hud_corner", 0.46, 0.457,0.023,0.023, 0, 255,255,255, 150)
DRAW_SPRITE("helicopterhud", "hud_corner", 0.54, 0.457,0.023,0.023,90, 255,255,255, 150)
DRAW_SPRITE("helicopterhud", "hud_corner", 0.46, 0.548,0.023,0.023,270, 255,255,255, 150)
DRAW_SPRITE("helicopterhud", "hud_corner", 0.54, 0.548,0.023,0.023,180, 255,255,255, 150)
IF iHeliCamSwitch = 0
IF NOT DOES_CAM_EXIST(camHeli)
AND NOT DOES_CAM_EXIST(camHeli2)
DISPLAY_HUD(FALSE)
DISPLAY_RADAR(FALSE)
camHeli = CREATE_CAM("DEFAULT_SCRIPTED_FLY_CAMERA",TRUE)
camHeli2 = CREATE_CAM("DEFAULT_SCRIPTED_FLY_CAMERA",TRUE)
//SET_CAM_INHERIT_ROLL_VEHICLE(camHeli,vehEpsilonChopper)
//SET_CAM_INHERIT_ROLL_VEHICLE(camHeli2,vehEpsilonChopper)
ATTACH_CAM_TO_ENTITY(camHeli,vehEpsilonChopper,<<0.001,3.001,-2.202>>,TRUE)
ATTACH_CAM_TO_ENTITY(camHeli2,vehEpsilonChopper,<<0.001,3.001,-2.202>>,TRUE)
POINT_CAM_AT_ENTITY(camHeli,PLAYER_PED_ID(),<<0,0,0>>)
POINT_CAM_AT_ENTITY(camHeli2,PLAYER_PED_ID(),<<0,0,0>>)
SET_CAM_FOV(camHeli,45.0)
SET_CAM_FOV(camHeli2,28.0)
SET_CAM_ACTIVE_WITH_INTERP(camHeli2,camHeli,7000)
RENDER_SCRIPT_CAMS(TRUE, FALSE)
SHAKE_CAM(camHeli,"HAND_SHAKE",2.0)
SHAKE_CAM(camHeli2,"HAND_SHAKE",2.0)
ENDIF
iHeliCamSwitch = 1
ELSE
IF DOES_CAM_EXIST(camHeli)
AND DOES_CAM_EXIST(camHeli2)
IF bHeliCantSeePlayer = FALSE
//AND bHeliCantSeePlayerChase = FALSE
POINT_CAM_AT_ENTITY(camHeli,PLAYER_PED_ID(),<<0,0,0>>)
POINT_CAM_AT_ENTITY(camHeli2,PLAYER_PED_ID(),<<0,0,0>>)
IF iCounterHeliCamLostPlayer <> 0
IF NOT IS_CAM_INTERPOLATING(GET_RENDERING_CAM())
SET_CAM_ACTIVE_WITH_INTERP(camHeli2,GET_RENDERING_CAM(),2000)
iCounterHeliCamLostPlayer = 0
ENDIF
ENDIF
ELSE
++iCounterHeliCamLostPlayer
IF iCounterHeliCamLostPlayer > 80 + GET_RANDOM_INT_IN_RANGE(0,80)
IF NOT DOES_CAM_EXIST(camHeliLostPlayer[0])
camHeliLostPlayer[0] = CREATE_CAM("DEFAULT_SCRIPTED_FLY_CAMERA",TRUE)
//SET_CAM_INHERIT_ROLL_VEHICLE(camHeliLostPlayer[0],vehEpsilonChopper)
ENDIF
IF NOT DOES_CAM_EXIST(camHeliLostPlayer[1])
camHeliLostPlayer[1] = CREATE_CAM("DEFAULT_SCRIPTED_FLY_CAMERA",TRUE)
//SET_CAM_INHERIT_ROLL_VEHICLE(camHeliLostPlayer[1],vehEpsilonChopper)
ENDIF
ATTACH_CAM_TO_ENTITY(camHeliLostPlayer[iCam],vehEpsilonChopper,<<0.001,3.001,-2.202>>,TRUE)
SET_CAM_FOV(camHeliLostPlayer[iCam],28.0)
SHAKE_CAM(camHeliLostPlayer[iCam],"HAND_SHAKE",2.0)
vHeliLostPlayerOffset = GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(PLAYER_PED_ID(),<<GET_RANDOM_FLOAT_IN_RANGE(-50,50),GET_RANDOM_FLOAT_IN_RANGE(-50,50),0>>)
POINT_CAM_AT_COORD(camHeliLostPlayer[iCam],vHeliLostPlayerOffset)
SET_CAM_ACTIVE_WITH_INTERP(camHeliLostPlayer[iCam],GET_RENDERING_CAM(),GET_RANDOM_INT_IN_RANGE(1500,3000))
IF iCam = 0
iCam = 1
ELSE
iCam = 0
ENDIF
iCounterHeliCamLostPlayer = 0
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
IF iHeliCamSwitch = 1
RENDER_SCRIPT_CAMS(FALSE, FALSE)
IF DOES_CAM_EXIST(camHeli)
SET_CAM_ACTIVE(camHeli,FALSE)
DESTROY_CAM(camHeli)
ENDIF
IF DOES_CAM_EXIST(camHeli2)
SET_CAM_ACTIVE(camHeli2,FALSE)
DESTROY_CAM(camHeli2)
ENDIF
IF DOES_CAM_EXIST(camHeliLostPlayer[0])
SET_CAM_ACTIVE(camHeliLostPlayer[0],FALSE)
DESTROY_CAM(camHeliLostPlayer[0])
ENDIF
IF DOES_CAM_EXIST(camHeliLostPlayer[1])
SET_CAM_ACTIVE(camHeliLostPlayer[1],FALSE)
DESTROY_CAM(camHeliLostPlayer[1])
ENDIF
DISPLAY_HUD(TRUE)
DISPLAY_RADAR(TRUE)
SET_GAMEPLAY_CAM_RELATIVE_PITCH()
SET_GAMEPLAY_CAM_RELATIVE_HEADING()
iHeliCamSwitch = 0
ENDIF
ENDIF
ENDPROC
/// PURPOSE: //Stop Mike looking at the Epsilonist if he's not in FOV
PROC HandleMikeLooking()
IF bMikeLookAtEpsilonist = TRUE
IF IS_PED_UNINJURED(pedEpsilonist)
IF NOT IS_PED_FACING_PED(PLAYER_PED_ID(),pedEpsilonist,90)
OR IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),pedEpsilonist,50.0)
TASK_CLEAR_LOOK_AT(PLAYER_PED_ID())
ENDIF
ENDIF
ENDIF
ENDPROC
/// PURPOSE: //Manage friendly blips and objectives
PROC blipsPlayerCar()
IF bNoCashLeftInCar = FALSE
IF bChopperBeingJacked = FALSE
IF missionStage = MS_TAKEN_MONEY
SAFE_REMOVE_BLIP(blipChopper)
ENDIF
IF NOT IS_ENTITY_DEAD(vehPlayerCar)
IF NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehPlayerCar)
IF NOT DOES_BLIP_EXIST(blipPlayerCar)
blipPlayerCar = CREATE_VEHICLE_BLIP(vehPlayerCar,TRUE)
IF missionStage = MS_DRIVING_TO_CHOPPER
IF DOES_BLIP_EXIST(blipEscort)
SAFE_REMOVE_BLIP(blipEscort)
IF bGetInCarObjGiven = FALSE
PRINT_NOW("EPS8_06",DEFAULT_GOD_TEXT_TIME,0) // Get back in the ~b~car.
bGetInCarObjGiven = TRUE
ENDIF
ENDIF
ELIF missionStage = MS_PARKING_AT_CHOPPER
IF DOES_BLIP_EXIST(blipChopper)
SAFE_REMOVE_BLIP(blipChopper)
IF bGetInCarObjGiven = FALSE
PRINT_NOW("EPS8_06",DEFAULT_GOD_TEXT_TIME,0) // Get back in the ~b~car.
bGetInCarObjGiven = TRUE
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
IF GET_ENTITY_SPEED(PLAYER_PED_ID()) > 17.0
IF bBootOpen = TRUE
SET_VEHICLE_DOOR_SHUT(vehPlayerCar,SC_DOOR_BOOT,FALSE)
bBootOpen = FALSE
ENDIF
ENDIF
SAFE_REMOVE_BLIP(blipPlayerCar)
IF missionStage = MS_DRIVING_TO_CHOPPER
IF NOT DOES_BLIP_EXIST(blipEscort)
blipEscort = CREATE_VEHICLE_BLIP(vehEpsilonCar[0],TRUE)
IF bFollowEpsSecObj = FALSE
PRINT_NOW("EPS8_05",DEFAULT_GOD_TEXT_TIME,0) // Follow ~b~Epsilon's security~s~ to the helicopter.
bFollowEpsSecObj = TRUE
ENDIF
ENDIF
ELIF missionStage = MS_PARKING_AT_CHOPPER
IF NOT DOES_BLIP_EXIST(blipChopper)
blipChopper = ADD_BLIP_FOR_COORD(vParkPos)
//blipChopper = CREATE_VEHICLE_BLIP(vehEpsilonChopper,TRUE)
//PRINT_NOW("EPS8_07",DEFAULT_GOD_TEXT_TIME,0) // Park near the ~b~helicopter.
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
IF missionStage = MS_TAKEN_MONEY
SAFE_REMOVE_BLIP(blipPlayerCar)
ENDIF
IF NOT IS_ENTITY_DEAD(vehEpsilonChopper)
IF NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehEpsilonChopper)
IF NOT DOES_BLIP_EXIST(blipChopper)
blipChopper = ADD_BLIP_FOR_COORD(vParkPos)
//blipChopper = CREATE_VEHICLE_BLIP(vehEpsilonChopper,TRUE)
ENDIF
ELSE
SAFE_REMOVE_BLIP(blipChopper)
ENDIF
ENDIF
ENDIF
ELSE
IF missionStage = MS_TAKEN_MONEY
SAFE_REMOVE_BLIP(blipPlayerCar)
ENDIF
IF missionStage = MS_TAKEN_MONEY
SAFE_REMOVE_BLIP(blipChopper)
ENDIF
ENDIF
ENDPROC
/// PURPOSE: //Manage conversations during convoy
PROC ConvoConvoy()
IF IS_VEHICLE_OK(vehPlayerCar)
IF IS_PED_UNINJURED(pedEpsilonHiSecDriver[0])
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehPlayerCar)
IF GET_GAME_TIMER() > iTimerMissionInit + 8000
IF NOT IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),pedEpsilonHiSecDriver[0],40.0)
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehPlayerCar)
IF GET_ENTITY_SPEED(vehPlayerCar) > 2.0
IF bPrintEscapeWarning = FALSE //Get back here now!
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
//IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_LS", "EPS8_LS_20", CONV_PRIORITY_LOW)
IF CREATE_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_LS4", CONV_PRIORITY_LOW)
bPrintEscapeWarning = TRUE
IF iConvoCounter < 2
iConvoCounter = 2
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF iCounterHurryUp = 10
IF GET_GAME_TIMER() > iTimerHurryUp + 1000
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
sFailReason = "EPS8_23" // ~r~You failed to deliver the cash in time.
missionStage = MS_MISSION_FAILING
IF iConvoCounter < 2
iConvoCounter = 2
ENDIF
EXIT
ENDIF
ENDIF
ENDIF
IF fTopSpeed < 0.5 //You can't work a stick shift or something?
AND fTopSpeed <> -1
IF GET_ENTITY_SPEED(vehPlayerCar) < 2.0
IF bPrintHurryUp = FALSE
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_LS5", "EPS8_LS5_1", CONV_PRIORITY_LOW)
iTimerHurryUp = GET_GAME_TIMER()
bPrintHurryUp = TRUE
IF iConvoCounter < 2
iConvoCounter = 2
ENDIF
ENDIF
ENDIF
ELSE
IF iConvoCounter >= 7
IF GET_GAME_TIMER() > iTimerHurryUp + 9000
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF iCounterHurryUp < 5
CREATE_CONVERSATION(s_conversation_peds,"EPS8AU","EPS8_T2",CONV_PRIORITY_MEDIUM) //Come on! We're on a tight schedule here!
++iCounterHurryUp
iTimerHurryUp = GET_GAME_TIMER()
ELSE
IF iCounterHurryUp <> 10
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_T1", "EPS8_T1_6", CONV_PRIORITY_MEDIUM) //Fuck this, I'm getting someone else.
iCounterHurryUp = 10
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF iPlayerDamagingEscort = 1 //What the fuck? Do you know how to drive?
IF bPrintRamWarning1 = FALSE
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_LS3", "EPS8_LS3_1", CONV_PRIORITY_LOW)
bPrintRamWarning1 = TRUE
IF iConvoCounter < 2
iConvoCounter = 2
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF iPlayerDamagingEscort = 2 //Do that again I dare you.
IF bPrintRamWarning2 = FALSE
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_LS3", "EPS8_LS3_2", CONV_PRIORITY_LOW)
bPrintRamWarning2 = TRUE
IF iConvoCounter < 2
iConvoCounter = 2
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF GET_DISTANCE_BETWEEN_COORDS(GET_ENTITY_COORDS(PLAYER_PED_ID()),<< -358.0764, -88.2705, 44.5901 >>) < GET_DISTANCE_BETWEEN_COORDS(GET_ENTITY_COORDS(pedEpsilonHiSecDriver[0]),<< -358.0764, -88.2705, 44.5901 >>)
IF GET_GAME_TIMER() > iTimerMissionInit + 8000
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehPlayerCar)
IF bPrintFrontWarning = FALSE //What do you think you're doing? Get back behind me.
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
//IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_LS", "EPS8_LS_10", CONV_PRIORITY_LOW)
IF CREATE_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_LS2", CONV_PRIORITY_LOW)
bPrintFrontWarning = TRUE
IF iConvoCounter < 2
iConvoCounter = 2
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
IF iConvoCounter = 0 //You got a headset Zondar? Or whatever your name is...
IF GET_GAME_TIMER() > iTimerMissionInit + 7000
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_LS", "EPS8_LS_1", CONV_PRIORITY_VERY_LOW)
iConvoCounter = 1
ENDIF
ENDIF
ENDIF
ELIF iConvoCounter = 1 //Yep... You the guy in front?
IF GET_GAME_TIMER() > iTimerMissionInit + 9000
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_LS", "EPS8_LS_2", CONV_PRIORITY_VERY_LOW)
iConvoCounter = 2
ENDIF
ENDIF
ENDIF
ELIF iConvoCounter = 2 // Affirmative. Hey Bill, ETA?
IF GET_GAME_TIMER() > iTimerMissionInit + 12000
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_LS", "EPS8_LS_3", CONV_PRIORITY_VERY_LOW)
iConvoCounter = 3
ENDIF
ENDIF
ENDIF
ELIF iConvoCounter = 3 //Nearly there man.
IF GET_GAME_TIMER() > iTimerMissionInit + 13000
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_LS", "EPS8_LS_4", CONV_PRIORITY_VERY_LOW)
iConvoCounter = 4
ENDIF
ENDIF
ENDIF
ELIF iConvoCounter = 4 // Oh yeah, I see you.
IF GET_GAME_TIMER() > iTimerMissionInit + 14000
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF IS_ENTITY_ALIVE(vehEpsilonChopper)
AND IS_ENTITY_ALIVE(vehEpsilonCar[0])
//IF IS_ENTITY_IN_RANGE_ENTITY(pedEpsilonHiSecDriver[0],vehEpsilonChopper,340.0)
//IF CAN_PED_SEE_PED(pedEpsilonHiSecDriver[0],vehEpsilonChopper)
//IF GET_VEHICLE_WAYPOINT_PROGRESS(vehEpsilonCar[0]) > 15//19
//AND NOT IS_ENTITY_OCCLUDED(vehEpsilonChopper)
IF NOT IS_ENTITY_IN_RANGE_COORDS(vehEpsilonCar[0],<<-696.0367, 40.7954, 42.2066>>,80)
AND NOT IS_ENTITY_IN_RANGE_COORDS(vehEpsilonChopper,<<-355.8568, -89.7074, 44.6341>>,50)
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_LS", "EPS8_LS_5", CONV_PRIORITY_VERY_LOW)
iConvoCounter = 5
ENDIF
ELSE
iConvoCounter = 5
ENDIF
ENDIF
ENDIF
ENDIF
ELIF iConvoCounter = 5 //How much money is in here anyway?
IF GET_GAME_TIMER() > iTimerMissionInit + 15000
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_LS", "EPS8_LS_6", CONV_PRIORITY_VERY_LOW)
iConvoCounter = 6
ENDIF
ENDIF
ENDIF
ELIF iConvoCounter = 6 //Don't even think about it, you can't get away from us.
IF GET_GAME_TIMER() > iTimerMissionInit + 16000
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
//IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_LS", "EPS8_LS_7", CONV_PRIORITY_VERY_LOW)
IF CREATE_CONVERSATION_FROM_SPECIFIC_LINE(s_conversation_peds, "EPS8AU", "EPS8_LS", "EPS8_LS_7", CONV_PRIORITY_MEDIUM)
iConvoCounter = 7
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
IF iPrintPlayerLeftCar = 0
iTimerPlayerLeftCar = GET_GAME_TIMER()
iPrintPlayerLeftCar = 1
ELIF iPrintPlayerLeftCar = 1
IF GET_GAME_TIMER() > iTimerPlayerLeftCar + 7000
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED() //Get back in the car, we've got a job to do.
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_T1", "EPS8_T1_1", CONV_PRIORITY_VERY_LOW)
iTimerPlayerLeftCar = GET_GAME_TIMER()
iTimerHurryUp = GET_GAME_TIMER()
iPrintPlayerLeftCar = 2
IF iConvoCounter < 2
iConvoCounter = 2
ENDIF
ENDIF
ENDIF
ENDIF
ELIF iPrintPlayerLeftCar = 2
IF GET_GAME_TIMER() > iTimerPlayerLeftCar + 8000
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED() //Come on for fucks sake.
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_T1", "EPS8_T1_2", CONV_PRIORITY_VERY_LOW)
iTimerPlayerLeftCar = GET_GAME_TIMER()
iTimerHurryUp = GET_GAME_TIMER()
iPrintPlayerLeftCar = 3
IF iConvoCounter < 2
iConvoCounter = 2
ENDIF
ENDIF
ENDIF
ENDIF
ELIF iPrintPlayerLeftCar = 3
IF GET_GAME_TIMER() > iTimerPlayerLeftCar + 8000
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED() //Get back in the car!
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_T1", "EPS8_T1_3", CONV_PRIORITY_VERY_LOW)
iTimerPlayerLeftCar = GET_GAME_TIMER()
iTimerHurryUp = GET_GAME_TIMER()
iPrintPlayerLeftCar = 4
IF iConvoCounter < 2
iConvoCounter = 2
ENDIF
ENDIF
ENDIF
ENDIF
ELIF iPrintPlayerLeftCar = 4
IF GET_GAME_TIMER() > iTimerPlayerLeftCar + 7000
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED() //Is my mic broken or something?
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_T1", "EPS8_T1_4", CONV_PRIORITY_VERY_LOW)
iTimerPlayerLeftCar = GET_GAME_TIMER()
iTimerHurryUp = GET_GAME_TIMER()
iPrintPlayerLeftCar = 5
IF iConvoCounter < 2
iConvoCounter = 2
ENDIF
ENDIF
ENDIF
ENDIF
ELIF iPrintPlayerLeftCar = 5
IF GET_GAME_TIMER() > iTimerPlayerLeftCar + 1000
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED() //I can hear you just fine...
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_T1", "EPS8_T1_5", CONV_PRIORITY_VERY_LOW)
iTimerPlayerLeftCar = GET_GAME_TIMER()
iTimerHurryUp = GET_GAME_TIMER()
iPrintPlayerLeftCar = 6
IF iConvoCounter < 2
iConvoCounter = 2
ENDIF
ENDIF
ENDIF
ENDIF
ELIF iPrintPlayerLeftCar = 6
IF GET_GAME_TIMER() > iTimerPlayerLeftCar + 10000
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED() //Fuck this, I'm getting someone else.
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_T1", "EPS8_T1_6", CONV_PRIORITY_VERY_LOW)
iTimerPlayerLeftCar = GET_GAME_TIMER()
iPrintPlayerLeftCar = 7
IF iConvoCounter < 2
iConvoCounter = 2
ENDIF
ENDIF
ENDIF
ENDIF
ELIF iPrintPlayerLeftCar = 7
IF GET_GAME_TIMER() > iTimerPlayerLeftCar + 1000
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
sFailReason = "EPS8_23" // ~r~You failed to deliver the cash in time.
missionStage = MS_MISSION_FAILING
iPrintPlayerLeftCar = 8
IF iConvoCounter < 2
iConvoCounter = 2
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDPROC
/// PURPOSE: //Manage conversations during chase
PROC ConvoChase()
INT iSubs
IF NOT IS_THIS_PRINT_BEING_DISPLAYED("EPS8_12")
AND NOT IS_THIS_PRINT_BEING_DISPLAYED("EPS8_16")
AND NOT IS_THIS_PRINT_BEING_DISPLAYED("EPS8_11")
AND NOT IS_THIS_PRINT_BEING_DISPLAYED("EPS8_25")
iSubs = ENUM_TO_INT(DISPLAY_SUBTITLES)
ELSE
iSubs = ENUM_TO_INT(DO_NOT_DISPLAY_SUBTITLES)
ENDIF
IF IS_PED_UNINJURED(pedPilot)
//IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehPlayerCar)
IF iConvoChaseCar = 0
IF GET_GAME_TIMER() > iTimerPlayerStoleMoney + 1800
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED() //Fuck Fuck Fuck Fuck. Get on him Bill.
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_CH", "EPS8_CH_1", CONV_PRIORITY_LOW,INT_TO_ENUM(enumSubtitlesState,iSubs))
iConvoChaseCar = 1
ENDIF
ENDIF
ENDIF
ELIF iConvoChaseCar = 1
IF GET_GAME_TIMER() > iTimerPlayerStoleMoney + 3000
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED() //Can you see him?
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_CH", "EPS8_CH_2", CONV_PRIORITY_LOW,INT_TO_ENUM(enumSubtitlesState,iSubs))
iConvoChaseCar = 2
ENDIF
ENDIF
ENDIF
ELIF iConvoChaseCar = 2
IF GET_GAME_TIMER() > iTimerPlayerStoleMoney + 5000
IF bHeliCantSeePlayer = FALSE
IF CAN_HELI_PILOT_SEE_PLAYER(pedPilot)
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED() //It's ok I've got eyes on.
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_CH2", "EPS8_CH2_1", CONV_PRIORITY_LOW,INT_TO_ENUM(enumSubtitlesState,iSubs))
iConvoChaseCar = 3
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ELIF iConvoChaseCar = 3
IF GET_GAME_TIMER() > iTimerPlayerStoleMoney + 10000
IF bHeliCantSeePlayer = FALSE
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehPlayerCar)
IF GET_ENTITY_SPEED(vehPlayerCar) > 17.0
IF CAN_HELI_PILOT_SEE_PLAYER(pedPilot)
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
fHeadingPlayerCar = GET_ENTITY_HEADING(vehPlayerCar)
IF fHeadingPlayerCar >= 315.0
OR fHeadingPlayerCar < 45.0 //He's heading north.
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_CH2", "EPS8_CH2_2", CONV_PRIORITY_LOW,INT_TO_ENUM(enumSubtitlesState,iSubs))
iConvoChaseCar = 4
ENDIF
ENDIF
IF fHeadingPlayerCar >= 45.0
AND fHeadingPlayerCar < 135.0 //He's heading east.
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_CH2", "EPS8_CH2_3", CONV_PRIORITY_LOW,INT_TO_ENUM(enumSubtitlesState,iSubs))
iConvoChaseCar = 4
ENDIF
ENDIF
IF fHeadingPlayerCar >= 135.0
AND fHeadingPlayerCar < 225.0 //He's heading south.
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_CH2", "EPS8_CH2_4", CONV_PRIORITY_LOW,INT_TO_ENUM(enumSubtitlesState,iSubs))
iConvoChaseCar = 4
ENDIF
ENDIF
IF fHeadingPlayerCar >= 225.0
AND fHeadingPlayerCar < 315.0 //He's heading west.
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_CH2", "EPS8_CH2_5", CONV_PRIORITY_LOW,INT_TO_ENUM(enumSubtitlesState,iSubs))
iConvoChaseCar = 4
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
//ELSE
//IF iConvoChaseCar = 0
// iConvoChaseCar = 1
//ENDIF
IF GET_GAME_TIMER() > iTimerPlayerStoleMoney + 8000
IF bPrintMikeOnFoot = FALSE
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED() //He's on foot.
//PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_CH", "EPS8_CH_20", CONV_PRIORITY_LOW,INT_TO_ENUM(enumSubtitlesState,iSubs))
bPrintMikeOnFoot = TRUE
ENDIF
ENDIF
IF IS_PED_IN_COVER(PLAYER_PED_ID())
IF bPrintMikeInCover = FALSE
IF IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),vehEpsilonChopper,200.0)
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED() //He's in cover, flush him out.
IF bHeliCantSeePlayer = FALSE
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_CH2", "EPS8_CH2_6", CONV_PRIORITY_LOW,INT_TO_ENUM(enumSubtitlesState,iSubs))
bPrintMikeInCover = TRUE
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF NOT IS_ENTITY_DEAD(pedChopperShotgun)
IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(PLAYER_PED_ID(),pedChopperShotgun)
IF bPrintToddShotMike = FALSE
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED() //I think Todd winged him.
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_CH2", "EPS8_CH2_7", CONV_PRIORITY_LOW,INT_TO_ENUM(enumSubtitlesState,iSubs))
CLEAR_ENTITY_LAST_DAMAGE_ENTITY(PLAYER_PED_ID())
bPrintToddShotMike = TRUE
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
IF iPrintToddDied = 0
iTimerToddDied = GET_GAME_TIMER()
iPrintToddDied = 1
ELIF iPrintToddDied = 1
IF GET_GAME_TIMER() > iTimerToddDied + 2400
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED() //Shit, Todd is down... He was getting married next week.
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_CH2", "EPS8_CH2_8", CONV_PRIORITY_LOW,INT_TO_ENUM(enumSubtitlesState,iSubs))
iPrintToddDied = 2
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
//ENDIF
ENDIF
IF iEpSecBlipped > iEpSecEvaded + 2
IF GET_GAME_TIMER() > iTimerPlayerStoleMoney + 8000
IF GET_RANDOM_INT_IN_RANGE(0,100) = 25
IF iConvoChaseRandom = 0
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED() //Somebody put him down.
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_CH3", "EPS8_CH3_1", CONV_PRIORITY_LOW,INT_TO_ENUM(enumSubtitlesState,iSubs))
iConvoChaseRandom = 1
ENDIF
ENDIF
ELIF iConvoChaseRandom = 1
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED() //Fucking kill him.
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_CH3", "EPS8_CH3_2", CONV_PRIORITY_LOW,INT_TO_ENUM(enumSubtitlesState,iSubs))
iConvoChaseRandom = 2
ENDIF
ENDIF
ELIF iConvoChaseRandom = 2
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED() //Shit, my contact lens came out.
//PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_CH", "EPS8_CH_5", CONV_PRIORITY_LOW,INT_TO_ENUM(enumSubtitlesState,iSubs))
iConvoChaseRandom = 3
ENDIF
ELIF iConvoChaseRandom = 3
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED() //We don't get paid enough for this shit.
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_CH3", "EPS8_CH3_3", CONV_PRIORITY_LOW,INT_TO_ENUM(enumSubtitlesState,iSubs))
iConvoChaseRandom = 4
ENDIF
ENDIF
ELIF iConvoChaseRandom = 4
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED() //Anyone got spare ammo?.
//PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_CH", "EPS8_CH_8", CONV_PRIORITY_LOW,INT_TO_ENUM(enumSubtitlesState,iSubs))
iConvoChaseRandom = 5
ENDIF
ELIF iConvoChaseRandom = 5
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED() //This is crazy.
//PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_CH", "EPS8_CH_9", CONV_PRIORITY_LOW,INT_TO_ENUM(enumSubtitlesState,iSubs))
iConvoChaseRandom = 6
ENDIF
ELIF iConvoChaseRandom = 6
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED() //Come on, stop him. It's just one guy.
//PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_CH", "EPS8_CH_10", CONV_PRIORITY_LOW,INT_TO_ENUM(enumSubtitlesState,iSubs))
iConvoChaseRandom = 7
ENDIF
ELIF iConvoChaseRandom = 7
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED() //Fucking randoms getting in the way.
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_CH3", "EPS8_CH3_4", CONV_PRIORITY_LOW,INT_TO_ENUM(enumSubtitlesState,iSubs))
iConvoChaseRandom = 8
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDPROC
/// PURPOSE: // Working out if the player took the money
PROC Update()
/*
IF NOT IS_PED_UNINJURED(pedPilot)
IF NOT IS_ENTITY_DEAD(vehEpsilonChopper)
FREEZE_ENTITY_POSITION(vehEpsilonChopper,FALSE)
ENDIF
ENDIF
*/
IF IS_VEHICLE_OK(vehPlayerCar)
SET_VEHICLE_WILL_FORCE_OTHER_VEHICLES_TO_STOP(vehPlayerCar,TRUE)
ENDIF
IF IS_VEHICLE_OK(vehEpsilonCar[0])
IF bRoadSwitchOn = FALSE
IF GET_GAME_TIMER() > iTimerMissionInit + 5000 //Switch traffic back on if lead car gets out or timer is more than X ms
OR NOT IS_ENTITY_IN_ANGLED_AREA(vehEpsilonCar[0], <<-664.436279,53.475925,31.860622>>, <<-727.772949,24.454491,46.731674>>, 22.500000)
bRoadSwitchOn = TRUE
ENDIF
ENDIF
SET_VEHICLE_WILL_FORCE_OTHER_VEHICLES_TO_STOP(vehEpsilonCar[0],TRUE)
IF missionStage = MS_DRIVING_TO_CHOPPER
OR missionStage = MS_PARKING_AT_CHOPPER
IF GET_GAME_TIMER() > iTimerDetectDamage + 4000
IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(vehEpsilonCar[0],PLAYER_PED_ID())
IF iPlayerDamagingEscort < 2
++iPlayerDamagingEscort
iTimerDetectDamage = GET_GAME_TIMER()
CLEAR_ENTITY_LAST_DAMAGE_ENTITY(vehEpsilonCar[0])
ELSE
//TEXT_LABEL_23 root = GET_CURRENTLY_PLAYING_STANDARD_CONVERSATION_ROOT()
TEXT_LABEL_23 label = GET_CURRENTLY_PLAYING_STANDARD_CONVERSATION_LABEL()
//IF NOT ARE_STRINGS_EQUAL(root, "PEPS8_LS")
IF NOT ARE_STRINGS_EQUAL(label, "EPS8_LS_13")
++iPlayerDamagingEscort
iTimerDetectDamage = GET_GAME_TIMER()
CLEAR_ENTITY_LAST_DAMAGE_ENTITY(vehEpsilonCar[0])
ELSE
iPlayerDamagingEscort = 2
CLEAR_ENTITY_LAST_DAMAGE_ENTITY(vehEpsilonCar[0])
ENDIF
ENDIF
ENDIF
ENDIF
IF iPlayerDamagingEscort > 2 //If player damages lead car X+1 times -> everyone kick off
//TEXT_LABEL_23 root = GET_CURRENTLY_PLAYING_STANDARD_CONVERSATION_ROOT()
TEXT_LABEL_23 label = GET_CURRENTLY_PLAYING_STANDARD_CONVERSATION_LABEL()
//IF NOT ARE_STRINGS_EQUAL(root, "PEPS8_LS")
IF NOT ARE_STRINGS_EQUAL(label, "EPS8_LS_13")
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "**** Player damaged front escort car 3 times ****")
#ENDIF
bPlayerStoleMoney = TRUE
ENDIF
ENDIF
ENDIF
ENDIF
IF IS_VEHICLE_OK(vehEpsilonCar[2])
SET_VEHICLE_WILL_FORCE_OTHER_VEHICLES_TO_STOP(vehEpsilonCar[2],TRUE)
ENDIF
IF IS_VEHICLE_OK(vehEpsilonCar[3])
SET_VEHICLE_WILL_FORCE_OTHER_VEHICLES_TO_STOP(vehEpsilonCar[3],TRUE)
ENDIF
//If player goes X from lead car -> everyone kick off
IF IS_PED_UNINJURED(pedEpsilonHiSecDriver[0])
IF NOT IS_ENTITY_IN_RANGE_ENTITY(vehPlayerCar,pedEpsilonHiSecDriver[0],50.0)
IF bPlayerAtHelipad = FALSE
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "**** Player driving away ****")
#ENDIF
bPlayerStoleMoney = TRUE
ENDIF
ENDIF
ENDIF
//If player dropping sticky bombs near helicopter -> everyone kick off
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-366.354156,-107.600349,31.931767>>, <<-355.058075,-74.912842,55.840660>>, 85.250000)
IF IS_PED_SHOOTING(PLAYER_PED_ID())
IF GET_SELECTED_PED_WEAPON(PLAYER_PED_ID()) = WEAPONTYPE_STICKYBOMB
OR GET_SELECTED_PED_WEAPON(PLAYER_PED_ID()) = WEAPONTYPE_PETROLCAN
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "**** Player dropped sticky bombs ****")
#ENDIF
bPlayerStoleMoney = TRUE
ENDIF
ENDIF
ENDIF
//Working out if the player went to the tractor
IF bPlayerAtHelipad = FALSE
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-366.354156,-107.600349,31.931767>>, <<-355.058075,-74.912842,55.840660>>, 85.250000)
bPlayerAtHelipad = TRUE
ENDIF
ELSE
IF missionStage = MS_WALKING_TO_REWARD
IF IS_VEHICLE_OK(vehTractor)
//AND IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-380.104370,-98.856026,37.515076>>, <<-370.216644,-104.364128,39.490211>>, 21.000000)
AND IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-383.155762,-102.744186,37.430794>>, <<-371.118317,-109.461861,40.429165>>, 13.000000)
AND NOT IS_PED_RAGDOLL(PLAYER_PED_ID())
IF IS_PED_UNINJURED(pedEpsilonist)
IF bEpsilonistAtTractor = TRUE
IF bEpsilonistPlayingAnims = TRUE
//IF IS_ENTITY_PLAYING_ANIM(pedEpsilonist,"rcmepsilonism8","c1_pose")
IF GET_SCRIPT_TASK_STATUS(pedEpsilonist,SCRIPT_TASK_PERFORM_SEQUENCE) = PERFORMING_TASK
AND bPrayConvo = TRUE
AND GET_GAME_TIMER() > iTimerPrayConvo + 3200
AND NOT IS_PED_RAGDOLL(pedEpsilonist)
AND NOT HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(pedEpsilonist,PLAYER_PED_ID())
IF IS_ENTITY_PLAYING_ANIM(pedEpsilonist,"rcmepsilonism8","worship_base")
OR IS_ENTITY_PLAYING_ANIM(pedEpsilonist,"rcmepsilonism8","worship_idle_a")
//TASK_PLAY_ANIM(pedEpsilonist,"rcmepsilonism8","c1_pose",NORMAL_BLEND_IN,NORMAL_BLEND_OUT,-1)
//STOP_ANIM_TASK(pedEpsilonist,"rcmepsilonism8","c1_pose",-2)
TASK_PLAY_ANIM(pedEpsilonist,"rcmepsilonism8","worship_exit",2,-2,-1,AF_USE_KINEMATIC_PHYSICS | AF_USE_MOVER_EXTRACTION | AF_TAG_SYNC_OUT)
bPlayerGaveMoney = TRUE
ENDIF
ENDIF
ENDIF
ELSE
//IF GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(),vehTractor) < GET_DISTANCE_BETWEEN_ENTITIES(pedEpsilonist,vehTractor)
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehTractor,TRUE)
IF iSeqDelayAggression = 0
bPlayerGaveMoney = TRUE
ENDIF
ENDIF
ENDIF
ENDIF
bPlayerWentToTractor = TRUE
ENDIF
IF iSeqDelayAggression = 0
IF NOT IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-430.659424,-63.760262,99.820374>>, <<-257.635529,-120.517120,37.302601>>, 170.500000)
bPlayerWentToTractor = FALSE
bPlayerGaveMoney = TRUE
ENDIF
ENDIF
ENDIF
ENDIF
//Player went to the heli compound then drove off -> everyone kick off
IF bPlayerAtHelipad = TRUE
IF iSeqDelayAggression = 0
IF NOT IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-366.354156,-107.600349,31.931767>>, <<-355.058075,-74.912842,55.840660>>, 85.250000)
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehPlayerCar)
IF bPlayerWentToTractor = FALSE
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "**** Player drove away after reaching helicopter ****")
#ENDIF
iTimerDelayAggression = GET_GAME_TIMER()
iSeqDelayAggression = 1
ENDIF
ENDIF
ENDIF
ENDIF
IF iSeqDelayAggression = 1
IF GET_GAME_TIMER() > iTimerDelayAggression + 1500
bPlayerStoleMoney = TRUE
ENDIF
ENDIF
ENDIF
//Heli made it to the compound, freeze it until loaded up
//IF missionStage < MS_EXITED_CAR
IF IS_VEHICLE_OK(vehEpsilonChopper)
IF IS_PED_UNINJURED(pedEpsilonHiSecurity[5])
IF IS_PED_IN_VEHICLE(pedEpsilonHiSecurity[5],vehEpsilonChopper)
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedEpsilonHiSecurity[5],TRUE)
SET_PED_COMBAT_ATTRIBUTES(pedEpsilonHiSecurity[5],CA_LEAVE_VEHICLES,FALSE)
ELSE
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedEpsilonHiSecurity[5],FALSE)
SET_PED_COMBAT_ATTRIBUTES(pedEpsilonHiSecurity[5],CA_LEAVE_VEHICLES,TRUE)
SET_PED_COMBAT_ATTRIBUTES(pedEpsilonHiSecurity[5],CA_USE_VEHICLE,FALSE)
ENDIF
ENDIF
IF IS_PED_UNINJURED(pedPilot)
IF IS_PED_IN_VEHICLE(pedPilot,vehEpsilonChopper)
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedPilot,TRUE)
SET_PED_COMBAT_ATTRIBUTES(pedPilot,CA_LEAVE_VEHICLES,FALSE)
ELSE
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedPilot,FALSE)
SET_PED_COMBAT_ATTRIBUTES(pedPilot,CA_LEAVE_VEHICLES,TRUE)
SET_PED_COMBAT_ATTRIBUTES(pedPilot,CA_USE_VEHICLE,FALSE)
ENDIF
ENDIF
IF IS_PED_UNINJURED(pedEpsilonist)
IF IS_PED_IN_VEHICLE(pedEpsilonist,vehEpsilonChopper)
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedEpsilonist,TRUE)
SET_PED_COMBAT_ATTRIBUTES(pedEpsilonist,CA_LEAVE_VEHICLES,FALSE)
ELSE
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedEpsilonist,FALSE)
SET_PED_COMBAT_ATTRIBUTES(pedEpsilonist,CA_LEAVE_VEHICLES,TRUE)
SET_PED_COMBAT_ATTRIBUTES(pedEpsilonist,CA_USE_VEHICLE,FALSE)
ENDIF
ENDIF
IF IS_PED_UNINJURED(pedChopperShotgun)
IF IS_PED_IN_VEHICLE(pedChopperShotgun,vehEpsilonChopper)
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedChopperShotgun,TRUE)
SET_PED_COMBAT_ATTRIBUTES(pedChopperShotgun,CA_LEAVE_VEHICLES,FALSE)
ELSE
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedChopperShotgun,FALSE)
SET_PED_COMBAT_ATTRIBUTES(pedChopperShotgun,CA_LEAVE_VEHICLES,TRUE)
SET_PED_COMBAT_ATTRIBUTES(pedChopperShotgun,CA_USE_VEHICLE,FALSE)
ENDIF
ENDIF
//IF NOT IS_PLAYBACK_GOING_ON_FOR_VEHICLE(vehEpsilonChopper)
IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(vehEpsilonChopper)
IF GET_TIME_POSITION_IN_RECORDING(vehEpsilonChopper) >= 47043.750000
SET_PLAYBACK_SPEED(vehEpsilonChopper,0)
ENDIF
//PRINTFLOAT(GET_TIME_POSITION_IN_RECORDING(vehEpsilonChopper))
//PRINTNL()
/*
IF i2 < (iNumberOfMoneyBags - 1)
FREEZE_ENTITY_POSITION(vehEpsilonChopper,TRUE)
IF iConvoCounter < 5
iConvoCounter = 5
ENDIF
ENDIF
*/
ENDIF
ENDIF
//ENDIF
//Rear convoy car, follow player then stop outside heli compound
IF IS_PED_UNINJURED(pedEpsilonHiSecDriver[3])
IF IS_VEHICLE_OK(vehEpsilonCar[3])
IF IS_VEHICLE_OK(vehPlayerCar)
IF IS_ENTITY_AT_COORD(pedEpsilonHiSecDriver[3],<< -403.4930, -39.7956, 45.1741 >>,<<8.0,8.0,8.0>>)
bStartRearConvoyCar = FALSE
IF IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_VEHICLE(vehEpsilonCar[3])
VEHICLE_WAYPOINT_PLAYBACK_PAUSE(vehEpsilonCar[3])
ENDIF
IF GET_SCRIPT_TASK_STATUS(pedEpsilonHiSecDriver[3],SCRIPT_TASK_VEHICLE_MISSION) = PERFORMING_TASK
TASK_VEHICLE_TEMP_ACTION(pedEpsilonHiSecDriver[3],vehEpsilonCar[3],TEMPACT_BRAKE,-1)
ENDIF
ELSE
IF IS_ENTITY_AT_COORD(PLAYER_PED_ID(),<< -658.9627, 46.1624, 40.1914 >>,<<4.0,4.0,5.0>>)
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehPlayerCar)
IF bStartRearConvoyCar = FALSE
TASK_VEHICLE_FOLLOW_WAYPOINT_RECORDING(pedEpsilonHiSecDriver[3],vehEpsilonCar[3],"Eps8LS01",DRIVINGMODE_AVOIDCARS_RECKLESS,18,EWAYPOINT_DEFAULT,-1,40.0)
bStartRearConvoyCar = TRUE
ENDIF
ENDIF
ENDIF
IF bStartRearConvoyCar = TRUE
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehPlayerCar)
IF IS_ENTITY_IN_ANGLED_AREA(pedEpsilonHiSecDriver[3], <<-431.309967,-13.288644,44.087696>>, <<-391.900452,-16.811705,49.912033>>, 33.750000)
IF NOT IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_VEHICLE(vehEpsilonCar[3])
TASK_VEHICLE_FOLLOW_WAYPOINT_RECORDING(pedEpsilonHiSecDriver[3],vehEpsilonCar[3],"Eps8LS01",DRIVINGMODE_AVOIDCARS,18,EWAYPOINT_START_FROM_CLOSEST_POINT,-1,40.0)
ENDIF
ELSE
IF NOT IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),pedEpsilonHiSecDriver[3],30.0)
IF NOT IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_VEHICLE(vehEpsilonCar[3])
TASK_VEHICLE_FOLLOW_WAYPOINT_RECORDING(pedEpsilonHiSecDriver[3],vehEpsilonCar[3],"Eps8LS01",DRIVINGMODE_AVOIDCARS_RECKLESS,18,EWAYPOINT_START_FROM_CLOSEST_POINT,-1,40.0)
ENDIF
ELSE
IF GET_SCRIPT_TASK_STATUS(pedEpsilonHiSecDriver[3],SCRIPT_TASK_VEHICLE_MISSION) <> PERFORMING_TASK
//TASK_VEHICLE_ESCORT(pedEpsilonHiSecDriver[3],vehEpsilonCar[3],vehPlayerCar,VEHICLE_ESCORT_REAR,40.0,DRIVINGMODE_AVOIDCARS_RECKLESS,9)
TASK_VEHICLE_FOLLOW(pedEpsilonHiSecDriver[3],vehEpsilonCar[3],vehPlayerCar,40.0,DRIVINGMODE_PLOUGHTHROUGH,10)
ENDIF
ENDIF
ENDIF
ELSE
IF GET_SCRIPT_TASK_STATUS(pedEpsilonHiSecDriver[3],SCRIPT_TASK_VEHICLE_MISSION) <> PERFORMING_TASK
//TASK_VEHICLE_ESCORT(pedEpsilonHiSecDriver[3],vehEpsilonCar[3],vehPlayerCar,VEHICLE_ESCORT_REAR,40.0,DRIVINGMODE_AVOIDCARS_RECKLESS,9)
TASK_VEHICLE_FOLLOW(pedEpsilonHiSecDriver[3],vehEpsilonCar[3],vehPlayerCar,40.0,DRIVINGMODE_PLOUGHTHROUGH,10)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
//If any drivers are in combat with the player -> everyone kick off
IF IS_PED_UNINJURED(pedEpsilonHiSecDriver[i])
IF IS_PED_IN_COMBAT(pedEpsilonHiSecDriver[i],PLAYER_PED_ID())
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "**** Player in combat with a driver ****")
#ENDIF
bPlayerStoleMoney = TRUE
ENDIF
ENDIF
//If any passengers are in combat with the player -> everyone kick off
IF IS_PED_UNINJURED(pedEpsilonHiSecShotgun[i])
IF IS_PED_IN_COMBAT(pedEpsilonHiSecShotgun[i],PLAYER_PED_ID())
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "**** Player in combat with a passenger ****")
#ENDIF
bPlayerStoleMoney = TRUE
ENDIF
ENDIF
//If any on foot security are in combat with the player or hurt by the player -> everyone kick off else say "kifflom"
IF IS_PED_UNINJURED(pedEpsilonHiSecurity[i])
IF IS_PED_IN_COMBAT(pedEpsilonHiSecurity[i],PLAYER_PED_ID())
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "**** Player in combat with an on-foot security guy ****")
#ENDIF
bPlayerStoleMoney = TRUE
ELSE
IF missionStage = MS_WALKING_TO_REWARD
IF IS_PED_RAGDOLL(pedEpsilonHiSecurity[i])
IF IS_ENTITY_IN_ANGLED_AREA(pedEpsilonHiSecurity[i], <<-381.895935,-98.083679,37.746490>>, <<-378.512177,-88.643440,46.518566>>, 2.400000)
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "**** Player pushed security guy down the stairs ****")
#ENDIF
bPlayerStoleMoney = TRUE
ENDIF
ENDIF
IF NOT IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
//IF NOT IS_THIS_PRINT_BEING_DISPLAYED("EPS8_15")
//IF NOT IS_THIS_PRINT_BEING_DISPLAYED("EPS8_16")
//AND NOT IS_THIS_PRINT_BEING_DISPLAYED("EPS8_11")
//IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF i = 5
IF bGuard1SaidKifflom = FALSE //Kifflom. //(guy loading chopper)
IF IS_ENTITY_IN_RANGE_ENTITY(pedEpsilonHiSecurity[5],PLAYER_PED_ID(),4.5)
//IF CREATE_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_G1",CONV_PRIORITY_LOW)
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE_NATIVE(pedEpsilonHiSecurity[5],"EPS8_ANAA","EPSGUARD2","SPEECH_PARAMS_FORCE")
bGuard1SaidKifflom = TRUE
//ENDIF
ENDIF
ENDIF
ENDIF
IF i = 3
IF bGuard2SaidKifflom = FALSE //Kifflom, Zondar. //(guy in tunnel)
IF IS_ENTITY_IN_RANGE_ENTITY(pedEpsilonHiSecurity[3],PLAYER_PED_ID(),5.0)
//IF CREATE_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_G2",CONV_PRIORITY_LOW)
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE_NATIVE(pedEpsilonHiSecurity[3],"EPS8_AOAA","EPSGUARD7","SPEECH_PARAMS_FORCE") //EPSGUARD4
TASK_PLAY_ANIM(pedEpsilonHiSecurity[3],"rcmepsilonism8","security_greet",2,-2,-1,AF_SECONDARY,0.2,TRUE)
bGuard2SaidKifflom = TRUE
//ENDIF
ENDIF
ENDIF
ENDIF
IF i = 4
IF bGuard3SaidKifflom = FALSE //Kifflom. //(guy at top of steps)
IF IS_ENTITY_IN_RANGE_ENTITY(pedEpsilonHiSecurity[4],PLAYER_PED_ID(),5.0)
//IF CREATE_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_G3",CONV_PRIORITY_LOW)
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE_NATIVE(pedEpsilonHiSecurity[4],"EPS8_APAA","EPSGUARD8","SPEECH_PARAMS_FORCE") //EPSGUARD3
TASK_PLAY_ANIM(pedEpsilonHiSecurity[4],"rcmepsilonism8","security_greet",2,-2,-1,AF_SECONDARY,0.2,TRUE)
bGuard3SaidKifflom = TRUE
//ENDIF
ENDIF
ENDIF
ENDIF
//ENDIF
//ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
//If is player aiming at/fighting heli pilot -> everyone kicks off
IF IS_PED_UNINJURED(pedPilot)
IF IS_PLAYER_FREE_AIMING_AT_ENTITY(PLAYER_ID(),pedPilot)
OR IS_PLAYER_TARGETTING_ENTITY(PLAYER_ID(),pedPilot)
IF IS_PED_FACING_PED(pedPilot,PLAYER_PED_ID(),90)
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "**** Player threatening pilot ****")
#ENDIF
bPlayerStoleMoney = TRUE
ENDIF
ENDIF
IF IS_PED_IN_COMBAT(pedPilot,PLAYER_PED_ID())
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "**** Player threatening pilot ****")
#ENDIF
bPlayerStoleMoney = TRUE
ENDIF
ENDIF
//If heli sniper is in combat with the player -> everyone kick off
IF IS_PED_UNINJURED(pedChopperShotgun)
IF IS_PED_IN_COMBAT(pedChopperShotgun,PLAYER_PED_ID())
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "**** Player in combat with heli sniper ****")
#ENDIF
bPlayerStoleMoney = TRUE
ENDIF
ENDIF
//If epsilonist is in combat with the player -> everyone kick off + blip on foot guys and give them combat tasks (needs to react faster than other situations)
IF IS_PED_UNINJURED(pedEpsilonist)
IF IS_PED_IN_COMBAT(pedEpsilonist,PLAYER_PED_ID())
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "**** Player in combat with epsilonist ****")
#ENDIF
bPlayerStoleMoney = TRUE
ENDIF
IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(pedEpsilonist,PLAYER_PED_ID())
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "**** Player damaged epsilonist ****")
#ENDIF
bPlayerStoleMoney = TRUE
ENDIF
IF IS_PED_RAGDOLL(pedEpsilonist)
IF IS_ENTITY_IN_ANGLED_AREA(pedEpsilonist, <<-381.895935,-98.083679,37.746490>>, <<-378.512177,-88.643440,46.518566>>, 2.400000)
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "**** Player pushed Epsilonist down the stairs ****")
#ENDIF
bPlayerStoleMoney = TRUE
ENDIF
ENDIF
ELSE
IF IS_PED_UNINJURED(pedEpsilonHiSecurity[0])
IF IS_ENTITY_IN_RANGE_ENTITY(pedEpsilonHiSecurity[0],PLAYER_PED_ID(),100.0)
blipEpsilonHiSecurity[0] = CREATE_PED_BLIP(pedEpsilonHiSecurity[0],TRUE,FALSE,BLIPPRIORITY_LOW)
SET_BLIP_SCALE(blipEpsilonHiSecurity[0],fSmallBlipScale)
TASK_COMBAT_PED(pedEpsilonHiSecurity[0],PLAYER_PED_ID())
++iEpSecBlipped
ENDIF
ENDIF
IF IS_PED_UNINJURED(pedEpsilonHiSecurity[2])
IF IS_ENTITY_IN_RANGE_ENTITY(pedEpsilonHiSecurity[2],PLAYER_PED_ID(),100.0)
blipEpsilonHiSecurity[2] = CREATE_PED_BLIP(pedEpsilonHiSecurity[2],TRUE,FALSE,BLIPPRIORITY_LOW)
SET_BLIP_SCALE(blipEpsilonHiSecurity[2],fSmallBlipScale)
TASK_COMBAT_PED(pedEpsilonHiSecurity[2],PLAYER_PED_ID())
++iEpSecBlipped
ENDIF
ENDIF
IF IS_PED_UNINJURED(pedEpsilonHiSecurity[3])
IF IS_ENTITY_IN_RANGE_ENTITY(pedEpsilonHiSecurity[3],PLAYER_PED_ID(),100.0)
blipEpsilonHiSecurity[3] = CREATE_PED_BLIP(pedEpsilonHiSecurity[3],TRUE,FALSE,BLIPPRIORITY_LOW)
SET_BLIP_SCALE(blipEpsilonHiSecurity[3],fSmallBlipScale)
TASK_COMBAT_PED(pedEpsilonHiSecurity[3],PLAYER_PED_ID())
++iEpSecBlipped
ENDIF
ENDIF
IF IS_PED_UNINJURED(pedEpsilonHiSecurity[4])
IF IS_ENTITY_IN_RANGE_ENTITY(pedEpsilonHiSecurity[4],PLAYER_PED_ID(),100.0)
blipEpsilonHiSecurity[4] = CREATE_PED_BLIP(pedEpsilonHiSecurity[4],TRUE,FALSE,BLIPPRIORITY_LOW)
SET_BLIP_SCALE(blipEpsilonHiSecurity[4],fSmallBlipScale)
TASK_COMBAT_PED(pedEpsilonHiSecurity[4],PLAYER_PED_ID())
++iEpSecBlipped
ENDIF
ENDIF
IF IS_PED_UNINJURED(pedEpsilonHiSecurity[5])
IF IS_ENTITY_IN_RANGE_ENTITY(pedEpsilonHiSecurity[5],PLAYER_PED_ID(),100.0)
blipEpsilonHiSecurity[5] = CREATE_PED_BLIP(pedEpsilonHiSecurity[5],TRUE,FALSE,BLIPPRIORITY_LOW)
SET_BLIP_SCALE(blipEpsilonHiSecurity[5],fSmallBlipScale)
TASK_COMBAT_PED(pedEpsilonHiSecurity[5],PLAYER_PED_ID())
++iEpSecBlipped
ENDIF
ENDIF
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "**** Player killed epsilonist ****")
#ENDIF
bPlayerStoleMoney = TRUE
ENDIF
//If anyone dies -> everyone kick off
IF IS_ENTITY_DEAD(pedEpsilonHiSecurity[0])
OR IS_ENTITY_DEAD(pedEpsilonHiSecurity[2])
OR IS_ENTITY_DEAD(pedEpsilonHiSecurity[3])
OR IS_ENTITY_DEAD(pedEpsilonHiSecurity[4])
OR IS_ENTITY_DEAD(pedEpsilonHiSecurity[5])
OR IS_ENTITY_DEAD(pedPilot)
OR IS_ENTITY_DEAD(pedChopperShotgun)
OR IS_PED_BEING_JACKED(pedPilot)
OR IS_PED_BEING_JACKED(pedChopperShotgun)
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "**** Player killed someone or tried to jack heli ****")
#ENDIF
bPlayerStoleMoney = TRUE
ENDIF
//If player jacks any epsilon cars -> everyone kicks off
IF DOES_ENTITY_EXIST(vehEpsilonCar[i])
IF NOT IS_ENTITY_DEAD(vehEpsilonCar[i])
IF IS_PROJECTILE_TYPE_WITHIN_DISTANCE(GET_ENTITY_COORDS(vehEpsilonCar[i]), WEAPONTYPE_GRENADE, 4, TRUE)
OR IS_PROJECTILE_TYPE_WITHIN_DISTANCE(GET_ENTITY_COORDS(vehEpsilonCar[i]), WEAPONTYPE_MOLOTOV, 4, TRUE)
OR IS_PROJECTILE_TYPE_WITHIN_DISTANCE(GET_ENTITY_COORDS(vehEpsilonCar[i]), WEAPONTYPE_SMOKEGRENADE, 4, TRUE)
OR IS_PROJECTILE_TYPE_WITHIN_DISTANCE(GET_ENTITY_COORDS(vehEpsilonCar[i]), WEAPONTYPE_STICKYBOMB, 4, TRUE)
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "**** Projectile belonging to player near an Epsilon vehicle ****")
#ENDIF
bPlayerStoleMoney = TRUE
ENDIF
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehEpsilonCar[i])
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "**** Player jacked a security car ****")
#ENDIF
bPlayerStoleMoney = TRUE
ENDIF
ELSE
bPlayerStoleMoney = TRUE
ENDIF
ENDIF
//If player jacks any epsilon cars -> everyone kicks off
IF DOES_ENTITY_EXIST(pedEpsilonHiSecDriver[i])
IF NOT IS_ENTITY_DEAD(pedEpsilonHiSecDriver[i])
IF IS_PED_BEING_JACKED(pedEpsilonHiSecDriver[i])
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "**** Player jacked a security car ****")
#ENDIF
bPlayerStoleMoney = TRUE
ENDIF
ELSE
bPlayerStoleMoney = TRUE
ENDIF
ENDIF
//If player jacks any epsilon cars -> everyone kicks off
IF DOES_ENTITY_EXIST(pedEpsilonHiSecShotgun[i])
IF NOT IS_ENTITY_DEAD(pedEpsilonHiSecShotgun[i])
IF IS_PED_BEING_JACKED(pedEpsilonHiSecShotgun[i])
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "**** Player jacked a security car ****")
#ENDIF
bPlayerStoleMoney = TRUE
ENDIF
ELSE
bPlayerStoleMoney = TRUE
ENDIF
ENDIF
////If player jacks/hurts helicopter -> everyone kicks off
IF NOT IS_ENTITY_DEAD(vehEpsilonChopper)
IF IS_ENTITY_IN_RANGE_ENTITY(vehEpsilonChopper,PLAYER_PED_ID(),3)
OR IS_ENTITY_IN_RANGE_ENTITY(vehEpsilonChopper,vehPlayerCar,3)
OR GET_DISTANCE_BETWEEN_ENTITIES(vehEpsilonChopper,GET_PLAYERS_LAST_VEHICLE()) <= 3
ACTIVATE_PHYSICS(vehEpsilonChopper)
ENDIF
IF IS_CHAR_USING_VEHICLE(PLAYER_PED_ID(),vehEpsilonChopper)
//bChopperBeingJacked = TRUE //Comment in to enable stealing chopper
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "**** Player jacking heli ****")
#ENDIF
bPlayerStoleMoney = TRUE
ENDIF
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehEpsilonChopper)
OR HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(vehEpsilonChopper,PLAYER_PED_ID())
OR HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(vehEpsilonChopper,vehPlayerCar)
//OR IS_ENTITY_TOUCHING_ENTITY(vehEpsilonChopper,PLAYER_PED_ID())
OR IS_ENTITY_TOUCHING_ENTITY(vehEpsilonChopper,vehPlayerCar)
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "**** Player damaged heli ****")
#ENDIF
//FREEZE_ENTITY_POSITION(vehEpsilonChopper,FALSE)
bPlayerStoleMoney = TRUE
ENDIF
//IF iSeqDelayAggression <> 0
//IF IS_ENTITY_ALIVE(vehPlayerCar)
/*
IF IS_ENTITY_IN_RANGE_ENTITY(vehPlayerCar,vehEpsilonChopper,4.6)
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "**** Player car too close to heli ****")
#ENDIF
FREEZE_ENTITY_POSITION(vehEpsilonChopper,FALSE)
bPlayerStoleMoney = TRUE
ENDIF
*/
//ENDIF
//ENDIF
ENDIF
/*
//Random anims on the security guards
iRandomInt = GET_RANDOM_INT_IN_RANGE(0,40)
IF bPlayerStoleMoney = FALSE
IF IS_PED_UNINJURED(pedEpsilonHiSecurity[i])
IF NOT IS_ENTITY_PLAYING_ANIM(pedEpsilonHiSecurity[i],"rcmepsilonism8","think")
AND NOT IS_ENTITY_PLAYING_ANIM(pedEpsilonHiSecurity[i],"rcmepsilonism8","think_b")
AND NOT IS_ENTITY_PLAYING_ANIM(pedEpsilonHiSecurity[i],"rcmepsilonism8","security_greet")
IF i = 0
OR i = 2
OR i = 3
OR i = 4
IF iRandomInt = 1
TASK_PLAY_ANIM(pedEpsilonHiSecurity[i],"rcmepsilonism8","think",NORMAL_BLEND_IN,SLOW_BLEND_OUT,-1,AF_SECONDARY | AF_UPPERBODY)
ENDIF
IF iRandomInt = 2
TASK_PLAY_ANIM(pedEpsilonHiSecurity[i],"rcmepsilonism8","think_b",NORMAL_BLEND_IN,SLOW_BLEND_OUT,-1,AF_SECONDARY | AF_UPPERBODY)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
*/
++i
IF i = 7
i = 0
ENDIF
ENDPROC
/// PURPOSE: //Ai for epsilonist at the helicopter
PROC EpsilonistEscortGuyAi()
IF bNoCashLeftInCar = FALSE
IF iSeqDelayAggressionParkedUp = 0
vCashCar = GET_ENTITY_COORDS(vehPlayerCar) //If player's car moves a bit after being parked -> everyone kicks off
IF vCashCar.x < vCashCarParkedPos.x - 0.3
OR vCashCar.x > vCashCarParkedPos.x + 0.3
OR vCashCar.y < vCashCarParkedPos.y - 0.3
OR vCashCar.y > vCashCarParkedPos.y + 0.3
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "**** Player moved car after parking it ****")
#ENDIF
iSeqDelayAggressionParkedUp = 1
iTimerDelayAggression = GET_GAME_TIMER()
ENDIF
ENDIF
IF iSeqDelayAggressionParkedUp = 1
IF GET_GAME_TIMER() > iTimerDelayAggression + 3500
AND IS_PED_SITTING_IN_VEHICLE(PLAYER_PED_ID(),vehPlayerCar)
bPlayerStoleMoney = TRUE
ENDIF
ENDIF
ENDIF
//Epsilonist escorts player to the tractor, plays anims once he gets there, threatens him if he gets back in the car
IF IS_PED_UNINJURED(pedEpsilonist)
AND IS_VEHICLE_OK(vehTractor)
IF IS_ENTITY_IN_RANGE_ENTITY(pedEpsilonist,vehTractor,15.0)
IF NOT IS_PED_HEADTRACKING_ENTITY(pedEpsilonist,vehTractor)
TASK_LOOK_AT_ENTITY(pedEpsilonist,vehTractor,-1)
ENDIF
ENDIF
IF NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehPlayerCar)
//AND NOT IS_ENTITY_PLAYING_ANIM(pedEpsilonist,"rcmepsilonism8","epsilonist_talks")
//IF IS_VEHICLE_OK(vehTractor)
IF IS_ENTITY_IN_RANGE_ENTITY(pedEpsilonist,vehTractor,5.0)
IF bEpsilonistPlayingAnims = FALSE
IF GET_SCRIPT_TASK_STATUS(pedEpsilonist,SCRIPT_TASK_PERFORM_SEQUENCE) <> PERFORMING_TASK
SET_PED_CAN_RAGDOLL_FROM_PLAYER_IMPACT(pedEpsilonist,FALSE)
OPEN_SEQUENCE_TASK(seqPrayToTractor)
//TASK_CLEAR_LOOK_AT(NULL)
TASK_TURN_PED_TO_FACE_ENTITY(NULL,vehTractor)
TASK_SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(NULL,TRUE)
//TASK_SET_DECISION_MAKER(NULL,DECISION_MAKER_EMPTY)
//TASK_PLAY_ANIM(NULL,"rcmepsilonism8","c1_pose",2,-2,-1)
TASK_PLAY_ANIM(NULL,"rcmepsilonism8","worship_enter",2,-2,-1,AF_USE_KINEMATIC_PHYSICS | AF_USE_MOVER_EXTRACTION)
TASK_PLAY_ANIM(NULL,"rcmepsilonism8","worship_base",2,-2,-1,AF_USE_KINEMATIC_PHYSICS | AF_USE_MOVER_EXTRACTION)
TASK_PLAY_ANIM(NULL,"rcmepsilonism8","worship_idle_a",2,-2,-1,AF_USE_KINEMATIC_PHYSICS | AF_USE_MOVER_EXTRACTION)
TASK_PLAY_ANIM(NULL,"rcmepsilonism8","worship_base",2,-2,-1,AF_USE_KINEMATIC_PHYSICS | AF_USE_MOVER_EXTRACTION | AF_LOOPING)
CLOSE_SEQUENCE_TASK(seqPrayToTractor)
TASK_PERFORM_SEQUENCE(pedEpsilonist,seqPrayToTractor)
CLEAR_SEQUENCE_TASK(seqPrayToTractor)
REPLAY_RECORD_BACK_FOR_TIME(5.0, 10.0, REPLAY_IMPORTANCE_LOW)
bEpsilonistPlayingAnims = TRUE
ENDIF
ENDIF
bEpsilonistAtTractor = TRUE
IF bPlayerWentToTractor = TRUE
IF bPrayConvo = FALSE
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF CREATE_CONVERSATION(s_conversation_peds,"EPS8AU","EPS8_PRAY",CONV_PRIORITY_MEDIUM)
bMikeLookAtEpsilonist = FALSE
bPrayConvo = TRUE
iTimerPrayConvo = GET_GAME_TIMER()
TASK_LOOK_AT_ENTITY(PLAYER_PED_ID(),vehTractor,10000)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
//ENDIF
IF bEpsilonistAtTractor = FALSE
IF IS_ENTITY_IN_RANGE_ENTITY(pedEpsilonist,PLAYER_PED_ID(),9.0)
IF NOT IS_THIS_PRINT_BEING_DISPLAYED("EPS8_16")
AND NOT IS_THIS_PRINT_BEING_DISPLAYED("EPS8_11")
AND NOT IS_ENTITY_IN_RANGE_ENTITY(pedEpsilonist,vehEpsilonChopper,8)
//AND GET_GAME_TIMER() > iTimerWaypointRec + 2000
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF iEpsilonistBeckonConvo = 0 //Be a thesis. Cris loves you, brother-brother.
IF CREATE_CONVERSATION(s_conversation_peds,"EPS8AU","EPS8_E1",CONV_PRIORITY_MEDIUM)
REPLAY_RECORD_BACK_FOR_TIME(5.0, 10.0, REPLAY_IMPORTANCE_LOW)
//TASK_PLAY_ANIM(pedEpsilonist,"rcmepsilonism8","epsilonist_talks",SLOW_BLEND_IN,SLOW_BLEND_OUT,-1,AF_UPPERBODY | AF_SECONDARY | AF_TAG_SYNC_CONTINUOUS)
iEpsilonistBeckonConvo = 3
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF bOverrideStartWalk = FALSE
FLOAT fStartTagOutEp1
FLOAT fEndTagOutEp1
IF IS_ENTITY_PLAYING_ANIM(pedEpsilonist,"rcmepsilonism8","jump_off_heli")
AND FIND_ANIM_EVENT_PHASE("rcmepsilonism8","jump_off_heli","WalkInterruptible",fStartTagOutEp1,fEndTagOutEp1)
AND GET_ENTITY_ANIM_CURRENT_TIME(pedEpsilonist,"rcmepsilonism8","jump_off_heli") >= fStartTagOutEp1
//IF GET_ENTITY_ANIM_CURRENT_TIME(pedEpsilonist,"rcmepsilonism8","jump_off_heli") >= 0.9022
IF NOT IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_PED(pedEpsilonist)
FORCE_PED_MOTION_STATE(pedEpsilonist,MS_ON_FOOT_WALK,FALSE,FAUS_DEFAULT)
SET_PED_MIN_MOVE_BLEND_RATIO(pedEpsilonist,PEDMOVE_WALK)
//TASK_FOLLOW_WAYPOINT_RECORDING(pedEpsilonist,"Eps8EPED",0,EWAYPOINT_START_FROM_CLOSEST_POINT)
TASK_GO_STRAIGHT_TO_COORD(pedEpsilonist,<<-377.2280, -87.0252, 44.6583>>,1)
bOverrideStartWalk = TRUE
iTimerOverrideStartWalk = GET_GAME_TIMER()
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "FOUND ANIM TAG")
#ENDIF
ENDIF
ELSE
IF NOT IS_ENTITY_PLAYING_ANIM(pedEpsilonist,"rcmepsilonism8","jump_off_heli")
IF NOT IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_PED(pedEpsilonist)
FORCE_PED_MOTION_STATE(pedEpsilonist,MS_ON_FOOT_WALK,FALSE,FAUS_DEFAULT)
SET_PED_MIN_MOVE_BLEND_RATIO(pedEpsilonist,PEDMOVE_WALK)
//TASK_FOLLOW_WAYPOINT_RECORDING(pedEpsilonist,"Eps8EPED",0,EWAYPOINT_START_FROM_CLOSEST_POINT)
TASK_GO_STRAIGHT_TO_COORD(pedEpsilonist,<<-377.2280, -87.0252, 44.6583>>,1)
bOverrideStartWalk = TRUE
iTimerOverrideStartWalk = GET_GAME_TIMER()
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "DIDNT FIND ANIM TAG")
#ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF bOverrideStartWalk
AND GET_GAME_TIMER() > iTimerOverrideStartWalk + 2000
IF IS_ENTITY_IN_RANGE_ENTITY(pedEpsilonist,PLAYER_PED_ID(),6.0)
IF NOT IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_PED(pedEpsilonist)
TASK_FOLLOW_WAYPOINT_RECORDING(pedEpsilonist,"Eps8EPED",0,EWAYPOINT_START_FROM_CLOSEST_POINT)
ENDIF
ENDIF
IF IS_ENTITY_IN_RANGE_ENTITY(pedEpsilonist,PLAYER_PED_ID(),9.0)
AND NOT IS_ENTITY_IN_RANGE_ENTITY(pedEpsilonist,PLAYER_PED_ID(),6.0)
IF NOT IS_PED_HEADTRACKING_PED(pedEpsilonist,PLAYER_PED_ID())
TASK_LOOK_AT_ENTITY(pedEpsilonist,PLAYER_PED_ID(),-1)
ENDIF
IF GET_SCRIPT_TASK_STATUS(pedEpsilonist,SCRIPT_TASK_TURN_PED_TO_FACE_ENTITY) <> PERFORMING_TASK
//AND NOT IS_ENTITY_PLAYING_ANIM(pedEpsilonist,"rcmepsilonism8","epsilonist_talks")
IF NOT IS_PED_FACING_PED(pedEpsilonist,PLAYER_PED_ID(),20)
TEXT_LABEL_23 root = GET_CURRENTLY_PLAYING_STANDARD_CONVERSATION_ROOT()
IF NOT ARE_STRINGS_EQUAL(root,"EPS8_E1")
//IF IS_ENTITY_PLAYING_ANIM(pedEpsilonist,"rcmepsilonism8","epsilonist_talks")
// STOP_ANIM_TASK(pedEpsilonist,"rcmepsilonism8","epsilonist_talks",REALLY_SLOW_BLEND_OUT)
//ENDIF
TASK_TURN_PED_TO_FACE_ENTITY(pedEpsilonist,PLAYER_PED_ID(),0)
ENDIF
//IF NOT IS_THIS_PRINT_BEING_DISPLAYED("EPS8_15")
/*
IF NOT IS_THIS_PRINT_BEING_DISPLAYED("EPS8_16")
AND NOT IS_THIS_PRINT_BEING_DISPLAYED("EPS8_11")
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF iEpsilonistBeckonConvo = 0 //The fourth paradigm awaits.
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_E1", "EPS8_E1_1", CONV_PRIORITY_VERY_LOW)
iEpsilonistBeckonConvo = 1
ENDIF
ELIF iEpsilonistBeckonConvo = 1 //This way Zondar.
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_E1", "EPS8_E1_2", CONV_PRIORITY_VERY_LOW)
iEpsilonistBeckonConvo = 2
ENDIF
ELIF iEpsilonistBeckonConvo = 2 //Follow me.
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_E1", "EPS8_E1_3", CONV_PRIORITY_VERY_LOW)
iEpsilonistBeckonConvo = 3
ENDIF
ENDIF
ENDIF
ENDIF
*/
ELSE
IF GET_SCRIPT_TASK_STATUS(pedEpsilonist,SCRIPT_TASK_ANY) = PERFORMING_TASK
CLEAR_PED_TASKS(pedEpsilonist)
ENDIF
ENDIF
ENDIF
ENDIF
IF NOT IS_ENTITY_IN_RANGE_ENTITY(pedEpsilonist,PLAYER_PED_ID(),9.0)
IF GET_SCRIPT_TASK_STATUS(pedEpsilonist,SCRIPT_TASK_GO_TO_ENTITY) <> PERFORMING_TASK
//AND NOT IS_ENTITY_PLAYING_ANIM(pedEpsilonist,"rcmepsilonism8","epsilonist_talks")
TASK_LOOK_AT_ENTITY(pedEpsilonist,PLAYER_PED_ID(),-1)
TASK_GO_TO_ENTITY(pedEpsilonist,PLAYER_PED_ID(),DEFAULT_TIME_BEFORE_WARP,6.1,PEDMOVEBLENDRATIO_WALK)
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
IF bNoCashLeftInCar = FALSE
AND IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehPlayerCar)
//AND NOT IS_ENTITY_PLAYING_ANIM(pedEpsilonist,"rcmepsilonism8","epsilonist_talks")
TEXT_LABEL_23 root = GET_CURRENTLY_PLAYING_STANDARD_CONVERSATION_ROOT()
//IF NOT ARE_STRINGS_EQUAL(root,"EPS8_E1")
//IF IS_ENTITY_PLAYING_ANIM(pedEpsilonist,"rcmepsilonism8","epsilonist_talks")
// STOP_ANIM_TASK(pedEpsilonist,"rcmepsilonism8","epsilonist_talks",REALLY_SLOW_BLEND_OUT)
//ENDIF
//ENDIF
IF NOT IS_STRING_NULL_OR_EMPTY(root)
IF ARE_STRINGS_EQUAL(root,"EPS8_E1")
KILL_ANY_CONVERSATION()
ENDIF
ENDIF
IF iSeqThreatenPlayerInCar = 0
TASK_LOOK_AT_ENTITY(pedEpsilonist,PLAYER_PED_ID(),-1)
IF IS_ENTITY_IN_RANGE_ENTITY(pedEpsilonist,vehPlayerCar,7.0)
IF GET_SCRIPT_TASK_STATUS(pedEpsilonist,SCRIPT_TASK_TURN_PED_TO_FACE_ENTITY) <> PERFORMING_TASK
TASK_TURN_PED_TO_FACE_ENTITY(pedEpsilonist,PLAYER_PED_ID(),-1)
ENDIF
//IF NOT IS_THIS_PRINT_BEING_DISPLAYED("EPS8_15")
IF NOT IS_THIS_PRINT_BEING_DISPLAYED("EPS8_16")
AND NOT IS_THIS_PRINT_BEING_DISPLAYED("EPS8_11")
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_SEC", "EPS8_SEC_1", CONV_PRIORITY_MEDIUM) //Ok... Get out of the car please.
iSeqThreatenPlayerInCar = 1
iTimerThreatenPlayerInCar = GET_GAME_TIMER()
ENDIF
ENDIF
ENDIF
ELSE
IF GET_SCRIPT_TASK_STATUS(pedEpsilonist,SCRIPT_TASK_FOLLOW_NAV_MESH_TO_COORD) <> PERFORMING_TASK
TASK_FOLLOW_NAV_MESH_TO_COORD(pedEpsilonist,GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(vehPlayerCar,<<0.0,2.5,0.0>>),PEDMOVEBLENDRATIO_RUN,DEFAULT_TIME_BEFORE_WARP,4.5)
ENDIF
ENDIF
ELIF iSeqThreatenPlayerInCar = 1
IF GET_SCRIPT_TASK_STATUS(pedEpsilonist,SCRIPT_TASK_TURN_PED_TO_FACE_ENTITY) <> PERFORMING_TASK
TASK_TURN_PED_TO_FACE_ENTITY(pedEpsilonist,PLAYER_PED_ID(),-1)
ENDIF
IF IS_PED_UNINJURED(pedEpsilonHiSecurity[5])
IF GET_GAME_TIMER() > iTimerThreatenPlayerInCar + 300
IF GET_SCRIPT_TASK_STATUS(pedEpsilonHiSecurity[5],SCRIPT_TASK_TURN_PED_TO_FACE_ENTITY) <> PERFORMING_TASK
TASK_TURN_PED_TO_FACE_ENTITY(pedEpsilonHiSecurity[5],PLAYER_PED_ID(),-1)
ENDIF
ENDIF
ENDIF
IF GET_GAME_TIMER() > iTimerThreatenPlayerInCar + 6000
//IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_SEC", "EPS8_SEC_2", CONV_PRIORITY_MEDIUM) //Out of the car or I blow your fucking head off!
iSeqThreatenPlayerInCar = 2
iTimerThreatenPlayerInCar = GET_GAME_TIMER()
ENDIF
//ENDIF
ENDIF
ELIF iSeqThreatenPlayerInCar = 2
IF GET_SCRIPT_TASK_STATUS(pedEpsilonist,SCRIPT_TASK_AIM_GUN_AT_ENTITY) <> PERFORMING_TASK
GIVE_WEAPON_TO_PED(pedEpsilonist,WEAPONTYPE_COMBATPISTOL,-1,TRUE,TRUE)
GIVE_WEAPON_COMPONENT_TO_PED(pedEpsilonist,WEAPONTYPE_COMBATPISTOL,WEAPONCOMPONENT_AT_PI_FLSH)
TASK_AIM_GUN_AT_ENTITY(pedEpsilonist,PLAYER_PED_ID(),-1)
ENDIF
IF GET_GAME_TIMER() > iTimerThreatenPlayerInCar + 10000
iSeqThreatenPlayerInCar = 3
iTimerThreatenPlayerInCar = GET_GAME_TIMER()
ENDIF
ELIF iSeqThreatenPlayerInCar = 3
IF NOT IS_PED_IN_COMBAT(pedEpsilonist,PLAYER_PED_ID())
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "**** Player wouldn't leave car so epsilonist kicked off ****")
#ENDIF
IF GET_SCRIPT_TASK_STATUS(pedEpsilonist,SCRIPT_TASK_COMBAT) <> PERFORMING_TASK
TASK_COMBAT_PED(pedEpsilonist,PLAYER_PED_ID())
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDPROC
/// PURPOSE: //Player stole money so make epsilon guys hostile and blip them
PROC SetupEpsilonHostile()
SAFE_REMOVE_BLIP(blipEscort)
SAFE_REMOVE_BLIP(blipEpsOnFootEscort)
IF IS_PED_UNINJURED(pedEpsilonist)
IF NOT DOES_BLIP_EXIST(blipRandomChar)
IF IS_ENTITY_IN_RANGE_ENTITY(pedEpsilonist,PLAYER_PED_ID(),fOnFootEscapeDistance)
IF NOT IS_PED_IN_ANY_VEHICLE(pedEpsilonist)
SET_PED_COMBAT_ATTRIBUTES(pedEpsilonist,CA_USE_VEHICLE,FALSE)
blipRandomChar = CREATE_PED_BLIP(pedEpsilonist,TRUE,FALSE,BLIPPRIORITY_LOW)
SET_BLIP_SCALE(blipRandomChar,fSmallBlipScale)
TASK_COMBAT_PED(pedEpsilonist,PLAYER_PED_ID())
++iEpSecBlipped
ENDIF
ENDIF
ENDIF
ENDIF
IF IS_PED_UNINJURED(pedEpsilonHiSecDriver[i])
IF NOT DOES_BLIP_EXIST(blipEpsilonHiSecDriver[i])
IF IS_PED_IN_COMBAT(pedEpsilonHiSecDriver[i],PLAYER_PED_ID())
OR GET_GAME_TIMER() > iTimerPlayerStoleMoney + 20000
OR NOT IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-335.858063,-97.340446,62.208683>>, <<-403.093201,-76.600517,25.804146>>, 34.000000)
blipEpsilonHiSecDriver[i] = CREATE_PED_BLIP(pedEpsilonHiSecDriver[i],TRUE,FALSE,BLIPPRIORITY_MED)
SET_BLIP_SCALE(blipEpsilonHiSecDriver[i],fLargeBlipScale)
IF i = 0
IF NOT IS_ENTITY_DEAD(vehEpsilonCar[0])
IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(vehEpsilonCar[0])
STOP_PLAYBACK_RECORDED_VEHICLE(vehEpsilonCar[0])
ENDIF
ENDIF
ENDIF //Init Driving AI here
IF NOT IS_ENTITY_DEAD(vehEpsilonCar[i])
IF bPlayerAtHelipad = TRUE
IF i = 0
IF NOT IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_VEHICLE(vehEpsilonCar[i]) //telling first landstalker guys to get out if they're in the compound
SET_PED_COMBAT_ATTRIBUTES(pedEpsilonHiSecDriver[i],CA_USE_VEHICLE,FALSE)
IF DOES_ENTITY_EXIST(pedEpsilonHiSecShotgun[i])
IF NOT IS_ENTITY_DEAD(pedEpsilonHiSecShotgun[i])
IF NOT IS_PED_INJURED(pedEpsilonHiSecShotgun[i])
SET_PED_COMBAT_ATTRIBUTES(pedEpsilonHiSecShotgun[i],CA_USE_VEHICLE,FALSE)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
//DRIVING AI SWITCH
TASK_VEHICLE_ESCORT(pedEpsilonHiSecDriver[i],vehEpsilonCar[i],PLAYER_PED_ID(),VEHICLE_ESCORT_FRONT,200.0,DRIVINGMODE_AVOIDCARS_RECKLESS)
//TASK_COMBAT_PED(pedEpsilonHiSecDriver[i],PLAYER_PED_ID())
ELSE
TASK_COMBAT_PED(pedEpsilonHiSecDriver[i],PLAYER_PED_ID())
ENDIF
++iEpSecBlipped
ENDIF
ENDIF
ENDIF
IF IS_PED_UNINJURED(pedEpsilonHiSecShotgun[i])
IF NOT DOES_BLIP_EXIST(blipEpsilonHiSecShotgun[i])
IF IS_PED_IN_COMBAT(pedEpsilonHiSecShotgun[i],PLAYER_PED_ID())
OR GET_GAME_TIMER() > iTimerPlayerStoleMoney + 20100
OR NOT IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-335.858063,-97.340446,62.208683>>, <<-403.093201,-76.600517,25.804146>>, 34.000000)
blipEpsilonHiSecShotgun[i] = CREATE_PED_BLIP(pedEpsilonHiSecShotgun[i],TRUE,FALSE,BLIPPRIORITY_LOW)
SET_BLIP_SCALE(blipEpsilonHiSecShotgun[i],fSmallBlipScale)
TASK_COMBAT_PED(pedEpsilonHiSecShotgun[i],PLAYER_PED_ID())
++iEpSecBlipped
ENDIF
ENDIF
ENDIF
IF IS_PED_UNINJURED(pedEpsilonHiSecurity[i])
IF NOT DOES_BLIP_EXIST(blipEpsilonHiSecurity[i])
IF IS_PED_IN_COMBAT(pedEpsilonHiSecurity[i],PLAYER_PED_ID())
OR GET_GAME_TIMER() > iTimerPlayerStoleMoney + 50
IF NOT IS_PED_IN_ANY_VEHICLE(pedEpsilonHiSecurity[i])
IF IS_ENTITY_IN_RANGE_ENTITY(pedEpsilonHiSecurity[i],PLAYER_PED_ID(),fOnFootEscapeDistance)
IF i = 5
SET_PED_COMBAT_ATTRIBUTES(pedEpsilonHiSecurity[i],CA_USE_VEHICLE,FALSE)
ENDIF
blipEpsilonHiSecurity[i] = CREATE_PED_BLIP(pedEpsilonHiSecurity[i],TRUE,FALSE,BLIPPRIORITY_LOW)
SET_BLIP_SCALE(blipEpsilonHiSecurity[i],fSmallBlipScale)
TASK_COMBAT_PED(pedEpsilonHiSecurity[i],PLAYER_PED_ID())
++iEpSecBlipped
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF bHelicopterHostile = FALSE
IF GET_GAME_TIMER() > iTimerPlayerStoleMoney + 300
IF IS_VEHICLE_OK(vehEpsilonChopper)
IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(vehEpsilonChopper)
STOP_PLAYBACK_RECORDED_VEHICLE(vehEpsilonChopper)
ENDIF
//FREEZE_ENTITY_POSITION(vehEpsilonChopper,FALSE)
SET_VEHICLE_ENGINE_ON(vehEpsilonChopper,TRUE,TRUE)
IF NOT IS_ENTITY_DEAD(pedPilot)
IF NOT DOES_BLIP_EXIST(blipPilot)
blipPilot = ADD_BLIP_FOR_ENTITY(pedPilot)
IF IS_PED_IN_VEHICLE(pedPilot,vehEpsilonChopper)
AND bChopperBeingJacked = FALSE //If player jacks heli -> everyone get out of heli
SET_BLIP_SCALE(blipPilot,fLargeBlipScale)
SET_BLIP_PRIORITY(blipPilot,BLIPPRIORITY_HIGH)
SET_BLIP_SPRITE(blipPilot,RADAR_TRACE_ENEMY_HELI_SPIN)
SET_BLIP_COLOUR(blipPilot,BLIP_COLOUR_RED)
ELSE
SET_BLIP_SCALE(blipPilot,fSmallBlipScale)
SET_BLIP_PRIORITY(blipPilot,BLIPPRIORITY_LOW)
IF IS_PED_UNINJURED(pedPilot)
IF IS_PED_IN_VEHICLE(pedPilot,vehEpsilonChopper)
TASK_LEAVE_VEHICLE(pedPilot,vehEpsilonChopper)
ENDIF
ENDIF
IF IS_PED_UNINJURED(pedEpsilonist)
IF IS_PED_IN_VEHICLE(pedEpsilonist,vehEpsilonChopper)
TASK_LEAVE_VEHICLE(pedEpsilonist,vehEpsilonChopper)
ENDIF
ENDIF
IF IS_PED_UNINJURED(pedEpsilonHiSecurity[5])
IF IS_PED_IN_VEHICLE(pedEpsilonHiSecurity[5],vehEpsilonChopper)
TASK_LEAVE_VEHICLE(pedEpsilonHiSecurity[5],vehEpsilonChopper)
ENDIF
ENDIF
IF IS_PED_UNINJURED(pedChopperShotgun)
IF IS_PED_IN_VEHICLE(pedChopperShotgun,vehEpsilonChopper)
TASK_LEAVE_VEHICLE(pedChopperShotgun,vehEpsilonChopper)
ENDIF
ENDIF
ENDIF
++iEpSecBlipped
ENDIF
ENDIF
IF IS_PED_UNINJURED(pedChopperShotgun)
TASK_COMBAT_PED(pedChopperShotgun,PLAYER_PED_ID())
ENDIF
ENDIF
bHelicopterHostile = TRUE
ENDIF
ENDIF
++i
IF i = 7
i = 0
ENDIF
ENDPROC
/// PURPOSE: // Manage blips and stuff for hostile epsilon guys
PROC UpdateEpsilonHostile()
IF IS_ENTITY_ALIVE(vehEpsilonChopper)
IF GET_HELI_MAIN_ROTOR_HEALTH(vehEpsilonChopper) < 200
OR GET_HELI_TAIL_BOOM_HEALTH(vehEpsilonChopper) < 200
OR GET_HELI_TAIL_ROTOR_HEALTH(vehEpsilonChopper) < 200
OR GET_ENTITY_HEALTH(vehEpsilonChopper) < 200
OR GET_VEHICLE_PETROL_TANK_HEALTH(vehEpsilonChopper) < 200
SET_VEHICLE_OUT_OF_CONTROL(vehEpsilonChopper,FALSE)
ENDIF
ENDIF
IF NOT IS_ENTITY_DEAD(vehEpsilonCar[i]) // stop epsilon guys from warping back into their car if player is in it
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehEpsilonCar[i])
IF NOT IS_ENTITY_DEAD(pedEpsilonHiSecDriver[i])
SET_PED_COMBAT_ATTRIBUTES(pedEpsilonHiSecDriver[i],CA_USE_VEHICLE,FALSE)
ENDIF
IF NOT IS_ENTITY_DEAD(pedEpsilonHiSecShotgun[i])
SET_PED_COMBAT_ATTRIBUTES(pedEpsilonHiSecShotgun[i],CA_USE_VEHICLE,FALSE)
ENDIF
SET_ENTITY_ONLY_DAMAGED_BY_PLAYER(vehEpsilonCar[i],FALSE)
SET_VEHICLE_AS_NO_LONGER_NEEDED(vehEpsilonCar[i])
ENDIF
ENDIF
IF DOES_ENTITY_EXIST(pedEpsilonHiSecDriver[i])
IF NOT IS_PED_UNINJURED(pedEpsilonHiSecDriver[i])
IF DOES_BLIP_EXIST(blipEpsilonHiSecDriver[i])
SAFE_REMOVE_BLIP(blipEpsilonHiSecDriver[i])
++iEpSecEvaded
++iEpsilonistsKilled
ENDIF
ELSE
IF NOT IS_ENTITY_IN_RANGE_ENTITY(pedEpsilonHiSecDriver[i],PLAYER_PED_ID(),fEscapeDistance)
IF DOES_BLIP_EXIST(blipEpsilonHiSecDriver[i])
IF NOT IS_ENTITY_ON_SCREEN(pedEpsilonHiSecDriver[i])
SAFE_REMOVE_BLIP(blipEpsilonHiSecDriver[i])
SAFE_DELETE_PED(pedEpsilonHiSecDriver[i])
IF DOES_ENTITY_EXIST(vehEpsilonCar[i])
IF NOT IS_ENTITY_DEAD(vehEpsilonCar[i])
IF NOT IS_ENTITY_ON_SCREEN(vehEpsilonCar[i])
SAFE_DELETE_VEHICLE(vehEpsilonCar[i])
ENDIF
ENDIF
ENDIF
++iEpSecEvaded
ENDIF
ENDIF
ELSE
//IF IS_PED_DOING_DRIVEBY(pedEpsilonHiSecDriver[i])
// SET_PED_FIRING_PATTERN(pedEpsilonHiSecDriver[i],FIRING_PATTERN_BURST_FIRE_DRIVEBY)
//ENDIF
IF DOES_BLIP_EXIST(blipEpsilonHiSecDriver[i]) //if the player just stays at compound shooting, make the guys drive to the closest entrance, then attack on foot
IF i <> 0
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-367.561707,-107.370163,32.445591>>, <<-356.058563,-74.557419,50.422489>>, 82.250000)
IF IS_ENTITY_IN_ANGLED_AREA(pedEpsilonHiSecDriver[i], <<-361.797729,-108.584549,67.124771>>, <<-347.599182,-65.633202,36.464310>>, 174.750000)
SET_PED_COMBAT_ATTRIBUTES(pedEpsilonHiSecDriver[i],CA_USE_VEHICLE,FALSE)
IF GET_SCRIPT_TASK_STATUS(pedEpsilonHiSecDriver[i],SCRIPT_TASK_COMBAT) <> PERFORMING_TASK
TASK_COMBAT_PED(pedEpsilonHiSecDriver[i],PLAYER_PED_ID())
ENDIF
bEpsDriverForcedToLeaveVeh[i] = TRUE
ELSE
SET_PED_COMBAT_ATTRIBUTES(pedEpsilonHiSecDriver[i],CA_USE_VEHICLE,TRUE)
IF NOT IS_ENTITY_DEAD(vehEpsilonCar[i])
IF GET_SCRIPT_TASK_STATUS(pedEpsilonHiSecDriver[i],SCRIPT_TASK_VEHICLE_DRIVE_TO_COORD) <> PERFORMING_TASK
IF GET_DISTANCE_BETWEEN_COORDS(GET_ENTITY_COORDS(pedEpsilonHiSecDriver[i]),vCompoundBack) < GET_DISTANCE_BETWEEN_COORDS(GET_ENTITY_COORDS(pedEpsilonHiSecDriver[i]),vCompoundFront)
TASK_VEHICLE_DRIVE_TO_COORD(pedEpsilonHiSecDriver[i],vehEpsilonCar[i],vCompoundBack,50.0,DRIVINGSTYLE_NORMAL,GET_ENTITY_MODEL(vehEpsilonCar[i]),DRIVINGMODE_AVOIDCARS_RECKLESS,7.0,1.0)
ELSE
TASK_VEHICLE_DRIVE_TO_COORD(pedEpsilonHiSecDriver[i],vehEpsilonCar[i],vCompoundFront,50.0,DRIVINGSTYLE_NORMAL,GET_ENTITY_MODEL(vehEpsilonCar[i]),DRIVINGMODE_AVOIDCARS_RECKLESS,7.0,1.0)
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
SET_PED_COMBAT_ATTRIBUTES(pedEpsilonHiSecDriver[i],CA_USE_VEHICLE,TRUE)
IF bEpsDriverForcedToLeaveVeh[i] = TRUE
IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
IF NOT IS_ENTITY_DEAD(vehEpsilonCar[i])
IF IS_PED_IN_VEHICLE(pedEpsilonHiSecDriver[i],vehEpsilonCar[i])
bEpsDriverForcedToLeaveVeh[i] = FALSE
ELSE
IF IS_PED_UNINJURED(pedEpsilonHiSecDriver[i])
IF GET_SCRIPT_TASK_STATUS(pedEpsilonHiSecDriver[i],SCRIPT_TASK_ENTER_VEHICLE) <> PERFORMING_TASK
TASK_ENTER_VEHICLE(pedEpsilonHiSecDriver[i],vehEpsilonCar[i])
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
//DRIVING AI SWITCH
IF GET_SCRIPT_TASK_STATUS(pedEpsilonHiSecDriver[i],SCRIPT_TASK_COMBAT) <> PERFORMING_TASK
TASK_COMBAT_PED(pedEpsilonHiSecDriver[i],PLAYER_PED_ID())
ENDIF
//IF GET_SCRIPT_TASK_STATUS(pedEpsilonHiSecDriver[i],SCRIPT_TASK_VEHICLE_MISSION) <> PERFORMING_TASK //comment back in for proper driving ai
// TASK_VEHICLE_ESCORT(pedEpsilonHiSecDriver[i],vehEpsilonCar[i],PLAYER_PED_ID(),VEHICLE_ESCORT_FRONT,200.0,DRIVINGMODE_AVOIDCARS_RECKLESS)
//ENDIF
ENDIF
ENDIF
ENDIF
IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
IF NOT IS_ENTITY_DEAD(vehEpsilonCar[i])
IF IS_PED_IN_VEHICLE(pedEpsilonHiSecDriver[i],vehEpsilonCar[i])
//IF GET_SCRIPT_TASK_STATUS(pedEpsilonHiSecDriver[i],SCRIPT_TASK_VEHICLE_MISSION) <> PERFORMING_TASK //comment back in for proper driving ai
// TASK_VEHICLE_ESCORT(pedEpsilonHiSecDriver[i],vehEpsilonCar[i],PLAYER_PED_ID(),VEHICLE_ESCORT_FRONT,200.0,DRIVINGMODE_AVOIDCARS_RECKLESS)
//ENDIF
ENDIF
ENDIF
ENDIF
IF IS_PED_SITTING_IN_ANY_VEHICLE(pedEpsilonHiSecDriver[i])
SET_BLIP_SCALE(blipEpsilonHiSecDriver[i],fLargeBlipScale)
//vPlayer = GET_ENTITY_COORDS(PLAYER_PED_ID())
//vEpsilonHiSecDriver[i] = GET_ENTITY_COORDS(pedEpsilonHiSecDriver[i])
IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
IF bDriveByTaskGiven[i] = FALSE
IF fDistBetweenPlayerAndDriver <= 50.0
//TASK_DRIVE_BY(pedEpsilonHiSecDriver[i],PLAYER_PED_ID(),NULL,<<0.0,0.0,0.0>>,600.0,70,TRUE)
bDriveByTaskGiven[i] = TRUE
ENDIF
ELSE
IF fDistBetweenPlayerAndDriver > 50.0
bDriveByTaskGiven[i] = FALSE
ENDIF
ENDIF
ENDIF
ELSE
SET_BLIP_SCALE(blipEpsilonHiSecDriver[i],fSmallBlipScale)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF DOES_ENTITY_EXIST(pedEpsilonHiSecShotgun[i])
IF NOT IS_PED_UNINJURED(pedEpsilonHiSecShotgun[i])
IF DOES_BLIP_EXIST(blipEpsilonHiSecShotgun[i])
SAFE_REMOVE_BLIP(blipEpsilonHiSecShotgun[i])
++iEpSecEvaded
++iEpsilonistsKilled
ENDIF
ELSE
IF NOT IS_ENTITY_IN_RANGE_ENTITY(pedEpsilonHiSecShotgun[i],PLAYER_PED_ID(),fEscapeDistance)
IF DOES_BLIP_EXIST(blipEpsilonHiSecShotgun[i])
IF NOT IS_ENTITY_ON_SCREEN(pedEpsilonHiSecShotgun[i])
SAFE_REMOVE_BLIP(blipEpsilonHiSecShotgun[i])
SAFE_DELETE_PED(pedEpsilonHiSecShotgun[i])
++iEpSecEvaded
ENDIF
ENDIF
ELSE
SET_PED_FIRING_PATTERN(pedEpsilonHiSecShotgun[i],FIRING_PATTERN_BURST_FIRE_DRIVEBY)
//IF IS_PED_DOING_DRIVEBY(pedEpsilonHiSecShotgun[i])
//SET_PED_FIRING_PATTERN(pedEpsilonHiSecShotgun[i],FIRING_PATTERN_BURST_FIRE_DRIVEBY)
//ENDIF
ENDIF
ENDIF
ENDIF
IF iVehThief <> -1
IF NOT IS_PED_UNINJURED(pedEpsilonHiSecurity[iVehThief])
iVehThief = -1
bSecurityStealingTailgater = FALSE
ELSE
IF GET_SCRIPT_TASK_STATUS(pedEpsilonHiSecurity[iVehThief],SCRIPT_TASK_VEHICLE_MISSION) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(pedEpsilonHiSecurity[iVehThief],SCRIPT_TASK_VEHICLE_MISSION) <> WAITING_TO_START_TASK
TASK_VEHICLE_MISSION_PED_TARGET(pedEpsilonHiSecurity[iVehThief],vehPlayerCar,PLAYER_PED_ID(),MISSION_FLEE,40.0,DRIVINGMODE_AVOIDCARS_RECKLESS,100.0,30.0)
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "**** Someone told to steal the car ****")
#ENDIF
ENDIF
ENDIF
ENDIF
IF DOES_ENTITY_EXIST(pedEpsilonHiSecurity[i])
IF NOT IS_PED_UNINJURED(pedEpsilonHiSecurity[i])
IF DOES_BLIP_EXIST(blipEpsilonHiSecurity[i])
SAFE_REMOVE_BLIP(blipEpsilonHiSecurity[i])
++iEpSecEvaded
++iEpsilonistsKilled
ENDIF
ELSE
IF NOT IS_ENTITY_IN_RANGE_ENTITY(pedEpsilonHiSecurity[i],PLAYER_PED_ID(),fOnFootEscapeDistance)
IF NOT IS_PED_IN_VEHICLE(pedEpsilonHiSecurity[i],vehPlayerCar)
IF DOES_BLIP_EXIST(blipEpsilonHiSecurity[i])
SAFE_REMOVE_BLIP(blipEpsilonHiSecurity[i])
IF iVehThief = i
iVehThief = -1
bSecurityStealingTailgater = FALSE
ENDIF
++iEpSecEvaded
ENDIF
ENDIF
ELSE
IF i <> 5 //Don't make the guy in the heli try to steal the car
IF bSecurityStealingTailgater = FALSE
IF bNoCashLeftInCar = FALSE
IF IS_ENTITY_IN_RANGE_ENTITY(pedEpsilonHiSecurity[i],vehPlayerCar,60)
IF NOT IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),vehPlayerCar,30)
IF NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehPlayerCar)
IF IS_VEHICLE_SEAT_FREE(vehPlayerCar)
iVehThief = i
IF bPlayerAtHelipad = TRUE
SET_ROADS_IN_ANGLED_AREA(<<-397.618073,-63.278549,42.658855>>, <<-345.021851,-93.334587,49.657681>>, 24.750000,FALSE,TRUE)
ENDIF
CLEAR_PED_TASKS(pedEpsilonHiSecurity[iVehThief])
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedEpsilonHiSecurity[iVehThief],TRUE)
SET_PED_COMBAT_ATTRIBUTES(pedEpsilonHiSecurity[iVehThief],CA_USE_VEHICLE,TRUE)
bSecurityStealingTailgater = TRUE
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF i = 1
OR i = 4
IF NOT IS_PED_UNINJURED(pedEpsilonist)
IF DOES_BLIP_EXIST(blipRandomChar)
SAFE_REMOVE_BLIP(blipRandomChar)
REMOVE_PED_FOR_DIALOGUE(s_conversation_peds,2)
++iEpSecEvaded
++iEpsilonistsKilled
ENDIF
ELSE
IF NOT IS_ENTITY_IN_RANGE_ENTITY(pedEpsilonist,PLAYER_PED_ID(),fOnFootEscapeDistance)
IF DOES_BLIP_EXIST(blipRandomChar)
SAFE_REMOVE_BLIP(blipRandomChar)
++iEpSecEvaded
ENDIF
ENDIF
ENDIF
ENDIF
IF i = 2
OR i = 6
IF NOT IS_PED_UNINJURED(pedPilot)
IF DOES_BLIP_EXIST(blipPilot)
IF NOT IS_ENTITY_DEAD(vehEpsilonChopper)
//SET_ENTITY_COLLISION(vehEpsilonChopper,TRUE)
SET_VEHICLE_OUT_OF_CONTROL(vehEpsilonChopper,FALSE)
bOverrideHeliColl = TRUE
ENDIF
iTimerHeliDead = GET_GAME_TIMER()
REMOVE_PED_FOR_DIALOGUE(s_conversation_peds,3)
SAFE_REMOVE_BLIP(blipPilot)
++iEpSecEvaded
++iEpsilonistsKilled
ENDIF
ELSE
IF NOT IS_ENTITY_IN_RANGE_ENTITY(pedPilot,PLAYER_PED_ID(),fHeliEscapeDistance)
AND GET_GAME_TIMER() > iTimerPlayerStoleMoney + 15000
IF DOES_BLIP_EXIST(blipPilot)
IF NOT IS_ENTITY_ON_SCREEN(pedPilot)
iTimerHeliDead = GET_GAME_TIMER()
REMOVE_PED_FOR_DIALOGUE(s_conversation_peds,3)
SAFE_REMOVE_BLIP(blipPilot)
SAFE_DELETE_PED(pedPilot)
IF DOES_ENTITY_EXIST(vehEpsilonChopper)
IF NOT IS_ENTITY_DEAD(vehEpsilonChopper)
IF NOT IS_ENTITY_DEAD(pedChopperShotgun)
IF IS_PED_IN_VEHICLE(pedChopperShotgun,vehEpsilonChopper)
SAFE_DELETE_PED(pedChopperShotgun)
ENDIF
ENDIF
IF bChopperBeingJacked = FALSE
IF NOT IS_ENTITY_DEAD(PLAYER_PED_ID())
IF NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehEpsilonChopper)
IF NOT IS_ENTITY_ON_SCREEN(vehEpsilonChopper)
SAFE_DELETE_VEHICLE(vehEpsilonChopper)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
++iEpSecEvaded
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
/*
IF NOT IS_ENTITY_DEAD(vehEpsilonChopper) // Detach sniper if player steals heli, kill shooter and pilot if heli crashes
IF NOT IS_VEHICLE_DRIVEABLE(vehEpsilonChopper)
IF NOT IS_ENTITY_DEAD(pedChopperShotgun)
SET_ENTITY_HEALTH(pedChopperShotgun,0)
ENDIF
IF NOT IS_ENTITY_DEAD(pedPilot)
SET_ENTITY_HEALTH(pedPilot,0)
ENDIF
ENDIF
ELSE
IF NOT IS_ENTITY_DEAD(pedChopperShotgun)
SET_ENTITY_HEALTH(pedChopperShotgun,0)
ENDIF
ENDIF
*/
++i
IF i = 7
i = 0
ENDIF
ENDPROC
/// PURPOSE: // Handle Ai/dialogue for helicopter
PROC HelicopterHostile()
IF IS_PED_UNINJURED(pedPilot)
IF IS_VEHICLE_OK(vehEpsilonChopper)
IF IS_PED_IN_VEHICLE(pedPilot,vehEpsilonChopper)
IF IS_ENTITY_ALIVE(vehPlayerCar)
IF CONTROL_MOUNTED_WEAPON(pedPilot)
SET_MOUNTED_WEAPON_TARGET(pedPilot,NULL,vehPlayerCar,<<0,0,0>>)
ENDIF
ENDIF
IF bChopperBeingJacked = FALSE
vPlayer = GET_ENTITY_COORDS(PLAYER_PED_ID())
iZ = ROUND(vPlayer.z + 20.0)
IF iZ = 0
ENDIF
IF iHeliGivenUp < 2
IF iSeqHeli = 0
IF bHeliCantSeePlayer = FALSE
IF bOnlyHeliLeft = FALSE
//TASK_HELI_MISSION(pedPilot,vehEpsilonChopper,NULL,PLAYER_PED_ID(),vPlayer,MISSION_POLICE_BEHAVIOUR,fHeliSpeed,2.0,-1,(iZ + 10),35) //target reach 2.0
//TASK_HELI_CHASE(pedPilot,PLAYER_PED_ID(),<<0,-20,0>>)
IF IS_ENTITY_ALIVE(vehPlayerCar)
TASK_HELI_MISSION(pedPilot,vehEpsilonChopper,vehPlayerCar,NULL,<<0,0,0>>,MISSION_GOTO,fHeliSpeed,50,-1,-1,40) //MISSION_GOTO
ENDIF
//TASK_HELI_MISSION(pedPilot,vehEpsilonChopper,NULL,PLAYER_PED_ID(),vPlayer,MISSION_GOTO,fHeliSpeed,-1,-1,(iZ + 10),35)
//IF NOT IS_ENTITY_DEAD(vehPlayerCar)
// TASK_HELI_MISSION(pedPilot,vehEpsilonChopper,vehPlayerCar,NULL,GET_ENTITY_COORDS(vehPlayerCar),MISSION_GOTO,fHeliSpeed,-1,-1,(iZ + 10),35)
//ENDIF
ENDIF
ELSE
TASK_HELI_MISSION(pedPilot,vehEpsilonChopper,NULL,NULL,GET_ENTITY_COORDS(vehEpsilonChopper),MISSION_GOTO,0.1,-1,-1,iZ + 100,100)
ENDIF
iTimerHeliSeq = GET_GAME_TIMER()
iSeqHeli = 1
ELIF iSeqHeli = 1
IF GET_GAME_TIMER() > iTimerPlayerStoleMoney + 10000
IF NOT IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
AND GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(),vehEpsilonChopper,FALSE) < 85.0
IF iNodeNumber < 25
GET_NTH_CLOSEST_VEHICLE_NODE(vPlayer,iNodeNumber,vHeliTarget)
IF IS_ENTITY_IN_RANGE_COORDS(PLAYER_PED_ID(),vHeliTarget,65.0)
AND NOT IS_ENTITY_IN_RANGE_COORDS(PLAYER_PED_ID(),vHeliTarget,40.0)
//fHeadingHeliTarget = GET_HEADING_FROM_COORDS(vHeliTarget,vPlayer)
IF NOT IS_ENTITY_DEAD(pedChopperShotgun)
IF bHeliCantSeePlayer = FALSE
//TASK_HELI_MISSION(pedPilot,vehEpsilonChopper,NULL,NULL,vHeliTarget,MISSION_GOTO,5.1,5.0,fHeadingHeliTarget + 90.0,(iZ),24)
ELSE
//TASK_HELI_MISSION(pedPilot,vehEpsilonChopper,NULL,NULL,GET_ENTITY_COORDS(vehEpsilonChopper),MISSION_GOTO,0.1,-1,-1,iZ + 100,100)
ENDIF
ELSE
IF bHeliCantSeePlayer = FALSE
//TASK_HELI_MISSION(pedPilot,vehEpsilonChopper,NULL,NULL,vHeliTarget,MISSION_GOTO,5.1,5.0,fHeadingHeliTarget,(iZ),24)
ELSE
//TASK_HELI_MISSION(pedPilot,vehEpsilonChopper,NULL,NULL,GET_ENTITY_COORDS(vehEpsilonChopper),MISSION_GOTO,0.1,-1,-1,iZ + 100,100)
ENDIF
ENDIF
iTimerHeliSeq = GET_GAME_TIMER()
iSeqHeli = 2
iNodeNumber = 1
ELSE
++iNodeNumber
ENDIF
ELSE
IF NOT IS_ENTITY_DEAD(pedChopperShotgun)
IF bHeliCantSeePlayer = FALSE
//TASK_HELI_MISSION(pedPilot,vehEpsilonChopper,NULL,NULL,GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(PLAYER_PED_ID(),<<0.0,40.0,0.0>>),MISSION_GOTO,10.0,2.0,(GET_ENTITY_HEADING(PLAYER_PED_ID()) - 90.0),(iZ + 10),35)
ELSE
//TASK_HELI_MISSION(pedPilot,vehEpsilonChopper,NULL,NULL,GET_ENTITY_COORDS(vehEpsilonChopper),MISSION_GOTO,0.1,-1,-1,iZ + 100,100)
ENDIF
ELSE
IF bHeliCantSeePlayer = FALSE
//TASK_HELI_MISSION(pedPilot,vehEpsilonChopper,NULL,NULL,GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(PLAYER_PED_ID(),<<0.0,40.0,0.0>>),MISSION_GOTO,10.0,2.0,(GET_ENTITY_HEADING(PLAYER_PED_ID()) + 180.0),(iZ + 10),35)
ELSE
//TASK_HELI_MISSION(pedPilot,vehEpsilonChopper,NULL,NULL,GET_ENTITY_COORDS(vehEpsilonChopper),MISSION_GOTO,0.1,-1,-1,iZ + 100,100)
ENDIF
ENDIF
iTimerHeliSeq = GET_GAME_TIMER()
iSeqHeli = 2
iNodeNumber = 1
ENDIF
ENDIF
ENDIF
ELIF iSeqHeli = 2
iTimerHeliSeqUpdate = GET_GAME_TIMER()
IF iTimerHeliSeqUpdate > iTimerHeliSeq + 20000
OR NOT IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),vehEpsilonChopper,85.0)
OR IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
iSeqHeli = 0
ENDIF
ENDIF
IF GET_GAME_TIMER() > iTimerPlayerStoleMoney + 8000
IF iEpSecBlipped = iEpSecEvaded + 1 //only the helicopter is left
OR bOnlyHeliLeft = TRUE
bOnlyHeliLeft = TRUE
IF NOT IS_MOBILE_PHONE_CALL_ONGOING()
IF bPrintEvadeHeli = FALSE
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehPlayerCar)
//PRINT_NOW("EPS8_24",DEFAULT_GOD_TEXT_TIME,0)
bPrintEvadeHeli = TRUE
ENDIF
ENDIF
IF bOnlyHeliLeftConvo = FALSE
//IF NOT IS_THIS_PRINT_BEING_DISPLAYED("EPS8_24")
IF CREATE_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_HEL3", CONV_PRIORITY_MEDIUM) //Any guys on the ground still with us?
bOnlyHeliLeftConvo = TRUE
ENDIF
//ENDIF
ENDIF
IF fHeliEscapeDistance > 300.0
fHeliEscapeDistance = fHeliEscapeDistance - 0.1 //0.2 //reducing heli escape distance
ENDIF
IF fHeliSpeed > 28.0
fHeliSpeed = fHeliSpeed - 0.02 //0.04 //reducing heli speed
ENDIF
ENDIF
IF iHeliTask = 0
//IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
IF bHeliCantSeePlayer = FALSE
//IF NOT IS_ENTITY_DEAD(vehPlayerCar)
// TASK_HELI_MISSION(pedPilot,vehEpsilonChopper,vehPlayerCar,NULL,GET_ENTITY_COORDS(vehPlayerCar),MISSION_GOTO,fHeliSpeed,2.0,-1,(iZ + 10),35)
//ENDIF
IF IS_ENTITY_ALIVE(vehPlayerCar)
//TASK_HELI_MISSION(pedPilot,vehEpsilonChopper,vehPlayerCar,NULL,<<0,0,0>>,MISSION_POLICE_BEHAVIOUR,fHeliSpeed,2.0,-1,-1,50) //target reach 2.0
TASK_HELI_MISSION(pedPilot,vehEpsilonChopper,vehPlayerCar,NULL,<<0,0,0>>,MISSION_GOTO,fHeliSpeed,50,-1,-1,40)
ENDIF
//TASK_HELI_CHASE(pedPilot,PLAYER_PED_ID(),<<0,-40,40>>)
//TASK_HELI_MISSION(pedPilot,vehEpsilonChopper,NULL,PLAYER_PED_ID(),vPlayer,MISSION_POLICE_BEHAVIOUR,fHeliSpeed,2.0,-1,(iZ + 10),35)
SET_DRIVE_TASK_CRUISE_SPEED(pedPilot,fHeliSpeed)
++iHeliTask
ENDIF
//ENDIF
ELSE
++iHeliTask
IF iHeliTask > 30
iHeliTask = 0
ENDIF
ENDIF
IF iConvoChaseCar > 3
IF CAN_HELI_PILOT_SEE_PLAYER(pedPilot) //Heli gives up if it cant see player for a while
iHeliGivenUp = 0
IF bHeliCantSeePlayer = TRUE
TASK_HELI_MISSION(pedPilot,vehEpsilonChopper,NULL,PLAYER_PED_ID(),vPlayer,MISSION_CIRCLE,200.0,2.0,-1,(iZ + 10),50)
IF iHeliNoLosConvoCounter > 0
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF iHeliSpotPlayerConvo = 0 //Ah! There he is!
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_HEL2", "EPS8_HEL2_1", CONV_PRIORITY_VERY_LOW)
iHeliSpotPlayerConvo = 1
ENDIF
ELIF iHeliSpotPlayerConvo = 1 //Eyes on the fucker!
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_HEL2", "EPS8_HEL2_2", CONV_PRIORITY_VERY_LOW)
iHeliSpotPlayerConvo = 2
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
bHeliCantSeePlayer = FALSE
IF IS_PED_UNINJURED(pedChopperShotgun)
IF GET_SCRIPT_TASK_STATUS(pedChopperShotgun,SCRIPT_TASK_COMBAT) <> PERFORMING_TASK
IF GET_SCRIPT_TASK_STATUS(pedChopperShotgun,SCRIPT_TASK_PERFORM_SEQUENCE) <> PERFORMING_TASK
TASK_COMBAT_PED(pedChopperShotgun,PLAYER_PED_ID())
ENDIF
ENDIF
ENDIF
ELSE
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehPlayerCar)
IF iHeliGivenUp = 0
iTimerHeliLostSightOfPlayer = GET_GAME_TIMER()
iHeliGivenUp = 1
ELIF iHeliGivenUp = 1
iTimerHeliLostSightOfPlayerUpdate = GET_GAME_TIMER()
IF iTimerHeliLostSightOfPlayerUpdate > iTimerHeliLostSightOfPlayer + 4000
IF IS_PED_UNINJURED(pedChopperShotgun)
CLEAR_PED_TASKS(pedChopperShotgun)
ENDIF
IF bHeliCantSeePlayer = FALSE
TASK_HELI_MISSION(pedPilot,vehEpsilonChopper,NULL,NULL,GET_ENTITY_COORDS(vehEpsilonChopper),MISSION_GOTO,0.1,-1,-1,-1,100)
ENDIF
bHeliCantSeePlayer = TRUE
ENDIF
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF iTimerHeliLostSightOfPlayerUpdate > iTimerHeliLostSightOfPlayer + 10000
IF iHeliNoLosConvoCounter = 0 //I can't see him...
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_CH2", "EPS8_CH2_9", CONV_PRIORITY_VERY_LOW)
iHeliNoLosConvoCounter = 1
ENDIF
ENDIF
ENDIF
IF iTimerHeliLostSightOfPlayerUpdate > iTimerHeliLostSightOfPlayer + 25000
IF iHeliNoLosConvoCounter = 1 //Anyone see where he went?
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_CH2", "EPS8_CH2_10", CONV_PRIORITY_VERY_LOW)
iHeliNoLosConvoCounter = 2
ENDIF
ENDIF
ENDIF
IF iTimerHeliLostSightOfPlayerUpdate > iTimerHeliLostSightOfPlayer + 40000
IF iHeliNoLosConvoCounter = 2 //I gotta head back, nearly out of fuel... Fuck.
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_CH2", "EPS8_CH2_11", CONV_PRIORITY_VERY_LOW)
REPLAY_RECORD_BACK_FOR_TIME(5.0, 5.0, REPLAY_IMPORTANCE_LOW )
iHeliNoLosConvoCounter = 3
iHeliGivenUp = 2
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ELSE //heli gives up and flies away
TASK_HELI_MISSION(pedPilot,vehEpsilonChopper,NULL,NULL,<<vPlayer.x + 600.0,vPlayer.y + 600.0, vPlayer.z + 100.0>>,MISSION_GOTO,200.0,-1,-1,-1,100)
SET_ENTITY_COLLISION(vehEpsilonChopper,FALSE)
bOverrideHeliColl = TRUE
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDPROC
/// PURPOSE: //Checks all the fail conditions
PROC CheckForFail()
IF bNoCashLeftInCar = FALSE
IF bChopperBeingJacked = FALSE
IF DOES_ENTITY_EXIST(vehPlayerCar)
IF IS_ENTITY_DEAD(vehPlayerCar)
IF bPlayerCarDestroyed = FALSE
iTimerPlayerCarDestroyed = GET_GAME_TIMER()
bPlayerCarDestroyed = TRUE
ELSE
IF GET_GAME_TIMER() > iTimerPlayerCarDestroyed + 100 //delay to fix assert
IF IS_ENTITY_IN_WATER(vehPlayerCar)
sFailReason = "EPS8_19" // ~r~The car was wrecked.
ELSE
sFailReason = "EPS8_18" // ~r~The cash was destroyed.
ENDIF
missionStage = MS_MISSION_FAILING
ENDIF
ENDIF
ELSE
IF IS_VEHICLE_STUCK_TIMER_UP(vehPlayerCar,VEH_STUCK_ON_ROOF,5000)
OR IS_VEHICLE_STUCK_TIMER_UP(vehPlayerCar,VEH_STUCK_ON_SIDE,20000)
OR IS_VEHICLE_STUCK_TIMER_UP(vehPlayerCar,VEH_STUCK_HUNG_UP,30000)
OR IS_VEHICLE_STUCK_TIMER_UP(vehPlayerCar,VEH_STUCK_JAMMED,60000)
sFailReason = "EPS8_19" // ~r~The car was wrecked.
missionStage = MS_MISSION_FAILING
ENDIF
IF NOT IS_VEHICLE_DRIVEABLE(vehPlayerCar)
IF bPlayerCarDestroyed = FALSE
iTimerPlayerCarDestroyed = GET_GAME_TIMER()
bPlayerCarDestroyed = TRUE
ELSE
IF GET_GAME_TIMER() > iTimerPlayerCarDestroyed + 100 //delay to fix assert
sFailReason = "EPS8_19" // ~r~The car was wrecked.
missionStage = MS_MISSION_FAILING
ENDIF
ENDIF
ENDIF
IF missionStage <> MS_WALKING_TO_REWARD
IF bMessagePrintedLeavingCash = FALSE
IF NOT IS_ENTITY_IN_RANGE_ENTITY(vehPlayerCar,PLAYER_PED_ID(),150.0)
IF iVehThief <> -1
AND IS_PED_UNINJURED(pedEpsilonHiSecurity[iVehThief])
AND IS_PED_IN_VEHICLE(pedEpsilonHiSecurity[iVehThief],vehPlayerCar)
PRINT_NOW("EPS8_25",DEFAULT_GOD_TEXT_TIME,0) // Don't let the ~b~car~s~ get away.
ELSE
PRINT_NOW("EPS8_16",DEFAULT_GOD_TEXT_TIME,0) // Don't leave the ~b~cash~s~ behind.
ENDIF
bMessagePrintedLeavingCash = TRUE
ENDIF
ELSE
IF NOT IS_THIS_PRINT_BEING_DISPLAYED("EPS8_25")
AND NOT IS_THIS_PRINT_BEING_DISPLAYED("EPS8_16")
IF NOT IS_ENTITY_IN_RANGE_ENTITY(vehPlayerCar,PLAYER_PED_ID(),230.0)
IF iVehThief <> -1
AND IS_PED_UNINJURED(pedEpsilonHiSecurity[iVehThief])
AND IS_PED_IN_VEHICLE(pedEpsilonHiSecurity[iVehThief],vehPlayerCar)
sFailReason = "EPS8_26" // You lost the car.
ELSE
sFailReason = "EPS8_17" // ~r~You left the cash behind.
ENDIF
missionStage = MS_MISSION_FAILING
ELIF IS_ENTITY_IN_RANGE_ENTITY(vehPlayerCar,PLAYER_PED_ID(),100.0)
//bMessagePrintedLeavingCash = FALSE
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
IF DOES_ENTITY_EXIST(vehEpsilonChopper)
IF IS_ENTITY_DEAD(vehEpsilonChopper)
sFailReason = "EPS8_18" // ~r~The cash was destroyed.
missionStage = MS_MISSION_FAILING
ELSE
IF NOT IS_VEHICLE_DRIVEABLE(vehEpsilonChopper)
sFailReason = "EPS8_18" // ~r~The cash was destroyed.
missionStage = MS_MISSION_FAILING
ENDIF
IF missionStage <> MS_WALKING_TO_REWARD
IF bMessagePrintedLeavingCash = FALSE
IF NOT IS_ENTITY_IN_RANGE_ENTITY(vehEpsilonChopper,PLAYER_PED_ID(),150.0)
PRINT_NOW("EPS8_16",DEFAULT_GOD_TEXT_TIME,0) // Don't leave the ~b~cash~s~ behind.
bMessagePrintedLeavingCash = TRUE
ENDIF
ELSE
IF NOT IS_ENTITY_IN_RANGE_ENTITY(vehEpsilonChopper,PLAYER_PED_ID(),230.0)
sFailReason = "EPS8_17" // ~r~You left the cash behind.
missionStage = MS_MISSION_FAILING
ELIF IS_ENTITY_IN_RANGE_ENTITY(vehEpsilonChopper,PLAYER_PED_ID(),100.0)
bMessagePrintedLeavingCash = FALSE
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDPROC
/// PURPOSE: //Adds all the cars to the mix group for dynamic mixing
PROC AddCarsToMix()
IF IS_VEHICLE_OK(vehEpsilonCar[0])
ADD_ENTITY_TO_AUDIO_MIX_GROUP(vehEpsilonCar[0], "EPSILONISM_08_CLOSE_CAR_MG")
ENDIF
IF IS_VEHICLE_OK(vehEpsilonCar[1])
ADD_ENTITY_TO_AUDIO_MIX_GROUP(vehEpsilonCar[1], "EPSILONISM_08_CLOSE_CAR_MG")
ENDIF
IF IS_VEHICLE_OK(vehEpsilonCar[2])
ADD_ENTITY_TO_AUDIO_MIX_GROUP(vehEpsilonCar[2], "EPSILONISM_08_CLOSE_CAR_MG")
ENDIF
IF IS_VEHICLE_OK(vehEpsilonCar[3])
ADD_ENTITY_TO_AUDIO_MIX_GROUP(vehEpsilonCar[3], "EPSILONISM_08_CLOSE_CAR_MG")
ENDIF
IF IS_VEHICLE_OK(vehEpsilonCar[4])
ADD_ENTITY_TO_AUDIO_MIX_GROUP(vehEpsilonCar[4], "EPSILONISM_08_CLOSE_CAR_MG")
ENDIF
IF IS_VEHICLE_OK(vehEpsilonCar[5])
ADD_ENTITY_TO_AUDIO_MIX_GROUP(vehEpsilonCar[5], "EPSILONISM_08_CLOSE_CAR_MG")
ENDIF
IF IS_VEHICLE_OK(vehEpsilonCar[6])
ADD_ENTITY_TO_AUDIO_MIX_GROUP(vehEpsilonCar[6], "EPSILONISM_08_CLOSE_CAR_MG")
ENDIF
ENDPROC
/// PURPOSE: //Manage transition to stealing/not stealing money
PROC ManageTransitions()
IF missionStage = MS_DRIVING_TO_CHOPPER
OR missionStage = MS_PARKING_AT_CHOPPER
OR missionStage = MS_PARKED_AT_CHOPPER
OR missionStage = MS_EXITED_CAR
OR missionStage = MS_WALKING_TO_REWARD
IF bPlayerGaveMoney = TRUE
IF IS_PED_UNINJURED(pedEpsilonist)
//IF NOT IS_ENTITY_PLAYING_ANIM(pedEpsilonist,"rcmepsilonism8","c1_pose")
IF NOT IS_ENTITY_PLAYING_ANIM(pedEpsilonist,"rcmepsilonism8","worship_enter")
AND NOT IS_ENTITY_PLAYING_ANIM(pedEpsilonist,"rcmepsilonism8","worship_base")
AND NOT IS_ENTITY_PLAYING_ANIM(pedEpsilonist,"rcmepsilonism8","worship_idle_a")
IF NOT IS_ENTITY_PLAYING_ANIM(pedEpsilonist,"rcmepsilonism8","worship_exit")
i = 0
PlayerGaveMoneyHeliFlyAway()
Script_Passed()
ELSE
FLOAT fStartTagOut
FLOAT fEndTagOut
IF FIND_ANIM_EVENT_PHASE("rcmepsilonism8","worship_exit","WalkInterruptible",fStartTagOut,fEndTagOut)
AND GET_ENTITY_ANIM_CURRENT_TIME(pedEpsilonist,"rcmepsilonism8","worship_exit") >= fStartTagOut
FORCE_PED_MOTION_STATE(pedEpsilonist,MS_ON_FOOT_RUN,FALSE,FAUS_DEFAULT)
SET_PED_KEEP_TASK(pedEpsilonist,TRUE)
TASK_FOLLOW_NAV_MESH_TO_COORD(pedEpsilonist,<<-355.7390, -181.6352, 36.7355>>,PEDMOVEBLENDRATIO_RUN,-1,3.0,ENAV_DEFAULT)
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedEpsilonist,FALSE)
SET_PED_AS_NO_LONGER_NEEDED(pedEpsilonist)
i = 0
PlayerGaveMoneyHeliFlyAway()
Script_Passed()
ELSE
IF GET_ENTITY_ANIM_CURRENT_TIME(pedEpsilonist,"rcmepsilonism8","worship_exit") >= 0.880//0.890
FORCE_PED_MOTION_STATE(pedEpsilonist,MS_ON_FOOT_RUN,FALSE,FAUS_DEFAULT)
SET_PED_KEEP_TASK(pedEpsilonist,TRUE)
TASK_FOLLOW_NAV_MESH_TO_COORD(pedEpsilonist,<<-355.7390, -181.6352, 36.7355>>,PEDMOVEBLENDRATIO_RUN,-1,3.0,ENAV_DEFAULT)
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedEpsilonist,FALSE)
SET_PED_AS_NO_LONGER_NEEDED(pedEpsilonist)
i = 0
PlayerGaveMoneyHeliFlyAway()
Script_Passed()
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF bPlayerStoleMoney = TRUE
TEXT_LABEL_23 root = GET_CURRENTLY_PLAYING_STANDARD_CONVERSATION_ROOT()
IF NOT IS_STRING_NULL_OR_EMPTY(root)
IF ARE_STRINGS_EQUAL(root,"EPS8_ESC")
OR ARE_STRINGS_EQUAL(root,"EPS8_E1")
KILL_FACE_TO_FACE_CONVERSATION_DO_NOT_FINISH_LAST_LINE()
ENDIF
ENDIF
IF IS_SYNCHRONIZED_SCENE_RUNNING(issLoadHeli)
STOP_SYNCHRONIZED_ENTITY_ANIM(vehPlayerCar,NORMAL_BLEND_OUT,TRUE)
ENDIF
ENDIF
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
OR NOT bPrintEscapeWarning = TRUE
IF bPlayerStoleMoney = TRUE
//TRIGGER_MUSIC_EVENT("EPS8_EVADE_FORA")
//IF IS_PED_UNINJURED(pedEpsilonist)
// IF IS_ENTITY_PLAYING_ANIM(pedEpsilonist,"rcmepsilonism8","epsilonist_talks")
// STOP_ANIM_TASK(pedEpsilonist,"rcmepsilonism8","epsilonist_talks",SLOW_BLEND_OUT)
// ENDIF
//ENDIF
IF IS_PED_UNINJURED(pedEpsilonHiSecurity[5])
RESET_PED_WEAPON_MOVEMENT_CLIPSET(pedEpsilonHiSecurity[5])
ENDIF
KILL_CHASE_HINT_CAM(localChaseHintCamStruct)
//TEXT_LABEL_23 root = GET_CURRENTLY_PLAYING_STANDARD_CONVERSATION_ROOT()
//IF ARE_STRINGS_EQUAL(root, "EPS8_ESC")
//OR ARE_STRINGS_EQUAL(root, "EPS8_E1")
KILL_FACE_TO_FACE_CONVERSATION_DO_NOT_FINISH_LAST_LINE()
//ENDIF
SET_INSTANCE_PRIORITY_HINT(INSTANCE_HINT_DRIVING)
//SET_AUDIO_FLAG("AllowScoreAndRadio", TRUE)
//TRIGGER_MUSIC_EVENT("EPS8_EVADE_FORA")
SAFE_REMOVE_BLIP(blipEpsOnFootEscort)
REMOVE_PED_FOR_DIALOGUE(s_conversation_peds, 6)
REMOVE_PED_FOR_DIALOGUE(s_conversation_peds, 7)
REMOVE_PED_FOR_DIALOGUE(s_conversation_peds, 4)
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 6, NULL, "EPSGUARD4")
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 7, NULL, "EPSGUARD8") //EPSGUARD3
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 4, NULL, "CRIS")
AddCarsToMix()
CleanupTraffic()
IF IS_PED_UNINJURED(pedEpsilonist)
SET_PED_CAN_BE_TARGETTED(pedEpsilonist,TRUE)
SET_ENTITY_IS_TARGET_PRIORITY(pedEpsilonist,TRUE)
IF IS_ENTITY_ALIVE(vehEpsilonChopper)
AND IS_PED_IN_VEHICLE(pedEpsilonist,vehEpsilonChopper)
SET_PED_ACCURACY(pedEpsilonist,iAccuracy - iHeliSniperAccModifier)
SET_PED_SHOOT_RATE(pedEpsilonist,iShootRate + iHeliSniperSRModifier)
SET_PED_CONFIG_FLAG(pedEpsilonist,PCF_DontBehaveLikeLaw,TRUE)
GIVE_WEAPON_TO_PED(pedEpsilonist,WEAPONTYPE_ADVANCEDRIFLE,-1,FALSE,FALSE)
GIVE_WEAPON_COMPONENT_TO_PED(pedEpsilonist,WEAPONTYPE_ADVANCEDRIFLE,WEAPONCOMPONENT_AT_AR_FLSH)
GIVE_WEAPON_COMPONENT_TO_PED(pedEpsilonist,WEAPONTYPE_ADVANCEDRIFLE,WEAPONCOMPONENT_AT_SCOPE_SMALL)
SET_CURRENT_PED_WEAPON(pedEpsilonist,WEAPONTYPE_ADVANCEDRIFLE,TRUE)
SET_PED_KEEP_TASK(pedEpsilonist,TRUE)
SET_PED_COMBAT_RANGE(pedEpsilonist,CR_FAR)
SET_PED_HEARING_RANGE(pedEpsilonist,400.0)
SET_PED_SEEING_RANGE(pedEpsilonist,400.0)
SET_PED_ID_RANGE(pedEpsilonist,400.0)
SET_PED_FIRING_PATTERN(pedEpsilonist,FIRING_PATTERN_FULL_AUTO)
SET_PED_COMBAT_ATTRIBUTES(pedEpsilonist,CA_DO_DRIVEBYS,TRUE)
SET_PED_COMBAT_ATTRIBUTES(pedEpsilonist,CA_LEAVE_VEHICLES,FALSE)
TASK_COMBAT_PED(pedEpsilonist,PLAYER_PED_ID())
ENDIF
ENDIF
SET_ROADS_IN_ANGLED_AREA(<<-651.314819,121.844025,63.453121>>, <<-650.061829,0.954960,35.754333>>, 41.750000,FALSE,TRUE)
BLOCK_DISPATCH_SERVICE_RESOURCE_CREATION(DT_AMBULANCE_DEPARTMENT,FALSE)
BLOCK_DISPATCH_SERVICE_RESOURCE_CREATION(DT_FIRE_DEPARTMENT,FALSE)
i = 0
IF NOT IS_PLAYER_CONTROL_ON(PLAYER_ID())
SET_PLAYER_CONTROL(PLAYER_ID(),TRUE)
ENDIF
TASK_CLEAR_LOOK_AT(PLAYER_PED_ID())
IF NOT IS_ENTITY_DEAD(pedEpsilonHiSecurity[5])
IF NOT IS_ENTITY_DEAD(objCashBag[0])
IF IS_ENTITY_ATTACHED_TO_ENTITY(objCashBag[0],pedEpsilonHiSecurity[5])
DETACH_ENTITY(objCashBag[0])
ENDIF
ENDIF
IF NOT IS_ENTITY_DEAD(objCashBag[1])
IF IS_ENTITY_ATTACHED_TO_ENTITY(objCashBag[1],pedEpsilonHiSecurity[5])
DETACH_ENTITY(objCashBag[1])
ENDIF
ENDIF
IF NOT IS_ENTITY_DEAD(objCashBag[2])
IF IS_ENTITY_ATTACHED_TO_ENTITY(objCashBag[2],pedEpsilonHiSecurity[5])
DETACH_ENTITY(objCashBag[2])
ENDIF
ENDIF
IF NOT IS_ENTITY_DEAD(objCashBag[3])
IF IS_ENTITY_ATTACHED_TO_ENTITY(objCashBag[3],pedEpsilonHiSecurity[5])
DETACH_ENTITY(objCashBag[3])
ENDIF
ENDIF
ENDIF
iTimerPlayerStoleMoney = GET_GAME_TIMER()
CLEAR_PRINTS()
IF bNoCashLeftInCar = FALSE
IF bChopperBeingJacked = FALSE
IF NOT IS_ENTITY_DEAD(vehPlayerCar)
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehPlayerCar)
IF iEpSecEvaded <> iEpSecBlipped
IF bLoseCopsObjGiven = FALSE
PRINT_NOW("EPS8_12",DEFAULT_GOD_TEXT_TIME,0) // Escape from ~r~Epsilon's security.
ENDIF
bEscapeMessagePrinted = TRUE
ENDIF
ELSE
IF missionStage = MS_PARKED_AT_CHOPPER
OR missionStage = MS_EXITED_CAR
OR missionStage = MS_WALKING_TO_REWARD
PRINT_NOW("EPS8_11",DEFAULT_GOD_TEXT_TIME,0) // Steal the ~b~car.
ENDIF
ENDIF
ENDIF
ELSE
IF iEpSecEvaded <> iEpSecBlipped
IF bLoseCopsObjGiven = FALSE
PRINT_NOW("EPS8_12",DEFAULT_GOD_TEXT_TIME,0) // Escape from ~r~Epsilon's security.
ENDIF
bEscapeMessagePrinted = TRUE
ENDIF
ENDIF
/*
IF NOT DOES_BLIP_EXIST(blipCashBag)
IF DOES_ENTITY_EXIST(objCashBag[i2])
IF NOT IS_ENTITY_ATTACHED_TO_ANY_VEHICLE(objCashBag[i2])
blipCashBag = ADD_BLIP_FOR_ENTITY(objCashBag[i2])
SET_BLIP_COLOUR(blipCashBag,BLIP_COLOUR_GREEN)
SET_BLIP_SCALE(blipCashBag,fObjectBlipScale)
ENDIF
ENDIF
ENDIF
*/
ELSE
IF NOT DOES_BLIP_EXIST(blipLastCashBag)
blipLastCashBag = ADD_BLIP_FOR_ENTITY(objCashBag[3])
SET_BLIP_COLOUR(blipLastCashBag,BLIP_COLOUR_GREEN)
SET_BLIP_SCALE(blipLastCashBag,fObjectBlipScale)
PRINT_NOW("EPS8_21",DEFAULT_GOD_TEXT_TIME,0) // Steal the ~g~cash bag.
ENDIF
ENDIF
//Turn roads back on
/*
SET_ROADS_IN_ANGLED_AREA(<<-517.559509,-12.416608,47.145653>>, <<-549.604431,-26.475727,38.927837>>, 12.250000,FALSE,TRUE)
SET_ROADS_IN_ANGLED_AREA(<<-471.516296,-110.937531,36.399551>>, <<-393.784912,-16.179173,52.934433>>, 53.000000,FALSE,TRUE)
SET_ROADS_IN_ANGLED_AREA(<<-649.620605,87.362564,56.020050>>, <<-650.510132,2.981458,29.153057>>, 28.000000,FALSE,TRUE)
SET_ROADS_IN_ANGLED_AREA(<<-557.134094,-22.472237,24.845257>>, <<-553.822021,24.367741,52.193020>>, 4.500000,FALSE,TRUE)
SET_ROADS_IN_ANGLED_AREA(<<-703.001831,-24.123243,45.880470>>, <<-608.923767,-9.902658,29.563908>>, 12.500000,FALSE,TRUE)
SET_ROADS_IN_ANGLED_AREA(<<-564.054626,1.096008,52.370747>>, <<-402.393585,-8.127587,33.435059>>, 9.000000,FALSE,TRUE)
SET_ROADS_IN_ANGLED_AREA(<<-443.215759,0.934761,54.023079>>, <<-405.435303,-1.109592,33.373653>>, 1.750000,FALSE,TRUE)
*/
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "**** Init player stole the money ****")
#ENDIF
IF NOT IS_BIT_SET(g_savedGlobals.sRandomChars.g_iWebsiteQueryBit, ENUM_TO_INT(RC_NWS_EPS_STOLEN_CASH))
SET_BIT(g_savedGlobals.sRandomChars.g_iWebsiteQueryBit, ENUM_TO_INT(RC_NWS_EPS_STOLEN_CASH))
CPRINTLN(DEBUG_INTERNET, GET_THIS_SCRIPT_NAME(), " g_savedGlobals.sRandomChars.g_iWebsiteQueryBit, ENUM_TO_INT(RC_NWS_EPS_STOLEN_CASH) set")
ENDIF
missionStage = MS_TAKEN_MONEY
ENDIF
ENDIF
ENDIF
ENDPROC
/// PURPOSE: //Skip past the intro mocap, used for mission replay
PROC SkipPastCS()
START_REPLAY_SETUP(<<-702.9905, 37.0211, 42.2136>>, 292.7606)
SAFE_FADE_SCREEN_OUT_TO_BLACK(0,FALSE)
LoadStuff()
RespotLauncherVehicles()
InitPlayerCar()
WaitForLoad()
CLEAR_AREA(GET_ENTITY_COORDS(PLAYER_PED_ID()),100.0,TRUE)
CLEAR_AREA(<< -661.5685, 45.5499, 40.0669 >>,20.0,TRUE) //Eps building gates
END_REPLAY_SETUP(vehPlayerCar)
Init()
Init2()
SET_GAMEPLAY_CAM_RELATIVE_HEADING()
SET_GAMEPLAY_CAM_RELATIVE_PITCH()
SET_PLAYER_CONTROL(PLAYER_ID(),TRUE)
//LOAD_SCENE(<<-693.5082, 41.4818, 42.2245>>)
PRINT_NOW("EPS8_05",DEFAULT_GOD_TEXT_TIME,0) // Follow ~b~Epsilon's security~s~ to the helicopter.
bFollowEpsSecObj = TRUE
SET_STATIC_EMITTER_ENABLED("SE_LOS_SANTOS_EPSILONISM_BUILDING_01",FALSE)
TRIGGER_MUSIC_EVENT("EPS8_START")
SAFE_FADE_SCREEN_IN_FROM_BLACK(DEFAULT_FADE_TIME,FALSE)
RC_END_Z_SKIP(TRUE)
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "**** Replay skipped cutscene ****")
#ENDIF
missionStage = MS_DRIVING_TO_CHOPPER
ENDPROC
/// PURPOSE: //Skip to the helicopter, used for mission replay (This checkpoint was removed)
/*
PROC SkipToHeli()
SAFE_FADE_SCREEN_OUT_TO_BLACK(0,FALSE)
LoadStuff()
RespotLauncherVehicles()
InitPlayerCar()
WaitForLoad()
Init()
Init2()
IF NOT IS_ENTITY_DEAD(vehEpsilonChopper)
IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(vehEpsilonChopper)
STOP_PLAYBACK_RECORDED_VEHICLE(vehEpsilonChopper)
START_PLAYBACK_RECORDED_VEHICLE(vehEpsilonChopper, 222, "Ep8Heli01")
SET_PLAYBACK_SPEED(vehEpsilonChopper,1.25)
SKIP_TIME_IN_PLAYBACK_RECORDED_VEHICLE(vehEpsilonChopper,47000)
SET_HELI_BLADES_FULL_SPEED(vehEpsilonChopper)
ENDIF
ENDIF
IF NOT IS_ENTITY_DEAD(PLAYER_PED_ID())
IF NOT IS_ENTITY_DEAD(vehPlayerCar)
IF NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehPlayerCar)
SET_PED_INTO_VEHICLE(PLAYER_PED_ID(),vehPlayerCar)
ENDIF
SET_ENTITY_COORDS(vehPlayerCar,<< -362.7763, -82.0394, 44.6577 >>)
SET_ENTITY_HEADING(vehPlayerCar,203.5849)
vCashCarParkedPos = << -362.7763, -82.0394, 44.6577 >>
ENDIF
ENDIF
SET_ENTITY_COORDS (PLAYER_PED_ID(), << -359.8641, -83.9259, 44.6226 >>)
SET_ENTITY_HEADING (PLAYER_PED_ID(), 157.4846)
SET_ENTITY_COORDS (pedEpsilonist, <<-359.002106,-87.734573,44.5686>>) //epsilonist
SET_ENTITY_HEADING (pedEpsilonist, 4.876407)
IF NOT IS_ENTITY_DEAD(pedEpsilonHiSecDriver[0])
IF NOT IS_ENTITY_DEAD(vehEpsilonCar[0])
SET_ENTITY_COORDS(vehEpsilonCar[0],<< -374.3037, -72.2820, 44.6577 >>)
SET_ENTITY_HEADING(vehEpsilonCar[0],249.5594)
ENDIF
ENDIF
IF NOT IS_ENTITY_DEAD(vehEpsilonCar[3])
SET_ENTITY_COORDS(vehEpsilonCar[3],<< -400.3082, -26.8387, 45.7889 >>)
SET_ENTITY_HEADING(vehEpsilonCar[3],173.6462)
ENDIF
REQUEST_MODEL(TRACTOR)
WHILE NOT HAS_MODEL_LOADED(TRACTOR)
WAIT(0)
ENDWHILE
vehTractor = CREATE_VEHICLE(TRACTOR,<< -375.6338, -105.9456, 37.6790 >>, 119.7025)
SET_MODEL_AS_NO_LONGER_NEEDED(TRACTOR)
OPEN_SEQUENCE_TASK(seqLoadChopper1)
TASK_LEAVE_ANY_VEHICLE(NULL)
TASK_FOLLOW_NAV_MESH_TO_COORD(NULL,<< -354.5543, -85.2916, 44.6475 >>,PEDMOVEBLENDRATIO_WALK,DEFAULT_TIME_BEFORE_WARP,1.0,ENAV_NO_STOPPING)
TASK_FOLLOW_NAV_MESH_TO_COORD(NULL,GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(vehPlayerCar,<<0.0,-2.15,0.0>>),PEDMOVEBLENDRATIO_WALK,DEFAULT_TIME_BEFORE_WARP,0.25)
CLOSE_SEQUENCE_TASK(seqLoadChopper1)
OPEN_SEQUENCE_TASK(seqLoadChopper2)
TASK_FOLLOW_NAV_MESH_TO_COORD(NULL,GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(vehPlayerCar,<<0.0,-2.15,0.0>>),PEDMOVEBLENDRATIO_WALK,DEFAULT_TIME_BEFORE_WARP,0.25)
TASK_TURN_PED_TO_FACE_ENTITY(NULL,vehPlayerCar,1200)
TASK_FOLLOW_NAV_MESH_TO_COORD(NULL,<< -358.1744, -88.4951, 44.5940 >>,PEDMOVEBLENDRATIO_WALK,DEFAULT_TIME_BEFORE_WARP,0.25)
TASK_TURN_PED_TO_FACE_ENTITY(NULL,vehEpsilonChopper,1200)
SET_SEQUENCE_TO_REPEAT(seqLoadChopper2,REPEAT_FOREVER)
CLOSE_SEQUENCE_TASK(seqLoadChopper2)
iTimerPlayerParkedAtHeli = GET_GAME_TIMER() + 2500
DISABLE_CELLPHONE(FALSE)
IF DOES_BLIP_EXIST(blipEscort)
REMOVE_BLIP(blipEscort)
ENDIF
SET_GAMEPLAY_CAM_RELATIVE_HEADING()
SET_GAMEPLAY_CAM_RELATIVE_PITCH()
LOAD_SCENE(<< -359.8641, -83.9259, 44.6226 >>)
WAIT(1000)
SET_ENTITY_COORDS (PLAYER_PED_ID(), << -359.8641, -83.9259, 44.6226 >>)
SET_ENTITY_HEADING (PLAYER_PED_ID(), 157.4846)
SET_PLAYER_CONTROL(PLAYER_ID(),TRUE)
SAFE_FADE_SCREEN_IN_FROM_BLACK(DEFAULT_FADE_TIME,FALSE)
RC_END_Z_SKIP(TRUE)
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "**** Replay skipped to helicopter ****")
#ENDIF
missionStage = MS_EXITED_CAR
ENDPROC
*/
/// PURPOSE: //Reset everything
PROC ResetStuff()
FORCE_CHASE_HINT_CAM(localChaseHintCamStruct, FALSE)
eCutsceneState = eCutInit
fHeliSpeed = 100
CLEAR_PRINTS()
IF DOES_ENTITY_EXIST(vehEpsilonCar[0])
REMOVE_ENTITY_FROM_AUDIO_MIX_GROUP(vehEpsilonCar[0])
ENDIF
IF DOES_ENTITY_EXIST(vehEpsilonCar[1])
REMOVE_ENTITY_FROM_AUDIO_MIX_GROUP(vehEpsilonCar[1])
ENDIF
IF DOES_ENTITY_EXIST(vehEpsilonCar[2])
REMOVE_ENTITY_FROM_AUDIO_MIX_GROUP(vehEpsilonCar[2])
ENDIF
IF DOES_ENTITY_EXIST(vehEpsilonCar[3])
REMOVE_ENTITY_FROM_AUDIO_MIX_GROUP(vehEpsilonCar[3])
ENDIF
IF DOES_ENTITY_EXIST(vehEpsilonCar[4])
REMOVE_ENTITY_FROM_AUDIO_MIX_GROUP(vehEpsilonCar[4])
ENDIF
IF DOES_ENTITY_EXIST(vehEpsilonCar[5])
REMOVE_ENTITY_FROM_AUDIO_MIX_GROUP(vehEpsilonCar[5])
ENDIF
IF DOES_ENTITY_EXIST(vehEpsilonCar[6])
REMOVE_ENTITY_FROM_AUDIO_MIX_GROUP(vehEpsilonCar[6])
ENDIF
IF DOES_ENTITY_EXIST(vehExtraCar[0])
REMOVE_ENTITY_FROM_AUDIO_MIX_GROUP(vehExtraCar[0])
ENDIF
IF DOES_ENTITY_EXIST(vehExtraCar[1])
REMOVE_ENTITY_FROM_AUDIO_MIX_GROUP(vehExtraCar[1])
ENDIF
REMOVE_RELATIONSHIP_GROUP(relEpsilon)
REMOVE_RELATIONSHIP_GROUP(relEpsilonCiv)
IF bDebugPassOrFail = FALSE
IF NOT IS_ENTITY_DEAD(PLAYER_PED_ID())
IF NOT IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
GET_SAFE_COORD_FOR_PED(GET_ENTITY_COORDS(PLAYER_PED_ID()),FALSE,vSafeCoord)
SET_ENTITY_COORDS(PLAYER_PED_ID(),vSafeCoord)
ELSE
IF DOES_ENTITY_EXIST(vehPlayerCar)
IF NOT IS_ENTITY_DEAD(vehPlayerCar)
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehPlayerCar)
GET_SAFE_COORD_FOR_PED(GET_ENTITY_COORDS(PLAYER_PED_ID()),FALSE,vSafeCoord)
SET_ENTITY_COORDS(PLAYER_PED_ID(),vSafeCoord)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
SET_PED_COMPONENT_VARIATION(PLAYER_PED_ID(), PED_COMP_SPECIAL2, 0, 0)
SAFE_DELETE_PED(pedEpsilonist)
SAFE_DELETE_PED(pedPilot)
SAFE_DELETE_PED(pedChopperShotgun)
SAFE_DELETE_VEHICLE(vehEpsilonChopper)
SAFE_DELETE_VEHICLE(vehTractor)
SAFE_DELETE_OBJECT(objCashBag[0])
SAFE_DELETE_OBJECT(objCashBag[1])
SAFE_DELETE_OBJECT(objCashBag[2])
SAFE_DELETE_OBJECT(objCashBag[3])
IF DOES_ENTITY_EXIST(vehPlayerCar)
REMOVE_VEHICLE_STUCK_CHECK(vehPlayerCar)
SAFE_DELETE_VEHICLE(vehPlayerCar)
ENDIF
i = 0
WHILE i < 7
SAFE_DELETE_PED(pedEpsilonHiSecDriver[i])
SAFE_DELETE_PED(pedEpsilonHiSecShotgun[i])
SAFE_DELETE_PED(pedEpsilonHiSecurity[i])
SAFE_DELETE_VEHICLE(vehEpsilonCar[i])
WAIT(0)
++ i
ENDWHILE
CleanupTraffic()
DISABLE_CELLPHONE(FALSE)
i = 0
bPlayerStoleMoney = FALSE
bPlayerGaveMoney = FALSE
bLoseCopsObjGiven = FALSE
bCutsceneChopperTaskGiven = FALSE
bHelicopterHostile = FALSE
iConvoCounter = 0
iEpSecBlipped = 0
iEpSecEvaded = 0
iHeliGivenUp = 0
iConvoCounter = 0
iHeliNoLosConvoCounter = 0
bDriveByTaskGiven[0] = FALSE
bDriveByTaskGiven[1] = FALSE
bDriveByTaskGiven[2] = FALSE
bDriveByTaskGiven[3] = FALSE
bDriveByTaskGiven[4] = FALSE
bDriveByTaskGiven[5] = FALSE
bDriveByTaskGiven[6] = FALSE
bEpsDriverForcedToLeaveVeh[0] = FALSE
bEpsDriverForcedToLeaveVeh[1] = FALSE
bEpsDriverForcedToLeaveVeh[2] = FALSE
bEpsDriverForcedToLeaveVeh[3] = FALSE
bEpsDriverForcedToLeaveVeh[4] = FALSE
bEpsDriverForcedToLeaveVeh[5] = FALSE
bEpsDriverForcedToLeaveVeh[6] = FALSE
iPassedDelay = 0
bGuard1SaidKifflom = FALSE
bGuard2SaidKifflom = FALSE
bGuard3SaidKifflom = FALSE
bPlayerAtHelipad = FALSE
iSeqHeli = 0
iPlayerDamagingEscort = 0
//i2 = 0
bBootOpen = FALSE
bGuardGettingOnHeli = FALSE
bGetInCarObjGiven = FALSE
bChopperBeingJacked = FALSE
bPlayerWentToTractor = FALSE
bEscapeMessagePrinted = FALSE
bNoCashLeftInCar = FALSE
iSeqThreatenPlayerInCar = 0
bPlayerCarDestroyed = FALSE
bEpsilonistAtTractor = FALSE
bRoadSwitchOn = FALSE
iNodeNumber = 1
//iLoadChopperSeqSwitch = 0
bEpsilonistPlayingAnims = FALSE
bPrintHurryUp = FALSE
bPrintRamWarning1 = FALSE
bPrintRamWarning2 = FALSE
bPrintFrontWarning = FALSE
bPrintEscapeWarning = FALSE
iConvoChaseRandom = 0
iConvoChaseCar = 0
bPrintMikeOnFoot = FALSE
bPrintMikeInCover = FALSE
bPrintToddShotMike = FALSE
iPrintToddDied = 0
iPrintPlayerLeftCar = 0
bFollowEpsSecObj = FALSE
fHeliEscapeDistance = 450.0
bHeliCantSeePlayer = FALSE
iHeliSpotPlayerConvo = 0
bPrintHeliCamHelp = FALSE
bMikeLookAtEpsilonist = FALSE
bStartRearConvoyCar = FALSE
bOnlyHeliLeft = FALSE
iEpsilonistBeckonConvo = 0
bPrintEvadeHeli = FALSE
bPrayConvo = FALSE
bOnlyHeliLeftConvo = FALSE
bDoHeliCam = FALSE
bPrintFollowEpsilonist = FALSE
iHeliCamSwitch = 0
iEpsilonistsKilled = 0
iSeqDelayAggression = 0
iSeqDelayAggressionParkedUp = 0
bDoneCrisAngryPhoneCall = FALSE
bOverrideHeliColl = FALSE
bHeliCollOff = FALSE
bSecurityStealingTailgater = FALSE
iVehThief = -1
bMikePickedUpABag = FALSE
iHeliTask = 0
bHeliGivenUp = FALSE
iTriggerSecondMusicCue = 0
iBagsPutInHeli = 0
//iBagsTakenFromCar = 0
bPrintExitCar = FALSE
iCounterHurryUp = 0
bOverrideStartWalk = FALSE
iIntroCamSeq = 0
bTriggerMusic = FALSE
bSwitchWaypointFlags = FALSE
eLOAD_HELI = LOAD_HELI_INIT
//SET_AUDIO_FLAG("AllowScoreAndRadio", FALSE)
IF DOES_CAM_EXIST(camHeli)
SET_CAM_ACTIVE(camHeli,FALSE)
RENDER_SCRIPT_CAMS(FALSE, FALSE)
DESTROY_CAM(camHeli)
IF DOES_CAM_EXIST(camHeli2)
SET_CAM_ACTIVE(camHeli2,FALSE)
RENDER_SCRIPT_CAMS(FALSE, FALSE)
DESTROY_CAM(camHeli2)
ENDIF
DISPLAY_HUD(TRUE)
DISPLAY_RADAR(TRUE)
SET_GAMEPLAY_CAM_RELATIVE_PITCH()
SET_GAMEPLAY_CAM_RELATIVE_HEADING()
ENDIF
IF IS_AUDIO_SCENE_ACTIVE("EPSILONISM_08_CHOPPER")
STOP_AUDIO_SCENE("EPSILONISM_08_CHOPPER")
ENDIF
SET_CINEMATIC_BUTTON_ACTIVE(TRUE)
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "**** Reset mission ****")
#ENDIF
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("EPS8_FAIL")
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "**** Triggered music event EPS8_FAIL ****")
#ENDIF
IF bMikePickedUpABag = TRUE
CREDIT_BANK_ACCOUNT(CHAR_MICHAEL, BAAC_UNLOGGED_SMALL_ACTION, - iCashInEachBag)
ENDIF
RemoveBlips()
CLEAR_PRINTS()
CLEAR_HELP()
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(<< -714.3730, 33.2691, 42.0057 >>, 104.3473)
//SET_REPLAY_DECLINED_VEHICLE_WARP_LOCATION(<< -719.6254, 33.7486, 41.9291 >>, 111.1122)
ResetStuff()
Script_Cleanup()
ELSE
// not finished fading out
// you may want to handle dialogue etc here.
ENDIF
BREAK
ENDSWITCH
ENDPROC
// ===========================================================================================================
// DEBUG FUNCTIONS
// ===========================================================================================================
/// PURPOSE: Check for Forced Pass or Fail
PROC DEBUG_Check_Debug_Keys()
#IF IS_DEBUG_BUILD
// Check for Pass
IF (IS_KEYBOARD_KEY_JUST_PRESSED(KEY_S))
WAIT_FOR_CUTSCENE_TO_STOP()
CLEAR_PRINTS()
bDebugPassOrFail = TRUE
ResetStuff()
Script_Passed()
ENDIF
// Check for Fail
IF (IS_KEYBOARD_KEY_JUST_PRESSED(KEY_F))
WAIT_FOR_CUTSCENE_TO_STOP()
missionStage = MS_MISSION_FAILING
ENDIF
#ENDIF
ENDPROC
PROC DEBUG_Check_Skips()
#IF IS_DEBUG_BUILD
IF IS_KEYBOARD_KEY_JUST_PRESSED(KEY_J)
WAIT_FOR_CUTSCENE_TO_STOP()
bDebugSkipping = TRUE
IF missionStage = MS_DRIVING_TO_CHOPPER
OR missionStage = MS_SETUP
CLEAR_PRINTS()
IF IS_VEHICLE_OK(vehEpsilonChopper)
IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(vehEpsilonChopper)
STOP_PLAYBACK_RECORDED_VEHICLE(vehEpsilonChopper)
START_PLAYBACK_RECORDED_VEHICLE(vehEpsilonChopper, 222, "Ep8Heli01")
SET_PLAYBACK_SPEED(vehEpsilonChopper,1.25)
SKIP_TIME_IN_PLAYBACK_RECORDED_VEHICLE(vehEpsilonChopper,39000)
ENDIF
ENDIF
IF NOT IS_VEHICLE_OK(vehPlayerCar)
IF NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehPlayerCar)
SET_PED_INTO_VEHICLE(PLAYER_PED_ID(),vehPlayerCar)
ENDIF
SET_ENTITY_COORDS(vehPlayerCar,<< -382.7294, -68.8150, 44.4474 >>)
SET_ENTITY_HEADING(vehPlayerCar,248.1496)
ENDIF
IF IS_PED_UNINJURED(pedEpsilonHiSecDriver[0])
IF IS_VEHICLE_OK(vehEpsilonCar[0])
SET_ENTITY_COORDS(vehEpsilonCar[0],<< -374.3037, -72.2820, 44.6577 >>)
SET_ENTITY_HEADING(vehEpsilonCar[0],249.5594)
ENDIF
ENDIF
ENDIF
IF missionStage = MS_TAKEN_MONEY
IF IS_VEHICLE_OK(vehPlayerCar)
IF NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehPlayerCar)
SET_PED_INTO_VEHICLE(PLAYER_PED_ID(),vehPlayerCar)
ENDIF
ENDIF
CLEAR_PRINTS()
bPlayerSkippedToEnd = TRUE
Script_Passed()
ENDIF
IF missionStage = MS_PARKING_AT_CHOPPER
OR missionStage = MS_PARKED_AT_CHOPPER
OR missionStage = MS_EXITED_CAR
OR missionStage = MS_WALKING_TO_REWARD
CLEAR_PRINTS()
REQUEST_MODEL(TRACTOR)
WHILE NOT HAS_MODEL_LOADED(TRACTOR)
WAIT(0)
ENDWHILE
IF IS_PED_UNINJURED(pedEpsilonHiSecDriver[0])
IF IS_VEHICLE_OK(vehEpsilonCar[0])
SET_ENTITY_COORDS(vehEpsilonCar[0],<< -374.3037, -72.2820, 44.6577 >>)
SET_ENTITY_HEADING(vehEpsilonCar[0],249.5594)
ENDIF
ENDIF
IF IS_VEHICLE_OK(vehEpsilonChopper)
IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(vehEpsilonChopper)
STOP_PLAYBACK_RECORDED_VEHICLE(vehEpsilonChopper)
START_PLAYBACK_RECORDED_VEHICLE(vehEpsilonChopper, 222, "Ep8Heli01")
SET_PLAYBACK_SPEED(vehEpsilonChopper,1.25)
SKIP_TO_END_AND_STOP_PLAYBACK_RECORDED_VEHICLE(vehEpsilonChopper)
ENDIF
ENDIF
IF IS_VEHICLE_OK(vehPlayerCar)
SET_ENTITY_COORDS(vehPlayerCar,<< -364.1155, -85.4846, 44.6577 >>)
SET_ENTITY_HEADING(vehPlayerCar,221.5985)
SET_ENTITY_COORDS(PLAYER_PED_ID(),<< -377.8041, -102.7889, 37.6790 >>)
SET_ENTITY_HEADING(PLAYER_PED_ID(),215.0944)
ENDIF
IF IS_PED_UNINJURED(pedEpsilonist)
SET_ENTITY_COORDS(pedEpsilonist,<< -382.0936, -98.4388, 37.6792 >>)
SET_ENTITY_HEADING(pedEpsilonist,184.1947)
TASK_FOLLOW_WAYPOINT_RECORDING(pedEpsilonist,"Eps8EPED",0,EWAYPOINT_START_FROM_CLOSEST_POINT)
ENDIF
vehTractor = CREATE_VEHICLE(TRACTOR,<< -375.6338, -105.9456, 37.6790 >>, 119.7025)
//IF DOES_EXTRA_EXIST(vehTractor,8)
SET_VEHICLE_EXTRA(vehTractor,8,FALSE)
//ENDIF
SET_VEHICLE_EXTRA(vehTractor,1,TRUE)
SET_VEHICLE_NUMBER_PLATE_TEXT(vehTractor,"K1FFL0M1")
SET_VEHICLE_AS_RESTRICTED(vehTractor,1)
SET_MODEL_AS_NO_LONGER_NEEDED(TRACTOR)
bPlayerGaveMoney = TRUE
bPlayerStoleMoney = FALSE
bPlayerWentToTractor = TRUE
bPlayerSkippedToEnd = TRUE
missionStage = MS_WALKING_TO_REWARD
ENDIF
ENDIF
IF IS_KEYBOARD_KEY_JUST_PRESSED(KEY_P)
bDebugSkipping = TRUE
WAIT_FOR_CUTSCENE_TO_STOP()
ResetStuff()
ADD_RELATIONSHIP_GROUP("Epsilon",relEpsilon)
ADD_RELATIONSHIP_GROUP("EpsilonCivilian",relEpsilonCiv)
missionStage = MS_SETUP
ENDIF
#IF IS_DEBUG_BUILD
SkipMenuStruct[0].sTxtLabel = "Mission start"
SkipMenuStruct[1].sTxtLabel = "Arriving at helicopter"
SkipMenuStruct[2].sTxtLabel = "Tractor"
IF LAUNCH_MISSION_STAGE_MENU(SkipMenuStruct, iReturnStage)
IF iReturnStage = 0
bDebugSkipping = TRUE
ResetStuff()
ADD_RELATIONSHIP_GROUP("Epsilon",relEpsilon)
ADD_RELATIONSHIP_GROUP("EpsilonCivilian",relEpsilonCiv)
missionStage = MS_SETUP
ELIF iReturnStage = 1
bDebugSkipping = TRUE
WAIT_FOR_CUTSCENE_TO_STOP()
ResetStuff()
ADD_RELATIONSHIP_GROUP("Epsilon",relEpsilon)
ADD_RELATIONSHIP_GROUP("EpsilonCivilian",relEpsilonCiv)
LoadStuff()
RespotLauncherVehicles()
InitPlayerCar()
WaitForLoad()
Init()
Init2()
IF IS_VEHICLE_OK(vehEpsilonChopper)
IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(vehEpsilonChopper)
STOP_PLAYBACK_RECORDED_VEHICLE(vehEpsilonChopper)
START_PLAYBACK_RECORDED_VEHICLE(vehEpsilonChopper, 222, "Ep8Heli01")
SET_PLAYBACK_SPEED(vehEpsilonChopper,1.25)
SKIP_TIME_IN_PLAYBACK_RECORDED_VEHICLE(vehEpsilonChopper,39000)
ELSE
START_PLAYBACK_RECORDED_VEHICLE(vehEpsilonChopper, 222, "Ep8Heli01")
SET_PLAYBACK_SPEED(vehEpsilonChopper,1.25)
SKIP_TIME_IN_PLAYBACK_RECORDED_VEHICLE(vehEpsilonChopper,39000)
ENDIF
ENDIF
IF IS_VEHICLE_OK(vehPlayerCar)
IF NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehPlayerCar)
SET_PED_INTO_VEHICLE(PLAYER_PED_ID(),vehPlayerCar)
ENDIF
SET_ENTITY_COORDS(vehPlayerCar,<< -382.7294, -68.8150, 44.4474 >>)
SET_ENTITY_HEADING(vehPlayerCar,248.1496)
ENDIF
IF IS_PED_UNINJURED(pedEpsilonHiSecDriver[0])
IF NOT IS_ENTITY_DEAD(vehEpsilonCar[0])
SET_ENTITY_COORDS(vehEpsilonCar[0],<< -374.3037, -72.2820, 44.6577 >>)
SET_ENTITY_HEADING(vehEpsilonCar[0],249.5594)
ENDIF
ENDIF
missionStage = MS_DRIVING_TO_CHOPPER
ELIF iReturnStage = 2
bDebugSkipping = TRUE
WAIT_FOR_CUTSCENE_TO_STOP()
CLEAR_PRINTS()
IF IS_PED_UNINJURED(pedEpsilonHiSecDriver[0])
IF IS_VEHICLE_OK(vehEpsilonCar[0])
SET_ENTITY_COORDS(vehEpsilonCar[0],<< -374.3037, -72.2820, 44.6577 >>)
SET_ENTITY_HEADING(vehEpsilonCar[0],249.5594)
ENDIF
ENDIF
REQUEST_MODEL(TRACTOR)
WHILE NOT HAS_MODEL_LOADED(TRACTOR)
WAIT(0)
ENDWHILE
IF IS_VEHICLE_OK(vehEpsilonChopper)
IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(vehEpsilonChopper)
STOP_PLAYBACK_RECORDED_VEHICLE(vehEpsilonChopper)
START_PLAYBACK_RECORDED_VEHICLE(vehEpsilonChopper, 222, "Ep8Heli01")
SET_PLAYBACK_SPEED(vehEpsilonChopper,1.25)
SKIP_TO_END_AND_STOP_PLAYBACK_RECORDED_VEHICLE(vehEpsilonChopper)
ENDIF
ENDIF
IF IS_VEHICLE_OK(vehPlayerCar)
SET_ENTITY_COORDS(vehPlayerCar,<< -364.1155, -85.4846, 44.6577 >>)
SET_ENTITY_HEADING(vehPlayerCar,221.5985)
SET_ENTITY_COORDS(PLAYER_PED_ID(),<< -377.8041, -102.7889, 37.6790 >>)
SET_ENTITY_HEADING(PLAYER_PED_ID(),215.0944)
ENDIF
IF IS_PED_UNINJURED(pedEpsilonist)
SET_ENTITY_COORDS(pedEpsilonist,<< -382.0936, -98.4388, 37.6792 >>)
SET_ENTITY_HEADING(pedEpsilonist,184.1947)
TASK_FOLLOW_WAYPOINT_RECORDING(pedEpsilonist,"Eps8EPED",0,EWAYPOINT_START_FROM_CLOSEST_POINT)
ENDIF
vehTractor = CREATE_VEHICLE(TRACTOR,<< -375.6338, -105.9456, 37.6790 >>, 119.7025)
//IF DOES_EXTRA_EXIST(vehTractor,8)
SET_VEHICLE_EXTRA(vehTractor,8,FALSE)
//ENDIF
SET_VEHICLE_EXTRA(vehTractor,1,TRUE)
SET_VEHICLE_NUMBER_PLATE_TEXT(vehTractor,"K1FFL0M1")
SET_VEHICLE_AS_RESTRICTED(vehTractor,1)
SET_MODEL_AS_NO_LONGER_NEEDED(TRACTOR)
bPlayerGaveMoney = TRUE
bPlayerStoleMoney = FALSE
bPlayerWentToTractor = TRUE
SET_GAMEPLAY_CAM_RELATIVE_HEADING()
SET_GAMEPLAY_CAM_RELATIVE_PITCH()
Script_Passed()
ENDIF
ENDIF
#ENDIF
#ENDIF
ENDPROC
/// PURPOSE: //Intro mocap
PROC IntroCutscene()
HIDE_HUD_AND_RADAR_THIS_FRAME()
THEFEED_HIDE_THIS_FRAME()
SEQUENCE_INDEX seqParkUp
SWITCH eCutsceneState
CASE eCutInit
IF iIntroCamSeq = 0
RC_REQUEST_CUTSCENE("ep_8_rcm") //B*1730878 - Reqesting cutscene at the start of the leadin
IF NOT DOES_CAM_EXIST(camIntro1)
camIntro1 = CREATE_CAM("DEFAULT_SCRIPTED_CAMERA",TRUE)
ENDIF
IF NOT DOES_CAM_EXIST(camIntro2)
camIntro2 = CREATE_CAM("DEFAULT_SCRIPTED_CAMERA",TRUE)
ENDIF
SET_CAM_PARAMS(camIntro1,<< -692.1, 18.8, 40.3 >>, << 0.7, 0.0, 24.5 >>,50.0)
SET_CAM_PARAMS(camIntro2,<< -691.8, 18.9, 42.9 >>, << 22.2, 0.0, 24.8 >>,50.0)
RENDER_SCRIPT_CAMS(TRUE, FALSE)
SET_PLAYER_CONTROL(PLAYER_ID(),FALSE,SPC_REENABLE_CONTROL_ON_DEATH)
IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-677.929871,31.374311,37.971050>>, <<-677.726257,51.893734,48.207581>>, 25.000000)
SAFE_TELEPORT_ENTITY(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()),<<-676.7216, 46.6862, 41.7595>>, 91.6871)
SAFE_TELEPORT_ENTITY(PLAYER_PED_ID(),<<-682.9754, 48.2520, 42.1423>>, 107.7723)
TASK_FOLLOW_NAV_MESH_TO_COORD(PLAYER_PED_ID(),<<-696.1459, 41.7659, 42.2180>>,PEDMOVEBLENDRATIO_WALK,-1,1,ENAV_DEFAULT,25.2690)
ELSE
SAFE_TELEPORT_ENTITY(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()),<<-719.0406, 32.5248, 41.7419>>, 287.2928)
SET_VEHICLE_FORWARD_SPEED(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()),5)
OPEN_SEQUENCE_TASK(seqParkUp)
TASK_VEHICLE_DRIVE_TO_COORD(NULL,GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()),<<-703.6560, 37.1430, 42.2135>>,3,DRIVINGSTYLE_NORMAL,DUMMY_MODEL_FOR_SCRIPT,DRIVINGMODE_PLOUGHTHROUGH,6.0,100)
TASK_FOLLOW_NAV_MESH_TO_COORD(NULL,<<-696.1459, 41.7659, 42.2180>>,PEDMOVEBLENDRATIO_WALK,-1,1,ENAV_DEFAULT,25.2690)
CLOSE_SEQUENCE_TASK(seqParkUp)
TASK_PERFORM_SEQUENCE(PLAYER_PED_ID(),seqParkUp)
CLEAR_SEQUENCE_TASK(seqParkUp)
ENDIF
ELSE
TASK_FOLLOW_NAV_MESH_TO_COORD(PLAYER_PED_ID(),<<-696.1459, 41.7659, 42.2180>>,PEDMOVEBLENDRATIO_WALK,-1,1,ENAV_DEFAULT,25.2690)
ENDIF
SET_CAM_ACTIVE_WITH_INTERP(camIntro2,camIntro1,6200)
iTimerIntroCams = GET_GAME_TIMER()
iIntroCamSeq = 1
ELIF iIntroCamSeq = 1
IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
IF IS_ENTITY_ALIVE(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()))
IF NOT IS_ENTITY_AT_COORD(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()),<<-703.6560, 37.1430, 42.2135>>,<<9,9,9>>)
SET_VEHICLE_FORWARD_SPEED(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()),5)
ENDIF
ENDIF
ENDIF
IF GET_GAME_TIMER() > iTimerIntroCams + 6000
OR IS_CUTSCENE_SKIP_BUTTON_JUST_PRESSED_WITH_DELAY()
iIntroCamSeq = 2
ENDIF
ELIF iIntroCamSeq = 2
//RC_REQUEST_CUTSCENE("ep_8_rcm") //B*1730878 - Reqesting cutscene earlier now
IF CAN_REQUEST_ASSETS_FOR_CUTSCENE_ENTITY()
IF IS_PED_COMP_ITEM_CURRENT_SP(PLAYER_PED_ID(), COMP_TYPE_OUTFIT, OUTFIT_P0_EPSILON)
SET_CUTSCENE_PED_OUTFIT("Michael",PLAYER_ZERO,OUTFIT_P0_EPSILON)
ENDIF
IF IS_PED_COMP_ITEM_CURRENT_SP(PLAYER_PED_ID(), COMP_TYPE_OUTFIT, OUTFIT_P0_EPSILON_WITH_MEDAL)
SET_CUTSCENE_PED_OUTFIT("Michael",PLAYER_ZERO,OUTFIT_P0_EPSILON_WITH_MEDAL)
ENDIF
ENDIF
IF RC_IS_CUTSCENE_OK_TO_START()
bCSExitMike = FALSE
bCSExitCris = FALSE
bCSExitCar = FALSE
bCSExitCam = FALSE
IF NOT IS_ENTITY_DEAD(vehPlayerCar)
REGISTER_ENTITY_FOR_CUTSCENE(vehPlayerCar,"epsilon_car",CU_ANIMATE_EXISTING_SCRIPT_ENTITY,TAILGATER,CEO_IS_CASCADE_SHADOW_FOCUS_ENTITY_DURING_EXIT)
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "**** Registered tailgater for cutscene ****")
#ENDIF
ENDIF
REPLAY_START_EVENT(REPLAY_IMPORTANCE_LOW)
RC_CLEANUP_LAUNCHER()
START_CUTSCENE()
SET_VEHICLE_MODEL_PLAYER_WILL_EXIT_SCENE(TAILGATER)
WAIT(0)
RENDER_SCRIPT_CAMS(FALSE, FALSE)
DESTROY_CAM(camIntro1)
DESTROY_CAM(camIntro2)
RESOLVE_VEHICLES_INSIDE_ANGLED_AREA(<<-702.028198,38.177532,46.456772>>, <<-659.647095,47.085461,38.170300>>, 16.000000,<< -717.3519, 34.7669, 42.0465 >>, 289.3352)
SET_MISSION_START_VEHICLE_AS_VEHICLE_GEN(<<0,0,0>>,0,TRUE,CHAR_MICHAEL)
RC_START_CUTSCENE_MODE(<< -697.75, 45.38, 43.03 >>,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE)
CLEAR_AREA_OF_VEHICLES(<<-651.9490, 62.9160, 44.7353>>,150)
SET_ROADS_IN_ANGLED_AREA(<<-651.314819,121.844025,63.453121>>, <<-650.061829,0.954960,35.754333>>, 41.750000,FALSE,FALSE)
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "**** Cutscene started ****")
#ENDIF
eCutsceneState = eCutUpdate
ENDIF
ENDIF
BREAK
CASE eCutUpdate
IF IS_CUTSCENE_PLAYING()
#IF IS_DEBUG_BUILD
IF IS_KEYBOARD_KEY_JUST_PRESSED(KEY_J)
STOP_CUTSCENE()
ENDIF
DEBUG_Check_Debug_Keys()
#ENDIF
IF CAN_SET_EXIT_STATE_FOR_REGISTERED_ENTITY("Michael")
REPLAY_STOP_EVENT()
IF IS_VEHICLE_OK(vehPlayerCar)
IF IS_PED_UNINJURED(PLAYER_PED_ID())
IF NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehPlayerCar)
SET_PED_INTO_VEHICLE(PLAYER_PED_ID(),vehPlayerCar)
FORCE_PED_AI_AND_ANIMATION_UPDATE(PLAYER_PED_ID())
ENDIF
bCSExitMike = TRUE
ENDIF
ENDIF
ENDIF
IF CAN_SET_EXIT_STATE_FOR_REGISTERED_ENTITY("epsilon_car")
IF NOT IS_ENTITY_DEAD(vehPlayerCar)
//SET_VEHICLE_USE_CUTSCENE_WHEEL_COMPRESSION(vehPlayerCar,FALSE)
ENDIF
bCSExitCar = TRUE
ENDIF
IF bCSExitCar = FALSE
IF NOT IS_ENTITY_DEAD(vehPlayerCar)
SET_VEHICLE_USE_CUTSCENE_WHEEL_COMPRESSION(vehPlayerCar)
ENDIF
ENDIF
IF CAN_SET_EXIT_STATE_FOR_REGISTERED_ENTITY("Cris")
bCSExitCris = TRUE
ENDIF
DISABLE_FIRST_PERSON_FLASH_EFFECT_THIS_UPDATE()
ELSE
eCutsceneState = eCutCleanup
ENDIF
IF CAN_SET_EXIT_STATE_FOR_CAMERA()
bCSExitCam = TRUE
ENDIF
IF bCSExitMike = FALSE
OR WAS_CUTSCENE_SKIPPED()
SET_GAMEPLAY_CAM_RELATIVE_PITCH(0)
SET_GAMEPLAY_CAM_RELATIVE_HEADING(0)
ENDIF
IF bCSExitMike = TRUE
AND bCSExitCris = TRUE
AND bCSExitCar = TRUE
AND bCSExitCam = TRUE
eCutsceneState = eCutCleanup
ENDIF
BREAK
CASE eCutCleanup
IF NOT bTriggerMusic
SET_STATIC_EMITTER_ENABLED("SE_LOS_SANTOS_EPSILONISM_BUILDING_01",FALSE)
TRIGGER_MUSIC_EVENT("EPS8_START")
bTriggerMusic = TRUE
ENDIF
//SET_GAMEPLAY_CAM_RELATIVE_PITCH(0)
//SET_GAMEPLAY_CAM_RELATIVE_HEADING(0)
// Deduct money from player's account
IF (g_savedGlobals.sRandomChars.g_bFinalEpsilonPayment = FALSE)
// May need to check whether we require a new BAAC type
DEBIT_BANK_ACCOUNT(CHAR_MICHAEL, BAAC_EPSILON_SITE_DONATION, EPSILON_8_CASH_AMOUNT)
g_savedGlobals.sRandomChars.g_bFinalEpsilonPayment = TRUE
ENDIF
//CLEAR_AREA(<< -661.5685, 45.5499, 40.0669 >>,20.0,TRUE) //Eps building gates
RC_END_CUTSCENE_MODE()
IF IS_VEHICLE_OK(vehPlayerCar)
//SET_VEHICLE_FIXED(vehPlayerCar)
SET_VEHICLE_DOORS_SHUT(vehPlayerCar)
SET_VEHICLE_DOORS_LOCKED(vehPlayerCar,VEHICLELOCK_UNLOCKED)
ENDIF
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "**** Cutscene finished ****")
#ENDIF
missionStage = MS_INIT
BREAK
ENDSWITCH
ENDPROC
/// PURPOSE: //Dynamic mixing for the helicopter - increasing rolloff when the heli flies over the convoy and for the chase section
PROC HeliDynaMix()
FLOAT fHeliMix
FLOAT fHeliMixRange
IF missionStage <> MS_TAKEN_MONEY //Stop audio scene when heli gets near the compound
AND IS_ENTITY_IN_ANGLED_AREA(vehEpsilonChopper, <<-353.922821,-75.671692,99.266102>>, <<-364.354065,-105.649544,33.290710>>, 34.000000)
IF IS_AUDIO_SCENE_ACTIVE("EPSILONISM_08_CHOPPER")
STOP_AUDIO_SCENE("EPSILONISM_08_CHOPPER")
ENDIF
ELSE
IF NOT IS_AUDIO_SCENE_ACTIVE("EPSILONISM_08_CHOPPER")
START_AUDIO_SCENE("EPSILONISM_08_CHOPPER")
ELSE
IF NOT IS_ENTITY_DEAD(vehEpsilonChopper)
IF missionStage = MS_DRIVING_TO_CHOPPER
OR missionStage = MS_PARKING_AT_CHOPPER
fHeliMixRange = 600
ELSE
fHeliMixRange = 200
ENDIF
fHeliMix = fHeliMixRange - GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(),vehEpsilonChopper)
fHeliMix = fHeliMix / fHeliMixRange
IF fHeliMix > 0.62
fHeliMix = 0.62
ENDIF
IF fHeliMix < 0.0
fHeliMix = 0.0
ENDIF
ELSE
fHeliMix = 0.0
ENDIF
SET_AUDIO_SCENE_VARIABLE("EPSILONISM_08_CHOPPER","fHeliMix",fHeliMix)
SET_AUDIO_SCENE_VARIABLE("EPSILONISM_08_CHOPPER","fCloseCarMix",0.6)
ENDIF
ENDIF
ENDPROC
/// PURPOSE: //Load and initialise everything
PROC Setup()
IF IS_REPLAY_IN_PROGRESS() = TRUE
AND bDebugSkipping = FALSE
SkipPastCS()
ELSE
LoadStuff()
RespotLauncherVehicles()
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "**** Init mocap cutscene ****")
#ENDIF
missionStage = MS_MOCAP
ENDIF
ENDPROC
PROC InitMission()
SET_RANDOM_VEHICLE_DENSITY_MULTIPLIER_THIS_FRAME(0)
InitPlayerCar()
WaitForLoad()
Init()
Init2()
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "**** Init driving to chopper ****")
#ENDIF
IF NOT bTriggerMusic
SET_STATIC_EMITTER_ENABLED("SE_LOS_SANTOS_EPSILONISM_BUILDING_01",FALSE)
TRIGGER_MUSIC_EVENT("EPS8_START")
bTriggerMusic = TRUE
ENDIF
//SET_VEHICLE_DOOR_OPEN(vehPlayerCar,SC_DOOR_BOOT)
missionStage = MS_DRIVING_TO_CHOPPER
ENDPROC
/// PURPOSE: //Player is driving to the helicopter, waiting for him to get there
PROC DrivingToChopper()
IF NOT bTriggerMusic
SET_STATIC_EMITTER_ENABLED("SE_LOS_SANTOS_EPSILONISM_BUILDING_01",FALSE)
TRIGGER_MUSIC_EVENT("EPS8_START")
REPLAY_RECORD_BACK_FOR_TIME(0.0, 10.0, REPLAY_IMPORTANCE_LOW)
bTriggerMusic = TRUE
ENDIF
SET_RANDOM_VEHICLE_DENSITY_MULTIPLIER_THIS_FRAME(0)
REQUEST_PATH_NODES_IN_AREA_THIS_FRAME(-744.6715, -175.2881,-205.6593, 118.4107)
/*
WHILE(TRUE) //Comment in for traffic debugging
DoTraffic()
DEBUG_Check_Debug_Keys()
DEBUG_Check_Skips()
WAIT(0)
ENDWHILE
*/
START_AUDIO_SCENE_COMPLIANCE()
IF i = 1
OR i = 4
DoTraffic()
ENDIF
IF bPlayerStoleMoney = FALSE
ConvoConvoy()
ENDIF
Update()
RubberBand()
blipsPlayerCar()
//HeliDynaMix()
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehPlayerCar)
IF IS_VEHICLE_OK(vehEpsilonCar[0]) //Hint cam on lead convoy car
CONTROL_VEHICLE_CHASE_HINT_CAM_ANY_MEANS(localChaseHintCamStruct, vehEpsilonCar[0])
ENDIF
IF IS_PED_IN_VEHICLE(pedEpsilonHiSecDriver[0],vehEpsilonCar[0]) //Switch blip to helicopter when lead car or player is nearly there
IF IS_ENTITY_IN_ANGLED_AREA(vehEpsilonCar[0], <<-384.129181,-72.768463,41.735500>>, <<-381.626129,-65.756081,52.896889>>, 8.500000)
IF DOES_BLIP_EXIST(blipEscort)
REMOVE_BLIP(blipEscort)
ENDIF
IF NOT DOES_BLIP_EXIST(blipChopper)
blipChopper = ADD_BLIP_FOR_COORD(vParkPos)
//SET_BLIP_AS_FRIENDLY(blipChopper,TRUE)
ENDIF
KILL_CHASE_HINT_CAM(localChaseHintCamStruct)
PRINT_NOW("EPS8_28",DEFAULT_GOD_TEXT_TIME,0) //Park the car at the ~y~drop off point.
missionStage = MS_PARKING_AT_CHOPPER
ENDIF
ENDIF
IF IS_ENTITY_IN_ANGLED_AREA(vehPlayerCar, <<-384.129181,-72.768463,41.735500>>, <<-381.626129,-65.756081,52.896889>>, 8.500000)
SAFE_REMOVE_BLIP(blipEscort)
IF NOT DOES_BLIP_EXIST(blipChopper)
blipChopper = ADD_BLIP_FOR_COORD(vParkPos)
//blipChopper = CREATE_VEHICLE_BLIP(vehEpsilonChopper,TRUE)
ENDIF
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "**** Init parking at chopper ****")
#ENDIF
KILL_CHASE_HINT_CAM(localChaseHintCamStruct)
PRINT_NOW("EPS8_28",DEFAULT_GOD_TEXT_TIME,0) //Park the car at the ~y~drop off point.
missionStage = MS_PARKING_AT_CHOPPER
ENDIF
ELSE
KILL_CHASE_HINT_CAM(localChaseHintCamStruct)
ENDIF
IF IS_ENTITY_AT_COORD(vehPlayerCar,vParkPos,<<LOCATE_SIZE_ANY_MEANS,LOCATE_SIZE_ANY_MEANS,LOCATE_SIZE_HEIGHT>>,TRUE)
ENDIF
ENDPROC
/// PURPOSE: //Player reached heli compound, waiting for him to park near the heli
PROC ParkingAtChopper()
/*
IF IS_CONTROL_JUST_PRESSED(PLAYER_CONTROL,INPUT_SPRINT)
++iCol1
ENDIF
IF IS_CONTROL_JUST_PRESSED(PLAYER_CONTROL,INPUT_JUMP)
--iCol1
ENDIF
IF iCol1 < 0
iCol1 = 0
ENDIF
IF iCol1 > 155
iCol1 = 155
ENDIF
PRINTINT(iCol1)
PRINTNL()
SET_VEHICLE_COLOURS(vehPlayerCar,iCol1,iCol1)
SET_VEHICLE_EXTRA_COLOURS(vehPlayerCar,0,0)
SET_VEHICLE_COLOURS(vehEpsilonChopper,iCol1,iCol1)
SET_VEHICLE_EXTRA_COLOURS(vehEpsilonChopper,0,0)
*/
CLEANUP_AUDIO_SCENE_COMPLIANCE()
SET_RANDOM_VEHICLE_DENSITY_MULTIPLIER_THIS_FRAME(0)
Update()
RubberBand()
IF NOT IS_ENTITY_AT_COORD(vehPlayerCar,vParkPos,<<2,2,LOCATE_SIZE_HEIGHT>>,FALSE)
blipsPlayerCar()
ENDIF
//HeliDynaMix()
IF NOT IS_PED_HEADTRACKING_PED(pedEpsilonist,PLAYER_PED_ID())
TASK_LOOK_AT_ENTITY(pedEpsilonist,PLAYER_PED_ID(),-1,SLF_WHILE_NOT_IN_FOV | SLF_WIDEST_PITCH_LIMIT | SLF_WIDEST_YAW_LIMIT,SLF_LOOKAT_VERY_HIGH)
ENDIF
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehPlayerCar)
IF IS_VEHICLE_OK(vehEpsilonChopper) //Hint cam on helicopter
CONTROL_VEHICLE_CHASE_HINT_CAM_ANY_MEANS(localChaseHintCamStruct, vehEpsilonChopper)
ENDIF
ELSE
KILL_CHASE_HINT_CAM(localChaseHintCamStruct)
ENDIF
//IF IS_PED_SITTING_IN_VEHICLE(PLAYER_PED_ID(),vehPlayerCar) //Waiting for player to park near the helicopter
//IF GET_ENTITY_SPEED(vehPlayerCar) >= 0.1
// bCarStopped = FALSE
//ENDIF
IF IS_ENTITY_AT_COORD(vehPlayerCar,vParkPos,<<2,2,LOCATE_SIZE_HEIGHT>>,FALSE) //<<1.95,1.95,LOCATE_SIZE_HEIGHT>>
//AND GET_ENTITY_SPEED(vehPlayerCar) < 0.1
AND IS_VEHICLE_STOPPED(vehPlayerCar)
SAFE_REMOVE_BLIP(blipChopper)
IF GET_ENTITY_SPEED(vehPlayerCar) < 12.8
fAreaWidth = 30.750000//23.750000 //Area width depends on player speed to stop the player crashing into the heli
ENDIF
IF GET_ENTITY_SPEED(vehPlayerCar) >= 12.8
AND GET_ENTITY_SPEED(vehPlayerCar) < 18.0
fAreaWidth = 32.750000 //27.750000
ENDIF
IF GET_ENTITY_SPEED(vehPlayerCar) >= 18.0
fAreaWidth = 34.750000 //29.750000
ENDIF
//IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-351.627869,-76.402191,41.777630>>, <<-361.892456,-104.871811,48.977909>>, fAreaWidth)
IF NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehPlayerCar)
//SAFE_REMOVE_BLIP(blipChopper) //Getting the player out of the car
SAFE_REMOVE_BLIP(blipPlayerCar)
/*
SET_PLAYER_CONTROL(PLAYER_ID(),FALSE,SPC_REENABLE_CONTROL_ON_DEATH)
DISABLE_CELLPHONE(TRUE)
OPEN_SEQUENCE_TASK(seqStopCarAndExit)
TASK_VEHICLE_TEMP_ACTION(NULL,vehPlayerCar,TEMPACT_BRAKE,800)
TASK_LEAVE_ANY_VEHICLE(NULL)
IF IS_PED_UNINJURED(pedEpsilonist)
TASK_LOOK_AT_ENTITY(NULL,pedEpsilonist,-1)
ENDIF
CLOSE_SEQUENCE_TASK(seqStopCarAndExit)
TASK_PERFORM_SEQUENCE(PLAYER_PED_ID(),seqStopCarAndExit)
CLEAR_SEQUENCE_TASK(seqStopCarAndExit)
*/
bMikeLookAtEpsilonist = TRUE
REQUEST_MODEL(TRACTOR)
REQUEST_CLIP_SET("move_ped_wpn_jerrycan_generic")
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "**** Init parked at chopper ****")
#ENDIF
missionStage = MS_PARKED_AT_CHOPPER
ELSE
IF bPrintExitCar = FALSE
REPLAY_RECORD_BACK_FOR_TIME(5.0, 15.0, REPLAY_IMPORTANCE_LOW)
PRINT_NOW("EPS8_27",DEFAULT_GOD_TEXT_TIME,0) //Exit the Car.
bPrintExitCar = TRUE
//vParkPos = GET_ENTITY_COORDS(vehPlayerCar)
ENDIF
bCarStopped = TRUE
ENDIF
ELSE
IF IS_ENTITY_AT_COORD(vehPlayerCar,vParkPos,<<2,2,LOCATE_SIZE_HEIGHT>>,FALSE)
SAFE_REMOVE_BLIP(blipChopper)
IF NOT IS_VEHICLE_STOPPED(vehPlayerCar)
IF bCarStopped = FALSE
BRING_VEHICLE_TO_HALT_AND_DISABLE_VEH_CONTROLS(vehPlayerCar,4)
ENDIF
ENDIF
ENDIF
ENDIF
IF DOES_BLIP_EXIST(blipChopper)
bCarStopped = FALSE
IF IS_ENTITY_AT_COORD(vehPlayerCar,vParkPos,<<LOCATE_SIZE_ANY_MEANS,LOCATE_SIZE_ANY_MEANS,LOCATE_SIZE_HEIGHT>>,TRUE)
ENDIF
ENDIF
ENDPROC
/// PURPOSE: //Setting up sequences for the security guys and the Epsilonist, spawning the tractor
PROC ParkedAtChopper()
CleanupTraffic()
Update()
RubberBand()
//HeliDynaMix()
IF NOT IS_PED_HEADTRACKING_PED(pedEpsilonist,PLAYER_PED_ID())
TASK_LOOK_AT_ENTITY(pedEpsilonist,PLAYER_PED_ID(),-1,SLF_WHILE_NOT_IN_FOV | SLF_WIDEST_PITCH_LIMIT | SLF_WIDEST_YAW_LIMIT,SLF_LOOKAT_VERY_HIGH)
ENDIF
IF NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehPlayerCar)
IF HAS_MODEL_LOADED(TRACTOR)
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF CREATE_CONVERSATION(s_conversation_peds, "EPS8AU", "EPS8_ESC", CONV_PRIORITY_MEDIUM) //Kifflom Zondar, these men will load up the helicopter.
SET_PLAYER_CONTROL(PLAYER_ID(),TRUE)
vehTractor = CREATE_VEHICLE(TRACTOR,<< -375.6338, -105.9456, 37.6790 >>, 119.7025)
//IF DOES_EXTRA_EXIST(vehTractor,8)
SET_VEHICLE_EXTRA(vehTractor,8,FALSE)
//ENDIF
SET_VEHICLE_EXTRA(vehTractor,1,TRUE)
SET_VEHICLE_NUMBER_PLATE_TEXT(vehTractor,"K1FFL0M1")
SET_VEHICLE_AS_RESTRICTED(vehTractor,1)
SET_MODEL_AS_NO_LONGER_NEEDED(TRACTOR)
/*
OPEN_SEQUENCE_TASK(seqLoadChopper1)
TASK_LEAVE_ANY_VEHICLE(NULL)
TASK_FOLLOW_NAV_MESH_TO_COORD(NULL,<< -354.5543, -85.2916, 44.6475 >>,PEDMOVEBLENDRATIO_WALK,-1,1.0,ENAV_NO_STOPPING)
TASK_FOLLOW_NAV_MESH_TO_COORD(NULL,GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(vehPlayerCar,<<0.0,-2.15,0.0>>),PEDMOVEBLENDRATIO_WALK,-1,0.3)
CLOSE_SEQUENCE_TASK(seqLoadChopper1)
OPEN_SEQUENCE_TASK(seqLoadChopper2)
TASK_FOLLOW_NAV_MESH_TO_COORD(NULL,GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(vehPlayerCar,<<0.0,-2.15,0.0>>),PEDMOVEBLENDRATIO_WALK,-1,0.3)
TASK_TURN_PED_TO_FACE_ENTITY(NULL,vehPlayerCar,1200)
//TASK_FOLLOW_NAV_MESH_TO_COORD(NULL,<< -358.1744, -88.4951, 44.5940 >>,PEDMOVEBLENDRATIO_WALK,DEFAULT_TIME_BEFORE_WARP,0.3)
TASK_FOLLOW_NAV_MESH_TO_COORD(NULL,GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(vehEpsilonChopper,<<-1.5,0,0>>),PEDMOVEBLENDRATIO_WALK,-1,0.3)
TASK_TURN_PED_TO_FACE_ENTITY(NULL,vehEpsilonChopper,1200)
SET_SEQUENCE_TO_REPEAT(seqLoadChopper2,REPEAT_FOREVER)
CLOSE_SEQUENCE_TASK(seqLoadChopper2)
*/
SET_PED_CAN_RAGDOLL_FROM_PLAYER_IMPACT(pedEpsilonist,FALSE)
OPEN_SEQUENCE_TASK(seqGoToPlayerFacePlayer)
TASK_LOOK_AT_ENTITY(NULL,PLAYER_PED_ID(),-1)
TASK_LEAVE_ANY_VEHICLE(NULL)
//TASK_GO_TO_ENTITY(NULL,PLAYER_PED_ID(),-1,6.1,PEDMOVEBLENDRATIO_WALK)
//TASK_TURN_PED_TO_FACE_ENTITY(NULL,PLAYER_PED_ID(),-1)
TASK_PLAY_ANIM(NULL,"rcmepsilonism8","jump_off_heli",REALLY_SLOW_BLEND_IN,-1,-1,AF_TAG_SYNC_OUT,0.084) //0.074
//TASK_PLAY_ANIM(NULL,"rcmepsilonism8","epsilonist_talks",SLOW_BLEND_IN,SLOW_BLEND_OUT,-1,AF_DEFAULT)
CLOSE_SEQUENCE_TASK(seqGoToPlayerFacePlayer)
TASK_PERFORM_SEQUENCE(pedEpsilonist,seqGoToPlayerFacePlayer)
CLEAR_SEQUENCE_TASK(seqGoToPlayerFacePlayer)
iTimerPlayerParkedAtHeli = GET_GAME_TIMER()
DISABLE_CELLPHONE(FALSE)
vCashCarParkedPos = GET_ENTITY_COORDS(vehPlayerCar)
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "**** Init exited car ****")
#ENDIF
blipEpsOnFootEscort = CREATE_PED_BLIP(pedEpsilonist,TRUE,TRUE)
bPrintFollowEpsilonist = TRUE
SET_BLIP_SCALE(blipEpsOnFootEscort,fSmallBlipScale)
//FREEZE_ENTITY_POSITION(vehEpsilonChopper,FALSE)
//SET_VEHICLE_ENGINE_ON(vehEpsilonChopper,FALSE,FALSE)
REQUEST_CLIP_SET("move_ped_wpn_jerrycan_generic")
iBagsPutInHeli = 0
//iBagsTakenFromCar = 0
KILL_CHASE_HINT_CAM(localChaseHintCamStruct)
eLOAD_HELI = LOAD_HELI_INIT
missionStage = MS_EXITED_CAR
ENDIF
ENDIF
ENDIF
ELSE
//Player got back in the car and drove off -> make guys hostile
IF NOT IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-351.627869,-76.402191,41.777630>>, <<-361.892456,-104.871811,48.977909>>, fAreaWidth)
bPlayerStoleMoney = TRUE
ENDIF
ENDIF
ENDPROC
/// PURPOSE: Start security guy loading money into the helicopter, Start Epsilonist walking to the tractor
PROC PlayerExitedCar()
Update()
RubberBand()
//HeliDynaMix()
IF NOT IS_PED_HEADTRACKING_PED(pedEpsilonist,PLAYER_PED_ID())
TASK_LOOK_AT_ENTITY(pedEpsilonist,PLAYER_PED_ID(),-1,SLF_WHILE_NOT_IN_FOV | SLF_WIDEST_PITCH_LIMIT | SLF_WIDEST_YAW_LIMIT,SLF_LOOKAT_VERY_HIGH)
ENDIF
//FREEZE_ENTITY_POSITION(vehEpsilonChopper,FALSE)
//SET_VEHICLE_ENGINE_ON(vehEpsilonChopper,FALSE,FALSE)
//SET_PED_CONFIG_FLAG(pedEpsilonHiSecurity[5],PCF_DisablePedAvoidance,TRUE)
//SET_PED_CONFIG_FLAG(pedEpsilonist,PCF_DisablePedAvoidance,TRUE)
IF GET_GAME_TIMER() > iTimerPlayerParkedAtHeli + 6500
DO_LOAD_HELI()
/*
IF GET_SCRIPT_TASK_STATUS(pedEpsilonHiSecurity[5],SCRIPT_TASK_PERFORM_SEQUENCE) <> PERFORMING_TASK
IF iLoadChopperSeqSwitch = 0
TASK_PERFORM_SEQUENCE(pedEpsilonHiSecurity[5],seqLoadChopper1)
//IF NOT IS_ENTITY_PLAYING_ANIM(pedEpsilonHiSecurity[5],"rcmepsilonism8","grab_bag_1")
// TASK_PLAY_ANIM(pedEpsilonHiSecurity[5],"rcmepsilonism8","grab_bag_1",NORMAL_BLEND_IN,NORMAL_BLEND_OUT,-1,AF_LOOPING)
//ENDIF
iLoadChopperSeqSwitch = 1
ELSE
//TASK_PERFORM_SEQUENCE(pedEpsilonHiSecurity[5],seqLoadChopper2)
IF NOT IS_ENTITY_PLAYING_ANIM(pedEpsilonHiSecurity[5],"rcmepsilonism8","grab_bag_1")
TASK_PLAY_ANIM(pedEpsilonHiSecurity[5],"rcmepsilonism8","grab_bag_1",NORMAL_BLEND_IN,NORMAL_BLEND_OUT,-1,AF_LOOPING)
ENDIF
iLoadChopperSeqSwitch = 2
ENDIF
ENDIF
*/
ENDIF
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF NOT DOES_BLIP_EXIST(blipEpsOnFootEscort)
IF bPrintFollowEpsilonist = FALSE
blipEpsOnFootEscort = CREATE_PED_BLIP(pedEpsilonist,TRUE,TRUE)
SET_BLIP_SCALE(blipEpsOnFootEscort,fSmallBlipScale)
bPrintFollowEpsilonist = TRUE
ENDIF
ENDIF
/*
IF GET_SCRIPT_TASK_STATUS(pedEpsilonHiSecurity[5],SCRIPT_TASK_PERFORM_SEQUENCE) <> PERFORMING_TASK
TASK_PERFORM_SEQUENCE(pedEpsilonHiSecurity[5],seqLoadChopper1)
//IF NOT IS_ENTITY_PLAYING_ANIM(pedEpsilonHiSecurity[5],"rcmepsilonism8","grab_bag_1")
// TASK_PLAY_ANIM(pedEpsilonHiSecurity[5],"rcmepsilonism8","grab_bag_1",NORMAL_BLEND_IN,NORMAL_BLEND_OUT,-1,AF_LOOPING)
//ENDIF
iLoadChopperSeqSwitch = 1
ENDIF
*/
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "**** Init walking to reward ****")
#ENDIF
missionStage = MS_WALKING_TO_REWARD
ENDIF
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehPlayerCar)
TEXT_LABEL_23 root = GET_CURRENTLY_PLAYING_STANDARD_CONVERSATION_ROOT()
//IF NOT ARE_STRINGS_EQUAL(root,"EPS8_E1")
// IF IS_ENTITY_PLAYING_ANIM(pedEpsilonist,"rcmepsilonism8","epsilonist_talks")
// STOP_ANIM_TASK(pedEpsilonist,"rcmepsilonism8","epsilonist_talks",REALLY_SLOW_BLEND_OUT)
// ENDIF
//ENDIF
IF NOT IS_STRING_NULL_OR_EMPTY(root)
IF ARE_STRINGS_EQUAL(root,"EPS8_E1")
KILL_ANY_CONVERSATION()
ENDIF
ENDIF
ENDIF
ENDPROC
/// PURPOSE: // Security guys load up the helicopter, Epsilonist escorts Michael to the tractor
PROC WalkingToReward()
Update()
RubberBand()
EpsilonistEscortGuyAi()
//HeliDynaMix()
HandleMikeLooking()
//IF NOT IS_PED_HEADTRACKING_PED(pedEpsilonist,PLAYER_PED_ID())
// TASK_LOOK_AT_ENTITY(pedEpsilonist,PLAYER_PED_ID(),-1)
//ENDIF
//FREEZE_ENTITY_POSITION(vehEpsilonChopper,FALSE)
//SET_VEHICLE_ENGINE_ON(vehEpsilonChopper,FALSE,FALSE)
//SET_PED_CONFIG_FLAG(pedEpsilonHiSecurity[5],PCF_DisablePedAvoidance,TRUE)
//SET_PED_CONFIG_FLAG(pedEpsilonist,PCF_DisablePedAvoidance,TRUE)
/*
IF bGuardGettingOnHeli
AND eLOAD_HELI = GET_IN_HELI
IF GET_GAME_TIMER() > iTimerSecurityGettingOnChopper + 1500
PlayerGaveMoneyHeliFlyAway()
ENDIF
ENDIF
*/
IF bPrintFollowEpsilonist = FALSE
IF NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehPlayerCar)
blipEpsOnFootEscort = CREATE_PED_BLIP(pedEpsilonist,TRUE,TRUE)
SET_BLIP_SCALE(blipEpsOnFootEscort,fSmallBlipScale)
bPrintFollowEpsilonist = TRUE
ENDIF
ENDIF
IF bGuardGettingOnHeli = FALSE
IF GET_GAME_TIMER() > iTimerPlayerParkedAtHeli + 6500
IF IS_PED_UNINJURED(pedEpsilonHiSecurity[5])
DO_LOAD_HELI()
/*
IF GET_SCRIPT_TASK_STATUS(pedEpsilonHiSecurity[5],SCRIPT_TASK_PERFORM_SEQUENCE) <> PERFORMING_TASK
IF iLoadChopperSeqSwitch = 0
TASK_PERFORM_SEQUENCE(pedEpsilonHiSecurity[5],seqLoadChopper1)
//IF NOT IS_ENTITY_PLAYING_ANIM(pedEpsilonHiSecurity[5],"rcmepsilonism8","grab_bag_1")
// TASK_PLAY_ANIM(pedEpsilonHiSecurity[5],"rcmepsilonism8","grab_bag_1",NORMAL_BLEND_IN,NORMAL_BLEND_OUT,-1,AF_LOOPING)
//ENDIF
iLoadChopperSeqSwitch = 1
ELSE
TASK_PERFORM_SEQUENCE(pedEpsilonHiSecurity[5],seqLoadChopper2)
//IF NOT IS_ENTITY_PLAYING_ANIM(pedEpsilonHiSecurity[5],"rcmepsilonism8","grab_bag_1")
// TASK_PLAY_ANIM(pedEpsilonHiSecurity[5],"rcmepsilonism8","grab_bag_1",NORMAL_BLEND_IN,NORMAL_BLEND_OUT,-1,AF_LOOPING)
//ENDIF
iLoadChopperSeqSwitch = 2
ENDIF
ENDIF
*/
ENDIF
ENDIF
ENDIF
/*
IF iLoadChopperSeqSwitch = 2
IF IS_PED_UNINJURED(pedEpsilonHiSecurity[5])
IF GET_SCRIPT_TASK_STATUS(pedEpsilonHiSecurity[5],SCRIPT_TASK_PERFORM_SEQUENCE) = PERFORMING_TASK
IF GET_SEQUENCE_PROGRESS(pedEpsilonHiSecurity[5]) = 1
IF bNoCashLeftInCar = FALSE
IF bBootOpen = FALSE
SET_VEHICLE_DOOR_OPEN(vehPlayerCar,SC_DOOR_BOOT)
SET_VEHICLE_DOORS_LOCKED(vehPlayerCar,VEHICLELOCK_UNLOCKED)
bBootOpen = TRUE
ENDIF
ENDIF
ELIF GET_SEQUENCE_PROGRESS(pedEpsilonHiSecurity[5]) = 2
IF NOT IS_ENTITY_ATTACHED_TO_ENTITY(objCashBag[i2],pedEpsilonHiSecurity[5])
DETACH_ENTITY(objCashBag[i2])
ATTACH_ENTITY_TO_ENTITY(objCashBag[i2],pedEpsilonHiSecurity[5],GET_PED_BONE_INDEX(pedEpsilonHiSecurity[5],BONETAG_PH_R_HAND),<<0.1,-0.35,-0.35>>,<<0.0,0.0,0.0>>)
SET_PED_WEAPON_MOVEMENT_CLIPSET(pedEpsilonHiSecurity[5],"move_ped_wpn_jerrycan_generic")
ENDIF
//SET_PED_ALTERNATE_MOVEMENT_ANIM(pedEpsilonHiSecurity[5],AAT_WALK,"move_ped_wpn_jerrycan_generic","walk")
//SET_PED_ALTERNATE_MOVEMENT_ANIM(pedEpsilonHiSecurity[5],AAT_IDLE,"move_ped_wpn_jerrycan_generic","idle")
//SET_PED_ALTERNATE_MOVEMENT_ANIM(pedEpsilonHiSecurity[5],AAT_RUN,"move_ped_wpn_jerrycan_generic","run")
bHeliLoadSwitch[i2] = FALSE
IF i2 = (iNumberOfMoneyBags - 1)
bNoCashLeftInCar = TRUE
IF bBootOpen = TRUE
SET_VEHICLE_DOOR_SHUT(vehPlayerCar,SC_DOOR_BOOT,FALSE)
SET_VEHICLE_DOORS_LOCKED(vehPlayerCar,VEHICLELOCK_UNLOCKED)
bBootOpen = FALSE
ENDIF
ENDIF
ELIF GET_SEQUENCE_PROGRESS(pedEpsilonHiSecurity[5]) = 3
IF bHeliLoadSwitch[i2] = FALSE
IF i2 <> (iNumberOfMoneyBags - 1)
SAFE_DELETE_OBJECT(objCashBag[i2])
RESET_PED_WEAPON_MOVEMENT_CLIPSET(pedEpsilonHiSecurity[5])
//CLEAR_PED_ALTERNATE_MOVEMENT_ANIM(pedEpsilonHiSecurity[5],AAT_WALK)
//CLEAR_PED_ALTERNATE_MOVEMENT_ANIM(pedEpsilonHiSecurity[5],AAT_IDLE)
//CLEAR_PED_ALTERNATE_MOVEMENT_ANIM(pedEpsilonHiSecurity[5],AAT_RUN)
ENDIF
++i2
bHeliLoadSwitch[i2] = TRUE
IF i2 > (iNumberOfMoneyBags - 1)
IF bGuardGettingOnHeli = FALSE
CLEAR_PED_TASKS(pedEpsilonHiSecurity[5])
CLEAR_SEQUENCE_TASK(seqLoadChopper1)
CLEAR_SEQUENCE_TASK(seqLoadChopper2)
SET_PED_KEEP_TASK(pedEpsilonHiSecurity[5],TRUE)
TASK_ENTER_VEHICLE(pedEpsilonHiSecurity[5],vehEpsilonChopper,DEFAULT_TIME_BEFORE_WARP,VS_BACK_LEFT,PEDMOVEBLENDRATIO_WALK)
iTimerSecurityGettingOnChopper = GET_GAME_TIMER()
bGuardGettingOnHeli = TRUE
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
*/
IF bGuardGettingOnHeli = TRUE //Guard has finished loading the money
IF GET_GAME_TIMER() > iTimerSecurityGettingOnChopper + 10000
OR IS_PED_IN_VEHICLE(pedEpsilonHiSecurity[5],vehEpsilonChopper)
bPlayerGaveMoney = TRUE
ENDIF
ENDIF
IF IS_ENTITY_DEAD(pedEpsilonist)
SAFE_REMOVE_BLIP(blipEpsOnFootEscort)
ENDIF
/*
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehPlayerCar)
TEXT_LABEL_23 root = GET_CURRENTLY_PLAYING_STANDARD_CONVERSATION_ROOT()
IF ARE_STRINGS_EQUAL(root,"EPS8_ESC")
OR ARE_STRINGS_EQUAL(root,"EPS8_E1")
//KILL_ANY_CONVERSATION()
KILL_FACE_TO_FACE_CONVERSATION_DO_NOT_FINISH_LAST_LINE()
ENDIF
ENDIF
*/
ENDPROC
/// PURPOSE: //Player has stolen the money
PROC PlayerTakenMoney()
/*
// Mark money as stolen //Moved to Script_Passed()
IF NOT Is_Replay_In_Progress()
IF (g_savedGlobals.sRandomChars.g_bStoleEpsilonCash = FALSE)
g_savedGlobals.sRandomChars.g_bStoleEpsilonCash = TRUE
ENDIF
ENDIF
*/
CLEANUP_AUDIO_SCENE_COMPLIANCE()
START_AUDIO_SCENE_NON_COMPLIANCE()
/*
IF bDoneCrisAngryPhoneCall = FALSE
IF iEpSecEvaded <> iEpSecBlipped
IF GET_GAME_TIMER() > iTimerPlayerStoleMoney + 30000
IF IS_VEHICLE_OK(vehPlayerCar)
AND IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehPlayerCar)
AND bDoHeliCam = FALSE
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
AND NOT IS_THIS_PRINT_BEING_DISPLAYED("EPS8_12")
AND NOT IS_THIS_PRINT_BEING_DISPLAYED("EPS8_16")
AND NOT IS_THIS_PRINT_BEING_DISPLAYED("EPS8_11")
IF CHAR_CALL_PLAYER_CELLPHONE(s_conversation_peds,CHAR_CRIS,"EPS8AU", "EPS8_CF1",CONV_PRIORITY_VERY_HIGH)
bDoneCrisAngryPhoneCall = TRUE
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
*/
IF iTriggerSecondMusicCue = 0
IF GET_GAME_TIMER() > iTimerPlayerStoleMoney + 5000
//TRIGGER_MUSIC_EVENT("EPS8_EVADE_STA")
iTriggerSecondMusicCue = 1
ENDIF
ELIF iTriggerSecondMusicCue = 1
IF GET_GAME_TIMER() > iTimerPlayerStoleMoney + 12000
//SET_AUDIO_FLAG("AllowScoreAndRadio", FALSE)
iTriggerSecondMusicCue = 2
ENDIF
ENDIF
IF GET_GAME_TIMER() > iTimerPlayerStoleMoney + 9700
IF iConvoChaseCar > 2
OR bNoCashLeftInCar = TRUE
//HeliCinematicCam()
ENDIF
ENDIF
IF iHeliNoLosConvoCounter = 3
AND iHeliGivenUp = 2
AND NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
bHeliGivenUp = TRUE
ENDIF
//HeliDynaMix()
IF iEpSecEvaded > 10000 //Failsafe to stop these ints getting too huge, this will never actually happen
AND iEpSecBlipped > 10000
SCRIPT_ASSERT("iEpSecEvaded and iEpSecBlipped > 10000. Please tell Tom Kingsley")
iEpSecEvaded = iEpSecEvaded - 9000
iEpSecBlipped = iEpSecBlipped - 9000
ENDIF
IF bNoCashLeftInCar = FALSE
IF bEscapeMessagePrinted = FALSE
IF IS_VEHICLE_OK(vehPlayerCar)
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehPlayerCar)
IF iEpSecEvaded <> iEpSecBlipped
IF bLoseCopsObjGiven = FALSE
REPLAY_RECORD_BACK_FOR_TIME(15.0, 4.0, REPLAY_IMPORTANCE_LOW)
PRINT_NOW("EPS8_12",DEFAULT_GOD_TEXT_TIME,0) //Escape from ~r~Epsilon's security.
ENDIF
bEscapeMessagePrinted = TRUE
ENDIF
ENDIF
ENDIF
ENDIF
/*
IF DOES_BLIP_EXIST(blipCashBag)
IF GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(),objCashBag[iBagsTakenFromCar],FALSE) < 1.0
IF NOT IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
REMOVE_BLIP(blipCashBag)
DELETE_OBJECT(objCashBag[iBagsTakenFromCar])
CREDIT_BANK_ACCOUNT(CHAR_MICHAEL, BAAC_UNLOGGED_SMALL_ACTION, iCashInEachBag)
bMikePickedUpABag = TRUE
//SET_PED_COMPONENT_VARIATION(PLAYER_PED_ID(), PED_COMP_SPECIAL2, 1, 0) // Give Michael a bag
ENDIF
ELSE
IF NOT IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),objCashBag[iBagsTakenFromCar],150)
REMOVE_BLIP(blipCashBag)
DELETE_OBJECT(objCashBag[iBagsTakenFromCar])
ENDIF
ENDIF
ENDIF
*/
ELSE
IF DOES_BLIP_EXIST(blipLastCashBag)
IF NOT IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
IF GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(),objCashBag[3],FALSE) < 1.0
REMOVE_BLIP(blipLastCashBag)
DELETE_OBJECT(objCashBag[3])
CREDIT_BANK_ACCOUNT(CHAR_MICHAEL, BAAC_UNLOGGED_SMALL_ACTION, iCashInEachBag)
bMikePickedUpABag = TRUE
//SET_PED_COMPONENT_VARIATION(PLAYER_PED_ID(), PED_COMP_SPECIAL2, 1, 0) // Give Michael a bag
IF iEpSecEvaded <> iEpSecBlipped
IF bEscapeMessagePrinted = FALSE
IF bLoseCopsObjGiven = FALSE
REPLAY_RECORD_BACK_FOR_TIME(15.0, 4.0, REPLAY_IMPORTANCE_LOW)
PRINT_NOW("EPS8_12",DEFAULT_GOD_TEXT_TIME,0) //Escape from ~r~Epsilon's security.
ENDIF
bEscapeMessagePrinted = TRUE
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
SEQUENCE_INDEX seqShuffle
IF IS_ENTITY_ALIVE(vehEpsilonChopper)
AND IS_ENTITY_ALIVE(pedChopperShotgun)
VECTOR vHeli = GET_ENTITY_COORDS(vehEpsilonChopper)
IF NOT IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(),GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(vehEpsilonChopper,<<0,0,vHeli.z - 200>>),GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(vehEpsilonChopper,<<500,0,vHeli.z + 200>>),1000)
IF IS_PED_SITTING_IN_VEHICLE_SEAT(pedChopperShotgun,vehEpsilonChopper,VS_BACK_RIGHT)
AND IS_VEHICLE_SEAT_FREE(vehEpsilonChopper,VS_BACK_LEFT)
IF GET_SCRIPT_TASK_STATUS(pedChopperShotgun,SCRIPT_TASK_PERFORM_SEQUENCE) <> PERFORMING_TASK
OR GET_SEQUENCE_PROGRESS(pedChopperShotgun) > 0
OPEN_SEQUENCE_TASK(seqShuffle)
TASK_SHUFFLE_TO_NEXT_VEHICLE_SEAT(NULL,vehEpsilonChopper)
TASK_COMBAT_PED(NULL,PLAYER_PED_ID())
CLOSE_SEQUENCE_TASK(seqShuffle)
TASK_PERFORM_SEQUENCE(pedChopperShotgun,seqShuffle)
CLEAR_SEQUENCE_TASK(seqShuffle)
ENDIF
ENDIF
ELSE
IF IS_PED_SITTING_IN_VEHICLE_SEAT(pedChopperShotgun,vehEpsilonChopper,VS_BACK_LEFT)
AND IS_VEHICLE_SEAT_FREE(vehEpsilonChopper,VS_BACK_RIGHT)
IF GET_SCRIPT_TASK_STATUS(pedChopperShotgun,SCRIPT_TASK_PERFORM_SEQUENCE) <> PERFORMING_TASK
OR GET_SEQUENCE_PROGRESS(pedChopperShotgun) > 0
OPEN_SEQUENCE_TASK(seqShuffle)
TASK_SHUFFLE_TO_NEXT_VEHICLE_SEAT(NULL,vehEpsilonChopper)
TASK_COMBAT_PED(NULL,PLAYER_PED_ID())
CLOSE_SEQUENCE_TASK(seqShuffle)
TASK_PERFORM_SEQUENCE(pedChopperShotgun,seqShuffle)
CLEAR_SEQUENCE_TASK(seqShuffle)
ENDIF
ENDIF
ENDIF
ENDIF
SetupEpsilonHostile()
UpdateEpsilonHostile()
blipsPlayerCar()
IF bHelicopterHostile = TRUE
HelicopterHostile()
ENDIF
IF bOverrideHeliColl = FALSE
IF IS_VEHICLE_OK(vehEpsilonChopper)
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehPlayerCar)
IF GET_SELECTED_PED_WEAPON(PLAYER_PED_ID()) <> WEAPONTYPE_STICKYBOMB
IF GET_GAME_TIMER() > iTimerPlayerStoleMoney + 5000
IF bHeliCollOff = FALSE
//SET_ENTITY_COLLISION(vehEpsilonChopper,FALSE)
bHeliCollOff = TRUE
ENDIF
ENDIF
ELSE
IF bHeliCollOff = TRUE
//SET_ENTITY_COLLISION(vehEpsilonChopper,TRUE)
bHeliCollOff = FALSE
ENDIF
ENDIF
ELSE
IF bHeliCollOff = TRUE
//SET_ENTITY_COLLISION(vehEpsilonChopper,TRUE)
bHeliCollOff = FALSE
ENDIF
ENDIF
ENDIF
ENDIF
IF iEpSecEvaded = iEpSecBlipped // If these ints are equal, no blips remain so all security has been evaded or killed
AND GET_GAME_TIMER() > iTimerPlayerStoleMoney + 8000 // Keep this a bit higher than the attack timer or mission can pass straight away
iWantedLevel = GET_PLAYER_WANTED_LEVEL(PLAYER_ID())
IF iWantedLevel = 0
iTimerHeliDeadUpdate = GET_GAME_TIMER()
IF iTimerHeliDeadUpdate > iTimerHeliDead + 1200 //delay after heli dies
IF iPassedDelay = 0
CLEAR_PLAYER_WANTED_LEVEL(PLAYER_ID())
SET_WANTED_LEVEL_MULTIPLIER(0.0)
bGetInCarObjGiven = FALSE
iCounterPassedDelay = GET_GAME_TIMER()
iPassedDelay = 1
ELIF iPassedDelay = 1
iCounterPassedDelayUpdate = GET_GAME_TIMER()
IF iCounterPassedDelayUpdate > iCounterPassedDelay + 2000 //delay before mission finishes
IF NOT IS_MOBILE_PHONE_CALL_ONGOING()
IF bNoCashLeftInCar = FALSE
IF bChopperBeingJacked = FALSE
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehPlayerCar)
TRIGGER_MUSIC_EVENT("EPS8_ESCAPE")
Script_Passed()
ELSE
IF bGetInCarObjGiven = FALSE
PRINT_NOW("EPS8_06",DEFAULT_GOD_TEXT_TIME,0) //Get back in the ~b~car.
bGetInCarObjGiven = TRUE
ENDIF
ENDIF
ELSE
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehEpsilonChopper)
TRIGGER_MUSIC_EVENT("EPS8_ESCAPE")
Script_Passed()
ELSE
IF bGetInCarObjGiven = FALSE
PRINT_NOW("EPS8_20",DEFAULT_GOD_TEXT_TIME,0) //Get back in the ~b~helicopter.
bGetInCarObjGiven = TRUE
ENDIF
ENDIF
ENDIF
ELSE
REPLAY_RECORD_BACK_FOR_TIME(15.0, 4.0, REPLAY_IMPORTANCE_LOW)
Script_Passed()
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
IF bLoseCopsObjGiven = FALSE
PRINT_NOW("EPS8_03",DEFAULT_GOD_TEXT_TIME,0) //Lose the cops
bLoseCopsObjGiven = TRUE
ENDIF
ENDIF
ENDIF
ConvoChase()
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))
IF bPlayerStoleMoney = TRUE
TRIGGER_MUSIC_EVENT("EPS8_FAIL")
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "**** Triggered music event EPS8_FAIL ****")
#ENDIF
PRINT_LAUNCHER_DEBUG("Force cleanup [TERMINATING]")
Random_Character_Failed()
Script_Cleanup()
ELSE
PRINT_LAUNCHER_DEBUG("Force cleanup [TERMINATING]")
Random_Character_Failed()
Script_Cleanup()
ENDIF
ENDIF
IF Is_Replay_In_Progress() // Set up the initial scene for replays
g_bSceneAutoTrigger = TRUE
eInitialSceneStage = IS_REQUEST_SCENE
WHILE NOT SetupScene_EPSILON_8(sRCLauncherDataLocal)
WAIT(0)
ENDWHILE
g_bSceneAutoTrigger = FALSE
ENDIF
REMOVE_SCENARIO_BLOCKING_AREA(Eps8_Scenario_Blocker())
CLEAR_BIT(g_savedGlobals.sRandomChars.g_iWebsiteQueryBit, ENUM_TO_INT(RC_NWS_EPS_STOLEN_CASH)) // ensure this bit is initially clear when starting the mission
ADD_RELATIONSHIP_GROUP("Epsilon",relEpsilon)
ADD_RELATIONSHIP_GROUP("EpsilonCivilian",relEpsilonCiv)
EpsBuildingBlock = ADD_SCENARIO_BLOCKING_AREA(<< -711.6323, 42.0868, 14.5077 >>,<< -663.5175, 118.0403, 86.0362 >>)
EpsBuildingBlock2 = ADD_SCENARIO_BLOCKING_AREA(<< -657.5416, 38.5153, 38.7892 >>,<< -665.8512, 52.9232, 42.3853 >>)
CockatoosCarBlocker = ADD_SCENARIO_BLOCKING_AREA(<<-413.4749, -36.1436, 45.2982>>-<<7,7,5>>,<<-413.4749, -36.1436, 45.2982>>+<<7,7,5>>)
// Clearing entity proofs here as they will be transferred to local peds - will need to update and ensure
// following peds are made invulnerable for the cutscene - and reset upon scene completion
RC_SET_ENTITY_PROOFS_FOR_CUTSCENE(sRCLauncherDataLocal, FALSE)
pedEpsilonHiSecurity[0] = sRCLauncherDataLocal.pedID[0]
pedEpsilonHiSecurity[2] = sRCLauncherDataLocal.pedID[1]
pedEpsilonHiSecDriver[0] = sRCLauncherDataLocal.pedID[2]
pedEpsilonHiSecShotgun[0] = sRCLauncherDataLocal.pedID[3]
sRCLauncherDataLocal.pedID[0] = NULL
sRCLauncherDataLocal.pedID[1] = NULL
sRCLauncherDataLocal.pedID[2] = NULL
sRCLauncherDataLocal.pedID[3] = NULL
SET_ALL_SHOPS_TEMPORARILY_UNAVAILABLE(TRUE)
// Loop within here until the mission passes or fails
WHILE(TRUE)
STOP_ALL_GARAGE_ACTIVITY()
REPLAY_CHECK_FOR_EVENT_THIS_FRAME("SF_Epsilon8")
WAIT(0)
UPDATE_MISSION_NAME_DISPLAYING(sRCLauncherDataLocal.sIntroCutscene)
IF missionStage <> MS_SETUP
AND missionStage <> MS_MOCAP
AND missionStage <> MS_INIT
//LockDoors()
IF missionStage <> MS_MISSION_FAILING
CheckForFail()
ENDIF
ManageTransitions()
ENDIF
SWITCH missionStage
CASE MS_SETUP
Setup()
BREAK
CASE MS_MOCAP
IntroCutscene()
BREAK
CASE MS_INIT
InitMission()
BREAK
CASE MS_DRIVING_TO_CHOPPER
DrivingToChopper()
BREAK
CASE MS_PARKING_AT_CHOPPER
ParkingAtChopper()
BREAK
CASE MS_PARKED_AT_CHOPPER
ParkedAtChopper()
BREAK
CASE MS_EXITED_CAR
PlayerExitedCar()
BREAK
CASE MS_WALKING_TO_REWARD
WalkingToReward()
BREAK
CASE MS_TAKEN_MONEY
PlayerTakenMoney()
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