//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 <> 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 >>,<>,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