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

4528 lines
165 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 "taxi_functions.sch"
USING "RC_Threat_public.sch"
USING "RC_Launcher_public.sch"
USING "initial_scenes_Josh.sch"
USING "commands_event.sch"
USING "commands_recording.sch"
//USING "fake_cellphone_public.sch"
#IF IS_DEBUG_BUILD
USING "select_mission_stage.sch"
#ENDIF
// *****************************************************************************************
// *****************************************************************************************
// *****************************************************************************************
//
// MISSION NAME : Josh2.sc
// AUTHOR : Tom Kingsley
// DESCRIPTION : Trevor chases Avery - Ai chase.
//
// *****************************************************************************************
// *****************************************************************************************
// *****************************************************************************************
g_structRCScriptArgs sRCLauncherDataLocal //Local copy of the data created by the launcher
structPedsForConversation s_conversation_peds
CHASE_HINT_CAM_STRUCT localChaseHintCamStruct
INT iRandomInt
INT iCometInitHp
INT iCometStuckCounter
INT iAveryTookMeleeHit
INT iPunchesAveryCanTake = 0 //Number of punches avery can take before being KO'd //2
INT iConvoCounter
INT iRoadSwitch
INT iTimerRoadsOff
INT iTimerDistanceWarning
INT iTimerMissionStarted
INT iTimerJoshSpeak
INT iJoshConvoCounter
INT iBikerConvoCounter
INT iGunThreaten
INT iTimerAveryGettingUp
INT iRollingStartTimer
INT iTimerPlayerHungUpPhone
INT iPleadConvo
INT iJoshScared
INT i
INT iTimerChaseStarted
INT iTimerAveryKO
INT iAverySpotted = 0
INT iTimerGunReact
INT iCounterReverseAverySeesPlayer = 0
INT Josh2Door[6]
INT iJoshMotelLines
INT iTimerJoshMotelLines
INT iTrevorChaseLines
INT iTimerTrevorChaseLines
INT iTimerAveryFleeOnFoot
INT iAveryOhFuckLines
INT iAveryFlee
INT iAveryGunThreat
INT iTimerDialogueDamageCar
INT iCounterDialogueDamageCar
FLOAT fCometEngineHp
FLOAT fCometPetrolHp
FLOAT fTopSpeed
FLOAT fHeadingComet
FLOAT fHeadingCometSpawn1
FLOAT fHeadingCometSpawn2
//VECTOR vAvery
VECTOR vCometPos
VECTOR vCometSpawn1
VECTOR vCometSpawn2
//VECTOR vSpawnTraffic1[6]
//FLOAT fHeadingTraffic1[6]
///VECTOR vDestTraffic1
VECTOR vNodeSwitch1
VECTOR vNodeSwitch2
//VECTOR vSpawnTraffic2[6]
//FLOAT fHeadingTraffic2[6]
//VECTOR vDestTraffic2
//VECTOR vSafeCoord
BOOL bWaypointPlaybackStopped
BOOL bCometReverse
BOOL bStartChase
BOOL bFindTheGreenCometMessagePrinted
BOOL bDistanceWarningPrinted
BOOL bPlayerRanAveryOver
BOOL bAveryFleeingInVehicle
BOOL bDebugSkipping
BOOL bDebugSkippingToStart
BOOL bPrintWrongColourComet
INT iBikerInCombat
BOOL bAveryGettingUp
BOOL bJoshCleanedUp
BOOL bRockfordInit
BOOL bJoshTasksCleared
BOOL bRoadsOffAroundAvery
BOOL bPrintBeatAvery
BOOL bCometSmashed
BOOL bDoorFallenOff
BOOL bDebugSkippedToBeatAvery
BOOL bConvoFelon = FALSE
BOOL bHouseViewerYelling = FALSE
BOOL bSwitchAnimFlags = FALSE
BOOL bOnFireHpSwitch = FALSE
BOOL bJoggerCreated = FALSE
BOOL bDogCreated = FALSE
BOOL bPrintGoToRockford = FALSE
BOOL bStreamVolCreated
BOOL bAveryFleeingOnFoot
BOOL bTrevThreat
BOOL bTrevThreatenedAvery
BOOL bDisabledTaxis = FALSE
BOOL bCSExitTrev = FALSE
BOOL bCSExitJosh = FALSE
BOOL bCSExitCam = FALSE
BOOL bDoCSLocate = FALSE
BOOL bLoveYa = FALSE
BOOL bDontKillAveryHelp = FALSE
BOOL bTurnedJosh
BOOL bCometGotStuck
INT iAveryKOLines
BOOL bJoggerLastLine
INT iTimerJoggerLastLine
INT Josh2_Leadin_1
INT Josh2_Leadin_1b
INT Josh2_Leadin_2
INT Josh2_Leadin_3
INT Josh2_Leadin_4
STRING sFailReason
// Mission stages
ENUM MISSION_STAGE
MS_SETUP,
MS_INTRO,
MS_INIT,
MS_GO_TO_ROCKFORD,
MS_FIND_THE_GREEN_COMET,
MS_CHASE_AVERY,
MS_GO_TO_AVERY,
MS_AVERY_KO,
MS_DISTURB_AVERY,
MS_FIGHT_AVERY,
MS_OUTRO,
MS_MISSION_FAILING
ENDENUM
ENUM FAIL_STATE
FS_SETUP,
FS_UPDATE,
FS_CLEANUP
ENDENUM
ENUM CUTSCENE_STAGE
eCutInit,
eCutLeadIn1,
eCutLeadIn2,
eCutLeadIn3,
eCutLeadIn4,
eCutLeadIn5,
eCutUpdate,
eCutLeadOut1,
eCutLeadOut2,
eCutCleanup
ENDENUM
ENUM JOGGER_STAGE
JOGGER_LOAD,
JOGGER_SPAWN,
JOGGER_JOG_DOWN_STREET,
JOGGER_APPROACH_TREVOR,
JOGGER_CHAT_TO_TREVOR,
JOGGER_CONTINUE_JOGGING,
JOGGER_FLEE,
JOGGER_CLEANUP
ENDENUM
JOGGER_STAGE eJOGGER = JOGGER_LOAD
CUTSCENE_STAGE eCutsceneState = eCutInit
MISSION_STAGE eMissionStage = MS_SETUP
FAIL_STATE eFAIL_STATE
structTimelapse sTimelapse
TIMEOFDAY todReference
INT iSkipToHour
CONST_INT CONST_NUM_HOURS_SKIP_FOR_MOTEL_TIMELAPSE 2
VEHICLE_INDEX vehAveryComet
VEHICLE_INDEX vehBullet
VEHICLE_INDEX vehElegy
VEHICLE_INDEX vehGauntlet
VEHICLE_INDEX vehJoshFelon
//VEHICLE_INDEX vehTraffic1[6]
//VEHICLE_INDEX vehTraffic2[6]
VEHICLE_INDEX vehBati
VEHICLE_INDEX vehSuperd
VEHICLE_INDEX vehPlayer
PED_INDEX pedAvery
PED_INDEX pedViewerHusband
PED_INDEX pedBiker
BLIP_INDEX blipRockfordHills
BLIP_INDEX blipAvery
BLIP_INDEX blipCSDoor
SEQUENCE_INDEX seqComet2
SEQUENCE_INDEX seqAngryHusband
//SEQUENCE_INDEX seqAveryCower
VEHICLE_INDEX vehRandom[15]
PED_INDEX pedRandom[15]
PED_INDEX pedJogger
PED_INDEX pedDog
CAMERA_INDEX camMiniCut
SCENARIO_BLOCKING_INDEX sbiLenny
STREAMVOL_ID StreamVol
/*
SCALEFORM_INDEX siJoshPhone
INT rt_ID
*/
//FAKE_CELLPHONE_DATA sJoshFakeCellphoneData
#IF IS_DEBUG_BUILD
CONST_INT MAX_SKIP_MENU_LENGTH 4
INT iReturnStage
MissionStageMenuTextStruct SkipMenuStruct[MAX_SKIP_MENU_LENGTH]
#ENDIF
/// PURPOSE: Load the stuff we need right at the start.
PROC LoadStuff()
//RELEASE_NAMED_RENDERTARGET("Prop_NPC_Phone")
//RELEASE_NAMED_RENDERTARGET("CELLPHONE_CUTSCENE")
//siJoshPhone = REQUEST_SCALEFORM_MOVIE("CELLPHONE_CUTSCENE")
REQUEST_ANIM_DICT("rcmjosh")
REQUEST_ANIM_DICT("rcmjosh2")
REQUEST_ADDITIONAL_TEXT("JOSH2",MISSION_TEXT_SLOT)
//REQUEST_ADDITIONAL_TEXT("JOSH2AU",MISSION_DIALOGUE_TEXT_SLOT)
REQUEST_MODEL(FELON2)
WHILE NOT HAS_ADDITIONAL_TEXT_LOADED(MISSION_TEXT_SLOT)
//OR NOT HAS_ADDITIONAL_TEXT_LOADED(MISSION_DIALOGUE_TEXT_SLOT)
OR NOT HAS_MODEL_LOADED(FELON2)
OR NOT HAS_ANIM_DICT_LOADED("rcmjosh2")
OR NOT HAS_ANIM_DICT_LOADED("rcmjosh")
//OR NOT HAS_SCALEFORM_MOVIE_LOADED(siJoshPhone)
CPRINTLN(DEBUG_MISSION, " LoadStuff : waiting ")
WAIT(0)
ENDWHILE
/*
IF NOT IS_NAMED_RENDERTARGET_REGISTERED("CELLPHONE_CUTSCENE")
REGISTER_NAMED_RENDERTARGET("CELLPHONE_CUTSCENE")
ENDIF
*/
ENDPROC
/// PURPOSE: Request all assets for Rockford hills
PROC RequestRockfordAssets()
REQUEST_MODEL(COMET2)
REQUEST_MODEL(A_M_Y_BUSINESS_03)
REQUEST_MODEL(BULLET)
REQUEST_MODEL(SUPERD)
REQUEST_MODEL(BATI)
REQUEST_MODEL(A_M_M_BevHills_01)
REQUEST_ANIM_DICT("rcmjosh2")
REQUEST_ANIM_DICT("rcmjosh2ig_1")
REQUEST_CLIP_SET("MOVE_M@BAIL_BOND_NOT_TAZERED")
//REQUEST_VEHICLE_RECORDING(174,"Josh2Roll")
REQUEST_WAYPOINT_RECORDING("Josh2Roll")
REQUEST_WAYPOINT_RECORDING("Josh2_Corner")
REQUEST_VEHICLE_RECORDING(101,"Josh2_A1")
REQUEST_VEHICLE_RECORDING(102,"Josh2_A2")
//REQUEST_WAYPOINT_RECORDING("Josh2_Comet10")
//REQUEST_WAYPOINT_RECORDING("Josh2_Comet11")
ENDPROC
/// PURPOSE: Wait for all assets for Rockford hills
PROC WaitForRockfordAssets()
//WHILE NOT GET_IS_WAYPOINT_RECORDING_LOADED("Josh2_Comet10")
//OR NOT GET_IS_WAYPOINT_RECORDING_LOADED("Josh2_Comet11")
WHILE NOT HAS_VEHICLE_RECORDING_BEEN_LOADED(101,"Josh2_A1")
OR NOT HAS_VEHICLE_RECORDING_BEEN_LOADED(102,"Josh2_A2")
OR NOT HAS_MODEL_LOADED(COMET2)
OR NOT HAS_MODEL_LOADED(A_M_Y_BUSINESS_03)
OR NOT HAS_MODEL_LOADED(BULLET)
OR NOT HAS_MODEL_LOADED(SUPERD)
OR NOT HAS_MODEL_LOADED(BATI)
OR NOT HAS_MODEL_LOADED(A_M_M_BevHills_01)
OR NOT HAS_ANIM_DICT_LOADED("rcmjosh2")
OR NOT HAS_ANIM_DICT_LOADED("rcmjosh2ig_1")
OR NOT HAS_CLIP_SET_LOADED("MOVE_M@BAIL_BOND_NOT_TAZERED")
OR NOT GET_IS_WAYPOINT_RECORDING_LOADED("Josh2Roll")
//OR NOT GET_IS_WAYPOINT_RECORDING_LOADED("Josh2_Corner")
//OR NOT HAS_VEHICLE_RECORDING_BEEN_LOADED(174,"Josh2Roll")
WAIT(0)
ENDWHILE
ENDPROC
PROC START_AUDIO_SCENE_CHASE()
IF NOT IS_AUDIO_SCENE_ACTIVE("JOSH_02_SCENE")
IF IS_ENTITY_ALIVE(vehAveryComet)
ADD_ENTITY_TO_AUDIO_MIX_GROUP(vehAveryComet, "JOSH_02_SCENE_LENNY_VEHICLE")
ENDIF
START_AUDIO_SCENE("JOSH_02_SCENE")
ENDIF
ENDPROC
PROC CLEANUP_AUDIO_SCENE_CHASE()
IF IS_AUDIO_SCENE_ACTIVE("JOSH_02_SCENE")
STOP_AUDIO_SCENE("JOSH_02_SCENE")
ENDIF
ENDPROC
PROC DO_JOSH_MOTEL_LINES()
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
AND NOT IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<565.184204,-1777.227417,30.704159>>, <<549.950806,-1770.103027,35.947773>>, 7.000000)
IF IS_ENTITY_ALIVE(sRCLauncherDataLocal.pedID[0])
AND IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),sRCLauncherDataLocal.pedID[0],30)
IF iJoshMotelLines < 5
IF GET_GAME_TIMER() > iTimerJoshMotelLines + (8000 + GET_RANDOM_INT_IN_RANGE(0,2000))
IF CREATE_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_MOTEL",CONV_PRIORITY_LOW)
iTimerJoshMotelLines = GET_GAME_TIMER()
++iJoshMotelLines
EXIT
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDPROC
PROC DO_TREVOR_CHASE_LINES()
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
AND NOT IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),pedAvery,80)
IF iTrevorChaseLines < 7
IF GET_GAME_TIMER() > iTimerTrevorChaseLines + (20000 + GET_RANDOM_INT_IN_RANGE(0,10000))
IF CREATE_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_CHASE",CONV_PRIORITY_LOW) //It's wank
iTimerTrevorChaseLines = GET_GAME_TIMER()
++iTrevorChaseLines
EXIT
ENDIF
ENDIF
ENDIF
ENDIF
ENDPROC
/// PURPOSE: Grab cars around a ped and make them brake
PROC STOP_AMBIENT_CARS_AROUND_PED(PED_INDEX ped,FLOAT fRadius = 30.0,INT iBraketime = 60000)
IF IS_PED_UNINJURED(ped)
IF GET_ENTITY_SPEED(ped) < 0.1
IF NOT DOES_ENTITY_EXIST(vehRandom[i])
vehRandom[i] = GET_RANDOM_VEHICLE_IN_SPHERE(GET_ENTITY_COORDS(ped),fRadius,DUMMY_MODEL_FOR_SCRIPT,VEHICLE_SEARCH_FLAG_RETURN_RANDOM_VEHICLES)
IF IS_VEHICLE_OK(vehRandom[i])
IF NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehRandom[i])
pedRandom[i] = GET_PED_IN_VEHICLE_SEAT(vehRandom[i])
IF IS_PED_UNINJURED(pedRandom[i])
IF IS_PED_FACING_PED(pedRandom[i],ped,180.0)
IF GET_SCRIPT_TASK_STATUS(pedRandom[i],SCRIPT_TASK_VEHICLE_TEMP_ACTION) <> PERFORMING_TASK
//SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedRandom[i],TRUE)
TASK_VEHICLE_TEMP_ACTION(pedRandom[i],vehRandom[i],TEMPACT_BRAKE,iBraketime)
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, " TOLD A RANDOM VEHICLE TO BRAKE ")
#ENDIF
ENDIF
ENDIF
ELSE
IF DOES_ENTITY_EXIST(pedRandom[i])
SET_PED_AS_NO_LONGER_NEEDED(pedRandom[i])
ENDIF
IF DOES_ENTITY_EXIST(vehRandom[i])
SET_VEHICLE_AS_NO_LONGER_NEEDED(vehRandom[i])
ENDIF
ENDIF
ELSE
IF DOES_ENTITY_EXIST(pedRandom[i])
SET_PED_AS_NO_LONGER_NEEDED(pedRandom[i])
ENDIF
IF DOES_ENTITY_EXIST(vehRandom[i])
SET_VEHICLE_AS_NO_LONGER_NEEDED(vehRandom[i])
ENDIF
ENDIF
ELSE
IF DOES_ENTITY_EXIST(pedRandom[i])
SET_PED_AS_NO_LONGER_NEEDED(pedRandom[i])
ENDIF
IF DOES_ENTITY_EXIST(vehRandom[i])
SET_VEHICLE_AS_NO_LONGER_NEEDED(vehRandom[i])
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
++i
IF i > 14
i = 0
ENDIF
ENDPROC
PROC DO_JOGGER_PED()
TEXT_LABEL_23 root = GET_CURRENTLY_PLAYING_STANDARD_CONVERSATION_ROOT()
TEXT_LABEL_23 label = GET_CURRENTLY_PLAYING_STANDARD_CONVERSATION_LABEL()
SEQUENCE_INDEX seqJogger
IF bJoggerCreated = TRUE
AND bDogCreated = TRUE
IF IS_PED_UNINJURED(pedJogger)
SET_PED_INCREASED_AVOIDANCE_RADIUS(pedJogger)
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-891.910583,17.157560,43.932739>>, <<-923.386963,42.692142,50.968578>>, 12.250000) //Player drove past
IF NOT IS_STRING_NULL_OR_EMPTY(root)
IF ARE_STRINGS_EQUAL(root,"JOSH2_JOG1")
OR ARE_STRINGS_EQUAL(root,"JOSH2_JOG2")
KILL_FACE_TO_FACE_CONVERSATION()
ENDIF
ENDIF
IF GET_SCRIPT_TASK_STATUS(pedJogger,SCRIPT_TASK_FOLLOW_NAV_MESH_TO_COORD) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(pedJogger,SCRIPT_TASK_FOLLOW_NAV_MESH_TO_COORD) <> WAITING_TO_START_TASK
AND NOT IS_ENTITY_IN_RANGE_COORDS(pedJogger,<<-824.8292, -24.5877, 38.1216>>,4)
TASK_FOLLOW_NAV_MESH_TO_COORD(pedJogger,<<-824.8292, -24.5877, 38.1216>>,1.2,-1)
eJOGGER = JOGGER_CONTINUE_JOGGING
ENDIF
ENDIF
IF eJOGGER <> JOGGER_FLEE
IF HAS_PLAYER_THREATENED_PED(pedJogger)
OR HAS_PLAYER_THREATENED_PED(pedDog)
OR HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(pedJogger,PLAYER_PED_ID())
OR HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(pedDog,PLAYER_PED_ID())
OR IS_BULLET_IN_AREA(GET_ENTITY_COORDS(pedJogger),20,FALSE)
IF NOT IS_STRING_NULL_OR_EMPTY(root)
IF ARE_STRINGS_EQUAL(root,"JOSH2_JOG1")
OR ARE_STRINGS_EQUAL(root,"JOSH2_JOG2")
//IF NOT IS_STRING_NULL_OR_EMPTY(label)
// IF ARE_STRINGS_EQUAL(label,"JOSH2_JOG2_1")
// OR ARE_STRINGS_EQUAL(label,"JOSH2_JOG2_3")
// OR ARE_STRINGS_EQUAL(label,"JOSH2_JOG2_4")
// OR ARE_STRINGS_EQUAL(label,"JOSH2_JOG2_5")
KILL_FACE_TO_FACE_CONVERSATION_DO_NOT_FINISH_LAST_LINE()
// ELSE
// KILL_FACE_TO_FACE_CONVERSATION()
// ENDIF
//ENDIF
ENDIF
ENDIF
STOP_PED_SPEAKING(pedJogger,FALSE)
CREATE_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_ATTACK", CONV_PRIORITY_HIGH)
IF IS_PED_UNINJURED(pedDog)
TASK_SMART_FLEE_PED(pedDog,PLAYER_PED_ID(),200,-1)
SET_PED_KEEP_TASK(pedDog,TRUE)
ENDIF
CLEAR_PED_ALTERNATE_MOVEMENT_ANIM(pedJogger,AAT_IDLE)
CLEAR_PED_ALTERNATE_MOVEMENT_ANIM(pedJogger,AAT_WALK)
CLEAR_PED_ALTERNATE_MOVEMENT_ANIM(pedJogger,AAT_RUN)
TASK_REACT_AND_FLEE_PED(pedJogger,PLAYER_PED_ID())
SAFE_RELEASE_PED(pedJogger)
SAFE_RELEASE_PED(pedDog)
eJOGGER = JOGGER_FLEE
ENDIF
ENDIF
ELSE
IF eJOGGER <> JOGGER_FLEE
IF IS_PED_UNINJURED(pedDog)
TASK_SMART_FLEE_PED(pedDog,PLAYER_PED_ID(),200,-1)
SET_PED_KEEP_TASK(pedDog,TRUE)
ENDIF
IF NOT IS_STRING_NULL_OR_EMPTY(root)
IF ARE_STRINGS_EQUAL(root,"JOSH2_JOG1")
OR ARE_STRINGS_EQUAL(root,"JOSH2_JOG2")
//IF NOT IS_STRING_NULL_OR_EMPTY(label)
// IF ARE_STRINGS_EQUAL(label,"JOSH2_JOG2_1")
// OR ARE_STRINGS_EQUAL(label,"JOSH2_JOG2_3")
// OR ARE_STRINGS_EQUAL(label,"JOSH2_JOG2_4")
// OR ARE_STRINGS_EQUAL(label,"JOSH2_JOG2_5")
KILL_FACE_TO_FACE_CONVERSATION_DO_NOT_FINISH_LAST_LINE()
// ELSE
// KILL_FACE_TO_FACE_CONVERSATION()
// ENDIF
//ENDIF
ENDIF
ENDIF
STOP_PED_SPEAKING(pedJogger,FALSE)
CREATE_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_ATTACK", CONV_PRIORITY_HIGH)
SAFE_RELEASE_PED(pedJogger)
SAFE_RELEASE_PED(pedDog)
eJOGGER = JOGGER_FLEE
ENDIF
ENDIF
ENDIF
/*
IF DOES_ENTITY_EXIST(pedJogger)
AND DOES_ENTITY_EXIST(pedDog)
IF IS_ENTITY_DEAD(pedJogger)
OR IS_PED_INJURED(pedJogger)
OR IS_ENTITY_DEAD(pedDog)
OR IS_PED_INJURED(pedDog)
CLEAR_PED_TASKS(pedJogger)
CLEAR_PED_TASKS(pedDog)
SAFE_RELEASE_PED(pedJogger)
SAFE_RELEASE_PED(pedDog)
EXIT
ELSE
SET_PED_INCREASED_AVOIDANCE_RADIUS(pedJogger)
SET_PED_INCREASED_AVOIDANCE_RADIUS(pedDog)
IF HAS_PLAYER_THREATENED_PED(pedJogger)
OR HAS_PLAYER_THREATENED_PED(pedDog,FALSE)
IF NOT IS_STRING_NULL_OR_EMPTY(root)
IF ARE_STRINGS_EQUAL(root,"JOSH2_JOG2")
IF NOT IS_STRING_NULL_OR_EMPTY(label)
IF ARE_STRINGS_EQUAL(label,"JOSH2_JOG2_1")
OR ARE_STRINGS_EQUAL(label,"JOSH2_JOG2_3")
OR ARE_STRINGS_EQUAL(label,"JOSH2_JOG2_5")
KILL_FACE_TO_FACE_CONVERSATION_DO_NOT_FINISH_LAST_LINE()
ELSE
KILL_FACE_TO_FACE_CONVERSATION()
ENDIF
ENDIF
ENDIF
ENDIF
CLEAR_PED_TASKS(pedJogger)
SAFE_RELEASE_PED(pedJogger)
ENDIF
ENDIF
ENDIF
*/
SWITCH eJOGGER
CASE JOGGER_LOAD
bJoggerLastLine = FALSE
REQUEST_MODEL(A_F_Y_FITNESS_02)
REQUEST_MODEL(A_C_RETRIEVER)
REQUEST_ANIM_DICT("move_f@jogger")
//REQUEST_CLIP_SET("AMB@WORLD_HUMAN_JOG_FEMALE@BASE")
eJOGGER = JOGGER_SPAWN
BREAK
CASE JOGGER_SPAWN
IF NOT DOES_ENTITY_EXIST(pedJogger)
IF HAS_MODEL_LOADED(A_F_Y_FITNESS_02)
AND HAS_MODEL_LOADED(A_C_RETRIEVER)
AND HAS_ANIM_DICT_LOADED("move_f@jogger")
//AND HAS_CLIP_SET_LOADED("AMB@WORLD_HUMAN_JOG_FEMALE@BASE")
pedJogger = CREATE_PED(PEDTYPE_MISSION,A_F_Y_FITNESS_02,<<-885.9105, 9.2858, 43.7928>>, 239.9410)
pedDog = CREATE_PED(PEDTYPE_MISSION,A_C_RETRIEVER,<<-888.4332, 10.5150, 43.9829>>, 241.9898)
ADD_PED_FOR_DIALOGUE(s_conversation_peds,4,pedJogger,"JOSH2JOGGER")
SET_PED_COMPONENT_VARIATION(pedJogger, INT_TO_ENUM(PED_COMPONENT,0), 0, 0, 0) //(head)
SET_PED_COMPONENT_VARIATION(pedJogger, INT_TO_ENUM(PED_COMPONENT,2), 0, 2, 0) //(hair)
SET_PED_COMPONENT_VARIATION(pedJogger, INT_TO_ENUM(PED_COMPONENT,3), 0, 2, 0) //(uppr)
SET_PED_COMPONENT_VARIATION(pedJogger, INT_TO_ENUM(PED_COMPONENT,4), 1, 2, 0) //(lowr)
SET_PED_COMPONENT_VARIATION(pedJogger, INT_TO_ENUM(PED_COMPONENT,8), 0, 2, 0) //(accs)
SET_PED_COMPONENT_VARIATION(pedJogger, INT_TO_ENUM(PED_COMPONENT,10), 1, 0, 0) //(decl)
SET_PED_DEFAULT_COMPONENT_VARIATION(pedDog)
//SET_PED_MOVEMENT_CLIPSET(pedJogger,"AMB@WORLD_HUMAN_JOG_FEMALE@BASE")
SET_PED_ALTERNATE_MOVEMENT_ANIM(pedJogger,AAT_IDLE,"move_f@jogger","idle",2)
SET_PED_ALTERNATE_MOVEMENT_ANIM(pedJogger,AAT_WALK,"move_f@jogger","jogging",2)
SET_PED_ALTERNATE_MOVEMENT_ANIM(pedJogger,AAT_RUN,"move_f@jogger","run",2)
TASK_LOOK_AT_ENTITY(pedDog,pedJogger,-1)
TASK_FOLLOW_TO_OFFSET_OF_ENTITY(pedDog,pedJogger,<<0,-2,0>>,1.5,-1,0.5)
STOP_PED_SPEAKING(pedJogger,TRUE)
bJoggerCreated = TRUE
bDogCreated = TRUE
ENDIF
ELSE
IF IS_ENTITY_IN_RANGE_ENTITY(PLAYER_PED_ID(),pedJogger,75)
//TASK_FOLLOW_NAV_MESH_TO_COORD(pedJogger,<<-863.1377, 0.1459, 42.3048>>,1.2,-1)
OPEN_SEQUENCE_TASK(seqJogger)
//TASK_FOLLOW_NAV_MESH_TO_COORD(NULL,<<-887.8427, 10.2152, 43.9376>>,1.2,-1,1,ENAV_NO_STOPPING)
TASK_FOLLOW_NAV_MESH_TO_COORD(NULL,<<-874.8856, 3.1640, 42.9592>>,1.2,-1,1,ENAV_NO_STOPPING)
TASK_FOLLOW_NAV_MESH_TO_COORD(NULL,<<-864.1951, -0.3664, 42.3140>>,1.2,-1,1,ENAV_NO_STOPPING)
TASK_FOLLOW_NAV_MESH_TO_COORD(NULL,<<-847.0853, -0.1079, 41.7293>>,1.2,-1,1,ENAV_NO_STOPPING)
TASK_FOLLOW_NAV_MESH_TO_COORD(NULL,<<-835.9113, -5.3215, 40.8279>>,1.2,-1,1,ENAV_NO_STOPPING)
TASK_FOLLOW_NAV_MESH_TO_COORD(NULL,<<-824.8292, -24.5877, 38.1216>>,1.2,-1,1,ENAV_NO_STOPPING)
TASK_WANDER_STANDARD(NULL)
CLOSE_SEQUENCE_TASK(seqJogger)
TASK_PERFORM_SEQUENCE(pedJogger,seqJogger)
CLEAR_SEQUENCE_TASK(seqJogger)
eJOGGER = JOGGER_JOG_DOWN_STREET
ENDIF
ENDIF
BREAK
CASE JOGGER_JOG_DOWN_STREET
SET_RANDOM_VEHICLE_DENSITY_MULTIPLIER_THIS_FRAME(0)
IF IS_PED_UNINJURED(pedJogger)
AND IS_ENTITY_IN_RANGE_ENTITY(pedJogger,PLAYER_PED_ID(),15)
AND GET_ENTITY_SPEED(PLAYER_PED_ID()) < 12
IF IS_THIS_PRINT_BEING_DISPLAYED("JOSH2_07")
IF CREATE_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_JOG1", CONV_PRIORITY_MEDIUM,DO_NOT_DISPLAY_SUBTITLES) //Hey! Lady! Come here!
TASK_LOOK_AT_ENTITY(PLAYER_PED_ID(),pedJogger,-1)
TASK_LOOK_AT_ENTITY(pedJogger,PLAYER_PED_ID(),-1)
TASK_LOOK_AT_ENTITY(pedDog,PLAYER_PED_ID(),-1)
TASK_FOLLOW_TO_OFFSET_OF_ENTITY(pedJogger,PLAYER_PED_ID(),<<-2,2,0>>,1.2,-1,1.0)
eJOGGER = JOGGER_APPROACH_TREVOR
ENDIF
ELSE
IF CREATE_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_JOG1", CONV_PRIORITY_MEDIUM) //Hey! Lady! Come here!
TASK_LOOK_AT_ENTITY(PLAYER_PED_ID(),pedJogger,-1)
TASK_LOOK_AT_ENTITY(pedJogger,PLAYER_PED_ID(),-1)
TASK_FOLLOW_TO_OFFSET_OF_ENTITY(pedJogger,PLAYER_PED_ID(),<<-2,2,0>>,1.2,-1,1.0)
eJOGGER = JOGGER_APPROACH_TREVOR
ENDIF
ENDIF
ENDIF
BREAK
CASE JOGGER_APPROACH_TREVOR
SET_RANDOM_VEHICLE_DENSITY_MULTIPLIER_THIS_FRAME(0)
IF IS_PED_UNINJURED(pedJogger)
AND IS_ENTITY_IN_RANGE_ENTITY(pedJogger,PLAYER_PED_ID(),4.7)
IF CREATE_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_JOG2", CONV_PRIORITY_MEDIUM) //You seen a guy with a green car? A comet?
IF GET_SCRIPT_TASK_STATUS(pedJogger,SCRIPT_TASK_FOLLOW_TO_OFFSET_OF_ENTITY) = PERFORMING_TASK
CLEAR_PED_TASKS(pedJogger)
ENDIF
eJOGGER = JOGGER_CHAT_TO_TREVOR
ENDIF
ENDIF
STOP_AMBIENT_CARS_AROUND_PED(pedJogger,30,10000)
BREAK
CASE JOGGER_CHAT_TO_TREVOR
SET_RANDOM_VEHICLE_DENSITY_MULTIPLIER_THIS_FRAME(0)
IF IS_PED_UNINJURED(pedJogger)
IF IS_PED_UNINJURED(pedDog)
IF IS_ENTITY_IN_RANGE_ENTITY(pedJogger,pedDog,2.5)
//IF NOT IS_PED_FACING_PED(pedDog,PLAYER_PED_ID(),45)
// TASK_TURN_PED_TO_FACE_ENTITY(pedDog,PLAYER_PED_ID())
//ELSE
IF GET_SCRIPT_TASK_STATUS(pedDog,SCRIPT_TASK_START_SCENARIO_IN_PLACE) <> PERFORMING_TASK
TASK_START_SCENARIO_IN_PLACE(pedDog,"WORLD_DOG_SITTING_RETRIEVER",0,TRUE)
ENDIF
//ENDIF
ENDIF
ENDIF
IF NOT IS_ENTITY_IN_RANGE_ENTITY(pedJogger,PLAYER_PED_ID(),10)
IF NOT IS_STRING_NULL_OR_EMPTY(root)
IF ARE_STRINGS_EQUAL(root,"JOSH2_JOG2")
KILL_ANY_CONVERSATION()
ENDIF
ENDIF
ELSE
IF NOT IS_PED_FACING_PED(pedJogger,PLAYER_PED_ID(),90)
TASK_TURN_PED_TO_FACE_ENTITY(pedJogger,PLAYER_PED_ID())
ENDIF
ENDIF
ENDIF
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
TASK_FOLLOW_TO_OFFSET_OF_ENTITY(pedDog,pedJogger,<<0,-2,0>>,1.5,-1,0.5)
TASK_FOLLOW_NAV_MESH_TO_COORD(pedJogger,<<-824.8292, -24.5877, 38.1216>>,1.2,-1)
eJOGGER = JOGGER_CONTINUE_JOGGING
ELSE
IF ARE_STRINGS_EQUAL(root,"JOSH2_JOG2")
IF ARE_STRINGS_EQUAL(label,"JOSH2_JOG2_11") //7
IF bJoggerLastLine = FALSE
iTimerJoggerLastLine = GET_GAME_TIMER()
bJoggerLastLine = TRUE
ELSE
IF GET_GAME_TIMER() > iTimerJoggerLastLine + 1200
TASK_FOLLOW_TO_OFFSET_OF_ENTITY(pedDog,pedJogger,<<0,-2,0>>,1.5,-1,0.5)
TASK_FOLLOW_NAV_MESH_TO_COORD(pedJogger,<<-824.8292, -24.5877, 38.1216>>,1.2,-1)
eJOGGER = JOGGER_CONTINUE_JOGGING
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
STOP_AMBIENT_CARS_AROUND_PED(pedJogger,30,10000)
BREAK
CASE JOGGER_CONTINUE_JOGGING
IF IS_PED_UNINJURED(pedJogger)
IF IS_ENTITY_IN_RANGE_COORDS(pedJogger,<<-824.8292, -24.5877, 38.1216>>,15)
bJoggerCreated = FALSE
bDogCreated = FALSE
TASK_WANDER_STANDARD(pedJogger)
SET_PED_KEEP_TASK(pedJogger,TRUE)
SAFE_RELEASE_PED(pedJogger)
eJOGGER = JOGGER_CLEANUP
ENDIF
ENDIF
BREAK
CASE JOGGER_FLEE
BREAK
CASE JOGGER_CLEANUP
BREAK
ENDSWITCH
ENDPROC
/// PURPOSE: Initialise mission, spawn cars and peds
PROC Init()
ADD_CONTACT_TO_PHONEBOOK(CHAR_JOSH, TREVOR_BOOK, FALSE)
IF NOT DOES_ENTITY_EXIST(sRCLauncherDataLocal.pedID[0])
WHILE NOT RC_CREATE_NPC_PED(sRCLauncherDataLocal.pedID[0],CHAR_JOSH, << 566.5068, -1772.1902, 28.3575 >>, 337.1148, "JOSH")
WAIT(0)
ENDWHILE
ENDIF
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[0])
SET_PED_COMBAT_ATTRIBUTES(sRCLauncherDataLocal.pedID[0],CA_ALWAYS_FLEE,TRUE)
//TASK_START_SCENARIO_AT_POSITION(sRCLauncherDataLocal.pedID[0],"WORLD_HUMAN_SEAT_STEPS",<<565.8320, -1772.9409, 28.8053>>, 335.4487)
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 5, sRCLauncherDataLocal.pedID[0], "JOSH")
ENDIF
RC_END_CUTSCENE_MODE()
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 2, PLAYER_PED_ID(), "TREVOR")
iRandomInt = 2
vCometSpawn1 = << -872.0014, -51.0350, 37.3370 >>
vCometSpawn2 = << -924.3982, 8.4185, 46.7128 >>
fHeadingCometSpawn1 = 270.2333
fHeadingCometSpawn2 = 219.1117
IF iRandomInt = 1
vCometPos = vCometSpawn1
fHeadingComet = fHeadingCometSpawn1
ELIF iRandomInt = 2
vCometPos = vCometSpawn2
fHeadingComet = fHeadingCometSpawn2
ENDIF
IF NOT DOES_BLIP_EXIST(blipRockfordHills)
blipRockfordHills = CREATE_COORD_BLIP(<< -903.6451, 25.6888, 45.4577 >>)
//SET_BLIP_ALPHA(blipRockfordHills,100)
//SET_BLIP_SCALE(blipRockfordHills,5)
SET_TAXI_DROPOFF_LOCATION_FOR_BLIP(blipRockfordHills,<<-821.0944, -2.6563, 39.9561>>, 31.8236)
ENDIF
SET_WANTED_LEVEL_MULTIPLIER(0.5)
SET_VEHICLE_MODEL_IS_SUPPRESSED(COMET2,TRUE)
SET_PED_MODEL_IS_SUPPRESSED(A_M_Y_BUSINESS_03,TRUE)
iTimerMissionStarted = GET_GAME_TIMER()
ENDPROC
/// PURPOSE: Spawn ambient cars and peds at rockford hills, start playing anims
PROC InitAmbientHouses()
sbiLenny = ADD_SCENARIO_BLOCKING_AREA(<<-928.948792,-9.733973,41.001431>>, <<-917.712463,26.534355,54.602386>>)
SET_ROADS_IN_ANGLED_AREA(<<-887.370972,-101.877480,34.387718>>, <<-989.135986,60.986832,58.366745>>, 31.500000,FALSE,FALSE)
SET_ROADS_IN_ANGLED_AREA(<<-928.948792,-9.733973,41.001431>>, <<-917.712463,26.534355,54.602386>>, 30,FALSE,FALSE)
SET_ROADS_IN_ANGLED_AREA(<<-847.796692,-7.619044,37.653656>>, <<-961.217163,70.092979,56.287842>>, 28.750000,FALSE,FALSE)
IF NOT DOES_ENTITY_EXIST(vehAveryComet)
vehAveryComet = CREATE_VEHICLE(COMET2,vCometPos, fHeadingComet)
SET_VEHICLE_ON_GROUND_PROPERLY(vehAveryComet)
SET_VEHICLE_COLOURS(vehAveryComet,139,139)
SET_VEHICLE_EXTRA_COLOURS(vehAveryComet,90,90)
iCometInitHp = GET_ENTITY_HEALTH(vehAveryComet)
fCometEngineHp = GET_VEHICLE_PETROL_TANK_HEALTH(vehAveryComet)
fCometPetrolHp = GET_VEHICLE_ENGINE_HEALTH(vehAveryComet)
SET_VEHICLE_MOD_KIT(vehAveryComet,0)
SET_VEHICLE_WINDOW_TINT(vehAveryComet,2)
//SET_VEHICLE_MOD(vehAveryComet,MOD_SUSPENSION,2)
//SET_VEHICLE_MOD(vehAveryComet,MOD_ENGINE,1)
SET_VEHICLE_MOD(vehAveryComet,MOD_BRAKES,1)
//SET_VEHICLE_MOD(vehAveryComet,MOD_HORN,0)
ROLL_DOWN_WINDOWS(vehAveryComet)
//TOGGLE_VEHICLE_MOD(vehAveryComet,MOD_TOGGLE_NITROUS,TRUE)
//TOGGLE_VEHICLE_MOD(vehAveryComet,MOD_TOGGLE_TURBO,TRUE)
//TOGGLE_VEHICLE_MOD(vehAveryComet,MOD_TOGGLE_SUBWOOFER,TRUE)
TOGGLE_VEHICLE_MOD(vehAveryComet,MOD_TOGGLE_TYRE_SMOKE,TRUE)
TOGGLE_VEHICLE_MOD(vehAveryComet,MOD_TOGGLE_XENON_LIGHTS,TRUE)
//SET_ENTITY_ONLY_DAMAGED_BY_PLAYER(vehAveryComet,TRUE)
ENDIF
IF NOT DOES_ENTITY_EXIST(pedAvery)
pedAvery = CREATE_PED_INSIDE_VEHICLE(vehAveryComet,PEDTYPE_MISSION,A_M_Y_BUSINESS_03) //Comment in for older version
//pedAvery = CREATE_PED(PEDTYPE_MISSION,A_M_Y_BUSINESS_03,<<-923.43, 9.76, 47.71>>,255)
STOP_PED_SPEAKING(pedAvery,TRUE)
SET_PED_COMPONENT_VARIATION(pedAvery,PED_COMP_HEAD,0,2,0)
SET_PED_COMPONENT_VARIATION(pedAvery,PED_COMP_TORSO,0,2,0)
SET_PED_COMPONENT_VARIATION(pedAvery,PED_COMP_LEG,1,0,0)
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedAvery,TRUE)
SET_ENTITY_HEALTH(pedAvery,280)
SET_ENTITY_IS_TARGET_PRIORITY(pedAvery,TRUE)
//SET_ENTITY_ONLY_DAMAGED_BY_PLAYER(pedAvery,TRUE)
SET_PED_LEG_IK_MODE(pedAvery, LEG_IK_FULL)
//SET_PED_COMBAT_ATTRIBUTES(pedAvery, CA_PLAY_REACTION_ANIMS, TRUE)
SET_PED_COMBAT_ATTRIBUTES(pedAvery, CA_ALWAYS_FLEE, TRUE)
//TASK_SET_DECISION_MAKER(pedAvery,DECISION_MAKER_DEFAULT)
SET_PED_GET_OUT_UPSIDE_DOWN_VEHICLE(pedAvery,TRUE)
SET_PED_CONFIG_FLAG(pedAvery, PCF_DisableGoToWritheWhenInjured, TRUE)
SET_PED_CONFIG_FLAG(pedAvery,PCF_DontInfluenceWantedLevel,TRUE)
SET_PED_CONFIG_FLAG(pedAvery,PCF_PhoneDisableTextingAnimations,TRUE)
SET_PED_CONFIG_FLAG(pedAvery,PCF_PhoneDisableTalkingAnimations,TRUE)
//SET_PED_CONFIG_FLAG(pedAvery, PCF_ForceControlledKnockout, TRUE)
SET_DRIVER_ABILITY(pedAvery,1)
SET_DRIVER_RACING_MODIFIER(pedAvery,1)
ADD_CONTACT_TO_PHONEBOOK(CHAR_JOSH,TREVOR_BOOK,FALSE)
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 3, pedAvery, "AVERY")
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 5, NULL, "JOSH")
//TASK_START_SCENARIO_IN_PLACE(pedAvery,"WORLD_VEHICLE_BUSINESSMEN")
//SET_PED_SHOULD_PLAY_IMMEDIATE_SCENARIO_EXIT(pedAvery)
ENDIF
//IF NOT DOES_ENTITY_EXIST(pedJogger)
//pedAvery = CREATE_PED(PEDTYPE_MISSION,RUN,<<-923.43, 9.76, 47.71>>,255)
IF NOT DOES_ENTITY_EXIST(vehBullet)
vehBullet = CREATE_VEHICLE(BULLET,<< -887.6388, -16.3760, 42.0828 >>, 123.9787)
SET_VEHICLE_ON_GROUND_PROPERLY(vehBullet)
SET_VEHICLE_COLOUR_COMBINATION(vehBullet,2)
ENDIF
IF NOT DOES_ENTITY_EXIST(vehSuperd)
vehSuperd = CREATE_VEHICLE(SUPERD,<< -921.9576, 19.3388, 46.7128 >>, 94.1395)
SET_VEHICLE_ON_GROUND_PROPERLY(vehSuperd)
SET_VEHICLE_COLOUR_COMBINATION(vehSuperd,0)
ENDIF
IF NOT DOES_ENTITY_EXIST(vehJoshFelon)
IF NOT DOES_ENTITY_EXIST(sRCLauncherDataLocal.vehID[0])
vehJoshFelon = CREATE_VEHICLE(FELON2,<<558.093933,-1765.382568,28.862253>>, -24.676498)
SET_VEHICLE_ON_GROUND_PROPERLY(vehJoshFelon)
SET_VEHICLE_COLOUR_COMBINATION(vehJoshFelon,2)
ENDIF
ENDIF
IF NOT DOES_ENTITY_EXIST(vehGauntlet)
vehGauntlet = CREATE_VEHICLE(COMET2,<< -877.5642, 43.1467, 47.7590 >>,81.1951)
SET_VEHICLE_ON_GROUND_PROPERLY(vehGauntlet)
SET_VEHICLE_COLOUR_COMBINATION(vehGauntlet,3)
ENDIF
IF NOT DOES_ENTITY_EXIST(vehElegy)
IF iRandomInt = 1
vehElegy = CREATE_VEHICLE(SUPERD,vCometSpawn2, fHeadingCometSpawn2)
ELIF iRandomInt = 2
vehElegy = CREATE_VEHICLE(SUPERD,vCometSpawn1, fHeadingCometSpawn1)
ENDIF
SET_VEHICLE_COLOUR_COMBINATION(vehElegy,2)
SET_VEHICLE_ON_GROUND_PROPERLY(vehElegy)
ENDIF
IF NOT DOES_ENTITY_EXIST(pedViewerHusband)
//pedViewerHusband = CREATE_PED(PEDTYPE_MISSION,A_M_M_BevHills_01,<<-925.603394,7.467144,47.749523>>, 150) // -54.312847 167.031372
pedViewerHusband = CREATE_PED(PEDTYPE_MISSION,A_M_M_BevHills_01,<<-923.43, 9.76, 47.71>>, 150) //Comment in for older version
//pedViewerHusband = CREATE_PED(PEDTYPE_MISSION,A_M_M_BevHills_01,<<-922.920837,10.754505,47.713017>>, 150) // <<-923.43, 9.76, 47.71>>// -54.312847 167.031372
TASK_START_SCENARIO_IN_PLACE(pedViewerHusband,"WORLD_HUMAN_STAND_MOBILE")
SET_PED_SHOULD_PLAY_IMMEDIATE_SCENARIO_EXIT(pedViewerHusband)
SET_PED_COMPONENT_VARIATION(pedViewerHusband,PED_COMP_HEAD,0,0,0)
SET_PED_COMPONENT_VARIATION(pedViewerHusband,PED_COMP_TORSO,0,0,0)
SET_PED_COMPONENT_VARIATION(pedViewerHusband,PED_COMP_LEG,0,0,0)
SET_PED_COMPONENT_VARIATION(pedViewerHusband,PED_COMP_SPECIAL,0,0,0)
SET_PED_COMPONENT_VARIATION(pedViewerHusband,PED_COMP_DECL,0,0,0)
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedViewerHusband,TRUE)
SET_PED_COMBAT_ATTRIBUTES(pedViewerHusband,CA_ALWAYS_FLEE,TRUE)
TASK_LOOK_AT_ENTITY(pedViewerHusband,pedAvery, -1)
TASK_LOOK_AT_ENTITY(pedAvery,pedViewerHusband, -1, SLF_WHILE_NOT_IN_FOV)
ENDIF
IF NOT DOES_ENTITY_EXIST(vehBati)
vehBati = CREATE_VEHICLE(BATI,<< -888.3505, -8.9959, 42.3460 >>, 208.0802)
SET_VEHICLE_COLOUR_COMBINATION(vehBati,1)
ENDIF
IF NOT DOES_ENTITY_EXIST(pedBiker)
pedBiker = CREATE_PED(PEDTYPE_MISSION,A_M_M_BevHills_01,<<-890.075928,-9.350061,43.329903>>, -62.379219)
SET_PED_COMPONENT_VARIATION(pedBiker,PED_COMP_HEAD,0,2,0)
SET_PED_COMPONENT_VARIATION(pedBiker,PED_COMP_TORSO,1,1,0)
SET_PED_COMPONENT_VARIATION(pedBiker,PED_COMP_LEG,0,1,0)
SET_PED_COMPONENT_VARIATION(pedBiker,PED_COMP_SPECIAL,1,1,0)
SET_PED_COMPONENT_VARIATION(pedBiker,PED_COMP_DECL,1,2,0)
SET_PED_COMBAT_ATTRIBUTES(pedBiker,CA_ALWAYS_FLEE,TRUE)
STOP_PED_SPEAKING(pedBiker,TRUE)
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 6, pedBiker, "Josh2PoshBiker")
ENDIF
IF IS_PED_UNINJURED(pedBiker)
TASK_START_SCENARIO_IN_PLACE(pedBiker,"WORLD_HUMAN_SMOKING")
ENDIF
bRockfordInit = TRUE
ENDPROC
/// PURPOSE: Handle ambient biker at rockford hills
PROC AmbientBiker()
IF IS_PED_UNINJURED(pedBiker)
IF NOT IS_PED_HEADTRACKING_PED(pedBiker,PLAYER_PED_ID())
TASK_LOOK_AT_ENTITY(pedBiker,PLAYER_PED_ID(),-1)
ENDIF
IF iBikerInCombat <> 2
IF iBikerInCombat <> 1
IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(pedBiker,PLAYER_PED_ID())
SET_PED_SHOULD_PLAY_IMMEDIATE_SCENARIO_EXIT(pedBiker)
SET_PED_COMBAT_ATTRIBUTES(pedBiker,CA_ALWAYS_FLEE,TRUE)
//CLEAR_PED_TASKS(pedBiker)
//TASK_SMART_FLEE_PED(pedBiker,PLAYER_PED_ID(),300,-1)
//PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_BIKE", "JOSH2_BIKE_5", CONV_PRIORITY_MEDIUM) //Help! This tweaker is trying to rape me!
CREATE_CONVERSATION(s_conversation_peds,"JOSH2AU", "JOSH2_ATTB", CONV_PRIORITY_MEDIUM)
TASK_REACT_AND_FLEE_PED(pedBiker,PLAYER_PED_ID())
iBikerInCombat = 2
ENDIF
ENDIF
IF HAS_PLAYER_THREATENED_PED(pedBiker,TRUE)
IF IS_PED_ARMED(PLAYER_PED_ID(),WF_INCLUDE_PROJECTILE | WF_INCLUDE_GUN)
SET_PED_SHOULD_PLAY_IMMEDIATE_SCENARIO_EXIT(pedBiker)
SET_PED_COMBAT_ATTRIBUTES(pedBiker,CA_ALWAYS_FLEE,TRUE)
//CLEAR_PED_TASKS(pedBiker)
//TASK_SMART_FLEE_PED(pedBiker,PLAYER_PED_ID(),300,-1)
//PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_BIKE", "JOSH2_BIKE_5", CONV_PRIORITY_MEDIUM) //Help! This tweaker is trying to rape me!
CREATE_CONVERSATION(s_conversation_peds,"JOSH2AU", "JOSH2_ATTB", CONV_PRIORITY_MEDIUM)
TASK_REACT_AND_FLEE_PED(pedBiker,PLAYER_PED_ID())
iBikerInCombat = 2
ENDIF
ENDIF
ENDIF
IF iBikerInCombat = 0
/*
IF IS_PED_RAGDOLL(pedBiker)
OR HAS_PLAYER_THREATENED_PED(pedBiker,TRUE)
//OR IS_PLAYER_SHOOTING_NEAR_PED(pedBiker)
//OR IS_PLAYER_TARGETTING_ENTITY(PLAYER_ID(),pedBiker)
IF GET_SCRIPT_TASK_STATUS(pedBiker,SCRIPT_TASK_COMBAT) <> PERFORMING_TASK
IF GET_SCRIPT_TASK_STATUS(pedBiker,SCRIPT_TASK_SMART_FLEE_PED) <> PERFORMING_TASK
TASK_SMART_FLEE_PED(pedBiker,PLAYER_PED_ID(),1000.0,-1)
ENDIF
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_BIKE", "JOSH2_BIKE_5", CONV_PRIORITY_MEDIUM)
iBikerInCombat = TRUE
ENDIF
ENDIF
ENDIF
*/
IF IS_VEHICLE_OK(vehBati)
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehBati)
//IF GET_SCRIPT_TASK_STATUS(pedBiker,SCRIPT_TASK_COMBAT) <> PERFORMING_TASK
SET_PED_COMBAT_ATTRIBUTES(pedBiker,CA_ALWAYS_FLEE,FALSE)
SET_PED_SHOULD_PLAY_IMMEDIATE_SCENARIO_EXIT(pedBiker)
TASK_COMBAT_PED(pedBiker,PLAYER_PED_ID()) //Hey! That's my bike!
//IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_BIKE", "JOSH2_BIKE_3", CONV_PRIORITY_MEDIUM)
IF CREATE_CONVERSATION(s_conversation_peds,"JOSH2AU", "JOSH2_STEALB", CONV_PRIORITY_MEDIUM)
iBikerInCombat = 1
ENDIF
//ENDIF
ENDIF
ENDIF
IF IS_VEHICLE_OK(vehBullet)
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehBullet)
//IF GET_SCRIPT_TASK_STATUS(pedBiker,SCRIPT_TASK_COMBAT) <> PERFORMING_TASK
SET_PED_COMBAT_ATTRIBUTES(pedBiker,CA_ALWAYS_FLEE,FALSE)
SET_PED_SHOULD_PLAY_IMMEDIATE_SCENARIO_EXIT(pedBiker)
TASK_COMBAT_PED(pedBiker,PLAYER_PED_ID()) //Hey! That's my car!
//IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_BIKE", "JOSH2_BIKE_4", CONV_PRIORITY_MEDIUM)
IF CREATE_CONVERSATION(s_conversation_peds,"JOSH2AU", "JOSH2_STEALC", CONV_PRIORITY_MEDIUM)
iBikerInCombat = 1
ENDIF
//ENDIF
ENDIF
ENDIF
ELSE
//IF GET_SCRIPT_TASK_STATUS(pedBiker,SCRIPT_TASK_COMBAT) <> PERFORMING_TASK
// TASK_COMBAT_PED(pedBiker,PLAYER_PED_ID())
//ENDIF
//IF iBikerInCombat = 1
//ENDIF
ENDIF
ENDIF
ENDPROC
/*
/// PURPOSE: Spawn random traffic
PROC RandomTraffic1()
vSpawnTraffic1[0] = << -903.4059, 78.3809, 50.9436 >>
vSpawnTraffic1[1] = << -762.4873, 98.5261, 54.3848 >>
vSpawnTraffic1[2] = << -670.0525, 125.2276, 55.8838 >>
fHeadingTraffic1[0] = 266.2728
fHeadingTraffic1[1] = 270.6989
fHeadingTraffic1[2] = 272.9075
vDestTraffic1 = << -418.3191, 124.1427, 64.1284 >>
i = 0
WHILE i < 3
vehTraffic1[i] = CREATE_VEHICLE(BULLET,vSpawnTraffic1[i],fHeadingTraffic1[i])
pedRandom[i]Driver1[i] = CREATE_RANDOM_PED_AS_DRIVER(vehTraffic1[i])
SET_PED_KEEP_TASK(pedRandom[i]Driver1[i],TRUE)
TASK_VEHICLE_DRIVE_TO_COORD(pedRandom[i]Driver1[i],vehTraffic1[i],vDestTraffic1,14.0,DRIVINGSTYLE_NORMAL,GET_ENTITY_MODEL(vehTraffic1[i]),DRIVINGMODE_AVOIDCARS_STOPFORPEDS_OBEYLIGHTS,1.0,1.0)
++i
ENDWHILE
ENDPROC
*/
/*
/// PURPOSE: Spawn random traffic
PROC RandomTraffic2()
vSpawnTraffic2[0] = << -699.6869, 119.8908, 55.3086 >>
vSpawnTraffic2[1] = << -822.3788, 91.7024, 52.0150 >>
vSpawnTraffic2[2] = << -913.1359, 85.5499, 50.8899 >>
fHeadingTraffic2[0] = 118.2277
fHeadingTraffic2[1] = 104.9941
fHeadingTraffic2[2] = 76.4767
vDestTraffic2 = << -983.3253, 81.6117, 50.8200 >>
i = 0
WHILE i < 3
vehTraffic2[i] = CREATE_VEHICLE(BULLET,vSpawnTraffic2[i],fHeadingTraffic2[i])
pedRandom[i]Driver2[i] = CREATE_RANDOM_PED_AS_DRIVER(vehTraffic2[i])
SET_PED_KEEP_TASK(pedRandom[i]Driver2[i],TRUE)
TASK_VEHICLE_DRIVE_TO_COORD(pedRandom[i]Driver2[i],vehTraffic2[i],vDestTraffic2,14.0,DRIVINGSTYLE_NORMAL,GET_ENTITY_MODEL(vehTraffic2[i]),DRIVINGMODE_AVOIDCARS_STOPFORPEDS_OBEYLIGHTS,1.0,1.0)
++i
ENDWHILE
ENDPROC
*/
/// PURPOSE: Handle conversations
PROC Convo()
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF eMissionStage = MS_GO_TO_ROCKFORD
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[0])
IF NOT IS_THIS_PRINT_BEING_DISPLAYED("JOSH2_01")
IF IS_ENTITY_IN_RANGE_ENTITY(sRCLauncherDataLocal.pedID[0],PLAYER_PED_ID(),30)
IF IS_VEHICLE_OK(sRCLauncherDataLocal.vehID[0])
IF IS_CHAR_USING_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
IF bConvoFelon = FALSE
IF CREATE_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_FELON", CONV_PRIORITY_MEDIUM) //Hey, that's my car!
bConvoFelon = TRUE
ENDIF
ENDIF
ENDIF
IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(sRCLauncherDataLocal.vehID[0],PLAYER_PED_ID())
AND NOT IS_ANY_SPEECH_PLAYING(sRCLauncherDataLocal.pedID[0])
AND iCounterDialogueDamageCar < 3
AND GET_GAME_TIMER() > iTimerDialogueDamageCar + 8000
AND NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(),sRCLauncherDataLocal.vehID[0])
PLAY_PED_AMBIENT_SPEECH(sRCLauncherDataLocal.pedID[0], "WHATS_YOUR_PROBLEM",SPEECH_PARAMS_FORCE)
CLEAR_ENTITY_LAST_DAMAGE_ENTITY(sRCLauncherDataLocal.vehID[0])
bConvoFelon = TRUE
iTimerDialogueDamageCar = GET_GAME_TIMER() + GET_RANDOM_INT_IN_RANGE(0,4000)
++iCounterDialogueDamageCar
ENDIF
ENDIF
ENDIF
ENDIF
IF GET_GAME_TIMER() > iTimerMissionStarted + 15000
IF GET_DISTANCE_BETWEEN_PEDS(PLAYER_PED_ID(),sRCLauncherDataLocal.pedID[0]) < 30.0
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF NOT IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
IF iJoshConvoCounter = 0 //So... You going to see Lenny or not?
IF CREATE_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_JOSH",CONV_PRIORITY_LOW)
iJoshConvoCounter = 1
iTimerJoshSpeak = GET_GAME_TIMER()
ENDIF
ELIF iJoshConvoCounter = 1 //Are you ok Tony?
IF GET_GAME_TIMER() > iTimerJoshSpeak + 10000
IF CREATE_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_JOSH",CONV_PRIORITY_LOW)
iJoshConvoCounter = 2
ENDIF
ENDIF
ELIF iJoshConvoCounter = 2 //Damn, I think I got a splinter.
IF GET_GAME_TIMER() > iTimerJoshSpeak + 19000
IF CREATE_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_JOSH",CONV_PRIORITY_LOW)
iJoshConvoCounter = 3
ENDIF
ENDIF
ELIF iJoshConvoCounter = 3 //Damn, I think I got a splinter.
IF GET_GAME_TIMER() > iTimerJoshSpeak + 27000
IF CREATE_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_JOSH",CONV_PRIORITY_LOW)
iJoshConvoCounter = 4
ENDIF
ENDIF
ELIF iJoshConvoCounter = 4 //Damn, I think I got a splinter.
IF GET_GAME_TIMER() > iTimerJoshSpeak + 35000
IF CREATE_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_JOSH",CONV_PRIORITY_LOW)
iJoshConvoCounter = 5
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF NOT IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-853.674500,-52.276905,31.257320>>, <<-918.126526,47.042919,121.331253>>, 75.000000)
AND NOT IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-879.910889,56.844849,38.783661>>, <<-958.235535,59.315208,124.611870>>, 25.000000)
AND NOT IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-859.330750,40.053410,29.865433>>, <<-937.509583,8.682496,123.805862>>, 68.250000)
AND NOT IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-841.455811,-15.820283,54.401230>>, <<-859.777344,16.357359,39.161922>>, 24.500000)
IF iConvoCounter = 0
IF IS_ENTITY_IN_RANGE_COORDS(PLAYER_PED_ID(),vCometPos,2200.0)
IF CREATE_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_TREV2", CONV_PRIORITY_MEDIUM) //Well, that was pleasant.
iConvoCounter = 1
ENDIF
ENDIF
ELIF iConvoCounter = 1
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF IS_ENTITY_IN_RANGE_COORDS(PLAYER_PED_ID(),vCometPos,1170.0)
IF NOT IS_ENTITY_IN_RANGE_COORDS(PLAYER_PED_ID(),vCometPos,400.0)
IF CHAR_CALL_PLAYER_CELLPHONE_FORCE_ANSWER(s_conversation_peds,CHAR_JOSH,"JOSH2AU", "JOSH2_CALL",CONV_PRIORITY_VERY_HIGH)
iConvoCounter = 2
ENDIF
ELSE
iTimerPlayerHungUpPhone = GET_GAME_TIMER() - 8000
iConvoCounter = 3
ENDIF
ENDIF
ENDIF
ENDIF
IF iConvoCounter = 2
IF WAS_LAST_CELLPHONE_CALL_INTERRUPTED()
iTimerPlayerHungUpPhone = GET_GAME_TIMER()
iConvoCounter = 3
ENDIF
ENDIF
IF iConvoCounter = 3
IF GET_GAME_TIMER() > iTimerPlayerHungUpPhone + 9000
IF SEND_TEXT_MESSAGE_TO_CURRENT_PLAYER(CHAR_JOSH,"JOSH2_TXT",TXTMSG_UNLOCKED)
iConvoCounter = 4
ENDIF
ENDIF
ENDIF
ENDIF
IF iConvoCounter <> 2
IF bStartChase = TRUE
iConvoCounter = 2
ENDIF
ENDIF
ELIF eMissionStage = MS_FIND_THE_GREEN_COMET
IF iConvoCounter <> 2
IF bStartChase = TRUE
iConvoCounter = 2
ENDIF
ENDIF
IF bPrintWrongColourComet = FALSE
IF IS_VEHICLE_OK(vehGauntlet)
IF GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(),vehGauntlet) < 14.0 //Right make... Wrong color...
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_COMET", "JOSH2_COMET_1", CONV_PRIORITY_MEDIUM)
bPrintWrongColourComet = TRUE
ENDIF
ENDIF
ENDIF
ENDIF
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-893.643860,-0.506663,37.989750>>, <<-884.396484,-14.709142,47.418583>>, 9.500000)
IF iBikerInCombat = 0
IF iBikerConvoCounter = 0 //You seen an old guy with a yellow comet?
//IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_BIKE", "JOSH2_BIKE_1", CONV_PRIORITY_MEDIUM)
iBikerConvoCounter = 1
//ENDIF
ELIF iBikerConvoCounter = 1 //You mean Lenny? Don't think I've seen him today.
//IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_BIKE", "JOSH2_BIKE_2", CONV_PRIORITY_MEDIUM)
iBikerConvoCounter = 2
//ENDIF
ENDIF
ENDIF
ENDIF
ELIF eMissionStage = MS_CHASE_AVERY
IF GET_GAME_TIMER() > iTimerChaseStarted + 7000
IF IS_PED_SITTING_IN_ANY_VEHICLE(pedAvery)
AND IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
AND NOT bWaypointPlaybackStopped
IF GET_DISTANCE_BETWEEN_PEDS(PLAYER_PED_ID(),pedAvery) < 16.0
IF iConvoCounter = 5
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_CHASE2", "JOSH2_CHASE2_7", CONV_PRIORITY_MEDIUM)
iConvoCounter = 6
ENDIF
ENDIF
IF iConvoCounter = 4
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_CHASE2", "JOSH2_CHASE2_5", CONV_PRIORITY_MEDIUM)
iConvoCounter = 5
ENDIF
ENDIF
IF iConvoCounter = 3
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_CHASE2", "JOSH2_CHASE2_3", CONV_PRIORITY_MEDIUM)
iConvoCounter = 4
ENDIF
ENDIF
IF iConvoCounter <= 2
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_CHASE2", "JOSH2_CHASE2_1", CONV_PRIORITY_MEDIUM)
iConvoCounter = 3
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ELIF eMissionStage = MS_AVERY_KO
/*
IF iConvoCounter <> 7
IF GET_GAME_TIMER() > iTimerAveryKO + 1100
IF CREATE_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_OUTRO", CONV_PRIORITY_VERY_HIGH) //My beautiful face! Please don't hit me again. I'll do whatever you want.
SET_AUDIO_FLAG("DisableAbortConversationForRagdoll", TRUE)
iConvoCounter = 7
ENDIF
ENDIF
ENDIF
*/
ENDIF
ENDIF
ENDPROC
/// PURPOSE: Rubberbanding for Avery during chase
PROC Rubberband()
fTopSpeed = (150.0 - (GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(),vehAveryComet)))
fTopSpeed = (fTopSpeed / 5)
IF fTopSpeed < 25.0 //14
fTopSpeed = 25.0
ENDIF
IF fTopSpeed > 40.0 //27
fTopSpeed = 40.0
ENDIF
ENDPROC
/// PURPOSE: Remove all blips
PROC RemoveBlips()
SAFE_REMOVE_BLIP(blipRockfordHills)
SAFE_REMOVE_BLIP(blipAvery)
SAFE_REMOVE_BLIP(blipCSDoor)
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
//RELEASE_FAKE_CELLPHONE_MOVIE(sJoshFakeCellphoneData)
//RELEASE_NPC_PHONE_RENDERTARGET()
SET_INSTANCE_PRIORITY_HINT(INSTANCE_HINT_NONE)
CLEANUP_AUDIO_SCENE_CHASE()
/*
IF IS_NAMED_RENDERTARGET_REGISTERED("Prop_NPC_Phone")
RELEASE_NAMED_RENDERTARGET("Prop_NPC_Phone")
ENDIF
IF IS_NAMED_RENDERTARGET_REGISTERED("CELLPHONE_CUTSCENE")
RELEASE_NAMED_RENDERTARGET("CELLPHONE_CUTSCENE")
ENDIF
*/
STREAMVOL_DELETE(StreamVol)
bStreamVolCreated = FALSE
SET_AUDIO_FLAG("DisableAbortConversationForRagdoll", FALSE)
REMOVE_SCENARIO_BLOCKING_AREA(sbiLenny)
KILL_CHASE_HINT_CAM(localChaseHintCamStruct)
IF IS_DOOR_REGISTERED_WITH_SYSTEM(Josh2Door[0])
REMOVE_DOOR_FROM_SYSTEM(Josh2Door[0])
ENDIF
IF IS_DOOR_REGISTERED_WITH_SYSTEM(Josh2Door[1])
REMOVE_DOOR_FROM_SYSTEM(Josh2Door[1])
ENDIF
IF IS_DOOR_REGISTERED_WITH_SYSTEM(Josh2Door[2])
REMOVE_DOOR_FROM_SYSTEM(Josh2Door[2])
ENDIF
IF IS_DOOR_REGISTERED_WITH_SYSTEM(Josh2Door[3])
REMOVE_DOOR_FROM_SYSTEM(Josh2Door[3])
ENDIF
IF IS_DOOR_REGISTERED_WITH_SYSTEM(Josh2Door[4])
REMOVE_DOOR_FROM_SYSTEM(Josh2Door[4])
ENDIF
IF IS_DOOR_REGISTERED_WITH_SYSTEM(Josh2Door[5])
REMOVE_DOOR_FROM_SYSTEM(Josh2Door[5])
ENDIF
// B*2079566 - RESET disable taxis during the "go to door" state to fix PT issue
IF bDisabledTaxis = TRUE
DISABLE_TAXI_HAILING(FALSE)
bDisabledTaxis = FALSE
CPRINTLN(DEBUG_MISSION, " Script_Cleanup : bDisabledTaxis = FALSE")
ENDIF
SET_MODEL_AS_NO_LONGER_NEEDED(COMET2)
SET_MODEL_AS_NO_LONGER_NEEDED(GAUNTLET)
SET_MODEL_AS_NO_LONGER_NEEDED(A_M_Y_BUSINESS_03)
SET_MODEL_AS_NO_LONGER_NEEDED(BULLET)
SET_MODEL_AS_NO_LONGER_NEEDED(SUPERD)
SET_MODEL_AS_NO_LONGER_NEEDED(FELON2)
SET_VEHICLE_MODEL_IS_SUPPRESSED(COMET2,FALSE)
IF NOT IS_ENTITY_DEAD(PLAYER_PED_ID())
TASK_CLEAR_LOOK_AT(PLAYER_PED_ID())
ENDIF
SET_WANTED_LEVEL_MULTIPLIER(1.0)
SET_ROADS_IN_ANGLED_AREA(<<-887.370972,-101.877480,34.387718>>, <<-989.135986,60.986832,58.366745>>, 31.500000,FALSE,TRUE)
SET_ROADS_IN_ANGLED_AREA(vNodeSwitch1,vNodeSwitch2,100,FALSE,TRUE)
//SET_DISABLE_AMBIENT_MELEE_MOVE(PLAYER_ID(),FALSE)
/*
ACTION_MANAGER_ENABLE_ACTION(GET_HASH_KEY("ACT_takedown_a"), TRUE)
ACTION_MANAGER_ENABLE_ACTION(GET_HASH_KEY("ACT_takedown_b"), TRUE)
ACTION_MANAGER_ENABLE_ACTION(GET_HASH_KEY("ACT_takedown_rear"), TRUE)
ACTION_MANAGER_ENABLE_ACTION(GET_HASH_KEY("ACT_takedown_heavy"), TRUE)
ACTION_MANAGER_ENABLE_ACTION(GET_HASH_KEY("ACT_armed_takedown"), TRUE)
*/
SAFE_RELEASE_VEHICLE(vehRandom[1])
SAFE_RELEASE_VEHICLE(vehRandom[2])
SAFE_RELEASE_VEHICLE(vehRandom[3])
SAFE_RELEASE_VEHICLE(vehRandom[4])
SAFE_RELEASE_VEHICLE(vehRandom[5])
SAFE_RELEASE_VEHICLE(vehRandom[6])
SAFE_RELEASE_VEHICLE(vehRandom[7])
SAFE_RELEASE_VEHICLE(vehRandom[8])
SAFE_RELEASE_VEHICLE(vehRandom[9])
SAFE_RELEASE_VEHICLE(vehRandom[10])
SAFE_RELEASE_VEHICLE(vehRandom[11])
SAFE_RELEASE_VEHICLE(vehRandom[12])
SAFE_RELEASE_VEHICLE(vehRandom[13])
SAFE_RELEASE_VEHICLE(vehRandom[14])
SAFE_RELEASE_PED(pedRandom[1])
SAFE_RELEASE_PED(pedRandom[2])
SAFE_RELEASE_PED(pedRandom[3])
SAFE_RELEASE_PED(pedRandom[4])
SAFE_RELEASE_PED(pedRandom[5])
SAFE_RELEASE_PED(pedRandom[6])
SAFE_RELEASE_PED(pedRandom[7])
SAFE_RELEASE_PED(pedRandom[8])
SAFE_RELEASE_PED(pedRandom[9])
SAFE_RELEASE_PED(pedRandom[10])
SAFE_RELEASE_PED(pedRandom[11])
SAFE_RELEASE_PED(pedRandom[12])
SAFE_RELEASE_PED(pedRandom[13])
SAFE_RELEASE_PED(pedRandom[14])
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "JOSH2**** SCRIPT TERMINATING ****")
#ENDIF
RC_CleanupSceneEntities(sRCLauncherDataLocal,FALSE,FALSE) //Cleanup the scene created by the launcher
TERMINATE_THIS_THREAD()
ENDPROC
// -----------------------------------------------------------------------------------------------------------
// Script Pass
// -----------------------------------------------------------------------------------------------------------
PROC Script_Passed()
IF IS_PED_UNINJURED(pedAvery)
IF NOT bAveryFleeingOnFoot
CREATE_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_END", CONV_PRIORITY_MEDIUM)
ENDIF
ENDIF
Random_Character_Passed(CP_RAND_C_JOS2,FALSE)
Script_Cleanup()
ENDPROC
FUNC VECTOR GET_VECTOR_FROM_HEADING(FLOAT fHeading)
RETURN <<SIN(fHeading), COS(fHeading), 0.0>>
ENDFUNC
/// PURPOSE: Start the chase
PROC InitChase()
IF IS_PED_UNINJURED(pedAvery)
IF IS_PED_UNINJURED(pedViewerHusband)
OPEN_SEQUENCE_TASK(seqAngryHusband)
//TASK_LOOK_AT_ENTITY(NULL,pedAvery,-1)
/*
IF bCometReverse = FALSE
TASK_ACHIEVE_HEADING(NULL,167.031372)
ELSE
TASK_ACHIEVE_HEADING(NULL,255.0)
ENDIF
*/
IF bCometReverse = TRUE
TASK_ACHIEVE_HEADING(NULL,255.0)
ELSE
TASK_PLAY_ANIM(NULL,"rcmjosh2","house_viewer_yelling",REALLY_SLOW_BLEND_IN,NORMAL_BLEND_OUT,-1)
ENDIF
//TASK_PLAY_ANIM(NULL,"rcmjosh2","house_viewer_yelling",NORMAL_BLEND_IN,NORMAL_BLEND_OUT,-1)
//IF bCometReverse = FALSE
// TASK_GO_STRAIGHT_TO_COORD(NULL,<< -925.47, 6.47, 46.64 >>,PEDMOVEBLENDRATIO_SPRINT,DEFAULT_TIME_NEVER_WARP) //184.6828
//ENDIF
/*
IF bCometReverse = FALSE
//TASK_PLAY_ANIM_ADVANCED(NULL,"rcmjosh2","house_viewer_yelling",GET_ENTITY_COORDS(pedViewerHusband),GET_VECTOR_FROM_HEADING(167.031372 + 180))
TASK_PLAY_ANIM_ADVANCED(NULL,"rcmjosh2","house_viewer_yelling",GET_ENTITY_COORDS(pedViewerHusband),<<0,0,150>>,REALLY_SLOW_BLEND_IN,NORMAL_BLEND_OUT,-1,AF_EXTRACT_INITIAL_OFFSET)
//TASK_PLAY_ANIM(NULL,"rcmjosh2","house_viewer_yelling",REALLY_SLOW_BLEND_IN,NORMAL_BLEND_OUT,-1)
ELSE
//TASK_PLAY_ANIM_ADVANCED(NULL,"rcmjosh2","house_viewer_yelling",GET_ENTITY_COORDS(pedViewerHusband),<<0,0,255>>,REALLY_SLOW_BLEND_IN,NORMAL_BLEND_OUT,-1,AF_EXTRACT_INITIAL_OFFSET)
TASK_PLAY_ANIM(NULL,"rcmjosh2","house_viewer_yelling",REALLY_SLOW_BLEND_IN,NORMAL_BLEND_OUT,-1)
ENDIF
*/
/*
IF bCometReverse = FALSE
TASK_GO_STRAIGHT_TO_COORD(NULL,<< -924.4344, 6.2271, 46.6354 >>,PEDMOVEBLENDRATIO_RUN,DEFAULT_TIME_NEVER_WARP,167) //184.6828
ELSE
TASK_GO_STRAIGHT_TO_COORD(NULL,<<-923.1736, 8.2633, 46.7130>>,PEDMOVEBLENDRATIO_RUN,DEFAULT_TIME_NEVER_WARP,255)
ENDIF
*/
/*
IF bCometReverse = FALSE
TASK_GO_STRAIGHT_TO_COORD(NULL,<<-925.65, 4.04, 46.22>>,PEDMOVEBLENDRATIO_RUN,DEFAULT_TIME_NEVER_WARP,150) //167 //184.6828
ELSE
TASK_GO_STRAIGHT_TO_COORD(NULL,<<-924.75, 7.64, 46.69>>,PEDMOVEBLENDRATIO_RUN,DEFAULT_TIME_NEVER_WARP,280) //255
ENDIF
*/
//TASK_USE_MOBILE_PHONE(NULL,TRUE)
CLOSE_SEQUENCE_TASK(seqAngryHusband)
ENDIF
IF IS_PED_UNINJURED(pedAvery)
AND IS_VEHICLE_OK(vehAveryComet)
SET_ENTITY_LOAD_COLLISION_FLAG(pedAvery,TRUE)
IF NOT DOES_BLIP_EXIST(blipAvery)
IF GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(),pedAvery) < 100.0
IF IS_PED_IN_VEHICLE(pedAvery,vehAveryComet)
//IF IS_PED_UNINJURED(pedViewerHusband)
//ADD_PED_FOR_DIALOGUE(s_conversation_peds, 7, pedViewerHusband, "Josh2Viewer")
//PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_VIEW", "JOSH2_VIEW_1", CONV_PRIORITY_MEDIUM,DO_NOT_DISPLAY_SUBTITLES) //Hey! Where are you going?
//CREATE_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_VIEW",CONV_PRIORITY_MEDIUM,DO_NOT_DISPLAY_SUBTITLES)
//ENDIF
TASK_LOOK_AT_ENTITY(pedAvery,PLAYER_PED_ID(),-1)
TASK_LOOK_AT_ENTITY(PLAYER_PED_ID(),pedAvery,-1)
SET_PED_SUFFERS_CRITICAL_HITS(pedAvery,FALSE)
iTimerChaseStarted = GET_GAME_TIMER()
SAFE_REMOVE_BLIP(blipRockfordHills)
//PRINT_HELP("JOSH2_10") //The mission will fail if Avery dies.
PRINT_NOW("JOSH2_04",DEFAULT_GOD_TEXT_TIME,0) //Ram ~r~Avery's car~s~ off the road.
SET_REPLAY_MID_MISSION_STAGE_WITH_NAME(2,"Chase Avery",TRUE)
blipAvery = CREATE_PED_BLIP(pedAvery)
INFORM_MISSION_STATS_SYSTEM_OF_TIME_WINDOW_OPEN(JO2_STOPPED_IN_TIME)
//IF IS_PED_IN_ANY_VEHICLE(pedAvery)
SET_BLIP_SCALE(blipAvery,BLIP_SIZE_VEHICLE)
//ELSE
// SET_BLIP_SCALE(blipAvery,BLIP_SIZE_PED)
//ENDIF
SET_WANTED_LEVEL_MULTIPLIER(0.2)
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE_NATIVE(pedAvery,"JOSH2_BCAA","AVERY","SPEECH_PARAMS_STANDARD")
ENDIF
ENDIF
ENDIF
IF iRandomInt = 1
//IF GET_SCRIPT_TASK_STATUS(pedAvery,SCRIPT_TASK_VEHICLE_FOLLOW_WAYPOINT_RECORDING) <> PERFORMING_TASK
// TASK_VEHICLE_FOLLOW_WAYPOINT_RECORDING(pedAvery,vehAveryComet,"Josh2_Comet10",DRIVINGMODE_AVOIDCARS_RECKLESS,0,EWAYPOINT_START_FROM_CLOSEST_POINT)
//ENDIF
ELIF iRandomInt = 2
IF bCometReverse = TRUE
//IF NOT IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_VEHICLE(vehAveryComet)
// TASK_VEHICLE_FOLLOW_WAYPOINT_RECORDING(pedAvery,vehAveryComet,"Josh2_Comet11",DRIVINGMODE_AVOIDCARS_RECKLESS,1,EWAYPOINT_DEFAULT,30,-1)
//ENDIF
IF IS_PED_IN_VEHICLE(pedAvery,vehAveryComet)
IF NOT IS_PLAYBACK_GOING_ON_FOR_VEHICLE(vehAveryComet)
START_PLAYBACK_RECORDED_VEHICLE(vehAveryComet, 102, "Josh2_A2")
ENDIF
ENDIF
ELSE
//IF NOT IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_VEHICLE(vehAveryComet)
// TASK_VEHICLE_FOLLOW_WAYPOINT_RECORDING(pedAvery,vehAveryComet,"Josh2_Comet10",DRIVINGMODE_AVOIDCARS_RECKLESS,0,EWAYPOINT_START_FROM_CLOSEST_POINT,-1,-1)
//ENDIF
IF IS_PED_IN_VEHICLE(pedAvery,vehAveryComet)
IF NOT IS_PLAYBACK_GOING_ON_FOR_VEHICLE(vehAveryComet)
START_PLAYBACK_RECORDED_VEHICLE(vehAveryComet, 101, "Josh2_A1")
ENDIF
ENDIF
ENDIF
ENDIF
IF IS_PED_IN_VEHICLE(pedAvery,vehAveryComet)
//IF IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_VEHICLE(vehAveryComet)
IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(vehAveryComet)
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "JOSH2**** Init chase ****")
#ENDIF
eMissionStage = MS_CHASE_AVERY
ENDIF
ENDIF
ENDIF
ENDIF
ENDPROC
/// PURPOSE: Open gates of houses at rockford hills
PROC OpenGates()
/*
IF DOES_OBJECT_OF_TYPE_EXIST_AT_COORDS(<<-824.44, -33.59, 38.71>>,15.0,prop_lrggate_01_r)
SET_STATE_OF_CLOSEST_DOOR_OF_TYPE(prop_lrggate_01_r,<<-824.44, -33.59, 38.71>>,TRUE,1.1)
ENDIF
IF DOES_OBJECT_OF_TYPE_EXIST_AT_COORDS(<<-827.30, -29.11, 38.87>>,15.0,prop_lrggate_01_l)
SET_STATE_OF_CLOSEST_DOOR_OF_TYPE(prop_lrggate_01_l,<<-827.30, -29.11, 38.87>>,TRUE,-1.1)
ENDIF
IF DOES_OBJECT_OF_TYPE_EXIST_AT_COORDS(<<-924.975342,-9.033067,43.281506>>,10.0,prop_lrggate_03a)
SET_STATE_OF_CLOSEST_DOOR_OF_TYPE(prop_lrggate_03a,<<-924.975342,-9.033067,43.281506>>,TRUE,1.0)
ENDIF
IF DOES_OBJECT_OF_TYPE_EXIST_AT_COORDS(<<-905.696655,14.659701,45.675934>>,10.0,prop_lrggate_03a)
SET_STATE_OF_CLOSEST_DOOR_OF_TYPE(prop_lrggate_03a,<<-905.696655,14.659701,45.675934>>,TRUE,1.0)
ENDIF
IF DOES_OBJECT_OF_TYPE_EXIST_AT_COORDS(<<-881.16, -12.75, 42.39>>,10.0,prop_lrggate_02_ld)
SET_STATE_OF_CLOSEST_DOOR_OF_TYPE(prop_lrggate_02_ld,<<-881.16, -12.75, 42.39>>,TRUE,1.0)
ENDIF
IF DOES_OBJECT_OF_TYPE_EXIST_AT_COORDS(<<-889.88, 6.78, 43.99>>,10.0,prop_lrggate_02_ld)
SET_STATE_OF_CLOSEST_DOOR_OF_TYPE(prop_lrggate_02_ld,<<-889.88, 6.78, 43.99>>,TRUE,1.0)
ENDIF
*/
IF DOES_OBJECT_OF_TYPE_EXIST_AT_COORDS(<<-824.44, -33.59, 38.71>>,15.0,prop_lrggate_01_r)
Josh2Door[0] = get_hash_key("Josh2_door_0")
IF NOT IS_DOOR_REGISTERED_WITH_SYSTEM(Josh2Door[0])
add_door_to_system(Josh2Door[0], prop_lrggate_01_r, <<-824.44, -33.59, 38.71>>)
ENDIF
//DOOR_SYSTEM_SET_OPEN_RATIO(Josh2Door[0], 1.0, false, false)
//DOOR_SYSTEM_SET_DOOR_STATE(Josh2Door[0], DOORSTATE_FORCE_OPEN_THIS_FRAME)
SET_STATE_OF_CLOSEST_DOOR_OF_TYPE(prop_lrggate_01_r,<<-824.44, -33.59, 38.71>>,TRUE,1.1)
ENDIF
IF DOES_OBJECT_OF_TYPE_EXIST_AT_COORDS(<<-827.30, -29.11, 38.87>>,15.0,prop_lrggate_01_l)
Josh2Door[1] = get_hash_key("Josh2_door_1")
IF NOT IS_DOOR_REGISTERED_WITH_SYSTEM(Josh2Door[1])
add_door_to_system(Josh2Door[1], prop_lrggate_01_l, <<-827.30, -29.11, 38.87>>)
ENDIF
//DOOR_SYSTEM_SET_OPEN_RATIO(Josh2Door[1], 1.0, false, false)
//DOOR_SYSTEM_SET_DOOR_STATE(Josh2Door[1], DOORSTATE_FORCE_OPEN_THIS_FRAME)
SET_STATE_OF_CLOSEST_DOOR_OF_TYPE(prop_lrggate_01_l,<<-827.30, -29.11, 38.87>>,TRUE,-1.1)
ENDIF
IF DOES_OBJECT_OF_TYPE_EXIST_AT_COORDS(<<-924.975342,-9.033067,43.281506>>,10.0,prop_lrggate_03a)
Josh2Door[2] = get_hash_key("Josh2_door_2")
IF NOT IS_DOOR_REGISTERED_WITH_SYSTEM(Josh2Door[2])
add_door_to_system(Josh2Door[2], prop_lrggate_03a, <<-924.975342,-9.033067,43.281506>>)
ENDIF
//DOOR_SYSTEM_SET_OPEN_RATIO(Josh2Door[2], 1.0, false, false)
//DOOR_SYSTEM_SET_DOOR_STATE(Josh2Door[2], DOORSTATE_FORCE_OPEN_THIS_FRAME)
SET_STATE_OF_CLOSEST_DOOR_OF_TYPE(prop_lrggate_03a,<<-924.975342,-9.033067,43.281506>>,TRUE,1.0)
ENDIF
IF DOES_OBJECT_OF_TYPE_EXIST_AT_COORDS(<<-905.696655,14.659701,45.675934>>,10.0,prop_lrggate_03a) //Avery Gate
Josh2Door[3] = get_hash_key("Josh2_door_3")
IF NOT IS_DOOR_REGISTERED_WITH_SYSTEM(Josh2Door[3])
add_door_to_system(Josh2Door[3], prop_lrggate_03a, <<-905.696655,14.659701,45.675934>>)
ENDIF
//DOOR_SYSTEM_SET_OPEN_RATIO(Josh2Door[3], 1.0, false, false)
//DOOR_SYSTEM_SET_DOOR_STATE(Josh2Door[3], DOORSTATE_FORCE_OPEN_THIS_FRAME)
SET_STATE_OF_CLOSEST_DOOR_OF_TYPE(prop_lrggate_03a,<<-905.696655,14.659701,45.675934>>,TRUE,1.0)
ENDIF
IF DOES_OBJECT_OF_TYPE_EXIST_AT_COORDS(<<-881.16, -12.75, 42.39>>,10.0,prop_lrggate_02_ld)
Josh2Door[4] = get_hash_key("Josh2_door_4")
IF NOT IS_DOOR_REGISTERED_WITH_SYSTEM(Josh2Door[4])
add_door_to_system(Josh2Door[4], prop_lrggate_02_ld, <<-881.16, -12.75, 42.39>>)
ENDIF
//DOOR_SYSTEM_SET_OPEN_RATIO(Josh2Door[4], 1.0, false, false)
//DOOR_SYSTEM_SET_DOOR_STATE(Josh2Door[4], DOORSTATE_FORCE_OPEN_THIS_FRAME)
SET_STATE_OF_CLOSEST_DOOR_OF_TYPE(prop_lrggate_02_ld,<<-881.16, -12.75, 42.39>>,TRUE,1.0)
ENDIF
IF DOES_OBJECT_OF_TYPE_EXIST_AT_COORDS(<<-889.88, 6.78, 43.99>>,10.0,prop_lrggate_02_ld)
Josh2Door[5] = get_hash_key("Josh2_door_5")
IF NOT IS_DOOR_REGISTERED_WITH_SYSTEM(Josh2Door[5])
add_door_to_system(Josh2Door[5], prop_lrggate_02_ld, <<-889.88, 6.78, 43.99>>)
ENDIF
//DOOR_SYSTEM_SET_OPEN_RATIO(Josh2Door[5], 1.0, false, false)
//DOOR_SYSTEM_SET_DOOR_STATE(Josh2Door[5], DOORSTATE_FORCE_OPEN_THIS_FRAME)
SET_STATE_OF_CLOSEST_DOOR_OF_TYPE(prop_lrggate_02_ld,<<-889.88, 6.78, 43.99>>,TRUE,1.0)
ENDIF
ENDPROC
/// PURPOSE: Check all the fail conditions
PROC CheckForFail()
IF DOES_ENTITY_EXIST(pedAvery)
IF IS_ENTITY_DEAD(pedAvery)
sFailReason = "JOSH2_F2" //~r~Avery died.
eMissionStage = MS_MISSION_FAILING
EXIT
ELSE
IF IS_PED_INJURED(pedAvery)
sFailReason = "JOSH2_F2" //~r~Avery died.
eMissionStage = MS_MISSION_FAILING
EXIT
ELSE
IF eMissionStage = MS_CHASE_AVERY
OR eMissionStage = MS_GO_TO_AVERY
OR eMissionStage = MS_AVERY_KO
IF DOES_BLIP_EXIST(blipAvery)
IF NOT IS_PED_IN_ANY_VEHICLE(pedAvery)
IF NOT IS_ENTITY_IN_RANGE_ENTITY(pedAvery,PLAYER_PED_ID(),280)
sFailReason = "JOSH2_F1" //~r~Avery escaped.
eMissionStage = MS_MISSION_FAILING
ENDIF
ENDIF
ENDIF
ENDIF
IF bStartChase = TRUE
IF GET_GAME_TIMER() > iTimerChaseStarted + 5000
IF GET_GAME_TIMER() > iTimerDistanceWarning + 10000
IF bDistanceWarningPrinted = TRUE
IF GET_DISTANCE_BETWEEN_PEDS(PLAYER_PED_ID(),pedAvery) > 280.0
sFailReason = "JOSH2_F1" //~r~Avery escaped.
eMissionStage = MS_MISSION_FAILING
EXIT
ENDIF
ENDIF
ENDIF
IF GET_DISTANCE_BETWEEN_PEDS(PLAYER_PED_ID(),pedAvery) > 200.0
IF bDistanceWarningPrinted = FALSE
IF DOES_BLIP_EXIST(blipAvery)
//PRINT_NOW("JOSH2_W1",DEFAULT_GOD_TEXT_TIME,0) //Don't let ~r~Avery~s~ escape.
ELSE
//PRINT_NOW("JOSH2_09",DEFAULT_GOD_TEXT_TIME,0) //Avery is escaping.
ENDIF
iTimerDistanceWarning = GET_GAME_TIMER()
bDistanceWarningPrinted = TRUE
ENDIF
ELSE
bDistanceWarningPrinted = FALSE
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF DOES_ENTITY_EXIST(sRCLauncherDataLocal.pedID[0])
IF IS_ENTITY_DEAD(sRCLauncherDataLocal.pedID[0])
OR IS_PED_INJURED(sRCLauncherDataLocal.pedID[0])
sFailReason = "JOSH2_14" //~r~Josh died.
eMissionStage = MS_MISSION_FAILING
ELSE
IF eMissionStage = MS_INTRO
VECTOR vJosh = GET_ENTITY_COORDS(sRCLauncherDataLocal.pedID[0])
IF IS_BULLET_IN_AREA(vJosh,20,FALSE)
OR DOES_VEHICLE_OVERLAP_ANGLED_AREA(GET_PLAYERS_LAST_VEHICLE(),<<566.619324,-1771.675415,28.357866>>, <<565.955750,-1773.148315,29.805521>>, 1.290000)
//OR IS_PROJECTILE_IN_AREA(vJosh - <<5,5,5>>,vJosh + <<5,5,5>>,TRUE)
KILL_FACE_TO_FACE_CONVERSATION_DO_NOT_FINISH_LAST_LINE()
//TASK_REACT_AND_FLEE_PED(sRCLauncherDataLocal.pedID[0],PLAYER_PED_ID())
TASK_SMART_FLEE_PED(sRCLauncherDataLocal.pedID[0],PLAYER_PED_ID(),100,-1)
SET_PED_KEEP_TASK(sRCLauncherDataLocal.pedID[0],TRUE)
sFailReason = "JOSH2_11" //~r~You scared Josh.
eMissionStage = MS_MISSION_FAILING
ENDIF
IF IS_ENTITY_IN_RANGE_ENTITY(sRCLauncherDataLocal.pedID[0],PLAYER_PED_ID(),30)
AND GET_PLAYER_WANTED_LEVEL(PLAYER_ID()) > 0
IF IS_COP_VEHICLE_IN_AREA_3D(GET_ENTITY_COORDS(PLAYER_PED_ID())-<<30.0, 30.0, 30.0>>, GET_ENTITY_COORDS(PLAYER_PED_ID())+<<30.0, 30.0, 30.0>>)
OR IS_COP_PED_IN_AREA_3D(GET_ENTITY_COORDS(PLAYER_PED_ID())-<<30.0, 30.0, 30.0>>, GET_ENTITY_COORDS(PLAYER_PED_ID())+<<30.0, 30.0, 30.0>>)
KILL_FACE_TO_FACE_CONVERSATION_DO_NOT_FINISH_LAST_LINE()
TASK_SMART_FLEE_PED(sRCLauncherDataLocal.pedID[0],PLAYER_PED_ID(),100,-1)
SET_PED_KEEP_TASK(sRCLauncherDataLocal.pedID[0],TRUE)
sFailReason = "JOSH2_11" //~r~You scared Josh.
eMissionStage = MS_MISSION_FAILING
ENDIF
ENDIF
ENDIF
IF IS_PED_RAGDOLL(sRCLauncherDataLocal.pedID[0])
bJoshTasksCleared = TRUE
sFailReason = "JOSH2_13" //~r~You injured Josh.
eMissionStage = MS_MISSION_FAILING
ENDIF
IF bJoshTasksCleared = TRUE
IF IS_PED_USING_ANY_SCENARIO(sRCLauncherDataLocal.pedID[0])
SET_PED_PANIC_EXIT_SCENARIO(sRCLauncherDataLocal.pedID[0],GET_ENTITY_COORDS(PLAYER_PED_ID()))
ENDIF
ENDIF
IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(sRCLauncherDataLocal.pedID[0],PLAYER_PED_ID())
//TASK_PLAY_ANIM(sRCLauncherDataLocal.pedID[0],"rcmjosh2", "josh_sitting_loop",1,-1)
//SET_PED_TO_RAGDOLL(sRCLauncherDataLocal.pedID[0],1000,2000,TASK_RELAX)
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[0],SCRIPT_TASK_SMART_FLEE_PED) <> PERFORMING_TASK
IF IS_PED_USING_ANY_SCENARIO(sRCLauncherDataLocal.pedID[0])
SET_PED_PANIC_EXIT_SCENARIO(sRCLauncherDataLocal.pedID[0],GET_ENTITY_COORDS(PLAYER_PED_ID()))
ENDIF
SET_PED_KEEP_TASK(sRCLauncherDataLocal.pedID[0],TRUE)
//TASK_SMART_FLEE_PED(sRCLauncherDataLocal.pedID[0],PLAYER_PED_ID(),300.0,-1)
ENDIF
sFailReason = "JOSH2_13" //~r~You injured Josh.
eMissionStage = MS_MISSION_FAILING
ELSE
/*
IF HAS_PLAYER_THREATENED_PED(sRCLauncherDataLocal.pedID[0])
//TASK_PLAY_ANIM(sRCLauncherDataLocal.pedID[0],"rcmjosh2", "josh_sitting_loop",1,-1)
//SET_PED_TO_RAGDOLL(sRCLauncherDataLocal.pedID[0],1000,2000,TASK_RELAX)
IF GET_SCRIPT_TASK_STATUS(sRCLauncherDataLocal.pedID[0],SCRIPT_TASK_SMART_FLEE_PED) <> PERFORMING_TASK
IF IS_PED_USING_ANY_SCENARIO(sRCLauncherDataLocal.pedID[0])
SET_PED_PANIC_EXIT_SCENARIO(sRCLauncherDataLocal.pedID[0],GET_ENTITY_COORDS(PLAYER_PED_ID()))
ENDIF
SET_PED_KEEP_TASK(sRCLauncherDataLocal.pedID[0],TRUE)
TASK_SMART_FLEE_PED(sRCLauncherDataLocal.pedID[0],PLAYER_PED_ID(),300.0,-1)
ENDIF
IF iJoshScared = 0
KILL_ANY_CONVERSATION()
iJoshScared = 1
ENDIF
sFailReason = "JOSH2_11" //~r~You scared Josh.
eMissionStage = MS_MISSION_FAILING
ENDIF
*/
ENDIF
ENDIF
ENDIF
ENDPROC
/// PURPOSE: skip from MS_GO_TO_ROCKFORD
PROC SkipStage1()
#IF IS_DEBUG_BUILD
IF NOT IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
IF IS_VEHICLE_OK(vehPlayer)
SET_PED_INTO_VEHICLE(PLAYER_PED_ID(),vehPlayer)
ELSE
CREATE_VEHICLE_FOR_REPLAY(vehPlayer,<< -851.0237, 4.1346, 41.9042 >>,86.4924,TRUE,TRUE,FALSE,TRUE,TRUE,FELON2,2)
ENDIF
ENDIF
#ENDIF
RequestRockfordAssets()
WaitForRockfordAssets()
InitAmbientHouses()
SET_PED_COORDS_KEEP_VEHICLE(PLAYER_PED_ID(),<< -851.0237, 4.1346, 41.9042 >>)
SET_ENTITY_HEADING(PLAYER_PED_ID(),86.4924)
SET_GAMEPLAY_CAM_RELATIVE_HEADING()
SET_GAMEPLAY_CAM_RELATIVE_PITCH()
eMissionStage = MS_GO_TO_ROCKFORD
ENDPROC
/// PURPOSE: skip from MS_FIND_THE_GREEN_COMET
PROC SkipStage2()
IF NOT DOES_ENTITY_EXIST(vehPlayer)
CREATE_VEHICLE_FOR_REPLAY(vehPlayer,<< -904.9491, 17.5415, 45.5212 >>,109.7778,TRUE,TRUE,FALSE,TRUE,TRUE,FELON2,2)
ENDIF
SAFE_REMOVE_BLIP(blipRockfordHills)
#IF IS_DEBUG_BUILD
IF NOT IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
IF IS_VEHICLE_OK(vehPlayer)
SET_PED_INTO_VEHICLE(PLAYER_PED_ID(),vehPlayer)
ENDIF
ENDIF
#ENDIF
SET_PED_COORDS_KEEP_VEHICLE(PLAYER_PED_ID(),<< -913.5941, 12.8344, 46.5934 >>)
SET_ENTITY_HEADING(PLAYER_PED_ID(),127.8599)
SET_GAMEPLAY_CAM_RELATIVE_HEADING()
SET_GAMEPLAY_CAM_RELATIVE_PITCH()
eMissionStage = MS_FIND_THE_GREEN_COMET
ENDPROC
/// PURPOSE: skip from MS_CHASE_AVERY
PROC SkipStage3()
IF IS_VEHICLE_OK(vehAveryComet)
SAFE_TELEPORT_ENTITY(vehAveryComet,<< -1083.1884, 266.0258, 63.0025 >>, 111.2559)
IF IS_PED_UNINJURED(pedAvery)
IF IS_PED_SITTING_IN_VEHICLE(pedAvery,vehAveryComet)
//SAFE_TELEPORT_ENTITY(PLAYER_PED_ID(),<< -1081.5244, 254.3746, 62.9404 >>, 356.8038)
SAFE_TELEPORT_ENTITY(PLAYER_PED_ID(),<< -1081.8066, 260.2781, 62.9998 >>, 7.9306)
bDebugSkippedToBeatAvery = TRUE
bCometSmashed = TRUE
bWaypointPlaybackStopped = TRUE
IF bDoorFallenOff = FALSE
//SET_VEHICLE_DOOR_BROKEN(vehAveryComet,SC_DOOR_FRONT_LEFT,TRUE)
bDoorFallenOff = TRUE
ENDIF
SET_GAMEPLAY_CAM_RELATIVE_HEADING()
SET_GAMEPLAY_CAM_RELATIVE_PITCH()
eMissionStage = MS_CHASE_AVERY
ELSE
Script_Passed()
ENDIF
ENDIF
ENDIF
ENDPROC
/// PURPOSE: skip from MS_AVERY_KO
PROC SkipStage4()
IF IS_PED_UNINJURED(pedAvery)
SET_PED_COMBAT_ATTRIBUTES(pedAvery,CA_ALWAYS_FLEE,TRUE)
SET_PED_KEEP_TASK(pedAvery,TRUE)
IF GET_SCRIPT_TASK_STATUS(pedAvery,SCRIPT_TASK_SMART_FLEE_PED) <> PERFORMING_TASK
TASK_SMART_FLEE_PED(pedAvery,PLAYER_PED_ID(),1000.0,-1)
ENDIF
Script_Passed()
ENDIF
SET_GAMEPLAY_CAM_RELATIVE_HEADING()
SET_GAMEPLAY_CAM_RELATIVE_PITCH()
ENDPROC
/// PURPOSE: Reset everything
PROC ResetStuff()
CLEAR_PRINTS()
KILL_ANY_CONVERSATION()
eCutsceneState = eCutInit
iAveryTookMeleeHit = 0
iConvoCounter = 0
iRoadSwitch = 0
iCometStuckCounter = 0
iPleadConvo = 0
bWaypointPlaybackStopped = FALSE
bCometReverse = FALSE
bStartChase = FALSE
bFindTheGreenCometMessagePrinted = FALSE
bDistanceWarningPrinted = FALSE
bAveryFleeingInVehicle = FALSE
iJoshConvoCounter = 0
bPrintWrongColourComet = FALSE
iBikerInCombat = 0
iAverySpotted = 0
iBikerConvoCounter = 0
iGunThreaten = 0
iCounterReverseAverySeesPlayer = 0
bAveryGettingUp = FALSE
bJoshTasksCleared = FALSE
bRoadsOffAroundAvery = FALSE
bPrintBeatAvery = FALSE
bCometSmashed = FALSE
bJoshCleanedUp = FALSE
bRockfordInit = FALSE
bDoorFallenOff = FALSE
bDebugSkippedToBeatAvery = FALSE
bConvoFelon = FALSE
bHouseViewerYelling = FALSE
bSwitchAnimFlags = FALSE
bOnFireHpSwitch = FALSE
bJoggerCreated = FALSE
bDogCreated = FALSE
bLoveYa = FALSE
bDontKillAveryHelp = FALSE
bPrintGoToRockford = FALSE
bStreamVolCreated = FALSE
bCometGotStuck = FALSE
iAveryOhFuckLines = 0
bAveryFleeingOnFoot = FALSE
iAveryFlee = 0
iAveryGunThreat = 0
bTrevThreat = FALSE
bTrevThreatenedAvery = FALSE
eJOGGER = JOGGER_LOAD
SAFE_DELETE_VEHICLE(vehAveryComet)
SAFE_DELETE_VEHICLE(vehBullet)
SAFE_DELETE_VEHICLE(vehGauntlet)
SAFE_DELETE_VEHICLE(vehElegy)
SAFE_DELETE_VEHICLE(vehJoshFelon)
SAFE_DELETE_VEHICLE(vehBati)
SAFE_RELEASE_VEHICLE(sRCLauncherDataLocal.vehID[0])
IF bDebugSkippingToStart = TRUE
bDebugSkippingToStart = FALSE
ENDIF
SET_ROADS_IN_ANGLED_AREA(vNodeSwitch1,vNodeSwitch2,100,FALSE,TRUE)
//SET_DISABLE_AMBIENT_MELEE_MOVE(PLAYER_ID(),FALSE)
/*
ACTION_MANAGER_ENABLE_ACTION(GET_HASH_KEY("ACT_takedown_a"), TRUE)
ACTION_MANAGER_ENABLE_ACTION(GET_HASH_KEY("ACT_takedown_b"), TRUE)
ACTION_MANAGER_ENABLE_ACTION(GET_HASH_KEY("ACT_takedown_rear"), TRUE)
ACTION_MANAGER_ENABLE_ACTION(GET_HASH_KEY("ACT_takedown_heavy"), TRUE)
ACTION_MANAGER_ENABLE_ACTION(GET_HASH_KEY("ACT_armed_takedown"), TRUE)
*/
SAFE_DELETE_PED(pedAvery)
SAFE_DELETE_PED(pedBiker)
SAFE_DELETE_PED(pedJogger)
SAFE_DELETE_PED(pedDog)
SAFE_DELETE_PED(sRCLauncherDataLocal.pedID[0])
SAFE_DELETE_PED(pedViewerHusband)
SAFE_REMOVE_BLIP(blipRockfordHills)
SAFE_REMOVE_BLIP(blipAvery)
SAFE_REMOVE_BLIP(blipCSDoor)
CLEAR_SEQUENCE_TASK(seqComet2)
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
CPRINTLN(DEBUG_MISSION, "JOSH2**** MISSION FAILED ****")
RemoveBlips()
CLEAR_PRINTS()
CLEAR_HELP()
IF IS_STRING_NULL_OR_EMPTY(sFailReason)
Random_Character_Failed()
ELSE
Random_Character_Failed_With_Reason(sFailReason)
ENDIF
eFAIL_STATE = FS_UPDATE
BREAK
CASE FS_UPDATE
IF IS_SCREEN_FADED_OUT()
RESOLVE_VEHICLES_INSIDE_ANGLED_AREA(<<568.756897,-1770.072144,27.893454>>, <<566.249146,-1768.923584,30.143578>>, 2.500000,<< 573.5463, -1759.4382, 28.1695 >>, 354.0835)
ENDIF
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(<< 598.2769, -1743.6196, 28.2526 >>, 71.1522)
//SET_REPLAY_DECLINED_VEHICLE_WARP_LOCATION(<< 595.6382, -1739.4547, 28.1448 >>, 73.9324)
//RESOLVE_VEHICLES_INSIDE_ANGLED_AREA(<<569.730225,-1774.378540,27.897423>>, <<560.649048,-1770.264526,31.606855>>, 14.750,<< 573.5463, -1759.4382, 28.1695 >>, 354.0835)
ResetStuff()
Script_Cleanup()
ELSE
IF iJoshScared = 1
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[0]) ////Oh shit! Please Tony, don't hurt me!
PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_SCARE", "JOSH2_SCARE_1", CONV_PRIORITY_HIGH)
iJoshScared = 2
ENDIF
ENDIF
// not finished fading out
// you may want to handle dialogue etc here.
ENDIF
BREAK
ENDSWITCH
ENDPROC
// ===========================================================================================================
// DEBUG
// ===========================================================================================================
#IF IS_DEBUG_BUILD
/// PURPOSE: Check for Forced Pass or Fail
PROC DEBUG_Check_Debug_Keys()
// Check for Pass
IF (IS_KEYBOARD_KEY_JUST_PRESSED(KEY_S))
WAIT_FOR_CUTSCENE_TO_STOP()
CLEAR_PRINTS()
Script_Passed()
ENDIF
// Check for Fail
IF (IS_KEYBOARD_KEY_JUST_PRESSED(KEY_F))
WAIT_FOR_CUTSCENE_TO_STOP()
CLEAR_PRINTS()
eMissionStage = MS_MISSION_FAILING
ENDIF
ENDPROC
PROC DEBUG_Check_Skips()
IF IS_KEYBOARD_KEY_JUST_PRESSED(KEY_P)
WAIT_FOR_CUTSCENE_TO_STOP()
IF eMissionStage = MS_GO_TO_ROCKFORD
bDebugSkipping = TRUE
bDebugSkippingToStart = TRUE
ResetStuff()
SAFE_TELEPORT_ENTITY(PLAYER_PED_ID(),<<567.5291, -1769.4231, 28.1428>>, 159.2917)
SET_GAMEPLAY_CAM_RELATIVE_HEADING(0)
SET_GAMEPLAY_CAM_RELATIVE_PITCH(0)
//IF NOT IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[0])
WHILE NOT CREATE_NPC_PED_ON_FOOT(sRCLauncherDataLocal.pedID[0], CHAR_JOSH, <<565.390076,-1772.837769,29.800871>> , 62.5015565)
WAIT(0)
ENDWHILE
//ENDIF
eMissionStage = MS_INTRO
ENDIF
IF eMissionStage = MS_FIND_THE_GREEN_COMET
bDebugSkipping = TRUE
ResetStuff()
LoadStuff()
Init()
RequestRockfordAssets()
WaitForRockfordAssets()
InitAmbientHouses()
SET_PED_COORDS_KEEP_VEHICLE(PLAYER_PED_ID(),<< 570.0823, -1763.5531, 28.1695 >>)
SET_ENTITY_HEADING(PLAYER_PED_ID(),347.4368)
SET_GAMEPLAY_CAM_RELATIVE_PITCH()
SET_GAMEPLAY_CAM_RELATIVE_HEADING()
PRINT_NOW("JOSH2_01",DEFAULT_GOD_TEXT_TIME,0) //Go to ~y~Rockford Hills.
ENDIF
IF eMissionStage = MS_CHASE_AVERY
AND bWaypointPlaybackStopped = FALSE
bDebugSkipping = TRUE
ResetStuff()
LoadStuff()
Init()
RequestRockfordAssets()
WaitForRockfordAssets()
InitAmbientHouses()
SkipStage1()
ENDIF
IF eMissionStage = MS_AVERY_KO
OR bWaypointPlaybackStopped = TRUE
bDebugSkipping = TRUE
ResetStuff()
LoadStuff()
Init()
RequestRockfordAssets()
WaitForRockfordAssets()
InitAmbientHouses()
SkipStage1()
SkipStage2()
ENDIF
ENDIF
IF IS_KEYBOARD_KEY_JUST_PRESSED(KEY_J)
WAIT_FOR_CUTSCENE_TO_STOP()
bDebugSkipping = TRUE
IF eMissionStage = MS_GO_TO_ROCKFORD
SkipStage1()
ENDIF
IF eMissionStage = MS_FIND_THE_GREEN_COMET
SkipStage2()
ENDIF
IF eMissionStage = MS_CHASE_AVERY
SkipStage3()
ENDIF
IF eMissionStage = MS_AVERY_KO
SkipStage4()
ENDIF
ENDIF
SkipMenuStruct[0].sTxtLabel = "Mission start"
SkipMenuStruct[1].sTxtLabel = "Find the yellow comet"
SkipMenuStruct[2].sTxtLabel = "Chase Avery"
SkipMenuStruct[3].sTxtLabel = "Fight Avery"
IF LAUNCH_MISSION_STAGE_MENU(SkipMenuStruct, iReturnStage)
IF iReturnStage = 0
bDebugSkipping = TRUE
bDebugSkippingToStart = TRUE
ResetStuff()
SAFE_TELEPORT_ENTITY(PLAYER_PED_ID(),<<567.5291, -1769.4231, 28.1428>>, 159.2917)
SET_GAMEPLAY_CAM_RELATIVE_HEADING(0)
SET_GAMEPLAY_CAM_RELATIVE_PITCH(0)
//IF NOT IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[0])
WHILE NOT CREATE_NPC_PED_ON_FOOT(sRCLauncherDataLocal.pedID[0], CHAR_JOSH, <<565.390076,-1772.837769,29.800871>> , 62.5015565)
WAIT(0)
ENDWHILE
//ENDIF
eMissionStage = MS_INTRO
ELIF iReturnStage = 1
WAIT_FOR_CUTSCENE_TO_STOP()
bDebugSkipping = TRUE
ResetStuff()
LoadStuff()
Init()
RequestRockfordAssets()
WaitForRockfordAssets()
InitAmbientHouses()
SkipStage1()
ELIF iReturnStage = 2
WAIT_FOR_CUTSCENE_TO_STOP()
bDebugSkipping = TRUE
ResetStuff()
LoadStuff()
Init()
RequestRockfordAssets()
WaitForRockfordAssets()
InitAmbientHouses()
SkipStage1()
SkipStage2()
ELIF iReturnStage = 3
WAIT_FOR_CUTSCENE_TO_STOP()
bDebugSkipping = TRUE
ResetStuff()
LoadStuff()
Init()
RequestRockfordAssets()
WaitForRockfordAssets()
InitAmbientHouses()
SkipStage1()
SkipStage2()
SkipStage3()
ENDIF
ENDIF
ENDPROC
#ENDIF
FUNC BOOL IS_ANIM_PHASE_OK_FOR_LEADIN()
//PRINTFLOAT(GET_ENTITY_ANIM_CURRENT_TIME(sRCLauncherDataLocal.pedID[0],"rcmpaparazzo_2", "pap_2_rcm_base"))
//PRINTNL()
IF NOT DOES_ENTITY_EXIST(sRCLauncherDataLocal.pedID[0])
RETURN TRUE
ELSE
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[0])
IF NOT IS_ENTITY_PLAYING_ANIM(sRCLauncherDataLocal.pedID[0],"rcmjosh2", "josh_wait_loop")
OR GET_ENTITY_ANIM_CURRENT_TIME(sRCLauncherDataLocal.pedID[0],"rcmjosh2", "josh_wait_loop") > 0.9
OR GET_ENTITY_ANIM_CURRENT_TIME(sRCLauncherDataLocal.pedID[0],"rcmjosh2", "josh_wait_loop") < 0.1
RETURN TRUE
ENDIF
ENDIF
ENDIF
//RC_DISABLE_CONTROL_ACTIONS_FOR_LEAD_IN()
RETURN FALSE
ENDFUNC
/// PURPOSE: Play intro mocap cutscene
PROC IntroMocap()
/*
IF NOT IS_ANIM_PHASE_OK_FOR_LEADIN()
EXIT
ENDIF
*/
//INT iParam
/*
0 = generic menu screen
1 = josh2 gallery
2 = josh2 photo of Lenny Avery (currently temp image of white A_M_Y_business_02)
3 = generic call screen
*/
REPLAY_DISABLE_CAMERA_MOVEMENT_THIS_FRAME() //Fix for bug 2199275
IF eCutsceneState < eCutLeadIn2
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<565.184204,-1777.227417,30.704159>>, <<549.950806,-1770.103027,35.947773>>, 7.000000) //up the stairs
IF NOT bStreamVolCreated
StreamVol = STREAMVOL_CREATE_FRUSTUM(<<556.0839, -1724.9622, 33.0732>>, <<18.6933, 0.1321, -157.4946>>,200,FLAG_COLLISIONS_MOVER | FLAG_MAPDATA)
bStreamVolCreated = TRUE
ENDIF
ELSE
IF bStreamVolCreated
STREAMVOL_DELETE(StreamVol)
bStreamVolCreated = FALSE
ENDIF
ENDIF
ENDIF
SWITCH eCutsceneState
CASE eCutInit
bCSExitTrev = FALSE
bCSExitJosh = FALSE
bCSExitCam = FALSE
bDoCSLocate = FALSE
//RC_REQUEST_CUTSCENE("josh_2_intp1_t4")
REQUEST_CUTSCENE("josh_2_intp1_t4")
REQUEST_ANIM_DICT("rcmjosh")
REQUEST_ANIM_DICT("rcmjosh2")
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[0])
IF HAS_ANIM_DICT_LOADED("rcmjosh2")
SET_PED_CAN_RAGDOLL_FROM_PLAYER_IMPACT(sRCLauncherDataLocal.pedID[0],FALSE)
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 5, sRCLauncherDataLocal.pedID[0], "JOSH")
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 2, PLAYER_PED_ID(), "TREVOR")
Josh2_Leadin_1 = CREATE_SYNCHRONIZED_SCENE(<<563.76, -1773.86, 28.36>>,<<0.02, 0.02, -110.70>>)
IF CREATE_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_INT_LI",CONV_PRIORITY_MEDIUM)
REPLAY_RECORD_BACK_FOR_TIME(1.0, 6.0)
// B*2079566 - disable taxis during the "go to door" state to fix PT issue
IF bDisabledTaxis = FALSE
DISABLE_TAXI_HAILING(TRUE)
bDisabledTaxis = TRUE
CPRINTLN(DEBUG_MISSION, " IntroMocap : bDisabledTaxis = TRUE")
ENDIF
RC_SET_ENTITY_PROOFS_FOR_CUTSCENE(sRCLauncherDataLocal, FALSE)
//BLOCK_PLAYER_FOR_LEAD_IN(TRUE)
SET_PED_RELATIONSHIP_GROUP_HASH(sRCLauncherDataLocal.pedID[0],GET_PED_RELATIONSHIP_GROUP_HASH(PLAYER_PED_ID()))
IF IS_SCREEN_FADED_OUT()
TASK_SYNCHRONIZED_SCENE(sRCLauncherDataLocal.pedID[0], Josh2_Leadin_1, "rcmjosh2", "josh_leadin", INSTANT_BLEND_IN, SLOW_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS | SYNCED_SCENE_DONT_INTERRUPT)
TASK_LOOK_AT_ENTITY(PLAYER_PED_ID(),sRCLauncherDataLocal.pedID[0],-1)
SAFE_TELEPORT_ENTITY(PLAYER_PED_ID(),<<567.5291, -1769.4231, 28.1428>>, 159.2917)
ELSE
TASK_SYNCHRONIZED_SCENE(sRCLauncherDataLocal.pedID[0], Josh2_Leadin_1, "rcmjosh2", "josh_leadin", 1, SLOW_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS | SYNCED_SCENE_DONT_INTERRUPT)
TASK_LOOK_AT_ENTITY(PLAYER_PED_ID(),sRCLauncherDataLocal.pedID[0],-1)
ENDIF
SET_MISSION_LAST_VEHICLE_AS_VEHICLE_GEN(<<0,0,0>>,0)
eCutsceneState = eCutLeadIn1
CPRINTLN(DEBUG_MISSION, " IntroMocap : eCutInit -> eCutLeadIn1")
ENDIF
ENDIF
ENDIF
BREAK
CASE eCutLeadIn1
IF NOT bTurnedJosh
IF IS_SYNCHRONIZED_SCENE_RUNNING(Josh2_Leadin_1)
IF GET_SYNCHRONIZED_SCENE_PHASE(Josh2_Leadin_1) >= 0.025
IF IS_SCREEN_FADED_OUT()
SET_GAMEPLAY_CAM_RELATIVE_PITCH()
SET_GAMEPLAY_CAM_RELATIVE_HEADING()
SAFE_FADE_SCREEN_IN_FROM_BLACK(DEFAULT_FADE_TIME,FALSE)
ENDIF
ENDIF
IF GET_SYNCHRONIZED_SCENE_PHASE(Josh2_Leadin_1) >= 0.371
bDoCSLocate = TRUE
IF NOT DOES_BLIP_EXIST(blipCSDoor)
blipCSDoor = CREATE_COORD_BLIP(<<550.20, -1772.53, 32.45>>)
ENDIF
ENDIF
IF GET_SYNCHRONIZED_SCENE_PHASE(Josh2_Leadin_1) < 0.371
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<565.184204,-1777.227417,30.704159>>, <<549.950806,-1770.103027,35.947773>>, 7.000000) //up the stairs
SET_PED_CAN_RAGDOLL_FROM_PLAYER_IMPACT(sRCLauncherDataLocal.pedID[0],TRUE)
TASK_LOOK_AT_ENTITY(PLAYER_PED_ID(),sRCLauncherDataLocal.pedID[0],-1)
TASK_TURN_PED_TO_FACE_ENTITY(sRCLauncherDataLocal.pedID[0],PLAYER_PED_ID())
bTurnedJosh = TRUE
EXIT
ENDIF
ENDIF
ENDIF
//UPDATE_BLOCKED_PLAYER_FOR_LEAD_IN(TRUE)
IF NOT IS_SYNCHRONIZED_SCENE_RUNNING(Josh2_Leadin_1b)
//IF NOT IS_ENTITY_PLAYING_ANIM(sRCLauncherDataLocal.pedID[0],"rcmjosh2", "josh_wait_loop")
IF NOT IS_SYNCHRONIZED_SCENE_RUNNING(Josh2_Leadin_1)
OR GET_SYNCHRONIZED_SCENE_PHASE(Josh2_Leadin_1) > 0.99
//TASK_PLAY_ANIM(sRCLauncherDataLocal.pedID[0], "rcmjosh2", "josh_wait_loop", NORMAL_BLEND_IN, NORMAL_BLEND_OUT,-1,AF_LOOPING | AF_USE_KINEMATIC_PHYSICS)
//IF NOT IS_SYNCHRONIZED_SCENE_RUNNING(Josh2_Leadin_1b)
Josh2_Leadin_1b = CREATE_SYNCHRONIZED_SCENE(<<563.76, -1773.86, 28.36>>,<<0.02, 0.02, -110.70>>)
SET_SYNCHRONIZED_SCENE_LOOPED(Josh2_Leadin_1b,TRUE)
TASK_SYNCHRONIZED_SCENE(sRCLauncherDataLocal.pedID[0], Josh2_Leadin_1b, "rcmjosh2", "josh_wait_loop_exit", SLOW_BLEND_IN, SLOW_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS | SYNCED_SCENE_DONT_INTERRUPT)
//iTimerJoshMotelLines = GET_GAME_TIMER()
//ENDIF
ENDIF
ELSE
DO_JOSH_MOTEL_LINES()
ENDIF
IF IS_SYNCHRONIZED_SCENE_RUNNING(Josh2_Leadin_1)
AND GET_SYNCHRONIZED_SCENE_PHASE(Josh2_Leadin_1) >= 0.371
bDoCSLocate = TRUE
IF NOT DOES_BLIP_EXIST(blipCSDoor)
blipCSDoor = CREATE_COORD_BLIP(<<550.20, -1772.53, 32.45>>)
ENDIF
ENDIF
ELSE
IF IS_SCREEN_FADED_OUT()
SET_GAMEPLAY_CAM_RELATIVE_PITCH()
SET_GAMEPLAY_CAM_RELATIVE_HEADING()
SAFE_FADE_SCREEN_IN_FROM_BLACK(DEFAULT_FADE_TIME,FALSE)
ENDIF
bDoCSLocate = TRUE
IF NOT DOES_BLIP_EXIST(blipCSDoor)
blipCSDoor = CREATE_COORD_BLIP(<<550.20, -1772.53, 32.45>>)
ENDIF
IF NOT IS_PED_FACING_PED(sRCLauncherDataLocal.pedID[0],PLAYER_PED_ID(),45)
TASK_TURN_PED_TO_FACE_ENTITY(sRCLauncherDataLocal.pedID[0],PLAYER_PED_ID())
ENDIF
DO_JOSH_MOTEL_LINES()
ENDIF
IF IS_ENTITY_AT_COORD(PLAYER_PED_ID(),<<550.20, -1772.53, 33.45>>,<<3,3,1>>,FALSE)
IF HAS_ANIM_DICT_LOADED("rcmjosh")
SET_CURRENT_PED_WEAPON(PLAYER_PED_ID(), WEAPONTYPE_UNARMED, TRUE)
DISPLAY_HUD(FALSE)
DISPLAY_RADAR(FALSE)
bDoCSLocate = FALSE
SAFE_REMOVE_BLIP(blipCSDoor)
STOP_SYNCHRONIZED_ENTITY_ANIM(sRCLauncherDataLocal.pedID[0],NORMAL_BLEND_DURATION,FALSE)
Josh2_Leadin_2 = CREATE_SYNCHRONIZED_SCENE(<<563.76, -1773.86, 28.36>>,<<0.02, 0.02, -110.70>>)
camMiniCut = CREATE_CAMERA(CAMTYPE_ANIMATED)
TASK_SYNCHRONIZED_SCENE(PLAYER_PED_ID(), Josh2_Leadin_2, "rcmjosh", "trevor_enter_room_trevor", SLOW_BLEND_IN, SLOW_BLEND_OUT)
SET_CAM_ACTIVE(camMiniCut,TRUE)
RENDER_SCRIPT_CAMS(TRUE,FALSE)
PLAY_SYNCHRONIZED_CAM_ANIM(camMiniCut,Josh2_Leadin_2,"trevor_enter_room_camera","rcmjosh")
PLAY_SYNCHRONIZED_MAP_ENTITY_ANIM(<<549.33, -1773.09, 33.77>>,5,prop_motel_door_09,Josh2_Leadin_2,"trevor_enter_room_door","rcmjosh",NORMAL_BLEND_DURATION)
RC_SET_ENTITY_PROOFS_FOR_CUTSCENE(sRCLauncherDataLocal, TRUE)
DISABLE_CELLPHONE(TRUE)
CLEAR_AREA_OF_PEDS(<<549.33, -1773.09, 33.77>>,50)
eCutsceneState = eCutLeadIn2
CPRINTLN(DEBUG_MISSION, " IntroMocap : eCutLeadIn1 -> eCutLeadIn2")
ENDIF
ENDIF
IF bDoCSLocate = TRUE
IF IS_ENTITY_AT_COORD(PLAYER_PED_ID(),<<550.20, -1772.53, 32.45>>,<<4,4,LOCATE_SIZE_HEIGHT>>,TRUE)
ENDIF
ENDIF
BREAK
CASE eCutLeadIn2
HIDE_HUD_AND_RADAR_THIS_FRAME()
THEFEED_HIDE_THIS_FRAME()
IF NOT bStreamVolCreated
StreamVol = STREAMVOL_CREATE_FRUSTUM(<<556.0839, -1724.9622, 33.0732>>, <<18.6933, 0.1321, -157.4946>>,150,FLAG_COLLISIONS_MOVER | FLAG_MAPDATA)
bStreamVolCreated = TRUE
ENDIF
IF IS_SYNCHRONIZED_SCENE_RUNNING(Josh2_Leadin_2)
SET_ALL_RANDOM_PEDS_FLEE_THIS_FRAME(PLAYER_ID())
IF GET_SYNCHRONIZED_SCENE_PHASE(Josh2_Leadin_2) > 0.98
OR IS_CUTSCENE_SKIP_BUTTON_JUST_PRESSED_WITH_DELAY()
eCutsceneState = eCutLeadIn3
CPRINTLN(DEBUG_MISSION, " IntroMocap : eCutLeadIn2 -> eCutLeadIn3")
ENDIF
ENDIF
BREAK
CASE eCutLeadIn3
HIDE_HUD_AND_RADAR_THIS_FRAME()
THEFEED_HIDE_THIS_FRAME()
IF REQUEST_AMBIENT_AUDIO_BANK("TIME_LAPSE")
DESTROY_CAM(camMiniCut)
RENDER_SCRIPT_CAMS(FALSE,FALSE)
sTimelapse.splineCamera = CREATE_CAM("DEFAULT_SPLINE_CAMERA")
ADD_CAM_SPLINE_NODE(sTimelapse.splineCamera, <<556.0839, -1724.9622, 33.0732>>, <<18.6933, 0.1321, -157.4946>>, 7000)
ADD_CAM_SPLINE_NODE(sTimelapse.splineCamera, <<556.0934, -1724.9857, 35.9731>>, <<12.1284, 0.1325, -157.7881>>, 7000) //<<556.0882, -1724.9728, 34.3872>>, <<12.9316, 0.1321, -157.7965>>
SET_CAM_FOV(sTimelapse.splineCamera, 37.1751) //42.0503//27.1
SET_CAM_ACTIVE(sTimelapse.splineCamera, TRUE)
PLAY_SOUND_FRONTEND(-1, "TIME_LAPSE_MASTER")
SET_TODS_CUTSCENE_RUNNING(sTimelapse, TRUE, FALSE)
sTimelapse.sStartTimeOfDay = GET_CURRENT_TIMEOFDAY()
todReference = GET_CURRENT_TIMEOFDAY()
ADD_TIME_TO_TIMEOFDAY(todReference, 0, 0, CONST_NUM_HOURS_SKIP_FOR_MOTEL_TIMELAPSE, 0) // B*2173568 - ensure iSkipToHour is clamped to a valid hour
iSkipToHour = GET_TIMEOFDAY_HOUR(todReference)
CPRINTLN(DEBUG_MISSION, "JOSH2: GET_HOUR_TO_SKIP_TO_IN_MOTEL_TIMELAPSE return ", iSkipToHour)
KILL_FACE_TO_FACE_CONVERSATION_DO_NOT_FINISH_LAST_LINE()
CLEAR_PLAYER_WANTED_LEVEL(PLAYER_ID())
eCutsceneState = eCutLeadIn4
CPRINTLN(DEBUG_MISSION, " IntroMocap : eCutLeadIn3 -> eCutLeadIn4")
ENDIF
BREAK
CASE eCutLeadIn4
HIDE_HUD_AND_RADAR_THIS_FRAME()
THEFEED_HIDE_THIS_FRAME()
IF IS_SYNCHRONIZED_SCENE_RUNNING(Josh2_Leadin_2)
SET_SYNCHRONIZED_SCENE_PHASE(Josh2_Leadin_2,0.99)
ENDIF
IF SKIP_TO_TIME_DURING_SPLINE_CAMERA(iSkipToHour, 0, "EXTRASUNNY", "cirrocumulus", sTimelapse)
OR IS_CUTSCENE_SKIP_BUTTON_JUST_PRESSED_WITH_DELAY()
RELEASE_AMBIENT_AUDIO_BANK()
STOP_AUDIO_SCENE("TOD_SHIFT_SCENE")
//SAFE_FADE_SCREEN_OUT_TO_BLACK(DEFAULT_FADE_TIME)
eCutsceneState = eCutLeadIn5
CPRINTLN(DEBUG_MISSION, " IntroMocap : eCutLeadIn4 -> eCutLeadIn5")
ENDIF
BREAK
CASE eCutLeadIn5
HIDE_HUD_AND_RADAR_THIS_FRAME()
THEFEED_HIDE_THIS_FRAME()
IF HAS_CUTSCENE_LOADED_WITH_FAILSAFE()
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[0])
REGISTER_ENTITY_FOR_CUTSCENE(sRCLauncherDataLocal.pedID[0],"Josh",CU_ANIMATE_EXISTING_SCRIPT_ENTITY)
ENDIF
RC_CLEANUP_LAUNCHER()
REPLAY_RECORD_BACK_FOR_TIME(15.0, 0.0, REPLAY_IMPORTANCE_LOWEST)
REPLAY_START_EVENT(REPLAY_IMPORTANCE_LOW)
START_CUTSCENE()
WAIT(0)
SET_TODS_CUTSCENE_RUNNING(sTimelapse, FALSE, DEFAULT, DEFAULT, DEFAULT, FALSE) // this stomps on the timeOfDay if bResetTime parameter is TRUE
//SAFE_FADE_SCREEN_IN_FROM_BLACK(DEFAULT_FADE_TIME,FALSE)
//SET_TODS_CUTSCENE_RUNNING(sTimelapse, FALSE, FALSE)
RESOLVE_VEHICLES_INSIDE_ANGLED_AREA(<<569.730225,-1774.378540,27.897423>>, <<560.649048,-1770.264526,31.606855>>, 14.750,<< 573.5463, -1759.4382, 28.1695 >>, 354.0835)
DESTROY_CAM(camMiniCut)
STREAMVOL_DELETE(StreamVol)
bStreamVolCreated = FALSE
RENDER_SCRIPT_CAMS(FALSE,FALSE)
eCutsceneState = eCutUpdate
CPRINTLN(DEBUG_MISSION, " IntroMocap : eCutLeadIn5 -> eCutUpdate CUTSCENE STARTED")
ENDIF
BREAK
CASE eCutUpdate
/*
IF NOT HAS_FAKE_CELLPHONE_MOVIE_LOADED(sJoshFakeCellphoneData)
REQUEST_FAKE_CELLPHONE_MOVIE(sJoshFakeCellphoneData)
ELSE
IF GET_CUTSCENE_TIME() < 14428
DRAW_FAKE_CELLPHONE_SCREEN(sJoshFakeCellphoneData, FALSE, FAKE_CELLPHONE_SCREEN_GENERIC_MENU)
ELIF GET_CUTSCENE_TIME() > 15209
DRAW_FAKE_CELLPHONE_SCREEN(sJoshFakeCellphoneData, FALSE, FAKE_CELLPHONE_SCREEN_JOSH2_PHOTO)
ELSE
DRAW_FAKE_CELLPHONE_SCREEN(sJoshFakeCellphoneData, FALSE, FAKE_CELLPHONE_SCREEN_JOSH2_GALLERY)
ENDIF
ENDIF
*/
/*
IF IS_CUTSCENE_PLAYING()
PRINTINT(GET_CUTSCENE_TIME())
PRINTNL()
ENDIF
*/
/*
IF IS_NAMED_RENDERTARGET_REGISTERED("Prop_NPC_Phone")
rt_ID = GET_NAMED_RENDERTARGET_RENDER_ID("Prop_NPC_Phone")
ENDIF
IF GET_CUTSCENE_TIME() < 70960
iParam = 0
ELIF GET_CUTSCENE_TIME() > 71418
iParam = 2
ELSE
iParam = 1
ENDIF
LINK_NAMED_RENDERTARGET(Prop_Phone_ING)
BEGIN_SCALEFORM_MOVIE_METHOD(siJoshPhone,"DISPLAY_VIEW")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iParam)
END_SCALEFORM_MOVIE_METHOD()
SET_TEXT_RENDER_ID (rt_ID)
DRAW_SCALEFORM_MOVIE(siJoshPhone, 0.100, 0.24000, 0.2100,0.51000, 100,100,100,255)
*/
IF DOES_CAM_EXIST(camMiniCut)
DESTROY_CAM(camMiniCut)
RENDER_SCRIPT_CAMS(FALSE,FALSE)
ENDIF
DISABLE_FIRST_PERSON_FLASH_EFFECT_THIS_UPDATE()
IF CAN_SET_EXIT_STATE_FOR_REGISTERED_ENTITY("Josh")
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[0])
Josh2_Leadin_3 = CREATE_SYNCHRONIZED_SCENE(<<563.76, -1773.86, 28.36>>,<<0.02, 0.02, -110.70>>)
//IF CREATE_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_INT_LO",CONV_PRIORITY_MEDIUM)
FORCE_PED_AI_AND_ANIMATION_UPDATE(sRCLauncherDataLocal.pedID[0])
TASK_SYNCHRONIZED_SCENE(sRCLauncherDataLocal.pedID[0], Josh2_Leadin_3, "rcmjosh2", "josh_leadout", SLOW_BLEND_IN, SLOW_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS | SYNCED_SCENE_DONT_INTERRUPT)
bCSExitJosh = TRUE
//ENDIF
ENDIF
ENDIF
/*
IF IS_NAMED_RENDERTARGET_REGISTERED("Prop_NPC_Phone")
RELEASE_NAMED_RENDERTARGET("Prop_NPC_Phone")
ENDIF
IF IS_NAMED_RENDERTARGET_REGISTERED("CELLPHONE_CUTSCENE")
RELEASE_NAMED_RENDERTARGET("CELLPHONE_CUTSCENE")
ENDIF
*/
IF CAN_SET_EXIT_STATE_FOR_REGISTERED_ENTITY("Trevor")
REPLAY_STOP_EVENT()
//FORCE_PED_AI_AND_ANIMATION_UPDATE(PLAYER_PED_ID())
FORCE_PED_MOTION_STATE(PLAYER_PED_ID(),MS_ON_FOOT_WALK,FALSE,FAUS_CUTSCENE_EXIT)
//TASK_GO_STRAIGHT_TO_COORD(PLAYER_PED_ID(),GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(PLAYER_PED_ID(),<<0,6,0>>),PEDMOVEBLENDRATIO_WALK,-1)
//TASK_GO_STRAIGHT_TO_COORD_RELATIVE_TO_ENTITY(PLAYER_PED_ID(),PLAYER_PED_ID(),<<0,5,0>>,PEDMOVEBLENDRATIO_WALK,-1)
TASK_FOLLOW_NAV_MESH_TO_COORD(PLAYER_PED_ID(),GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(PLAYER_PED_ID(),<<0,6,0>>),PEDMOVEBLENDRATIO_WALK,-1,1,ENAV_NO_STOPPING)
bCSExitTrev = TRUE
ENDIF
IF bCSExitTrev = FALSE
SET_GAMEPLAY_CAM_RELATIVE_PITCH(0.0)
SET_GAMEPLAY_CAM_RELATIVE_HEADING(0.0)
ENDIF
IF CAN_SET_EXIT_STATE_FOR_CAMERA()
SET_GAMEPLAY_CAM_RELATIVE_PITCH(0.0)
SET_GAMEPLAY_CAM_RELATIVE_HEADING(0.0)
bCSExitCam = TRUE
ENDIF
IF bCSExitTrev = TRUE
AND bCSExitJosh = TRUE
AND bCSExitCam = TRUE
eCutsceneState = eCutLeadOut1
ENDIF
BREAK
CASE eCutLeadOut1
//IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
eCutsceneState = eCutCleanup
//ENDIF
BREAK
CASE eCutCleanup
//CLEAR_BLOCKED_PLAYER_FOR_LEAD_IN()
//RC_END_CUTSCENE_MODE()
RC_SET_ENTITY_PROOFS_FOR_CUTSCENE(sRCLauncherDataLocal, FALSE)
//RELEASE_FAKE_CELLPHONE_MOVIE(sJoshFakeCellphoneData)
//RELEASE_NPC_PHONE_RENDERTARGET()
/*
IF IS_NAMED_RENDERTARGET_REGISTERED("Prop_NPC_Phone")
RELEASE_NAMED_RENDERTARGET("Prop_NPC_Phone")
ENDIF
IF IS_NAMED_RENDERTARGET_REGISTERED("CELLPHONE_CUTSCENE")
RELEASE_NAMED_RENDERTARGET("CELLPHONE_CUTSCENE")
ENDIF
*/
//FORCE_PED_MOTION_STATE(PLAYER_PED_ID(),MS_ON_FOOT_WALK,FALSE,FAUS_CUTSCENE_EXIT)
//SET_PED_MIN_MOVE_BLEND_RATIO(PLAYER_PED_ID(),PEDMOVE_WALK)
// B*2079566 - RESET disable taxis during the "go to door" state to fix PT issue
IF bDisabledTaxis = TRUE
DISABLE_TAXI_HAILING(FALSE)
bDisabledTaxis = FALSE
CPRINTLN(DEBUG_MISSION, " IntroMocap : eCutCleanup : bDisabledTaxis = FALSE")
ENDIF
SET_PED_CAN_RAGDOLL_FROM_PLAYER_IMPACT(sRCLauncherDataLocal.pedID[0],FALSE)
DISABLE_CELLPHONE(FALSE)
DISPLAY_HUD(TRUE)
DISPLAY_RADAR(TRUE)
SAFE_REMOVE_BLIP(blipCSDoor)
eMissionStage = MS_INIT
BREAK
ENDSWITCH
#IF IS_DEBUG_BUILD
IF IS_KEYBOARD_KEY_JUST_PRESSED(KEY_J)
STOP_CUTSCENE()
IF DOES_CAM_EXIST(camMiniCut)
DESTROY_CAM(camMiniCut)
RENDER_SCRIPT_CAMS(FALSE,FALSE)
ENDIF
eCutsceneState = eCutCleanup
ENDIF
IF IS_KEYBOARD_KEY_JUST_PRESSED(KEY_P)
STOP_CUTSCENE()
IF DOES_CAM_EXIST(camMiniCut)
DESTROY_CAM(camMiniCut)
RENDER_SCRIPT_CAMS(FALSE,FALSE)
ENDIF
bDebugSkipping = TRUE
bDebugSkippingToStart = TRUE
ResetStuff()
SAFE_TELEPORT_ENTITY(PLAYER_PED_ID(),<<567.5291, -1769.4231, 28.1428>>, 159.2917)
SET_GAMEPLAY_CAM_RELATIVE_HEADING(0)
SET_GAMEPLAY_CAM_RELATIVE_PITCH(0)
WHILE NOT CREATE_NPC_PED_ON_FOOT(sRCLauncherDataLocal.pedID[0], CHAR_JOSH, <<565.390076,-1772.837769,29.800871>> , 62.5015565)
WAIT(0)
ENDWHILE
eMissionStage = MS_INTRO
ENDIF
DEBUG_Check_Debug_Keys()
#ENDIF
ENDPROC
/// PURPOSE: Skip back to the start
PROC SkipToStart()
STOP_CUTSCENE()
IF DOES_CAM_EXIST(camMiniCut)
DESTROY_CAM(camMiniCut)
RENDER_SCRIPT_CAMS(FALSE,FALSE)
ENDIF
START_REPLAY_SETUP(<<567.5291, -1769.4231, 28.1428>>, 159.2917)
LoadStuff()
bDebugSkipping = TRUE
bDebugSkippingToStart = TRUE
ResetStuff()
//SAFE_TELEPORT_ENTITY(PLAYER_PED_ID(),<<567.5291, -1769.4231, 28.1428>>, 159.2917)
WHILE NOT CREATE_NPC_PED_ON_FOOT(sRCLauncherDataLocal.pedID[0], CHAR_JOSH, <<565.390076,-1772.837769,29.800871>> , 62.5015565)
WAIT(0)
ENDWHILE
IF NOT DOES_ENTITY_EXIST(sRCLauncherDataLocal.vehID[0])
sRCLauncherDataLocal.vehID[0] = CREATE_VEHICLE(FELON2,<<558.09, -1765.39, 28.86>>, 335.3252)
SET_VEHICLE_COLOUR_COMBINATION(sRCLauncherDataLocal.vehID[0],4)
ELSE
IF IS_ENTITY_ALIVE(sRCLauncherDataLocal.vehID[0])
SET_ENTITY_COORDS(sRCLauncherDataLocal.vehID[0],<<558.09, -1765.39, 28.86>>)
SET_ENTITY_HEADING(sRCLauncherDataLocal.vehID[0],335.3252)
ENDIF
ENDIF
eMissionStage = MS_INTRO
END_REPLAY_SETUP()
SET_GAMEPLAY_CAM_RELATIVE_HEADING(0)
SET_GAMEPLAY_CAM_RELATIVE_PITCH(0)
SAFE_FADE_SCREEN_IN_FROM_BLACK(DEFAULT_FADE_TIME,FALSE)
RC_END_Z_SKIP(TRUE)
ENDPROC
/// PURPOSE: Skip past intro cutscene, used for mission replay
PROC SkipPastCS()
START_REPLAY_SETUP(<< 570.0771, -1763.5652, 28.1695 >>, 347.4368)
SAFE_FADE_SCREEN_OUT_TO_BLACK(0,FALSE)
LoadStuff()
Init()
eMissionStage = MS_GO_TO_ROCKFORD
//IF NOT DOES_ENTITY_EXIST(vehPlayer)
// CREATE_VEHICLE_FOR_REPLAY(vehPlayer,<< 573.5463, -1759.4382, 28.1695 >>,354.0835,FALSE,FALSE,FALSE,TRUE,FALSE,FELON2,2)
//ENDIF
//SET_ENTITY_COORDS(PLAYER_PED_ID(),<< 570.0771, -1763.5652, 28.1695 >>)
//SET_ENTITY_HEADING(PLAYER_PED_ID(),347.4368)
//LOAD_SCENE(GET_ENTITY_COORDS(PLAYER_PED_ID()))
END_REPLAY_SETUP()
WAIT(100)
PRINT_NOW("JOSH2_01",DEFAULT_GOD_TEXT_TIME,0) //Go to ~y~Rockford Hills.
SET_GAMEPLAY_CAM_RELATIVE_HEADING(0)
SET_GAMEPLAY_CAM_RELATIVE_PITCH(0)
SET_PLAYER_CONTROL(PLAYER_ID(),TRUE)
SET_REPLAY_MID_MISSION_STAGE_WITH_NAME(1,"Go To Rockford")
SAFE_FADE_SCREEN_IN_FROM_BLACK(DEFAULT_FADE_TIME,FALSE)
RC_END_Z_SKIP(TRUE)
ENDPROC
/// PURPOSE: Skip to the chase, used for mission replay
PROC SkipToChase()
START_REPLAY_SETUP(<< -923.8829, 5.9621, 46.5911 >>, 0.0)
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "<><> ENTERING REPLAY SKIP TO CHASE <><>")
#ENDIF
/*
IF STREAMVOL_IS_VALID(streamVolID)
streamVolID = STREAMVOL_CREATE_SPHERE(<< -904.9491, 17.5415, 45.5212 >>, 30.0, FLAG_MAPDATA)
ENDIF
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "<><> CREATING STREAM VOL <><>")
#ENDIF
*/
SAFE_FADE_SCREEN_OUT_TO_BLACK(0,FALSE)
ResetStuff()
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "<><> REPLAY FINISHED RESET STUFF <><>")
#ENDIF
LoadStuff()
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "<><> REPLAY FINISHED LOAD STUFF <><>")
#ENDIF
Init()
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "<><> REPLAY FINISHED INIT <><>")
#ENDIF
RequestRockfordAssets()
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "<><> REPLAY FINISHED REQ ROCKFORD ASSETS <><>")
#ENDIF
WaitForRockfordAssets()
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "<><> REPLAY FINISHED WAIT FOR ROCKFORD ASSETS <><>")
#ENDIF
InitAmbientHouses()
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "<><> REPLAY FINISHED INIT AMBIENT HOUSES <><>")
#ENDIF
SkipStage1()
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "<><> REPLAY FINISHED SKIP STAGE 1 <><>")
#ENDIF
SAFE_REMOVE_BLIP(blipRockfordHills)
//SET_PED_COORDS_KEEP_VEHICLE(PLAYER_PED_ID(),<< -913.5941, 12.8344, 46.5934 >>)
//SET_ENTITY_HEADING(PLAYER_PED_ID(),127.8599)
eMissionStage = MS_FIND_THE_GREEN_COMET
SET_ROADS_IN_ANGLED_AREA(<<-887.370972,-101.877480,34.387718>>, <<-989.135986,60.986832,58.366745>>, 31.500000,FALSE,FALSE)
//SET_ENTITY_COORDS(PLAYER_PED_ID(),<< -899.2744, 20.7509, 45.0002 >>)
/*
IF DOES_OBJECT_OF_TYPE_EXIST_AT_COORDS(<<-924.975342,-9.033067,43.281506>>,10.0,prop_lrggate_03a)
SET_STATE_OF_CLOSEST_DOOR_OF_TYPE(prop_lrggate_03a,<<-924.975342,-9.033067,43.281506>>,TRUE,1.0)
ENDIF
IF DOES_OBJECT_OF_TYPE_EXIST_AT_COORDS(<<-905.696655,14.659701,45.675934>>,10.0,prop_lrggate_03a)
SET_STATE_OF_CLOSEST_DOOR_OF_TYPE(prop_lrggate_03a,<<-905.696655,14.659701,45.675934>>,TRUE,1.0)
ENDIF
*/
//WAIT(500)
/*
IF STREAMVOL_IS_VALID(streamVolID)
WHILE NOT STREAMVOL_HAS_LOADED(streamVolID)
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "<><> WAITING FOR STREAMVOL <><>")
#ENDIF
WAIT(0)
ENDWHILE
ENDIF
*/
//STREAMVOL_DELETE(streamVolID)
CLEAR_AREA(<< -923.8829, 5.9621, 46.5911 >>,50.0,TRUE)
IF NOT DOES_ENTITY_EXIST(vehPlayer)
CREATE_VEHICLE_FOR_REPLAY(vehPlayer,<<-897.5433, 20.4735, 44.9163>>,110.3058,TRUE,TRUE,FALSE,TRUE,TRUE,FELON2,2)
ENDIF
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "<><> REPLAY STARTING LOAD SCENE <><>")
#ENDIF
//LOAD_SCENE(<< -899.2744, 20.7509, 45.0002 >>)
//WAIT_FOR_WORLD_TO_LOAD(<< -899.2744, 20.7509, 45.0002 >>,50, FLAG_MAPDATA | FLAG_COLLISIONS_MOVER)
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "<><> REPLAY FINISHED LOAD SCENE <><>")
#ENDIF
IF IS_VEHICLE_OK(vehPlayer)
SET_ENTITY_INVINCIBLE(vehPlayer,TRUE)
SET_VEHICLE_CAN_BE_VISIBLY_DAMAGED(vehPlayer,FALSE)
SAFE_TELEPORT_ENTITY(vehPlayer,<<-903.2674, 18.7336, 45.2240>>, 113.1507)
SET_VEHICLE_ON_GROUND_PROPERLY(vehPlayer)
iRollingStartTimer = GET_GAME_TIMER()
ENDIF
END_REPLAY_SETUP(vehPlayer)
SET_PLAYER_CONTROL(PLAYER_ID(),FALSE)
FLOAT fDoorOpenRatio
BOOL bDoorLock
WHILE fDoorOpenRatio < 1.0
AND GET_GAME_TIMER() < iRollingStartTimer + 2000
WAIT(0)
GET_STATE_OF_CLOSEST_DOOR_OF_TYPE(prop_lrggate_03a,<<-905.696655,14.659701,45.675934>>,bDoorLock,fDoorOpenRatio)
IF IS_DOOR_REGISTERED_WITH_SYSTEM(Josh2Door[3])
CPRINTLN(DEBUG_MISSION, "<><> GATE REGISTERED WITH SYSTEM <><>")
DOOR_SYSTEM_SET_OPEN_RATIO(Josh2Door[3], 1.0, false, false)
DOOR_SYSTEM_SET_DOOR_STATE(Josh2Door[3], DOORSTATE_FORCE_OPEN_THIS_FRAME)
ENDIF
#IF IS_DEBUG_BUILD
PRINTFLOAT(fDoorOpenRatio)
PRINTNL()
#ENDIF
OpenGates()
ENDWHILE
#IF IS_DEBUG_BUILD
IF GET_GAME_TIMER() >= iRollingStartTimer + 2000
CPRINTLN(DEBUG_MISSION, "<><> REPLAY COULDN'T OPEN GATE - TIMING OUT <><>")
ELSE
CPRINTLN(DEBUG_MISSION, "<><> REPLAY OPENED GATE <><>")
ENDIF
#ENDIF
IF IS_VEHICLE_OK(vehPlayer)
SET_VEHICLE_FORWARD_SPEED(vehPlayer,2)
TASK_VEHICLE_FOLLOW_WAYPOINT_RECORDING(PLAYER_PED_ID(),vehPlayer,"Josh2Roll",DRIVINGMODE_PLOUGHTHROUGH,0,EWAYPOINT_START_FROM_CLOSEST_POINT)
iRollingStartTimer = GET_GAME_TIMER()
ENDIF
WHILE GET_GAME_TIMER() < iRollingStartTimer + 1200
WAIT(0)
OpenGates()
ENDWHILE
iRollingStartTimer = GET_GAME_TIMER()
//WAIT(300)
SET_GAMEPLAY_CAM_RELATIVE_HEADING(0)
SET_GAMEPLAY_CAM_RELATIVE_PITCH(0)
SAFE_FADE_SCREEN_IN_FROM_BLACK(DEFAULT_FADE_TIME,FALSE)
RC_END_Z_SKIP(TRUE)
ENDPROC
PROC SkipToEnd()
START_REPLAY_SETUP(<<-1066.0558, 387.0880, 67.8674>>, 284.5628)
ResetStuff()
LoadStuff()
Init()
RequestRockfordAssets()
WaitForRockfordAssets()
InitAmbientHouses()
SkipStage1()
SkipStage2()
SET_PLAYER_CONTROL(PLAYER_ID(),FALSE)
IF IS_VEHICLE_OK(vehAveryComet)
SAFE_TELEPORT_ENTITY(vehAveryComet,<<-1059.8920, 387.9023, 67.9261>>, 307.9631)
IF IS_PED_UNINJURED(pedAvery)
//SAFE_TELEPORT_ENTITY(PLAYER_PED_ID(),<<-1066.0558, 387.0880, 67.8674>>, 284.5628,TRUE)
//SAFE_TELEPORT_ENTITY(pedAvery,<<-1060.7996, 389.5708, 67.8701>>, 105.1316,TRUE)
bDebugSkippedToBeatAvery = TRUE
bCometSmashed = TRUE
bWaypointPlaybackStopped = TRUE
IF bDoorFallenOff = FALSE
//SET_VEHICLE_DOOR_BROKEN(vehAveryComet,SC_DOOR_FRONT_LEFT,TRUE)
bDoorFallenOff = TRUE
ENDIF
ENDIF
ENDIF
//SET_ENTITY_COORDS(PLAYER_PED_ID(),<<-1066.0558, 387.0880, 67.8674>>)
//SET_ENTITY_HEADING(PLAYER_PED_ID(),284.5628)
SET_ENTITY_COORDS(pedAvery,<<-1060.7996, 389.5708, 67.8701>>)
SET_ENTITY_HEADING(pedAvery,105.1316)
SET_VEHICLE_ON_GROUND_PROPERLY(vehAveryComet)
SET_PED_MOVEMENT_CLIPSET(pedAvery,"MOVE_M@BAIL_BOND_NOT_TAZERED")
SET_PED_COMBAT_ATTRIBUTES(pedAvery,CA_ALWAYS_FLEE,TRUE)
SET_VEHICLE_ENGINE_HEALTH(vehAveryComet,101) //299
SET_VEHICLE_ENGINE_ON(vehAveryComet,FALSE,TRUE)
//LOAD_SCENE(<<-1050.1335, 387.4164, 68.2507>>)
END_REPLAY_SETUP()
WAIT(1000)
IF IS_PED_UNINJURED(pedAvery)
SET_PED_KEEP_TASK(pedAvery,TRUE)
IF GET_SCRIPT_TASK_STATUS(pedAvery,SCRIPT_TASK_FOLLOW_NAV_MESH_TO_COORD) <> PERFORMING_TASK
TASK_WANDER_STANDARD(pedAvery)
ENDIF
ENDIF
SET_GAMEPLAY_CAM_RELATIVE_HEADING()
SET_GAMEPLAY_CAM_RELATIVE_PITCH()
SAFE_FADE_SCREEN_IN_FROM_BLACK(DEFAULT_FADE_TIME,FALSE)
SET_PLAYER_CONTROL(PLAYER_ID(),TRUE)
WHILE NOT IS_SCREEN_FADED_IN()
WAIT(0)
ENDWHILE
Script_Passed()
ENDPROC
/// PURPOSE: Manage the rolling start at chase
PROC ManageRollingStart()
IF IS_VEHICLE_OK(vehPlayer)
//IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(vehPlayer)
IF IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_VEHICLE(vehPlayer)
IF IS_CONTROL_PRESSED(PLAYER_CONTROL, INPUT_VEH_ACCELERATE)
OR IS_CONTROL_PRESSED(PLAYER_CONTROL, INPUT_VEH_BRAKE)
OR IS_CONTROL_PRESSED(PLAYER_CONTROL, INPUT_VEH_MOVE_LEFT)
OR IS_CONTROL_PRESSED(PLAYER_CONTROL, INPUT_VEH_MOVE_RIGHT)
OR GET_GAME_TIMER() > iRollingStartTimer + 2500
//IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(vehPlayer)
IF IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_VEHICLE(vehPlayer)
VEHICLE_WAYPOINT_PLAYBACK_PAUSE(vehPlayer)
ENDIF
//STOP_PLAYBACK_RECORDED_VEHICLE(vehPlayer)
SET_ENTITY_INVINCIBLE(vehPlayer,FALSE)
SET_VEHICLE_CAN_BE_VISIBLY_DAMAGED(vehPlayer,TRUE)
CLEAR_PED_TASKS(PLAYER_PED_ID())
SET_PLAYER_CONTROL(PLAYER_ID(),TRUE)
//ENDIF
ENDIF
ENDIF
ENDIF
ENDPROC
/// PURPOSE: Mission setup
PROC Setup()
//INFORM_MISSION_STATS_OF_MISSION_START_JOSH_2()
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "<><> JOSH 2 STARTED <><>")
#ENDIF
IF IS_REPLAY_IN_PROGRESS() = TRUE
AND bDebugSkipping = FALSE
INT iReplayStage = GET_REPLAY_MID_MISSION_STAGE()
IF g_bShitskipAccepted = TRUE
iReplayStage++ // player is skipping this stage
ENDIF
IF iReplayStage = 0
SkipToStart() //SkipPastCS()
ELIF iReplayStage = 1
SkipPastCS()
ELIF iReplayStage = 2
SkipToChase()
ELIF iReplayStage = 3
SkipToEnd()
ELSE
SCRIPT_ASSERT("Replay in progress: Unknown checkpoint selected")
ENDIF
ELSE
LoadStuff()
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "JOSH2**** Init intro ****")
#ENDIF
eMissionStage = MS_INTRO
ENDIF
ENDPROC
/// PURPOSE: Initialise mission
PROC InitMission()
Init()
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "JOSH2**** Init go to Rockford Hills ****")
#ENDIF
SET_REPLAY_MID_MISSION_STAGE_WITH_NAME(1,"Go To Rockford")
eMissionStage = MS_GO_TO_ROCKFORD
ENDPROC
/// PURPOSE: Waits for the player to reach rockford hills
PROC GoToRockford()
IF NOT bPrintGoToRockford
REPLAY_RECORD_BACK_FOR_TIME(0.0, 10.0, REPLAY_IMPORTANCE_LOWEST)
PRINT_NOW("JOSH2_01",DEFAULT_GOD_TEXT_TIME,0) //Go to ~y~Rockford Hills.
bPrintGoToRockford = TRUE
ENDIF
IF GET_SCRIPT_TASK_STATUS(PLAYER_PED_ID(), SCRIPT_TASK_FOLLOW_NAV_MESH_TO_COORD) = PERFORMING_TASK
IF IS_CONTROL_PRESSED(PLAYER_CONTROL,INPUT_MOVE_LR)
OR IS_CONTROL_PRESSED(PLAYER_CONTROL,INPUT_MOVE_UD)
OR IS_CONTROL_PRESSED(PLAYER_CONTROL,INPUT_ENTER)
OR IS_CONTROL_PRESSED(PLAYER_CONTROL,INPUT_SPRINT)
OR IS_CONTROL_PRESSED(PLAYER_CONTROL,INPUT_JUMP)
OR (IS_PLAYER_IN_FIRST_PERSON_CAMERA() AND IS_CONTROL_PRESSED(PLAYER_CONTROL,INPUT_LOOK_LR))
OR (IS_PLAYER_IN_FIRST_PERSON_CAMERA() AND IS_CONTROL_PRESSED(PLAYER_CONTROL,INPUT_LOOK_UD))
OR (IS_PLAYER_IN_FIRST_PERSON_CAMERA() AND IS_CONTROL_PRESSED(PLAYER_CONTROL,INPUT_MOVE_UP_ONLY))
FORCE_PED_AI_AND_ANIMATION_UPDATE(PLAYER_PED_ID())
CLEAR_PED_TASKS(PLAYER_PED_ID())
ENDIF
ENDIF
IF IS_SYNCHRONIZED_SCENE_RUNNING(Josh2_Leadin_3)
IF GET_SYNCHRONIZED_SCENE_PHASE(Josh2_Leadin_3) > 0//0.15
IF bLoveYa = FALSE
IF CREATE_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_INT_LO",CONV_PRIORITY_MEDIUM,DO_NOT_DISPLAY_SUBTITLES) //I love ya
bLoveYa = TRUE
ENDIF
ENDIF
ENDIF
ENDIF
IF IS_PED_UNINJURED(sRCLauncherDataLocal.pedID[0])
SET_PED_RESET_FLAG(sRCLauncherDataLocal.pedID[0],PRF_ExpandPedCapsuleFromSkeleton,TRUE)
IF NOT IS_SYNCHRONIZED_SCENE_RUNNING(Josh2_Leadin_4)
IF NOT IS_SYNCHRONIZED_SCENE_RUNNING(Josh2_Leadin_3)
OR GET_SYNCHRONIZED_SCENE_PHASE(Josh2_Leadin_3) > 0.99
Josh2_Leadin_4 = CREATE_SYNCHRONIZED_SCENE(<<563.76, -1773.86, 28.36>>,<<0.02, 0.02, -110.70>>)
SET_SYNCHRONIZED_SCENE_LOOPED(Josh2_Leadin_4,TRUE)
TASK_SYNCHRONIZED_SCENE(sRCLauncherDataLocal.pedID[0], Josh2_Leadin_4, "rcmjosh2", "josh_sitting_loop", SLOW_BLEND_IN, -1, SYNCED_SCENE_USE_PHYSICS)
ENDIF
ENDIF
ENDIF
IF bJoshCleanedUp = FALSE
IF IS_ENTITY_IN_RANGE_COORDS(PLAYER_PED_ID(),vCometPos,2000.0)
SAFE_DELETE_PED(sRCLauncherDataLocal.pedID[0])
SET_MODEL_AS_NO_LONGER_NEEDED(ig_josh)
REMOVE_PED_FOR_DIALOGUE(s_conversation_peds, 5)
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 5, NULL, "JOSH")
bJoshCleanedUp = TRUE
ENDIF
ELSE
IF IS_ENTITY_IN_RANGE_COORDS(PLAYER_PED_ID(),vCometPos,300.0) //1000.0
IF bRockfordInit = FALSE
RequestRockfordAssets()
WaitForRockfordAssets()
InitAmbientHouses()
ENDIF
DO_JOGGER_PED()
ENDIF
ENDIF
IF bStartChase = TRUE
InitChase()
ENDIF
IF bRockfordInit // For B*2201679, make sure everything is spawned.
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-853.674500,-52.276905,31.257320>>, <<-918.126526,47.042919,121.331253>>, 75.000000)
OR IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-879.910889,56.844849,38.783661>>, <<-958.235535,59.315208,124.611870>>, 25.000000)
OR IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-859.330750,40.053410,29.865433>>, <<-937.509583,8.682496,123.805862>>, 68.250000)
OR IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-841.455811,-15.820283,54.401230>>, <<-859.777344,16.357359,39.161922>>, 24.500000)
SAFE_REMOVE_BLIP(blipRockfordHills)
IF bFindTheGreenCometMessagePrinted = FALSE
PRINT_NOW("JOSH2_07",DEFAULT_GOD_TEXT_TIME,0) //Find the green comet.
bFindTheGreenCometMessagePrinted = TRUE
ENDIF
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "JOSH2**** Init find the green comet ****")
#ENDIF
eMissionStage = MS_FIND_THE_GREEN_COMET
ENDIF
//If the player drives round the other side - skip
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-928.048584,-38.298660,33.437916>>, <<-959.601013,5.279084,62.931038>>, 36.250000)
bFindTheGreenCometMessagePrinted = TRUE
bCometReverse = TRUE
IF CAN_HELI_PILOT_SEE_PLAYER(pedAvery)
++iCounterReverseAverySeesPlayer
IF iCounterReverseAverySeesPlayer > 12
bStartChase = TRUE
InitChase()
ENDIF
ENDIF
ENDIF
ENDIF
/*
IF DOES_BLIP_EXIST(blipRockfordHills) //Displaying chevron
IF IS_ENTITY_AT_COORD(PLAYER_PED_ID(),<< -903.6451, 25.6888, 45.4577 >>,<<LOCATE_SIZE_ANY_MEANS,LOCATE_SIZE_ANY_MEANS,LOCATE_SIZE_HEIGHT>>,TRUE)
ENDIF
ENDIF
*/
ENDPROC
/// PURPOSE: Waits for the player to spot the yellow comet
PROC FindTheGreenComet()
DO_JOGGER_PED()
/*
WHILE(TRUE)
OpenGates()
DEBUG_Check_Debug_Keys()
DEBUG_Check_Skips()
WAIT(0)
ENDWHILE
*/
IF NOT DOES_BLIP_EXIST(blipAvery)
IF NOT IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-853.674500,-52.276905,31.257320>>, <<-918.126526,47.042919,121.331253>>, 75.000000)
AND NOT IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-879.910889,56.844849,38.783661>>, <<-958.235535,59.315208,124.611870>>, 25.000000)
AND NOT IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-859.330750,40.053410,29.865433>>, <<-937.509583,8.682496,123.805862>>, 68.250000)
AND NOT IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-841.455811,-15.820283,54.401230>>, <<-859.777344,16.357359,39.161922>>, 24.500000)
IF NOT DOES_BLIP_EXIST(blipRockfordHills)
blipRockfordHills = CREATE_COORD_BLIP(<< -903.6451, 25.6888, 45.4577 >>)
//SET_BLIP_ALPHA(blipRockfordHills,100)
//SET_BLIP_SCALE(blipRockfordHills,5)
SET_TAXI_DROPOFF_LOCATION_FOR_BLIP(blipRockfordHills,<<-821.0944, -2.6563, 39.9561>>, 31.8236)
ENDIF
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "JOSH2**** Init go to Rockford Hills ****")
#ENDIF
eMissionStage = MS_GO_TO_ROCKFORD
ENDIF
ENDIF
IF IS_VEHICLE_OK(vehAveryComet)
//Road
IF IS_PED_UNINJURED(pedViewerHusband)
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-895.741699,19.698891,67.248306>>, <<-905.281555,26.627926,41.107346>>, 9.000000)
AND IS_ENTITY_ON_SCREEN(vehAveryComet)
AND NOT IS_ENTITY_OCCLUDED(vehAveryComet)
IF GET_FOCUS_PED_ON_SCREEN(50,BONETAG_HEAD,0.8,0.8,0.5) = pedAvery
OR GET_FOCUS_PED_ON_SCREEN(50,BONETAG_HEAD,0.8,0.8,0.5) = pedViewerHusband
IF NOT IS_PED_IN_VEHICLE(pedAvery,vehAveryComet)
IF GET_SCRIPT_TASK_STATUS(pedAvery,SCRIPT_TASK_ENTER_VEHICLE) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(pedAvery,SCRIPT_TASK_ENTER_VEHICLE) <> WAITING_TO_START_TASK
TASK_ENTER_VEHICLE(pedAvery,vehAveryComet)
ENDIF
ENDIF
++iAverySpotted
IF iAverySpotted > 30
AND IS_PED_IN_VEHICLE(pedAvery,vehAveryComet,TRUE)
bStartChase = TRUE
ENDIF
ENDIF
ENDIF
ELSE
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-950.742249,23.491081,33.747551>>, <<-925.265259,-17.061129,87.121948>>, 16.000000)
OR IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-931.361755,-25.908237,34.825775>>, <<-946.292297,-5.137248,55.447624>>, 28.500000)
bCometReverse = TRUE
ENDIF
IF NOT IS_PED_IN_VEHICLE(pedAvery,vehAveryComet)
IF GET_SCRIPT_TASK_STATUS(pedAvery,SCRIPT_TASK_ENTER_VEHICLE) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(pedAvery,SCRIPT_TASK_ENTER_VEHICLE) <> WAITING_TO_START_TASK
TASK_ENTER_VEHICLE(pedAvery,vehAveryComet)
ENDIF
ENDIF
IF IS_PED_IN_VEHICLE(pedAvery,vehAveryComet,TRUE)
bStartChase = TRUE
ENDIF
ENDIF
//Normal driveway
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-914.341797,14.098543,51.176998>>, <<-907.522766,23.196795,41.124313>>, 25.000000)
//Reverse driveway
OR IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-928.825195,-8.227508,56.120975>>, <<-922.306458,-3.359912,39.814888>>, 11.250000)
//Reverse road
OR IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-928.048584,-38.298660,33.437916>>, <<-959.601013,5.279084,62.931038>>, 36.250000)
//Failsafe
OR IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-912.877197,1.544632,67.438065>>, <<-927.428772,20.621159,42.385647>>, 20.500000)
OR HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(vehAveryComet,PLAYER_PED_ID())
OR HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(pedAvery,PLAYER_PED_ID())
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-950.742249,23.491081,33.747551>>, <<-925.265259,-17.061129,87.121948>>, 16.000000)
OR IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-931.361755,-25.908237,34.825775>>, <<-946.292297,-5.137248,55.447624>>, 28.500000)
bCometReverse = TRUE
bStartChase = TRUE
ELSE
IF NOT IS_PED_IN_VEHICLE(pedAvery,vehAveryComet)
IF GET_SCRIPT_TASK_STATUS(pedAvery,SCRIPT_TASK_ENTER_VEHICLE) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(pedAvery,SCRIPT_TASK_ENTER_VEHICLE) <> WAITING_TO_START_TASK
TASK_ENTER_VEHICLE(pedAvery,vehAveryComet)
ENDIF
ENDIF
IF IS_PED_IN_VEHICLE(pedAvery,vehAveryComet,TRUE)
bStartChase = TRUE
ENDIF
ENDIF
ENDIF
IF bStartChase = TRUE
InitChase()
ENDIF
ELSE
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "JOSH2**** Init chase ****")
#ENDIF
REPLAY_RECORD_BACK_FOR_TIME(4.0, 10.0, REPLAY_IMPORTANCE_LOW)
eMissionStage = MS_CHASE_AVERY
ENDIF
ENDPROC
FUNC BOOL HAVE_TWO_TYRES_POPPED()
INT iTyresPopped = 0
IF IS_ENTITY_ALIVE(vehAveryComet)
IF IS_VEHICLE_TYRE_BURST(vehAveryComet,SC_WHEEL_CAR_FRONT_LEFT)
++iTyresPopped
ENDIF
IF IS_VEHICLE_TYRE_BURST(vehAveryComet,SC_WHEEL_CAR_FRONT_RIGHT)
++iTyresPopped
ENDIF
IF IS_VEHICLE_TYRE_BURST(vehAveryComet,SC_WHEEL_CAR_REAR_LEFT)
++iTyresPopped
ENDIF
IF IS_VEHICLE_TYRE_BURST(vehAveryComet,SC_WHEEL_CAR_REAR_RIGHT)
++iTyresPopped
ENDIF
ENDIF
IF iTyresPopped > 1
RETURN TRUE
ENDIF
RETURN FALSE
ENDFUNC
/// PURPOSE: Handle the chase
PROC ChaseAvery()
START_AUDIO_SCENE_CHASE()
SET_INSTANCE_PRIORITY_HINT(INSTANCE_HINT_DRIVING)
IF bWaypointPlaybackStopped = FALSE
SET_RANDOM_VEHICLE_DENSITY_MULTIPLIER_THIS_FRAME(0.6) //0.6
ENDIF
IF bJoshCleanedUp = FALSE
IF IS_ENTITY_IN_RANGE_COORDS(PLAYER_PED_ID(),vCometPos,2000.0)
SAFE_DELETE_PED(sRCLauncherDataLocal.pedID[0])
SET_MODEL_AS_NO_LONGER_NEEDED(ig_josh)
bJoshCleanedUp = TRUE
ENDIF
ENDIF
IF bRoadsOffAroundAvery = TRUE
STOP_AMBIENT_CARS_AROUND_PED(pedAvery)
ENDIF
/*
IF GET_PLAYER_WANTED_LEVEL(PLAYER_ID()) > 0
SET_ENTITY_ONLY_DAMAGED_BY_PLAYER(pedAvery,FALSE)
ENDIF
*/
IF DOES_ENTITY_EXIST(pedJogger)
SAFE_RELEASE_PED(pedJogger)
SET_MODEL_AS_NO_LONGER_NEEDED(A_F_Y_FITNESS_02)
ENDIF
IF DOES_ENTITY_EXIST(pedDog)
SAFE_RELEASE_PED(pedDog)
SET_MODEL_AS_NO_LONGER_NEEDED(A_C_RETRIEVER)
ENDIF
IF DOES_ENTITY_EXIST(pedBiker)
SAFE_RELEASE_PED(pedBiker)
SET_MODEL_AS_NO_LONGER_NEEDED(A_M_M_BevHills_01)
ENDIF
SAFE_RELEASE_VEHICLE(vehSuperd)
SAFE_RELEASE_VEHICLE(vehElegy)
SAFE_RELEASE_VEHICLE(vehGauntlet)
/*
IF STREAMVOL_IS_VALID(streamVolID)
IF STREAMVOL_HAS_LOADED(streamVolID)
STREAMVOL_DELETE(streamVolID)
ENDIF
ENDIF
*/
IF IS_REPLAY_IN_PROGRESS()
ManageRollingStart()
ENDIF
IF IS_PED_SITTING_IN_ANY_VEHICLE(PLAYER_PED_ID())
IF IS_VEHICLE_OK(vehAveryComet)
IF IS_PED_IN_VEHICLE(pedAvery,vehAveryComet)
CONTROL_VEHICLE_CHASE_HINT_CAM_ANY_MEANS(localChaseHintCamStruct, vehAveryComet)
ELSE
KILL_CHASE_HINT_CAM(localChaseHintCamStruct)
ENDIF
ELSE
KILL_CHASE_HINT_CAM(localChaseHintCamStruct)
ENDIF
ELSE
KILL_CHASE_HINT_CAM(localChaseHintCamStruct)
ENDIF
IF NOT bDontKillAveryHelp
//IF NOT IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("JOSH2_10")
IF NOT IS_HELP_MESSAGE_BEING_DISPLAYED()
//PRINT_HELP("JOSH2_10") //The mission will fail if Avery dies.
bDontKillAveryHelp = TRUE
ENDIF
//ENDIF
ENDIF
IF IS_VEHICLE_OK(vehAveryComet)
IF NOT IS_PED_SITTING_IN_VEHICLE(pedAvery,vehAveryComet)
OR IS_PED_BEING_JACKED(pedAvery)
bWaypointPlaybackStopped = TRUE
ENDIF
ENDIF
IF IS_PED_UNINJURED(pedAvery)
IF bOnFireHpSwitch = FALSE
AND IS_ENTITY_ON_FIRE(pedAvery)
IF GET_ENTITY_HEALTH(pedAvery) > 160
SET_ENTITY_HEALTH(pedAvery,160)
bOnFireHpSwitch = TRUE
ENDIF
ENDIF
IF NOT DOES_BLIP_EXIST(blipAvery)
IF GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(),pedAvery) < 100.0
IF IS_PED_IN_VEHICLE(pedAvery,vehAveryComet)
//IF IS_PED_UNINJURED(pedViewerHusband)
//ADD_PED_FOR_DIALOGUE(s_conversation_peds, 7, pedViewerHusband, "Josh2Viewer")
//PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_VIEW", "JOSH2_VIEW_1", CONV_PRIORITY_MEDIUM,DO_NOT_DISPLAY_SUBTITLES) //Hey! Where are you going?
//CREATE_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_VIEW",CONV_PRIORITY_MEDIUM,DO_NOT_DISPLAY_SUBTITLES)
//ENDIF
TASK_LOOK_AT_ENTITY(pedAvery,PLAYER_PED_ID(),-1)
TASK_LOOK_AT_ENTITY(PLAYER_PED_ID(),pedAvery,-1)
SET_PED_SUFFERS_CRITICAL_HITS(pedAvery,FALSE)
iTimerChaseStarted = GET_GAME_TIMER()
SAFE_REMOVE_BLIP(blipRockfordHills)
//PRINT_HELP("JOSH2_10") //The mission will fail if Avery dies.
PRINT_NOW("JOSH2_04",DEFAULT_GOD_TEXT_TIME,0) //Ram ~r~Avery's car~s~ off the road.
SET_REPLAY_MID_MISSION_STAGE_WITH_NAME(2,"Chase Avery",TRUE)
blipAvery = CREATE_PED_BLIP(pedAvery)
INFORM_MISSION_STATS_SYSTEM_OF_TIME_WINDOW_OPEN(JO2_STOPPED_IN_TIME)
//IF IS_PED_IN_ANY_VEHICLE(pedAvery)
SET_BLIP_SCALE(blipAvery,BLIP_SIZE_VEHICLE)
//ELSE
// SET_BLIP_SCALE(blipAvery,BLIP_SIZE_PED)
//ENDIF
SET_WANTED_LEVEL_MULTIPLIER(0.2)
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE_NATIVE(pedAvery,"JOSH2_BCAA","AVERY","SPEECH_PARAMS_STANDARD")
ENDIF
ENDIF
ELSE
UPDATE_CHASE_BLIP(blipAvery,pedAvery,280,0.7)
ENDIF
ENDIF
IF iRoadSwitch = 0
IF IS_PED_UNINJURED(pedViewerHusband)
IF GET_GAME_TIMER() > iTimerChaseStarted + 300
IF bDebugSkippedToBeatAvery = FALSE
TASK_PERFORM_SEQUENCE(pedViewerHusband,seqAngryHusband)
/*
IF bCometReverse = FALSE
TASK_ACHIEVE_HEADING(pedViewerHusband,167.031372)
ELSE
TASK_ACHIEVE_HEADING(pedViewerHusband,255.0)
ENDIF
*/
ENDIF
ADD_PED_FOR_DIALOGUE(s_conversation_peds, 7, pedViewerHusband, "Josh2Viewer")
iTimerRoadsOff = GET_GAME_TIMER()
iRoadSwitch = 1
ENDIF
ENDIF
ELIF iRoadSwitch = 1
IF IS_VEHICLE_OK(vehAveryComet)
//IF GET_VEHICLE_WAYPOINT_PROGRESS(vehAveryComet) > 94
IF IS_PED_UNINJURED(pedViewerHusband)
IF IS_ENTITY_PLAYING_ANIM(pedViewerHusband,"rcmjosh2","house_viewer_yelling")
IF bHouseViewerYelling = FALSE
IF CREATE_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_VIEW",CONV_PRIORITY_MEDIUM,DO_NOT_DISPLAY_SUBTITLES)
bHouseViewerYelling = TRUE
ENDIF
ENDIF
ELSE
IF bCometReverse
IF IS_HEADING_ACCEPTABLE(GET_ENTITY_HEADING(pedViewerHusband),255,40)
CLEAR_PED_TASKS(pedViewerHusband)
TASK_PLAY_ANIM(pedViewerHusband,"rcmjosh2","house_viewer_yelling",REALLY_SLOW_BLEND_IN,NORMAL_BLEND_OUT,-1)
ENDIF
ENDIF
ENDIF
IF bSwitchAnimFlags = FALSE
/*
FLOAT fPhase
IF bCometReverse = FALSE
//IF GET_ENTITY_HEADING(pedViewerHusband) > 165
IF GET_ENTITY_HEADING(pedViewerHusband) < 160
//IF GET_GAME_TIMER() > iTimerChaseStarted + 2200
IF IS_ENTITY_PLAYING_ANIM(pedViewerHusband,"rcmjosh2","house_viewer_yelling")
fPhase = GET_ENTITY_ANIM_CURRENT_TIME(pedViewerHusband,"rcmjosh2","house_viewer_yelling")
TASK_PLAY_ANIM(pedViewerHusband,"rcmjosh2","house_viewer_yelling")
SET_ANIM_PHASE(pedViewerHusband,fPhase)
bSwitchAnimFlags = TRUE
ENDIF
ENDIF
ELSE
IF GET_ENTITY_HEADING(pedViewerHusband) > 253
//AND GET_ENTITY_HEADING(pedViewerHusband) < 257
//IF GET_GAME_TIMER() > iTimerChaseStarted + 2200
IF IS_ENTITY_PLAYING_ANIM(pedViewerHusband,"rcmjosh2","house_viewer_yelling")
fPhase = GET_ENTITY_ANIM_CURRENT_TIME(pedViewerHusband,"rcmjosh2","house_viewer_yelling")
TASK_PLAY_ANIM(pedViewerHusband,"rcmjosh2","house_viewer_yelling")
SET_ANIM_PHASE(pedViewerHusband,fPhase)
bSwitchAnimFlags = TRUE
ENDIF
ENDIF
ENDIF
*/
ENDIF
ENDIF
IF GET_GAME_TIMER() > iTimerChaseStarted + 8000
SAFE_RELEASE_PED(pedViewerHusband)
ENDIF
IF GET_GAME_TIMER() > iTimerRoadsOff + 10000
iRoadSwitch = 2
ENDIF
ENDIF
ENDIF
IF DOES_BLIP_EXIST(blipAvery)
IF IS_PED_IN_ANY_VEHICLE(pedAvery)
SET_BLIP_SCALE(blipAvery,BLIP_SIZE_VEHICLE)
ELSE
SET_BLIP_SCALE(blipAvery,BLIP_SIZE_PED)
ENDIF
ENDIF
IF bAveryFleeingOnFoot
IF GET_GAME_TIMER() > iTimerAveryFleeOnFoot + 5000
SET_PED_MOVEMENT_CLIPSET(pedAvery,"MOVE_M@BAIL_BOND_NOT_TAZERED")
SET_PED_COMBAT_ATTRIBUTES(pedAvery,CA_ALWAYS_FLEE,TRUE)
SET_PED_KEEP_TASK(pedAvery, TRUE)
Script_Passed()
ENDIF
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF iAveryOhFuckLines < 3
IF iGunThreaten <> 5
IF CREATE_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_SHGUN", CONV_PRIORITY_MEDIUM)
++iAveryOhFuckLines
ENDIF
ELSE
//IF GET_GAME_TIMER() > iTimerAveryFleeOnFoot + 1000
IF CREATE_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_SHGUN", CONV_PRIORITY_MEDIUM)
++iAveryOhFuckLines
ENDIF
//ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
//IF IS_VEHICLE_OK(vehAveryComet)
IF bDebugSkippedToBeatAvery = FALSE
IF bAveryFleeingInVehicle = FALSE
IF IS_PED_UNINJURED(pedAvery)
IF bCometReverse = TRUE
IF GET_GAME_TIMER() > iTimerChaseStarted + 5000
bAveryFleeingInVehicle = TRUE
SET_ROADS_IN_ANGLED_AREA(<<-887.370972,-101.877480,34.387718>>, <<-989.135986,60.986832,58.366745>>, 31.500000,FALSE,TRUE)
ELSE
//IF NOT IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_VEHICLE(vehAveryComet)
// TASK_VEHICLE_FOLLOW_WAYPOINT_RECORDING(pedAvery,vehAveryComet,"Josh2_Comet11",DRIVINGMODE_AVOIDCARS_RECKLESS,1,EWAYPOINT_DEFAULT,30,-1)
//ENDIF
IF IS_PED_IN_VEHICLE(pedAvery,vehAveryComet)
IF NOT IS_PLAYBACK_GOING_ON_FOR_VEHICLE(vehAveryComet)
REPLAY_RECORD_BACK_FOR_TIME(4.0, 5.0)
START_PLAYBACK_RECORDED_VEHICLE(vehAveryComet, 102, "Josh2_A2")
ELSE
//ACTIVATE_PHYSICS(vehAveryComet)
ENDIF
ENDIF
ENDIF
ELSE
IF GET_GAME_TIMER() > iTimerChaseStarted + 5000
bAveryFleeingInVehicle = TRUE
SET_ROADS_IN_ANGLED_AREA(<<-887.370972,-101.877480,34.387718>>, <<-989.135986,60.986832,58.366745>>, 31.500000,FALSE,TRUE)
ELSE
//IF NOT IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_VEHICLE(vehAveryComet)
// TASK_VEHICLE_FOLLOW_WAYPOINT_RECORDING(pedAvery,vehAveryComet,"Josh2_Comet10",DRIVINGMODE_AVOIDCARS_RECKLESS,0,EWAYPOINT_START_FROM_CLOSEST_POINT,-1,-1)
//ENDIF
IF IS_PED_IN_VEHICLE(pedAvery,vehAveryComet)
IF NOT IS_PLAYBACK_GOING_ON_FOR_VEHICLE(vehAveryComet)
REPLAY_RECORD_BACK_FOR_TIME(4.0, 5.0)
START_PLAYBACK_RECORDED_VEHICLE(vehAveryComet, 101, "Josh2_A1")
ELSE
//ACTIVATE_PHYSICS(vehAveryComet)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF bAveryFleeingInVehicle = TRUE
IF bWaypointPlaybackStopped = FALSE
IF IS_PED_UNINJURED(pedAvery)
IF GET_GAME_TIMER() > iTimerChaseStarted + 10000
DO_TREVOR_CHASE_LINES()
ENDIF
IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(vehAveryComet)
STOP_PLAYBACK_RECORDED_VEHICLE(vehAveryComet)
ENDIF
IF IS_ENTITY_IN_ANGLED_AREA(pedAvery, <<-1716.821777,493.295959,125.739830>>, <<-1866.034668,483.705200,139.247787>>, 18.000000)
OR IS_ENTITY_IN_ANGLED_AREA(pedAvery, <<-1842.730591,472.350891,108.040329>>, <<-1904.855591,451.842285,138.281235>>, 43.500000)
IF GET_IS_WAYPOINT_RECORDING_LOADED("Josh2_Corner")
IF NOT IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_VEHICLE(vehAveryComet)
TASK_VEHICLE_FOLLOW_WAYPOINT_RECORDING(pedAvery,vehAveryComet,"Josh2_Corner",DRIVINGMODE_AVOIDCARS,0,EWAYPOINT_START_FROM_CLOSEST_POINT,-1,-1)
ENDIF
ENDIF
ELSE
IF GET_SCRIPT_TASK_STATUS(pedAvery,SCRIPT_TASK_VEHICLE_MISSION) <> PERFORMING_TASK
TASK_VEHICLE_MISSION_PED_TARGET(pedAvery,vehAveryComet,PLAYER_PED_ID(),MISSION_FLEE,34.0,DRIVINGMODE_AVOIDCARS,20.0,20.0) //100.0,30.0 //35.0
ENDIF
ENDIF
//SET_DRIVE_TASK_CRUISE_SPEED(pedAvery,fTopSpeed)
ENDIF
ENDIF
ENDIF
ELSE
IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(vehAveryComet)
STOP_PLAYBACK_RECORDED_VEHICLE(vehAveryComet)
IF IS_VEHICLE_OK(vehAveryComet)
SAFE_TELEPORT_ENTITY(vehAveryComet,<< -1083.1884, 266.0258, 63.0025 >>, 111.2559)
ENDIF
SAFE_TELEPORT_ENTITY(PLAYER_PED_ID(),<< -1081.5244, 254.3746, 62.9404 >>, 356.8038)
ENDIF
ENDIF
/*
IF bCometSmashed = TRUE
// IF GET_ENTITY_SPEED(vehAveryComet) < 4
SET_VEHICLE_REDUCE_GRIP(vehAveryComet,FALSE)
// ENDIF
ENDIF
*/
IF GET_ENTITY_SPEED(vehAveryComet) < 1.5
++iCometStuckCounter
IF iCometStuckCounter > 250
bWaypointPlaybackStopped = TRUE
INFORM_MISSION_STATS_SYSTEM_OF_TIME_WINDOW_CLOSED()
bCometSmashed = TRUE
bDoorFallenOff = TRUE
bCometGotStuck = TRUE
ENDIF
ELSE
IF GET_ENTITY_SPEED(vehAveryComet) > 12.0
iCometStuckCounter = 0
ENDIF
ENDIF
//PRINTINT(iCometStuckCounter)
//PRINTNL()
IF GET_ENTITY_HEALTH(vehAveryComet) < iCometInitHp - 300//370 //How much damage avery's car can take before he stops
OR GET_VEHICLE_ENGINE_HEALTH(vehAveryComet) < fCometEngineHp - 300//370.0
OR GET_VEHICLE_PETROL_TANK_HEALTH(vehAveryComet) < fCometPetrolHp - 300//370.0
OR NOT IS_VEHICLE_DRIVEABLE(vehAveryComet)
OR IS_ENTITY_UPSIDEDOWN(vehAveryComet)
OR HAVE_TWO_TYRES_POPPED()
//SET_VEHICLE_REDUCE_GRIP(vehAveryComet,TRUE)
bCometSmashed = TRUE
INFORM_MISSION_STATS_SYSTEM_OF_TIME_WINDOW_CLOSED()
bWaypointPlaybackStopped = TRUE
IF bDoorFallenOff = FALSE
//SET_VEHICLE_DOOR_BROKEN(vehAveryComet,SC_DOOR_FRONT_LEFT,FALSE)
bDoorFallenOff = TRUE
ENDIF
ENDIF
IF bCometSmashed = TRUE
IF NOT bCometGotStuck
SET_VEHICLE_ENGINE_HEALTH(vehAveryComet,101) //299
ENDIF
IF GET_IS_VEHICLE_ENGINE_RUNNING(vehAveryComet)
SET_VEHICLE_ENGINE_ON(vehAveryComet,FALSE,TRUE)
ENDIF
ENDIF
IF bWaypointPlaybackStopped = TRUE
IF GET_ENTITY_SPEED(vehAveryComet) < 14.0
IF bPrintBeatAvery = FALSE
//PRINT_NOW("JOSH2_15",DEFAULT_GOD_TEXT_TIME,0) //Beat up ~r~Avery.
IF IS_ENTITY_IN_RANGE_ENTITY(pedAvery,PLAYER_PED_ID(),40)
IF CREATE_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_CRASH",CONV_PRIORITY_MEDIUM,DO_NOT_DISPLAY_SUBTITLES) //Nooooooooooo!
/*
ACT_light_finish_move
ACT_light_low_finish_move
ACT_light_high_finish_move
ACT_heavy_finish_move
ACT_heavy_low_finish_move
ACT_heavy_high_finish_move
SET_PED_RESET_FLAG(PLAYER_PED_ID(),PRF_SuppressLethalMeleeActions,TRUE)
These from Action_Table.meta
*/
//SET_DISABLE_AMBIENT_MELEE_MOVE(PLAYER_ID(),TRUE)
/*
ACTION_MANAGER_ENABLE_ACTION(GET_HASH_KEY("ACT_takedown_a"), FALSE)
ACTION_MANAGER_ENABLE_ACTION(GET_HASH_KEY("ACT_takedown_b"), FALSE)
ACTION_MANAGER_ENABLE_ACTION(GET_HASH_KEY("ACT_takedown_rear"), FALSE)
ACTION_MANAGER_ENABLE_ACTION(GET_HASH_KEY("ACT_takedown_heavy"), FALSE)
ACTION_MANAGER_ENABLE_ACTION(GET_HASH_KEY("ACT_armed_takedown"), FALSE)
*/
REPLAY_RECORD_BACK_FOR_TIME(4.0, 10.0, REPLAY_IMPORTANCE_LOW)
PRINT_NOW("JOSH2_15",DEFAULT_GOD_TEXT_TIME,0)
bPrintBeatAvery = TRUE
ENDIF
ENDIF
ENDIF
ENDIF
SET_PED_INCREASED_AVOIDANCE_RADIUS(pedAvery)
IF IS_ENTITY_IN_RANGE_ENTITY(pedAvery,PLAYER_PED_ID(),50)
SET_RANDOM_VEHICLE_DENSITY_MULTIPLIER_THIS_FRAME(0)
ENDIF
IF bRoadsOffAroundAvery = FALSE
vNodeSwitch1 = GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(vehAveryComet,<<0,-70,0>>)
vNodeSwitch2 = GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(vehAveryComet,<<0,70,0>>)
SET_ROADS_IN_ANGLED_AREA(vNodeSwitch1,vNodeSwitch2,100,FALSE,FALSE)
bRoadsOffAroundAvery = TRUE
ENDIF
IF IS_PED_UNINJURED(pedAvery)
/*
IF iPleadConvo > 0
//IF IS_PED_RAGDOLL(pedAvery)
IF NOT IS_ENTITY_PLAYING_ANIM(pedAvery,"rcmjosh2ig_1","please_no_im")
AND NOT IS_ENTITY_PLAYING_ANIM(pedAvery,"rcmjosh2ig_1","you_cant")
AND NOT IS_ENTITY_PLAYING_ANIM(pedAvery,"rcmjosh2ig_1","what_do_you")
AND NOT IS_ENTITY_PLAYING_ANIM(pedAvery,"rcmjosh2ig_1","my_lawyer")
AND NOT IS_ENTITY_PLAYING_ANIM(pedAvery,"rcmjosh2ig_1","base")
TASK_TURN_PED_TO_FACE_ENTITY(pedAvery,PLAYER_PED_ID(),-1)
ENDIF
//ENDIF
ENDIF
*/
IF NOT IS_PED_IN_ANY_VEHICLE(pedAvery)
TEXT_LABEL_23 root = GET_CURRENTLY_PLAYING_STANDARD_CONVERSATION_ROOT()
IF NOT IS_STRING_NULL_OR_EMPTY(root)
IF ARE_STRINGS_EQUAL(root,"JOSH2_CRASH")
KILL_ANY_CONVERSATION()
ENDIF
ENDIF
SET_PED_SUFFERS_CRITICAL_HITS(pedAvery,TRUE)
SET_PED_RESET_FLAG(pedAvery,PRF_PreventAllMeleeTakedowns, TRUE) // must be called everyframe to prevent takedown and takedown failed
IF NOT IS_PED_HEADTRACKING_PED(pedAvery,PLAYER_PED_ID())
TASK_LOOK_AT_ENTITY(pedAvery,PLAYER_PED_ID(),-1,SLF_WHILE_NOT_IN_FOV)
ENDIF
IF GET_SCRIPT_TASK_STATUS(pedAvery,SCRIPT_TASK_TURN_PED_TO_FACE_ENTITY) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(pedAvery,SCRIPT_TASK_HANDS_UP) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(pedAvery,SCRIPT_TASK_REACT_AND_FLEE_PED) <> PERFORMING_TASK
AND NOT bAveryFleeingOnFoot
TASK_TURN_PED_TO_FACE_ENTITY(pedAvery,PLAYER_PED_ID(),-1)
ENDIF
VECTOR vAvery = GET_ENTITY_COORDS(pedAvery)
IF IS_BULLET_IN_AREA(vAvery,10,TRUE)
IF GET_SCRIPT_TASK_STATUS(pedAvery,SCRIPT_TASK_REACT_AND_FLEE_PED) <> PERFORMING_TASK
TEXT_LABEL_23 labeThreat = GET_CURRENTLY_PLAYING_STANDARD_CONVERSATION_LABEL()
IF NOT IS_STRING_NULL_OR_EMPTY(labeThreat)
IF NOT ARE_STRINGS_EQUAL(labeThreat,"JOSH2_OUTRO_5")
KILL_FACE_TO_FACE_CONVERSATION_DO_NOT_FINISH_LAST_LINE()
ELSE
KILL_FACE_TO_FACE_CONVERSATION()
ENDIF
ENDIF
SET_PED_MOVEMENT_CLIPSET(pedAvery,"MOVE_M@BAIL_BOND_NOT_TAZERED")
TASK_REACT_AND_FLEE_PED(pedAvery,PLAYER_PED_ID())
iTimerAveryFleeOnFoot = GET_GAME_TIMER()
bAveryFleeingOnFoot = TRUE
ENDIF
ENDIF
/*
IF bPrintBeatAvery = FALSE
//PRINT_NOW("JOSH2_15",DEFAULT_GOD_TEXT_TIME,0) //Beat up ~r~Avery.
INFORM_MISSION_STATS_SYSTEM_OF_TIME_WINDOW_CLOSED()
bPrintBeatAvery = TRUE
ENDIF
*/
/*
//IF GET_SCRIPT_TASK_STATUS(pedAvery,SCRIPT_TASK_LEAVE_ANY_VEHICLE) <> PERFORMING_TASK
IF GET_SCRIPT_TASK_STATUS(pedAvery,SCRIPT_TASK_TURN_PED_TO_FACE_ENTITY) <> PERFORMING_TASK
IF NOT IS_PED_FACING_PED(pedAvery,PLAYER_PED_ID(),45)
//SET_ENTITY_COLLISION(pedAvery,TRUE)
TASK_LOOK_AT_ENTITY(pedAvery,PLAYER_PED_ID(),-1)
IF iPleadConvo = 0
AND GET_SCRIPT_TASK_STATUS(pedAvery,SCRIPT_TASK_PERFORM_SEQUENCE) <> PERFORMING_TASK
//AND NOT IS_ENTITY_PLAYING_ANIM(pedAvery,"rcmjosh2","hands_up_anxious_scientist")
//AND NOT IS_ENTITY_PLAYING_ANIM(pedAvery,"rcmjosh2","hands_up_shocked_scientist")
TASK_TURN_PED_TO_FACE_ENTITY(pedAvery,PLAYER_PED_ID(),-1)
ENDIF
ENDIF
ENDIF
*/
//IF NOT IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
//IF IS_ENTITY_IN_RANGE_ENTITY(pedAvery,PLAYER_PED_ID(),8.0)
IF NOT IS_PED_RAGDOLL(pedAvery)
IF NOT IS_PED_GETTING_UP(pedAvery)
IF IS_PED_FACING_PED(pedAvery,PLAYER_PED_ID(),45)
IF iPleadConvo = 0
//IF NOT IS_ENTITY_PLAYING_ANIM(pedAvery,"rcmjosh2ig_1","hands_up_anxious_scientist")
// TASK_PLAY_ANIM(pedAvery,"rcmjosh2ig_1","hands_up_anxious_scientist",REALLY_SLOW_BLEND_IN,SLOW_BLEND_OUT,-1,AF_LOOPING)
//ENDIF
/*
IF GET_SCRIPT_TASK_STATUS(pedAvery,SCRIPT_TASK_PERFORM_SEQUENCE) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(pedAvery,SCRIPT_TASK_PERFORM_SEQUENCE) <> WAITING_TO_START_TASK
OPEN_SEQUENCE_TASK(seqAveryCower)
TASK_PLAY_ANIM(NULL,"rcmjosh2ig_1","idle_intro",1,SLOW_BLEND_OUT,-1)
TASK_PLAY_ANIM(NULL,"rcmjosh2ig_1","base",SLOW_BLEND_OUT,SLOW_BLEND_OUT,-1,AF_LOOPING)
CLOSE_SEQUENCE_TASK(seqAveryCower)
TASK_PERFORM_SEQUENCE(pedAvery,seqAveryCower)
CLEAR_SEQUENCE_TASK(seqAveryCower)
ENDIF
*/
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
//AND NOT IS_ENTITY_PLAYING_ANIM(pedAvery,"rcmjosh2ig_1","idle_intro")
//IF NOT IS_THIS_PRINT_BEING_DISPLAYED("JOSH2_15") //No! Don't hurt me! Please...
IF IS_ENTITY_IN_RANGE_ENTITY(pedAvery,PLAYER_PED_ID(),8.0)
AND NOT IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
IF CREATE_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_THREAT", CONV_PRIORITY_MEDIUM)
//IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_THREAT", "JOSH2_THREAT_1", CONV_PRIORITY_MEDIUM)
IF iAveryTookMeleeHit = 0
//TASK_PLAY_ANIM(pedAvery,"rcmjosh2","easy_now",SLOW_BLEND_IN,SLOW_BLEND_OUT,-1,AF_SECONDARY | AF_UPPERBODY)
//TASK_PLAY_ANIM(pedAvery,"rcmjosh2","hands_up_anxious_scientist",REALLY_SLOW_BLEND_IN,SLOW_BLEND_OUT,-1,AF_LOOPING)
/*
OPEN_SEQUENCE_TASK(seqAveryCower)
TASK_PLAY_ANIM(NULL,"rcmjosh2ig_1","idle_intro",2,SLOW_BLEND_OUT,-1,AF_EXIT_AFTER_INTERRUPTED | AF_ACTIVATE_RAGDOLL_ON_COLLISION)
TASK_PLAY_ANIM(NULL,"rcmjosh2ig_1","what_do_you",SLOW_BLEND_IN,SLOW_BLEND_OUT,-1,AF_EXIT_AFTER_INTERRUPTED | AF_ACTIVATE_RAGDOLL_ON_COLLISION)
TASK_PLAY_ANIM(NULL,"rcmjosh2ig_1","base",SLOW_BLEND_IN,SLOW_BLEND_OUT,-1,AF_EXIT_AFTER_INTERRUPTED | AF_ACTIVATE_RAGDOLL_ON_COLLISION)
TASK_PLAY_ANIM(NULL,"rcmjosh2ig_1","my_lawyer",SLOW_BLEND_IN,SLOW_BLEND_OUT,-1,AF_EXIT_AFTER_INTERRUPTED | AF_ACTIVATE_RAGDOLL_ON_COLLISION)
TASK_PLAY_ANIM(NULL,"rcmjosh2ig_1","base",SLOW_BLEND_IN,SLOW_BLEND_OUT,-1,AF_EXIT_AFTER_INTERRUPTED | AF_ACTIVATE_RAGDOLL_ON_COLLISION)
//TASK_PLAY_ANIM(NULL,"rcmjosh2ig_1","please_no_im",SLOW_BLEND_OUT,SLOW_BLEND_OUT,-1)
//TASK_PLAY_ANIM(NULL,"rcmjosh2ig_1","base",SLOW_BLEND_OUT,SLOW_BLEND_OUT,-1)
//TASK_PLAY_ANIM(NULL,"rcmjosh2ig_1","you_cant",SLOW_BLEND_OUT,SLOW_BLEND_OUT,-1)
TASK_PLAY_ANIM(NULL,"rcmjosh2ig_1","base",SLOW_BLEND_IN,SLOW_BLEND_OUT,-1,AF_LOOPING | AF_EXIT_AFTER_INTERRUPTED | AF_ACTIVATE_RAGDOLL_ON_COLLISION)
CLOSE_SEQUENCE_TASK(seqAveryCower)
TASK_PERFORM_SEQUENCE(pedAvery,seqAveryCower)
CLEAR_SEQUENCE_TASK(seqAveryCower)
*/
ENDIF
iPleadConvo = 1
ENDIF
ENDIF
/*
ELSE
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_THREAT", "JOSH2_THREAT_1", CONV_PRIORITY_MEDIUM,DO_NOT_DISPLAY_SUBTITLES)
IF iAveryTookMeleeHit = 0
TASK_PLAY_ANIM(pedAvery,"rcmjosh2","easy_now",SLOW_BLEND_IN,SLOW_BLEND_OUT,-1,AF_SECONDARY | AF_UPPERBODY)
ENDIF
iPleadConvo = 1
ENDIF
ENDIF
*/
ENDIF
ELIF iPleadConvo = 1
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
//IF NOT IS_THIS_PRINT_BEING_DISPLAYED("JOSH2_15") //I'll pay you whatever Josh is paying you!
//IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_THREAT", "JOSH2_THREAT_2", CONV_PRIORITY_MEDIUM)
//IF iAveryTookMeleeHit = 0
//TASK_PLAY_ANIM(pedAvery,"rcmjosh2","enough",SLOW_BLEND_IN,SLOW_BLEND_OUT,-1,AF_SECONDARY | AF_UPPERBODY)
//ENDIF
iPleadConvo = 2
//ENDIF
/*
ELSE
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_THREAT", "JOSH2_THREAT_2", CONV_PRIORITY_MEDIUM,DO_NOT_DISPLAY_SUBTITLES)
IF iAveryTookMeleeHit = 0
TASK_PLAY_ANIM(pedAvery,"rcmjosh2","enough",SLOW_BLEND_IN,SLOW_BLEND_OUT,-1,AF_SECONDARY | AF_UPPERBODY)
ENDIF
iPleadConvo = 2
ENDIF
ENDIF
*/
ENDIF
ELIF iPleadConvo = 2
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
//IF NOT IS_THIS_PRINT_BEING_DISPLAYED("JOSH2_15") //Bouncie Bouncie?
//IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_THREAT", "JOSH2_THREAT_3", CONV_PRIORITY_MEDIUM)
iPleadConvo = 3
//ENDIF
/*
ELSE
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_THREAT", "JOSH2_THREAT_3", CONV_PRIORITY_MEDIUM,DO_NOT_DISPLAY_SUBTITLES)
iPleadConvo = 3
ENDIF
ENDIF
*/
ENDIF
ELIF iPleadConvo = 3
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
//IF NOT IS_THIS_PRINT_BEING_DISPLAYED("JOSH2_15") //What?
//IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_THREAT", "JOSH2_THREAT_4", CONV_PRIORITY_MEDIUM)
//IF iAveryTookMeleeHit = 0
//TASK_PLAY_ANIM(pedAvery,"rcmjosh2","what",SLOW_BLEND_IN,SLOW_BLEND_OUT,-1,AF_SECONDARY | AF_UPPERBODY)
//ENDIF
iPleadConvo = 4
//ENDIF
/*
ELSE
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_THREAT", "JOSH2_THREAT_4", CONV_PRIORITY_MEDIUM,DO_NOT_DISPLAY_SUBTITLES)
IF iAveryTookMeleeHit = 0
TASK_PLAY_ANIM(pedAvery,"rcmjosh2","what",SLOW_BLEND_IN,SLOW_BLEND_OUT,-1,AF_SECONDARY | AF_UPPERBODY)
ENDIF
iPleadConvo = 4
ENDIF
ENDIF
*/
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
//ENDIF
//ENDIF
IF IS_PLAYER_TARGETTING_ENTITY(PLAYER_ID(),pedAvery)
OR IS_PLAYER_FREE_AIMING_AT_ENTITY(PLAYER_ID(),pedAvery)
OR bTrevThreatenedAvery
IF NOT IS_PED_RAGDOLL(pedAvery)
IF GET_ENTITY_SPEED(pedAvery) < 0.1
IF GET_WEAPONTYPE_GROUP(GET_SELECTED_PED_WEAPON(PLAYER_PED_ID())) = WEAPONGROUP_PISTOL
OR GET_WEAPONTYPE_GROUP(GET_SELECTED_PED_WEAPON(PLAYER_PED_ID())) = WEAPONGROUP_MG
OR GET_WEAPONTYPE_GROUP(GET_SELECTED_PED_WEAPON(PLAYER_PED_ID())) = WEAPONGROUP_SMG
OR GET_WEAPONTYPE_GROUP(GET_SELECTED_PED_WEAPON(PLAYER_PED_ID())) = WEAPONGROUP_SNIPER
OR GET_WEAPONTYPE_GROUP(GET_SELECTED_PED_WEAPON(PLAYER_PED_ID())) = WEAPONGROUP_RIFLE
OR GET_WEAPONTYPE_GROUP(GET_SELECTED_PED_WEAPON(PLAYER_PED_ID())) = WEAPONGROUP_STUNGUN
OR GET_WEAPONTYPE_GROUP(GET_SELECTED_PED_WEAPON(PLAYER_PED_ID())) = WEAPONGROUP_SHOTGUN
OR GET_WEAPONTYPE_GROUP(GET_SELECTED_PED_WEAPON(PLAYER_PED_ID())) = WEAPONGROUP_HEAVY
OR bTrevThreatenedAvery
//IF NOT IS_PED_RAGDOLL(pedAvery)
bTrevThreatenedAvery = TRUE
TEXT_LABEL_23 rootThreat = GET_CURRENTLY_PLAYING_STANDARD_CONVERSATION_ROOT()
IF NOT IS_STRING_NULL_OR_EMPTY(rootThreat)
IF ARE_STRINGS_EQUAL(rootThreat,"JOSH2_THREAT")
KILL_ANY_CONVERSATION()
ENDIF
ENDIF
IF NOT bTrevThreat
IF CREATE_CONVERSATION_FROM_SPECIFIC_LINE(s_conversation_peds, "JOSH2AU", "JOSH2_OUTRO" ,"JOSH2_OUTRO_5", CONV_PRIORITY_MEDIUM)
iGunThreaten = 4
bTrevThreat = TRUE
ENDIF
ENDIF
++iAveryGunThreat
iTimerGunReact = iTimerGunReact
//IF NOT IS_ENTITY_PLAYING_ANIM(pedAvery,"rcmjosh2ig_1","please_no_im")
//AND NOT IS_ENTITY_PLAYING_ANIM(pedAvery,"rcmjosh2ig_1","you_cant")
//AND NOT IS_ENTITY_PLAYING_ANIM(pedAvery,"rcmjosh2ig_1","what_do_you")
//AND NOT IS_ENTITY_PLAYING_ANIM(pedAvery,"rcmjosh2ig_1","my_lawyer")
/*
SEQUENCE_INDEX seqGunThreat
OPEN_SEQUENCE_TASK(seqGunThreat)
IF GET_RANDOM_INT_IN_RANGE(0,2) = 0
TASK_PLAY_ANIM(NULL,"rcmjosh2ig_1","please_no_im",SLOW_BLEND_IN,SLOW_BLEND_OUT,-1,AF_EXIT_AFTER_INTERRUPTED | AF_ACTIVATE_RAGDOLL_ON_COLLISION)
ELSE
TASK_PLAY_ANIM(NULL,"rcmjosh2ig_1","you_cant",SLOW_BLEND_IN,SLOW_BLEND_OUT,-1,AF_EXIT_AFTER_INTERRUPTED | AF_ACTIVATE_RAGDOLL_ON_COLLISION)
ENDIF
TASK_PLAY_ANIM(NULL,"rcmjosh2ig_1","base",SLOW_BLEND_IN,SLOW_BLEND_OUT,-1,AF_LOOPING | AF_EXIT_AFTER_INTERRUPTED | AF_ACTIVATE_RAGDOLL_ON_COLLISION)
//TASK_PLAY_ANIM(NULL,"rcmjosh2ig_1","you_cant",SLOW_BLEND_OUT,SLOW_BLEND_OUT,-1)
//TASK_PLAY_ANIM(NULL,"rcmjosh2","hands_up_shocked_scientist",SLOW_BLEND_IN,SLOW_BLEND_OUT,-1,AF_EXIT_AFTER_INTERRUPTED)
//TASK_PLAY_ANIM(NULL,"rcmjosh2","hands_up_anxious_scientist",SLOW_BLEND_IN,SLOW_BLEND_OUT,-1,AF_LOOPING | AF_EXIT_AFTER_INTERRUPTED)
CLOSE_SEQUENCE_TASK(seqGunThreat)
TASK_PERFORM_SEQUENCE(pedAvery,seqGunThreat)
CLEAR_SEQUENCE_TASK(seqGunThreat)
*/
//iTimerGunReact = GET_GAME_TIMER()
//ENDIF
//ENDIF
IF iGunThreaten = 0
IF iPleadConvo <> 0
KILL_FACE_TO_FACE_CONVERSATION()
iGunThreaten = 1
ENDIF
ELIF iGunThreaten = 1
//IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
//IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_TARG", "JOSH2_GUN_2", CONV_PRIORITY_MEDIUM)
//IF CREATE_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_GUN", CONV_PRIORITY_MEDIUM)
// iGunThreaten = 3
//ENDIF
//ENDIF
IF iAveryGunThreat >= 10
IF GET_SCRIPT_TASK_STATUS(pedAvery,SCRIPT_TASK_HANDS_UP) <> PERFORMING_TASK
SET_PED_MOVEMENT_CLIPSET(pedAvery,"MOVE_M@BAIL_BOND_NOT_TAZERED")
TASK_HANDS_UP(pedAvery,-1,PLAYER_PED_ID(),-1,HANDS_UP_NOTHING)
ENDIF
iGunThreaten = 3
ENDIF
/*
ELIF iGunThreaten = 2
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
//IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_TARG", "JOSH2_GUN_2", CONV_PRIORITY_MEDIUM)
IF CREATE_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_GUN", CONV_PRIORITY_MEDIUM)
iGunThreaten = 3
ENDIF
ENDIF
*/
ELIF iGunThreaten = 3
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
//IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_TARG", "JOSH2_GUN_2", CONV_PRIORITY_MEDIUM)
//IF CREATE_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_GUN", CONV_PRIORITY_MEDIUM)
IF NOT bTrevThreat
IF CREATE_CONVERSATION_FROM_SPECIFIC_LINE(s_conversation_peds, "JOSH2AU", "JOSH2_OUTRO" ,"JOSH2_OUTRO_5", CONV_PRIORITY_MEDIUM)
iGunThreaten = 4
bTrevThreat = TRUE
ENDIF
ENDIF
ENDIF
ELIF iGunThreaten = 4
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF GET_SCRIPT_TASK_STATUS(pedAvery,SCRIPT_TASK_REACT_AND_FLEE_PED) <> PERFORMING_TASK
SET_PED_MOVEMENT_CLIPSET(pedAvery,"MOVE_M@BAIL_BOND_NOT_TAZERED")
TASK_REACT_AND_FLEE_PED(pedAvery,PLAYER_PED_ID())
iTimerAveryFleeOnFoot = GET_GAME_TIMER()
bAveryFleeingOnFoot = TRUE
ENDIF
iGunThreaten = 5
ENDIF
ENDIF
//ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
IF NOT IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
IF IS_ENTITY_IN_RANGE_ENTITY(pedAvery,PLAYER_PED_ID(),8.0)
SET_PED_MOVEMENT_CLIPSET(pedAvery,"MOVE_M@BAIL_BOND_NOT_TAZERED")
SET_PED_COMBAT_ATTRIBUTES(pedAvery, CA_USE_VEHICLE, FALSE)
CLEAR_PED_LAST_WEAPON_DAMAGE(pedAvery)
CLEAR_ENTITY_LAST_DAMAGE_ENTITY(pedAvery)
IF GET_SCRIPT_TASK_STATUS(pedAvery,SCRIPT_TASK_LEAVE_ANY_VEHICLE) <> PERFORMING_TASK
TASK_LEAVE_ANY_VEHICLE(pedAvery,0,ECF_DONT_CLOSE_DOOR)
ENDIF
TEXT_LABEL_23 root = GET_CURRENTLY_PLAYING_STANDARD_CONVERSATION_ROOT()
TEXT_LABEL_23 label = GET_CURRENTLY_PLAYING_STANDARD_CONVERSATION_ROOT()
IF NOT IS_STRING_NULL_OR_EMPTY(root)
AND NOT IS_STRING_NULL_OR_EMPTY(label)
IF ARE_STRINGS_EQUAL(root,"JOSH2_CRASH")
AND ARE_STRINGS_EQUAL(label,"JOSH2_CRASH_3")
KILL_ANY_CONVERSATION()
ENDIF
ENDIF
ENDIF
ENDIF
IF bPrintBeatAvery = TRUE
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
SET_PED_MOVEMENT_CLIPSET(pedAvery,"MOVE_M@BAIL_BOND_NOT_TAZERED")
SET_PED_COMBAT_ATTRIBUTES(pedAvery, CA_USE_VEHICLE, FALSE)
CLEAR_PED_LAST_WEAPON_DAMAGE(pedAvery)
CLEAR_ENTITY_LAST_DAMAGE_ENTITY(pedAvery)
IF GET_SCRIPT_TASK_STATUS(pedAvery,SCRIPT_TASK_LEAVE_ANY_VEHICLE) <> PERFORMING_TASK
TASK_LEAVE_ANY_VEHICLE(pedAvery,0,ECF_DONT_CLOSE_DOOR)
ENDIF
TEXT_LABEL_23 root = GET_CURRENTLY_PLAYING_STANDARD_CONVERSATION_ROOT()
TEXT_LABEL_23 label = GET_CURRENTLY_PLAYING_STANDARD_CONVERSATION_ROOT()
IF NOT IS_STRING_NULL_OR_EMPTY(root)
AND NOT IS_STRING_NULL_OR_EMPTY(label)
IF ARE_STRINGS_EQUAL(root,"JOSH2_CRASH")
AND ARE_STRINGS_EQUAL(label,"JOSH2_CRASH_3")
KILL_ANY_CONVERSATION()
ENDIF
ENDIF
ENDIF
ENDIF
bWaypointPlaybackStopped = TRUE
ENDIF
ENDIF
ENDIF
//ENDIF
IF NOT IS_PED_IN_ANY_VEHICLE(pedAvery)
IF GET_DISTANCE_BETWEEN_PEDS(PLAYER_PED_ID(),pedAvery) < 15.0
IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(pedAvery,PLAYER_PED_ID())
CPRINTLN(DEBUG_MISSION, "!!!!!!!!AVERY DAMAGED BY PLAYER!!!!!!!!")
IF GET_WEAPONTYPE_GROUP(GET_SELECTED_PED_WEAPON(PLAYER_PED_ID())) = WEAPONGROUP_MELEE
++iAveryTookMeleeHit
IF iAveryTookMeleeHit > iPunchesAveryCanTake
AND NOT HAS_ENTITY_BEEN_DAMAGED_BY_WEAPON(pedAvery,WEAPONTYPE_UNARMED)
INFORM_STAT_SYSTEM_OF_BOOL_STAT_HAPPENED(JO2_JOSH_MELEED)
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "STATS <><> PULVERISER <><> STATS")
#ENDIF
ENDIF
ELSE
iAveryTookMeleeHit = 5 //Player ran over or shot avery (or used stun gun or something) just make avery give up
ENDIF
CLEAR_PED_LAST_WEAPON_DAMAGE(pedAvery)
CLEAR_ENTITY_LAST_DAMAGE_ENTITY(pedAvery)
ENDIF
ENDIF
ENDIF
//IF NOT bAveryFleeingOnFoot
//OR IS_PED_BEING_STUNNED(pedAvery)
IF IS_PED_FLEEING(pedAvery)
++iAveryFlee
ENDIF
IF iAveryFlee <= 4
IF iAveryTookMeleeHit > iPunchesAveryCanTake
AND NOT IS_PED_INJURED(pedAvery)
AND NOT IS_ENTITY_ON_FIRE(pedAvery)
iTimerAveryKO = GET_GAME_TIMER()
IF DOES_BLIP_EXIST(blipAvery)
SET_BLIP_SCALE(blipAvery,0.7)
ENDIF
IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
bPlayerRanAveryOver = TRUE
ENDIF
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "JOSH2**** Init go to Avery ****")
#ENDIF
TEXT_LABEL_23 root = GET_CURRENTLY_PLAYING_STANDARD_CONVERSATION_ROOT()
TEXT_LABEL_23 label = GET_CURRENTLY_PLAYING_STANDARD_CONVERSATION_ROOT()
IF NOT IS_STRING_NULL_OR_EMPTY(root)
AND NOT IS_STRING_NULL_OR_EMPTY(label)
IF ARE_STRINGS_EQUAL(root,"JOSH2_THREAT")
IF ARE_STRINGS_EQUAL(label,"JOSH2_THREAT_3")
KILL_FACE_TO_FACE_CONVERSATION()
ELSE
KILL_FACE_TO_FACE_CONVERSATION_DO_NOT_FINISH_LAST_LINE()
ENDIF
ENDIF
IF ARE_STRINGS_EQUAL(root,"JOSH2_CRASH")
IF ARE_STRINGS_EQUAL(label,"JOSH2_CRASH_2")
OR ARE_STRINGS_EQUAL(label,"JOSH2_CRASH_4")
KILL_FACE_TO_FACE_CONVERSATION()
ELSE
KILL_FACE_TO_FACE_CONVERSATION_DO_NOT_FINISH_LAST_LINE()
ENDIF
ENDIF
IF ARE_STRINGS_EQUAL(root,"JOSH2_GUN")
KILL_FACE_TO_FACE_CONVERSATION_DO_NOT_FINISH_LAST_LINE()
ENDIF
ENDIF
CLEAR_PED_TASKS(pedAvery)
eMissionStage = MS_GO_TO_AVERY
ENDIF
ENDIF
Rubberband()
ENDPROC
/// PURPOSE: Knocking Avery out
PROC GoToAvery()
IF IS_PED_UNINJURED(pedAvery)
IF GET_SCRIPT_TASK_STATUS(pedAvery,SCRIPT_TASK_REACT_AND_FLEE_PED) = PERFORMING_TASK
OR GET_SCRIPT_TASK_STATUS(pedAvery,SCRIPT_TASK_REACT_AND_FLEE_PED) = WAITING_TO_START_TASK
CLEAR_PED_TASKS(pedAvery)
ENDIF
STOP_AMBIENT_CARS_AROUND_PED(pedAvery)
IF IS_ENTITY_IN_RANGE_ENTITY(pedAvery,PLAYER_PED_ID(),50)
SET_RANDOM_VEHICLE_DENSITY_MULTIPLIER_THIS_FRAME(0)
ENDIF
SET_PED_RESET_FLAG(pedAvery,PRF_PreventAllMeleeTakedowns, TRUE) // must be called everyframe to prevent takedown and takedown failed
IF NOT IS_PED_RAGDOLL(pedAvery)
/*
SET_PED_MOVEMENT_CLIPSET(pedAvery,"MOVE_M@BAIL_BOND_NOT_TAZERED")
vAvery = GET_ENTITY_COORDS(pedAvery)
CLEAR_PED_TASKS_IMMEDIATELY(pedAvery)
TASK_LOOK_AT_ENTITY(pedAvery,PLAYER_PED_ID(),-1)
TASK_LOOK_AT_ENTITY(PLAYER_PED_ID(),pedAvery,-1)
SET_PED_KEEP_TASK(pedAvery,TRUE)
IF GET_SCRIPT_TASK_STATUS(pedAvery,SCRIPT_TASK_FOLLOW_NAV_MESH_TO_COORD) <> PERFORMING_TASK
//GET_NTH_CLOSEST_VEHICLE_NODE(GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(pedAvery,<<-20.0,0.0,0.0>>),129,vSafeCoord)
//TASK_FOLLOW_NAV_MESH_TO_COORD(pedAvery,vSafeCoord,PEDMOVEBLENDRATIO_WALK,DEFAULT_TIME_NEVER_WARP,2.0,ENAV_GO_FAR_AS_POSSIBLE_IF_TARGET_NAVMESH_NOT_LOADED)
TASK_WANDER_STANDARD(pedAvery)
ENDIF
SET_PED_COMBAT_ATTRIBUTES(pedAvery,CA_ALWAYS_FLEE,TRUE)
*/
IF bPlayerRanAveryOver = TRUE
ENDIF
//IF bPlayerRanAveryOver = TRUE
//SET_PED_TO_RAGDOLL(pedAvery,2000,2000,TASK_RELAX)
//ELSE
//SET_PED_TO_RAGDOLL_WITH_FALL(pedAvery,2000,2000,TYPE_OVER_WALL,GET_ENTITY_FORWARD_VECTOR(PLAYER_PED_ID()),vAvery.z,<<0,0,0>>,<<0,0,0>>)
/*
SET_PED_TO_RAGDOLL(pedAvery,1500,4000,TASK_NM_SCRIPT)
CREATE_NM_MESSAGE(NM_START_START,NM_INJURED_ON_GROUND_MSG)
GIVE_PED_NM_MESSAGE(pedAvery)
*/
//ENDIF
ENDIF
IF GET_DISTANCE_BETWEEN_PEDS(PLAYER_PED_ID(),pedAvery) < 8.0
iTimerAveryKO = GET_GAME_TIMER()
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "JOSH2**** Init Avery KO ****")
#ENDIF
eMissionStage = MS_AVERY_KO
ENDIF
ENDIF
ENDPROC
/// PURPOSE: Avery plays shellshock anim then gets up and staggers off
PROC AveryKo()
//INT iShockAvery
IF IS_PED_UNINJURED(pedAvery)
VECTOR vAvery = GET_ENTITY_COORDS(pedAvery)
IF IS_BULLET_IN_AREA(vAvery,10,TRUE)
IF GET_SCRIPT_TASK_STATUS(pedAvery,SCRIPT_TASK_REACT_AND_FLEE_PED) <> PERFORMING_TASK
TEXT_LABEL_23 labeThreat = GET_CURRENTLY_PLAYING_STANDARD_CONVERSATION_LABEL()
IF NOT IS_STRING_NULL_OR_EMPTY(labeThreat)
IF NOT ARE_STRINGS_EQUAL(labeThreat,"JOSH2_OUTRO_1")
AND NOT ARE_STRINGS_EQUAL(labeThreat,"JOSH2_OUTRO_5")
KILL_FACE_TO_FACE_CONVERSATION_DO_NOT_FINISH_LAST_LINE()
ELSE
KILL_FACE_TO_FACE_CONVERSATION()
ENDIF
ENDIF
SET_PED_MOVEMENT_CLIPSET(pedAvery,"MOVE_M@BAIL_BOND_NOT_TAZERED")
TASK_REACT_AND_FLEE_PED(pedAvery,PLAYER_PED_ID())
iTimerAveryFleeOnFoot = GET_GAME_TIMER()
bAveryFleeingOnFoot = TRUE
ENDIF
ENDIF
ENDIF
IF bAveryFleeingOnFoot
IF GET_GAME_TIMER() > iTimerAveryFleeOnFoot + 5000
SET_PED_MOVEMENT_CLIPSET(pedAvery,"MOVE_M@BAIL_BOND_NOT_TAZERED")
SET_PED_COMBAT_ATTRIBUTES(pedAvery,CA_ALWAYS_FLEE,TRUE)
SET_PED_KEEP_TASK(pedAvery, TRUE)
REPLAY_RECORD_BACK_FOR_TIME(8.0, 2.0, REPLAY_IMPORTANCE_LOWEST)
Script_Passed()
ENDIF
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF iAveryOhFuckLines < 3
IF CREATE_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_SHOCKH", CONV_PRIORITY_MEDIUM)
++iAveryOhFuckLines
ENDIF
ENDIF
ENDIF
ELSE
IF GET_GAME_TIMER() > iTimerAveryKO + 2000
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF bTrevThreat
/*
IF GET_SCRIPT_TASK_STATUS(pedAvery,SCRIPT_TASK_SHOCKING_EVENT_HURRY_AWAY) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(pedAvery,SCRIPT_TASK_SHOCKING_EVENT_HURRY_AWAY) <> WAITING_TO_START_TASK
SET_AUDIO_FLAG("DisableAbortConversationForRagdoll", TRUE)
SET_PED_MOVEMENT_CLIPSET(pedAvery,"MOVE_M@BAIL_BOND_NOT_TAZERED")
SET_PED_COMBAT_ATTRIBUTES(pedAvery,CA_ALWAYS_FLEE,TRUE)
SET_PED_DESIRED_MOVE_BLEND_RATIO(pedAvery, PEDMOVEBLENDRATIO_WALK)
SET_PED_KEEP_TASK(pedAvery, TRUE)
iShockAvery = ADD_SHOCKING_EVENT_FOR_ENTITY(EVENT_SHOCKING_MUGGING,PLAYER_PED_ID())
TASK_SHOCKING_EVENT_HURRY_AWAY(pedAvery,iShockAvery)
ENDIF
*/
iAveryKOLines = 5
ENDIF
IF iAveryKOLines = 0
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_OUTRO","JOSH2_OUTRO_1",CONV_PRIORITY_VERY_HIGH)
REPLAY_RECORD_BACK_FOR_TIME(3.0, 5.0)
SET_AUDIO_FLAG("DisableAbortConversationForRagdoll", TRUE)
++iAveryKOLines
ENDIF
ELIF iAveryKOLines = 1
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_OUTRO","JOSH2_OUTRO_3",CONV_PRIORITY_VERY_HIGH)
SET_AUDIO_FLAG("DisableAbortConversationForRagdoll", TRUE)
++iAveryKOLines
ENDIF
ELIF iAveryKOLines = 2
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_OUTRO","JOSH2_OUTRO_5",CONV_PRIORITY_VERY_HIGH)
SET_AUDIO_FLAG("DisableAbortConversationForRagdoll", TRUE)
++iAveryKOLines
ENDIF
ELIF iAveryKOLines = 3
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_OUTRO","JOSH2_OUTRO_7",CONV_PRIORITY_VERY_HIGH)
SET_AUDIO_FLAG("DisableAbortConversationForRagdoll", TRUE)
++iAveryKOLines
ENDIF
ELIF iAveryKOLines = 4
/*
IF GET_SCRIPT_TASK_STATUS(pedAvery,SCRIPT_TASK_SHOCKING_EVENT_HURRY_AWAY) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(pedAvery,SCRIPT_TASK_SHOCKING_EVENT_HURRY_AWAY) <> WAITING_TO_START_TASK
SET_PED_MOVEMENT_CLIPSET(pedAvery,"MOVE_M@BAIL_BOND_NOT_TAZERED")
SET_PED_COMBAT_ATTRIBUTES(pedAvery,CA_ALWAYS_FLEE,TRUE)
SET_PED_DESIRED_MOVE_BLEND_RATIO(pedAvery, PEDMOVEBLENDRATIO_WALK)
SET_PED_KEEP_TASK(pedAvery, TRUE)
iShockAvery = ADD_SHOCKING_EVENT_FOR_ENTITY(EVENT_SHOCKING_MUGGING,PLAYER_PED_ID())
TASK_SHOCKING_EVENT_HURRY_AWAY(pedAvery,iShockAvery)
ENDIF
*/
//IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, "JOSH2AU", "JOSH2_OUTRO","JOSH2_OUTRO_5",CONV_PRIORITY_VERY_HIGH)
//SET_AUDIO_FLAG("DisableAbortConversationForRagdoll", TRUE)
++iAveryKOLines
//ENDIF
ENDIF
ENDIF
ENDIF
IF IS_PED_UNINJURED(pedAvery)
IF GET_SCRIPT_TASK_STATUS(pedAvery,SCRIPT_TASK_REACT_AND_FLEE_PED) = PERFORMING_TASK
OR GET_SCRIPT_TASK_STATUS(pedAvery,SCRIPT_TASK_REACT_AND_FLEE_PED) = WAITING_TO_START_TASK
CLEAR_PED_TASKS(pedAvery)
ENDIF
IF NOT IS_PED_RAGDOLL(pedAvery)
IF NOT IS_PED_HEADTRACKING_PED(pedAvery,PLAYER_PED_ID())
TASK_LOOK_AT_ENTITY(pedAvery,PLAYER_PED_ID(),-1)
ENDIF
IF GET_SCRIPT_TASK_STATUS(pedAvery,SCRIPT_TASK_TURN_PED_TO_FACE_ENTITY) <> PERFORMING_TASK
IF NOT IS_PED_FACING_PED(pedAvery,PLAYER_PED_ID(),45)
TASK_TURN_PED_TO_FACE_ENTITY(pedAvery,PLAYER_PED_ID(),-1)
ENDIF
ENDIF
ENDIF
STOP_AMBIENT_CARS_AROUND_PED(pedAvery)
IF IS_ENTITY_IN_RANGE_ENTITY(pedAvery,PLAYER_PED_ID(),50)
SET_RANDOM_VEHICLE_DENSITY_MULTIPLIER_THIS_FRAME(0)
ENDIF
SAFE_REMOVE_BLIP(blipAvery)
SET_PED_RESET_FLAG(pedAvery,PRF_PreventAllMeleeTakedowns, TRUE) // must be called everyframe to prevent takedown and takedown failed
IF GET_GAME_TIMER() < iTimerAveryKO + 9000
OR IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
IF GET_GAME_TIMER() < iTimerAveryKO + 9000
IF GET_GAME_TIMER() < iTimerAveryKO + 4500
IF NOT IS_PED_RAGDOLL(pedAvery)
AND NOT bTrevThreat
REQUEST_RAGDOLL_BOUNDS_UPDATE(pedAvery)
SET_PED_MOVEMENT_CLIPSET(pedAvery,"MOVE_M@BAIL_BOND_NOT_TAZERED")
CLEAR_PED_TASKS_IMMEDIATELY(pedAvery)
TASK_LOOK_AT_ENTITY(pedAvery,PLAYER_PED_ID(),-1)
TASK_LOOK_AT_ENTITY(PLAYER_PED_ID(),pedAvery,-1)
SET_PED_KEEP_TASK(pedAvery,TRUE)
SET_PED_TO_RAGDOLL(pedAvery,2500,3000,TASK_NM_SCRIPT)
//SET_PED_TO_RAGDOLL(pedAvery,58000,60000,TASK_RELAX)
CLEAR_RAGDOLL_BLOCKING_FLAGS(pedAvery,RBF_NONE)
CREATE_NM_MESSAGE(NM_START_START,NM_INJURED_ON_GROUND_MSG)
GIVE_PED_NM_MESSAGE(pedAvery)
CLEAR_ENTITY_LAST_DAMAGE_ENTITY(pedAvery)
//SET_PED_INJURED_ON_GROUND_BEHAVIOUR(pedAvery,60000)
ENDIF
ELSE
IF IS_PED_GETTING_UP(pedAvery)
IF bAveryGettingUp = FALSE
iTimerAveryGettingUp = GET_GAME_TIMER()
bAveryGettingUp = TRUE
ELSE
IF GET_GAME_TIMER() > iTimerAveryGettingUp + 2200
ENDIF
ENDIF
ELSE
IF bAveryGettingUp = TRUE
IF NOT IS_PED_RAGDOLL(pedAvery)
IF NOT IS_PED_HEADTRACKING_PED(pedAvery,PLAYER_PED_ID())
TASK_LOOK_AT_ENTITY(pedAvery,PLAYER_PED_ID(),-1)
ENDIF
IF GET_SCRIPT_TASK_STATUS(pedAvery,SCRIPT_TASK_TURN_PED_TO_FACE_ENTITY) <> PERFORMING_TASK
IF NOT IS_PED_FACING_PED(pedAvery,PLAYER_PED_ID(),90)
TASK_TURN_PED_TO_FACE_ENTITY(pedAvery,PLAYER_PED_ID(),-1)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
SET_PED_MOVEMENT_CLIPSET(pedAvery,"MOVE_M@BAIL_BOND_NOT_TAZERED")
SET_PED_COMBAT_ATTRIBUTES(pedAvery,CA_ALWAYS_FLEE,TRUE)
SET_PED_DESIRED_MOVE_BLEND_RATIO(pedAvery, PEDMOVEBLENDRATIO_WALK)
SET_PED_KEEP_TASK(pedAvery, TRUE)
IF IS_ENTITY_ALIVE(vehAveryComet)
SET_VEHICLE_CAN_BE_USED_BY_FLEEING_PEDS(vehAveryComet,FALSE)
ENDIF
IF GET_SCRIPT_TASK_STATUS(pedAvery,SCRIPT_TASK_SMART_FLEE_PED) <> PERFORMING_TASK
AND GET_SCRIPT_TASK_STATUS(pedAvery,SCRIPT_TASK_SMART_FLEE_PED) <> WAITING_TO_START_TASK
//IF NOT IS_PED_RAGDOLL(pedAvery)
//iShock = TASK_SHOCKING_EVENT_HURRY_AWAY()
//TASK_WANDER_SPECIFIC(pedAvery,"WANDER","CODE_HUMAN_WANDER_IDLES_MALE",GET_ENTITY_HEADING(PLAYER_PED_ID()))
//ENDIF
//iShockAvery = ADD_SHOCKING_EVENT_FOR_ENTITY(EVENT_SHOCKING_MUGGING,PLAYER_PED_ID())
//TASK_SHOCKING_EVENT_HURRY_AWAY(pedAvery,iShockAvery)
TASK_SMART_FLEE_PED(pedAvery,PLAYER_PED_ID(),100,-1)
ELSE
IF iAveryKOLines >= 5
AND NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedAvery,FALSE)
Script_Passed()
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDPROC
// ===========================================================================================================
// Script Loop
// ===========================================================================================================
SCRIPT(g_structRCScriptArgs sRCLauncherDataIn)
sRCLauncherDataLocal = sRCLauncherDataIn
RC_TakeEntityOwnership(sRCLauncherDataLocal)
SET_MISSION_FLAG(TRUE)
// Setup callback when player is killed, arrested or goes to multiplayer
IF (HAS_FORCE_CLEANUP_OCCURRED(DEFAULT_FORCE_CLEANUP_FLAGS|FORCE_CLEANUP_FLAG_DEBUG_MENU))
PRINT_LAUNCHER_DEBUG("Force cleanup [TERMINATING]")
Random_Character_Failed()
Script_Cleanup()
ENDIF
IF Is_Replay_In_Progress() // Set up the initial scene for replays
g_bSceneAutoTrigger = TRUE
eInitialSceneStage = IS_REQUEST_SCENE
WHILE NOT SetupScene_JOSH_2(sRCLauncherDataLocal)
WAIT(0)
ENDWHILE
RC_SET_ENTITY_PROOFS_FOR_CUTSCENE(sRCLauncherDataLocal, FALSE)
g_bSceneAutoTrigger = FALSE
ENDIF
IF IS_SYNCHRONIZED_SCENE_RUNNING(iSynchScene)
TAKE_OWNERSHIP_OF_SYNCHRONIZED_SCENE(iSynchScene)
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_MISSION, "JOSH2 TAKE_OWNERSHIP_OF_SYNCHRONIZED_SCENE(iSynchScene)")
#ENDIF
ENDIF
WHILE(TRUE)
WAIT(0)
REPLAY_CHECK_FOR_EVENT_THIS_FRAME("SF_CTD")
UPDATE_MISSION_NAME_DISPLAYING(sRCLauncherDataLocal.sIntroCutscene)
// Loop within here until the mission passes or fails
IF eMissionStage <> MS_SETUP
//AND eMissionStage <> MS_INTRO
AND eMissionStage <> MS_INIT
OpenGates()
IF eMissionStage <> MS_MISSION_FAILING
CheckForFail()
ENDIF
AmbientBiker()
Convo()
ENDIF
// MAIN LOOP
SWITCH eMissionStage
CASE MS_SETUP
Setup()
BREAK
CASE MS_INTRO
IntroMocap()
BREAK
CASE MS_INIT
InitMission()
BREAK
CASE MS_GO_TO_ROCKFORD
GoToRockford()
BREAK
CASE MS_FIND_THE_GREEN_COMET
FindTheGreenComet()
BREAK
CASE MS_CHASE_AVERY
ChaseAvery()
BREAK
CASE MS_GO_TO_AVERY
GoToAvery()
BREAK
CASE MS_AVERY_KO
AveryKo()
BREAK
CASE MS_MISSION_FAILING
FailWait()
BREAK
ENDSWITCH
#IF IS_DEBUG_BUILD // STAGE SKIPPING
IF eMissionStage <> MS_MISSION_FAILING
DEBUG_Check_Debug_Keys()
DEBUG_Check_Skips()
ENDIF
#ENDIF
ENDWHILE
// Script should never reach here. Always terminate with cleanup function.
ENDSCRIPT