//Solomon5.sc //Ross Wallace 20/06/2012 //Compile out Title Update changes to header functions. //Must be before includes. //CONST_INT USE_TU_CHANGES 0 // Removed by Kenneth R. USING "rage_builtins.sch" USING "commands_clock.sch" USING "globals.sch" USING "player_ped_public.sch" USING "dialogue_public.sch" USING "blip_control_public.sch" // ____________________________________ INCLUDES ___________________________________________ USING "commands_script.sch" USING "CompletionPercentage_public.sch" using "commands_pad.sch" using "commands_misc.sch" using "commands_player.sch" USING "Commands_streaming.sch" USING "script_player.sch" USING "commands_camera.sch" USING "commands_interiors.sch" USING "script_MISC.sch" USING "commands_object.sch" USING "script_ped.sch" USING "chase_hint_cam.sch" USING "script_blips.sch" USING "locates_public.sch" USING "replay_public.sch" USING "commands_cutscene.sch" USING "script_maths.sch" USING "mission_stat_public.sch" USING "cutscene_public.sch" using "selector_public.sch" USING "taxi_functions.sch" USING "timeLapse.sch" USING "shop_public.sch" USING "rappel_public.sch" USING "Shared_hud_Displays.sch" USING "mission_stat_public.sch" USING "clearMissionArea.sch" USING "commands_recording.sch" CONST_INT TOTAL_NUMBER_OF_TRAFFIC_CARS 144 CONST_INT TOTAL_NUMBER_OF_PARKED_CARS 35 CONST_INT TOTAL_NUMBER_OF_SET_PIECE_CARS 27 CONST_INT MAX_NUMBER_OF_PARKED_CARS_PLAYING_BACK 6 CONST_INT MAX_NUMBER_OF_TRAFFIC_CARS_PLAYING_BACK 7 CONST_INT MAX_NUMBER_OF_SET_PIECE_CARS_PLAYING_BACK 5 USING "Traffic.sch" //USING "trigger_scene_michael4.sch" // VEHICLE_INDEX carMichaelIsIn BOOL bHasChanged #IF IS_DEBUG_BUILD USING "select_mission_stage.sch" USING "shared_debug.sch" USING "script_debug.sch" #ENDIF WEAPON_TYPE MichaelsWeapon = WEAPONTYPE_ASSAULTRIFLE INT iRandomVariation = -1 BOOL bDisplayTimer // ____________________________________ VARIABLES __________________________________________ INT iMissionTimer INT iMissionStartTime INT iExtraBadGuysComingIntoDiningRoomCount INT MISSION_TIME_LIMIT = 120000 INT iDisableReplayCameraTimer //Fix for bug 2227677 WEAPON_TYPE wtCurentWeapon //STAGE_TIMELAPSE //CAMERA_INDEX cutsceneCamera //CAMERA_INDEX initialCam //CAMERA_INDEX destinationCam #IF IS_DEBUG_BUILD WIDGET_GROUP_ID sol5WidgetGroup INT iDebugMissionStage BOOL bDebugInitialised BOOL bIsSuperDebugEnabled BOOL bDebugOn = TRUE CONST_INT MAX_SKIP_MENU_LENGTH 16 // number of stages in mission + 2 (for menu ) INT iReturnStage // mission stage to jump to MissionStageMenuTextStruct SkipMenuStruct[MAX_SKIP_MENU_LENGTH] // struct containing the debug menu TEXT_LABEL_63 debugPedName #ENDIF REL_GROUP_HASH relGroupMerryWeather structPedsForConversation myScriptedSpeech INT i_current_event LOCATES_HEADER_DATA sLocatesData INTERIOR_INSTANCE_INDEX intMichaelsHouse VEHICLE_INDEX carMichael VEHICLE_INDEX carMichael2 PED_INDEX pedJimmy PED_INDEX pedLimoDriver //PED_INDEX pedCrowd[16] VECTOR vMichaelsHouse = <<-828.3110, 174.0465, 69.6267>> //VECTOR vJimmyBedRoomCoords = << -808.2546, 171.7330, 75.7408 >> VECTOR vInsideHouseCoords = << -815.3414, 179.0607, 71.1530 >> VEHICLE_INDEX badguyCarOutsideHouse1 VEHICLE_INDEX badguyCarOutsideHouse2 PED_INDEX pedAmanda PED_INDEX pedTracey PED_INDEX pedHostagetakerTracey PED_INDEX pedHostagetakerAmanda PED_INDEX pedWritheGuy OBJECT_INDEX oiAmandasShoe CONST_INT NUMBER_OF_MERRYWEATHER 17 //PED_INDEX pedMerryWeatherDummyGrenade PED_INDEX pedMerryWeather[NUMBER_OF_MERRYWEATHER] AI_BLIP_STRUCT blipPedMerryWeather[NUMBER_OF_MERRYWEATHER] PED_INDEX pedMerryWeatherCutscene[NUMBER_OF_MERRYWEATHER] //VEHICLE_INDEX chopperMerryWeather INT iTimeOfMerryWeatherSpawn[NUMBER_OF_MERRYWEATHER] BOOL bMWCharging[NUMBER_OF_MERRYWEATHER] //RAPPEL_DATA pedsRappelData[2] BLIP_INDEX blipPedHostagetaker BLIP_INDEX blipInsideHouse BLIP_INDEX blipPedTracey BLIP_INDEX blipTraceysRoom BLIP_INDEX blipAmanda INT iSceneId VECTOR vAmandaScenePos = << -807.212, 182.799, 74.000 >>//<<-807.239, 182.773, 74.000>> VECTOR vAmandaSceneRot = << 0.000, 0.000, 21.000 >>//<<0.0, 0.0, 20.0>> VECTOR vTraceyScenePos = << -803.998, 175.910, 75.745 >> //<< -803.998, 175.910, 75.671 >> VECTOR vTraceySceneRot = << 0.000, 0.000, 21.120 >> MODEL_NAMES mnGoonModel = S_M_Y_BLACKOPS_01 MODEL_NAMES mnGoonModel2 = S_M_Y_BLACKOPS_02 // ____________________________________ FUNCTIONS __________________________________________ ENUM MISSION_STAGE_FLAG STAGE_INITIALISE, //0 STAGE_PICKUP_JIMMY, //1 STAGE_GET_TO_MOVIE_PREMIERE, //2 STAGE_MOVIE_PREMIERE_CUT, //3 STAGE_GET_TO_MICHAELS_HOUSE, //4 STAGE_ENTER_THE_HOUSE, //5 STAGE_SAVE_AMANDA, //6 STAGE_SAVE_TRACEY, //7 STAGE_TRACEY_CAPTOR_SHOT, //8 STAGE_FIGHT_INCOMING_BAD_GUYS, //9 STAGE_REUNITE_WITH_FAMILY, //10 STAGE_JIMMY_SAVES_THE_DAY_CUTSCENE, //11 STAGE_MISSION_PASSED, //12 STAGE_RECORD_UBER, STAGE_DEBUG //13 ENDENUM MISSION_STAGE_FLAG mission_stage = STAGE_INITIALISE //STAGE_TIME_LAPSE //STAGE_INITIALISE //STAGE_TIME_LAPSE PROC SETUP_TRAFFIC() //TrafficCarPos[0] = <<-729.6351, -155.1821, 36.4754>> //TrafficCarQuatX[0] = -0.0031 //TrafficCarQuatY[0] = 0.0135 //TrafficCarQuatZ[0] = 0.2759 //TrafficCarQuatW[0] = 0.9611 //TrafficCarRecording[0] = 2 //TrafficCarStartime[0] = 2442.0000 //TrafficCarModel[0] = dilettante TrafficCarPos[1] = <<-751.3091, -97.0937, 37.2116>> TrafficCarQuatX[1] = -0.0151 TrafficCarQuatY[1] = 0.0044 TrafficCarQuatZ[1] = 0.8566 TrafficCarQuatW[1] = 0.5158 TrafficCarRecording[1] = 3 TrafficCarStartime[1] = 5742.0000 TrafficCarModel[1] = dilettante ParkedCarPos[0] = <<-751.0682, -90.6509, 36.9707>> ParkedCarQuatX[0] = -0.0402 ParkedCarQuatY[0] = 0.0010 ParkedCarQuatZ[0] = 0.5160 ParkedCarQuatW[0] = 0.8556 ParkedCarModel[0] = washington TrafficCarPos[2] = <<-775.5784, -70.1046, 37.2953>> TrafficCarQuatX[2] = 0.0007 TrafficCarQuatY[2] = 0.0127 TrafficCarQuatZ[2] = -0.2998 TrafficCarQuatW[2] = 0.9539 TrafficCarRecording[2] = 4 TrafficCarStartime[2] = 7920.0000 TrafficCarModel[2] = washington TrafficCarPos[3] = <<-773.5848, -61.4278, 37.3519>> TrafficCarQuatX[3] = -0.0044 TrafficCarQuatY[3] = 0.0007 TrafficCarQuatZ[3] = 0.8512 TrafficCarQuatW[3] = 0.5249 TrafficCarRecording[3] = 5 TrafficCarStartime[3] = 8580.0000 TrafficCarModel[3] = dilettante TrafficCarPos[4] = <<-770.5067, -57.7925, 37.4167>> TrafficCarQuatX[4] = 0.0014 TrafficCarQuatY[4] = -0.0016 TrafficCarQuatZ[4] = 0.8783 TrafficCarQuatW[4] = 0.4782 TrafficCarRecording[4] = 6 TrafficCarStartime[4] = 8778.0000 TrafficCarModel[4] = washington TrafficCarPos[5] = <<-771.5404, -53.2816, 37.4863>> TrafficCarQuatX[5] = -0.0037 TrafficCarQuatY[5] = 0.0017 TrafficCarQuatZ[5] = 0.8545 TrafficCarQuatW[5] = 0.5195 TrafficCarRecording[5] = 7 TrafficCarStartime[5] = 9438.0000 TrafficCarModel[5] = taxi TrafficCarPos[6] = <<-800.9717, -48.9470, 37.4214>> TrafficCarQuatX[6] = 0.0037 TrafficCarQuatY[6] = -0.0005 TrafficCarQuatZ[6] = 0.9582 TrafficCarQuatW[6] = -0.2862 TrafficCarRecording[6] = 8 TrafficCarStartime[6] = 11088.0000 TrafficCarModel[6] = dilettante TrafficCarPos[7] = <<-727.7749, -43.7349, 37.3255>> TrafficCarQuatX[7] = 0.0112 TrafficCarQuatY[7] = 0.0188 TrafficCarQuatZ[7] = -0.5240 TrafficCarQuatW[7] = 0.8515 TrafficCarRecording[7] = 9 TrafficCarStartime[7] = 13266.0000 TrafficCarModel[7] = washington TrafficCarPos[8] = <<-718.5084, -32.0203, 37.5871>> TrafficCarQuatX[8] = -0.0007 TrafficCarQuatY[8] = -0.0001 TrafficCarQuatZ[8] = -0.3955 TrafficCarQuatW[8] = 0.9185 TrafficCarRecording[8] = 10 TrafficCarStartime[8] = 13596.0000 TrafficCarModel[8] = fugitive TrafficCarPos[9] = <<-706.7288, -36.0906, 37.2160>> TrafficCarQuatX[9] = 0.0080 TrafficCarQuatY[9] = -0.0123 TrafficCarQuatZ[9] = 0.9999 TrafficCarQuatW[9] = 0.0029 TrafficCarRecording[9] = 11 TrafficCarStartime[9] = 13794.0000 TrafficCarModel[9] = dilettante //TrafficCarPos[10] = <<-705.1202, -80.0561, 37.5704>> //TrafficCarQuatX[10] = 0.0008 //TrafficCarQuatY[10] = 0.0012 //TrafficCarQuatZ[10] = -0.5236 //TrafficCarQuatW[10] = 0.8520 //TrafficCarRecording[10] = 12 //TrafficCarStartime[10] = 14058.0000 //TrafficCarModel[10] = fugitive ParkedCarPos[1] = <<-675.0334, -53.0923, 37.7784>> ParkedCarQuatX[1] = -0.0312 ParkedCarQuatY[1] = 0.0263 ParkedCarQuatZ[1] = 0.9788 ParkedCarQuatW[1] = -0.2005 ParkedCarModel[1] = voltic ParkedCarPos[2] = <<-659.4994, -49.5529, 39.0128>> ParkedCarQuatX[2] = -0.0449 ParkedCarQuatY[2] = 0.0172 ParkedCarQuatZ[2] = 0.9969 ParkedCarQuatW[2] = -0.0625 ParkedCarModel[2] = fugitive // //TrafficCarPos[11] = <<-645.8763, -54.1061, 40.4247>> //TrafficCarQuatX[11] = -0.0151 //TrafficCarQuatY[11] = -0.0365 //TrafficCarQuatZ[11] = 0.7463 //TrafficCarQuatW[11] = 0.6644 //TrafficCarRecording[11] = 13 //TrafficCarStartime[11] = 17688.0000 //TrafficCarModel[11] = patriot TrafficCarPos[12] = <<-681.9445, -11.6259, 37.9297>> TrafficCarQuatX[12] = -0.0047 TrafficCarQuatY[12] = -0.0143 TrafficCarQuatZ[12] = 0.8913 TrafficCarQuatW[12] = 0.4532 TrafficCarRecording[12] = 14 TrafficCarStartime[12] = 21978.0000 TrafficCarModel[12] = dilettante TrafficCarPos[13] = <<-692.7006, -14.9014, 37.7940>> TrafficCarQuatX[13] = -0.0062 TrafficCarQuatY[13] = -0.0142 TrafficCarQuatZ[13] = 0.8314 TrafficCarQuatW[13] = 0.5555 TrafficCarRecording[13] = 15 TrafficCarStartime[13] = 22242.0000 TrafficCarModel[13] = taxi TrafficCarPos[14] = <<-700.3921, -17.4427, 37.6499>> TrafficCarQuatX[14] = -0.0053 TrafficCarQuatY[14] = -0.0096 TrafficCarQuatZ[14] = 0.8488 TrafficCarQuatW[14] = 0.5286 TrafficCarRecording[14] = 16 TrafficCarStartime[14] = 22440.0000 TrafficCarModel[14] = fugitive TrafficCarPos[15] = <<-683.7543, -10.9341, 37.9169>> TrafficCarQuatX[15] = -0.0088 TrafficCarQuatY[15] = -0.0150 TrafficCarQuatZ[15] = 0.8015 TrafficCarQuatW[15] = 0.5977 TrafficCarRecording[15] = 17 TrafficCarStartime[15] = 27324.0000 TrafficCarModel[15] = dilettante TrafficCarPos[16] = <<-666.5709, -5.1678, 38.7878>> TrafficCarQuatX[16] = -0.0242 TrafficCarQuatY[16] = -0.0329 TrafficCarQuatZ[16] = 0.7574 TrafficCarQuatW[16] = 0.6517 TrafficCarRecording[16] = 18 TrafficCarStartime[16] = 28644.0000 TrafficCarModel[16] = fugitive TrafficCarPos[17] = <<-611.8765, 2.8695, 41.8305>> TrafficCarQuatX[17] = -0.0411 TrafficCarQuatY[17] = -0.0073 TrafficCarQuatZ[17] = 0.7520 TrafficCarQuatW[17] = 0.6578 TrafficCarRecording[17] = 19 TrafficCarStartime[17] = 29370.0000 TrafficCarModel[17] = dilettante TrafficCarPos[18] = <<-654.8570, 35.0608, 39.3026>> TrafficCarQuatX[18] = -0.0146 TrafficCarQuatY[18] = -0.0421 TrafficCarQuatZ[18] = 0.9981 TrafficCarQuatW[18] = -0.0433 TrafficCarRecording[18] = 20 TrafficCarStartime[18] = 37224.0000 TrafficCarModel[18] = fugitive TrafficCarPos[19] = <<-655.0488, 48.7777, 41.5350>> TrafficCarQuatX[19] = -0.0194 TrafficCarQuatY[19] = -0.1278 TrafficCarQuatZ[19] = 0.9911 TrafficCarQuatW[19] = 0.0312 TrafficCarRecording[19] = 21 TrafficCarStartime[19] = 39072.0000 TrafficCarModel[19] = patriot //TrafficCarPos[20] = <<-662.9526, 126.2494, 56.7466>> //TrafficCarQuatX[20] = 0.0074 //TrafficCarQuatY[20] = -0.0020 //TrafficCarQuatZ[20] = -0.6753 //TrafficCarQuatW[20] = 0.7375 //TrafficCarRecording[20] = 22 //TrafficCarStartime[20] = 42372.0000 //TrafficCarModel[20] = fugitive TrafficCarPos[21] = <<-651.6327, 132.7944, 56.6805>> TrafficCarQuatX[21] = -0.0004 TrafficCarQuatY[21] = 0.0018 TrafficCarQuatZ[21] = 0.7071 TrafficCarQuatW[21] = 0.7071 TrafficCarRecording[21] = 23 TrafficCarStartime[21] = 42570.0000 TrafficCarModel[21] = INFERNUS TrafficCarPos[22] = <<-651.4924, 163.9558, 59.5013>> TrafficCarQuatX[22] = -0.0201 TrafficCarQuatY[22] = -0.1194 TrafficCarQuatZ[22] = 0.9926 TrafficCarQuatW[22] = -0.0115 TrafficCarRecording[22] = 24 TrafficCarStartime[22] = 47256.0000 TrafficCarModel[22] = dilettante TrafficCarPos[23] = <<-651.2297, 144.6613, 56.8862>> TrafficCarQuatX[23] = -0.0198 TrafficCarQuatY[23] = -0.0254 TrafficCarQuatZ[23] = 0.9994 TrafficCarQuatW[23] = 0.0093 TrafficCarRecording[23] = 25 TrafficCarStartime[23] = 47982.0000 TrafficCarModel[23] = fugitive TrafficCarPos[24] = <<-653.9053, 242.1704, 80.8715>> TrafficCarQuatX[24] = -0.0091 TrafficCarQuatY[24] = -0.0022 TrafficCarQuatZ[24] = 0.9966 TrafficCarQuatW[24] = -0.0816 TrafficCarRecording[24] = 26 TrafficCarStartime[24] = 52866.0000 TrafficCarModel[24] = dilettante TrafficCarPos[25] = <<-637.2720, 278.5612, 80.9255>> TrafficCarQuatX[25] = -0.0084 TrafficCarQuatY[25] = -0.0005 TrafficCarQuatZ[25] = 0.6222 TrafficCarQuatW[25] = 0.7828 TrafficCarRecording[25] = 27 TrafficCarStartime[25] = 60984.0000 TrafficCarModel[25] = voltic ParkedCarPos[3] = <<-569.8005, 269.0992, 82.5511>> ParkedCarQuatX[3] = 0.0030 ParkedCarQuatY[3] = -0.0111 ParkedCarQuatZ[3] = 0.6585 ParkedCarQuatW[3] = 0.7525 ParkedCarModel[3] = STRETCH TrafficCarPos[26] = <<-591.6848, 262.7580, 81.9388>> TrafficCarQuatX[26] = -0.0076 TrafficCarQuatY[26] = -0.0067 TrafficCarQuatZ[26] = 0.6679 TrafficCarQuatW[26] = 0.7442 TrafficCarRecording[26] = 28 TrafficCarStartime[26] = 62964.0000 TrafficCarModel[26] = taxi TrafficCarPos[27] = <<-587.4163, 258.1250, 81.9937>> TrafficCarQuatX[27] = 0.0021 TrafficCarQuatY[27] = 0.0299 TrafficCarQuatZ[27] = 0.7597 TrafficCarQuatW[27] = -0.6496 TrafficCarRecording[27] = 29 TrafficCarStartime[27] = 63096.0000 TrafficCarModel[27] = akuma //TrafficCarPos[28] = <<-578.1308, 256.4715, 82.5131>> //TrafficCarQuatX[28] = -0.0102 //TrafficCarQuatY[28] = 0.0112 //TrafficCarQuatZ[28] = 0.7497 //TrafficCarQuatW[28] = -0.6616 //TrafficCarRecording[28] = 30 //TrafficCarStartime[28] = 63228.0000 //TrafficCarModel[28] = fugitive //TrafficCarPos[29] = <<-565.4684, 255.4141, 82.5930>> //TrafficCarQuatX[29] = 0.0048 //TrafficCarQuatY[29] = 0.0110 //TrafficCarQuatZ[29] = 0.7280 //TrafficCarQuatW[29] = -0.6854 //TrafficCarRecording[29] = 31 //TrafficCarStartime[29] = 63228.0000 //TrafficCarModel[29] = INFERNUS //TrafficCarPos[30] = <<-558.5502, 254.5110, 82.7675>> //TrafficCarQuatX[30] = 0.0008 //TrafficCarQuatY[30] = -0.0003 //TrafficCarQuatZ[30] = 0.7334 //TrafficCarQuatW[30] = -0.6798 //TrafficCarRecording[30] = 32 //TrafficCarStartime[30] = 63228.0000 //TrafficCarModel[30] = fugitive //TrafficCarPos[31] = <<-572.1489, 255.9922, 82.5679>> //TrafficCarQuatX[31] = 0.0021 //TrafficCarQuatY[31] = 0.0156 //TrafficCarQuatZ[31] = 0.7357 //TrafficCarQuatW[31] = -0.6771 //TrafficCarRecording[31] = 33 //TrafficCarStartime[31] = 63954.0000 //TrafficCarModel[31] = voltic TrafficCarPos[32] = <<-519.6771, 258.4605, 82.5956>> TrafficCarQuatX[32] = -0.0006 TrafficCarQuatY[32] = -0.0011 TrafficCarQuatZ[32] = 0.6662 TrafficCarQuatW[32] = 0.7458 TrafficCarRecording[32] = 34 TrafficCarStartime[32] = 66792.0000 TrafficCarModel[32] = Vader TrafficCarPos[33] = <<-459.0908, 255.1122, 82.4951>> TrafficCarQuatX[33] = -0.0116 TrafficCarQuatY[33] = 0.0117 TrafficCarQuatZ[33] = 0.6560 TrafficCarQuatW[33] = 0.7546 TrafficCarRecording[33] = 35 TrafficCarStartime[33] = 71940.0000 TrafficCarModel[33] = dilettante TrafficCarPos[34] = <<-436.5470, 247.8752, 82.8304>> TrafficCarQuatX[34] = -0.0046 TrafficCarQuatY[34] = -0.0005 TrafficCarQuatZ[34] = 0.6607 TrafficCarQuatW[34] = 0.7506 TrafficCarRecording[34] = 36 TrafficCarStartime[34] = 73656.0000 TrafficCarModel[34] = patriot TrafficCarPos[35] = <<-408.9057, 245.0887, 82.8828>> TrafficCarQuatX[35] = -0.0038 TrafficCarQuatY[35] = 0.0026 TrafficCarQuatZ[35] = 0.6792 TrafficCarQuatW[35] = 0.7339 TrafficCarRecording[35] = 37 TrafficCarStartime[35] = 75504.0000 TrafficCarModel[35] = dilettante TrafficCarPos[36] = <<-406.1917, 237.2878, 83.0315>> TrafficCarQuatX[36] = -0.0010 TrafficCarQuatY[36] = -0.0001 TrafficCarQuatZ[36] = -0.0051 TrafficCarQuatW[36] = 1.0000 TrafficCarRecording[36] = 38 TrafficCarStartime[36] = 75702.0000 TrafficCarModel[36] = voltic //TrafficCarPos[37] = <<-342.1515, 241.0291, 85.4560>> //TrafficCarQuatX[37] = 0.0132 //TrafficCarQuatY[37] = -0.0221 //TrafficCarQuatZ[37] = -0.6066 //TrafficCarQuatW[37] = 0.7946 //TrafficCarRecording[37] = 39 //TrafficCarStartime[37] = 79530.0000 //TrafficCarModel[37] = patriot //TrafficCarPos[38] = <<-290.4436, 255.7736, 88.9882>> //TrafficCarQuatX[38] = 0.0169 //TrafficCarQuatY[38] = -0.0260 //TrafficCarQuatZ[38] = -0.6503 //TrafficCarQuatW[38] = 0.7591 //TrafficCarRecording[38] = 40 //TrafficCarStartime[38] = 82500.0000 //TrafficCarModel[38] = BUS TrafficCarPos[39] = <<-299.1910, 263.4909, 87.9138>> TrafficCarQuatX[39] = 0.0174 TrafficCarQuatY[39] = -0.0643 TrafficCarQuatZ[39] = 0.7701 TrafficCarQuatW[39] = 0.6345 TrafficCarRecording[39] = 41 TrafficCarStartime[39] = 83028.0000 TrafficCarModel[39] = akuma //TrafficCarPos[40] = <<-258.6573, 258.5381, 90.8643>> //TrafficCarQuatX[40] = 0.0281 //TrafficCarQuatY[40] = -0.0313 //TrafficCarQuatZ[40] = -0.7035 //TrafficCarQuatW[40] = 0.7095 //TrafficCarRecording[40] = 42 //TrafficCarStartime[40] = 84282.0000 //TrafficCarModel[40] = taxi //TrafficCarPos[41] = <<-254.6566, 254.5974, 91.2276>> //TrafficCarQuatX[41] = -0.0455 //TrafficCarQuatY[41] = 0.0137 //TrafficCarQuatZ[41] = 0.7120 //TrafficCarQuatW[41] = -0.7005 //TrafficCarRecording[41] = 43 //TrafficCarStartime[41] = 84414.0000 //TrafficCarModel[41] = STRETCH //TrafficCarPos[42] = <<-245.5204, 258.8765, 92.0566>> //TrafficCarQuatX[42] = -0.0009 //TrafficCarQuatY[42] = 0.0009 //TrafficCarQuatZ[42] = 0.7486 //TrafficCarQuatW[42] = -0.6631 //TrafficCarRecording[42] = 44 //TrafficCarStartime[42] = 84942.0000 //TrafficCarModel[42] = BUS ParkedCarPos[4] = <<-250.2790, 286.0272, 91.3140>> ParkedCarQuatX[4] = -0.0195 ParkedCarQuatY[4] = 0.0289 ParkedCarQuatZ[4] = 0.7379 ParkedCarQuatW[4] = -0.6740 ParkedCarModel[4] = dilettante TrafficCarPos[43] = <<-241.4356, 254.0293, 91.5941>> TrafficCarQuatX[43] = -0.0009 TrafficCarQuatY[43] = 0.0009 TrafficCarQuatZ[43] = 0.7333 TrafficCarQuatW[43] = -0.6799 TrafficCarRecording[43] = 45 TrafficCarStartime[43] = 85140.0000 TrafficCarModel[43] = voltic TrafficCarPos[44] = <<-203.4949, 264.4652, 91.5720>> TrafficCarQuatX[44] = -0.0050 TrafficCarQuatY[44] = -0.0075 TrafficCarQuatZ[44] = 0.6829 TrafficCarQuatW[44] = 0.7305 TrafficCarRecording[44] = 46 TrafficCarStartime[44] = 87516.0000 TrafficCarModel[44] = INFERNUS TrafficCarPos[45] = <<-187.1415, 262.1929, 92.5558>> TrafficCarQuatX[45] = -0.0086 TrafficCarQuatY[45] = -0.0083 TrafficCarQuatZ[45] = 0.6573 TrafficCarQuatW[45] = 0.7536 TrafficCarRecording[45] = 47 TrafficCarStartime[45] = 88704.0000 TrafficCarModel[45] = BUS TrafficCarPos[46] = <<-142.2844, 258.0151, 94.5132>> TrafficCarQuatX[46] = -0.0292 TrafficCarQuatY[46] = -0.0211 TrafficCarQuatZ[46] = 0.6964 TrafficCarQuatW[46] = 0.7167 TrafficCarRecording[46] = 48 TrafficCarStartime[46] = 91872.0000 TrafficCarModel[46] = dilettante TrafficCarPos[47] = <<-115.8647, 258.4900, 96.5116>> TrafficCarQuatX[47] = -0.0339 TrafficCarQuatY[47] = -0.0267 TrafficCarQuatZ[47] = 0.7336 TrafficCarQuatW[47] = 0.6783 TrafficCarRecording[47] = 49 TrafficCarStartime[47] = 93852.0000 TrafficCarModel[47] = bati TrafficCarPos[48] = <<-112.0918, 236.9431, 97.3335>> TrafficCarQuatX[48] = -0.0420 TrafficCarQuatY[48] = 0.0124 TrafficCarQuatZ[48] = 0.9929 TrafficCarQuatW[48] = -0.1104 TrafficCarRecording[48] = 50 TrafficCarStartime[48] = 94314.0000 TrafficCarModel[48] = patriot TrafficCarPos[49] = <<-107.0848, 258.9811, 97.4725>> TrafficCarQuatX[49] = -0.0390 TrafficCarQuatY[49] = -0.0295 TrafficCarQuatZ[49] = 0.7291 TrafficCarQuatW[49] = 0.6826 TrafficCarRecording[49] = 51 TrafficCarStartime[49] = 94578.0000 TrafficCarModel[49] = Vader TrafficCarPos[50] = <<-75.1509, 262.1369, 101.6077>> TrafficCarQuatX[50] = -0.0486 TrafficCarQuatY[50] = -0.0420 TrafficCarQuatZ[50] = 0.7448 TrafficCarQuatW[50] = 0.6641 TrafficCarRecording[50] = 52 TrafficCarStartime[50] = 97086.0000 TrafficCarModel[50] = BUS TrafficCarPos[51] = <<-66.0495, 250.1121, 102.1338>> TrafficCarQuatX[51] = 0.0424 TrafficCarQuatY[51] = -0.0468 TrafficCarQuatZ[51] = -0.6581 TrafficCarQuatW[51] = 0.7503 TrafficCarRecording[51] = 53 TrafficCarStartime[51] = 97680.0000 TrafficCarModel[51] = coquette TrafficCarPos[52] = <<-26.4831, 273.7352, 106.4029>> TrafficCarQuatX[52] = -0.0188 TrafficCarQuatY[52] = 0.0440 TrafficCarQuatZ[52] = 0.9202 TrafficCarQuatW[52] = -0.3886 TrafficCarRecording[52] = 54 TrafficCarStartime[52] = 101904.0000 TrafficCarModel[52] = coquette //TrafficCarPos[53] = <<9.3503, 256.3408, 108.9411>> //TrafficCarQuatX[53] = -0.0107 //TrafficCarQuatY[53] = 0.0070 //TrafficCarQuatZ[53] = 0.7823 //TrafficCarQuatW[53] = -0.6228 //TrafficCarRecording[53] = 55 //TrafficCarStartime[53] = 103818.0000 //TrafficCarModel[53] = dilettante TrafficCarPos[54] = <<10.4011, 261.0676, 109.0329>> TrafficCarQuatX[54] = -0.0100 TrafficCarQuatY[54] = 0.0082 TrafficCarQuatZ[54] = 0.7729 TrafficCarQuatW[54] = -0.6344 TrafficCarRecording[54] = 56 TrafficCarStartime[54] = 104016.0000 TrafficCarModel[54] = voltic TrafficCarPos[55] = <<12.4599, 251.5634, 109.0181>> TrafficCarQuatX[55] = -0.0105 TrafficCarQuatY[55] = 0.0069 TrafficCarQuatZ[55] = 0.7860 TrafficCarQuatW[55] = -0.6181 TrafficCarRecording[55] = 57 TrafficCarStartime[55] = 104082.0000 TrafficCarModel[55] = dilettante //TrafficCarPos[56] = <<14.5970, 255.8522, 109.1289>> //TrafficCarQuatX[56] = -0.0026 //TrafficCarQuatY[56] = 0.0038 //TrafficCarQuatZ[56] = 0.7953 //TrafficCarQuatW[56] = -0.6062 //TrafficCarRecording[56] = 58 //TrafficCarStartime[56] = 104280.0000 //TrafficCarModel[56] = akuma TrafficCarPos[57] = <<15.1965, 260.1009, 109.1271>> TrafficCarQuatX[57] = 0.0951 TrafficCarQuatY[57] = 0.0901 TrafficCarQuatZ[57] = 0.7780 TrafficCarQuatW[57] = -0.6145 TrafficCarRecording[57] = 59 TrafficCarStartime[57] = 105732.0000 TrafficCarModel[57] = nemesis TrafficCarPos[58] = <<51.7524, 249.5017, 109.1136>> TrafficCarQuatX[58] = -0.0112 TrafficCarQuatY[58] = 0.0070 TrafficCarQuatZ[58] = 0.5701 TrafficCarQuatW[58] = 0.8214 TrafficCarRecording[58] = 60 TrafficCarStartime[58] = 110154.0000 TrafficCarModel[58] = dilettante TrafficCarPos[59] = <<77.1412, 246.6330, 109.1588>> TrafficCarQuatX[59] = 0.0102 TrafficCarQuatY[59] = 0.0115 TrafficCarQuatZ[59] = 0.5713 TrafficCarQuatW[59] = 0.8206 TrafficCarRecording[59] = 61 TrafficCarStartime[59] = 111210.0000 TrafficCarModel[59] = BUS TrafficCarPos[60] = <<108.8754, 234.9620, 107.3687>> TrafficCarQuatX[60] = 0.0110 TrafficCarQuatY[60] = 0.0099 TrafficCarQuatZ[60] = 0.5742 TrafficCarQuatW[60] = 0.8186 TrafficCarRecording[60] = 62 TrafficCarStartime[60] = 112002.0000 TrafficCarModel[60] = coquette TrafficCarPos[61] = <<120.7711, 235.0460, 107.1257>> TrafficCarQuatX[61] = -0.0014 TrafficCarQuatY[61] = 0.0268 TrafficCarQuatZ[61] = 0.5704 TrafficCarQuatW[61] = 0.8209 TrafficCarRecording[61] = 63 TrafficCarStartime[61] = 112992.0000 TrafficCarModel[61] = INFERNUS TrafficCarPos[62] = <<161.7951, 220.0426, 105.9757>> TrafficCarQuatX[62] = 0.0041 TrafficCarQuatY[62] = 0.0179 TrafficCarQuatZ[62] = 0.6066 TrafficCarQuatW[62] = 0.7948 TrafficCarRecording[62] = 64 TrafficCarStartime[62] = 116358.0000 TrafficCarModel[62] = dilettante TrafficCarPos[63] = <<176.7703, 204.2240, 105.5744>> TrafficCarQuatX[63] = 0.0128 TrafficCarQuatY[63] = -0.0140 TrafficCarQuatZ[63] = 0.8145 TrafficCarQuatW[63] = -0.5799 TrafficCarRecording[63] = 65 TrafficCarStartime[63] = 117612.0000 TrafficCarModel[63] = voltic //TrafficCarPos[64] = <<176.3473, 195.5004, 105.3261>> //TrafficCarQuatX[64] = 0.0131 //TrafficCarQuatY[64] = -0.0124 //TrafficCarQuatZ[64] = 0.8186 //TrafficCarQuatW[64] = -0.5740 //TrafficCarRecording[64] = 66 //TrafficCarStartime[64] = 117744.0000 //TrafficCarModel[64] = dilettante TrafficCarPos[65] = <<182.6559, 202.3705, 105.2015>> TrafficCarQuatX[65] = 0.0073 TrafficCarQuatY[65] = -0.0159 TrafficCarQuatZ[65] = 0.8193 TrafficCarQuatW[65] = -0.5731 TrafficCarRecording[65] = 67 TrafficCarStartime[65] = 118008.0000 TrafficCarModel[65] = INFERNUS TrafficCarPos[66] = <<182.7200, 197.1533, 104.9540>> TrafficCarQuatX[66] = -0.0042 TrafficCarQuatY[66] = -0.0163 TrafficCarQuatZ[66] = 0.8250 TrafficCarQuatW[66] = -0.5649 TrafficCarRecording[66] = 68 TrafficCarStartime[66] = 118140.0000 TrafficCarModel[66] = coquette //TrafficCarPos[67] = <<182.2283, 192.6395, 105.1002>> //TrafficCarQuatX[67] = 0.0117 //TrafficCarQuatY[67] = -0.0026 //TrafficCarQuatZ[67] = 0.8225 //TrafficCarQuatW[67] = -0.5687 //TrafficCarRecording[67] = 69 //TrafficCarStartime[67] = 118206.0000 //TrafficCarModel[67] = dilettante TrafficCarPos[68] = <<192.5483, 204.6786, 105.0900>> TrafficCarQuatX[68] = 0.0007 TrafficCarQuatY[68] = -0.0009 TrafficCarQuatZ[68] = 0.5527 TrafficCarQuatW[68] = 0.8334 TrafficCarRecording[68] = 70 TrafficCarStartime[68] = 118602.0000 TrafficCarModel[68] = dilettante TrafficCarPos[69] = <<217.3717, 179.4344, 104.9837>> TrafficCarQuatX[69] = -0.0034 TrafficCarQuatY[69] = -0.0075 TrafficCarQuatZ[69] = 0.8023 TrafficCarQuatW[69] = -0.5969 TrafficCarRecording[69] = 71 TrafficCarStartime[69] = 120450.0000 TrafficCarModel[69] = dilettante TrafficCarPos[70] = <<229.7712, 185.4740, 104.6763>> TrafficCarQuatX[70] = 0.0113 TrafficCarQuatY[70] = -0.0001 TrafficCarQuatZ[70] = 0.5758 TrafficCarQuatW[70] = 0.8175 TrafficCarRecording[70] = 72 TrafficCarStartime[70] = 121638.0000 TrafficCarModel[70] = coquette TrafficCarPos[71] = <<251.2794, 182.8351, 104.5498>> TrafficCarQuatX[71] = 0.0068 TrafficCarQuatY[71] = 0.0047 TrafficCarQuatZ[71] = 0.5690 TrafficCarQuatW[71] = 0.8223 TrafficCarRecording[71] = 73 TrafficCarStartime[71] = 123024.0000 TrafficCarModel[71] = akuma TrafficCarPos[72] = <<286.9730, 174.3262, 103.9083>> TrafficCarQuatX[72] = 0.0076 TrafficCarQuatY[72] = 0.0054 TrafficCarQuatZ[72] = 0.5696 TrafficCarQuatW[72] = 0.8218 TrafficCarRecording[72] = 74 TrafficCarStartime[72] = 124674.0000 TrafficCarModel[72] = nemesis //TrafficCarPos[73] = <<221.9222, 177.9926, 104.6689>> //TrafficCarQuatX[73] = -0.0145 //TrafficCarQuatY[73] = -0.0167 //TrafficCarQuatZ[73] = 0.8099 //TrafficCarQuatW[73] = -0.5861 //TrafficCarRecording[73] = 75 //TrafficCarStartime[73] = 125334.0000 //TrafficCarModel[73] = coquette TrafficCarPos[74] = <<299.8036, 169.1703, 103.5907>> TrafficCarQuatX[74] = 0.0063 TrafficCarQuatY[74] = 0.0046 TrafficCarQuatZ[74] = 0.5717 TrafficCarQuatW[74] = 0.8204 TrafficCarRecording[74] = 76 TrafficCarStartime[74] = 125466.0000 TrafficCarModel[74] = dilettante TrafficCarPos[75] = <<305.4707, 152.1204, 103.4018>> TrafficCarQuatX[75] = 0.0051 TrafficCarQuatY[75] = -0.0074 TrafficCarQuatZ[75] = 0.8248 TrafficCarQuatW[75] = -0.5653 TrafficCarRecording[75] = 77 TrafficCarStartime[75] = 125994.0000 TrafficCarModel[75] = dilettante TrafficCarPos[76] = <<308.3471, 147.0124, 103.2927>> TrafficCarQuatX[76] = 0.0037 TrafficCarQuatY[76] = -0.0082 TrafficCarQuatZ[76] = 0.8101 TrafficCarQuatW[76] = -0.5862 TrafficCarRecording[76] = 78 TrafficCarStartime[76] = 126258.0000 TrafficCarModel[76] = dilettante TrafficCarPos[77] = <<337.7297, 136.0498, 102.7815>> TrafficCarQuatX[77] = 0.0056 TrafficCarQuatY[77] = -0.0079 TrafficCarQuatZ[77] = 0.8150 TrafficCarQuatW[77] = -0.5794 TrafficCarRecording[77] = 79 TrafficCarStartime[77] = 128502.0000 TrafficCarModel[77] = taxi TrafficCarPos[78] = <<342.0353, 144.3674, 102.5265>> TrafficCarQuatX[78] = 0.0034 TrafficCarQuatY[78] = -0.0092 TrafficCarQuatZ[78] = 0.8153 TrafficCarQuatW[78] = -0.5789 TrafficCarRecording[78] = 80 TrafficCarStartime[78] = 128568.0000 TrafficCarModel[78] = bati TrafficCarPos[79] = <<348.4572, 119.5351, 102.5064>> TrafficCarQuatX[79] = -0.0110 TrafficCarQuatY[79] = 0.0013 TrafficCarQuatZ[79] = 0.9856 TrafficCarQuatW[79] = 0.1686 TrafficCarRecording[79] = 81 TrafficCarStartime[79] = 129756.0000 TrafficCarModel[79] = dilettante ParkedCarPos[5] = <<330.6659, 162.6515, 103.1006>> ParkedCarQuatX[5] = 0.0083 ParkedCarQuatY[5] = 0.0058 ParkedCarQuatZ[5] = 0.5634 ParkedCarQuatW[5] = 0.8261 ParkedCarModel[5] = TOURBUS TrafficCarPos[80] = <<378.0202, 198.8629, 102.5501>> TrafficCarQuatX[80] = -0.0025 TrafficCarQuatY[80] = 0.0004 TrafficCarQuatZ[80] = 0.9843 TrafficCarQuatW[80] = 0.1763 TrafficCarRecording[80] = 82 TrafficCarStartime[80] = 135630.0000 TrafficCarModel[80] = dilettante TrafficCarPos[81] = <<224.3663, 192.6471, 105.0238>> TrafficCarQuatX[81] = 0.0118 TrafficCarQuatY[81] = 0.0016 TrafficCarQuatZ[81] = 0.5762 TrafficCarQuatW[81] = 0.8172 TrafficCarRecording[81] = 83 TrafficCarStartime[81] = 143220.0000 TrafficCarModel[81] = dilettante ENDPROC FUNC MODEL_NAMES getRandomGoonModel() IF GET_RANDOM_BOOL() RETURN mnGoonModel ELSE RETURN mnGoonModel2 ENDIF ENDFUNC PROC HANDLE_CINEMA_DOOR() IF DOES_OBJECT_OF_TYPE_EXIST_AT_COORDS(<<300.691, 203.6474, 104.6431>>, 1.0, PROP_GRUMANDOOR_L) SET_STATE_OF_CLOSEST_DOOR_OF_TYPE(PROP_GRUMANDOOR_L, <<300.691, 203.6474, 104.6431>>, TRUE, 0) ENDIF ENDPROC /// PURPOSE: /// Sets whether or not the tuxedos are available /// PARAMS: /// bAvailable - are they available? PROC SET_TUXEDOS_AVAILABLE(BOOL bAvailable) SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ZERO, COMP_TYPE_OUTFIT, OUTFIT_P0_MOVIE_TUXEDO, bAvailable) SET_PED_COMP_ITEM_AVAILABLE_SP(PLAYER_ONE, COMP_TYPE_OUTFIT, OUTFIT_P1_TUXEDO, bAvailable) SET_PED_COMP_ITEM_ACQUIRED_SP(PLAYER_ZERO, COMP_TYPE_OUTFIT, OUTFIT_P0_MOVIE_TUXEDO, bAvailable) ENDPROC //PURPOSE: Starts or stops a cutscene. If TRUE is passed TIMERA() is set to Zero PROC SET_CUTSCENE_RUNNING(BOOL isRunning, BOOL doGameCamInterp = FALSE, INT durationFromInterp = 2000, BOOL turnOffGadgets = TRUE) // SET_USE_HIGHDOF(isRunning)removed SET_WIDESCREEN_BORDERS(isRunning,0) IF turnOffGadgets = TRUE SET_PLAYER_CONTROL(PLAYER_ID(), (NOT isRunning), SPC_DEACTIVATE_GADGETS) ELSE SET_PLAYER_CONTROL(PLAYER_ID(), (NOT isRunning)) ENDIF RENDER_SCRIPT_CAMS(isRunning, doGameCamInterp, durationFromInterp) CLEAR_HELP(TRUE) CLEAR_PRINTS() SET_SCRIPTS_SAFE_FOR_CUTSCENE(isRunning) DISABLE_CELLPHONE(isRunning) DISPLAY_HUD(NOT isRunning) DISPLAY_RADAR(NOT isRunning) ENDPROC PROC FADE_IN_IF_NEEDED() IF IS_SCREEN_FADED_OUT() OR IS_SCREEN_FADING_OUT() //OR NOT IS_SCREEN_FADING_IN() //LOAD_SCENE(GET_ENTITY_COORDS(PLAYER_PED_ID())) DO_SCREEN_FADE_IN(500) ENDIF ENDPROC //Cleanup PROC MISSION_CLEANUP() //For replays PRINTLN("iMissionTimer: ", iMissionTimer) LOCK_AUTOMATIC_DOOR_OPEN(AUTODOOR_MICHAEL_MANSION_GATE, FALSE, FALSE) CLEAR_WEATHER_TYPE_PERSIST() IF iMissionTimer > MISSION_TIME_LIMIT - g_replay.iReplayInt[0] g_replay.iReplayInt[0] = 90000 ELSE g_replay.iReplayInt[0] = iMissionTimer ENDIF DELETE_TEXT_MESSAGE_BY_LABEL_FROM_ALL_PLAYER_CHARACTERS("MIC4_TUXTEXT") DELETE_TEXT_MESSAGE_BY_LABEL_FROM_ALL_PLAYER_CHARACTERS("SOL5_DEVTXT") TRIGGER_MUSIC_EVENT("SOL5_FAIL") #IF IS_DEBUG_BUILD DELETE_WIDGET_GROUP(sol5WidgetGroup) #ENDIF PAUSE_CLOCK(FALSE) STOP_GAMEPLAY_HINT(TRUE) STOP_CUTSCENE() DOOR_SYSTEM_SET_HOLD_OPEN(g_sAutoDoorData[AUTODOOR_MICHAEL_MANSION_GATE].doorID, FALSE) //DOOR_SYSTEM_SET_HOLD_OPEN(ENUM_TO_INT(DOORHASH_M_MANSION_DAUGHTER), FALSE) IF IS_DOOR_REGISTERED_WITH_SYSTEM(ENUM_TO_INT(DOORHASH_M_MANSION_DAUGHTER)) REMOVE_DOOR_FROM_SYSTEM(ENUM_TO_INT(DOORHASH_M_MANSION_DAUGHTER)) ENDIF SET_CUTSCENE_RUNNING(FALSE) //SET_ALL_SHOPS_TEMPORARILY_UNAVAILABLE(FALSE) HANG_UP_AND_PUT_AWAY_PHONE() //SET_PED_AS_NO_LONGER_NEEDED(pedJimmy) REMOVE_IPL("redCarpet") STOP_CUTSCENE(TRUE) //B* - 1978122 IF intMichaelsHouse <> NULL UNPIN_INTERIOR(intMichaelsHouse) ENDIF IF NOT IS_ENTITY_DEAD(PLAYER_PED_ID()) SET_PED_USING_ACTION_MODE(PLAYER_PED_ID(), FALSE) RESET_PED_MOVEMENT_CLIPSET(PLAYER_PED_ID()) ENDIF SET_ROADS_BACK_TO_ORIGINAL(<<292.424530,172.560867,109.715904>> - <<61.000000,50.250000,8.500000>>, <<292.424530,172.560867,109.715904>> + <<61.000000,50.250000,8.500000>>) SET_AIR_DRAG_MULTIPLIER_FOR_PLAYERS_VEHICLE(PLAYER_ID(), 1.0) SET_GPS_MULTI_ROUTE_RENDER(FALSE) SET_PED_CONFIG_FLAG(PLAYER_PED_ID(), PCF_ForceDirectEntry, FALSE) SET_REDUCE_VEHICLE_MODEL_BUDGET(FALSE) SET_REDUCE_PED_MODEL_BUDGET(FALSE) DISABLE_VEHICLE_GEN_ON_MISSION(FALSE) SET_VEHICLE_POPULATION_BUDGET(3) SET_MAX_WANTED_LEVEL(5) SET_PLAYER_CAN_CHANGE_CLOTHES_ON_MISSION(TRUE) SET_NIGHTVISION(FALSE) CLEAR_TIMECYCLE_MODIFIER() SET_TIME_SCALE(1.0) SET_PLAYER_ANGRY(PLAYER_PED_ID(), FALSE) //SET_VEHICLE_DENSITY_MULTIPLIER(0.25) IF IS_SCREEN_FADED_OUT() //DO_SCREEN_FADE_IN(500) ENDIF ENDPROC PROC Mission_Passed() //FADE_IN_IF_NEEDED() IF DOES_OBJECT_OF_TYPE_EXIST_AT_COORDS(<<-802.70, 176.18, 76.89>>, 1.0, V_ILEV_MM_DOORW) SET_STATE_OF_CLOSEST_DOOR_OF_TYPE(V_ILEV_MM_DOORW, <<-802.70, 176.18, 76.89>>, TRUE, 0.0) ENDIF #IF IS_DEBUG_BUILD #ENDIF SET_CUTSCENE_RUNNING(FALSE) TRIGGER_MISSION_STATS_UI(TRUE) Mission_Flow_Mission_Passed() CLEAR_PRINTS () Mission_Cleanup() TERMINATE_THIS_THREAD() ENDPROC //Mission Failed PROC Mission_Failed() TRIGGER_MUSIC_EVENT("SOL5_FAIL") KILL_ANY_CONVERSATION() #IF IS_DEBUG_BUILD #ENDIF STORE_FAIL_WEAPON(PLAYER_PED_ID(), 0) Mission_Flow_Mission_Failed() WHILE NOT GET_MISSION_FLOW_SAFE_TO_CLEANUP() //Maintain anything that could look weird during fade out (e.g. enemies walking off). WAIT(0) ENDWHILE IF IS_PLAYER_PLAYING(PLAYER_ID()) SPECIAL_ABILITY_DEACTIVATE(PLAYER_ID()) ENDIF SET_TUXEDOS_AVAILABLE(FALSE) // lock the tuxedos again RESET_PLAYER_HAS_CHANGE_CLOTHES_ON_MISSION(CHAR_MICHAEL, bHasChanged) RESTORE_MISSION_START_OUTFIT() // remove tuxedo from Michael // check if we need to respawn the player in a different position, // if so call MISSION_FLOW_SET_FAIL_WARP_LOCATION() + SET_REPLAY_DECLINED_VEHICLE_WARP_LOCATION here Mission_Cleanup() // must only take 1 frame and terminate the thread TERMINATE_THIS_THREAD() ENDPROC PROC DELETE_ARRAY_OF_PEDS(PED_INDEX &thesePeds[], BOOL bSetAsNoLongerNeeded = FALSE, INT iMaxIndex = -1) INT i INT iArrayLength IF iMaxIndex <> -1 iArrayLength = iMaxIndex ELSE iArrayLength = COUNT_OF(thesePeds) -1 ENDIF FOR i = 0 TO iArrayLength IF DOES_ENTITY_EXIST(thesePeds[i]) IF NOT bSetAsNoLongerNeeded DELETE_PED(thesePeds[i]) PRINTLN("deleted Ped in array at: ", i) ELSE SET_PED_AS_NO_LONGER_NEEDED(thesePeds[i]) PRINTLN("set Ped as no longer needed in array at: ", i) ENDIF ENDIF ENDFOR ENDPROC PROC DELETE_ARRAY_OF_OBJECTS(OBJECT_INDEX &theseObjects[], BOOL bSetAsNoLongerNeeded = FALSE, INT iMaxIndex = -1) INT i INT iArrayLength IF iMaxIndex <> -1 iArrayLength = iMaxIndex ELSE iArrayLength = COUNT_OF(theseObjects) -1 ENDIF FOR i = 0 TO iArrayLength IF DOES_ENTITY_EXIST(theseObjects[i]) IF NOT bSetAsNoLongerNeeded DELETE_OBJECT(theseObjects[i]) PRINTLN("deleted object in array at: ", i) ELSE SET_OBJECT_AS_NO_LONGER_NEEDED(theseObjects[i]) PRINTLN("set object as no longer needed in array at: ", i) ENDIF ENDIF ENDFOR ENDPROC PROC SET_MICHAELS_TUX() SET_PED_COMP_ITEM_CURRENT_SP(PLAYER_PED_ID(), COMP_TYPE_OUTFIT, OUTFIT_P0_MOVIE_TUXEDO , FALSE) SET_PLAYER_HAS_CHANGE_CLOTHES_ON_MISSION(CHAR_MICHAEL) ENDPROC PROC RESET_GAME_CAMERA(FLOAT fHeading = 0.0) SET_GAMEPLAY_CAM_RELATIVE_HEADING(fHeading) SET_GAMEPLAY_CAM_RELATIVE_PITCH(fHeading) ENDPROC /// PURPOSE: Requests assets for next stage also sets any mission variable states such as wanted level etc. /// /// PARAMS: MISSION_STAGE_FLAG stageAssetsToLoad /// stageAssetsToLoad - /// //INT iNewLoadSceneTimer //SCALEFORM_INDEX sFormBreakingNewsOverlay /// PROC REQUEST_STAGE_ASSETS(MISSION_STAGE_FLAG stageAssetsToLoad) PRINTLN("MICHAEL 4: REQUESTING STAGE ASSETS FOR STAGE: ", ENUM_TO_INT(stageAssetsToLoad)) SWITCH stageAssetsToLoad CASE STAGE_PICKUP_JIMMY REQUEST_MODEL(STRETCH) REQUEST_VEHICLE_ASSET(STRETCH) REQUEST_MODEL(IG_JIMMYDISANTO) REQUEST_ADDITIONAL_TEXT("SOL5", MISSION_TEXT_SLOT) REQUEST_VEHICLE_RECORDING(1, "MIC4") REQUEST_MODEL(S_M_M_MovPrem_01) BREAK CASE STAGE_GET_TO_MOVIE_PREMIERE REQUEST_ANIM_DICT("missmic4jimmy_limo") REQUEST_MODEL(Prop_Champ_01b) REQUEST_PTFX_ASSET() REQUEST_MODEL(PROP_CRATE_01A) BREAK CASE STAGE_MOVIE_PREMIERE_CUT REQUEST_ANIM_DICT("missmic4premiere") REQUEST_MODEL(IG_LAZLOW) REQUEST_MODEL(IG_JIMMYDISANTO) REQUEST_MODEL(U_M_Y_ANTONB) REQUEST_MODEL(IG_Milton) REQUEST_MODEL(S_F_Y_MovPrem_01) REQUEST_MODEL(A_M_M_Paparazzi_01) REQUEST_MODEL(S_M_Y_Grip_01) REQUEST_MODEL(S_M_M_MovPrem_01) REQUEST_MODEL(Prop_V_Cam_01) REQUEST_MODEL(P_ING_MICROPHONEL_01) REQUEST_MODEL(prop_pap_camera_01) REQUEST_MODEL(STRETCH) REQUEST_MODEL(VACCA) REQUEST_MODEL(PROP_PHONE_ING_02) REQUEST_PTFX_ASSET() REQUEST_AMBIENT_AUDIO_BANK("Michael_4_Fireworks") // sFormBreakingNewsOverlay = REQUEST_SCALEFORM_MOVIE("BREAKING_NEWS") BREAK CASE STAGE_GET_TO_MICHAELS_HOUSE REQUEST_MODEL(IG_JIMMYDISANTO) REQUEST_MODEL(STRETCH) REQUEST_MODEL(VACCA) REQUEST_ANIM_DICT("missmic4ig_4") REQUEST_ANIM_SET("move_characters@jimmy@nervous@") REQUEST_ANIM_DICT("missmic4ig_4") REQUEST_MODEL(A_M_M_Paparazzi_01) REQUEST_MODEL(prop_pap_camera_01) REQUEST_ANIM_DICT("missmic4premiere") BREAK CASE STAGE_SAVE_AMANDA REQUEST_MODEL(MESA3) REQUEST_MODEL(IG_AMANDATOWNLEY) REQUEST_MODEL(PROP_CS_AMANDA_SHOE) REQUEST_MODEL(mnGoonModel) REQUEST_MODEL(mnGoonModel2) REQUEST_WEAPON_ASSET(MichaelsWeapon) REQUEST_ANIM_DICT("misssolomon_5@stairs") REQUEST_NPC_VEH_MODEL(CHAR_TRACEY) //intMichaelsHouse = GET_INTERIOR_AT_COORDS(<< -824.2127, 182.2403, 70.7416 >>) //PIN_INTERIOR_IN_MEMORY(intMichaelsHouse) //NEW_LOAD_SCENE_START_SPHERE(<<-809.8958, 179.9232, 73.9007>>, 1.0) //iNewLoadSceneTimer = GET_GAME_TIMER() BREAK CASE STAGE_SAVE_TRACEY REQUEST_MODEL(IG_TRACYDISANTO) REQUEST_MODEL(IG_AMANDATOWNLEY) REQUEST_MODEL(mnGoonModel) REQUEST_MODEL(mnGoonModel2) REQUEST_WEAPON_ASSET(MichaelsWeapon) REQUEST_ANIM_DICT("misssolomon_5@bedroom") REQUEST_ANIM_DICT("misssolomon_5@stairs") intMichaelsHouse = GET_INTERIOR_AT_COORDS_WITH_TYPE(<< -803.350, 172.900, 75.700 >>, "V_Michael") PIN_INTERIOR_IN_MEMORY(intMichaelsHouse) //REQUEST_CUTSCENE("SOL_5_MCS_1") BREAK CASE STAGE_TRACEY_CAPTOR_SHOT REQUEST_MODEL(mnGoonModel) REQUEST_MODEL(mnGoonModel2) REQUEST_WEAPON_ASSET(WEAPONTYPE_CARBINERIFLE) // REQUEST_MODEL(BUZZARD) REQUEST_VEHICLE_RECORDING(1, "Sol5") //REQUEST_RAPPEL_ASSETS() REQUEST_CUTSCENE("SOL_5_MCS_1") BREAK CASE STAGE_FIGHT_INCOMING_BAD_GUYS SET_MAX_WANTED_LEVEL(0) REQUEST_MODEL(IG_TRACYDISANTO) REQUEST_MODEL(IG_AMANDATOWNLEY) //Temp fix until this is sorted in code (needs to requested frame before the check) REQUEST_MODEL(mnGoonModel) REQUEST_MODEL(mnGoonModel2) REQUEST_MODEL(PROP_LD_TEST_01) REQUEST_WEAPON_ASSET(WEAPONTYPE_CARBINERIFLE) REQUEST_VEHICLE_RECORDING(1, "Sol5") REQUEST_WEAPON_ASSET(WEAPONTYPE_PISTOL) REQUEST_MODEL(MESA3) REQUEST_VEHICLE_RECORDING(3, "Sol5MW") REQUEST_VEHICLE_RECORDING(4, "Sol5MW") intMichaelsHouse = GET_INTERIOR_AT_COORDS(<< -824.2127, 182.2403, 70.7416 >>) PIN_INTERIOR_IN_MEMORY(intMichaelsHouse) BREAK CASE STAGE_REUNITE_WITH_FAMILY SET_MAX_WANTED_LEVEL(0) //Temp fix until this is sorted in code (needs to requested frame before the check) REQUEST_MODEL(mnGoonModel) REQUEST_MODEL(mnGoonModel2) // intMichaelsHouse = GET_INTERIOR_AT_COORDS(<< -824.2127, 182.2403, 70.7416 >>) //PIN_INTERIOR_IN_MEMORY(intMichaelsHouse) BREAK CASE STAGE_JIMMY_SAVES_THE_DAY_CUTSCENE SET_MAX_WANTED_LEVEL(0) REQUEST_CUTSCENE("SOL_5_MCS_2") // REQUEST_MODEL(IG_TRACYDISANTO) // REQUEST_MODEL(IG_AMANDATOWNLEY) // REQUEST_MODEL(IG_JIMMYDISANTO) //REQUEST_ANIM_DICT("misssolomon_5@End") // intMichaelsHouse = GET_INTERIOR_AT_COORDS(<< -824.2127, 182.2403, 70.7416 >>) // PIN_INTERIOR_IN_MEMORY(intMichaelsHouse) BREAK ENDSWITCH ENDPROC FUNC BOOL HAVE_STAGE_ASSETS_LOADED(MISSION_STAGE_FLAG stageAssetsToLoad) PRINTLN("MICHAEL 4: checking assets have loaded: ", ENUM_TO_INT(stageAssetsToLoad)) SWITCH stageAssetsToLoad CASE STAGE_PICKUP_JIMMY IF HAS_MODEL_LOADED(STRETCH) AND HAS_VEHICLE_ASSET_LOADED(STRETCH) AND HAS_MODEL_LOADED(IG_JIMMYDISANTO) AND HAS_ADDITIONAL_TEXT_LOADED(MISSION_TEXT_SLOT) AND HAS_VEHICLE_RECORDING_BEEN_LOADED(1, "MIC4") AND HAS_MODEL_LOADED(S_M_M_MovPrem_01) RETURN TRUE ENDIF BREAK CASE STAGE_GET_TO_MOVIE_PREMIERE IF HAS_ANIM_DICT_LOADED("missmic4jimmy_limo") AND HAS_MODEL_LOADED(Prop_Champ_01b) AND HAS_PTFX_ASSET_LOADED() AND HAS_MODEL_LOADED(PROP_CRATE_01A) RETURN TRUE ENDIF BREAK CASE STAGE_MOVIE_PREMIERE_CUT IF HAS_ANIM_DICT_LOADED("missmic4premiere") AND HAS_MODEL_LOADED(IG_LAZLOW) AND HAS_MODEL_LOADED(IG_JIMMYDISANTO) AND HAS_MODEL_LOADED(U_M_Y_ANTONB) AND HAS_MODEL_LOADED(IG_Milton) AND HAS_MODEL_LOADED(S_F_Y_MovPrem_01) AND HAS_MODEL_LOADED(A_M_M_Paparazzi_01) AND HAS_MODEL_LOADED(S_M_Y_Grip_01) AND HAS_MODEL_LOADED(Prop_V_Cam_01) AND HAS_MODEL_LOADED(P_ING_MICROPHONEL_01) AND HAS_MODEL_LOADED(prop_pap_camera_01) AND HAS_MODEL_LOADED(STRETCH) AND HAS_MODEL_LOADED(VACCA) AND HAS_MODEL_LOADED(S_M_M_MovPrem_01) AND HAS_MODEL_LOADED(PROP_PHONE_ING_02) AND HAS_PTFX_ASSET_LOADED() AND REQUEST_AMBIENT_AUDIO_BANK("Michael_4_Fireworks") // AND HAS_SCALEFORM_MOVIE_LOADED(sFormBreakingNewsOverlay) RETURN TRUE ENDIF BREAK CASE STAGE_GET_TO_MICHAELS_HOUSE IF HAS_MODEL_LOADED(IG_JIMMYDISANTO) AND HAS_MODEL_LOADED(STRETCH) AND HAS_MODEL_LOADED(VACCA) AND HAS_ANIM_DICT_LOADED("missmic4ig_4") AND HAS_ANIM_SET_LOADED("move_characters@jimmy@nervous@") AND HAS_MODEL_LOADED(A_M_M_Paparazzi_01) AND HAS_MODEL_LOADED(prop_pap_camera_01) AND HAS_ANIM_DICT_LOADED("missmic4premiere") RETURN TRUE ENDIF BREAK CASE STAGE_SAVE_AMANDA IF HAS_MODEL_LOADED(MESA3) AND HAS_MODEL_LOADED(IG_AMANDATOWNLEY) AND HAS_MODEL_LOADED(PROP_CS_AMANDA_SHOE) AND HAS_MODEL_LOADED(mnGoonModel) AND HAS_MODEL_LOADED(mnGoonModel2) AND HAS_WEAPON_ASSET_LOADED(MichaelsWeapon) AND HAS_ANIM_DICT_LOADED("misssolomon_5@stairs") AND HAS_NPC_VEH_MODEL_LOADED(CHAR_TRACEY) //AND IS_INTERIOR_READY(intMichaelsHouse) //IF IS_NEW_LOAD_SCENE_LOADED() //OR GET_GAME_TIMER() - iNewLoadSceneTimer > 15000 //NEW_LOAD_SCENE_STOP() RETURN TRUE //ENDIF ENDIF BREAK CASE STAGE_SAVE_TRACEY IF HAS_MODEL_LOADED(IG_TRACYDISANTO) AND HAS_MODEL_LOADED(IG_AMANDATOWNLEY) AND HAS_MODEL_LOADED(mnGoonModel) AND HAS_MODEL_LOADED(mnGoonModel2) AND HAS_WEAPON_ASSET_LOADED(MichaelsWeapon) AND HAS_ANIM_DICT_LOADED("misssolomon_5@stairs") AND HAS_ANIM_DICT_LOADED("misssolomon_5@bedroom") //AND IS_INTERIOR_READY(intMichaelsHouse) RETURN TRUE ENDIF BREAK CASE STAGE_TRACEY_CAPTOR_SHOT //Temp fix until this is sorted in code (needs to requested frame before the check) REQUEST_WEAPON_ASSET(WEAPONTYPE_CARBINERIFLE) IF HAS_MODEL_LOADED(mnGoonModel) AND HAS_VEHICLE_RECORDING_BEEN_LOADED(1, "Sol5") AND HAS_WEAPON_ASSET_LOADED(WEAPONTYPE_CARBINERIFLE) AND HAS_CUTSCENE_LOADED() RETURN TRUE ENDIF BREAK CASE STAGE_FIGHT_INCOMING_BAD_GUYS //Temp fix until this is sorted in code (needs to requested frame before the check) REQUEST_WEAPON_ASSET(WEAPONTYPE_CARBINERIFLE) REQUEST_WEAPON_ASSET(WEAPONTYPE_CARBINERIFLE) IF HAS_MODEL_LOADED(mnGoonModel) AND HAS_MODEL_LOADED(mnGoonModel2) AND HAS_MODEL_LOADED(IG_TRACYDISANTO) AND HAS_MODEL_LOADED(IG_AMANDATOWNLEY) AND HAS_MODEL_LOADED(PROP_LD_TEST_01) AND HAS_VEHICLE_RECORDING_BEEN_LOADED(1, "Sol5") AND HAS_WEAPON_ASSET_LOADED(WEAPONTYPE_CARBINERIFLE) AND HAS_MODEL_LOADED(MESA3) AND HAS_VEHICLE_RECORDING_BEEN_LOADED(3, "Sol5MW") AND HAS_VEHICLE_RECORDING_BEEN_LOADED(4, "Sol5MW") AND IS_INTERIOR_READY(intMichaelsHouse) AND HAS_WEAPON_ASSET_LOADED(WEAPONTYPE_PISTOL) RETURN TRUE ENDIF BREAK CASE STAGE_REUNITE_WITH_FAMILY IF HAS_MODEL_LOADED(mnGoonModel) AND HAS_MODEL_LOADED(mnGoonModel2) //AND IS_INTERIOR_READY(intMichaelsHouse) RETURN TRUE ENDIF BREAK CASE STAGE_JIMMY_SAVES_THE_DAY_CUTSCENE SET_CUTSCENE_PED_COMPONENT_VARIATION("Amanda", INT_TO_ENUM(PED_COMPONENT,0), 0, 1) //(head) SET_CUTSCENE_PED_COMPONENT_VARIATION("Amanda", INT_TO_ENUM(PED_COMPONENT,2), 1, 0) //(hair) SET_CUTSCENE_PED_COMPONENT_VARIATION("Amanda", INT_TO_ENUM(PED_COMPONENT,3), 7, 0) //(uppr) SET_CUTSCENE_PED_COMPONENT_VARIATION("Amanda", INT_TO_ENUM(PED_COMPONENT,4), 2, 0) //(lowr) SET_CUTSCENE_PED_COMPONENT_VARIATION("Amanda", INT_TO_ENUM(PED_COMPONENT,5), 0, 0) //(hand) SET_CUTSCENE_PED_COMPONENT_VARIATION("Amanda", INT_TO_ENUM(PED_COMPONENT,7), 0, 0) //(teef) SET_CUTSCENE_PED_COMPONENT_VARIATION("Tracy", INT_TO_ENUM(PED_COMPONENT,0), 0, 1) //(head) SET_CUTSCENE_PED_COMPONENT_VARIATION("Tracy", INT_TO_ENUM(PED_COMPONENT,2), 2, 0) //(hair) SET_CUTSCENE_PED_COMPONENT_VARIATION("Tracy", INT_TO_ENUM(PED_COMPONENT,3), 2, 0) //(uppr) SET_CUTSCENE_PED_COMPONENT_VARIATION("Tracy", INT_TO_ENUM(PED_COMPONENT,4), 2, 0) //(lowr) SET_CUTSCENE_PED_COMPONENT_VARIATION("Tracy", INT_TO_ENUM(PED_COMPONENT,5), 0, 0) //(hand) SET_CUTSCENE_PED_COMPONENT_VARIATION("Tracy", INT_TO_ENUM(PED_COMPONENT,6), 2, 0) //(feet) SET_CUTSCENE_PED_COMPONENT_VARIATION("Tracy", INT_TO_ENUM(PED_COMPONENT,7), 0, 0) //(teef) SET_CUTSCENE_PED_COMPONENT_VARIATION("Tracy", INT_TO_ENUM(PED_COMPONENT,8), 1, 0) //(accs) SET_CUTSCENE_PED_COMPONENT_VARIATION("Jimmy", INT_TO_ENUM(PED_COMPONENT,0), 0, 0) //(head) SET_CUTSCENE_PED_COMPONENT_VARIATION("Jimmy", INT_TO_ENUM(PED_COMPONENT,2), 0, 0) //(hair) SET_CUTSCENE_PED_COMPONENT_VARIATION("Jimmy", INT_TO_ENUM(PED_COMPONENT,3), 3, 0) //(uppr) SET_CUTSCENE_PED_COMPONENT_VARIATION("Jimmy", INT_TO_ENUM(PED_COMPONENT,4), 2, 0) //(lowr) SET_CUTSCENE_PED_COMPONENT_VARIATION("Jimmy", INT_TO_ENUM(PED_COMPONENT,5), 1, 0) //(hand) SET_CUTSCENE_PED_COMPONENT_VARIATION("Jimmy", INT_TO_ENUM(PED_COMPONENT,6), 0, 0) //(feet) SET_CUTSCENE_PED_COMPONENT_VARIATION("Jimmy", INT_TO_ENUM(PED_COMPONENT,7), 0, 0) //(teef) SET_CUTSCENE_PED_COMPONENT_VARIATION("Jimmy", INT_TO_ENUM(PED_COMPONENT,8), 2, 0) //(accs) SET_CUTSCENE_PED_COMPONENT_VARIATION("Jimmy", INT_TO_ENUM(PED_COMPONENT,9), 1, 0) //(task) SET_CUTSCENE_PED_COMPONENT_VARIATION("Jimmy", INT_TO_ENUM(PED_COMPONENT,10), 0, 0)//(decl) SET_CUTSCENE_PED_PROP_VARIATION("Jimmy", INT_TO_ENUM(PED_PROP_POSITION,0), 0) IF HAS_CUTSCENE_LOADED() // AND HAS_MODEL_LOADED(IG_TRACYDISANTO) // AND HAS_MODEL_LOADED(IG_AMANDATOWNLEY) // AND HAS_MODEL_LOADED(IG_JIMMYDISANTO) //AND HAS_ANIM_DICT_LOADED("misssolomon_5@End") RETURN TRUE ENDIF BREAK ENDSWITCH RETURN FALSE ENDFUNC structTimelapse sTimelapse //BOOL bRequestCutInTimeLapse VECTOR vTtlScenePos VECTOR vTtlSceneRot INT sceneIdTL INT iTimeLapseStage BOOL bTimeLapseComplete FUNC BOOL timeLapseCutscene() IF bTimeLapseComplete RETURN TRUE ENDIF IF NOT IS_REPLAY_IN_PROGRESS() IF DO_TIMELAPSE(SP_MISSION_MICHAEL_4, sTimelapse, IS_REPEAT_PLAY_ACTIVE(), FALSE, FALSE, FALSE, TRUE) //mission_stage = STAGE_PICKUP_JIMMY //CLEAR_PED_TASKS(PLAYER_PED_ID()) IF iTimeLapseStage = 0 iTimeLapseStage = -1 ENDIF ENDIF IF IS_SCREEN_FADED_OUT()//iTimeLapseStage = 0 OR iTimeLapseStage = -1 //SCRIPT_ASSERT("boom!") REQUEST_ANIM_DICT("missmic4") iTimeLapseStage = -1 RETURN TRUE ENDIF SWITCH iTimeLapseStage CASE 0 REQUEST_ANIM_DICT("SWITCH@MICHAEL@EXITS_FANCYSHOP") REQUEST_ANIM_DICT("missmic4") REQUEST_STAGE_ASSETS(STAGE_PICKUP_JIMMY) iTimeLapseStage++ BREAK CASE 1 IF HAS_ANIM_DICT_LOADED("SWITCH@MICHAEL@EXITS_FANCYSHOP") AND HAS_ANIM_DICT_LOADED("missmic4") /* START SYNCHRONIZED SCENE - */ vTtlScenePos = <<-715.500, -155.450, 37.410>> vTtlSceneRot = <<0.000, 0.000, 120.240>> sceneIdTL = CREATE_SYNCHRONIZED_SCENE(vTtlScenePos, vTtlSceneRot) PLAY_SYNCHRONIZED_MAP_ENTITY_ANIM(<<-716.675,-155.420,37.675>>, 1.0, v_ilev_ch_glassdoor, sceneIdTL, "001405_01_mics3_8_exits_fancyshop_exit_l_door", "switch@michael@exits_fancyshop", INSTANT_BLEND_IN) PLAY_SYNCHRONIZED_MAP_ENTITY_ANIM(<<-715.615,-157.256,37.675>>, 1.0, v_ilev_ch_glassdoor, sceneIdTL, "001405_01_mics3_8_exits_fancyshop_exit_r_door", "switch@michael@exits_fancyshop", INSTANT_BLEND_IN) SET_SYNCHRONIZED_SCENE_HOLD_LAST_FRAME(sceneIdTL, TRUE) SET_SYNCHRONIZED_SCENE_PHASE(sceneIdTL, 1.0) // SETTIMERA(0) iTimeLapseStage++ ENDIF BREAK CASE 2 SET_MICHAELS_TUX() IF TIMERA() > 6000 //v_ilev_ch_glassdoor (in 'int_lev_des.rpf') at -716.675,-155.420,37.675 //v_ilev_ch_glassdoor (in 'int_lev_des.rpf') at -715.615,-157.256,37.675 /* START SYNCHRONIZED SCENE - */ vTtlScenePos = <<-715.500, -155.450, 37.410>> vTtlSceneRot = <<0.000, 0.000, 120.240>> SET_ENTITY_VISIBLE(PLAYER_PED_ID(), TRUE) sceneIdTL = CREATE_SYNCHRONIZED_SCENE(vTtlScenePos, vTtlSceneRot) CLEAR_PED_TASKS_IMMEDIATELY(PLAYER_PED_ID()) TASK_SYNCHRONIZED_SCENE(PLAYER_PED_ID(), sceneIdTL, "switch@michael@exits_fancyshop", "001405_01_mics3_8_exits_fancyshop_exit", INSTANT_BLEND_IN, INSTANT_BLEND_OUT) PLAY_SYNCHRONIZED_MAP_ENTITY_ANIM(<<-716.675,-155.420,37.675>>, 1.0, v_ilev_ch_glassdoor, sceneIdTL, "001405_01_mics3_8_exits_fancyshop_exit_l_door", "switch@michael@exits_fancyshop", INSTANT_BLEND_IN) PLAY_SYNCHRONIZED_MAP_ENTITY_ANIM(<<-715.615,-157.256,37.675>>, 1.0, v_ilev_ch_glassdoor, sceneIdTL, "001405_01_mics3_8_exits_fancyshop_exit_r_door", "switch@michael@exits_fancyshop", INSTANT_BLEND_IN) // // CLEAR_ROOM_FOR_GAME_VIEWPORT() // CLEAR_ROOM_FOR_ENTITY(PLAYER_PED_ID()) SETTIMERA(0) iTimeLapseStage++ ENDIF BREAK CASE 3 IF GET_SYNCHRONIZED_SCENE_PHASE(sceneIdTL) >= 0.95 //IF TIMERA() > 7000 STOP_SYNCHRONIZED_MAP_ENTITY_ANIM(<<-716.675,-155.420,37.675>>, 1.0, v_ilev_ch_glassdoor, INSTANT_BLEND_IN) STOP_SYNCHRONIZED_MAP_ENTITY_ANIM(<<-715.615,-157.256,37.675>>, 1.0, v_ilev_ch_glassdoor, INSTANT_BLEND_IN) CLEAR_PED_TASKS(PLAYER_PED_ID()) // SET_ENTITY_COORDS(PLAYER_PED_ID(), <<-717.9023, -157.4854, 35.9895>>) // SET_ENTITY_HEADING(PLAYER_PED_ID(), 163.1339) SET_ENTITY_VISIBLE(PLAYER_PED_ID(), TRUE) TASK_PLAY_ANIM(PLAYER_PED_ID(), "missmic4", "michael_tux_fidget", NORMAL_BLEND_IN, NORMAL_BLEND_OUT, -1, AF_UPPERBODY | AF_SECONDARY) RESET_GAME_CAMERA() bTimeLapseComplete = TRUE iTimeLapseStage++ RETURN TRUE ENDIF BREAK ENDSWITCH ELSE RETURN TRUE //mission_stage = STAGE_PICKUP_JIMMY ENDIF RETURN FALSE ENDFUNC FUNC VEHICLE_INDEX CREATE_STRETCH() VEHICLE_INDEX tempIndex tempIndex = CREATE_VEHICLE(STRETCH, << 293.6189, 176.4069, 103.0985 >>, 69.5405) SET_VEHICLE_COLOURS(tempIndex, 0, 0) SET_VEHICLE_NUMBER_PLATE_TEXT(tempIndex, "V1N3W88D") SET_VEHICLE_HAS_STRONG_AXLES(tempIndex, TRUE) FORCE_USE_AUDIO_GAME_OBJECT(tempIndex, "STRETCH_MICHAEL_4") SET_VEHICLE_EXTRA(tempIndex, 1, TRUE) SET_VEHICLE_AUTOMATICALLY_ATTACHES(tempIndex, FALSE) SET_VEH_RADIO_STATION(tempIndex, "OFF") RETURN tempIndex ENDFUNC FUNC VEHICLE_INDEX CREATE_SPORTS_CAR() VEHICLE_INDEX tempIndex tempIndex = CREATE_VEHICLE(VACCA, <<300.9331, 172.7484, 102.9464>>, 65.7440) SET_VEHICLE_HAS_STRONG_AXLES(tempIndex, TRUE) SET_VEHICLE_COLOURS(tempIndex, 28, 28) SET_VEHICLE_NUMBER_PLATE_TEXT(tempIndex, "JKW87N1D") SET_VEHICLE_AS_NO_LONGER_NEEDED(tempIndex) RETURN tempIndex ENDFUNC INT iCreateCars /// PURPOSE: Creats the stretch and Vacca FUNC BOOL CREATE_RED_CARPET_CARS_IF_DONT_EXIST() PRINTLN("CREATE_RED_CARPET_CARS_IF_DONT_EXIST", iCreateCars) SWITCH iCreateCars CASE 0 REQUEST_MODEL(STRETCH) REQUEST_MODEL(VACCA) iCreateCars++ BREAK CASE 1 IF HAS_MODEL_LOADED(STRETCH) AND HAS_MODEL_LOADED(VACCA) iCreateCars++ ENDIF BREAK CASE 2 //IF NOT DOES_ENTITY_EXIST(carMichael) DELETE_VEHICLE(carMichael) carMichael = CREATE_STRETCH() //ENDIF IF NOT DOES_ENTITY_EXIST(carMichael2) carMichael2 = CREATE_SPORTS_CAR() ENDIF iCreateCars++ RETURN TRUE BREAK CASE 3 RETURN TRUE BREAK ENDSWITCH RETURN FALSE ENDFUNC PROC SET_JIMMYS_TUX() SET_PED_COMPONENT_VARIATION(pedJimmy, INT_TO_ENUM(PED_COMPONENT,0), 0, 0, 0) //(head) SET_PED_COMPONENT_VARIATION(pedJimmy, INT_TO_ENUM(PED_COMPONENT,1), 1, 0, 0) //(berd) SET_PED_COMPONENT_VARIATION(pedJimmy, INT_TO_ENUM(PED_COMPONENT,2), 0, 0, 0) //(hair) SET_PED_COMPONENT_VARIATION(pedJimmy, INT_TO_ENUM(PED_COMPONENT,3), 2, 0, 0) //(uppr) SET_PED_COMPONENT_VARIATION(pedJimmy, INT_TO_ENUM(PED_COMPONENT,4), 1, 0, 0) //(lowr) SET_PED_COMPONENT_VARIATION(pedJimmy, INT_TO_ENUM(PED_COMPONENT,5), 0, 0, 0) //(hand) SET_PED_COMPONENT_VARIATION(pedJimmy, INT_TO_ENUM(PED_COMPONENT,6), 0, 0, 0) //(feet) SET_PED_COMPONENT_VARIATION(pedJimmy, INT_TO_ENUM(PED_COMPONENT,7), 0, 0, 0) //(teef) SET_PED_COMPONENT_VARIATION(pedJimmy, INT_TO_ENUM(PED_COMPONENT,8), 1, 0, 0) //(accs) SET_PED_COMPONENT_VARIATION(pedJimmy, INT_TO_ENUM(PED_COMPONENT,9), 0, 0, 0) //(task) SET_PED_COMPONENT_VARIATION(pedJimmy, INT_TO_ENUM(PED_COMPONENT,10), 2, 0, 0) //(decl) ADD_ENTITY_TO_AUDIO_MIX_GROUP(pedJImmy, "MICHAEL_4_JIMMY_GROUP") STOP_PED_SPEAKING(pedJImmy, TRUE) ENDPROC PROC SET_JIMMYS_ARMY_OUTFIT() SET_PED_COMPONENT_VARIATION(pedJimmy, INT_TO_ENUM(PED_COMPONENT,0), 0, 0, 0) //(head) SET_PED_COMPONENT_VARIATION(pedJimmy, INT_TO_ENUM(PED_COMPONENT,2), 0, 0, 0) //(hair) SET_PED_COMPONENT_VARIATION(pedJimmy, INT_TO_ENUM(PED_COMPONENT,3), 3, 0, 0) //(uppr) SET_PED_COMPONENT_VARIATION(pedJimmy, INT_TO_ENUM(PED_COMPONENT,4), 2, 0, 0) //(lowr) SET_PED_COMPONENT_VARIATION(pedJimmy, INT_TO_ENUM(PED_COMPONENT,5), 1, 0, 0) //(hand) SET_PED_COMPONENT_VARIATION(pedJimmy, INT_TO_ENUM(PED_COMPONENT,6), 2, 0, 0) //(feet) SET_PED_COMPONENT_VARIATION(pedJimmy, INT_TO_ENUM(PED_COMPONENT,7), 0, 0, 0) //(teef) SET_PED_COMPONENT_VARIATION(pedJimmy, INT_TO_ENUM(PED_COMPONENT,8), 2, 0, 0) //(accs) //SET_PED_COMPONENT_VARIATION(pedJimmy, INT_TO_ENUM(PED_COMPONENT,9), 1, 0, 0) //(task) SET_PED_COMPONENT_VARIATION(pedJimmy, INT_TO_ENUM(PED_COMPONENT,10), 0, 0, 0) //(decl) SET_PED_PROP_INDEX(pedJimmy, INT_TO_ENUM(PED_PROP_POSITION,0), 0, 0) ENDPROC PROC SET_PED_AS_FRIENDLY(PED_INDEX &thisPed, BOOL bAddtoRelGroup = TRUE) SET_PED_CAN_BE_DRAGGED_OUT(thisPed, FALSE) SET_PED_CAN_RAGDOLL_FROM_PLAYER_IMPACT(thisPed, FALSE) IF bAddtoRelGroup SET_PED_RELATIONSHIP_GROUP_HASH(thisPed, RELGROUPHASH_PLAYER) ELSE SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(thisPed, TRUE) ENDIF SET_PED_SUFFERS_CRITICAL_HITS(thisPed, FALSE) SET_PED_CAN_BE_TARGETTED(thisPed, FALSE) SET_ENTITY_ONLY_DAMAGED_BY_PLAYER(thisPed, TRUE) ENDPROC FUNC BOOL IS_ENTITY_IN_FRONT_GARDEN_AREA(ENTITY_INDEX thisEntity) RETURN IS_ENTITY_IN_ANGLED_AREA(thisEntity, <<-835.364258,183.372330,76.094894>>, <<-823.341248,149.514069,63.662308>>, 33.000000) ENDFUNC FUNC BOOL IS_ENTITY_IN_DINING_ROOM(ENTITY_INDEX thisEntity) RETURN IS_ENTITY_IN_ANGLED_AREA(thisEntity, <<-799.556213,179.541992,71.834709>>, <<-793.838989,181.512985,75.084709>>, 11.750000) ENDFUNC FUNC BOOL IS_ENTITY_OUTSIDE(ENTITY_INDEX thisEntity) RETURN IS_ENTITY_IN_ANGLED_AREA(thisEntity, <<-817.345337,175.497055,70.260384>>, <<-794.602661,184.461853,82.473396>>, 12.000000) ENDFUNC FUNC BOOL IS_ENTITY_ON_GARAGE_ROOF(ENTITY_INDEX thisEntity) RETURN IS_ENTITY_IN_ANGLED_AREA(thisEntity, <<-800.376709,163.645340,75.224098>>, <<-811.319092,160.409439,80.538040>>, 7.500000) ENDFUNC PROC SET_PED_AS_MERRYWEATHER(PED_INDEX &thisPed, WEAPON_TYPE givenWeapon = WEAPONTYPE_CARBINERIFLE) INFORM_MISSION_STATS_OF_HEADSHOT_WATCH_ENTITY(thisPed) SET_PED_RELATIONSHIP_GROUP_HASH(thisPed, relGroupMerryWeather) GIVE_WEAPON_TO_PED(thisPed, givenWeapon, INFINITE_AMMO, TRUE, TRUE) SET_ENTITY_ONLY_DAMAGED_BY_PLAYER(thisPed, TRUE) SET_PED_CAN_COWER_IN_COVER(thisPed, FALSE) SET_PED_CAN_PEEK_IN_COVER(thisPed, TRUE) SET_PED_COMBAT_MOVEMENT(thisPed, CM_DEFENSIVE) SET_PED_COMBAT_ATTRIBUTES(thisPed, CA_USE_VEHICLE, FALSE) SET_PED_AS_ENEMY(thisPed, TRUE) SET_COMBAT_FLOAT(thisPed, CCF_TIME_BETWEEN_BURSTS_IN_COVER, 2.5) //SET_COMBAT_FLOAT(thisCop, CCF_TIME_BETWEEN_PEEKS, 10.00) SET_PED_COMBAT_RANGE(thisPed, CR_NEAR) ADD_ARMOUR_TO_PED(thisPed, 25) SET_PED_TARGET_LOSS_RESPONSE(thisPed, TLR_NEVER_LOSE_TARGET) SET_COMBAT_FLOAT(thisPed, CCF_BURST_DURATION_IN_COVER, 5.00) SET_COMBAT_FLOAT(thisPed, CCF_MAX_SHOOTING_DISTANCE, 150.00) SET_COMBAT_FLOAT(thisPed, CCF_STRAFE_WHEN_MOVING_CHANCE, 0.75) SET_PED_PATH_CAN_USE_CLIMBOVERS(thisPed, FALSE) SET_PED_COMBAT_ATTRIBUTES(thisPed, CA_DISABLE_SEEK_DUE_TO_LINE_OF_SIGHT, FALSE) SET_PED_COMBAT_ATTRIBUTES(thisPed, CA_CAN_FLANK, FALSE) SET_PED_CONFIG_FLAG(thisPed, PCF_DisableHurt, TRUE) SET_PED_COMBAT_ATTRIBUTES(thisPed,CA_MOVE_TO_LOCATION_BEFORE_COVER_SEARCH,TRUE) SET_PED_DIES_WHEN_INJURED(thisPed, TRUE) SET_PED_ACCURACY(thisPed, 1) SET_PED_CHANCE_OF_FIRING_BLANKS(thisPed, 0.1, 0.2) IF NOT IS_ENTITY_OUTSIDE(thisPed) SET_PED_CHANCE_OF_FIRING_BLANKS(thisPed, 0.5, 0.5) ELSE ADD_ARMOUR_TO_PED(thisPed, 50) ENDIF //SET_PED_ARMOUR(thisPed, 0) IF GET_RANDOM_INT_IN_RANGE(0, 10) > 5 SET_PED_PROP_INDEX(thisPed, INT_TO_ENUM(PED_PROP_POSITION,0), 1, 2) ENDIF IF GET_RANDOM_INT_IN_RANGE(0, 10) > 5 SET_PED_PROP_INDEX(thisPed, INT_TO_ENUM(PED_PROP_POSITION,1), 0, 1) ENDIF ENDPROC PROC CREATE_AMANDA() pedAmanda = CREATE_PED(PEDTYPE_MISSION, IG_AMANDATOWNLEY, << -812.4667, 177.3469, 71.1530 >>, 103.1597) SET_PED_AS_FRIENDLY(pedAmanda, FALSE) SET_PED_COMPONENT_VARIATION(pedAmanda, INT_TO_ENUM(PED_COMPONENT,0), 0, 1, 0) //(head) SET_PED_COMPONENT_VARIATION(pedAmanda, INT_TO_ENUM(PED_COMPONENT,2), 1, 0, 0) //(hair) SET_PED_COMPONENT_VARIATION(pedAmanda, INT_TO_ENUM(PED_COMPONENT,3), 7, 0, 0) //(uppr) SET_PED_COMPONENT_VARIATION(pedAmanda, INT_TO_ENUM(PED_COMPONENT,4), 2, 0, 0) //(lowr) SET_PED_COMPONENT_VARIATION(pedAmanda, INT_TO_ENUM(PED_COMPONENT,5), 0, 0, 0) //(hand) SET_PED_COMPONENT_VARIATION(pedAmanda, INT_TO_ENUM(PED_COMPONENT,7), 0, 0, 0) //(teef) SET_PED_COMPONENT_VARIATION(pedAmanda, PED_COMP_DECL, 1, 0, 0) //(teef) ADD_PED_FOR_DIALOGUE(myScriptedSpeech, 2, pedAmanda, "AMANDA") SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedAmanda, TRUE) SET_PED_AS_FRIENDLY(pedAmanda, FALSE) SET_PED_CONFIG_FLAG(pedAmanda, PCF_RunFromFiresAndExplosions, FALSE) SET_PED_CONFIG_FLAG(pedAmanda, PCF_DisableExplosionReactions, TRUE) SET_PED_CONFIG_FLAG(pedAmanda, PCF_RunFromFiresAndExplosions, FALSE) SET_PED_CONFIG_FLAG(pedAmanda, PCF_DisableExplosionReactions, TRUE) ADD_PED_FOR_DIALOGUE(myScriptedSpeech, 2, pedAmanda, "AMANDA") ENDPROC PROC CREATE_TRACY() pedTracey = CREATE_PED(PEDTYPE_MISSION, IG_TRACYDISANTO, << -803.350, 172.900, 75.700 >>, 55.000) ADD_PED_FOR_DIALOGUE(myScriptedSpeech, 3, pedTracey, "TRACEY") SET_PED_AS_FRIENDLY(pedTracey, FALSE) SET_PED_SUFFERS_CRITICAL_HITS(pedTracey, FALSE) SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedTracey, TRUE) SET_PED_CONFIG_FLAG(pedTracey, PCF_DisableExplosionReactions, TRUE) SET_PED_CONFIG_FLAG(pedTracey, PCF_RunFromFiresAndExplosions, FALSE) SET_PED_COMPONENT_VARIATION(pedTracey, INT_TO_ENUM(PED_COMPONENT,0), 0, 1, 0) //(head) SET_PED_COMPONENT_VARIATION(pedTracey, INT_TO_ENUM(PED_COMPONENT,2), 2, 0, 0) //(hair) SET_PED_COMPONENT_VARIATION(pedTracey, INT_TO_ENUM(PED_COMPONENT,3), 2, 0, 0) //(uppr) SET_PED_COMPONENT_VARIATION(pedTracey, INT_TO_ENUM(PED_COMPONENT,4), 2, 0, 0) //(lowr) SET_PED_COMPONENT_VARIATION(pedTracey, INT_TO_ENUM(PED_COMPONENT,5), 0, 0, 0) //(hand) SET_PED_COMPONENT_VARIATION(pedTracey, INT_TO_ENUM(PED_COMPONENT,6), 2, 0, 0) //(feet) SET_PED_COMPONENT_VARIATION(pedTracey, INT_TO_ENUM(PED_COMPONENT,7), 0, 0, 0) //(teef) SET_PED_COMPONENT_VARIATION(pedTracey, INT_TO_ENUM(PED_COMPONENT,8), 1, 0, 0) //(accs) ENDPROC INT navBlockArea CONST_INT MOVP_ANTON 0 CONST_INT MOVP_CAMMAN 1 CONST_INT MOVP_LAZLOW 2 CONST_INT MOVP_AELLA 3 CONST_INT MOVP_BENTON 4 CONST_INT MOVP_MOLLY 5 CONST_INT MOVP_RUBEN 6 CONST_INT MOVP_FAN_A 7 CONST_INT MOVP_PAP1 8 CONST_INT MOVP_PAP2 9 CONST_INT MOVP_PAP3 10 CONST_INT MOVP_STAR_A 11 CONST_INT MOVP_FEM_A 12 CONST_INT MOVP_MILTON 13 CONST_INT MOVP_PAP1_A 14 CONST_INT MOVP_PAP2_A 15 CONST_INT MOVP_PAP3_A 16 CONST_INT MOVP_EX_1 17 CONST_INT MOVP_EX_2 18 CONST_INT MOVP_EX_3 19 CONST_INT MOVP_PAPEX1 20 CONST_INT MOVP_PAPEX2 21 CONST_INT MOVP_PRODUCER 22 CONST_INT MOVP_EXTRAGIRL 23 CONST_INT MOVP_MAX_PEDS 24 PED_INDEX pedsMoviePremier[MOVP_MAX_PEDS] OBJECT_INDEX oiRedCarpetObjects[13] VEHICLE_INDEX carTracey PICKUP_INDEX riflePickup INT iriflePickupPlacementFlags SEQUENCE_INDEX seqPhotographer PROC TASK_PLAY_ANIM_ADVANCED_WITH_DEATH_CHECK(PED_INDEX thisPed, STRING thisDict, STRING thisAnim, VECTOR vPos, VECTOR vRot, FLOAT fBlendin, FLOAt fBlendOut, INT iTimeToPlay, ANIMATION_FLAGS afFlags, FLOAT fStartPhase) IF NOT IS_PED_INJURED(thisPed) TASK_PLAY_ANIM_ADVANCED(thisPed, thisDict, thisAnim, vPos, vRot, fBlendin, fBlendOut, iTimeToPLay, afFlags, fStartPhase) ENDIF ENDPROC INT iCreateOverMultipleFrames FUNC BOOL CREATE_STAGE_ASSETS(MISSION_STAGE_FLAG stageAssetsToLoad) GET_CURRENT_PED_WEAPON(PLAYER_PED_ID(), wtCurentWeapon) PRINTLN("MICHAEL 4: CREATING STAGE ASSETS FOR STAGE: ", ENUM_TO_INT(stageAssetsToLoad)) SWITCH stageAssetsToLoad CASE STAGE_PICKUP_JIMMY pedJimmy = CREATE_PED(PEDTYPE_MISSION, IG_JIMMYDISANTO, <<-719.4904, -162.2617, 36.0158>>, 338.8036) ADD_PED_FOR_DIALOGUE(myScriptedSpeech, 1, pedJimmy, "JIMMY") SET_JIMMYS_TUX() SET_PED_AS_FRIENDLY(pedJimmy) SET_PED_CONFIG_FLAG(pedJimmy, PCF_RunFromFiresAndExplosions, FALSE) TASK_LOOK_AT_ENTITY(pedJimmy, PLAYER_PED_ID(), INFINITE_TASK_TIME ,SLF_WHILE_NOT_IN_FOV) CLEAR_AREA_OF_VEHICLES(<<-730.7252, -144.1218, 36.2103>>, 10.0) carMichael = CREATE_STRETCH() SET_ENTITY_ROTATION(carMichael, GET_ROTATION_OF_VEHICLE_RECORDING_AT_TIME(1, 0.0, "MIC4")) SET_ENTITY_COORDS(carMichael, GET_POSITION_OF_VEHICLE_RECORDING_AT_TIME(1, 0.0, "MIC4")) SET_VEHICLE_ENGINE_ON(carMichael, TRUE, TRUE) SET_VEHICLE_LIGHTS(carMichael, SET_VEHICLE_LIGHTS_ON) SET_VEHICLE_RADIO_ENABLED(carMichael, FALSE) //FREEZE_ENTITY_POSITION(carMichael, TRUE) pedLimoDriver = CREATE_PED_INSIDE_VEHICLE(carMichael, PEDTYPE_MISSION, S_M_M_MovPrem_01) SET_PED_CAN_BE_DRAGGED_OUT(pedLimoDriver, FALSE) SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedLimoDriver, TRUE) SET_PED_CONFIG_FLAG(pedLimoDriver, PCF_RunFromFiresAndExplosions, FALSE) BREAK CASE STAGE_MOVIE_PREMIERE_CUT SWITCH iCreateOverMultipleFrames CASE 0 // SET_REDUCE_PED_MODEL_BUDGET(TRUE) SET_REDUCE_VEHICLE_MODEL_BUDGET(TRUE) SET_PED_POPULATION_BUDGET(1) SET_VEHICLE_POPULATION_BUDGET(1) //ADD_RELATIONSHIP_GROUP("Leadin", g_sTriggerSceneAssets.relGroup) g_sTriggerSceneAssets.scenarioBlocking = ADD_SCENARIO_BLOCKING_AREA(<<292.424530,172.560867,109.715904>> - <<61.000000,50.250000,8.500000>>, <<292.424530,172.560867,109.715904>> + <<61.000000,50.250000,8.500000>>) SET_PED_NON_CREATION_AREA(<<292.424530,172.560867,109.715904>> - <<61.000000,50.250000,8.500000>>, <<292.424530,172.560867,109.715904>> + <<61.000000,50.250000,8.500000>>) SET_ROADS_IN_AREA(<<292.424530,172.560867,109.715904>> - <<61.000000,50.250000,8.500000>>, <<292.424530,172.560867,109.715904>> + <<61.000000,50.250000,8.500000>>, FALSE) CLEAR_AREA(<<297.8264, 191.4778, 103.3186>>, 20.0, TRUE) navBlockArea = ADD_NAVMESH_BLOCKING_OBJECT(<<292.424530,172.560867,109.715904>>, <<61.000000,50.250000,8.500000>>, 0.0) REQUEST_IPL("redCarpet") //Lazlow interview Anton pedsMoviePremier[MOVP_ANTON] = CREATE_PED(PEDTYPE_MISSION, U_M_Y_ANTONB,<<300.5, 203.51, 103.4>>) SET_PED_COMPONENT_VARIATION(pedsMoviePremier[MOVP_ANTON], INT_TO_ENUM(PED_COMPONENT,0), 0, 0, 0) //(head) SET_PED_COMPONENT_VARIATION(pedsMoviePremier[MOVP_ANTON], INT_TO_ENUM(PED_COMPONENT,3), 1, 0, 0) //(uppr) SET_PED_COMPONENT_VARIATION(pedsMoviePremier[MOVP_ANTON], INT_TO_ENUM(PED_COMPONENT,4), 1, 0, 0) //(lowr) iCreateOverMultipleFrames++ BREAK CASE 1 pedsMoviePremier[MOVP_CAMMAN] = CREATE_PED(PEDTYPE_MISSION, S_M_Y_Grip_01,<<300.5, 203.51, 103.4>>) //Camera men oiRedCarpetObjects[0] = CREATE_OBJECT(Prop_V_Cam_01, <<300.5, 203.51, 103.4>>) ATTACH_ENTITY_TO_ENTITY(oiRedCarpetObjects[0],pedsMoviePremier[MOVP_CAMMAN], GET_PED_BONE_INDEX(pedsMoviePremier[MOVP_CAMMAN], BONETAG_PH_R_HAND), <<0.0, 0.0, 0.0>>, <<0.0, 0.0, 0.0>>) SET_PED_COMPONENT_VARIATION(pedsMoviePremier[MOVP_CAMMAN], INT_TO_ENUM(PED_COMPONENT,0), 0, 0, 0) //(head) SET_PED_COMPONENT_VARIATION(pedsMoviePremier[MOVP_CAMMAN], INT_TO_ENUM(PED_COMPONENT,3), 1, 3, 0) //(uppr) SET_PED_COMPONENT_VARIATION(pedsMoviePremier[MOVP_CAMMAN], INT_TO_ENUM(PED_COMPONENT,4), 0, 0, 0) //(lowr) SET_PED_COMPONENT_VARIATION(pedsMoviePremier[MOVP_CAMMAN], INT_TO_ENUM(PED_COMPONENT,8), 0, 1, 0) //(accs) iCreateOverMultipleFrames++ BREAK CASE 2 pedsMoviePremier[MOVP_LAZLOW] = CREATE_PED(PEDTYPE_MISSION, IG_LAZLOW,<<300.5, 203.51, 103.4>>) SET_PED_COMPONENT_VARIATION(pedsMoviePremier[MOVP_LAZLOW], INT_TO_ENUM(PED_COMPONENT,0), 0, 1, 0) //(head) SET_PED_COMPONENT_VARIATION(pedsMoviePremier[MOVP_LAZLOW], INT_TO_ENUM(PED_COMPONENT,2), 1, 0, 0) //(hair) SET_PED_COMPONENT_VARIATION(pedsMoviePremier[MOVP_LAZLOW], INT_TO_ENUM(PED_COMPONENT,3), 0, 0, 0) //(uppr) SET_PED_COMPONENT_VARIATION(pedsMoviePremier[MOVP_LAZLOW], INT_TO_ENUM(PED_COMPONENT,4), 0, 0, 0) //(lowr) SET_PED_COMPONENT_VARIATION(pedsMoviePremier[MOVP_LAZLOW], INT_TO_ENUM(PED_COMPONENT,5), 0, 0, 0) //(hand) SET_PED_COMPONENT_VARIATION(pedsMoviePremier[MOVP_LAZLOW], INT_TO_ENUM(PED_COMPONENT,7), 0, 0, 0) //(teef) SET_PED_COMPONENT_VARIATION(pedsMoviePremier[MOVP_LAZLOW], INT_TO_ENUM(PED_COMPONENT,8), 0, 0, 0) //(accs) //SET_PED_COMPONENT_VARIATION(pedsMoviePremier[MOVP_LAZLOW], INT_TO_ENUM(PED_COMPONENT,9), 0, 7, 0) //(task) //SET_PED_COMPONENT_VARIATION(pedsMoviePremier[MOVP_LAZLOW], INT_TO_ENUM(PED_COMPONENT,10), 0, 7, 0) //(decl) //SET_PED_COMPONENT_VARIATION(pedsMoviePremier[MOVP_LAZLOW],PED_COMP_SPECIAL2,0,7)// = ALL //Hair with no pony tail SET_PED_COMPONENT_VARIATION(pedsMoviePremier[MOVP_LAZLOW],PED_COMP_HAIR,1,0) oiRedCarpetObjects[7] = CREATE_OBJECT(P_ING_MICROPHONEL_01, <<300.5, 203.51, 103.4>>) ATTACH_ENTITY_TO_ENTITY(oiRedCarpetObjects[7],pedsMoviePremier[MOVP_LAZLOW], GET_PED_BONE_INDEX(pedsMoviePremier[MOVP_LAZLOW], BONETAG_PH_R_HAND), <<0.0, 0.0, 0.0>>, <<0.0, 0.0, 0.0>>) iCreateOverMultipleFrames++ BREAK CASE 3 //4stars reacting to paps/crowd pedsMoviePremier[MOVP_AELLA] = CREATE_PED(PEDTYPE_MISSION, S_F_Y_MovPrem_01,<<300.5, 203.51, 103.4>>) SET_FACIAL_IDLE_ANIM_OVERRIDE(pedsMoviePremier[MOVP_AELLA], "mood_happy_1") iCreateOverMultipleFrames++ BREAK CASE 4 pedsMoviePremier[MOVP_BENTON] = CREATE_PED(PEDTYPE_MISSION, S_F_Y_MovPrem_01,<<300.5, 203.51, 103.4>>) SET_FACIAL_IDLE_ANIM_OVERRIDE(pedsMoviePremier[MOVP_BENTON], "mood_happy_1") iCreateOverMultipleFrames++ BREAK CASE 5 pedsMoviePremier[MOVP_MOLLY] = CREATE_PED(PEDTYPE_MISSION, S_F_Y_MovPrem_01,<<300.5, 203.51, 103.4>>) SET_FACIAL_IDLE_ANIM_OVERRIDE(pedsMoviePremier[MOVP_MOLLY], "mood_happy_1") iCreateOverMultipleFrames++ BREAK CASE 6 pedsMoviePremier[MOVP_RUBEN] = CREATE_PED(PEDTYPE_MISSION, S_F_Y_MovPrem_01,<<300.5, 203.51, 103.4>>) SET_FACIAL_IDLE_ANIM_OVERRIDE(pedsMoviePremier[MOVP_RUBEN], "mood_happy_1") iCreateOverMultipleFrames++ BREAK CASE 7 //Actress posing pedsMoviePremier[MOVP_FAN_A] = CREATE_PED(PEDTYPE_MISSION, A_M_M_Paparazzi_01,<<300.5, 203.51, 103.4>>) iCreateOverMultipleFrames++ BREAK CASE 8 pedsMoviePremier[MOVP_PAP1] = CREATE_PED(PEDTYPE_MISSION, A_M_M_Paparazzi_01,<<300.5, 203.51, 103.4>>) //paps 1 oiRedCarpetObjects[1] = CREATE_OBJECT(prop_pap_camera_01, <<300.5, 203.51, 103.4>>) ATTACH_ENTITY_TO_ENTITY(oiRedCarpetObjects[1],pedsMoviePremier[MOVP_PAP1], GET_PED_BONE_INDEX(pedsMoviePremier[MOVP_PAP1], BONETAG_PH_R_HAND), <<0.0, 0.0, 0.0>>, <<0.0, 0.0, 0.0>>) iCreateOverMultipleFrames++ BREAK CASE 9 pedsMoviePremier[MOVP_PAP2] = CREATE_PED(PEDTYPE_MISSION, A_M_M_Paparazzi_01,<<300.5, 203.51, 103.4>>) oiRedCarpetObjects[2] = CREATE_OBJECT(prop_pap_camera_01, <<300.5, 203.51, 103.4>>) ATTACH_ENTITY_TO_ENTITY(oiRedCarpetObjects[2],pedsMoviePremier[MOVP_PAP2], GET_PED_BONE_INDEX(pedsMoviePremier[MOVP_PAP2], BONETAG_PH_R_HAND), <<0.0, 0.0, 0.0>>, <<0.0, 0.0, 0.0>>) iCreateOverMultipleFrames++ BREAK CASE 10 pedsMoviePremier[MOVP_PAP3] = CREATE_PED(PEDTYPE_MISSION, A_M_M_Paparazzi_01,<<300.5, 203.51, 103.4>>) oiRedCarpetObjects[3] = CREATE_OBJECT(prop_pap_camera_01, <<300.5, 203.51, 103.4>>) ATTACH_ENTITY_TO_ENTITY(oiRedCarpetObjects[3],pedsMoviePremier[MOVP_PAP3], GET_PED_BONE_INDEX(pedsMoviePremier[MOVP_PAP3], BONETAG_PH_R_HAND), <<0.0, 0.0, 0.0>>, <<0.0, 0.0, 0.0>>) iCreateOverMultipleFrames++ BREAK CASE 11 pedsMoviePremier[MOVP_STAR_A] = CREATE_PED(PEDTYPE_MISSION, S_F_Y_MovPrem_01,<<300.5, 203.51, 103.4>>) iCreateOverMultipleFrames++ BREAK CASE 12 pedsMoviePremier[MOVP_PAPEX1] = CREATE_PED(PEDTYPE_MISSION, A_M_M_Paparazzi_01,<<289.7286, 181.3276, 103.3649>>, 248.7409) oiRedCarpetObjects[8] = CREATE_OBJECT(prop_pap_camera_01, <<300.5, 203.51, 103.4>>) ATTACH_ENTITY_TO_ENTITY(oiRedCarpetObjects[8],pedsMoviePremier[MOVP_PAPEX1], GET_PED_BONE_INDEX(pedsMoviePremier[MOVP_PAPEX1], BONETAG_PH_R_HAND), <<0.0, 0.0, 0.0>>, <<0.0, 0.0, 0.0>>) TASK_PLAY_ANIM(pedsMoviePremier[MOVP_PAPEX1], "missmic4premiere", "Prem_Milton_Pap1_A", INSTANT_BLEND_IN, SLOW_BLEND_OUT, -1, AF_NOT_INTERRUPTABLE | AF_USE_KINEMATIC_PHYSICS | AF_LOOPING, 0.462) iCreateOverMultipleFrames++ BREAK CASE 13 pedsMoviePremier[MOVP_PAPEX2] = CREATE_PED(PEDTYPE_MISSION, A_M_M_Paparazzi_01,<<290.0628, 183.0464, 103.3724>>, 244.2059) oiRedCarpetObjects[9] = CREATE_OBJECT(prop_pap_camera_01, <<300.5, 203.51, 103.4>>) ATTACH_ENTITY_TO_ENTITY(oiRedCarpetObjects[9],pedsMoviePremier[MOVP_PAPEX2], GET_PED_BONE_INDEX(pedsMoviePremier[MOVP_PAPEX2], BONETAG_PH_R_HAND), <<0.0, 0.0, 0.0>>, <<0.0, 0.0, 0.0>>) // oiRedCarpetObjects[11] = CREATE_OBJECT(prop_pap_camera_01, <<300.5, 203.51, 103.4>>) // ATTACH_ENTITY_TO_ENTITY(oiRedCarpetObjects[11],pedsMoviePremier[MOVP_PAP1_A], GET_PED_BONE_INDEX(pedsMoviePremier[MOVP_PAPEX2], BONETAG_PH_R_HAND), <<0.0, 0.0, 0.0>>, <<0.0, 0.0, 0.0>>) // TASK_PLAY_ANIM(pedsMoviePremier[MOVP_PAPEX2], "missmic4premiere", "prem_actress_pap1_a", INSTANT_BLEND_IN, SLOW_BLEND_OUT, -1, AF_NOT_INTERRUPTABLE | AF_USE_KINEMATIC_PHYSICS | AF_LOOPING, 0.462) iCreateOverMultipleFrames++ BREAK CASE 14 //Milton posing pedsMoviePremier[MOVP_FEM_A] = CREATE_PED(PEDTYPE_MISSION, S_M_Y_Grip_01,<<300.5, 203.51, 103.4>>) iCreateOverMultipleFrames++ BREAK CASE 15 pedsMoviePremier[MOVP_MILTON] = CREATE_PED(PEDTYPE_MISSION, IG_Milton,<<300.5, 203.51, 103.4>>) SET_PED_COMPONENT_VARIATION(pedsMoviePremier[MOVP_MILTON], INT_TO_ENUM(PED_COMPONENT,0), 0, 0, 0) //(head) SET_PED_COMPONENT_VARIATION(pedsMoviePremier[MOVP_MILTON], INT_TO_ENUM(PED_COMPONENT,2), 0, 0, 0) //(hair) SET_PED_COMPONENT_VARIATION(pedsMoviePremier[MOVP_MILTON], INT_TO_ENUM(PED_COMPONENT,3), 0, 0, 0) //(uppr) SET_PED_COMPONENT_VARIATION(pedsMoviePremier[MOVP_MILTON], INT_TO_ENUM(PED_COMPONENT,4), 0, 0, 0) //(lowr) SET_PED_COMPONENT_VARIATION(pedsMoviePremier[MOVP_MILTON], INT_TO_ENUM(PED_COMPONENT,5), 0, 0, 0) //(hand) SET_PED_COMPONENT_VARIATION(pedsMoviePremier[MOVP_MILTON], INT_TO_ENUM(PED_COMPONENT,6), 0, 0, 0) //(feet) SET_PED_COMPONENT_VARIATION(pedsMoviePremier[MOVP_MILTON], INT_TO_ENUM(PED_COMPONENT,7), 0, 0, 0) //(teef) SET_PED_COMPONENT_VARIATION(pedsMoviePremier[MOVP_MILTON], INT_TO_ENUM(PED_COMPONENT,11), 0, 0, 0) //(jbib) iCreateOverMultipleFrames++ BREAK CASE 16 pedsMoviePremier[MOVP_PAP1_A] = CREATE_PED(PEDTYPE_MISSION, A_M_M_Paparazzi_01,<<299.0112, 182.2089, 103.1925>>, 136.6234) //paps 2 oiRedCarpetObjects[4] = CREATE_OBJECT(prop_pap_camera_01, <<300.5, 203.51, 103.4>>) ATTACH_ENTITY_TO_ENTITY(oiRedCarpetObjects[4],pedsMoviePremier[MOVP_PAP1_A], GET_PED_BONE_INDEX(pedsMoviePremier[MOVP_PAP1_A], BONETAG_PH_R_HAND), <<0.0, 0.0, 0.0>>, <<0.0, 0.0, 0.0>>) TASK_PLAY_ANIM(pedsMoviePremier[MOVP_PAP1_A], "missmic4premiere", "Prem_Milton_Pap1_A", INSTANT_BLEND_IN, SLOW_BLEND_OUT, -1, AF_NOT_INTERRUPTABLE | AF_USE_KINEMATIC_PHYSICS | AF_LOOPING, 0.462) iCreateOverMultipleFrames++ BREAK CASE 17 pedsMoviePremier[MOVP_PAP2_A] = CREATE_PED(PEDTYPE_MISSION, A_M_M_Paparazzi_01,<<300.5, 203.51, 103.4>>) oiRedCarpetObjects[5] = CREATE_OBJECT(prop_pap_camera_01, <<300.5, 203.51, 103.4>>) ATTACH_ENTITY_TO_ENTITY(oiRedCarpetObjects[5],pedsMoviePremier[MOVP_PAP2_A], GET_PED_BONE_INDEX(pedsMoviePremier[MOVP_PAP2_A], BONETAG_PH_R_HAND), <<0.0, 0.0, 0.0>>, <<0.0, 0.0, 0.0>>) iCreateOverMultipleFrames++ BREAK CASE 18 pedsMoviePremier[MOVP_PAP3_A] = CREATE_PED(PEDTYPE_MISSION, A_M_M_Paparazzi_01,<<300.5, 203.51, 103.4>>) oiRedCarpetObjects[6] = CREATE_OBJECT(prop_pap_camera_01, <<300.5, 203.51, 103.4>>) ATTACH_ENTITY_TO_ENTITY(oiRedCarpetObjects[6],pedsMoviePremier[MOVP_PAP3_A], GET_PED_BONE_INDEX(pedsMoviePremier[MOVP_PAP3_A], BONETAG_PH_R_HAND), <<0.0, 0.0, 0.0>>, <<0.0, 0.0, 0.0>>) iCreateOverMultipleFrames++ BREAK CASE 19 pedsMoviePremier[MOVP_EX_1] = CREATE_PED(PEDTYPE_MISSION, A_M_M_Paparazzi_01,<<302.6787, 190.2461, 103.0710>>, 81.0002) TASK_PLAY_ANIM(pedsMoviePremier[MOVP_EX_1], "missmic4premiere", "crowd_a_idle_01", NORMAL_BLEND_IN, NORMAL_BLEND_OUT, -1, AF_LOOPING) iCreateOverMultipleFrames++ BREAK CASE 20 pedsMoviePremier[MOVP_EX_2] = CREATE_PED(PEDTYPE_MISSION, S_M_Y_Grip_01, <<305.6718, 194.9252, 103.1558>>, 100.4348) TASK_PLAY_ANIM(pedsMoviePremier[MOVP_EX_2], "missmic4premiere", "crowd_b_idle_01", NORMAL_BLEND_IN, NORMAL_BLEND_OUT, -1, AF_LOOPING) iCreateOverMultipleFrames++ BREAK CASE 21 pedsMoviePremier[MOVP_EX_3] = CREATE_PED(PEDTYPE_MISSION, A_M_M_Paparazzi_01,<<300.6657, 180.2628, 102.9>>, 90.7576) //TASK_PLAY_ANIM(pedsMoviePremier[MOVP_EX_3], "missmic4premiere", "crowd_c_idle_01", NORMAL_BLEND_IN, NORMAL_BLEND_OUT, -1, AF_LOOPING) oiRedCarpetObjects[10] = CREATE_OBJECT(prop_pap_camera_01, <<300.5, 203.51, 103.4>>) ATTACH_ENTITY_TO_ENTITY(oiRedCarpetObjects[10],pedsMoviePremier[MOVP_EX_3], GET_PED_BONE_INDEX(pedsMoviePremier[MOVP_EX_3], BONETAG_PH_R_HAND), <<0.0, 0.0, 0.0>>, <<0.0, 0.0, 0.0>>) OPEN_SEQUENCE_TASK(seqPhotographer) TASK_PLAY_ANIM(NULL, "missmic4premiere", "PAP_IDLE_ACTION_01", INSTANT_BLEND_IN, SLOW_BLEND_OUT, -1, AF_NOT_INTERRUPTABLE | AF_USE_KINEMATIC_PHYSICS) TASK_PLAY_ANIM(NULL, "missmic4premiere", "PAP_IDLE_ACTION_02", INSTANT_BLEND_IN, SLOW_BLEND_OUT, -1, AF_NOT_INTERRUPTABLE | AF_USE_KINEMATIC_PHYSICS) TASK_PLAY_ANIM(NULL, "missmic4premiere", "PAP_IDLE_ACTION_02", INSTANT_BLEND_IN, SLOW_BLEND_OUT, -1, AF_NOT_INTERRUPTABLE | AF_USE_KINEMATIC_PHYSICS) TASK_PLAY_ANIM(NULL, "missmic4premiere", "PAP_IDLE_ACTION_02", INSTANT_BLEND_IN, SLOW_BLEND_OUT, -1, AF_NOT_INTERRUPTABLE | AF_USE_KINEMATIC_PHYSICS) SET_SEQUENCE_TO_REPEAT(seqPhotographer, REPEAT_FOREVER) CLOSE_SEQUENCE_TASK(seqPhotographer) TASK_PERFORM_SEQUENCE(pedsMoviePremier[MOVP_EX_3], seqPhotographer) iCreateOverMultipleFrames++ BREAK CASE 22 pedsMoviePremier[MOVP_PRODUCER] = CREATE_PED(PEDTYPE_MISSION, S_M_M_MovPrem_01,<<297.0116, 180.6192, 103.2445>>, 127.4307) TASK_PLAY_ANIM(pedsMoviePremier[MOVP_PRODUCER], "missmic4premiere", "prem_producer_argue_a", INSTANT_BLEND_IN, SLOW_BLEND_OUT, -1, AF_NOT_INTERRUPTABLE | AF_USE_KINEMATIC_PHYSICS | AF_LOOPING | AF_USE_MOVER_EXTRACTION) oiRedCarpetObjects[12] = CREATE_OBJECT(PROP_PHONE_ING_02, <<300.5, 203.51, 103.4>>) ATTACH_ENTITY_TO_ENTITY(oiRedCarpetObjects[12],pedsMoviePremier[MOVP_PRODUCER], GET_PED_BONE_INDEX(pedsMoviePremier[MOVP_PRODUCER], BONETAG_PH_R_HAND), <<0.0, 0.0, 0.0>>, <<0.0, 0.0, 0.0>>) iCreateOverMultipleFrames++ BREAK CASE 23 pedsMoviePremier[MOVP_EXTRAGIRL] = CREATE_PED(PEDTYPE_MISSION, S_F_Y_MovPrem_01,<<292.7951, 181.5232, 103.3154>>, 88.9302) SET_FACIAL_IDLE_ANIM_OVERRIDE(pedsMoviePremier[MOVP_EXTRAGIRL], "mood_happy_1") TASK_PLAY_ANIM(pedsMoviePremier[MOVP_EXTRAGIRL], "missmic4premiere", "Prem_4stars_A_Molly", INSTANT_BLEND_IN, SLOW_BLEND_OUT, -1, AF_NOT_INTERRUPTABLE | AF_USE_KINEMATIC_PHYSICS | AF_LOOPING) iCreateOverMultipleFrames++ BREAK CASE 24 iCreateOverMultipleFrames++ BREAK CASE 25 //Lazlow interview Anton TASK_PLAY_ANIM_ADVANCED_WITH_DEATH_CHECK(pedsMoviePremier[MOVP_ANTON], "missmic4premiere", "Interview_Short_Anton", <<300.5, 203.51, 103.4>>, <<0.0, 0.0, 0.0>>, INSTANT_BLEND_IN, SLOW_BLEND_OUT, -1, AF_NOT_INTERRUPTABLE | AF_USE_KINEMATIC_PHYSICS | AF_LOOPING | AF_EXTRACT_INITIAL_OFFSET | AF_USE_MOVER_EXTRACTION, 0.462) TASK_PLAY_ANIM_ADVANCED_WITH_DEATH_CHECK(pedsMoviePremier[MOVP_CAMMAN], "missmic4premiere", "Interview_Short_Camman", <<300.5, 203.51, 103.4>>, <<0.0, 0.0, 0.0>>, INSTANT_BLEND_IN, SLOW_BLEND_OUT, -1, AF_NOT_INTERRUPTABLE | AF_USE_KINEMATIC_PHYSICS | AF_LOOPING | AF_EXTRACT_INITIAL_OFFSET | AF_USE_MOVER_EXTRACTION, 0.462) TASK_PLAY_ANIM_ADVANCED_WITH_DEATH_CHECK(pedsMoviePremier[MOVP_LAZLOW], "missmic4premiere", "Interview_Short_Lazlow", <<300.5, 203.51, 103.4>>, <<0.0, 0.0, 0.0>>, INSTANT_BLEND_IN, SLOW_BLEND_OUT, -1, AF_NOT_INTERRUPTABLE | AF_USE_KINEMATIC_PHYSICS | AF_LOOPING | AF_EXTRACT_INITIAL_OFFSET | AF_USE_MOVER_EXTRACTION, 0.462) //4stars reacting to paps/crowd TASK_PLAY_ANIM_ADVANCED_WITH_DEATH_CHECK(pedsMoviePremier[MOVP_AELLA], "missmic4premiere", "Prem_4stars_A_Aella", <<300.5, 203.51, 103.4>>, <<0.0, 0.0, 0.0>>, INSTANT_BLEND_IN, SLOW_BLEND_OUT, -1, AF_NOT_INTERRUPTABLE | AF_USE_KINEMATIC_PHYSICS | AF_LOOPING | AF_EXTRACT_INITIAL_OFFSET | AF_USE_MOVER_EXTRACTION, 0.462) TASK_PLAY_ANIM_ADVANCED_WITH_DEATH_CHECK(pedsMoviePremier[MOVP_BENTON], "missmic4premiere", "Prem_4stars_A_Benton", <<300.5, 203.51, 103.4>>, <<0.0, 0.0, 0.0>>, INSTANT_BLEND_IN, SLOW_BLEND_OUT, -1, AF_NOT_INTERRUPTABLE | AF_USE_KINEMATIC_PHYSICS | AF_LOOPING | AF_EXTRACT_INITIAL_OFFSET | AF_USE_MOVER_EXTRACTION, 0.462) TASK_PLAY_ANIM_ADVANCED_WITH_DEATH_CHECK(pedsMoviePremier[MOVP_MOLLY], "missmic4premiere", "Prem_4stars_A_Molly", <<300.5, 203.51, 103.4>>, <<0.0, 0.0, 0.0>>, INSTANT_BLEND_IN, SLOW_BLEND_OUT, -1, AF_NOT_INTERRUPTABLE | AF_USE_KINEMATIC_PHYSICS | AF_LOOPING | AF_EXTRACT_INITIAL_OFFSET | AF_USE_MOVER_EXTRACTION, 0.462) TASK_PLAY_ANIM_ADVANCED_WITH_DEATH_CHECK(pedsMoviePremier[MOVP_RUBEN], "missmic4premiere", "Prem_4stars_A_Ruben", <<300.5, 203.51, 103.4>>, <<0.0, 0.0, 0.0>>, INSTANT_BLEND_IN, SLOW_BLEND_OUT, -1, AF_NOT_INTERRUPTABLE | AF_USE_KINEMATIC_PHYSICS | AF_LOOPING | AF_EXTRACT_INITIAL_OFFSET | AF_USE_MOVER_EXTRACTION, 0.462) //Actress posing TASK_PLAY_ANIM_ADVANCED_WITH_DEATH_CHECK(pedsMoviePremier[MOVP_FAN_A], "missmic4premiere", "Prem_Actress_fan_A", <<300.5, 203.51, 103.4>>, <<0.0, 0.0, 0.0>>, INSTANT_BLEND_IN, SLOW_BLEND_OUT, -1, AF_NOT_INTERRUPTABLE | AF_USE_KINEMATIC_PHYSICS | AF_LOOPING | AF_EXTRACT_INITIAL_OFFSET | AF_USE_MOVER_EXTRACTION, 0.462) TASK_PLAY_ANIM_ADVANCED_WITH_DEATH_CHECK(pedsMoviePremier[MOVP_PAP1], "missmic4premiere", "Prem_Actress_pap1_A", <<300.5, 203.51, 103.4>>, <<0.0, 0.0, 0.0>>, INSTANT_BLEND_IN, SLOW_BLEND_OUT, -1, AF_NOT_INTERRUPTABLE | AF_USE_KINEMATIC_PHYSICS | AF_LOOPING | AF_EXTRACT_INITIAL_OFFSET | AF_USE_MOVER_EXTRACTION, 0.462) TASK_PLAY_ANIM_ADVANCED_WITH_DEATH_CHECK(pedsMoviePremier[MOVP_PAP2], "missmic4premiere", "Prem_Actress_pap2_A", <<300.5, 203.51, 103.4>>, <<0.0, 0.0, 0.0>>, INSTANT_BLEND_IN, SLOW_BLEND_OUT, -1, AF_NOT_INTERRUPTABLE | AF_USE_KINEMATIC_PHYSICS | AF_LOOPING | AF_EXTRACT_INITIAL_OFFSET | AF_USE_MOVER_EXTRACTION, 0.462) TASK_PLAY_ANIM_ADVANCED_WITH_DEATH_CHECK(pedsMoviePremier[MOVP_PAP3], "missmic4premiere", "Prem_Actress_pap3_A", <<300.5, 203.51, 103.4>>, <<0.0, 0.0, 0.0>>, INSTANT_BLEND_IN, SLOW_BLEND_OUT, -1, AF_NOT_INTERRUPTABLE | AF_USE_KINEMATIC_PHYSICS | AF_LOOPING | AF_EXTRACT_INITIAL_OFFSET | AF_USE_MOVER_EXTRACTION, 0.462) TASK_PLAY_ANIM_ADVANCED_WITH_DEATH_CHECK(pedsMoviePremier[MOVP_STAR_A], "missmic4premiere", "Prem_Actress_star_A", <<300.5, 203.51, 103.4>>, <<0.0, 0.0, 0.0>>, INSTANT_BLEND_IN, SLOW_BLEND_OUT, -1, AF_NOT_INTERRUPTABLE | AF_USE_KINEMATIC_PHYSICS | AF_LOOPING | AF_EXTRACT_INITIAL_OFFSET | AF_USE_MOVER_EXTRACTION, 0.462) //Milton posing TASK_PLAY_ANIM_ADVANCED_WITH_DEATH_CHECK(pedsMoviePremier[MOVP_FEM_A], "missmic4premiere", "Prem_Milton_Fem_A", <<300.5, 203.51, 103.4>>, <<0.0, 0.0, 0.0>>, INSTANT_BLEND_IN, SLOW_BLEND_OUT, -1, AF_NOT_INTERRUPTABLE | AF_USE_KINEMATIC_PHYSICS | AF_LOOPING | AF_EXTRACT_INITIAL_OFFSET | AF_USE_MOVER_EXTRACTION, 0.462) TASK_PLAY_ANIM_ADVANCED_WITH_DEATH_CHECK(pedsMoviePremier[MOVP_MILTON], "missmic4premiere", "Prem_Milton_Milton_A", <<300.5, 203.51, 103.4>>, <<0.0, 0.0, 0.0>>, INSTANT_BLEND_IN, SLOW_BLEND_OUT, -1, AF_NOT_INTERRUPTABLE | AF_USE_KINEMATIC_PHYSICS | AF_LOOPING | AF_EXTRACT_INITIAL_OFFSET | AF_USE_MOVER_EXTRACTION, 0.462) // TASK_PLAY_ANIM_ADVANCED_WITH_DEATH_CHECK(pedsMoviePremier[MOVP_PAP1_A], "missmic4premiere", "Prem_Milton_Pap1_A", <<300.5, 203.51, 103.4>>, <<0.0, 0.0, 0.0>>, // INSTANT_BLEND_IN, SLOW_BLEND_OUT, -1, // AF_NOT_INTERRUPTABLE | AF_USE_KINEMATIC_PHYSICS | AF_LOOPING | AF_EXTRACT_INITIAL_OFFSET | AF_USE_MOVER_EXTRACTION, 0.462) TASK_PLAY_ANIM_ADVANCED_WITH_DEATH_CHECK(pedsMoviePremier[MOVP_PAP2_A], "missmic4premiere", "Prem_Milton_Pap2_A", <<300.5, 203.51, 103.4>>, <<0.0, 0.0, 0.0>>, INSTANT_BLEND_IN, SLOW_BLEND_OUT, -1, AF_NOT_INTERRUPTABLE | AF_USE_KINEMATIC_PHYSICS | AF_LOOPING | AF_EXTRACT_INITIAL_OFFSET | AF_USE_MOVER_EXTRACTION, 0.462) TASK_PLAY_ANIM_ADVANCED_WITH_DEATH_CHECK(pedsMoviePremier[MOVP_PAP3_A], "missmic4premiere", "Prem_Milton_Pap3_A", <<300.5, 203.51, 103.4>>, <<0.0, 0.0, 0.0>>, INSTANT_BLEND_IN, SLOW_BLEND_OUT, -1, AF_NOT_INTERRUPTABLE | AF_USE_KINEMATIC_PHYSICS | AF_LOOPING | AF_EXTRACT_INITIAL_OFFSET | AF_USE_MOVER_EXTRACTION, 0.462) INT i FOR i = 0 TO MOVP_MAX_PEDS - 1 //SET_+(pedsMoviePremier[i], g_sTriggerSceneAssets.relGroup) IF NOT IS_ENTITY_DEAD(pedsMoviePremier[i]) SET_PED_AS_FRIENDLY(pedsMoviePremier[i], TRUE) IF i <> MOVP_PRODUCER FREEZE_ENTITY_POSITION(pedsMoviePremier[i], TRUE) ENDIF FORCE_PED_AI_AND_ANIMATION_UPDATE(pedsMoviePremier[i]) #IF IS_DEBUG_BUILD debugPedName = "RedC:" debugPedName += i SET_PED_NAME_DEBUG(pedsMoviePremier[i], debugPedName) #ENDIF ENDIF ENDFOR ADD_PED_FOR_DIALOGUE(myScriptedSpeech, 8, pedsMoviePremier[MOVP_PRODUCER], "PRODUCER") ADD_PED_FOR_DIALOGUE(myScriptedSpeech, 6, pedsMoviePremier[MOVP_LAZLOW], "LAZLOW") ADD_PED_FOR_DIALOGUE(myScriptedSpeech, 7, pedsMoviePremier[MOVP_ANTON], "ANTON") iCreateOverMultipleFrames = 0 //Reset for next time RETURN TRUE BREAK ENDSWITCH //Adjusted paps positions RETURN FALSE BREAK CASE STAGE_GET_TO_MICHAELS_HOUSE carMichael = CREATE_STRETCH() pedJimmy = CREATE_PED(PEDTYPE_MISSION, IG_JIMMYDISANTO, << 303.5163, 201.2443, 103.3570 >>, 158.4110) ADD_PED_FOR_DIALOGUE(myScriptedSpeech, 1, pedJimmy, "JIMMY") SET_JIMMYS_TUX() SET_PED_AS_FRIENDLY(pedJimmy) // IF wtCurentWeapon = WEAPONTYPE_UNARMED // GIVE_WEAPON_TO_PED(PLAYER_PED_ID(), MichaelsWeapon, 1000, FALSE, FALSE) // SET_CURRENT_PED_WEAPON(PLAYER_PED_ID(), GET_BEST_PED_WEAPON(PLAYER_PED_ID()), FALSE) // ENDIF SET_MAX_WANTED_LEVEL(5) BREAK CASE STAGE_SAVE_AMANDA //CREATE_OBJECT( PROP_ , << -812.4667, 177.3469, 71.1530 >>) badguyCarOutsideHouse1 = CREATE_VEHICLE(MESA3, << -824.2127, 182.2403, 70.7416 >>, 340.1401) badguyCarOutsideHouse2 = CREATE_VEHICLE(MESA3, <<-818.2394, 185.0430, 71.2968>>, 311.4450) // SET_VEHICLE_DOOR_CONTROL(badguyCarOutsideHouse1, SC_DOOR_FRONT_LEFT, DT_DOOR_INTACT, 0.7) // SET_VEHICLE_DOOR_CONTROL(badguyCarOutsideHouse1, SC_DOOR_FRONT_RIGHT, DT_DOOR_INTACT, 1.0) SET_VEHICLE_DOOR_OPEN(badguyCarOutsideHouse1, SC_DOOR_FRONT_LEFT, FALSE, TRUE) SET_VEHICLE_DOOR_OPEN(badguyCarOutsideHouse1, SC_DOOR_FRONT_RIGHT, FALSE, TRUE) SET_VEHICLE_COLOURS(badguyCarOutsideHouse1, 0, 0) SET_VEHICLE_COLOURS(badguyCarOutsideHouse2, 0, 0) SET_VEHICLE_ON_GROUND_PROPERLY(badguyCarOutsideHouse1) SET_VEHICLE_ON_GROUND_PROPERLY(badguyCarOutsideHouse2) vAmandaScenePos = <<-807.239, 182.773, 74.000>> vAmandaSceneRot = <<0.0, 0.0, 20.0>> CREATE_AMANDA() oiAmandasShoe = CREATE_OBJECT(PROP_CS_AMANDA_SHOE, GET_ENTITY_COORDS(pedAmanda)) ATTACH_ENTITY_TO_ENTITY(oiAmandasShoe, pedAmanda, GET_PED_BONE_INDEX(pedAmanda, BONETAG_PH_R_HAND), <<0.0, 0.0, 0.0>>, <<0.0, 0.0, 0.0>>) // pedHostagetakerAmanda = CREATE_PED(PEDTYPE_MISSION, getRandomGoonModel(), << -809.6262, 179.8829, 71.1530 >>, 46.4666) GIVE_WEAPON_TO_PED(pedHostagetakerAmanda, WEAPONTYPE_PISTOL, INFINITE_AMMO, TRUE, TRUE) SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedHostagetakerAmanda, TRUE) SET_PED_SUFFERS_CRITICAL_HITS(pedHostagetakerAmanda, FALSE) SET_ENTITY_HEALTH(pedHostagetakerAmanda, 1000) SET_PED_ARMOUR(pedHostagetakerAmanda, 0) SET_PED_RELATIONSHIP_GROUP_HASH(pedHostagetakerAmanda, relGroupMerryWeather) SET_PED_CONFIG_FLAG(pedHostagetakerAmanda, PCF_RunFromFiresAndExplosions, FALSE) SET_PED_CONFIG_FLAG(pedHostagetakerAmanda, PCF_DisableExplosionReactions, TRUE) ADD_PED_FOR_DIALOGUE(myScriptedSpeech, 4, pedHostagetakerAmanda, "MERRYWEATHER1") /* START SYNCHRONIZED SCENE - */ iSceneId = CREATE_SYNCHRONIZED_SCENE(<<-807.239, 182.773, 74.000>>, <<0.0, 0.0, 20.0>>) TASK_SYNCHRONIZED_SCENE(pedAmanda, iSceneId, "misssolomon_5@stairs", "sol_5_stair_struggle_b_at", INSTANT_BLEND_IN, INSTANT_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS ) TASK_SYNCHRONIZED_SCENE(pedHostagetakerAmanda, iSceneId, "misssolomon_5@stairs", "sol_5_stair_struggle_b_mw", INSTANT_BLEND_IN, INSTANT_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS ) SET_SYNCHRONIZED_SCENE_LOOPED(iSceneId, TRUE) //RETAIN_ENTITY_IN_INTERIOR(pedAmanda, intMichaelsHouse) //RETAIN_ENTITY_IN_INTERIOR(pedHostagetakerAmanda, intMichaelsHouse) IF wtCurentWeapon = WEAPONTYPE_UNARMED //GIVE_WEAPON_TO_PED(PLAYER_PED_ID(), MichaelsWeapon, 1000, TRUE, TRUE) SET_CURRENT_PED_WEAPON(PLAYER_PED_ID(), GET_BEST_PED_WEAPON(PLAYER_PED_ID()), TRUE) ENDIF SET_MAX_WANTED_LEVEL(0) //Stick Tracey's car nearby as cover. IF NOT DOES_ENTITY_EXIST(carTracey) CREATE_NPC_VEHICLE(carTracey, CHAR_TRACEY, <<-815.0861, 163.3637, 70.3941>>, 195.6004) ENDIF IF NOT DOES_PICKUP_EXIST(riflePickup) AND NOT HAS_PED_GOT_FIREARM(PLAYER_PED_ID()) iriflePickupPlacementFlags = 0 SET_BIT(iriflePickupPlacementFlags, ENUM_TO_INT(PLACEMENT_FLAG_FIXED)) SET_BIT(iriflePickupPlacementFlags, ENUM_TO_INT(PLACEMENT_FLAG_UPRIGHT)) SET_BIT(iriflePickupPlacementFlags, ENUM_TO_INT(PLACEMENT_FLAG_ORIENT_TO_GROUND)) riflePickup = CREATE_PICKUP_ROTATE(PICKUP_WEAPON_ASSAULTRIFLE, <<-819.0212, 179.4919, 71.5570>>, <<-13.2400, -84.9600, -61.2000>>, iriflePickupPlacementFlags) // SET_ENTITY_COORDS_NO_OFFSET(entity, <<-819.0212, 179.4919, 71.5570>>) // SET_ENTITY_ROTATION(entity, <<-13.2400, -84.9600, -61.2000>>) //// SET_ENTITY_QUATERNION(entity, -0.4147, -0.5341, -0.3059, 0.6702) //// //// SET_ENTITY_COORDS_NO_OFFSET(entity, <<-819.0212, 179.4919, 71.5570>>) //// SET_ENTITY_ROTATION(entity, <<-13.2400, -84.9600, -61.2000>>) // SET_ENTITY_QUATERNION(entity, -0.4147, -0.5341, -0.3059, 0.6702) ENDIF BREAK CASE STAGE_SAVE_TRACEY SET_VEHICLE_AS_NO_LONGER_NEEDED(carMichael) SET_MODEL_AS_NO_LONGER_NEEDED(STRETCH) CREATE_TRACY() pedHostagetakerTracey = CREATE_PED(PEDTYPE_MISSION, mnGoonModel, << -803.350, 172.900, 75.700 >>, 55.000) GIVE_WEAPON_TO_PED(pedHostagetakerTracey, WEAPONTYPE_PISTOL, INFINITE_AMMO, TRUE, TRUE) SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedHostagetakerTracey, TRUE) SET_PED_COMPONENT_VARIATION(pedHostagetakerTracey, INT_TO_ENUM(PED_COMPONENT,0), 0, 0, 0) //(head) SET_PED_COMPONENT_VARIATION(pedHostagetakerTracey, INT_TO_ENUM(PED_COMPONENT,2), 0, 0, 0) //(hair) SET_PED_COMPONENT_VARIATION(pedHostagetakerTracey, INT_TO_ENUM(PED_COMPONENT,3), 0, 0, 0) //(uppr) SET_PED_COMPONENT_VARIATION(pedHostagetakerTracey, INT_TO_ENUM(PED_COMPONENT,4), 0, 1, 0) //(lowr) SET_PED_COMPONENT_VARIATION(pedHostagetakerTracey, INT_TO_ENUM(PED_COMPONENT,8), 0, 0, 0) //(accs) SET_PED_COMPONENT_VARIATION(pedHostagetakerTracey, INT_TO_ENUM(PED_COMPONENT,9), 0, 0, 0) //(task) SET_PED_PROP_INDEX(pedHostagetakerTracey, INT_TO_ENUM(PED_PROP_POSITION,0), 1, 2) //SET_PED_PROP_INDEX(pedHostagetakerTracey, INT_TO_ENUM(PED_PROP_POSITION,1), 0, 1) SET_PED_CONFIG_FLAG(pedHostagetakerTracey, PCF_DisableExplosionReactions, TRUE) SET_PED_CONFIG_FLAG(pedHostagetakerTracey, PCF_RunFromFiresAndExplosions, FALSE) SET_PED_ARMOUR(pedHostagetakerTracey, 0) SET_PED_RELATIONSHIP_GROUP_HASH(pedHostagetakerTracey, relGroupMerryWeather) ADD_PED_FOR_DIALOGUE(myScriptedSpeech, 5, pedHostagetakerTracey, "MERRYWEATHER2") SET_PED_SUFFERS_CRITICAL_HITS(pedHostagetakerTracey, FALSE) SET_ENTITY_HEALTH(pedHostagetakerTracey, 1000) intMichaelsHouse = GET_INTERIOR_AT_COORDS_WITH_TYPE(<< -803.350, 172.900, 75.700 >>, "V_Michael") // FORCE_ROOM_FOR_ENTITY(pedTracey, intMichaelsHouse, GET_ROOM_KEY_FROM_ENTITY(pedTracey)) // RETAIN_ENTITY_IN_INTERIOR(pedTracey, intMichaelsHouse) // // FORCE_ROOM_FOR_ENTITY(pedHostagetakerTracey, intMichaelsHouse, GET_ROOM_KEY_FROM_ENTITY(pedHostagetakerTracey)) // RETAIN_ENTITY_IN_INTERIOR(pedHostagetakerTracey, intMichaelsHouse) // //TASK_PLAY_ANIM_ADVANCED(pedTracey, "missprologueig_4@hold_head_base", "hold_head_loop_base_player0", << -803.350, 172.900, 75.700 >>, <<0.0, 0.0, 55.000>>, INSTANT_BLEND_IN, INSTANT_BLEND_OUT, -1, AF_EXTRACT_INITIAL_OFFSET | AF_NOT_INTERRUPTABLE | AF_LOOPING | AF_USE_KINEMATIC_PHYSICS) //TASK_PLAY_ANIM_ADVANCED(pedHostagetakerTracey, "missprologueig_4@hold_head_base", "hold_head_loop_base_guard", << -803.350, 172.900, 75.700 >>, <<0.0, 0.0, 55.000>>, INSTANT_BLEND_IN, INSTANT_BLEND_OUT, -1, AF_EXTRACT_INITIAL_OFFSET | AF_NOT_INTERRUPTABLE | AF_LOOPING | AF_USE_KINEMATIC_PHYSICS) IF wtCurentWeapon = WEAPONTYPE_UNARMED //GIVE_WEAPON_TO_PED(PLAYER_PED_ID(), MichaelsWeapon, 1000, TRUE, TRUE) SET_CURRENT_PED_WEAPON(PLAYER_PED_ID(), GET_BEST_PED_WEAPON(PLAYER_PED_ID()), TRUE) ENDIF SET_MAX_WANTED_LEVEL(0) IF NOT DOES_ENTITY_EXIST(pedAmanda) CREATE_AMANDA() pedHostagetakerAmanda = CREATE_PED(PEDTYPE_MISSION, getRandomGoonModel(), << -809.6262, 179.8829, 71.1530 >>, 46.4666) GIVE_WEAPON_TO_PED(pedHostagetakerAmanda, WEAPONTYPE_PISTOL, INFINITE_AMMO, TRUE, TRUE) SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedHostagetakerAmanda, TRUE) ADD_PED_FOR_DIALOGUE(myScriptedSpeech, 4, pedHostagetakerAmanda, "MERRYWEATHER1") /* START SYNCHRONIZED SCENE - */ iSceneId = CREATE_SYNCHRONIZED_SCENE(vAmandaScenePos, vAmandaSceneRot) IF NOT IS_PED_INJURED(pedAmanda) TASK_SYNCHRONIZED_SCENE(pedAmanda, iSceneId, "misssolomon_5@stairs", "sol_5_stair_shoot_merry_at", INSTANT_BLEND_IN, INSTANT_BLEND_OUT ) ENDIF IF NOT IS_PED_INJURED(pedHostagetakerAmanda) TASK_SYNCHRONIZED_SCENE(pedHostagetakerAmanda, iSceneId, "misssolomon_5@stairs", "sol_5_stair_shoot_merry_mw", INSTANT_BLEND_IN, INSTANT_BLEND_OUT ) ENDIF SET_SYNCHRONIZED_SCENE_LOOPED(iSceneId, FALSE) ENDIF BREAK CASE STAGE_FIGHT_INCOMING_BAD_GUYS CREATE_TRACY() CREATE_AMANDA() SET_ENTITY_COORDS(pedAmanda, << -803.350, 172.900, 75.700 >>) BREAK CASE STAGE_REUNITE_WITH_FAMILY //Dont create the guy if you are nearby IF NOT IS_ENTITY_AT_COORD(PLAYER_PED_ID(), << -810.4206, 180.0989, 71.1530 >>, <<4.0, 4.0, 4.0>>) AND NOT IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-817.345337,175.497055,70.260384>>, <<-794.602661,184.461853,82.473396>>, 12.000000) AND NOT IS_SPHERE_VISIBLE(<< -810.4206, 180.0989, 71.1530 >>, 1.0) pedWritheGuy = CREATE_PED(PEDTYPE_MISSION, getRandomGoonModel(), << -810.4206, 180.0989, 71.1530 >>, 108.5870) GIVE_WEAPON_TO_PED(pedWritheGuy, WEAPONTYPE_PISTOL, INFINITE_AMMO, TRUE, TRUE) //SET_ENTITY_HEALTH(pedWritheGuy, 99) TASK_WRITHE(pedWritheGuy, PLAYER_PED_ID(), 10, SHM_ONGROUND) //FORCE_PED_AI_AND_ANIMATION_UPDATE(pedWritheGuy, TRUE) ENDIF IF wtCurentWeapon = WEAPONTYPE_UNARMED //GIVE_WEAPON_TO_PED(PLAYER_PED_ID(), MichaelsWeapon, 1000, TRUE, TRUE) SET_CURRENT_PED_WEAPON(PLAYER_PED_ID(), GET_BEST_PED_WEAPON(PLAYER_PED_ID()), TRUE) ENDIF BREAK CASE STAGE_JIMMY_SAVES_THE_DAY_CUTSCENE // pedJimmy = CREATE_PED(PEDTYPE_MISSION, IG_JIMMYDISANTO, <<-807.8004, 171.8524, 75.7504>>, 315.4465 ) // SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedJimmy, TRUE) // SET_JIMMYS_ARMY_OUTFIT() // // IF NOT DOES_ENTITY_EXIST(pedAmanda) // CREATE_AMANDA() // ENDIF // SET_ENTITY_COORDS(pedAmanda, <<-801.6101, 173.5810, 75.7407>>) // IF NOT DOES_ENTITY_EXIST(pedTracey) // CREATE_TRACY() // ENDIF BREAK ENDSWITCH RETURN TRUE ENDFUNC PROC REPLAY_OR_Z_SKIP_REPOSITION(BOOL bIsReplay, VECTOR vPos, FLOAT fHeading) IF bIsReplay SET_ENTITY_COORDS(PLAYER_PED_ID(), vPos) SET_ENTITY_HEADING(PLAYER_PED_ID(), fHeading) START_REPLAY_SETUP(vPos, fHeading) ELSE SET_ENTITY_COORDS(PLAYER_PED_ID(), vPos) SET_ENTITY_HEADING(PLAYER_PED_ID(), fHeading) PRINTLN("REPLAY_OR_Z_SKIP_REPOSITION: not replay:", vPos) LOAD_SCENE(vPos) ENDIF ENDPROC WEAPON_TYPE beforeCutWeaponType = WEAPONTYPE_UNARMED PROC EQUIP_REPLAY_WEAPON() IF Get_Fail_Weapon(0) = WEAPONTYPE_UNARMED OR Get_Fail_Weapon(0) = WEAPONTYPE_INVALID IF beforeCutWeaponType = WEAPONTYPE_UNARMED SET_CURRENT_PED_WEAPON(PLAYER_PED_ID(), GET_BEST_PED_WEAPON(PLAYER_PED_ID()), FALSE) ELSE SET_CURRENT_PED_WEAPON(PLAYER_PED_ID(), beforeCutWeaponType, FALSE) ENDIF ELSE SET_CURRENT_PED_WEAPON(PLAYER_PED_ID(), Get_Fail_Weapon(0), FALSE) ENDIF ENDPROC PROC CREATE_POST_CUT_PAPS() IF NOT DOES_ENTITY_EXIST(pedsMoviePremier[MOVP_PAP1]) pedsMoviePremier[MOVP_PAP1] = CREATE_PED(PEDTYPE_MISSION, A_M_M_Paparazzi_01, <<305.1440, 196.9411, 103.2161>>) ENDIF IF NOT DOES_ENTITY_EXIST(pedsMoviePremier[MOVP_PAP2]) pedsMoviePremier[MOVP_PAP2] = CREATE_PED(PEDTYPE_MISSION, A_M_M_Paparazzi_01, <<305.7792, 199.4462, 103.2793>>) ENDIF IF NOT IS_ENTITY_DEAD(pedsMoviePremier[MOVP_PAP2]) SET_ENTITY_COORDS(pedsMoviePremier[MOVP_PAP2], <<305.1440, 196.9411, 103.2161>>) SET_ENTITY_HEADING(pedsMoviePremier[MOVP_PAP2], 29.1979) TASK_PLAY_ANIM(pedsMoviePremier[MOVP_PAP2], "missmic4premiere", "pap_check_pictures", INSTANT_BLEND_IN, NORMAL_BLEND_OUT, -1, AF_LOOPING, 0.65) oiRedCarpetObjects[2] = CREATE_OBJECT(prop_pap_camera_01, <<300.5, 203.51, 103.4>>) ATTACH_ENTITY_TO_ENTITY(oiRedCarpetObjects[2],pedsMoviePremier[MOVP_PAP2], GET_PED_BONE_INDEX(pedsMoviePremier[MOVP_PAP2], BONETAG_PH_R_HAND), <<0.0, 0.0, 0.0>>, <<0.0, 0.0, 0.0>>) ENDIF IF NOT IS_ENTITY_DEAD(pedsMoviePremier[MOVP_PAP1]) SET_ENTITY_COORDS(pedsMoviePremier[MOVP_PAP1], <<305.7792, 199.4462, 103.2793>>) SET_ENTITY_HEADING(pedsMoviePremier[MOVP_PAP1], 106.7509) TASK_PLAY_ANIM(pedsMoviePremier[MOVP_PAP1], "missmic4premiere", "pap_check_pictures", INSTANT_BLEND_IN, NORMAL_BLEND_OUT, -1, AF_LOOPING) oiRedCarpetObjects[3] = CREATE_OBJECT(prop_pap_camera_01, <<300.5, 203.51, 103.4>>) ATTACH_ENTITY_TO_ENTITY(oiRedCarpetObjects[3],pedsMoviePremier[MOVP_PAP1], GET_PED_BONE_INDEX(pedsMoviePremier[MOVP_PAP1], BONETAG_PH_R_HAND), <<0.0, 0.0, 0.0>>, <<0.0, 0.0, 0.0>>) ENDIF ENDPROC BOOL bHaveAllStreamingRequestsCompletedAmanda PROC MANAGE_SKIP(MISSION_STAGE_FLAG to_this_mission_stage, BOOL bIsReplay) #IF IS_DEBUG_BUILD iReturnStage = ENUM_TO_INT(to_this_mission_stage) #ENDIF KILL_FACE_TO_FACE_CONVERSATION_DO_NOT_FINISH_LAST_LINE() PRINTLN("-----------------------------------------") PRINTLN("SOL 5 MANAGE_SKIP selecting:", iReturnStage) PRINTLN("-----------------------------------------") //For replays //IF g_replay.iReplayInt[0] = 0 iMissionStartTime = GET_GAME_TIMER() //Temp //ENDIF IF IS_SYNCHRONIZED_SCENE_RUNNING(iSceneId) SET_SYNCHRONIZED_SCENE_PHASE(iSceneId, 0.0) ENDIF //iSceneId = -1 IF to_this_mission_stage > STAGE_PICKUP_JIMMY SET_MICHAELS_TUX() ENDIF PAUSE_FACE_TO_FACE_CONVERSATION(FALSE) //iMissionStartTime = GET_GAME_TIMER() //iMissionStartTime-= (MISSION_TIME_LIMIT - (ENUM_TO_INT(to_this_mission_stage) * 10000) ) //Do additional work when selecting stage SWITCH to_this_mission_stage CASE STAGE_PICKUP_JIMMY REPLAY_OR_Z_SKIP_REPOSITION(bIsReplay, <<-718.7410, -158.0580, 35.9953>>, 296.3582) SET_PED_USING_ACTION_MODE(PLAYER_PED_ID(), FALSE, -1) END_REPLAY_SETUP() SET_SHOP_IS_AVAILABLE(CLOTHES_SHOP_H_01_BH, TRUE) FORCE_SHOP_RESET(CLOTHES_SHOP_H_01_BH) WHILE NOT IS_SHOP_OPEN_FOR_BUSINESS(CLOTHES_SHOP_H_01_BH) PRINTLN("Michael 4 replay waiting for the shop to open") WAIT(0) ENDWHILE SET_WEATHER_TYPE_NOW_PERSIST("EXTRASUNNY") BREAK CASE STAGE_GET_TO_MOVIE_PREMIERE SET_PED_USING_ACTION_MODE(PLAYER_PED_ID(), FALSE, -1) REPLAY_OR_Z_SKIP_REPOSITION(bIsReplay, <<-718.7188, -158.0137, 35.9951>>, 127.4268) REQUEST_STAGE_ASSETS(STAGE_PICKUP_JIMMY) WHILE NOT HAVE_STAGE_ASSETS_LOADED(STAGE_PICKUP_JIMMY) WAIT(0) ENDWHILE CREATE_STAGE_ASSETS(STAGE_PICKUP_JIMMY) SET_PED_COMP_ITEM_CURRENT_SP(PLAYER_PED_ID(), COMP_TYPE_OUTFIT, OUTFIT_P0_MOVIE_TUXEDO) SET_PED_INTO_VEHICLE(pedJimmy, carMichael, VS_BACK_LEFT) SET_PED_INTO_VEHICLE(PLAYER_PED_ID(), carMichael, VS_BACK_RIGHT) END_REPLAY_SETUP(carMichael) SET_WEATHER_TYPE_NOW_PERSIST("EXTRASUNNY") SET_VEHICLE_RADIO_ENABLED(carMichael, TRUE) SET_VEHICLE_DOORS_LOCKED(carMichael, VEHICLELOCK_LOCKED_PLAYER_INSIDE) WAIT(0) BREAK CASE STAGE_MOVIE_PREMIERE_CUT //1 REQUEST_STAGE_ASSETS(STAGE_MOVIE_PREMIERE_CUT) WHILE NOT HAVE_STAGE_ASSETS_LOADED(STAGE_MOVIE_PREMIERE_CUT) WAIT(0) ENDWHILE REPLAY_OR_Z_SKIP_REPOSITION(bIsReplay, <<294.0738, 178.6801, 103.2472>>, 349.5735) SET_PED_USING_ACTION_MODE(PLAYER_PED_ID(), FALSE, -1) END_REPLAY_SETUP() WHILE NOT CREATE_STAGE_ASSETS(STAGE_MOVIE_PREMIERE_CUT) WAIT(0) ENDWHILE pedJimmy = CREATE_PED(PEDTYPE_MISSION, IG_JIMMYDISANTO, <<299.6322, 176.0707, 103.1330>>, 344.7627) ADD_PED_FOR_DIALOGUE(myScriptedSpeech, 1, pedJimmy, "JIMMY") SET_JIMMYS_TUX() SET_PED_AS_FRIENDLY(pedJimmy) TASK_LOOK_AT_ENTITY(pedJimmy, PLAYER_PED_ID(), INFINITE_TASK_TIME ,SLF_WHILE_NOT_IN_FOV) carMichael = CREATE_STRETCH() SET_VEHICLE_ENGINE_ON(carMichael, TRUE, TRUE) SET_VEHICLE_LIGHTS(carMichael, SET_VEHICLE_LIGHTS_ON) SET_VEHICLE_RADIO_ENABLED(carMichael, FALSE) SET_WEATHER_TYPE_NOW_PERSIST("EXTRASUNNY") BREAK CASE STAGE_GET_TO_MICHAELS_HOUSE IF intMichaelsHouse <> NULL UNPIN_INTERIOR(intMichaelsHouse) ENDIF REQUEST_STAGE_ASSETS(STAGE_GET_TO_MICHAELS_HOUSE) WHILE NOT HAVE_STAGE_ASSETS_LOADED(STAGE_GET_TO_MICHAELS_HOUSE) WAIT(0) ENDWHILE CREATE_POST_CUT_PAPS() CREATE_STAGE_ASSETS(STAGE_GET_TO_MICHAELS_HOUSE) CLEAR_AREA(<< 298.4175, 192.0289, 103.2638 >>, 100.0, TRUE) REPLAY_OR_Z_SKIP_REPOSITION(bIsReplay, << 298.4175, 192.0289, 103.2638 >>, 164.7207) SET_PED_USING_ACTION_MODE(PLAYER_PED_ID(), FALSE, -1) FORCE_PED_MOTION_STATE(PLAYER_PED_ID(), MS_ON_FOOT_RUN, FALSE, FAUS_CUTSCENE_EXIT) SIMULATE_PLAYER_INPUT_GAIT(PLAYER_ID(), PEDMOVE_RUN, 3000, 0.0, TRUE, TRUE) TRIGGER_MUSIC_EVENT("SOL5_GAMEPLAY_RT") //LOAD_SCENE(<< 298.4175, 192.0289, 103.2638 >>) END_REPLAY_SETUP() SET_WEATHER_TYPE_NOW_PERSIST("EXTRASUNNY") BREAK CASE STAGE_ENTER_THE_HOUSE REPLAY_OR_Z_SKIP_REPOSITION(bIsReplay, vMichaelsHouse, 331.9485) REQUEST_STAGE_ASSETS(STAGE_SAVE_AMANDA) REQUEST_STAGE_ASSETS(STAGE_GET_TO_MICHAELS_HOUSE) WHILE NOT HAVE_STAGE_ASSETS_LOADED(STAGE_GET_TO_MICHAELS_HOUSE) OR NOT HAVE_STAGE_ASSETS_LOADED(STAGE_SAVE_AMANDA) WAIT(0) ENDWHILE //LOAD_SCENE(vMichaelsHouse) CREATE_STAGE_ASSETS(STAGE_SAVE_AMANDA) CREATE_STAGE_ASSETS(STAGE_GET_TO_MICHAELS_HOUSE) IF NOT IS_ENTITY_DEAD(pedAmanda) bHaveAllStreamingRequestsCompletedAmanda = HAVE_ALL_STREAMING_REQUESTS_COMPLETED(pedAmanda) ENDIF WHILE NOT bHaveAllStreamingRequestsCompletedAmanda IF NOT IS_ENTITY_DEAD(pedAmanda) bHaveAllStreamingRequestsCompletedAmanda = HAVE_ALL_STREAMING_REQUESTS_COMPLETED(pedAmanda) ENDIF WAIT(0) ENDWHILE IF IS_REPLAY_IN_PROGRESS() AND IS_REPLAY_CHECKPOINT_VEHICLE_AVAILABLE() DELETE_VEHICLE(carMichael) REQUEST_REPLAY_CHECKPOINT_VEHICLE_MODEL() WHILE NOT HAS_REPLAY_CHECKPOINT_VEHICLE_LOADED() PRINTLN("MICHAEL 4: waiting for replay car") WAIT(0) ENDWHILE CREATE_VEHICLE_FOR_REPLAY(carMichael, vMichaelsHouse, 331.9485) ELSE REQUEST_MODEL(STRETCH) WHILE NOT HAS_MODEL_LOADED(STRETCH) PRINTLN("MICHAEL 4: waiting for DEFAULT car") WAIT(0) ENDWHILE carMichael = CREATE_STRETCH() SET_ENTITY_COORDS(carMichael, vMichaelsHouse) ENDIF carMichaelIsIn = carMichael TRIGGER_MUSIC_EVENT("SOL5_ENTER_HOUSE_RT") END_REPLAY_SETUP(carMichael) //SET_PED_INTO_VEHICLE(PLAYER_PED_ID(), carMichael) IF NOT IS_ENTITY_DEAD(pedJimmy) AND NOT IS_ENTITY_DEAD(carMichael) SET_PED_INTO_VEHICLE(PLAYER_PED_ID(), carMichael) SET_PED_INTO_VEHICLE(pedJimmy, carMichael, VS_FRONT_RIGHT) SET_ENTITY_COORDS(carMichael, vMichaelsHouse) SET_ENTITY_HEADING(carMichael, 331.9485) SET_VEHICLE_ON_GROUND_PROPERLY(carMichael) ENDIF SET_PED_USING_ACTION_MODE(PLAYER_PED_ID(), TRUE, -1) SET_WEATHER_TYPE_NOW_PERSIST("EXTRASUNNY") BREAK CASE STAGE_SAVE_AMANDA REPLAY_OR_Z_SKIP_REPOSITION(bIsReplay, << -814.9095, 179.0777, 71.1530 >>, 308.0840) REQUEST_STAGE_ASSETS(STAGE_SAVE_AMANDA) WHILE NOT HAVE_STAGE_ASSETS_LOADED(STAGE_SAVE_AMANDA) WAIT(0) ENDWHILE CREATE_STAGE_ASSETS(STAGE_SAVE_AMANDA) EQUIP_REPLAY_WEAPON() SET_PED_USING_ACTION_MODE(PLAYER_PED_ID(), TRUE, -1) // SET_ENTITY_COORDS(PLAYER_PED_ID(), << -814.9095, 179.0777, 71.1530 >>) // SET_ENTITY_HEADING(PLAYER_PED_ID(), 308.0840) TRIGGER_MUSIC_EVENT("SOL5_SAVE_A_RT") END_REPLAY_SETUP() IF NOT IS_ENTITY_DEAD(pedAmanda) bHaveAllStreamingRequestsCompletedAmanda = HAVE_ALL_STREAMING_REQUESTS_COMPLETED(pedAmanda) ENDIF WHILE NOT bHaveAllStreamingRequestsCompletedAmanda IF NOT IS_ENTITY_DEAD(pedAmanda) bHaveAllStreamingRequestsCompletedAmanda = HAVE_ALL_STREAMING_REQUESTS_COMPLETED(pedAmanda) ENDIF PRINTLN("waiting on Amanda's variations") WAIT(0) ENDWHILE WHILE NOT CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_AMA", CONV_PRIORITY_VERY_HIGH) PRINTLN("waiting on dialogue") WAIT(0) ENDWHILE SET_WEATHER_TYPE_NOW_PERSIST("EXTRASUNNY") BREAK CASE STAGE_SAVE_TRACEY REPLAY_OR_Z_SKIP_REPOSITION(bIsReplay, << -814.9095, 179.0777, 71.1530 >>, 308.0840) REQUEST_STAGE_ASSETS(STAGE_SAVE_TRACEY) WHILE NOT HAVE_STAGE_ASSETS_LOADED(STAGE_SAVE_TRACEY) WAIT(0) ENDWHILE CREATE_STAGE_ASSETS(STAGE_SAVE_TRACEY) IF NOT IS_ENTITY_DEAD(pedAmanda) bHaveAllStreamingRequestsCompletedAmanda = HAVE_ALL_STREAMING_REQUESTS_COMPLETED(pedAmanda) ENDIF WHILE NOT bHaveAllStreamingRequestsCompletedAmanda IF NOT IS_ENTITY_DEAD(pedAmanda) bHaveAllStreamingRequestsCompletedAmanda = HAVE_ALL_STREAMING_REQUESTS_COMPLETED(pedAmanda) ENDIF WAIT(0) ENDWHILE EQUIP_REPLAY_WEAPON() SET_PED_USING_ACTION_MODE(PLAYER_PED_ID(), TRUE, -1) // SET_ENTITY_COORDS(PLAYER_PED_ID(), << -814.9095, 179.0777, 71.1530 >>) // SET_ENTITY_HEADING(PLAYER_PED_ID(), 308.0840) TRIGGER_MUSIC_EVENT("SOL5_SAVE_T_RT") END_REPLAY_SETUP() SET_WEATHER_TYPE_NOW_PERSIST("EXTRASUNNY") BREAK CASE STAGE_TRACEY_CAPTOR_SHOT REPLAY_OR_Z_SKIP_REPOSITION(bIsReplay, << -802.8893, 179.8200, 75.7408 >>, 308.0840) SET_PED_USING_ACTION_MODE(PLAYER_PED_ID(), TRUE, -1) REQUEST_STAGE_ASSETS(STAGE_TRACEY_CAPTOR_SHOT) WHILE NOT HAVE_STAGE_ASSETS_LOADED(STAGE_TRACEY_CAPTOR_SHOT) WAIT(0) ENDWHILE END_REPLAY_SETUP() SET_WEATHER_TYPE_NOW_PERSIST("EXTRASUNNY") BREAK CASE STAGE_FIGHT_INCOMING_BAD_GUYS REPLAY_OR_Z_SKIP_REPOSITION(bIsReplay, <<-802.83807, 179.84833, 75.7407>>, 308.0840) SET_PED_USING_ACTION_MODE(PLAYER_PED_ID(), TRUE, -1) REQUEST_STAGE_ASSETS(STAGE_FIGHT_INCOMING_BAD_GUYS) WHILE NOT HAVE_STAGE_ASSETS_LOADED(STAGE_FIGHT_INCOMING_BAD_GUYS) WAIT(0) ENDWHILE TRIGGER_MUSIC_EVENT("SOL5_FIGHT_BAD_RT") ADD_PED_FOR_DIALOGUE(myScriptedSpeech, 2, NULL, "AMANDA") ADD_PED_FOR_DIALOGUE(myScriptedSpeech, 3, NULL, "TRACEY") ADD_PED_FOR_DIALOGUE(myScriptedSpeech, 4, NULL, "MERRYWEATHER1") CREATE_STAGE_ASSETS(STAGE_FIGHT_INCOMING_BAD_GUYS) END_REPLAY_SETUP() BREAK CASE STAGE_REUNITE_WITH_FAMILY REPLAY_OR_Z_SKIP_REPOSITION(bIsReplay, <<-820.8237, 176.6267, 70.5997>>, 291.0697) SET_PED_USING_ACTION_MODE(PLAYER_PED_ID(), TRUE, -1) END_REPLAY_SETUP() intMichaelsHouse = GET_INTERIOR_AT_COORDS(<< -824.2127, 182.2403, 70.7416 >>) PIN_INTERIOR_IN_MEMORY(intMichaelsHouse) WHILE NOT IS_INTERIOR_READY(intMichaelsHouse) WAIT(0) ENDWHILE BREAK CASE STAGE_JIMMY_SAVES_THE_DAY_CUTSCENE REPLAY_OR_Z_SKIP_REPOSITION(bIsReplay, <<-805.6776, 182.4792, 74.2146>>, 291.0697) END_REPLAY_SETUP() REQUEST_STAGE_ASSETS(STAGE_JIMMY_SAVES_THE_DAY_CUTSCENE) WHILE NOT HAVE_STAGE_ASSETS_LOADED(STAGE_JIMMY_SAVES_THE_DAY_CUTSCENE) WAIT(0) ENDWHILE CREATE_STAGE_ASSETS(STAGE_JIMMY_SAVES_THE_DAY_CUTSCENE) //LOAD_SCENE(<< -810.9391, 160.2689, 70.4956 >>) BREAK DEFAULT IF intMichaelsHouse <> NULL UNPIN_INTERIOR(intMichaelsHouse) ENDIF BREAK ENDSWITCH RESET_GAME_CAMERA() ENDPROC MISSION_STAGE_FLAG skip_mission_stage //For debug and replays. BOOL bResetFlashTimer PROC initialiseMission() SET_AUDIO_FLAG("AllowPlayerAIOnMission", true) bHasChanged= GET_PLAYER_HAS_CHANGE_CLOTHES_ON_MISSION(CHAR_MICHAEL) //ensure bChange is set to the state of “player has changed outfit” at the start of the mission //Stop scenarios on red carpet. ADD_SCENARIO_BLOCKING_AREA(<< 290.7038, 178.1873, 101.3840 >>,<< 315.7695, 228.7553, 136.0489 >>) //SET_PED_NON_CREATION_AREA(<< 290.7038, 178.1873, 101.3840 >>, << 315.7695, 228.7553, 136.0489 >>) SET_PED_NON_CREATION_AREA(<<292.424530,172.560867,109.715904>> - <<61.000000,50.250000,8.500000>>, <<292.424530,172.560867,109.715904>> + <<61.000000,50.250000,8.500000>>) bResetFlashTimer = FALSE DISABLE_TAXI_HAILING(TRUE) //SET_ALL_SHOPS_TEMPORARILY_UNAVAILABLE(TRUE) ADD_PED_FOR_DIALOGUE(myScriptedSpeech, 5, NULL, "DEVIN") REQUEST_IPL("redCarpet") REQUEST_ADDITIONAL_TEXT("SOL5", MISSION_TEXT_SLOT) REQUEST_ADDITIONAL_TEXT("SOL5AUD", MISSION_DIALOGUE_TEXT_SLOT) ADD_PED_FOR_DIALOGUE(myScriptedSpeech, 0, PLAYER_PED_ID(), "MICHAEL") REMOVE_RELATIONSHIP_GROUP(relGroupMerryWeather) ADD_RELATIONSHIP_GROUP("MERRYWEATHER", relGroupMerryWeather) SET_PED_RELATIONSHIP_GROUP_HASH(player_ped_id(), RELGROUPHASH_PLAYER) SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_HATE, RELGROUPHASH_PLAYER, relGroupMerryWeather) SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_HATE, relGroupMerryWeather, RELGROUPHASH_PLAYER) //INFORM_MISSION_STATS_OF_MISSION_START_SOLOMON_FIVE() //SET_PED_NON_CREATION_AREA(<< -822.4180, 177.4556, 70.3269 >>, << -822.4180, 177.4556, 70.3269 >>) SET_PED_PATHS_IN_AREA(<< -832.4180, 167.4556, 60.3269 >>, << -812.4180, 187.4556, 80.3269 >>, FALSE) SET_SCENARIO_PEDS_SPAWN_IN_SPHERE_AREA(<< -820.7206, 178.5732, 70.5724 >>, 30.0, 0) DELETE_VEHICLE_GEN_VEHICLES_IN_AREA( << -825.1512, 178.9821, 70.3781 >>, 25.0) DISABLE_VEHICLE_GEN_ON_MISSION(TRUE) ENABLE_DISPATCH_SERVICE(DT_FIRE_DEPARTMENT, FALSE) ENABLE_DISPATCH_SERVICE(DT_AMBULANCE_DEPARTMENT, FALSE) SET_VEHICLE_MODEL_IS_SUPPRESSED(STRETCH, TRUE) SET_VEHICLE_MODEL_IS_SUPPRESSED(VACCA, TRUE) IF NOT IS_DOOR_REGISTERED_WITH_SYSTEM(ENUM_TO_INT(DOORHASH_M_MANSION_BW)) ADD_DOOR_TO_SYSTEM(ENUM_TO_INT(DOORHASH_M_MANSION_BW),V_ILEV_MM_WINDOWWC, <<-802.73333, 167.5041, 77.5824>>) ENDIF DOOR_SYSTEM_SET_OPEN_RATIO(ENUM_TO_INT(DOORHASH_M_MANSION_BW), 0.0) DOOR_SYSTEM_SET_DOOR_STATE(ENUM_TO_INT(DOORHASH_M_MANSION_BW), DOORSTATE_FORCE_LOCKED_THIS_FRAME, TRUE, TRUE) DISABLE_TAXI_HAILING(TRUE) iMissionStartTime = GET_GAME_TIMER() //Stop mission fail reason being set. mission_stage = STAGE_PICKUP_JIMMY //STAGE_MOVIE_PREMIERE_CUT IF (Is_Replay_In_Progress()) SET_CURRENT_SELECTOR_PED(SELECTOR_PED_MICHAEL) ADD_PED_FOR_DIALOGUE(myScriptedSpeech, 0, PLAYER_PED_ID(), "MICHAEL") //SET_CLOCK_TIME(16, 00, 00) // Your mission is being replayed INT myStage = Get_Replay_Mid_Mission_Stage() //+ (ENUM_TO_INT(STAGE_GET_TO_MICHAELS_HOUSE)) SWITCH myStage CASE 0 skip_mission_stage = STAGE_PICKUP_JIMMY BREAK CASE 1 skip_mission_stage = STAGE_MOVIE_PREMIERE_CUT BREAK CASE 2 skip_mission_stage = STAGE_GET_TO_MICHAELS_HOUSE BREAK CASE 3 skip_mission_stage = STAGE_ENTER_THE_HOUSE BREAK CASE 4 skip_mission_stage = STAGE_SAVE_AMANDA BREAK CASE 5 skip_mission_stage = STAGE_SAVE_TRACEY BREAK CASE 6 skip_mission_stage = STAGE_FIGHT_INCOMING_BAD_GUYS BREAK CASE 7 skip_mission_stage = STAGE_REUNITE_WITH_FAMILY BREAK ENDSWITCH //Use the myStage variable to restart your mission at the correct stage //Warp the player to appropriate start coordinates (because the player won’t be at the contact point) //Fade In (the game gets faded out when a replay is selected) //skip_mission_stage = INT_TO_ENUM(MISSION_STAGE_FLAG, myStage) IF g_bShitskipAccepted = TRUE // player chose to shitskip // you need to skip to stage after Get_Replay_Mid_Mission_Stage() IF skip_mission_stage = STAGE_PICKUP_JIMMY skip_mission_stage = STAGE_MOVIE_PREMIERE_CUT ELIF skip_mission_stage = STAGE_MOVIE_PREMIERE_CUT skip_mission_stage = STAGE_GET_TO_MICHAELS_HOUSE ELIF skip_mission_stage = STAGE_GET_TO_MICHAELS_HOUSE skip_mission_stage = STAGE_ENTER_THE_HOUSE ELIF skip_mission_stage = STAGE_ENTER_THE_HOUSE skip_mission_stage = STAGE_SAVE_AMANDA ELIF skip_mission_stage = STAGE_SAVE_AMANDA skip_mission_stage = STAGE_SAVE_TRACEY ELIF skip_mission_stage = STAGE_SAVE_TRACEY skip_mission_stage = STAGE_FIGHT_INCOMING_BAD_GUYS ELIF skip_mission_stage = STAGE_FIGHT_INCOMING_BAD_GUYS skip_mission_stage = STAGE_JIMMY_SAVES_THE_DAY_CUTSCENE ENDIF ENDIF MANAGE_SKIP(skip_mission_stage, TRUE) mission_stage = skip_mission_stage DO_SCREEN_FADE_IN(500) ELSE // Your mission is being played normally, not being replayed //Set_Replay_Mid_Mission_Stage(0) ENDIF ENDPROC PROC REMOVE_BLIP_AND_CHECK_IF_EXISTS(BLIP_INDEX &thisBlip) IF DOES_BLIP_EXIST(thisBlip) REMOVE_BLIP(thisBlip) ENDIF ENDPROC BLIP_INDEX blipJimmy BLIP_INDEX blipLimo BLIP_INDEX blipTuxShop BOOL bTuxTextSent INT iMessingInterval = 25000 INT iTimeOfLastMessingComment SEQUENCE_INDEX seqManageJimmy //VECTOR vecRoadArray[42] //FLOAT fTotalDuration VECTOR vTuxLocation = <<-708.0601, -161.7995, 36.4152>> INT iTimeOfExitingShop BOOL bNotClearedTasks = FALSE INT iLapseStartHour, iLapseEndHour PROC stagePickUpJimmy() // INT i // VECTOR vSize SWITCH i_current_event CASE 0 SET_WEATHER_TYPE_OVERTIME_PERSIST("EXTRASUNNY", 15.0) REQUEST_STAGE_ASSETS(STAGE_PICKUP_JIMMY) IF IS_REPEAT_PLAY_ACTIVE() SET_ENTITY_COORDS(PLAYER_PED_ID(), <<-712.0151, -154.0330, 36.4152>>) FORCE_SHOP_RESET(CLOTHES_SHOP_H_01_BH) ENDIF i_current_event++ BREAK CASE 1 IF HAVE_STAGE_ASSETS_LOADED(STAGE_PICKUP_JIMMY) AND IS_SHOP_OPEN_FOR_BUSINESS(CLOTHES_SHOP_H_01_BH) //SET_SHOP_IS_AVAILABLE(CLOTHES_SHOP_H_01_BH, TRUE) //SET_SHOP_IS_OPEN_FOR_BUSINESS(CLOTHES_SHOP_H_01_BH, TRUE) FADE_IN_IF_NEEDED() IF NOT IS_PED_COMP_ITEM_CURRENT_SP(PLAYER_PED_ID(), COMP_TYPE_OUTFIT, OUTFIT_P0_MOVIE_TUXEDO) IF IS_PED_COMP_ITEM_ACQUIRED_SP(PLAYER_ZERO, COMP_TYPE_OUTFIT, OUTFIT_P0_MOVIE_TUXEDO) PRINT_NOW("SOL5_TUX1", DEFAULT_GOD_TEXT_TIME, 1) ELSE PRINT_NOW("SOL5_TUX2", DEFAULT_GOD_TEXT_TIME, 1) ENDIF ENDIF blipTuxShop = CREATE_BLIP_FOR_COORD(vTuxLocation, TRUE) REMOVE_BLIP_AND_CHECK_IF_EXISTS(blipJimmy) SETTIMERB(0) i_current_event++ ENDIF BREAK CASE 2 //Process Jimmy if you put your tux on then took it off again IF NOT IS_PED_INJURED(pedJimmy) IF NOT IS_PED_FACING_PED(pedJimmy, PLAYER_PED_ID(), 45.0) OR NOT IS_ENTITY_AT_COORD(pedJimmy, <<-719.4904, -162.2617, 36.0158>>, <<1.5, 1.5, 1.5>>) IF NOT IS_SCRIPT_TASK_RUNNING_OR_STARTING(pedJImmy, SCRIPT_TASK_PERFORM_SEQUENCE) OPEN_SEQUENCE_TASK(seqManageJimmy) TASK_FOLLOW_NAV_MESH_TO_COORD(NULL, <<-719.4904, -162.2617, 36.0158>>, PEDMOVE_WALK) TASK_TURN_PED_TO_FACE_ENTITY(NULL, PLAYER_PED_ID()) CLOSE_SEQUENCE_TASK(seqManageJimmy) TASK_PERFORM_SEQUENCE(pedJimmy, seqManageJimmy) CLEAR_SEQUENCE_TASK(seqManageJimmy) ENDIF ENDIF ENDIF IF IS_PED_COMP_ITEM_CURRENT_SP(PLAYER_PED_ID(), COMP_TYPE_OUTFIT, OUTFIT_P0_MOVIE_TUXEDO) //AND NOT IS_PLAYER_BROWSING_ITEMS_IN_SHOP(CLOTHES_SHOP_H_01_BH) AND HAVE_STAGE_ASSETS_LOADED(STAGE_PICKUP_JIMMY) IF NOT DOES_ENTITY_EXIST(pedJimmy) RESOLVE_VEHICLES_INSIDE_ANGLED_AREA_WITH_SIZE_LIMIT(<<-726.119690,-158.435516,35.547009>>, <<-708.790283,-183.286514,37.872639>>, 5.750000, <<-730.7252, -144.1218, 36.2103>>, 30.4009, <<5.0, 7.0, 8.5>>, TRUE) REPOSITION_PLAYERS_VEHICLE(<<-730.7252, -144.1218, 36.2103>>, 30.4009) SET_MISSION_START_VEHICLE_AS_VEHICLE_GEN(<<-730.7252, -144.1218, 36.2103>>, 30.4009) SET_ROADS_IN_ANGLED_AREA(<<-683.547852,-239.823624,34.704006>>, <<-772.906860,-86.623764,39.999840>>, 18.750000, FALSE, FALSE) CLEAR_AREA_OF_VEHICLES(vTuxLocation, 400.0, TRUE) STOP_FIRE_IN_RANGE(vTuxLocation, 150.00) CREATE_STAGE_ASSETS(STAGE_PICKUP_JIMMY) ENDIF IF IS_SCREEN_FADED_OUT() IF NOT IS_PED_INJURED(pedJimmy) ENDIF WHILE NOT HAVE_ALL_STREAMING_REQUESTS_COMPLETED(pedJimmy) IF NOT IS_PED_INJURED(pedJimmy) ENDIF WAIT(0) ENDWHILE ENDIF HIDE_HUD_AND_RADAR_THIS_FRAME() IF NOT DOES_BLIP_EXIST(blipJimmy) IF NOT IS_PED_INJURED(pedJImmy) TASK_LOOK_AT_ENTITY(pedJimmy, PLAYER_PED_ID(), INFINITE_TASK_TIME, SLF_WHILE_NOT_IN_FOV) ENDIF blipJimmy = CREATE_BLIP_FOR_PED(pedJimmy, FALSE) ENDIF FREEZE_ENTITY_POSITION(carMichael, FALSE) REMOVE_BLIP(blipTuxShop) //IF IS_REPEAT_PLAY_ACTIVE() //SET_ENTITY_COORDS(PLAYER_PED_ID(), <<-717.7643, -157.6015, 35.9892>>) //SET_ENTITY_HEADING(PLAYER_PED_ID(), 150.1602) // //IF NOT IS_GAMEPLAY_CAM_RENDERING() // RESET_GAME_CAMERA() // //ENDIF // SET_TODS_CUTSCENE_RUNNING(sTimelapse, FALSE, FALSE, 2000, TRUE, FALSE) //ENDIF i_current_event++ ENDIF BREAK CASE 3 IF NOT IS_PLAYER_BROWSING_ITEMS_IN_ANY_SHOP() AND IS_PED_COMP_ITEM_ACQUIRED_SP(GET_PLAYER_PED_MODEL(CHAR_MICHAEL), COMP_TYPE_OUTFIT, OUTFIT_P0_MOVIE_TUXEDO) SET_WEATHER_TYPE_NOW_PERSIST("EXTRASUNNY") //IF NOT IS_PLAYER_BROWSING_ITEMS_IN_SHOP(CLOTHES_SHOP_H_01_BH) HIDE_HUD_AND_RADAR_THIS_FRAME() CLEAR_PRINTS() CLEAR_AREA_OF_PEDS(<<-716.675,-155.420,37.675>>, 50.0) GET_SP_MISSION_TOD_WINDOW_TIME(SP_MISSION_MICHAEL_4, iLapseStartHour, iLapseEndHour) WHILE NOT timeLapseCutscene() HIDE_HUD_AND_RADAR_THIS_FRAME() SET_PED_DENSITY_MULTIPLIER_THIS_FRAME(0.0) WAIT(0) ENDWHILE IF NOT IS_GAMEPLAY_CAM_RENDERING() HIDE_HUD_AND_RADAR_THIS_FRAME() SET_PED_DENSITY_MULTIPLIER_THIS_FRAME(0.0) RESET_GAME_CAMERA() ENDIF IF IS_SCREEN_FADED_OUT() //SCRIPT_ASSERT("bazinga") REQUEST_ANIM_DICT("missmic4") WHILE NOT HAS_ANIM_DICT_LOADED("missmic4") WAIT(0) ENDWHILE STOP_SYNCHRONIZED_MAP_ENTITY_ANIM(<<-716.675,-155.420,37.675>>, 1.0, v_ilev_ch_glassdoor, INSTANT_BLEND_IN) STOP_SYNCHRONIZED_MAP_ENTITY_ANIM(<<-715.615,-157.256,37.675>>, 1.0, v_ilev_ch_glassdoor, INSTANT_BLEND_IN) CLEAR_AREA(<<-716.675,-155.420,37.675>>, 60.0, TRUE) CLEAR_PED_TASKS_IMMEDIATELY(PLAYER_PED_ID()) TASK_PLAY_ANIM(PLAYER_PED_ID(), "missmic4", "michael_tux_fidget", NORMAL_BLEND_IN, NORMAL_BLEND_OUT, -1, AF_UPPERBODY | AF_SECONDARY) SET_TODS_CUTSCENE_RUNNING(sTimelapse, FALSE, FALSE, 2000, TRUE, TRUE) SET_ENTITY_COORDS(PLAYER_PED_ID(), <<-717.8878, -157.4567, 35.9894>>) SET_ENTITY_HEADING(PLAYER_PED_ID(), 119.5472) REMOVE_ANIM_DICT("missmic4") FADE_IN_IF_NEEDED() RESET_GAME_CAMERA() ELSE CLEAR_AREA(<<-716.675,-155.420,37.675>>, 60.0, TRUE) SET_TODS_CUTSCENE_RUNNING(sTimelapse, FALSE, FALSE, 2000, TRUE, FALSE) IF iTimeLapseStage < 3 PRINTLN("@@@@@@@@@@@@ SET_ENTITY_INVISIBLE @@@@@@@@@@@@@") // 2301313, removed this line as it was causing the player to get stuck invisible // not noticed any pop returning as a result of this. //SET_ENTITY_VISIBLE(PLAYER_PED_ID(), FALSE) //Let shop script turn this basck on ENDIF ENDIF PRINT_NOW("SOL5_MTJIM", DEFAULT_GOD_TEXT_TIME, 1) i_current_event++ ENDIF BREAK CASE 4 //If player doesn't move, clear tasks to stop fidget anim IF GET_PED_DESIRED_MOVE_BLEND_RATIO(PLAYER_PED_ID()) < PEDMOVE_WALK AND GET_GAME_TIMER() - iTimeOfExitingShop > 1000 AND bNotClearedTasks = FALSE CLEAR_PED_TASKS(PLAYER_PED_ID()) PRINTLN("@@@@@@@@@@@@ IS_ENTITY_VISIBLE @@@@@@@@@@@@@") IF NOT IS_ENTITY_VISIBLE(PLAYER_PED_ID()) PRINTLN("@@@@@@@@@@@@ SET_ENTITY_VISIBLE @@@@@@@@@@@@@") SET_ENTITY_VISIBLE(PLAYER_PED_ID(), TRUE) ENDIF //SCRIPT_ASSERT("bign!") bNotClearedTasks = TRUE ENDIF IF NOT IS_ENTITY_DEAD(pedJimmy) //IF IS_ENTITY_AT_ENTITY(PLAYER_PED_ID(), pedJimmy, <<4.0, 4.0, 4.0>>) IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-716.415894,-160.594025,35.991035>>, <<-719.482300,-155.132141,39.754093>>, 2.750000) OR IS_PED_GETTING_INTO_A_VEHICLE(PLAYER_PED_ID()) //OR IS_ENTITY_ON_SCREEN(pedJimmy) REMOVE_BLIP(blipJimmy) CLEAR_PRINTS() bNotClearedTasks = FALSE IF NOT DOES_BLIP_EXIST(blipLimo) blipLimo = CREATE_BLIP_FOR_VEHICLE(carMichael) ENDIF i_current_event++ ENDIF IF NOT IS_PED_FACING_PED(pedJimmy, PLAYER_PED_ID(), 45.0) IF NOT IS_SCRIPT_TASK_RUNNING_OR_STARTING(pedJImmy, SCRIPT_TASK_TURN_PED_TO_FACE_ENTITY) TASK_TURN_PED_TO_FACE_ENTITY(pedJImmy, PLAYER_PED_ID()) ENDIF ENDIF ENDIF BREAK CASE 5 CASE 6 CASE 7 CASE 8 //If player doesn't move, clear tasks to stop fidget anim IF GET_PED_DESIRED_MOVE_BLEND_RATIO(PLAYER_PED_ID()) < PEDMOVE_WALK AND GET_GAME_TIMER() - iTimeOfExitingShop > 1000 AND bNotClearedTasks = FALSE CLEAR_PED_TASKS(PLAYER_PED_ID()) //SCRIPT_ASSERT("bign!") bNotClearedTasks = TRUE ENDIF IF IS_CONTROL_JUST_PRESSED(PLAYER_CONTROL, INPUT_ENTER) AND NOT IS_ENTITY_DEAD(carMichael) HANG_UP_AND_PUT_AWAY_PHONE() DISABLE_CELLPHONE(TRUE) SET_PED_CONFIG_FLAG(PLAYER_PED_ID(), PCF_ForceDirectEntry, TRUE) TASK_ENTER_VEHICLE(PLAYER_PED_ID(), carMichael, DEFAULT_TIME_BEFORE_WARP , VS_BACK_RIGHT) ENDIF //Jimmy tells Michael to stop messign around IF NOT IS_PED_INJURED(pedJimmy) AND NOT IS_ENTITY_DEAD(carMichael) AND NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(), carMichael) IF GET_GAME_TIMER() - iTimeOfLastMessingComment > iMessingInterval IF IS_ENTITY_TOUCHING_ENTITY(PLAYER_PED_ID(), pedJimmy) OR GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(), pedJImmy) > 20.0 IF CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_MESS", CONV_PRIORITY_VERY_HIGH) iMessingInterval = iMessingInterval + 10000 iTimeOfLastMessingComment = GET_GAME_TIMER() ENDIF ENDIF ENDIF ENDIF IF NOT IS_ENTITY_DEAD(carMichael) IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(), carMichael, TRUE) DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_VEH_EXIT) DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_VEH_CIN_CAM) SET_CINEMATIC_BUTTON_ACTIVE(FALSE) DISABLE_CINEMATIC_BONNET_CAMERA_THIS_UPDATE() ENDIF ENDIF //DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_ENTER) //IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData, IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF) IF i_current_event = 5 IF CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_JGETIN", CONV_PRIORITY_VERY_HIGH) IF NOT IS_ENTITY_DEAD(carMichael) AND NOT IS_ENTITY_DEAD(pedJimmy) SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedJimmy, TRUE) SET_PED_CONFIG_FLAG(pedJimmy, PCF_ForceDirectEntry, TRUE) TASK_ENTER_VEHICLE(pedJimmy, carMichael, DEFAULT_TIME_BEFORE_WARP , VS_BACK_LEFT) ENDIF i_current_event = 6 ENDIF ENDIF IF i_current_event = 6 IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData, IAT_IGNORE_DIALOGUE_IF_SUBTITLES_OFF) PRINT_NOW("SOL5_INLIMO", DEFAULT_GOD_TEXT_TIME, 1) i_current_event = 7 ENDIF ENDIF IF i_current_event = 7 IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData, IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF) IF CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_LIMO", CONV_PRIORITY_VERY_HIGH) i_current_event = 8 ENDIF ENDIF ENDIF IF NOT IS_ENTITY_DEAD(carMichael) IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(), carMichael) AND IS_PED_IN_VEHICLE(pedJImmy, carMichael) AND CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_WHERE", CONV_PRIORITY_VERY_HIGH) REPLAY_RECORD_BACK_FOR_TIME(8.0, 6.0, REPLAY_IMPORTANCE_HIGHEST) REMOVE_BLIP(blipLimo) SET_VEHICLE_RADIO_ENABLED(carMichael, TRUE) SET_VEHICLE_DOORS_LOCKED(carMichael, VEHICLELOCK_LOCKED_PLAYER_INSIDE) DISABLE_CINEMATIC_BONNET_CAMERA_THIS_UPDATE() i_current_event = 9 ENDIF ENDIF BREAK CASE 9 DISABLE_CINEMATIC_BONNET_CAMERA_THIS_UPDATE() DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_VEH_EXIT) //DISABLE_CELLPHONE(FALSE) SET_PLAYER_CAN_CHANGE_CLOTHES_ON_MISSION(FALSE) i_current_event = 0 mission_stage = STAGE_GET_TO_MOVIE_PREMIERE BREAK ENDSWITCH IF NOT IS_PED_INJURED(pedJimmy) SET_PED_DESIRED_MOVE_BLEND_RATIO(pedJimmy, PEDMOVE_WALK) ENDIF //If the player changes out of the tuxedo. IF NOT IS_PED_COMP_ITEM_CURRENT_SP(PLAYER_PED_ID(), COMP_TYPE_OUTFIT, OUTFIT_P0_MOVIE_TUXEDO) AND NOT IS_PLAYER_BROWSING_ITEMS_IN_SHOP(CLOTHES_SHOP_H_01_BH) AND i_current_event > 2 i_current_event = 1 iTimeLapseStage = 0 ENDIF IF TIMERB() > 2000 IF bTuxTextSent = FALSE AND NOT IS_PED_COMP_ITEM_CURRENT_SP(PLAYER_PED_ID(), COMP_TYPE_OUTFIT, OUTFIT_P0_MOVIE_TUXEDO) IF NOT DOES_ENTITY_EXIST(pedJimmy) SEND_TEXT_MESSAGE_TO_CURRENT_PLAYER(CHAR_JIMMY, "MIC4_TUXTEXT", TXTMSG_UNLOCKED, TXTMSG_CRITICAL) bTuxTextSent = TRUE ENDIF ENDIF ENDIF ENDPROC //Author: Ross Wallace //PURPOSE: Returns the percentage progress of a car recording... FUNC FLOAT GET_VEHICLE_RECORDING_PLAYBACK_PERCENTAGE_PROGRESS(VEHICLE_INDEX thisVehicle, STRING RecName) #IF NOT IS_DEBUG_BUILD RecName = RecName #ENDIF IF NOT IS_ENTITY_DEAD(thisVehicle) IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(thisVehicle) RECORDING_ID rID = GET_CURRENT_PLAYBACK_FOR_VEHICLE(thisVehicle) #IF IS_DEBUG_BUILD INT recordingNumber INT rePercentage = ROUND( 100.0 * ( GET_TIME_POSITION_IN_RECORDING(thisVehicle) / GET_TOTAL_DURATION_OF_VEHICLE_RECORDING_ID(rID) )) TEXT_LABEL_63 debugName = RecName TEXT_LABEL_3 tlColon = ":" debugName += recordingNumber debugName += tlColon debugName += rePercentage SET_VEHICLE_NAME_DEBUG(thisVehicle, debugName) #ENDIF RETURN ( 100.0 * ( GET_TIME_POSITION_IN_RECORDING(thisVehicle) / GET_TOTAL_DURATION_OF_VEHICLE_RECORDING_ID(rID) ))// GET_TOTAL_DURATION_OF_VEHICLE_RECORDING(recordingNumber, RecName) ) ) ELSE PRINTSTRING("GET_VEHICLE_RECORDING_PLAYBACK_PERCENTAGE_PROGRESS: PLayback not going on!!!!!") ENDIF ELSE PRINTSTRING("GET_VEHICLE_RECORDING_PLAYBACK_PERCENTAGE_PROGRESS: Vehicle dead!!!!!") ENDIF //SCRIPT_ASSERT("GET_VEHICLE_RECORDING_PLAYBACK_PERCENTAGE_PROGRESS: something went wrong!") //Fail safe as this indicates recording finished (though entity is likely dead) RETURN -1.0 ENDFUNC INT iLimoCamStage //INT iLimoCamTimer //CAMERA_INDEX initialCam //CAMERA_INDEX destinationCam // //VECTOR vAttachPositionsA[10] //VECTOR vAttachRotationsA[10] //FLOAT fAttachFOVA[10] // //VECTOR vAttachPositionsB[10] //VECTOR vAttachRotationsB[10] //FLOAT fAttachFOVB[10] //INT iLimoCamIndex = 1 //INT iLastLimoCamIndex = 1 BOOL bLimoCamActive = TRUE INT iJimmySunroof = 0 //INT iMaxAngles FUNC BOOL LIMO_CAM_BUTTON() #IF IS_JAPANESE_BUILD RETURN IS_CONTROL_JUST_PRESSED(PLAYER_CONTROL, INPUT_SCRIPT_PAD_RIGHT) #ENDIF #IF NOT IS_JAPANESE_BUILD RETURN IS_DISABLED_CONTROL_JUST_PRESSED(PLAYER_CONTROL, INPUT_VEH_CIN_CAM) #ENDIF ENDFUNC FUNC STRING LIMO_CAM_HELP_TEXT() #IF IS_JAPANESE_BUILD RETURN "MIC4_LIMOCAM_JAP" #ENDIF #IF NOT IS_JAPANESE_BUILD RETURN "MIC4_LIMOCAM" #ENDIF ENDFUNC CAMERA_INDEX camAnim CAMERA_INDEX camAnim2 INT iCamSyncScene PROC SWITCH_TO_ATTACH_CAM() SET_CAM_ACTIVE(camAnim, FALSE) SET_CAM_ACTIVE(camAnim2, TRUE) ENDPROC PROC SWITCH_TO_WIDE_CAM() SET_CAM_ACTIVE(camAnim, TRUE) SET_CAM_ACTIVE(camAnim2, FALSE) ENDPROC //#IF IS_DEBUG_BUILD //BOOL bWideCamActive //BOOL bAttachCamActive //#ENDIF /// OBJECT_INDEX collisionBlocker1//prop_pap_camera_01 OBJECT_INDEX collisionBlocker2 OBJECT_INDEX collisionBlocker3 OBJECT_INDEX collisionBlocker4 VECTOR vOffset1 = <<-1.499496, 1.974216, -0.459954>> VECTOR vOffset2 = <<1.499486, 1.974225, -0.477030>> VECTOR vOffset3 = <<-1.497941, -2.836743, -0.451934>> VECTOR vOffset4 = <<1.497952, -2.836504, -0.439115>> PROC PROCESS_LIMO_CAM() DISABLE_CINEMATIC_BONNET_CAMERA_THIS_UPDATE() HIDE_HUD_AND_RADAR_THIS_FRAME() DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_VEH_CIN_CAM) SWITCH iLimoCamStage CASE 0 IF NOT IS_CINEMATIC_CAM_RENDERING() AND IS_PED_IN_VEHICLE(pedJimmy, carMichael) IF NOT DOES_ENTITY_EXIST(collisionBlocker1) PRINT_HELP(LIMO_CAM_HELP_TEXT()) collisionBlocker1 = CREATE_OBJECT(PROP_CRATE_01A, GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(carMichael, vOffset1)) ENDIF IF NOT DOES_ENTITY_EXIST(collisionBlocker2) collisionBlocker2 = CREATE_OBJECT(PROP_CRATE_01A, GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(carMichael, vOffset2)) ENDIF IF NOT DOES_ENTITY_EXIST(collisionBlocker3) collisionBlocker3 = CREATE_OBJECT(PROP_CRATE_01A, GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(carMichael, vOffset3)) ENDIF IF NOT DOES_ENTITY_EXIST(collisionBlocker4) collisionBlocker4 = CREATE_OBJECT(PROP_CRATE_01A, GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(carMichael, vOffset4)) ENDIF SET_ENTITY_COLLISION(collisionBlocker1, TRUE) SET_ENTITY_COLLISION(collisionBlocker2, TRUE) SET_ENTITY_COLLISION(collisionBlocker3, TRUE) SET_ENTITY_COLLISION(collisionBlocker4, TRUE) SET_ENTITY_VISIBLE(collisionBlocker1, FALSE) SET_ENTITY_VISIBLE(collisionBlocker2, FALSE) SET_ENTITY_VISIBLE(collisionBlocker3, FALSE) SET_ENTITY_VISIBLE(collisionBlocker4, FALSE) ATTACH_ENTITY_TO_ENTITY(collisionBlocker1, carMichael, 0, vOffset1, <<0.0, 0.0, 0.0>>, TRUE, FALSE, TRUE) ATTACH_ENTITY_TO_ENTITY(collisionBlocker2, carMichael, 0, vOffset2, <<0.0, 0.0, 0.0>>, TRUE, FALSE, TRUE) ATTACH_ENTITY_TO_ENTITY(collisionBlocker3, carMichael, 0, vOffset3, <<0.0, 0.0, 0.0>>, TRUE, FALSE, TRUE) ATTACH_ENTITY_TO_ENTITY(collisionBlocker4, carMichael, 0, vOffset4, <<0.0, 0.0, 0.0>>, TRUE, FALSE, TRUE) iLimoCamStage++ // ELSE // bLimoCamActive = TRUE ENDIF BREAK CASE 1 IF LIMO_CAM_BUTTON() //IS_DISABLED_CONTROL_JUST_PRESSED(PLAYER_CONTROL, INPUT_VEH_CIN_CAM)//IS_CONTROL_JUST_PRESSED(PLAYER_CONTROL, INPUT_VEH_CIN_CAM) AND bLimoCamActive = FALSE IF NOT IS_AUDIO_SCENE_ACTIVE("MI_4_LIMO_CAM_SCENE") START_AUDIO_SCENE("MI_4_LIMO_CAM_SCENE") ENDIF SET_ENTITY_COLLISION(collisionBlocker1, TRUE) SET_ENTITY_COLLISION(collisionBlocker2, TRUE) SET_ENTITY_COLLISION(collisionBlocker3, TRUE) SET_ENTITY_COLLISION(collisionBlocker4, TRUE) CLEAR_AREA_OF_VEHICLES(GET_ENTITY_COORDS(PLAYER_PED_ID()), 200.0) bLimoCamActive = TRUE ENDIF ATTACH_ENTITY_TO_ENTITY(collisionBlocker1, carMichael, 0, vOffset1, <<0.0, 0.0, 0.0>>, TRUE, FALSE, TRUE) ATTACH_ENTITY_TO_ENTITY(collisionBlocker2, carMichael, 0, vOffset2, <<0.0, 0.0, 0.0>>, TRUE, FALSE, TRUE) ATTACH_ENTITY_TO_ENTITY(collisionBlocker3, carMichael, 0, vOffset3, <<0.0, 0.0, 0.0>>, TRUE, FALSE, TRUE) ATTACH_ENTITY_TO_ENTITY(collisionBlocker4, carMichael, 0, vOffset4, <<0.0, 0.0, 0.0>>, TRUE, FALSE, TRUE) HIDE_HUD_AND_RADAR_THIS_FRAME() DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_VEH_CIN_CAM) DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_CINEMATIC_SLOWMO) DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_VEH_CINEMATIC_UD) DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_VEH_CINEMATIC_UP_ONLY) DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_VEH_CINEMATIC_DOWN_ONLY) DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_VEH_CINEMATIC_LR) FORCE_CINEMATIC_RENDERING_THIS_UPDATE(bLimoCamActive) IF LIMO_CAM_BUTTON()//IS_DISABLED_CONTROL_JUST_PRESSED(PLAYER_CONTROL, INPUT_VEH_CIN_CAM)//IS_CONTROL_JUST_PRESSED(PLAYER_CONTROL, INPUT_VEH_CIN_CAM) AND NOT IS_GAMEPLAY_CAM_RENDERING() AND bLimoCamActive OR IS_PHONE_ONSCREEN() SET_ENTITY_COLLISION(collisionBlocker1, FALSE) SET_ENTITY_COLLISION(collisionBlocker2, FALSE) SET_ENTITY_COLLISION(collisionBlocker3, FALSE) SET_ENTITY_COLLISION(collisionBlocker4, FALSE) DELETE_OBJECT(collisionBlocker1) DELETE_OBJECT(collisionBlocker2) DELETE_OBJECT(collisionBlocker3) DELETE_OBJECT(collisionBlocker4) CLEAR_HELP() //DESTROY_ALL_CAMS() iLimoCamStage = 0 IF IS_AUDIO_SCENE_ACTIVE("MI_4_LIMO_CAM_SCENE") STOP_AUDIO_SCENE("MI_4_LIMO_CAM_SCENE") ENDIF IF i_current_event >= 3 iLimoCamStage = 999 ENDIF bLimoCamActive = FALSE ENDIF BREAK ENDSWITCH // ELSE // // RENDER_SCRIPT_CAMS(FALSE, FALSE) //ENDIF ENDPROC INT iSunroofTimer INT iPartyInterval //BOOL bLimoCamHelpPrinted INT iWhichRandomIdle STRING stAnim OBJECT_INDEX oiChampagneBottle PTFX_ID ptfxChampMess FLOAT fChampEvoValue VECTOR vChampRotation PROC PROCESS_JIMMY_SUNROOF() SWITCH iJimmySunroof CASE 0 //REQUEST_STAGE_ASSETS(STAGE_GET_TO_MOVIE_PREMIERE) iSunroofTimer = GET_GAME_TIMER() iPartyInterval = 5000 IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData, IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF) AND CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_TALK1", CONV_PRIORITY_VERY_HIGH) iJimmySunroof++ ENDIF BREAK CASE 1 IF HAVE_STAGE_ASSETS_LOADED(STAGE_GET_TO_MOVIE_PREMIERE) AND GET_GAME_TIMER() - iSunroofTimer > iPartyInterval iJimmySunroof++ ENDIF BREAK CASE 2 IF NOT IS_PED_INJURED(pedJimmy) SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedJimmy, TRUE) oiChampagneBottle = CREATE_OBJECT(Prop_Champ_01b, GET_ENTITY_COORDS(pedJimmy)) ATTACH_ENTITY_TO_ENTITY(oiChampagneBottle, pedJimmy, GET_PED_BONE_INDEX(pedJimmy, BONETAG_PH_R_HAND), <<0.0, 0.0, 0.0>>, <<0.0, 0.0, 0.0>>) iDisableReplayCameraTimer = GET_GAME_TIMER() + 1000 //Fix for bug 2227677 TASK_PLAY_ANIM(pedJImmy, "missmic4jimmy_limo", "intro", INSTANT_BLEND_IN, INSTANT_BLEND_OUT, -1,AF_NOT_INTERRUPTABLE | AF_HOLD_LAST_FRAME) // iLimoCamIndex = 0 ENDIF stAnim = "Idle_01" iJimmySunroof++ BREAK CASE 3 IF NOT IS_PED_INJURED(pedJimmy) AND DOES_ENTITY_EXIST(oiChampagneBottle) // IF (GET_GAME_TIMER() - iSunroofTimer > iPartyInterval // OR GET_VEHICLE_RECORDING_PLAYBACK_PERCENTAGE_PROGRESS(carMichael, "MIC4") > 90.0 ) IF IS_ENTITY_PLAYING_ANIM(pedJImmy, "missmic4jimmy_limo", stAnim) AND GET_ENTITY_ANIM_CURRENT_TIME(pedJImmy, "missmic4jimmy_limo", stAnim) >= 0.99 AND i_current_event > 2 // NOT IS_SCRIPTED_CONVERSATION_ONGOING() iJimmySunroof++ FALLTHRU ELSE // IF bLimoCamHelpPrinted = FALSE // AND bLimoCamActive = FALSE // PRINT_HELP(LIMO_CAM_HELP_TEXT()) // bLimoCamHelpPrinted = TRUE // ENDIF SET_PED_CAN_HEAD_IK(pedJImmy, FALSE) vChampRotation = GET_ENTITY_ROTATION(oiChampagneBottle) fChampEvoValue = 0.0 IF ABSF(vChampRotation.x) > 5.0 OR ABSF(vChampRotation.y) > 5.0 fChampEvoValue = 0.5 ENDIF IF ABSF(vChampRotation.x) > 15.0 OR ABSF(vChampRotation.y) > 15.0 fChampEvoValue = 1.0 ENDIF PRINTLN("vChampRotation.x", vChampRotation.x, "vChampRotation.y", vChampRotation.y, "fChampEvoValue: ", fChampEvoValue) IF DOES_PARTICLE_FX_LOOPED_EXIST(ptfxChampMess) SET_PARTICLE_FX_LOOPED_EVOLUTION(ptfxChampMess, "flow", fChampEvoValue) ENDIF IF (IS_ENTITY_PLAYING_ANIM(pedJImmy, "missmic4jimmy_limo", "Idle_04") AND GET_ENTITY_ANIM_CURRENT_TIME(pedJImmy, "missmic4jimmy_limo", "Idle_04") >= 0.68) IF IS_FACE_TO_FACE_CONVERSATION_PAUSED() PAUSE_FACE_TO_FACE_CONVERSATION(FALSE) ENDIF ENDIF IF (IS_ENTITY_PLAYING_ANIM(pedJImmy, "missmic4jimmy_limo", "intro") AND GET_ENTITY_ANIM_CURRENT_TIME(pedJImmy, "missmic4jimmy_limo", "intro") >= 0.99) OR (IS_ENTITY_PLAYING_ANIM(pedJImmy, "missmic4jimmy_limo", stAnim) AND GET_ENTITY_ANIM_CURRENT_TIME(pedJImmy, "missmic4jimmy_limo", stAnim) >= 0.99) iWhichRandomIdle = GET_RANDOM_INT_IN_RANGE(0, 5) SWITCH iWhichRandomIdle CASE 0 stAnim = "Idle_01" BREAK CASE 1 stAnim = "Idle_02" BREAK CASE 2 stAnim = "Idle_03" BREAK CASE 3 stAnim = "Idle_04" IF NOT IS_FACE_TO_FACE_CONVERSATION_PAUSED() PAUSE_FACE_TO_FACE_CONVERSATION(TRUE) ENDIF BREAK CASE 4 stAnim = "Idle_05" BREAK ENDSWITCH IF NOT DOES_PARTICLE_FX_LOOPED_EXIST(ptfxChampMess) ptfxChampMess = START_PARTICLE_FX_LOOPED_ON_ENTITY("scr_rcpap1_champ_slosh", oiChampagneBottle, <<0.0, 0.0, 0.37>>, <<0.0, 0.0, 0.0>>) ENDIF TASK_PLAY_ANIM(pedJImmy, "missmic4jimmy_limo", stAnim, INSTANT_BLEND_IN, INSTANT_BLEND_OUT, -1, AF_NOT_INTERRUPTABLE) iPartyInterval = GET_RANDOM_INT_IN_RANGE(5000, 20000) iSunroofTimer = GET_GAME_TIMER() FORCE_PED_AI_AND_ANIMATION_UPDATE(pedJimmy) //iLimoCamIndex = 0 ENDIF ENDIF ENDIF BREAK CASE 4 IF NOT IS_PED_INJURED(pedJimmy) TASK_PLAY_ANIM(pedJImmy, "missmic4jimmy_limo", "outro", INSTANT_BLEND_IN, NORMAL_BLEND_OUT) FORCE_PED_AI_AND_ANIMATION_UPDATE(pedJimmy) iPartyInterval = GET_RANDOM_INT_IN_RANGE(20000, 30000) iSunroofTimer = GET_GAME_TIMER() IF DOES_PARTICLE_FX_LOOPED_EXIST(ptfxChampMess) STOP_PARTICLE_FX_LOOPED(ptfxChampMess) ENDIF iJimmySunroof++ ENDIF BREAK CASE 5 // IF GET_VEHICLE_RECORDING_PLAYBACK_PERCENTAGE_PROGRESS(carMichael, "MIC4") < 90.0 // AND IS_SCREEN_FADED_IN() // IF GET_GAME_TIMER() - iSunroofTimer > iPartyInterval // iJimmySunroof = 2 // ENDIF // ELSE IF NOT IS_PED_INJURED(pedJimmy) IF IS_ENTITY_PLAYING_ANIM(pedJImmy, "missmic4jimmy_limo", "outro") AND GET_ENTITY_ANIM_CURRENT_TIME(pedJImmy, "missmic4jimmy_limo", "outro") >= 0.99 IF DOES_ENTITY_EXIST(oiChampagneBottle) DELETE_OBJECT(oiChampagneBottle) SET_MODEL_AS_NO_LONGER_NEEDED(Prop_Champ_01b) REMOVE_ANIM_DICT("missmic4jimmy_limo") iJimmySunroof = 6 ENDIF ENDIF ENDIF BREAK ENDSWITCH ENDPROC INT iTimeOfLastFlash INT iFlashInterval VECTOR vCameraRotation //BOOL bDisplayBanner PROC PROCESS_CAMERA_FLASHES() //Camera Flashes. INT i IF GET_GAME_TIMER() - iTimeOfLastFlash > iFlashInterval AND NOT IS_CUTSCENE_PLAYING() i = GET_RANDOM_INT_IN_RANGE(1, 12) IF i = 7 i = 8 ENDIF IF DOES_ENTITY_EXIST(oiRedCarpetObjects[8]) IF GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(), oiRedCarpetObjects[8]) < 3.0 IF GET_RANDOM_BOOL() i = 8 ENDIF ENDIF ENDIF IF DOES_ENTITY_EXIST(oiRedCarpetObjects[9]) IF GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(), oiRedCarpetObjects[9]) < 3.0 IF GET_RANDOM_BOOL() i = 9 ENDIF ENDIF ENDIF IF DOES_ENTITY_EXIST(oiRedCarpetObjects[10]) IF GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(), oiRedCarpetObjects[10]) < 3.0 PRINTLN("camera ROT:, ", vCameraRotation.x, " ", vCameraRotation.y) IF GET_RANDOM_BOOL() i = 10 ENDIF ENDIF ENDIF IF DOES_ENTITY_EXIST(oiRedCarpetObjects[11]) IF GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(), oiRedCarpetObjects[11]) < 3.0 i = 11 ENDIF ENDIF IF REQUEST_SCRIPT_AUDIO_BANK("Distant_Camera_Flash") PLAY_SOUND_FROM_ENTITY(-1, "MIC4_CAMERA_FLASH_master", oiRedCarpetObjects[i]) ENDIF IF DOES_ENTITY_EXIST(oiRedCarpetObjects[i]) vCameraRotation = GET_ENTITY_ROTATION(oiRedCarpetObjects[i]) ENDIF IF vCameraRotation.x < 50.0 AND vCameraRotation.y > -4.0 IF DOES_ENTITY_EXIST(oiRedCarpetObjects[i]) START_PARTICLE_FX_NON_LOOPED_ON_ENTITY ("scr_rcpap1_camera", oiRedCarpetObjects[i], <<0.0, 0.0, 0.0.>>, <<0.0, 0.0, 0.0>>) ENDIF iFlashInterval = GET_RANDOM_INT_IN_RANGE(50, 250) iTimeOfLastFlash = GET_GAME_TIMER() ENDIF ENDIF IF NOT IS_PED_INJURED(pedsMoviePremier[MOVP_PRODUCER]) SET_PED_RESET_FLAG(pedsMoviePremier[MOVP_PRODUCER], PRF_ExpandPedCapsuleFromSkeleton, TRUE) ENDIF IF NOT IS_PED_INJURED(pedsMoviePremier[MOVP_PAP1_A]) SET_PED_RESET_FLAG(pedsMoviePremier[MOVP_PAP1_A], PRF_ExpandPedCapsuleFromSkeleton, TRUE) ENDIF IF NOT IS_PED_INJURED(pedsMoviePremier[MOVP_EX_3]) SET_PED_RESET_FLAG(pedsMoviePremier[MOVP_EX_3], PRF_ExpandPedCapsuleFromSkeleton, TRUE) ENDIF ENDPROC INT iTimeOfLastFirework INT iFireworkInterval PROC PROCESS_FIREWORKS() //Fireworks INT i VECTOR vFireworkPos VECTOR vFireworkRotation IF GET_GAME_TIMER() - iTimeOfLastFirework > iFireworkInterval AND NOT IS_CUTSCENE_PLAYING() i = GET_RANDOM_INT_IN_RANGE(0, 5) SWITCH i CASE 0 vFireworkPos = <<323.3195, 226.5455, 121.6866>> BREAK CASE 1 vFireworkPos = <<298.9352, 229.2652, 121.2983>> BREAK CASE 2 vFireworkPos = <<302.1084, 237.7405, 122.2715>> BREAK CASE 3 vFireworkPos = <<310.7933, 234.3421, 123.2060>> BREAK CASE 4 vFireworkPos= <<318.3249, 234.6467, 123.0775>> BREAK ENDSWITCH vFireworkRotation.x = GET_RANDOM_FLOAT_IN_RANGE(-5.0, 5.0) vFireworkRotation.y = GET_RANDOM_FLOAT_IN_RANGE(-5.0, 5.0) vFireworkRotation.z = GET_RANDOM_FLOAT_IN_RANGE(0.0, 360.0) // IF REQUEST_SCRIPT_AUDIO_BANK("Distant_Camera_Flash") // PLAY_SOUND_FROM_ENTITY(-1, "MIC4_CAMERA_FLASH_master", oiRedCarpetObjects[i]) // ENDIF SET_PARTICLE_FX_NON_LOOPED_COLOUR(GET_RANDOM_FLOAT_IN_RANGE(0.0, 1.0), GET_RANDOM_FLOAT_IN_RANGE(0.0, 1.0), GET_RANDOM_FLOAT_IN_RANGE(0.0, 1.0)) IF GET_RANDOM_BOOL() START_PARTICLE_FX_NON_LOOPED_AT_COORD("scr_mich4_firework_starburst", vFireworkPos, vFireworkRotation, GET_RANDOM_FLOAT_IN_RANGE(0.8, 1.6)) ELSE START_PARTICLE_FX_NON_LOOPED_AT_COORD("scr_mich4_firework_trailburst", vFireworkPos, vFireworkRotation, GET_RANDOM_FLOAT_IN_RANGE(0.8, 1.6)) ENDIF PRINTLN("Fireworks", vFireworkPos, vFireworkRotation, iFireworkInterval) iFireworkInterval = GET_RANDOM_INT_IN_RANGE(250, 1200) iTimeOfLastFirework = GET_GAME_TIMER() ENDIF ENDPROC ///Creates a new load scene sphere and waits until it has finished loading or it times out. PROC NEW_LOAD_SCENE_SPHERE_WITH_WAIT(VECTOR vPos, FLOAT fRadius, NEWLOADSCENE_FLAGS controlFlags = 0, INT iMaxWaitTime = 10000) INT iTimeOut = GET_GAME_TIMER() WHILE GET_GAME_TIMER() - iTimeOut < iMaxWaitTime IF NOT IS_NEW_LOAD_SCENE_ACTIVE() NEW_LOAD_SCENE_START_SPHERE(vPos, fRadius, controlFlags) ELIF IS_NEW_LOAD_SCENE_LOADED() iTimeOut = 0 ENDIF WAIT(0) ENDWHILE NEW_LOAD_SCENE_STOP() ENDPROC INT iTimeOfTrigger INT iTimeOfTriggerMinutes CAM_VIEW_MODE beforeCinematicCameraMode PROC stageGetToMoviePremiere() HANDLE_CINEMA_DOOR() #IF IS_DEBUG_BUILD IF IS_KEYBOARD_KEY_JUST_PRESSED(KEY_T) i_current_event = 3 SKIP_TO_END_AND_STOP_PLAYBACK_RECORDED_VEHICLE(carMichael) ENDIF #ENDIF IF NOT IS_ENTITY_DEAD(carMichael) IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(), carMichael, TRUE) DISABLE_CINEMATIC_BONNET_CAMERA_THIS_UPDATE() ENDIF IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(), carMichael, TRUE) AND IS_PED_IN_VEHICLE(pedJimmy, carMichael) DISABLE_CELLPHONE_CAMERA_APP_THIS_FRAME_ONLY() SET_CINEMATIC_BUTTON_ACTIVE(TRUE) PROCESS_LIMO_CAM() ELSE //SCRIPT_ASSERT("boom") DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_VEH_CIN_CAM) SET_CINEMATIC_BUTTON_ACTIVE(FALSE) ENDIF ENDIF IF IS_CUTSCENE_SKIP_BUTTON_JUST_PRESSED_WITH_DELAY() AND i_current_event = 2//< 3 AND IS_PED_IN_VEHICLE(PLAYER_PED_ID(), carMichael) DO_SCREEN_FADE_OUT(500) WHILE IS_SCREEN_FADING_OUT() WAIT(0) ENDWHILE i_current_event = 3 iJimmySunroof = 6 IF NOT IS_ENTITY_DEAD(carMichael) SKIP_TO_END_AND_STOP_PLAYBACK_RECORDED_VEHICLE(carMichael) ENDIF KILL_FACE_TO_FACE_CONVERSATION_DO_NOT_FINISH_LAST_LINE() IF NOT IS_PED_INJURED(pedJimmy) CLEAR_PED_TASKS(pedJimmy) ENDIF DELETE_OBJECT(oiChampagneBottle) CLEAR_HELP() NEW_LOAD_SCENE_SPHERE_WITH_WAIT(<<291.3156, 176.4981, 103.1394>>, 30.0) ENDIF DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_VEH_ATTACK) DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_VEH_ATTACK2) DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_VEH_AIM) DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_ATTACK) DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_ATTACK2) DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_SELECT_WEAPON) DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_VEH_SELECT_NEXT_WEAPON) DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_VEH_SELECT_PREV_WEAPON) // IF NOT IS_ENTITY_DEAD(carMichael) // AND i_current_event < 3 // IF NOT IS_PLAYBACK_GOING_ON_FOR_VEHICLE(carMichael) // SET_ENTITY_ROTATION(carMichael, GET_ROTATION_OF_VEHICLE_RECORDING_AT_TIME(1, 0.0, "MIC4")) // SET_ENTITY_COORDS(carMichael, GET_POSITION_OF_VEHICLE_RECORDING_AT_TIME(1, 0.0, "MIC4")) // ENDIF // ENDIF SWITCH i_current_event CASE 0 DISABLE_CELLPHONE(TRUE) PAUSE_CLOCK(TRUE) CLEAR_PRINTS() TRIGGER_MUSIC_EVENT("SOL5_LIMO_RADIO") SET_PED_NON_CREATION_AREA(<<292.424530,172.560867,109.715904>> - <<61.000000,50.250000,8.500000>>, <<292.424530,172.560867,109.715904>> + <<61.000000,50.250000,8.500000>>) SET_CURRENT_PED_WEAPON(PLAYER_PED_ID(), WEAPONTYPE_UNARMED, TRUE) IF NOT IS_AUDIO_SCENE_ACTIVE("MI_4_LIMO_DRIVE_SCENE") START_AUDIO_SCENE("MI_4_LIMO_DRIVE_SCENE") ENDIF // bLimoCamHelpPrinted = FALSE beforeCinematicCameraMode = GET_FOLLOW_VEHICLE_CAM_VIEW_MODE() camAnim = CREATE_CAM("DEFAULT_ANIMATED_CAMERA", FALSE) camAnim2 = CREATE_CAM("DEFAULT_ANIMATED_CAMERA", FALSE) iTimeOfTrigger = GET_CLOCK_HOURS() iTimeOfTriggerMinutes = GET_CLOCK_MINUTES() REQUEST_STAGE_ASSETS(STAGE_PICKUP_JIMMY) REQUEST_STAGE_ASSETS(STAGE_GET_TO_MOVIE_PREMIERE) i_current_event++ BREAK CASE 1 IF HAVE_STAGE_ASSETS_LOADED(STAGE_PICKUP_JIMMY) AND HAVE_STAGE_ASSETS_LOADED(STAGE_GET_TO_MOVIE_PREMIERE) STOP_VEHICLE_FIRE(carMichael) SET_ENTITY_PROOFS(carMichael, FALSE, TRUE, FALSE, FALSE, FALSE) #IF IS_DEBUG_BUILD set_uber_parent_widget_group(sol5WidgetGroup) #ENDIF INITIALISE_UBER_PLAYBACK("MIC4", 1, FALSE) SETUP_TRAFFIC() IF NOT IS_ENTITY_DEAD(carMichael) //START_PLAYBACK_RECORDED_VEHICLE_USING_AI(carMichael, 5, "Mic4Rec", 10, DRIVINGMODE_AVOIDCARS_OBEYLIGHTS) START_PLAYBACK_RECORDED_VEHICLE(carMichael, 1, "MIC4", FALSE) FORCE_PLAYBACK_RECORDED_VEHICLE_UPDATE(carMichael, FALSE) ENDIF PLAY_CAM_ANIM(camAnim, "LimoDrive_Camera_freeCam", "MISSMIC4JIMMY_LIMO", GET_ENTITY_COORDS(carMichael) - <<0.0, 0.0, -0.5>>, GET_ENTITY_ROTATION(carMichael)) iCamSyncScene = CREATE_SYNCHRONIZED_SCENE(<<0.0, 0.0, 0.0>>, <<0.0, 0.0, 0.0>>) ATTACH_SYNCHRONIZED_SCENE_TO_ENTITY(iCamSyncScene, carMichael, GET_ENTITY_BONE_INDEX_BY_NAME(carMichael, "chassis")) PLAY_SYNCHRONIZED_CAM_ANIM(camAnim2, iCamSyncScene, "LimoDrive_Camera_attachToCar", "MISSMIC4JIMMY_LIMO") SET_PLAYER_CAN_CHANGE_CLOTHES_ON_MISSION(FALSE) FADE_IN_IF_NEEDED() SET_PED_NON_CREATION_AREA(<<292.424530,172.560867,109.715904>> - <<61.000000,50.250000,8.500000>>, <<292.424530,172.560867,109.715904>> + <<61.000000,50.250000,8.500000>>) SET_ROADS_IN_AREA(<<292.424530,172.560867,109.715904>> - <<61.000000,50.250000,8.500000>>, <<292.424530,172.560867,109.715904>> + <<61.000000,50.250000,8.500000>>, FALSE) i_current_event++ ENDIF BREAK CASE 2 CASE 3 //IF IS_ENTITY_AT_COORD(PLAYER_PED_ID(), <<291.3156, 176.4981, 103.1394>>, <<400.0, 400.0, 200.0>>) IF iJimmySunroof > 0 AND NOT IS_SCRIPTED_CONVERSATION_ONGOING() AND NOT IS_FACE_TO_FACE_CONVERSATION_PAUSED() AND i_current_event = 2 DISABLE_CELLPHONE(FALSE) IF PLAYER_CALL_CHAR_CELLPHONE(myScriptedSpeech, CHAR_DEVIN, "SOL5AUD", "SOL5_CALL", CONV_PRIORITY_VERY_HIGH, TRUE, DISPLAY_SUBTITLES, DO_ADD_TO_BRIEF_SCREEN, TRUE) i_current_event = 3 ENDIF // IF CHECK_CELLPHONE_LAST_CALL_REJECTED() // OR WAS_LAST_CELLPHONE_CALL_INTERRUPTED() // i_current_event = 3 // ENDIF ENDIF IF IS_ENTITY_AT_COORD(PLAYER_PED_ID(), <<291.3156, 176.4981, 103.1394>>, <<100.0, 100.0, 100.0>>) REQUEST_STAGE_ASSETS(STAGE_MOVIE_PREMIERE_CUT) i_current_event = 4 ENDIF BREAK CASE 4 IF HAVE_STAGE_ASSETS_LOADED(STAGE_MOVIE_PREMIERE_CUT) IF CREATE_STAGE_ASSETS(STAGE_MOVIE_PREMIERE_CUT) FADE_IN_IF_NEEDED() i_current_event++ ENDIF ENDIF BREAK CASE 5 PROCESS_CAMERA_FLASHES() PROCESS_FIREWORKS() IF GET_VEHICLE_RECORDING_PLAYBACK_PERCENTAGE_PROGRESS(carMichael, "MIC4") > 90.0 AND CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_THERE", CONV_PRIORITY_VERY_HIGH) i_current_event++ ENDIF BREAK CASE 6 PROCESS_CAMERA_FLASHES() PROCESS_FIREWORKS() BREAK ENDSWITCH //SET_CLOCK_TIME(iTimeOfTrigger, iTimeOfTriggerMinutes, 0) IF i_current_event > 1 UPDATE_UBER_PLAYBACK(carMichael, 1.0) SET_PLAYBACK_SPEED(carMichael, 1.0) PROCESS_JIMMY_SUNROOF() STOP_FIRE_IN_RANGE(GET_ENTITY_COORDS(carMichael), 4.3) ENDIF SET_VEHICLE_DENSITY_MULTIPLIER_THIS_FRAME(0.25) //IF IS_PLAYER_AT_LOCATION_WITH_BUDDIES_ANY_MEANS(sLocatesData, <<291.3156, 176.4981, 103.1394>>, <<3.0, 3.0, 12.0>>, FALSE, pedJimmy, NULL, NULL, "SOL5_MOVIE", "CMN_JLEAVE", "", "", "CMN_JLEAVE", FALSE, TRUE, TRUE) //, NULL, TRUE) //IF GET_VEHICLE_RECORDING_PLAYBACK_PERCENTAGE_PROGRESS(carMichael, "Mic4Rec") >= 99.0 IF NOT IS_ENTITY_DEAD(carMichael) AND i_current_event > 4 IF IS_ENTITY_AT_COORD(carMichael,<<291.3156, 176.4981, 103.1394>>, <<4.0, 4.0, 4.0>>) IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID()) carMichaelIsIn = GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()) WHILE NOT BRING_VEHICLE_TO_HALT_AND_DISABLE_VEH_CONTROLS(carMichaelIsIn, 3.0, 5) DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_VEH_ATTACK) DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_VEH_ATTACK2) DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_VEH_AIM) DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_ATTACK) DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_ATTACK2) DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_SELECT_WEAPON) DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_VEH_SELECT_NEXT_WEAPON) DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_VEH_SELECT_PREV_WEAPON) WAIT(0) REPLAY_CHECK_FOR_EVENT_THIS_FRAME("M_Meltdown") ENDWHILE ENDIF REPLAY_RECORD_BACK_FOR_TIME(5.0, 7.0, REPLAY_IMPORTANCE_HIGHEST) DELETE_OBJECT(collisionBlocker1) DELETE_OBJECT(collisionBlocker2) DELETE_OBJECT(collisionBlocker3) DELETE_OBJECT(collisionBlocker4) SET_MODEL_AS_NO_LONGER_NEEDED(PROP_CRATE_01A) SET_FOLLOW_VEHICLE_CAM_VIEW_MODE(beforeCinematicCameraMode) STOP_PLAYBACK_RECORDED_VEHICLE(carMichael) SET_VEHICLE_DOORS_LOCKED(carMichael, VEHICLELOCK_UNLOCKED) DESTROY_ALL_CAMS() RENDER_SCRIPT_CAMS(FALSE, FALSE) DELETE_OBJECT(oiChampagneBottle) DISABLE_CELLPHONE(FALSE) CLEANUP_UBER_PLAYBACK() SET_ENTITY_PROOFS(carMichael, FALSE, FALSE, FALSE, FALSE, FALSE) PAUSE_CLOCK(FALSE) // TASK_LEAVE_ANY_VEHICLE(PLAYER_PED_ID()) i_current_event = 0 mission_stage = STAGE_MOVIE_PREMIERE_CUT ENDIF ENDIF ENDPROC INT iLazlowDialogue INT iLazlowDialogueTimer INT iRandomProducerLine PROC PROCESS_LAZLOW_DIALOGUE() IF IS_PED_ON_FOOT(PLAYER_PED_ID()) IF GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(), pedsMoviePremier[MOVP_PRODUCER]) > 4.0 AND GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(), pedsMoviePremier[MOVP_LAZLOW]) > 6.0 SWITCH iLazlowDialogue CASE 0 IF NOT IS_SCRIPTED_CONVERSATION_ONGOING() IF CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_INT_LI1", CONV_PRIORITY_VERY_HIGH, DO_NOT_DISPLAY_SUBTITLES) iLazlowDialogueTimer = GET_GAME_TIMER() iLazlowDialogue++ ENDIF ENDIF BREAK CASE 1 IF NOT IS_SCRIPTED_CONVERSATION_ONGOING() AND GET_GAME_TIMER() - iLazlowDialogueTimer > 7500 IF CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_INT_LI2", CONV_PRIORITY_VERY_HIGH, DO_NOT_DISPLAY_SUBTITLES) iLazlowDialogueTimer = GET_GAME_TIMER() iLazlowDialogue++ ENDIF ENDIF BREAK CASE 2 IF NOT IS_SCRIPTED_CONVERSATION_ONGOING() AND GET_GAME_TIMER() - iLazlowDialogueTimer > 6500 IF CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_INT_LI3", CONV_PRIORITY_VERY_HIGH, DO_NOT_DISPLAY_SUBTITLES) iLazlowDialogueTimer = GET_GAME_TIMER() iLazlowDialogue++ ENDIF ENDIF BREAK CASE 3 IF NOT IS_SCRIPTED_CONVERSATION_ONGOING() AND GET_GAME_TIMER() - iLazlowDialogueTimer > 2500 IF CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_INT_LI4", CONV_PRIORITY_VERY_HIGH, DO_NOT_DISPLAY_SUBTITLES) iLazlowDialogue++ ENDIF ENDIF BREAK ENDSWITCH ELSE IF GET_GAME_TIMER() - iRandomProducerLine > 5000 AND NOT IS_SCRIPTED_CONVERSATION_ONGOING() IF CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_IG1_5", CONV_PRIORITY_VERY_HIGH, DO_NOT_DISPLAY_SUBTITLES) iRandomProducerLine = GET_GAME_TIMER() ENDIF ENDIF ENDIF ENDIF ENDPROC BLIP_INDEX blipRedCarpet SEQUENCE_INDEX seqGetOutOfLimo BOOL bJimmySaidHowProud = FALSE //BOOL bGodTextDisplayed = FALSE BOOL bAudioStreamPlaying = FALSE BOOL bStopAudioStream = FALSE BOOL bStopCrotchCam = FALSE // url:bugstar:2077947 INT iPushInTimer //INT iArrivalTime PROC stageIntroMocapCutscene() HANDLE_CINEMA_DOOR() INT i IF i_current_event < 5 SET_PED_MAX_MOVE_BLEND_RATIO(PLAYER_PED_ID(), PEDMOVE_WALK) IF HAS_ANIM_SET_LOADED("move_p_m_zero_slow") SET_PED_MOVEMENT_CLIPSET(PLAYER_PED_ID(), "move_p_m_zero_slow") ENDIF IF NOT IS_PED_INJURED(pedJimmy) SET_PED_MAX_MOVE_BLEND_RATIO(pedJimmy, PEDMOVE_WALK) IF HAS_ANIM_SET_LOADED("move_characters@Jimmy@slow@") SET_PED_MOVEMENT_CLIPSET(pedJimmy,"move_characters@Jimmy@slow@") ENDIF ENDIF ENDIF DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_VEH_ATTACK) DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_VEH_ATTACK2) DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_VEH_AIM) DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_VEH_SELECT_NEXT_WEAPON) DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_VEH_SELECT_PREV_WEAPON) DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_AIM) DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_ATTACK) DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_ATTACK2) DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_SELECT_WEAPON) DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_MELEE_ATTACK_ALTERNATE) DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_MELEE_ATTACK_HEAVY) DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_MELEE_ATTACK_LIGHT) DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_MELEE_ATTACK1) DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_MELEE_ATTACK2) DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_JUMP) IF NOT IS_ENTITY_DEAD(carMichael) IF NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(), carMichael) DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_ENTER) ENDIF ENDIF PROCESS_CAMERA_FLASHES() #IF IS_NEXTGEN_BUILD PROCESS_FIREWORKS() #ENDIF SET_VEHICLE_DENSITY_MULTIPLIER_THIS_FRAME(0.25) SET_PED_DENSITY_MULTIPLIER_THIS_FRAME(0.25) SWITCH i_current_event CASE 0 iTimeOfTrigger = GET_CLOCK_HOURS() iTimeOfTriggerMinutes = GET_CLOCK_MINUTES() // iArrivalTime = GET_CLOCK_HOURS() SET_PED_POPULATION_BUDGET(0) SET_VEHICLE_POPULATION_BUDGET(0) STOP_PLAYBACK_RECORDED_VEHICLE(carMichael) REQUEST_ANIM_SET("move_characters@Jimmy@slow@") REQUEST_ANIM_SET("move_p_m_zero_slow") REQUEST_ANIM_DICT("MISSMIC4IG_5") bJimmySaidHowProud = FALSE // bGodTextDisplayed = FALSE bAudioStreamPlaying = FALSE FADE_IN_IF_NEEDED() SET_REPLAY_MID_MISSION_STAGE_WITH_NAME(1, "STAGE_MOVIE_PREMIERE_CUT") blipRedCarpet = CREATE_BLIP_FOR_COORD(<<298.3941, 192.8110, 103.3272>>) PRINT_NOW("SOL5_REDCARPET", DEFAULT_GOD_TEXT_TIME, 1) i_current_event++ BREAK CASE 1 IF bJimmySaidHowProud = FALSE AND IS_PED_ON_FOOT(pedJimmy) IF HAS_ANIM_DICT_LOADED("MISSMIC4IG_5") IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData, IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF) IF CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_PROUD", CONV_PRIORITY_VERY_HIGH) bJimmySaidHowProud = TRUE ENDIF ELSE IF CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_PROUD", CONV_PRIORITY_VERY_HIGH, DO_NOT_DISPLAY_SUBTITLES) bJimmySaidHowProud = TRUE ENDIF ENDIF ENDIF ENDIF // IF bJimmySaidHowProud = TRUE // AND bGodTextDisplayed = FALSE // IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData, IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF) // bGodTextDisplayed = TRUE // ENDIF // ENDIF IF bAudioStreamPlaying = FALSE IF LOAD_STREAM("MIC_4_PREMIERE") PLAY_STREAM_FROM_POSITION(<<300, 194, 105>>) bAudioStreamPlaying = TRUE ENDIF ENDIF IF bJimmySaidHowProud = TRUE PROCESS_LAZLOW_DIALOGUE() ENDIF IF NOT IS_ENTITY_DEAD(carMichael) IF NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(), carMichael) //AND IS_PED_IN_VEHICLE(pedJimmy, carMichael) IF NOT IS_PED_INJURED(pedJimmy) AND NOT IS_ENTITY_DEAD(carMichael) AND NOT IS_SCRIPT_TASK_RUNNING_OR_STARTING(pedJimmy, SCRIPT_TASK_PERFORM_SEQUENCE) OPEN_SEQUENCE_TASK(seqGetOutOfLimo) TASK_PAUSE(NULL, 1000) TASK_LEAVE_VEHICLE(NULL, carMichael) TASK_FOLLOW_NAV_MESH_TO_COORD(NULL, <<300.5360, 200.4727, 103.3838>>, PEDMOVE_WALK, DEFAULT_TIME_BEFORE_WARP * 3, DEFAULT_NAVMESH_RADIUS, ENAV_DEFAULT, 256.7409) TASK_PLAY_ANIM(NULL, "missmic4premiere", "wave_b") TASK_PLAY_ANIM(NULL, "missmic4premiere", "wave_c") TASK_PLAY_ANIM(NULL, "missmic4premiere", "wave_d") TASK_PLAY_ANIM(NULL, "missmic4premiere", "wave_a", NORMAL_BLEND_IN, NORMAL_BLEND_OUT, -1, AF_LOOPING) CLOSE_SEQUENCE_TASK(seqGetOutOfLimo) TASK_PERFORM_SEQUENCE(pedJimmy, seqGetOutOfLimo) CLEAR_SEQUENCE_TASK(seqGetOutOfLimo) IF IS_AUDIO_SCENE_ACTIVE("MI_4_LIMO_DRIVE_SCENE") STOP_AUDIO_SCENE("MI_4_LIMO_DRIVE_SCENE") ENDIF ENDIF ENDIF ENDIF IS_ENTITY_AT_COORD(PLAYER_PED_ID(), <<298.7313, 195.1057, 103.0034>>, <<1.5, 1.5, 1.5>>, FALSE) IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<296.364563,187.513870,102.539314>>, <<301.566162,203.298996,110.737076>>, 16.750000) SET_PED_AS_NO_LONGER_NEEDED(pedLimoDriver) SET_PED_AS_NO_LONGER_NEEDED(pedsMoviePremier[MOVP_PRODUCER]) SET_MODEL_AS_NO_LONGER_NEEDED(S_M_M_MovPrem_01) SET_OBJECT_AS_NO_LONGER_NEEDED(oiRedCarpetObjects[12]) SET_MODEL_AS_NO_LONGER_NEEDED(PROP_PHONE_ING_02) REMOVE_BLIP(blipRedCarpet) DESTROY_ALL_CAMS() IF NOT DOES_ENTITY_EXIST(pedJimmy) pedJimmy = CREATE_PED(PEDTYPE_MISSION, IG_JIMMYDISANTO, << 303.5163, 201.2443, 103.3570 >>, 158.4110) ADD_PED_FOR_DIALOGUE(myScriptedSpeech, 1, pedJimmy, "JIMMY") SET_JIMMYS_TUX() SET_PED_AS_FRIENDLY(pedJimmy) ENDIF REMOVE_ANIM_DICT("MISSMIC4IG_5") REMOVE_ANIM_SET("move_characters@Jimmy@slow@") REMOVE_ANIM_SET("move_p_m_zero_slow") REQUEST_CUTSCENE("mic_4_int") //REQUEST_STAGE_ASSETS(STAGE_MOVIE_PREMIERE_CUT) SET_GAMEPLAY_COORD_HINT(GET_ENTITY_COORDS(pedsMoviePremier[MOVP_LAZLOW]), -1, 2000) SET_GAMEPLAY_HINT_FOLLOW_DISTANCE_SCALAR(0.35) SET_GAMEPLAY_HINT_CAMERA_RELATIVE_SIDE_OFFSET(0.015) // url:bugstar:2077947 IF GET_CAM_VIEW_MODE_FOR_CONTEXT(CAM_VIEW_MODE_CONTEXT_ON_FOOT) = CAM_VIEW_MODE_FIRST_PERSON SET_GAMEPLAY_HINT_CAMERA_RELATIVE_VERTICAL_OFFSET(0.65) bStopCrotchCam = TRUE ELSE SET_GAMEPLAY_HINT_CAMERA_RELATIVE_VERTICAL_OFFSET(-0.02) bStopCrotchCam = FALSE ENDIF SET_GAMEPLAY_HINT_FOV(30.00) iPushInTimer = GET_GAME_TIMER() i_current_event++ ENDIF BREAK CASE 2 // url:bugstar:2077947 IF NOT bStopCrotchCam AND GET_CAM_VIEW_MODE_FOR_CONTEXT(CAM_VIEW_MODE_CONTEXT_ON_FOOT) = CAM_VIEW_MODE_FIRST_PERSON SET_GAMEPLAY_HINT_CAMERA_RELATIVE_VERTICAL_OFFSET(0.65) bStopCrotchCam = TRUE ELIF bStopCrotchCam AND GET_CAM_VIEW_MODE_FOR_CONTEXT(CAM_VIEW_MODE_CONTEXT_ON_FOOT) != CAM_VIEW_MODE_FIRST_PERSON SET_GAMEPLAY_HINT_CAMERA_RELATIVE_VERTICAL_OFFSET(-0.02) bStopCrotchCam = FALSE ENDIF SET_CUTSCENE_PED_COMPONENT_VARIATION_FROM_PED("Michael", PLAYER_PED_ID()) IF DOES_ENTITY_EXIST(pedsMoviePremier[MOVP_LAZLOW]) IF NOT IS_ENTITY_DEAD(pedsMoviePremier[MOVP_LAZLOW]) SET_CUTSCENE_PED_COMPONENT_VARIATION_FROM_PED("Lazlow", pedsMoviePremier[MOVP_LAZLOW]) ENDIF ENDIF IF DOES_ENTITY_EXIST(pedsMoviePremier[MOVP_FEM_A]) IF NOT IS_ENTITY_DEAD(pedsMoviePremier[MOVP_FEM_A]) SET_CUTSCENE_PED_COMPONENT_VARIATION_FROM_PED("Milton_Assistant", pedsMoviePremier[MOVP_FEM_A]) ENDIF ENDIF //Two paps IF DOES_ENTITY_EXIST(pedsMoviePremier[MOVP_PAP2]) IF NOT IS_ENTITY_DEAD(pedsMoviePremier[MOVP_PAP2]) SET_CUTSCENE_PED_COMPONENT_VARIATION_FROM_PED("Paparazzi_01", pedsMoviePremier[MOVP_PAP2]) ENDIF ENDIF IF DOES_ENTITY_EXIST(pedsMoviePremier[MOVP_PAP1]) IF NOT IS_ENTITY_DEAD(pedsMoviePremier[MOVP_PAP1]) SET_CUTSCENE_PED_COMPONENT_VARIATION_FROM_PED("Paparazzi_02", pedsMoviePremier[MOVP_PAP1]) ENDIF ENDIF IF DOES_ENTITY_EXIST(pedsMoviePremier[MOVP_CAMMAN]) IF NOT IS_ENTITY_DEAD(pedsMoviePremier[MOVP_CAMMAN]) SET_CUTSCENE_PED_COMPONENT_VARIATION_FROM_PED("TV_Camera_dude", pedsMoviePremier[MOVP_CAMMAN]) ENDIF ENDIF IF CAN_REQUEST_ASSETS_FOR_CUTSCENE_ENTITY() IF NOT IS_ENTITY_DEAD(pedJImmy) SET_CUTSCENE_PED_COMPONENT_VARIATION_FROM_PED("Jimmy", pedJImmy) ELSE SCRIPT_ASSERT("jimmys dead") ENDIF ELSE //SCRIPT_ASSERT("Cannae set the components") ENDIF IF GET_GAME_TIMER() - iPushInTimer > 2500 AND NOT IS_SCRIPTED_CONVERSATION_ONGOING() REQUEST_MODEL(STRETCH) REQUEST_MODEL(VACCA) i_current_event = 4 ENDIF BREAK CASE 4 IF HAS_CUTSCENE_LOADED() IF NOT IS_ENTITY_DEAD(pedsMoviePremier[MOVP_LAZLOW]) REGISTER_ENTITY_FOR_CUTSCENE(pedsMoviePremier[MOVP_LAZLOW], "Lazlow", CU_ANIMATE_EXISTING_SCRIPT_ENTITY)//, IG_JIMMYDISANTO) ENDIF IF NOT IS_ENTITY_DEAD(pedsMoviePremier[MOVP_FEM_A]) REGISTER_ENTITY_FOR_CUTSCENE(pedsMoviePremier[MOVP_FEM_A], "Milton_Assistant", CU_ANIMATE_AND_DELETE_EXISTING_SCRIPT_ENTITY) ENDIF IF NOT IS_ENTITY_DEAD(pedsMoviePremier[MOVP_PAP2]) REGISTER_ENTITY_FOR_CUTSCENE(pedsMoviePremier[MOVP_PAP2], "Paparazzo_01", CU_ANIMATE_EXISTING_SCRIPT_ENTITY)//, IG_JIMMYDISANTO) ENDIF IF NOT IS_ENTITY_DEAD(pedsMoviePremier[MOVP_PAP1]) REGISTER_ENTITY_FOR_CUTSCENE(pedsMoviePremier[MOVP_PAP1], "Paparazzo_02", CU_ANIMATE_EXISTING_SCRIPT_ENTITY)//, IG_JIMMYDISANTO) ENDIF IF NOT IS_ENTITY_DEAD(pedJImmy) REGISTER_ENTITY_FOR_CUTSCENE(pedJImmy, "Jimmy", CU_ANIMATE_EXISTING_SCRIPT_ENTITY)//, IG_JIMMYDISANTO) ADD_PED_FOR_DIALOGUE(myScriptedSpeech, 1, pedJimmy, "JIMMY") ENDIF IF NOT IS_ENTITY_DEAD(pedsMoviePremier[MOVP_CAMMAN]) REGISTER_ENTITY_FOR_CUTSCENE(pedsMoviePremier[MOVP_CAMMAN], "TV_Camera_dude", CU_ANIMATE_AND_DELETE_EXISTING_SCRIPT_ENTITY)//, IG_JIMMYDISANTO) ENDIF SET_SCRIPTS_SAFE_FOR_CUTSCENE(TRUE) SET_CURRENT_SELECTOR_PED(SELECTOR_PED_MICHAEL) ADD_PED_FOR_DIALOGUE(myScriptedSpeech, 0, PLAYER_PED_ID(), "MICHAEL") SET_CUTSCENE_FADE_VALUES(FALSE, FALSE, FALSE, FALSE) START_CUTSCENE() REPLAY_START_EVENT(REPLAY_IMPORTANCE_HIGHEST) IF IS_SCREEN_FADED_OUT() DO_SCREEN_FADE_IN(500) ENDIF i_current_event++ ENDIF BREAK CASE 5 IF IS_CUTSCENE_PLAYING() MISSION_FLOW_RELEASE_TRIGGER_SCENE_ASSETS(SP_MISSION_MICHAEL_4) STOP_GAMEPLAY_HINT(TRUE) IF NOT IS_PED_INJURED(pedJimmy) RESET_PED_MOVEMENT_CLIPSET(pedJimmy) ENDIF RESET_PED_MOVEMENT_CLIPSET(PLAYER_PED_ID()) SET_PED_MAX_MOVE_BLEND_RATIO(PLAYER_PED_ID(), PEDMOVE_SPRINT) //REMOVE_ANIM_DICT("missmic4premiere") SET_MODEL_AS_NO_LONGER_NEEDED(IG_LAZLOW) SET_MODEL_AS_NO_LONGER_NEEDED(IG_JIMMYDISANTO) SET_MODEL_AS_NO_LONGER_NEEDED(U_M_Y_ANTONB) SET_MODEL_AS_NO_LONGER_NEEDED(IG_Milton) SET_MODEL_AS_NO_LONGER_NEEDED(S_F_Y_MovPrem_01) SET_MODEL_AS_NO_LONGER_NEEDED(A_M_M_Paparazzi_01) SET_MODEL_AS_NO_LONGER_NEEDED(S_M_Y_Grip_01) SET_MODEL_AS_NO_LONGER_NEEDED(S_M_M_MovPrem_01) SET_MODEL_AS_NO_LONGER_NEEDED(PROP_PHONE_ING_02) SET_MODEL_AS_NO_LONGER_NEEDED(Prop_V_Cam_01) SET_MODEL_AS_NO_LONGER_NEEDED(P_ING_MICROPHONEL_01) SET_MODEL_AS_NO_LONGER_NEEDED(prop_pap_camera_01) FOR i = 0 TO MOVP_MAX_PEDS -1 IF i <> MOVP_PAP1 AND i <> MOVP_PAP2 AND i <> MOVP_FEM_A AND i <> MOVP_CAMMAN DELETE_PED(pedsMoviePremier[i]) ENDIF ENDFOR FOR i = 0 TO 12 DELETE_OBJECT(oiRedCarpetObjects[i]) ENDFOR SET_MICHAELS_TUX() RESOLVE_VEHICLES_INSIDE_ANGLED_AREA_WITH_SIZE_LIMIT(<<279.124939,193.901825,102.407852>>, <<312.717224,181.289932,108.537407>>, 33.000000, <<327.3437, 163.4836, 102.4060>>, 70.6959 , <<5.0, 7.0, 8.5>>, TRUE) REPOSITION_PLAYERS_VEHICLE(<<327.3437, 163.4836, 102.4060>>, 70.6959) SET_CLOCK_TIME(22, 00, 00) DELETE_PED(pedLimoDriver) FADE_IN_IF_NEEDED() //SET_TODS_CUTSCENE_RUNNING(sTimelapse, FALSE) CLEAR_AREA_OF_PEDS(<<-826.457886,180.473969,71.133858>>, 100.00, TRUE) bStopAudioStream = FALSE i_current_event = 6 ENDIF BREAK CASE 6 CASE 7 CREATE_RED_CARPET_CARS_IF_DONT_EXIST() IF GET_CUTSCENE_TIME() > 111500.0 AND i_current_event = 6 IF PREPARE_MUSIC_EVENT("SOL5_START") TRIGGER_MUSIC_EVENT("SOL5_START") //REQUEST_STAGE_ASSETS(STAGE_MOVIE_PREMIERE_CUT) i_current_event = 7 ENDIF ENDIF IF GET_CUTSCENE_TIME() > 60000.00 AND bStopAudioStream = FALSE STOP_STREAM() bStopAudioStream = TRUE ENDIF IF CAN_SET_EXIT_STATE_FOR_CAMERA() OR WAS_CUTSCENE_SKIPPED() RESET_GAME_CAMERA() ENDIF IF WAS_CUTSCENE_SKIPPED() i_current_event = 8 ELSE IF CAN_SET_EXIT_STATE_FOR_REGISTERED_ENTITY("Jimmy") IF NOT IS_PED_INJURED(pedJimmy) // TASK_FOLLOW_TO_OFFSET_OF_ENTITY(pedJImmy, PLAYER_PED_ID(), <<-1.5, -0.5, 0.0>>, PEDMOVE_RUN) SET_PED_AS_GROUP_MEMBER(pedJimmy, GET_PED_GROUP_INDEX(PLAYER_PED_ID())) SET_PED_GROUP_MEMBER_PASSENGER_INDEX(pedJimmy, VS_FRONT_RIGHT) SET_GROUP_FORMATION_SPACING(GET_PLAYER_GROUP(PLAYER_ID()), 3.5) FORCE_PED_MOTION_STATE(pedJImmy, MS_ON_FOOT_RUN) ENDIF ENDIF IF CAN_SET_EXIT_STATE_FOR_REGISTERED_ENTITY("Michael") FORCE_PED_MOTION_STATE(PLAYER_PED_ID(), MS_ON_FOOT_RUN, FALSE, FAUS_CUTSCENE_EXIT) SIMULATE_PLAYER_INPUT_GAIT(PLAYER_ID(), PEDMOVE_RUN, 3000, 0.0, TRUE, TRUE) i_current_event = 8 ENDIF ENDIF BREAK CASE 8 //1552342 IF WAS_CUTSCENE_SKIPPED() AND PREPARE_MUSIC_EVENT("SOL5_START") TRIGGER_MUSIC_EVENT("SOL5_START") //SCRIPT_ASSERT("Skipped") NEW_LOAD_SCENE_START(<<300.004425,198.368469,105.073395>>, NORMALISE_VECTOR(<<299.849792,197.889984,105.048279>> - <<300.004425,198.368469,105.073395>>), 700.0) SETTIMERA(0) WHILE NOT IS_NEW_LOAD_SCENE_LOADED() AND TIMERA() < 7000 WAIT(0) ENDWHILE iCreateCars = 0 DELETE_VEHICLE(carMichael) WHILE NOT CREATE_RED_CARPET_CARS_IF_DONT_EXIST() WAIT(0) ENDWHILE SET_ENTITY_COORDS(PLAYER_PED_ID(), <<302.6840, 200.6019, 103.3724>>) SET_ENTITY_HEADING(PLAYER_PED_ID(), 171.7199 ) IF NOT IS_ENTITY_DEAD(pedJimmy) IF NOT IS_PED_GROUP_MEMBER(pedJimmy, GET_PED_GROUP_INDEX(PLAYER_PED_ID())) SET_PED_AS_GROUP_MEMBER(pedJimmy, GET_PED_GROUP_INDEX(PLAYER_PED_ID())) ENDIF SET_PED_GROUP_MEMBER_PASSENGER_INDEX(pedJimmy, VS_FRONT_RIGHT) SET_GROUP_FORMATION_SPACING(GET_PLAYER_GROUP(PLAYER_ID()), 3.5) FORCE_PED_MOTION_STATE(pedJImmy, MS_ON_FOOT_RUN) ENDIF SET_ENTITY_COORDS(PLAYER_PED_ID(), <<298.6916, 193.0679, 103.3252>>) SET_ENTITY_HEADING(PLAYER_PED_ID(), 161.3360) FORCE_PED_MOTION_STATE(PLAYER_PED_ID(), MS_ON_FOOT_RUN, FALSE, FAUS_CUTSCENE_EXIT) SIMULATE_PLAYER_INPUT_GAIT(PLAYER_ID(), PEDMOVE_RUN, 3000, 0.0, TRUE, TRUE) RESET_GAME_CAMERA() IF IS_NEW_LOAD_SCENE_ACTIVE() NEW_LOAD_SCENE_STOP() ENDIF //FADE_IN_IF_NEEDED() ENDIF IF HAS_CUTSCENE_FINISHED() CREATE_POST_CUT_PAPS() REMOVE_ANIM_DICT("missmic4premiere") IF WAS_CUTSCENE_SKIPPED() WHILE NOT PREPARE_MUSIC_EVENT("SOL5_START") WAIT(0) ENDWHILE TRIGGER_MUSIC_EVENT("SOL5_START") ENDIF RELEASE_NAMED_SCRIPT_AUDIO_BANK("Distant_Camera_Flash") iMissionStartTime = GET_GAME_TIMER() //RESET_GAME_CAMERA() SET_SCRIPTS_SAFE_FOR_CUTSCENE(FALSE) SET_PED_POPULATION_BUDGET(3) SET_VEHICLE_POPULATION_BUDGET(3) IF IS_NEW_LOAD_SCENE_ACTIVE() NEW_LOAD_SCENE_STOP() ENDIF REPLAY_STOP_EVENT() IF IS_SCREEN_FADED_OUT() WHILE NOT CREATE_RED_CARPET_CARS_IF_DONT_EXIST() WAIT(0) ENDWHILE WAIT(0) DO_SCREEN_FADE_IN(500) ENDIF i_current_event = 0 mission_stage = STAGE_GET_TO_MICHAELS_HOUSE ENDIF BREAK ENDSWITCH SET_CLOCK_TIME(iTimeOfTrigger, iTimeOfTriggerMinutes, 0) ENDPROC #IF IS_DEBUG_BUILD PROC debugRoutines() ENDPROC #ENDIF FUNC INT GET_REPLAY_STAGE_FROM_MISSION_STAGE(MISSION_STAGE_FLAG thisStage) INT iReplayNumber iReplayNumber = ENUM_TO_INT(thisStage) - ENUM_TO_INT(STAGE_GET_TO_MICHAELS_HOUSE) IF iReplayNumber < 0 #IF IS_DEBUG_BUILD SCRIPT_ASSERT("Sol5 - trying to set replay to a negative value") #ENDIF iReplayNumber = 0 ENDIF #IF IS_DEBUG_BUILD PRINTLN("****** --- GET_REPLAY_STAGE_FROM_MISSION_STAGE: ", iReplayNumber) #ENDIF RETURN iReplayNumber ENDFUNC BOOL bKeepAmandaConditionsReturningTrue FUNC BOOL HAVE_SAVE_AMANDA_CONDITIONS_TRIGGERED() IF IS_ENTITY_AT_COORD(PLAYER_PED_ID(), vInsideHouseCoords, <<7.0, 7.0, 2.0>>) OR IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-803.877625,181.520370,70.865524>>, <<-816.268616,178.350540,75.188087>>, 7.000000) OR IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-817.345337,175.497055,70.260384>>, <<-794.602661,184.461853,82.473396>>, 12.000000) OR IS_BULLET_IN_AREA(GET_ENTITY_COORDS(pedHostagetakerAmanda), 1.5) OR GET_ENTITY_HEALTH(pedHostagetakerAmanda) < 1000 //1978108 OR IS_PED_INJURED(pedHostagetakerAmanda) //1978108 OR bKeepAmandaConditionsReturningTrue bKeepAmandaConditionsReturningTrue = TRUE RETURN TRUE ENDIF RETURN FALSE ENDFUNC //*************************************************************** //****************** MISSION STAGES ***************************** //*************************************************************** BOOL bCareAboutLimo BOOL bReachedDestination BOOL bJimmyCommentsOnCars = FALSE BOOL bGuysRunIn = FALSE PED_INDEX pedMerryWeatherRunInHouse1 PED_INDEX pedMerryWeatherRunInHouse2 VEHICLE_INDEX viPlayersLastVehicle BOOL bWarnedLeavingJimmy = FALSE //INT iTimeOfLastJimmyAnim //INT iRandomIdle //STRING rndString = "IDLE_D" PROC stageGetToMichaelsHouse() HANDLE_CINEMA_DOOR() IF i_current_event > 0 AND bCareAboutLimo = TRUE IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID()) AND IS_PED_IN_ANY_VEHICLE(pedJimmy) //CLEAR_MISSION_LOCATION_TEXT_AND_BLIPS(sLocatesData) TRIGGER_MUSIC_EVENT("SOL5_LIMO_ENTERED") START_AUDIO_SCENE("MI_4_GET_TO_THE_HOUSE") bCareAboutLimo = FALSE ENDIF ENDIF IF NOT IS_PED_INJURED(pedJimmy) SET_PED_DESIRED_MOVE_BLEND_RATIO(pedJimmy, PEDMOVE_RUN) ENDIF DOOR_SYSTEM_SET_HOLD_OPEN(g_sAutoDoorData[AUTODOOR_MICHAEL_MANSION_GATE].doorID, TRUE) SWITCH i_current_event CASE 0 LOCK_AUTOMATIC_DOOR_OPEN(AUTODOOR_MICHAEL_MANSION_GATE, TRUE, FALSE) CLEAR_MISSION_LOCATION_TEXT_AND_BLIPS(sLocatesData) sLocatesData.LocationBlip = CREATE_BLIP_FOR_COORD(vMichaelsHouse) SET_BLIP_AS_FRIENDLY(sLocatesData.LocationBlip, TRUE) REQUEST_STAGE_ASSETS(STAGE_GET_TO_MICHAELS_HOUSE) IF navBlockArea <> 0 REMOVE_NAVMESH_BLOCKING_OBJECT(navBlockArea) ENDIF g_replay.iReplayInt[0] = 0 IF NOT IS_PED_INJURED(pedJimmy) SET_ENTITY_COORDS(pedJimmy, <<301.4036, 198.9978, 103.1659>>) SET_ENTITY_HEADING(pedJimmy, 167.8465) ENDIF SET_REPLAY_MID_MISSION_STAGE_WITH_NAME(2, "STAGE_GET_TO_MICHAELS_HOUSE") IF NOT IS_PED_INJURED(pedJimmy) SET_PED_AS_FRIENDLY(pedJimmy) ENDIF IF NOT DOES_ENTITY_EXIST(carMichael) REQUEST_MODEL(STRETCH) WHILE NOT HAS_MODEL_LOADED(STRETCH) WAIT(0) ENDWHILE carMichael = CREATE_STRETCH() ENDIF IF NOT DOES_ENTITY_EXIST(carMichael2) REQUEST_MODEL(VACCA) WHILE NOT HAS_MODEL_LOADED(VACCA) WAIT(0) ENDWHILE carMichael2 = CREATE_SPORTS_CAR() ENDIF SET_MODEL_AS_NO_LONGER_NEEDED(STRETCH) SET_MODEL_AS_NO_LONGER_NEEDED(VACCA) IF NOT IS_PED_GROUP_MEMBER(pedJimmy, GET_PED_GROUP_INDEX(PLAYER_PED_ID())) SET_PED_AS_GROUP_MEMBER(pedJimmy, GET_PED_GROUP_INDEX(PLAYER_PED_ID())) ENDIF SET_PED_GROUP_MEMBER_PASSENGER_INDEX(pedJimmy, VS_FRONT_RIGHT) SET_GROUP_FORMATION_SPACING(GET_PLAYER_GROUP(PLAYER_ID()), 3.5) SET_PED_CONFIG_FLAG(PLAYER_PED_ID(), PCF_ForceDirectEntry, TRUE) bCareAboutLimo = TRUE bReachedDestination = FALSE bJimmyCommentsOnCars = FALSE bGuysRunIn = FALSE SET_INSTANCE_PRIORITY_HINT(INSTANCE_HINT_DRIVING) FADE_IN_IF_NEEDED() SET_CURRENT_PED_VEHICLE_WEAPON(PLAYER_PED_ID(), WEAPONTYPE_UNARMED) INFORM_MISSION_STATS_SYSTEM_OF_TIME_WINDOW_OPEN(MIC4_HOME_TIME) TRIGGER_MUSIC_EVENT("SOL5_GAMEPLAY_STARTS") bDisplayTimer = FALSE i_current_event++ BREAK CASE 1 IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData, IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF) IF CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_RUN", CONV_PRIORITY_VERY_HIGH) i_current_event++ ENDIF ENDIF BREAK CASE 2 IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData, IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF) AND NOT IS_SCRIPTED_CONVERSATION_ONGOING() IF CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_GETIN", CONV_PRIORITY_VERY_HIGH) i_current_event++ ENDIF ENDIF BREAK CASE 3 IF NOT IS_SCRIPTED_CONVERSATION_ONGOING() AND bDisplayTimer = FALSE SEND_TEXT_MESSAGE_TO_CURRENT_PLAYER(CHAR_DEVIN, "SOL5_DEVTXT", TXTMSG_UNLOCKED, TXTMSG_CRITICAL) iMissionStartTime = GET_GAME_TIMER() bDisplayTimer = TRUE ENDIF IF (NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData, IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF) AND DOES_BLIP_EXIST(sLocatesData.LocationBlip) AND IS_PED_IN_ANY_VEHICLE(pedJimmy) AND IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())) OR IS_ENTITY_AT_COORD(PLAYER_PED_ID(), vMichaelsHouse, <<120.0, 120.0, 120.0>>, FALSE, FALSE) IF CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_BANT", CONV_PRIORITY_VERY_HIGH) TRIGGER_MUSIC_EVENT("SOL5_LIMO_ENTERED") i_current_event++ ENDIF ENDIF BREAK CASE 4 IF IS_ENTITY_AT_COORD(PLAYER_PED_ID(), vMichaelsHouse, <<250.0, 250.0, 120.0>>, FALSE, FALSE) DELETE_PED(pedsMoviePremier[MOVP_PAP2]) DELETE_PED(pedsMoviePremier[MOVP_PAP1]) SET_MODEL_AS_NO_LONGER_NEEDED(A_M_M_Paparazzi_01) DELETE_OBJECT(oiRedCarpetObjects[2]) DELETE_OBJECT(oiRedCarpetObjects[3]) SET_MODEL_AS_NO_LONGER_NEEDED(prop_pap_camera_01) REMOVE_ANIM_DICT("missmic4premiere") REQUEST_STAGE_ASSETS(STAGE_SAVE_AMANDA) i_current_event++ ENDIF BREAK CASE 5 IF HAVE_STAGE_ASSETS_LOADED(STAGE_SAVE_AMANDA) CREATE_STAGE_ASSETS(STAGE_SAVE_AMANDA) i_current_event++ ENDIF BREAK CASE 6 IF GET_DISTANCE_BETWEEN_ENTITY_AND_COORD(PLAYER_PED_ID(), vMichaelsHouse) < 90.00 TRIGGER_MUSIC_EVENT("SOL5_IN_DRIVEWAY") i_current_event++ ENDIF BREAK ENDSWITCH //Deal with pausing conversation IF i_current_event > 3 //Pause conversation if you get a wanted level IF NOT DOES_BLIP_EXIST(sLocatesData.LocationBlip) AND bReachedDestination = FALSE PAUSE_FACE_TO_FACE_CONVERSATION(TRUE) ELSE IF ARE_CHARS_SITTING_IN_SAME_VEHICLE(PLAYER_PED_ID(), pedJImmy) PAUSE_FACE_TO_FACE_CONVERSATION(FALSE) ENDIF ENDIF ENDIF IF i_current_event > 1 SET_PED_CONFIG_FLAG(PLAYER_PED_ID(), PCF_ForceDirectEntry, TRUE) IF IS_PLAYER_AT_LOCATION_WITH_BUDDIES_ANY_MEANS(sLocatesData, vMichaelsHouse, <<12.0, 4.0, 12.0>>, FALSE, pedJimmy, NULL, NULL, "SOL5_GET2HSE", "CMN_JLEAVE", "", "", "CMN_JLEAVE", FALSE, TRUE, TRUE) //, NULL, TRUE) OR (IS_ENTITY_IN_ANGLED_AREA( PLAYER_PED_ID(), <<-822.901489,171.583603,68.902214>>, <<-774.385681,170.937317,83.796524>>, 31.750000)) OR IS_ENTITY_AT_COORD(PLAYER_PED_ID(), vInsideHouseCoords, <<7.0, 7.0, 2.0>>) SET_MAX_WANTED_LEVEL(0) bReachedDestination = TRUE ENDIF IF DOES_BLIP_EXIST(sLocatesData.LocationBlip) SET_BLIP_AS_FRIENDLY(sLocatesData.LocationBlip, TRUE) ENDIF ENDIF IF i_current_event >= 4 IF TIMERA() > 17000 AND GET_ENTITY_SPEED(PLAYER_PED_ID()) < 15.0 IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData, IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF) AND IS_CONVERSATION_STATUS_FREE() AND ARE_PEDS_IN_THE_SAME_VEHICLE(PLAYER_PED_ID(), pedJimmy) AND DOES_BLIP_EXIST(sLocatesData.LocationBlip) IF GET_RANDOM_BOOL() //Jimmy IF GET_RANDOM_BOOL() CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL_IG4", CONV_PRIORITY_VERY_HIGH) SETTIMERA(0) ELSE CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL_QUICK", CONV_PRIORITY_VERY_HIGH) SETTIMERA(0) ENDIF ELSE //Michael CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_GO", CONV_PRIORITY_VERY_HIGH) SETTIMERA(0) ENDIF ENDIF ENDIF ENDIF IF NOT IS_PED_INJURED(PLAYER_PED_ID()) INFORM_MISSION_STATS_OF_DAMAGE_WATCH_ENTITY(PLAYER_PED_ID(), MIC4_DAMAGE) ENDIF IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID()) IF GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()) <> viPlayersLastVehicle INFORM_MISSION_STATS_OF_DAMAGE_WATCH_ENTITY(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()), MIC4_CAR_DAMAGE) INFORM_MISSION_STATS_OF_SPEED_WATCH_ENTITY(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID())) viPlayersLastVehicle = GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()) IF viPlayersLastVehicle = carMichael INFORM_MISSION_STATS_OF_INCREMENT(MIC4_VEHICLE_CHOSEN, 0) ELIF viPlayersLastVehicle = carMichael2 INFORM_MISSION_STATS_OF_INCREMENT(MIC4_VEHICLE_CHOSEN, 1) ELSE INFORM_MISSION_STATS_OF_INCREMENT(MIC4_VEHICLE_CHOSEN, 2) ENDIF ENDIF ELSE INFORM_MISSION_STATS_OF_DAMAGE_WATCH_ENTITY(NULL, MIC4_CAR_DAMAGE) INFORM_MISSION_STATS_OF_SPEED_WATCH_ENTITY(NULL) ENDIF IF bJimmyCommentsOnCars = FALSE IF IS_ENTITY_IN_ANGLED_AREA(pedJImmy, <<-839.350891,160.104462,65.927368>>, <<-814.017700,183.767914,82.079521>>, 20.250000) IF CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_CARS", CONV_PRIORITY_VERY_HIGH) bJimmyCommentsOnCars = TRUE ENDIF ENDIF IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-812.868896,165.500397,70.477791>>, <<-848.297791,167.817780,62.378845>>, 24.750000) IF bGuysRunIn = FALSE pedMerryWeatherRunInHouse1 = CREATE_PED(PEDTYPE_MISSION, getRandomGoonModel(), <<-822.2332, 183.0674, 70.9162>>, 199.0781) pedMerryWeatherRunInHouse2 = CREATE_PED(PEDTYPE_MISSION, getRandomGoonModel(), <<-823.2229, 181.3412, 70.7021>>, 261.9175) SET_PED_LEG_IK_MODE(pedMerryWeatherRunInHouse1, LEG_IK_FULL) SET_PED_LEG_IK_MODE(pedMerryWeatherRunInHouse2, LEG_IK_FULL) SET_PED_AS_MERRYWEATHER(pedMerryWeatherRunInHouse1) SET_PED_AS_MERRYWEATHER(pedMerryWeatherRunInHouse2) SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedMerryWeatherRunInHouse1, TRUE) SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedMerryWeatherRunInHouse2, TRUE) TASK_FOLLOW_NAV_MESH_TO_COORD(pedMerryWeatherRunInHouse1, <<-806.4446, 174.9243, 71.8447>>, PEDMOVE_RUN, DEFAULT_TIME_BEFORE_WARP) TASK_FOLLOW_NAV_MESH_TO_COORD(pedMerryWeatherRunInHouse2, <<-806.4446, 174.9243, 71.8447>>, PEDMOVE_RUN, DEFAULT_TIME_BEFORE_WARP) bGuysRunIn = TRUE ENDIF ENDIF ENDIF IF bGuysRunIn = TRUE IF NOT IS_ENTITY_DEAD(pedMerryWeatherRunInHouse1) SET_PED_IS_IGNORED_BY_AUTO_OPEN_DOORS(pedMerryWeatherRunInHouse1, TRUE) ENDIF IF NOT IS_ENTITY_DEAD(pedMerryWeatherRunInHouse2) SET_PED_IS_IGNORED_BY_AUTO_OPEN_DOORS(pedMerryWeatherRunInHouse2, TRUE) ENDIF ENDIF IF i_current_event > 5 AND bReachedDestination TRIGGER_MUSIC_EVENT("SOL5_IN_DRIVEWAY") INFORM_MISSION_STATS_SYSTEM_OF_TIME_WINDOW_CLOSED() CLEAR_MISSION_LOCATION_TEXT_AND_BLIPS(sLocatesData) IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID()) carMichaelIsIn = GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()) WHILE NOT BRING_VEHICLE_TO_HALT_AND_DISABLE_VEH_CONTROLS(carMichaelIsIn, 3.0, 5) WAIT(0) REPLAY_CHECK_FOR_EVENT_THIS_FRAME("M_Meltdown") ENDWHILE SET_PLAYER_CONTROL(PLAYER_ID(), FALSE) ENDIF // KILL_FACE_TO_FACE_CONVERSATION() // WHILE IS_SCRIPTED_CONVERSATION_ONGOING() // WAIT(0) // REPLAY_CHECK_FOR_EVENT_THIS_FRAME("M_Meltdown") // ENDWHILE KILL_FACE_TO_FACE_CONVERSATION() REPLAY_RECORD_BACK_FOR_TIME(6.0, 3.0, REPLAY_IMPORTANCE_HIGHEST) SET_PLAYER_CONTROL(PLAYER_ID(), TRUE) SET_MODEL_AS_NO_LONGER_NEEDED(MESA3) SET_VEHICLE_AS_NO_LONGER_NEEDED(badguyCarOutsideHouse1) SET_VEHICLE_AS_NO_LONGER_NEEDED(badguyCarOutsideHouse2) SET_VEHICLE_AS_NO_LONGER_NEEDED(carMichael) SET_VEHICLE_AS_NO_LONGER_NEEDED(carMichael2) SET_VEHICLE_AS_NO_LONGER_NEEDED(carMichaelIsIn) SET_MODEL_AS_NO_LONGER_NEEDED(STRETCH) i_current_event = 0 mission_stage = STAGE_ENTER_THE_HOUSE ENDIF ENDPROC SEQUENCE_INDEX seqJimmy BOOl bJimmyGotToHouseOk BOOL bUnlockDoors = FALSE BOOL bJimmySpoken = FALSE BOOL bMichaelSaysDaddysHome = FALSE VEHICLE_INDEX carPlayerIsIn PROC stageEnterTheHouse() REPLAY_DISABLE_CAMERA_MOVEMENT_THIS_FRAME() //Fix for bug 2195216 //WEAPON_TYPE plWeaponType IF IS_PED_INJURED(pedJimmy) ELSE SET_PED_IS_IGNORED_BY_AUTO_OPEN_DOORS(pedJimmy, TRUE) ENDIF IF NOT IS_ENTITY_DEAD(pedAmanda) SET_PED_RESET_FLAG(pedAmanda, PRF_DisablePotentialBlastReactions, TRUE) SET_PED_RESET_FLAG(pedAmanda, PRF_BlockWeaponReactionsUnlessDead, TRUE) ENDIF IF NOT IS_ENTITY_DEAD(pedHostagetakerAmanda) SET_PED_RESET_FLAG(pedHostagetakerAmanda, PRF_DisablePotentialBlastReactions, TRUE) SET_PED_RESET_FLAG(pedHostagetakerAmanda, PRF_BlockWeaponReactionsUnlessDead, TRUE) ENDIF IF NOT IS_ENTITY_DEAD(pedMerryWeatherRunInHouse1) AND DOES_ENTITY_EXIST(pedMerryWeatherRunInHouse1) IF IS_ENTITY_AT_COORD(pedMerryWeatherRunInHouse1, <<-809.8790, 180.0593, 71.1531>>, <<3.0, 3.0, 3.0>>) DELETE_PED(pedMerryWeatherRunInHouse1) ENDIF IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID()) carPlayerIsIn = GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID(), TRUE) IF DOES_ENTITY_EXIST(pedMerryWeatherRunInHouse1) IF DOES_ENTITY_EXIST(carPlayerIsIn) IF IS_ENTITY_TOUCHING_ENTITY(pedMerryWeatherRunInHouse1, carPlayerIsIn) SET_ENTITY_HEALTH(pedMerryWeatherRunInHouse1, 0) ENDIF ENDIF ENDIF ELSE IF DOES_ENTITY_EXIST(pedMerryWeatherRunInHouse1) IF IS_ENTITY_TOUCHING_ENTITY(pedMerryWeatherRunInHouse1, PLAYER_PED_ID()) SET_ENTITY_HEALTH(pedMerryWeatherRunInHouse1, 0) ENDIF ENDIF ENDIF ENDIF IF NOT IS_ENTITY_DEAD(pedMerryWeatherRunInHouse2) AND DOES_ENTITY_EXIST(pedMerryWeatherRunInHouse2) IF IS_ENTITY_AT_COORD(pedMerryWeatherRunInHouse2, <<-809.8790, 180.0593, 71.1531>>, <<3.0, 3.0, 3.0>>) DELETE_PED(pedMerryWeatherRunInHouse2) ENDIF IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID()) carPlayerIsIn = GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()) IF DOES_ENTITY_EXIST(pedMerryWeatherRunInHouse2) IF DOES_ENTITY_EXIST(carPlayerIsIn) IF IS_ENTITY_TOUCHING_ENTITY(pedMerryWeatherRunInHouse2, carPlayerIsIn) SET_ENTITY_HEALTH(pedMerryWeatherRunInHouse2, 0) ENDIF ENDIF ENDIF ELSE IF DOES_ENTITY_EXIST(pedMerryWeatherRunInHouse2) IF IS_ENTITY_TOUCHING_ENTITY(pedMerryWeatherRunInHouse2, PLAYER_PED_ID()) SET_ENTITY_HEALTH(pedMerryWeatherRunInHouse2, 0) ENDIF ENDIF ENDIF ENDIF SWITCH i_current_event CASE 0 IF (NOT IS_SCRIPTED_CONVERSATION_ONGOING() AND CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_JHIDE", CONV_PRIORITY_VERY_HIGH)) OR HAVE_SAVE_AMANDA_CONDITIONS_TRIGGERED() //1978108 bDisplayTimer = TRUE FADE_IN_IF_NEEDED() SET_MAX_WANTED_LEVEL(0) blipAmanda = CREATE_BLIP_FOR_PED(pedAmanda, FALSE) //Stop randoms spawning in michaels garden. ADD_SCENARIO_BLOCKING_AREA(<<-835.060852,148.409912,62.360283>>, <<-773.088623,198.918427,75.155563>>) //SET_PED_NON_CREATION_AREA(<<-835.060852,148.409912,62.360283>>, <<-773.088623,198.918427,75.155563>>) SET_MODEL_AS_NO_LONGER_NEEDED(A_M_Y_VinDouche_01) SET_MODEL_AS_NO_LONGER_NEEDED(A_F_Y_Vinewood_03) SET_PED_USING_ACTION_MODE(PLAYER_PED_ID(), TRUE, -1) SET_REPLAY_MID_MISSION_STAGE_WITH_NAME(3, "STAGE_ENTER_THE_HOUSE") SET_PLAYER_CONTROL(PLAYER_ID(), TRUE) REMOVE_PED_FROM_GROUP(pedJimmy) SET_PED_PATH_CAN_USE_CLIMBOVERS(pedJimmy, FALSE) IF NOT IS_ENTITY_DEAD(pedJimmy) //Wait until navmesh break is fixed. //TASK_FOLLOW_NAV_MESH_TO_COORD(pedJimmy, << -805.4232, 191.3491, 71.8352 >>, PEDMOVE_SPRINT) OPEN_SEQUENCE_TASK(seqJimmy) TASK_SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(NULL, TRUE) TASK_FOLLOW_NAV_MESH_TO_COORD(NULL, << -811.6075, 192.6608, 72.0095 >>, PEDMOVE_SPRINT) TASK_COWER(NULL, INFINITE_TASK_TIME) CLOSE_SEQUENCE_TASK(seqJimmy) TASK_PERFORM_SEQUENCE(pedJimmy, seqJimmy) CLEAR_SEQUENCE_TASK(seqJimmy) ENDIF bJimmySpoken = FALSE SET_PLAYER_ANGRY(PLAYER_PED_ID(), TRUE) bMichaelSaysDaddysHome = FALSE bUnlockDoors = FALSE i_current_event++ ENDIF BREAK CASE 1 CASE 2 CASE 3 // IF NOT IS_SCRIPTED_CONVERSATION_ONGOING() // AND i_current_event = 1 // // IF CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_DOORSTP", CONV_PRIORITY_VERY_HIGH) // // PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(PLAYER_PED_ID(), "SOL5_ARAA", "MICHAEL", SPEECH_PARAMS_FORCE) // // i_current_event = 2 // // ENDIF // ENDIF IF bJimmySpoken = FALSE //IF CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_JRUN", CONV_PRIORITY_VERY_HIGH) IF IS_PED_ON_FOOT(pedJimmy) AND NOT IS_SCRIPTED_CONVERSATION_ONGOING() PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(pedJimmy, "SOL5_BGAA", "JIMMY", SPEECH_PARAMS_FORCE) bJimmySpoken = TRUE ENDIF ENDIF IF IS_PED_ON_FOOT(PLAYER_PED_ID()) IF NOT IS_AUDIO_SCENE_ACTIVE("MI_4_SAVE_FAMILY_MAIN") STOP_AUDIO_SCENE("MI_4_GET_TO_THE_HOUSE") START_AUDIO_SCENE("MI_4_SAVE_FAMILY_MAIN") ENDIF ENDIF IF IS_ENTITY_AT_COORD(PLAYER_PED_ID(), vInsideHouseCoords, <<14.0, 14.0, 3.0>>) OR IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-817.345337,175.497055,70.260384>>, <<-794.602661,184.461853,82.473396>>, 12.000000) OR IS_BULLET_IN_AREA(GET_ENTITY_COORDS(pedHostagetakerAmanda), 1.5) IF bUnlockDoors = FALSE IF IS_DOOR_REGISTERED_WITH_SYSTEM(ENUM_TO_INT(DOORHASH_M_MANSION_F_L)) DOOR_SYSTEM_SET_OPEN_RATIO(ENUM_TO_INT(DOORHASH_M_MANSION_F_L), 0.0, FALSE, FALSE) DOOR_SYSTEM_SET_DOOR_STATE(ENUM_TO_INT(DOORHASH_M_MANSION_F_L), DOORSTATE_FORCE_UNLOCKED_THIS_FRAME, FALSE, TRUE) ENDIF IF IS_DOOR_REGISTERED_WITH_SYSTEM(ENUM_TO_INT(DOORHASH_M_MANSION_F_R)) DOOR_SYSTEM_SET_OPEN_RATIO(ENUM_TO_INT(DOORHASH_M_MANSION_F_R), 0.0, FALSE, FALSE) DOOR_SYSTEM_SET_DOOR_STATE(ENUM_TO_INT(DOORHASH_M_MANSION_F_R), DOORSTATE_FORCE_UNLOCKED_THIS_FRAME, FALSE, TRUE) ENDIF // KILL_ANY_CONVERSATION() bUnlockDoors = TRUE ENDIF ENDIF // IF NOT IS_ENTITY_DEAD(pedHostagetakerAmanda) // SET_PED_RESET_FLAG(pedHostagetakerAmanda, PRF_BlockWeaponReactionsUnlessDead, TRUE) // ENDIF IF HAVE_SAVE_AMANDA_CONDITIONS_TRIGGERED() IF bUnlockDoors = FALSE IF IS_DOOR_REGISTERED_WITH_SYSTEM(ENUM_TO_INT(DOORHASH_M_MANSION_F_L)) DOOR_SYSTEM_SET_OPEN_RATIO(ENUM_TO_INT(DOORHASH_M_MANSION_F_L), 0.0, FALSE, FALSE) DOOR_SYSTEM_SET_DOOR_STATE(ENUM_TO_INT(DOORHASH_M_MANSION_F_L), DOORSTATE_FORCE_UNLOCKED_THIS_FRAME, FALSE, TRUE) ENDIF IF IS_DOOR_REGISTERED_WITH_SYSTEM(ENUM_TO_INT(DOORHASH_M_MANSION_F_R)) DOOR_SYSTEM_SET_OPEN_RATIO(ENUM_TO_INT(DOORHASH_M_MANSION_F_R), 0.0, FALSE, FALSE) DOOR_SYSTEM_SET_DOOR_STATE(ENUM_TO_INT(DOORHASH_M_MANSION_F_R), DOORSTATE_FORCE_UNLOCKED_THIS_FRAME, FALSE, TRUE) ENDIF bUnlockDoors = TRUE ENDIF IF NOT IS_AUDIO_SCENE_ACTIVE("MI_4_SAVE_FAMILY_MAIN") STOP_AUDIO_SCENE("MI_4_GET_TO_THE_HOUSE") START_AUDIO_SCENE("MI_4_SAVE_FAMILY_MAIN") ENDIF IF bMichaelSaysDaddysHome = FALSE PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(PLAYER_PED_ID(), "SOL5_ARAA", "MICHAEL", SPEECH_PARAMS_FORCE_FRONTEND) bMichaelSaysDaddysHome = TRUE ENDIF IF CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_AMA", CONV_PRIORITY_VERY_HIGH) OR HAVE_SAVE_AMANDA_CONDITIONS_TRIGGERED() SET_MODEL_AS_NO_LONGER_NEEDED(IG_JIMMYDISANTO) IF NOT IS_ENTITY_ON_SCREEN(pedJimmy) DELETE_PED(pedJimmy) ELSE SET_PED_KEEP_TASK(pedJimmy, TRUE) SET_PED_AS_NO_LONGER_NEEDED(pedJimmy) ENDIF DELETE_PED(pedMerryWeatherRunInHouse1) DELETE_PED(pedMerryWeatherRunInHouse2) i_current_event = 0 mission_stage = STAGE_SAVE_AMANDA ENDIF ENDIF BREAK ENDSWITCH ENDPROC BOOL bDialogueDisplayed BOOL bDialogueDisplayed2 BOOL bDialogueDisplayed3 INT iTimeOfLastMichaelAmbientSpeech INT iTimeOfLastAmandaWhimper INT iTimeOfLastTraceyWhimper INT iTimeOfLastBaddyGrunt BOOL bFailForFiringButMissing BOOL bAmandasDialogue INT iTimeOfScreaming PROC stageSaveAmanda() REPLAY_DISABLE_CAMERA_MOVEMENT_THIS_FRAME() //Fix for bug 2195216 PED_BONETAG pedBoneTag //Fail conditions // IF IS_ENTITY_DEAD(pedTracey) // SET_PED_RESET_FLAG(pedTracey, PRF_DisablePotentialBlastReactions, TRUE) // ENDIF IF NOT IS_ENTITY_DEAD(pedAmanda) SET_PED_RESET_FLAG(pedAmanda, PRF_BlockWeaponReactionsUnlessDead, TRUE) SET_PED_RESET_FLAG(pedAmanda, PRF_DisablePotentialBlastReactions, TRUE) ENDIF IF NOT IS_ENTITY_DEAD(pedHostagetakerAmanda) AND i_current_event < 99 SET_PED_RESET_FLAG(pedHostagetakerAmanda, PRF_BlockWeaponReactionsUnlessDead, TRUE) SET_PED_RESET_FLAG(pedHostagetakerAmanda, PRF_DisablePotentialBlastReactions, TRUE) ENDIF SUPPRESS_CONTEXT_BUTTON_ACTIONS_THIS_FRAME() SWITCH i_current_event CASE 0 SPECIAL_ABILITY_CHARGE_ABSOLUTE(PLAYER_ID(), 30, TRUE) IF NOT IS_DOOR_REGISTERED_WITH_SYSTEM(ENUM_TO_INT(DOORHASH_M_MANSION_DAUGHTER)) ADD_DOOR_TO_SYSTEM(ENUM_TO_INT(DOORHASH_M_MANSION_DAUGHTER),V_ILEV_MM_DOORDAUGHTER, <<-802.702,176.176,76.890>>) ENDIF DOOR_SYSTEM_SET_OPEN_RATIO(ENUM_TO_INT(DOORHASH_M_MANSION_DAUGHTER), 0.0) DOOR_SYSTEM_SET_DOOR_STATE(ENUM_TO_INT(DOORHASH_M_MANSION_DAUGHTER), DOORSTATE_LOCKED) SET_MAX_WANTED_LEVEL(0) START_AUDIO_SCENE("MI_4_SAVE_FAMILY_MAIN") START_AUDIO_SCENE("MI_4_SAVE_AMANDA") IF DOES_OBJECT_OF_TYPE_EXIST_AT_COORDS ( <<-816.72, 179.10, 72.83>>, 2.0, V_ILEV_MM_DOORM_L) SET_STATE_OF_CLOSEST_DOOR_OF_TYPE(V_ILEV_MM_DOORM_L, <<-816.72, 179.10, 72.83>>, FALSE, 0.0) ENDIF IF DOES_OBJECT_OF_TYPE_EXIST_AT_COORDS ( <<-816.11, 177.51, 72.83>>, 2.0, V_ILEV_MM_DOORM_R) SET_STATE_OF_CLOSEST_DOOR_OF_TYPE(V_ILEV_MM_DOORM_R, <<-816.11, 177.51, 72.83>>, FALSE, 0.0) ENDIF bDisplayTimer = FALSE SET_CREATE_RANDOM_COPS(FALSE) SET_CREATE_RANDOM_COPS_ON_SCENARIOS(FALSE) SET_REPLAY_MID_MISSION_STAGE_WITH_NAME(4, "STAGE_SAVE_AMANDA") FADE_IN_IF_NEEDED() //blipPedHostagetaker = CREATE_BLIP_FOR_PED(pedHostagetakerAmanda, TRUE) //PRINT_NOW("SOL5_SAVEAM", DEFAULT_GOD_TEXT_TIME, 1) SETTIMERA(0) SET_PLAYER_ANGRY(PLAYER_PED_ID(), TRUE) REQUEST_STAGE_ASSETS(STAGE_SAVE_TRACEY) SET_AUDIO_FLAG("ScriptedConvListenerMaySpeak", TRUE) bAmandasDialogue = FALSE i_current_event++ BREAK CASE 1 CASE 2 IF i_current_event = 1 IF PREPARE_MUSIC_EVENT("SOL5_FRONT_DOORS") TRIGGER_MUSIC_EVENT("SOL5_FRONT_DOORS") i_current_event = 2 ENDIF ENDIF IF bAmandasDialogue = FALSE //IF CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_AMA", CONV_PRIORITY_VERY_HIGH) bAmandasDialogue = TRUE //ENDIF ENDIF //IF i_current_event = 3 //Pause conversation PRINTLN("GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(), pedAmanda):", GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(), pedAmanda)) IF GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(), pedAmanda) > 15.0 IF NOT IS_FACE_TO_FACE_CONVERSATION_PAUSED() PAUSE_FACE_TO_FACE_CONVERSATION(TRUE) ENDIF ELSE IF IS_FACE_TO_FACE_CONVERSATION_PAUSED() PAUSE_FACE_TO_FACE_CONVERSATION(FALSE) ENDIF ENDIF //ENDIF //Michael says let go of her etc.. IF GET_GAME_TIMER() - iTimeOfLastMichaelAmbientSpeech > 4000 AND IS_ENTITY_ON_SCREEN(pedAmanda) AND IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-812.758972,177.089920,71.171242>>, <<-814.894348,182.381500,75.253029>>, 5.000000) //AND IS_ENTITY_ON_SCREEN(pedAmanda) PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(PLAYER_PED_ID(), "SOL5_BMAA", "MICHAEL", SPEECH_PARAMS_FORCE_FRONTEND) //SCRIPT_ASSERT("say shit for fucks sake!") iTimeOfLastMichaelAmbientSpeech = GET_GAME_TIMER() ENDIF //Fail //IF GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(), pedHostagetakerAmanda) < 4.0 IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-811.401855,182.468979,73.153091>>, <<-805.193420,184.431122,76.270195>>, 3.250000) OR IS_PROJECTILE_TYPE_IN_ANGLED_AREA(<<-811.401855,182.468979,71.153091>>, <<-805.193420,184.431122,76.270195>>, 3.250000, WEAPONTYPE_GRENADE, TRUE) OR IS_PROJECTILE_TYPE_IN_ANGLED_AREA(<<-811.401855,182.468979,71.153091>>, <<-805.193420,184.431122,76.270195>>, 3.250000, WEAPONTYPE_SMOKEGRENADE, TRUE) OR IS_PROJECTILE_TYPE_IN_ANGLED_AREA(<<-811.401855,182.468979,71.153091>>, <<-805.193420,184.431122,76.270195>>, 3.250000, WEAPONTYPE_MOLOTOV, TRUE) OR IS_PROJECTILE_TYPE_IN_ANGLED_AREA(<<-811.401855,182.468979,71.153091>>, <<-805.193420,184.431122,76.270195>>, 3.250000, WEAPONTYPE_STICKYBOMB, TRUE) OR IS_PROJECTILE_TYPE_IN_ANGLED_AREA(<<-811.401855,182.468979,71.153091>>, <<-805.193420,184.431122,76.270195>>, 3.250000, WEAPONTYPE_RPG, TRUE) OR (IS_WEAPON_VALID(WEAPONTYPE_DLC_FLAREGUN) AND IS_PROJECTILE_TYPE_IN_ANGLED_AREA(<<-811.401855,182.468979,71.153091>>, <<-805.193420,184.431122,76.270195>>, 3.250000, WEAPONTYPE_DLC_FLAREGUN, TRUE)) OR (IS_WEAPON_VALID(WEAPONTYPE_DLC_FIREWORK) AND IS_PROJECTILE_TYPE_IN_ANGLED_AREA(<<-811.401855,182.468979,71.153091>>, <<-805.193420,184.431122,76.270195>>, 3.250000, WEAPONTYPE_DLC_FIREWORK, TRUE)) OR HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(pedAmanda, PLAYER_PED_ID()) OR bFailForFiringButMissing OR TIMERA() > 10000 PAUSE_FACE_TO_FACE_CONVERSATION(FALSE) i_current_event = 99 ENDIF //PRINTLN("GET_ENTITY_HEALTH(pedHostagetakerAmanda):", GET_ENTITY_HEALTH(pedHostagetakerAmanda)) IF GET_ENTITY_HEALTH(pedHostagetakerAmanda) < 1000.0 REPLAY_RECORD_BACK_FOR_TIME(3.5, 4.0, REPLAY_IMPORTANCE_HIGHEST) PAUSE_FACE_TO_FACE_CONVERSATION(FALSE) DETACH_ENTITY(oiAmandasShoe, TRUE, FALSE) SET_OBJECT_AS_NO_LONGER_NEEDED(oiAmandasShoe) SET_MODEL_AS_NO_LONGER_NEEDED(PROP_CS_AMANDA_SHOE) STOP_AUDIO_SCENE("MI_4_SAVE_AMANDA") KILL_FACE_TO_FACE_CONVERSATION_DO_NOT_FINISH_LAST_LINE() // WAIT(0) // IF NOT IS_ENTITY_DEAD(pedAmanda) // PLAY_PAIN(pedAmanda, AUD_DAMAGE_REASON_SCREAM_SHOCKED) // ENDIF GET_PED_LAST_DAMAGE_BONE(GET_PED_INDEX_FROM_ENTITY_INDEX(pedHostagetakerAmanda), pedBoneTag) IF pedBoneTag = BONETAG_HEAD INFORM_STAT_SYSTEM_OF_BOOL_STAT_HAPPENED(MIC4_HEADSHOT_RESCUE) ENDIF TRIGGER_MUSIC_EVENT("SOL5_AMANDA_SAVED") KILL_ANY_CONVERSATION() REMOVE_BLIP(blipPedHostagetaker) REMOVE_BLIP(blipAmanda) /* START SYNCHRONIZED SCENE - */ iSceneId = CREATE_SYNCHRONIZED_SCENE(vAmandaScenePos, vAmandaSceneRot) IF NOT IS_PED_INJURED(pedAmanda) TASK_SYNCHRONIZED_SCENE(pedAmanda, iSceneId, "misssolomon_5@stairs", "sol_5_stair_shoot_merry_at", NORMAL_BLEND_IN, INSTANT_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS | SYNCED_SCENE_DONT_INTERRUPT ) ENDIF IF NOT IS_PED_INJURED(pedHostagetakerAmanda) TASK_SYNCHRONIZED_SCENE(pedHostagetakerAmanda, iSceneId, "misssolomon_5@stairs", "sol_5_stair_shoot_merry_mw", NORMAL_BLEND_IN, SLOW_BLEND_OUT ) ENDIF SET_SYNCHRONIZED_SCENE_LOOPED(iSceneId, FALSE) FORCE_PED_AI_AND_ANIMATION_UPDATE(pedAmanda) FORCE_PED_AI_AND_ANIMATION_UPDATE(pedHostagetakerAmanda) iTimeOfScreaming = GET_GAME_TIMER() bFailForFiringButMissing = FALSE i_current_event = 4 ENDIF BREAK CASE 4 IF IS_SYNCHRONIZED_SCENE_RUNNING(iSceneId) IF GET_SYNCHRONIZED_SCENE_PHASE(iSceneId) > 0.05 IF NOT IS_ENTITY_DEAD(pedHostagetakerAmanda) APPLY_DAMAGE_TO_PED(pedHostagetakerAmanda, 1000, TRUE) i_current_event = 5 ENDIF ENDIF ENDIF IF GET_GAME_TIMER() - iTimeOfScreaming > 750 IF NOT IS_ENTITY_DEAD(pedHostagetakerAmanda) APPLY_DAMAGE_TO_PED(pedHostagetakerAmanda, 1000, TRUE) i_current_event = 5 ENDIF ENDIF BREAK CASE 5 IF HAVE_STAGE_ASSETS_LOADED(STAGE_SAVE_TRACEY) CREATE_STAGE_ASSETS(STAGE_SAVE_TRACEY) i_current_event= 0 bDialogueDisplayed = FALSE mission_stage = STAGE_SAVE_TRACEY ENDIF BREAK CASE 99 /* START SYNCHRONIZED SCENE - */ KILL_FACE_TO_FACE_CONVERSATION_DO_NOT_FINISH_LAST_LINE() WAIT(0) IF NOT IS_ENTITY_DEAD(PLAYER_PED_ID()) PLAY_PAIN(PLAYER_PED_ID(), AUD_DAMAGE_REASON_SCREAM_TERROR) ENDIF DETACH_ENTITY(oiAmandasShoe, TRUE, FALSE) SET_OBJECT_AS_NO_LONGER_NEEDED(oiAmandasShoe) SET_MODEL_AS_NO_LONGER_NEEDED(PROP_CS_AMANDA_SHOE) iSceneId = CREATE_SYNCHRONIZED_SCENE(vAmandaScenePos, vAmandaSceneRot) SET_SYNCHRONIZED_SCENE_LOOPED(iSceneId, FALSE) IF NOT IS_ENTITY_DEAD(pedAmanda) TASK_SYNCHRONIZED_SCENE(pedAmanda, iSceneId, "misssolomon_5@stairs", "sol_5_stair_shoot_amanda_at", INSTANT_BLEND_IN, INSTANT_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS ) ENDIF IF NOT IS_ENTITY_DEAD(pedHostagetakerAmanda) TASK_SYNCHRONIZED_SCENE(pedHostagetakerAmanda, iSceneId, "misssolomon_5@stairs", "sol_5_stair_shoot_amanda_mw", INSTANT_BLEND_IN, NORMAL_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS ) ENDIF i_current_event = 100 BREAK CASE 100 //Kill Amanda causing fail IF IS_SYNCHRONIZED_SCENE_RUNNING(iSceneId) IF GET_SYNCHRONIZED_SCENE_PHASE(iSceneId) >= 0.01 TRIGGER_MUSIC_EVENT("SOL5_FAIL") IF NOT IS_PED_INJURED(pedHostagetakerAmanda) AND NOT IS_ENTITY_DEAD(pedAmanda) SET_PED_SHOOTS_AT_COORD(pedHostagetakerAmanda, GET_PED_BONE_COORDS(pedAmanda, BONETAG_HEAD, <<0.0, 0.0, 0.0>>)) ENDIF REPLAY_RECORD_BACK_FOR_TIME(3.5, 4.0, REPLAY_IMPORTANCE_HIGHEST) i_current_event = 101 ENDIF ENDIF BREAK CASE 101 IF IS_SYNCHRONIZED_SCENE_RUNNING(iSceneId) IF GET_SYNCHRONIZED_SCENE_PHASE(iSceneId) >= 0.3 IF NOT IS_ENTITY_DEAD(pedAmanda) APPLY_DAMAGE_TO_PED(pedAmanda, 200, TRUE) ENDIF IF NOT IS_PED_INJURED(pedHostagetakerAmanda) SET_PED_LEG_IK_MODE(pedHostagetakerAmanda, LEG_IK_FULL) TASK_COMBAT_PED(pedHostagetakerAmanda, PLAYER_PED_ID()) ENDIF i_current_event = 102 ENDIF ENDIF BREAK ENDSWITCH IF IS_BULLET_IN_AREA(GET_ENTITY_COORDS(pedAmanda), 2.5) bFailForFiringButMissing = TRUE ENDIF ENDPROC FUNC BOOL IS_TRACEY_GOING_TO_GET_EXECUTED() BOOL bDLCProjectileWeaponUsed IF IS_WEAPON_VALID(WEAPONTYPE_DLC_FLAREGUN) IF IS_PROJECTILE_TYPE_IN_ANGLED_AREA(<<-802.453857,176.164154,75.826729>>, <<-799.845032,169.110443,79.256020>>, 3.750000, WEAPONTYPE_DLC_FLAREGUN, TRUE) bDLCProjectileWeaponUsed = TRUE ENDIF ENDIF IF IS_WEAPON_VALID(WEAPONTYPE_DLC_FIREWORK) IF IS_PROJECTILE_TYPE_IN_ANGLED_AREA(<<-802.453857,176.164154,75.826729>>, <<-799.845032,169.110443,79.256020>>, 3.750000, WEAPONTYPE_DLC_FIREWORK, TRUE) bDLCProjectileWeaponUsed = TRUE ENDIF ENDIF IF GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(), pedHostagetakerTracey) < 1.9 OR IS_PROJECTILE_TYPE_IN_ANGLED_AREA(<<-802.453857,176.164154,75.826729>>, <<-799.845032,169.110443,79.256020>>, 3.750000, WEAPONTYPE_GRENADE, TRUE) OR IS_PROJECTILE_TYPE_IN_ANGLED_AREA(<<-802.453857,176.164154,75.826729>>, <<-799.845032,169.110443,79.256020>>, 3.750000, WEAPONTYPE_SMOKEGRENADE, TRUE) OR IS_PROJECTILE_TYPE_IN_ANGLED_AREA(<<-802.453857,176.164154,75.826729>>, <<-799.845032,169.110443,79.256020>>, 3.750000, WEAPONTYPE_MOLOTOV, TRUE) OR IS_PROJECTILE_TYPE_IN_ANGLED_AREA(<<-802.453857,176.164154,75.826729>>, <<-799.845032,169.110443,79.256020>>, 3.750000, WEAPONTYPE_STICKYBOMB, TRUE) OR IS_PROJECTILE_TYPE_IN_ANGLED_AREA(<<-802.453857,176.164154,75.826729>>, <<-799.845032,169.110443,79.256020>>, 3.750000, WEAPONTYPE_RPG, TRUE) OR HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(pedTracey, PLAYER_PED_ID()) OR bDLCProjectileWeaponUsed RETURN TRUE ENDIF RETURN FALSE ENDFUNC // To fix url:bugstar:2088835 FUNC BOOL DID_PLAYER_RUN_PAST_AMANDA() IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-801.389404,178.807816,75.740738>>, <<-806.420288,176.971375,76.748322>>, 3.75) AND IS_SPHERE_VISIBLE(<<-802.889160,174.498154,76.240738>>, 1.5) RETURN TRUE ENDIF RETURN FALSE ENDFUNC INT iSceneIdAmandaIdle INT iTraceyExecutionTimer PROC stageSaveTracey() REPLAY_DISABLE_CAMERA_MOVEMENT_THIS_FRAME() //Fix for bug 2195216 PED_BONETAG pedBoneTag IF NOT IS_ENTITY_DEAD(pedTracey) IF i_current_event < 6// 4 //Fail IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(pedTracey, PLAYER_PED_ID()) OR IS_PED_INJURED(pedTracey) KILL_FACE_TO_FACE_CONVERSATION_DO_NOT_FINISH_LAST_LINE() STOP_CURRENT_PLAYING_AMBIENT_SPEECH(pedAmanda) WAIT(0) IF NOT IS_ENTITY_DEAD(pedAmanda) PLAY_PAIN(pedAmanda, AUD_DAMAGE_REASON_SCREAM_TERROR) ENDIF PLAY_PAIN(PLAYER_PED_ID(), AUD_DAMAGE_REASON_SCREAM_TERROR) bFailForFiringButMissing = TRUE MISSION_FLOW_SET_FAIL_REASON("SOL5_TDIED") mission_Failed() ENDIF ENDIF //SET_PED_RESET_FLAG(pedTracey, PRF_BlockWeaponReactionsUnlessDead, TRUE) SET_PED_RESET_FLAG(pedTracey, PRF_DisablePotentialBlastReactions, TRUE) ENDIF IF IS_EXPLOSION_IN_ANGLED_AREA(EXP_TAG_DONTCARE, <<-802.703125,176.358841,75.740738>>, <<-799.600098,168.648849,79.703346>>, 4.500000) //Fail IF i_current_event < 5 KILL_FACE_TO_FACE_CONVERSATION_DO_NOT_FINISH_LAST_LINE() STOP_CURRENT_PLAYING_AMBIENT_SPEECH(pedAmanda) WAIT(0) IF NOT IS_ENTITY_DEAD(pedAmanda) PLAY_PAIN(pedAmanda, AUD_DAMAGE_REASON_SCREAM_TERROR) ENDIF PLAY_PAIN(PLAYER_PED_ID(), AUD_DAMAGE_REASON_SCREAM_TERROR) bFailForFiringButMissing = TRUE MISSION_FLOW_SET_FAIL_REASON("SOL5_TDIED") mission_Failed() ENDIF ENDIF IF NOT IS_ENTITY_DEAD(pedAmanda) SET_PED_RESET_FLAG(pedAmanda, PRF_BlockWeaponReactionsUnlessDead, TRUE) SET_PED_RESET_FLAG(pedAmanda, PRF_DisablePotentialBlastReactions, TRUE) ENDIF IF NOT IS_ENTITY_DEAD(pedHostagetakerTracey) AND i_current_event < 99 SET_PED_RESET_FLAG(pedHostagetakerTracey, PRF_BlockWeaponReactionsUnlessDead, TRUE) SET_PED_RESET_FLAG(pedHostagetakerTracey, PRF_DisablePotentialBlastReactions, TRUE) ENDIF // IF DOES_OBJECT_OF_TYPE_EXIST_AT_COORDS ( <<-802.702,176.176,76.890>>, 2.0, V_ILEV_MM_DOORDAUGHTER) // SET_STATE_OF_CLOSEST_DOOR_OF_TYPE(V_ILEV_MM_DOORDAUGHTER, <<-802.702,176.176,76.890>>, TRUE, 1.0) // ENDIF IF GET_GAME_TIMER() - iTimeOfScreaming > 800 OR IS_SCREEN_FADED_OUT() //IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData, IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF) //AND i_current_event > 0 IF bDialogueDisplayed = FALSE STOP_PED_SPEAKING(pedAmanda, TRUE) KILL_FACE_TO_FACE_CONVERSATION_DO_NOT_FINISH_LAST_LINE() //SCRIPT_ASSERT("speak for fucks sake") IF CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_SHOT", CONV_PRIORITY_VERY_HIGH) STOP_PED_SPEAKING(pedAmanda, FALSE) bDialogueDisplayed2 = FALSE bDialogueDisplayed = TRUE ENDIF ENDIF //ENDIF ENDIF IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData, IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF) AND bDialogueDisplayed = TRUE AND bDialogueDisplayed2 = FALSE AND i_current_event = 1 IF CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_TRACE", CONV_PRIORITY_VERY_HIGH) bDialogueDisplayed2 = TRUE ENDIF ENDIF IF bDialogueDisplayed = TRUE AND bDialogueDisplayed3 = FALSE IF CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_TRAC2", CONV_PRIORITY_VERY_HIGH) START_AUDIO_SCENE("MI_4_SAVE_TRACY") bDialogueDisplayed3 = TRUE ENDIF ENDIF SUPPRESS_CONTEXT_BUTTON_ACTIONS_THIS_FRAME() IF GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(), pedAmanda) > 18.0 IF NOT IS_FACE_TO_FACE_CONVERSATION_PAUSED() PAUSE_FACE_TO_FACE_CONVERSATION(TRUE) ENDIF ELSE IF IS_FACE_TO_FACE_CONVERSATION_PAUSED() PAUSE_FACE_TO_FACE_CONVERSATION(FALSE) ENDIF ENDIF DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_MELEE_ATTACK_ALTERNATE) DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_MELEE_ATTACK_HEAVY) DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_MELEE_ATTACK_LIGHT) DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_MELEE_ATTACK1) DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_MELEE_ATTACK2) SWITCH i_current_event CASE 0 IF NOT IS_DOOR_REGISTERED_WITH_SYSTEM(ENUM_TO_INT(DOORHASH_M_MANSION_DAUGHTER)) ADD_DOOR_TO_SYSTEM(ENUM_TO_INT(DOORHASH_M_MANSION_DAUGHTER),V_ILEV_MM_DOORDAUGHTER, <<-802.702,176.176,76.890>>) ENDIF DOOR_SYSTEM_SET_OPEN_RATIO(ENUM_TO_INT(DOORHASH_M_MANSION_DAUGHTER),1.0, FALSE, FALSE) DOOR_SYSTEM_SET_DOOR_STATE(ENUM_TO_INT(DOORHASH_M_MANSION_DAUGHTER), DOORSTATE_FORCE_UNLOCKED_THIS_FRAME, FALSE, TRUE) SET_MAX_WANTED_LEVEL(0) START_AUDIO_SCENE("MI_4_SAVE_FAMILY_MAIN") bDisplayTimer = FALSE REQUEST_STAGE_ASSETS(STAGE_TRACEY_CAPTOR_SHOT) SET_REPLAY_MID_MISSION_STAGE_WITH_NAME(5, "STAGE_SAVE_TRACEY") SET_CREATE_RANDOM_COPS(FALSE) SET_CREATE_RANDOM_COPS_ON_SCENARIOS(FALSE) IF IS_SCREEN_FADED_OUT() IF IS_SYNCHRONIZED_SCENE_RUNNING(iSceneId) IF NOT IS_PED_INJURED(pedHostagetakerAmanda) SHOOT_SINGLE_BULLET_BETWEEN_COORDS(GET_PED_BONE_COORDS(pedHostagetakerAmanda, BONETAG_HEAD, <<0.0, 0.25, 0.0>>), GET_PED_BONE_COORDS(pedHostagetakerAmanda, BONETAG_HEAD, <<0.0, -1.0, 0.0>>), 200, TRUE) ENDIF LOAD_SCENE(<<-814.9095, 179.0777, 71.1592>>) SET_SYNCHRONIZED_SCENE_PHASE(iSceneId, 0.35) ENDIF ENDIF SET_PLAYER_ANGRY(PLAYER_PED_ID(), TRUE) SET_AUDIO_FLAG("ScriptedConvListenerMaySpeak", TRUE) bFailForFiringButMissing = FALSE FADE_IN_IF_NEEDED() i_current_event ++ BREAK CASE 1 //Wait until Amanda is at the top of the stairs IF IS_SYNCHRONIZED_SCENE_RUNNING(iSceneId) SET_FORCE_FOOTSTEP_UPDATE(pedAmanda, TRUE) IF GET_SYNCHRONIZED_SCENE_PHASE(iSceneId) >= 0.094 IF NOT IS_ENTITY_DEAD(pedHostagetakerAmanda) APPLY_DAMAGE_TO_PED(pedHostagetakerAmanda, 1000, TRUE) ENDIF ENDIF IF GET_SYNCHRONIZED_SCENE_PHASE(iSceneId) >= 1.0 OR DID_PLAYER_RUN_PAST_AMANDA() IF NOT IS_ENTITY_DEAD(pedHostagetakerAmanda) APPLY_DAMAGE_TO_PED(pedHostagetakerAmanda, 1000, TRUE) ENDIF intMichaelsHouse = GET_INTERIOR_AT_COORDS_WITH_TYPE(<< -803.350, 172.900, 75.700 >>, "V_Michael") /* START SYNCHRONIZED SCENE - */ vAmandaScenePos= << -803.998, 175.910, 75.745 >> vAmandaSceneRot = << 0.000, 0.000, 21.120 >> iSceneId = CREATE_SYNCHRONIZED_SCENE(vAmandaScenePos, vAmandaSceneRot) SET_SYNCHRONIZED_SCENE_LOOPED(iSceneId, FALSE) IF NOT IS_PED_INJURED(pedAmanda) TASK_SYNCHRONIZED_SCENE(pedAmanda, iSceneId, "misssolomon_5@bedroom", "sol_5_bedroom_into_at", NORMAL_BLEND_IN, NORMAL_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS) ENDIF IF NOT IS_PED_INJURED(pedTracey) TASK_SYNCHRONIZED_SCENE(pedTracey, iSceneId, "misssolomon_5@bedroom", "sol_5_bedroom_into_tt", INSTANT_BLEND_IN, INSTANT_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS ) FORCE_ROOM_FOR_ENTITY(pedTracey, intMichaelsHouse, GET_HASH_KEY("V_Michael_1_Daught")) RETAIN_ENTITY_IN_INTERIOR(pedTracey, intMichaelsHouse) ENDIF IF NOT IS_PED_INJURED(pedHostagetakerTracey) TASK_SYNCHRONIZED_SCENE(pedHostagetakerTracey, iSceneId, "misssolomon_5@bedroom", "sol_5_bedroom_into_mw", INSTANT_BLEND_IN, INSTANT_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS ) FORCE_ROOM_FOR_ENTITY(pedHostagetakerTracey, intMichaelsHouse, GET_HASH_KEY("V_Michael_1_Daught")) RETAIN_ENTITY_IN_INTERIOR(pedHostagetakerTracey, intMichaelsHouse) ENDIF SET_SYNCHRONIZED_SCENE_PHASE(iSceneId, 0.1) SETTIMERA(0) CLEAR_PRINTS() PLAY_PAIN(pedTracey, AUD_DAMAGE_REASON_SCREAM_TERROR) //PRINT_NOW("SOL5_SAVETRC", DEFAULT_GOD_TEXT_TIME, 1) blipPedTracey = CREATE_BLIP_FOR_PED(pedTracey) i_current_event ++ ENDIF ENDIF BREAK CASE 2 CASE 3 //Wait until "bedroom intro" has completed. IF IS_SYNCHRONIZED_SCENE_RUNNING(iSceneId) //AND i_current_event = 2 SET_FORCE_FOOTSTEP_UPDATE(pedAmanda, TRUE) // IF iRandomVariation = -1 // IF GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(), pedAmanda) < 5.0 // IF GET_SYNCHRONIZED_SCENE_PHASE(iSceneId) < 0.346 // SET_SYNCHRONIZED_SCENE_RATE (iSceneId, 3.5) // ENDIF // ENDIF // // IF GET_SYNCHRONIZED_SCENE_PHASE(iSceneId) > 0.346 // SET_SYNCHRONIZED_SCENE_RATE(iSceneId, 1.0) // ENDIF // ELSE // SET_SYNCHRONIZED_SCENE_RATE(iSceneId, 1.0) // ENDIF IF GET_SYNCHRONIZED_SCENE_PHASE(iSceneId) >= 0.99 intMichaelsHouse = GET_INTERIOR_AT_COORDS_WITH_TYPE(<< -803.350, 172.900, 75.700 >>, "V_Michael") /* START SYNCHRONIZED SCENE - */ iSceneId = CREATE_SYNCHRONIZED_SCENE(vTraceyScenePos, vTraceySceneRot) SET_SYNCHRONIZED_SCENE_LOOPED(iSceneId, FALSE) iRandomVariation = GET_RANDOM_INT_IN_RANGE(0, 3) SWITCH iRandomVariation CASE 0 IF NOT IS_ENTITY_DEAD(pedAmanda) TASK_SYNCHRONIZED_SCENE(pedAmanda, iSceneId, "misssolomon_5@bedroom", "sol_5_bedroom_strug_a_at", INSTANT_BLEND_IN, INSTANT_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS ) ENDIF IF NOT IS_ENTITY_DEAD(pedTracey) TASK_SYNCHRONIZED_SCENE(pedTracey, iSceneId, "misssolomon_5@bedroom", "sol_5_bedroom_strug_a_tt", INSTANT_BLEND_IN, INSTANT_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS ) ENDIF IF NOT IS_ENTITY_DEAD(pedHostagetakerTracey) TASK_SYNCHRONIZED_SCENE(pedHostagetakerTracey, iSceneId, "misssolomon_5@bedroom", "sol_5_bedroom_strug_a_mw", INSTANT_BLEND_IN, INSTANT_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS ) ENDIF BREAK CASE 1 IF NOT IS_ENTITY_DEAD(pedAmanda) TASK_SYNCHRONIZED_SCENE(pedAmanda, iSceneId, "misssolomon_5@bedroom", "sol_5_bedroom_strug_b_at", INSTANT_BLEND_IN, INSTANT_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS ) ENDIF IF NOT IS_ENTITY_DEAD(pedTracey) TASK_SYNCHRONIZED_SCENE(pedTracey, iSceneId, "misssolomon_5@bedroom", "sol_5_bedroom_strug_b_tt", INSTANT_BLEND_IN, INSTANT_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS ) ENDIF IF NOT IS_ENTITY_DEAD(pedHostagetakerTracey) TASK_SYNCHRONIZED_SCENE(pedHostagetakerTracey, iSceneId, "misssolomon_5@bedroom", "sol_5_bedroom_strug_b_mw", INSTANT_BLEND_IN, INSTANT_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS ) ENDIF BREAK CASE 2 IF NOT IS_ENTITY_DEAD(pedAmanda) TASK_SYNCHRONIZED_SCENE(pedAmanda, iSceneId, "misssolomon_5@bedroom", "sol_5_bedroom_strug_c_at", INSTANT_BLEND_IN, INSTANT_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS ) ENDIF IF NOT IS_ENTITY_DEAD(pedTracey) TASK_SYNCHRONIZED_SCENE(pedTracey, iSceneId, "misssolomon_5@bedroom", "sol_5_bedroom_strug_c_tt", INSTANT_BLEND_IN, INSTANT_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS ) ENDIF IF NOT IS_ENTITY_DEAD(pedHostagetakerTracey) TASK_SYNCHRONIZED_SCENE(pedHostagetakerTracey, iSceneId, "misssolomon_5@bedroom", "sol_5_bedroom_strug_c_mw", INSTANT_BLEND_IN, INSTANT_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS ) ENDIF BREAK ENDSWITCH FORCE_PED_AI_AND_ANIMATION_UPDATE(pedAmanda) FORCE_PED_AI_AND_ANIMATION_UPDATE(pedTracey) FORCE_PED_AI_AND_ANIMATION_UPDATE(pedHostagetakerTracey) i_current_event = 4 ENDIF ENDIF // IF NOT IS_ENTITY_DEAD(pedTracey) // FORCE_ROOM_FOR_ENTITY(pedTracey, intMichaelsHouse, GET_HASH_KEY("V_Michael_1_Daught")) // ENDIF // IF NOT IS_ENTITY_DEAD(pedHostagetakerTracey) // FORCE_ROOM_FOR_ENTITY(pedHostagetakerTracey, intMichaelsHouse, GET_HASH_KEY("V_Michael_1_Daught")) // ENDIF // // IF i_current_event = 3 // IF IS_ENTITY_AT_COORD(PLAYER_PED_ID(), << -802.7369, 174.3312, 75.7408 >>, <<3.0, 3.0, 2.0>>) // OR HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(pedHostagetakerTracey, PLAYER_PED_ID()) // OR IS_TRACEY_GOING_TO_GET_EXECUTED() // //IF CREATE_CONVERSATION(myScriptedSpeech, "FAM1AUD", "FAM1_BANT", CONV_PRIORITY_VERY_HIGH) // // GET_PED_LAST_DAMAGE_BONE(GET_PED_INDEX_FROM_ENTITY_INDEX(pedHostagetakerTracey), pedBoneTag) // IF pedBoneTag = BONETAG_HEAD // INFORM_STAT_SYSTEM_OF_BOOL_STAT_HAPPENED(MIC4_HEADSHOT_RESCUE) // ENDIF // // i_current_event = 4 // ENDIF // ENDIF BREAK CASE 4 TRIGGER_MUSIC_EVENT("SOL5_HOSTAGE_TAKER") REMOVE_BLIP(blipPedTracey) blipPedHostagetaker = CREATE_BLIP_FOR_PED(pedHostagetakerTracey, TRUE) PRINT_NOW("SOL5_SAVEAM", DEFAULT_GOD_TEXT_TIME, 1) iTraceyExecutionTimer = GET_GAME_TIMER() iTimeOfLastTraceyWhimper = GET_GAME_TIMER() i_current_event++ BREAK CASE 5 CASE 6 //Michael says let go of her etc.. IF GET_GAME_TIMER() - iTimeOfLastMichaelAmbientSpeech > 4000 PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(PLAYER_PED_ID(), "SOL5_BNAA", "MICHAEL", SPEECH_PARAMS_FORCE_FRONTEND) //SCRIPT_ASSERT("aarrgh") iTimeOfLastMichaelAmbientSpeech = GET_GAME_TIMER() ENDIF IF GET_GAME_TIMER() - iTimeOfLastAmandaWhimper > 3000 PLAY_PAIN(pedAmanda, AUD_DAMAGE_REASON_WHIMPER) iTimeOfLastAmandaWhimper = GET_GAME_TIMER() ENDIF IF GET_GAME_TIMER() - iTimeOfLastTraceyWhimper > 4000 PLAY_PAIN(pedTracey, AUD_DAMAGE_REASON_SCREAM_SCARED) iTimeOfLastTraceyWhimper = GET_GAME_TIMER() ENDIF IF GET_GAME_TIMER() - iTimeOfLastBaddyGrunt > 3000 PLAY_PAIN(pedHostagetakerTracey, AUD_DAMAGE_REASON_EXHALE) iTimeOfLastBaddyGrunt = GET_GAME_TIMER() ENDIF IF IS_SYNCHRONIZED_SCENE_RUNNING(iSceneId) //AND i_current_event = 2 IF GET_SYNCHRONIZED_SCENE_PHASE(iSceneId) >= 1.0 intMichaelsHouse = GET_INTERIOR_AT_COORDS_WITH_TYPE(<< -803.350, 172.900, 75.700 >>, "V_Michael") /* START SYNCHRONIZED SCENE - */ vAmandaScenePos= << -803.998, 175.910, 75.745 >> vAmandaSceneRot = << 0.000, 0.000, 21.120 >> iSceneId = CREATE_SYNCHRONIZED_SCENE(vAmandaScenePos, vAmandaSceneRot) SET_SYNCHRONIZED_SCENE_LOOPED(iSceneId, FALSE) iRandomVariation = GET_RANDOM_INT_IN_RANGE(0, 3) SWITCH iRandomVariation CASE 0 IF NOT IS_ENTITY_DEAD(pedAmanda) TASK_SYNCHRONIZED_SCENE(pedAmanda, iSceneId, "misssolomon_5@bedroom", "sol_5_bedroom_strug_a_at", INSTANT_BLEND_IN, INSTANT_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS ) FORCE_PED_AI_AND_ANIMATION_UPDATE(pedAmanda, TRUE) ENDIF IF NOT IS_ENTITY_DEAD(pedTracey) TASK_SYNCHRONIZED_SCENE(pedTracey, iSceneId, "misssolomon_5@bedroom", "sol_5_bedroom_strug_a_tt", INSTANT_BLEND_IN, INSTANT_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS ) FORCE_PED_AI_AND_ANIMATION_UPDATE(pedTracey, TRUE) ENDIF IF NOT IS_ENTITY_DEAD(pedHostagetakerTracey) TASK_SYNCHRONIZED_SCENE(pedHostagetakerTracey, iSceneId, "misssolomon_5@bedroom", "sol_5_bedroom_strug_a_mw", INSTANT_BLEND_IN, INSTANT_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS ) FORCE_PED_AI_AND_ANIMATION_UPDATE(pedHostagetakerTracey, TRUE) ENDIF BREAK CASE 1 IF NOT IS_ENTITY_DEAD(pedAmanda) TASK_SYNCHRONIZED_SCENE(pedAmanda, iSceneId, "misssolomon_5@bedroom", "sol_5_bedroom_strug_b_at", INSTANT_BLEND_IN, INSTANT_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS ) FORCE_PED_AI_AND_ANIMATION_UPDATE(pedAmanda, TRUE) ENDIF IF NOT IS_ENTITY_DEAD(pedTracey) TASK_SYNCHRONIZED_SCENE(pedTracey, iSceneId, "misssolomon_5@bedroom", "sol_5_bedroom_strug_b_tt", INSTANT_BLEND_IN, INSTANT_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS ) FORCE_PED_AI_AND_ANIMATION_UPDATE(pedTracey, TRUE) ENDIF IF NOT IS_ENTITY_DEAD(pedHostagetakerTracey) TASK_SYNCHRONIZED_SCENE(pedHostagetakerTracey, iSceneId, "misssolomon_5@bedroom", "sol_5_bedroom_strug_b_mw", INSTANT_BLEND_IN, INSTANT_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS ) FORCE_PED_AI_AND_ANIMATION_UPDATE(pedHostagetakerTracey, TRUE) ENDIF BREAK CASE 2 IF NOT IS_ENTITY_DEAD(pedAmanda) TASK_SYNCHRONIZED_SCENE(pedAmanda, iSceneId, "misssolomon_5@bedroom", "sol_5_bedroom_strug_c_at", INSTANT_BLEND_IN, INSTANT_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS ) FORCE_PED_AI_AND_ANIMATION_UPDATE(pedAmanda, TRUE) ENDIF IF NOT IS_ENTITY_DEAD(pedTracey) TASK_SYNCHRONIZED_SCENE(pedTracey, iSceneId, "misssolomon_5@bedroom", "sol_5_bedroom_strug_c_tt", INSTANT_BLEND_IN, INSTANT_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS ) FORCE_PED_AI_AND_ANIMATION_UPDATE(pedTracey, TRUE) ENDIF IF NOT IS_ENTITY_DEAD(pedHostagetakerTracey) TASK_SYNCHRONIZED_SCENE(pedHostagetakerTracey, iSceneId, "misssolomon_5@bedroom", "sol_5_bedroom_strug_c_mw", INSTANT_BLEND_IN, INSTANT_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS ) FORCE_PED_AI_AND_ANIMATION_UPDATE(pedHostagetakerTracey, TRUE) ENDIF BREAK ENDSWITCH ENDIF ENDIF //Fail IF IS_TRACEY_GOING_TO_GET_EXECUTED() OR HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(pedTracey, PLAYER_PED_ID()) OR IS_PED_INJURED(pedTracey) OR GET_GAME_TIMER() - iTraceyExecutionTimer > 12000 OR bFailForFiringButMissing REPLAY_RECORD_BACK_FOR_TIME(7.5, 4.0, REPLAY_IMPORTANCE_HIGHEST) KILL_FACE_TO_FACE_CONVERSATION_DO_NOT_FINISH_LAST_LINE() STOP_CURRENT_PLAYING_AMBIENT_SPEECH(pedAmanda) WAIT(0) IF NOT IS_ENTITY_DEAD(pedAmanda) PLAY_PAIN(pedAmanda, AUD_DAMAGE_REASON_SCREAM_TERROR) ENDIF PLAY_PAIN(PLAYER_PED_ID(), AUD_DAMAGE_REASON_SCREAM_TERROR) bFailForFiringButMissing = TRUE i_current_event = 99 ENDIF BREAK CASE 99 intMichaelsHouse = GET_INTERIOR_AT_COORDS_WITH_TYPE(<< -803.350, 172.900, 75.700 >>, "V_Michael") /* START SYNCHRONIZED SCENE - */ vAmandaScenePos= << -803.998, 175.910, 75.8 >> vAmandaSceneRot = << 0.000, 0.000, 21.120 >> iSceneId = CREATE_SYNCHRONIZED_SCENE(vAmandaScenePos, vAmandaSceneRot) SET_SYNCHRONIZED_SCENE_LOOPED(iSceneId, FALSE) IF NOT IS_ENTITY_DEAD(pedAmanda) TASK_SYNCHRONIZED_SCENE(pedAmanda, iSceneId, "misssolomon_5@bedroom", "sol_5_bedroom_shoot_at", SLOW_BLEND_IN, SLOW_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS ) ENDIF IF NOT IS_ENTITY_DEAD(pedTracey) TASK_SYNCHRONIZED_SCENE(pedTracey, iSceneId, "misssolomon_5@bedroom", "sol_5_bedroom_shoot_tt", SLOW_BLEND_IN, SLOW_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS ) ENDIF IF NOT IS_ENTITY_DEAD(pedHostagetakerTracey) TASK_SYNCHRONIZED_SCENE(pedHostagetakerTracey, iSceneId, "misssolomon_5@bedroom", "sol_5_bedroom_shoot_mw", SLOW_BLEND_IN, SLOW_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS | SYNCED_SCENE_DONT_INTERRUPT ) ENDIF i_current_event = 100 BREAK CASE 100 //Kill tracey causing fail IF IS_SYNCHRONIZED_SCENE_RUNNING(iSceneId) IF GET_SYNCHRONIZED_SCENE_PHASE(iSceneId) >= 0.01 //0.7 TRIGGER_MUSIC_EVENT("SOL5_FAIL") IF NOT IS_PED_INJURED(pedHostagetakerTracey) AND NOT IS_ENTITY_DEAD(pedTracey) SET_PED_SHOOTS_AT_COORD(pedHostagetakerTracey, GET_PED_BONE_COORDS(pedTracey, BONETAG_HEAD, <<0.0, 0.0, 0.0>>)) ENDIF SHOOT_SINGLE_BULLET_BETWEEN_COORDS(GET_PED_BONE_COORDS(pedTracey, BONETAG_HEAD, <<0.0, 0.0, 0.0>>) + <<0.0, 0.5, 0.0>>, GET_PED_BONE_COORDS(pedTracey, BONETAG_HEAD, <<0.0, 0.0, 0.0>>), 25, TRUE) i_current_event = 101 ENDIF ENDIF BREAK CASE 101 IF NOT IS_PED_INJURED(pedHostagetakerTracey) IF IS_ENTITY_PLAYING_ANIM(pedHostagetakerTracey, "misssolomon_5@bedroom", "sol_5_bedroom_shoot_mw") SET_PED_RESET_FLAG(pedHostagetakerTracey, PRF_InstantBlendToAim, TRUE) ENDIF ENDIF IF IS_SYNCHRONIZED_SCENE_RUNNING(iSceneId) PRINTLN("Tracey fail:", GET_SYNCHRONIZED_SCENE_PHASE(iSceneId)) IF NOT IS_ENTITY_DEAD(pedTracey) IF GET_SYNCHRONIZED_SCENE_PHASE(iSceneId) >= 0.32 //0.7 APPLY_FORCE_TO_ENTITY(pedTracey, APPLY_TYPE_IMPULSE, <<0.0, 1.5, 0.0>>, <<0.0, 0.0, 0.0>>, 0, TRUE, TRUE, TRUE) APPLY_DAMAGE_TO_PED(pedTracey, 200, TRUE) ENDIF ENDIF IF GET_SYNCHRONIZED_SCENE_PHASE(iSceneId) >= 0.7 //0.7 IF NOT IS_PED_INJURED(pedHostagetakerTracey) TASK_COMBAT_PED(pedHostagetakerTracey, PLAYER_PED_ID()) FORCE_PED_AI_AND_ANIMATION_UPDATE(pedHostagetakerTracey, TRUE) ENDIF i_current_event = 102 ENDIF ELSE IF NOT IS_PED_INJURED(pedHostagetakerTracey) TASK_COMBAT_PED(pedHostagetakerTracey, PLAYER_PED_ID()) FORCE_PED_AI_AND_ANIMATION_UPDATE(pedHostagetakerTracey, TRUE) ENDIF i_current_event = 102 ENDIF BREAK CASE 102 IF NOT IS_PED_INJURED(pedHostagetakerTracey) IF IS_ENTITY_PLAYING_ANIM(pedHostagetakerTracey, "misssolomon_5@bedroom", "sol_5_bedroom_shoot_mw") SET_PED_RESET_FLAG(pedHostagetakerTracey, PRF_InstantBlendToAim, TRUE) ENDIF ENDIF IF NOT IS_ENTITY_DEAD(pedTracey) APPLY_DAMAGE_TO_PED(pedTracey, 200, TRUE) ENDIF i_current_event = 103 BREAK CASE 103 IF NOT IS_PED_INJURED(pedHostagetakerTracey) IF IS_ENTITY_PLAYING_ANIM(pedHostagetakerTracey, "misssolomon_5@bedroom", "sol_5_bedroom_shoot_mw") SET_PED_RESET_FLAG(pedHostagetakerTracey, PRF_InstantBlendToAim, TRUE) ENDIF ENDIF IF IS_SYNCHRONIZED_SCENE_RUNNING(iSceneId) PRINTLN("stuff:", GET_SYNCHRONIZED_SCENE_PHASE(iSceneId)) IF GET_SYNCHRONIZED_SCENE_PHASE(iSceneId) >= 0.9 vAmandaScenePos= << -803.998, 175.910, 75.8 >> vAmandaSceneRot = << 0.000, 0.000, 21.120 >> iSceneIdAmandaIdle = CREATE_SYNCHRONIZED_SCENE(vAmandaScenePos, vAmandaSceneRot) SET_SYNCHRONIZED_SCENE_LOOPED(iSceneIdAmandaIdle, FALSE) IF NOT IS_ENTITY_DEAD(pedAmanda) TASK_SYNCHRONIZED_SCENE(pedAmanda, iSceneIdAmandaIdle, "misssolomon_5@bedroom", "sol_5_bedroom_idle_AT", NORMAL_BLEND_IN, SLOW_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS ) SET_SYNCHRONIZED_SCENE_LOOPED(iSceneIdAmandaIdle, TRUE) FORCE_PED_AI_AND_ANIMATION_UPDATE(pedAmanda, TRUE) ENDIF i_current_event = 104 ENDIF ENDIF BREAK CASE 999 GET_PED_LAST_DAMAGE_BONE(GET_PED_INDEX_FROM_ENTITY_INDEX(pedHostagetakerTracey), pedBoneTag) IF pedBoneTag = BONETAG_HEAD INFORM_STAT_SYSTEM_OF_BOOL_STAT_HAPPENED(MIC4_HEADSHOT_RESCUE) ENDIF REPLAY_RECORD_BACK_FOR_TIME(3.5, 4.0, REPLAY_IMPORTANCE_HIGHEST) KILL_ANY_CONVERSATION() REMOVE_BLIP(blipPedHostagetaker) IF NOT IS_PED_INJURED(pedHostagetakerTracey) APPLY_DAMAGE_TO_PED(pedHostagetakerTracey, 200, TRUE) ENDIF REQUEST_STAGE_ASSETS(STAGE_TRACEY_CAPTOR_SHOT) bDialogueDisplayed = FALSE i_current_event = 0 STOP_AUDIO_SCENE("MI_4_SAVE_TRACY") mission_stage = STAGE_TRACEY_CAPTOR_SHOT BREAK ENDSWITCH // IF NOT IS_ENTITY_DEAD(pedTracey) // SET_PED_RESET_FLAG(pedTracey, PRF_BlockWeaponReactionsUnlessDead, TRUE) // ENDIF //Advance //IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(pedHostagetakerTracey, PLAYER_PED_ID()) IF mission_stage <> STAGE_TRACEY_CAPTOR_SHOT IF NOT IS_ENTITY_DEAD(pedHostagetakerTracey) IF GET_ENTITY_HEALTH(pedHostagetakerTracey) < 1000.0 AND bFailForFiringButMissing = FALSE //Advance i_current_event = 999 ENDIF IF NOT IS_PED_INJURED(pedTracey) IF i_current_event > 4 IF IS_BULLET_IN_AREA(GET_ENTITY_COORDS(pedTracey), 2.5) OR IS_PROJECTILE_IN_AREA(GET_ENTITY_COORDS(pedTracey) - <<3.0, 3.0, 3.0>>, GET_ENTITY_COORDS(pedTracey) + <<3.0, 3.0, 3.0>>) bFailForFiringButMissing = TRUE ENDIF ENDIF ENDIF ELSE IF bFailForFiringButMissing = FALSE i_current_event = 999 ENDIF ENDIF ENDIF //Set cutscene variations... IF NOT IS_ENTITY_DEAD(pedAmanda) SET_CUTSCENE_PED_COMPONENT_VARIATION_FROM_PED("Amanda", pedAmanda) ENDIF IF NOT IS_ENTITY_DEAD(pedTracey) SET_CUTSCENE_PED_COMPONENT_VARIATION_FROM_PED("Tracy", pedTracey) ENDIF IF NOT IS_ENTITY_DEAD(pedHostagetakerTracey) SET_CUTSCENE_PED_COMPONENT_VARIATION_FROM_PED("GOON_ATTACK_TRACY", pedHostagetakerTracey) ENDIF ENDPROC COVERPOINT_INDEX cpHallway BOOL bComingOutOfcutscene = FALSE PROC stageMCS1() //SEQUENCE_INDEX seqGetTracey SWITCH i_current_event CASE 0 REMOVE_BLIP(blipTraceysRoom) REMOVE_BLIP(blipPedTracey) KILL_FACE_TO_FACE_CONVERSATION_DO_NOT_FINISH_LAST_LINE() GET_CURRENT_PED_WEAPON(PLAYER_PED_ID(), beforeCutWeaponType) IF NOT IS_ENTITY_DEAD(pedAmanda) SET_CUTSCENE_PED_COMPONENT_VARIATION_FROM_PED("Amanda", pedAmanda) ENDIF IF NOT IS_ENTITY_DEAD(pedTracey) APPLY_PED_DAMAGE_PACK(pedTracey, "SCR_TracySplash", 1.0, 1.0) SET_CUTSCENE_PED_COMPONENT_VARIATION_FROM_PED("Tracy", pedTracey) ENDIF IF NOT IS_ENTITY_DEAD(pedHostagetakerTracey) SET_CUTSCENE_PED_COMPONENT_VARIATION_FROM_PED("GOON_ATTACK_TRACY", pedHostagetakerTracey) ENDIF REQUEST_WEAPON_ASSET(beforeCutWeaponType) IF HAS_CUTSCENE_LOADED() IF NOT IS_ENTITY_DEAD(pedTracey) REGISTER_ENTITY_FOR_CUTSCENE(pedTracey, "Tracy", CU_ANIMATE_EXISTING_SCRIPT_ENTITY, DUMMY_MODEL_FOR_SCRIPT, CEO_PRESERVE_FACE_BLOOD_DAMAGE | CEO_CLONE_DAMAGE_TO_CS_MODEL ) ENDIF IF NOT IS_ENTITY_DEAD(pedAmanda) REGISTER_ENTITY_FOR_CUTSCENE(pedAmanda, "Amanda", CU_ANIMATE_EXISTING_SCRIPT_ENTITY) ENDIF IF NOT IS_ENTITY_DEAD(pedHostagetakerTracey) REGISTER_ENTITY_FOR_CUTSCENE(pedHostagetakerTracey, "GOON_ATTACK_TRACY", CU_ANIMATE_EXISTING_SCRIPT_ENTITY, DUMMY_MODEL_FOR_SCRIPT, CEO_PRESERVE_FACE_BLOOD_DAMAGE | CEO_CLONE_DAMAGE_TO_CS_MODEL) ENDIF cpHallway = ADD_COVER_POINT(<<-802.83807, 179.84833, 75.7407>>, 16.5058, COVUSE_WALLTORIGHT, COVHEIGHT_TOOHIGH, COVARC_300TO0, TRUE) START_CUTSCENE() REPLAY_START_EVENT(REPLAY_IMPORTANCE_HIGHEST) STOP_AUDIO_SCENE("MI_4_SAVE_FAMILY_MAIN") FADE_IN_IF_NEEDED() i_current_event++ ENDIF BREAK CASE 1 CASE 2 IF DOES_ENTITY_EXIST(GET_ENTITY_INDEX_OF_REGISTERED_ENTITY("Tracy")) IF NOT IS_PED_INJURED(GET_PED_INDEX_FROM_ENTITY_INDEX(GET_ENTITY_INDEX_OF_REGISTERED_ENTITY("Tracy"))) APPLY_PED_DAMAGE_PACK(GET_PED_INDEX_FROM_ENTITY_INDEX(GET_ENTITY_INDEX_OF_REGISTERED_ENTITY("Tracy")), "SCR_TracySplash", 1.0, 1.0) ENDIF ENDIF IF i_current_event =1 IF PREPARE_MUSIC_EVENT("SOL5_HOSTAGE_DEAD") TRIGGER_MUSIC_EVENT("SOL5_HOSTAGE_DEAD") i_current_event =2 ENDIF ENDIF // IF CAN_SET_EXIT_STATE_FOR_CAMERA() // //RESET_GAME_CAMERA() // SET_GAMEPLAY_CAM_RELATIVE_HEADING(-78.031601) // SET_GAMEPLAY_CAM_RELATIVE_HEADING(-11.594591) // ENDIF IF CAN_SET_EXIT_STATE_FOR_REGISTERED_ENTITY("Michael") //HAS_CUTSCENE_FINISHED() IF beforeCutWeaponType = WEAPONTYPE_UNARMED SET_CURRENT_PED_WEAPON(PLAYER_PED_ID(), GET_BEST_PED_WEAPON(PLAYER_PED_ID()), FALSE) ELSE SET_CURRENT_PED_WEAPON(PLAYER_PED_ID(), beforeCutWeaponType, FALSE) ENDIF TASK_PUT_PED_DIRECTLY_INTO_COVER(PLAYER_PED_ID(), << -803.0251, 179.8324, 75.7408 >>, -1, TRUE, 0.5, TRUE, TRUE, cpHallway) FORCE_PED_AI_AND_ANIMATION_UPDATE(PLAYER_PED_ID(), TRUE) IF WAS_CUTSCENE_SKIPPED() SET_GAMEPLAY_CAM_RELATIVE_HEADING(-90.0) ENDIF bDialogueDisplayed = FALSE i_current_event = 0 //WAIT(3000) REPLAY_STOP_EVENT() bComingOutOfcutscene = TRUE mission_stage = STAGE_FIGHT_INCOMING_BAD_GUYS ENDIF BREAK ENDSWITCH ENDPROC STRUCT SET_PIECE_COP VEHICLE_INDEX thisCar PED_INDEX thisDriver PED_INDEX thisPassenger PED_INDEX thisPassengerBackLeft PED_INDEX thisPassengerBackRight AI_BLIP_STRUCT blipDriver AI_BLIP_STRUCT blipPassenger AI_BLIP_STRUCT blipPassengerBackLeft AI_BLIP_STRUCT blipPassengerBackRight ENDSTRUCT //SET_PIECE_COP merryWeatherBike SET_PIECE_COP merryWeatherCar SET_PIECE_COP merryWeatherCar2 PROC INIT_SET_PIECE_CAR(SET_PIECE_COP &thisSetpiece, MODEL_NAMES carModel, INT iRec, STRING stRec, FLOAT fSkipTime = 3000.0, FLOAT fPlayBackSpeed = 1.0) MODEL_NAMES thisPedModel = mnGoonModel thisSetpiece.thisCar = CREATE_VEHICLE(carModel, <<0.0, 0.0, 0.0>>) SET_VEHICLE_ENGINE_ON(thisSetpiece.thisCar, TRUE, TRUE) SET_ENTITY_HEALTH(thisSetpiece.thiscar, 500) ADD_ENTITY_TO_AUDIO_MIX_GROUP(thisSetpiece.thisCar, "MI_4_ENEMY_CARS_GROUP") IF carModel = MESA3 thisSetpiece.thisDriver = CREATE_PED_INSIDE_VEHICLE(thisSetpiece.thisCar, PEDTYPE_MISSION, thisPedModel ) thisSetpiece.thisPassenger = CREATE_PED_INSIDE_VEHICLE(thisSetpiece.thisCar, PEDTYPE_MISSION, thisPedModel, VS_FRONT_RIGHT ) thisSetpiece.thisPassengerBackLeft = CREATE_PED_INSIDE_VEHICLE(thisSetpiece.thisCar, PEDTYPE_MISSION, thisPedModel, VS_BACK_LEFT ) thisSetpiece.thisPassengerBackRight = CREATE_PED_INSIDE_VEHICLE(thisSetpiece.thisCar, PEDTYPE_MISSION, thisPedModel, VS_BACK_RIGHT) ELSE thisSetpiece.thisDriver = CREATE_PED_INSIDE_VEHICLE(thisSetpiece.thisCar, PEDTYPE_MISSION, thisPedModel ) thisSetpiece.thisPassenger = CREATE_PED_INSIDE_VEHICLE(thisSetpiece.thisCar, PEDTYPE_MISSION, thisPedModel, VS_FRONT_RIGHT ) ENDIF START_PLAYBACK_RECORDED_VEHICLE(thisSetpiece.thisCar, iRec, stRec) SKIP_TIME_IN_PLAYBACK_RECORDED_VEHICLE(thisSetpiece.thisCar, fSkipTime) SET_PLAYBACK_SPEED(thisSetpiece.thisCar, fPlayBackSpeed) SET_ENTITY_PROOFS(thisSetpiece.thisCar, FALSE, FALSE, FALSE, TRUE, FALSE) REMOVE_VEHICLE_RECORDING(iRec, stRec) //Test, hopefully this will be held in memory when needed and then auto cleaned up this way. SET_VEHICLE_LIGHTS(thisSetpiece.thisCar, SET_VEHICLE_LIGHTS_ON) SET_VEHICLE_FULLBEAM(thisSetpiece.thisCar, TRUE) //SET_VEHICLE_CAN_BE_TARGETTED(thisSetpiece.thisCar, TRUE) //SET_ENTITY_IS_TARGET_PRIORITY(thisSetpiece.thisCar, TRUE) SET_PED_AS_MERRYWEATHER(thisSetpiece.thisDriver, WEAPONTYPE_CARBINERIFLE) SET_PED_AS_MERRYWEATHER(thisSetpiece.thisPassenger, WEAPONTYPE_PISTOL) IF DOES_ENTITY_EXIST(thisSetpiece.thisPassengerBackLeft) SET_PED_AS_MERRYWEATHER(thisSetpiece.thisPassengerBackLeft, WEAPONTYPE_CARBINERIFLE) ENDIF IF DOES_ENTITY_EXIST(thisSetpiece.thisPassengerBackRight) SET_PED_AS_MERRYWEATHER(thisSetpiece.thisPassengerBackRight, WEAPONTYPE_PISTOL) ENDIF #IF IS_DEBUG_BUILD TEXT_LABEL_63 debugName = stRec debugName += iRec SET_VEHICLE_NAME_DEBUG(thisSetpiece.thisCar, debugName) debugName += " Drv" SET_PED_NAME_DEBUG(thisSetpiece.thisDriver, debugName) IF DOES_ENTITY_EXIST(thisSetpiece.thisPassenger) debugName = stRec debugName += iRec debugName += " Pass" SET_PED_NAME_DEBUG(thisSetpiece.thisPassenger, debugName) ENDIF IF DOES_ENTITY_EXIST(thisSetpiece.thisPassengerBackLeft) debugName = stRec debugName += iRec debugName += " PassBL" SET_PED_NAME_DEBUG(thisSetpiece.thisPassengerBackLeft, debugName) ENDIF IF DOES_ENTITY_EXIST(thisSetpiece.thisPassengerBackRight) debugName = stRec debugName += iRec debugName += " PassBR" SET_PED_NAME_DEBUG(thisSetpiece.thisPassengerBackRight, debugName) ENDIF #ENDIF ENDPROC //FUNC BOOL CHECK_SET_PIECE_FOR_BLIP_REMOVAL(SET_PIECE_COP &thisSetpiece) // // IF IS_PED_INJURED(thisSetpiece.thisDriver) // IF DOES_BLIP_EXIST(thisSetpiece.blipDriver) // REMOVE_BLIP(thisSetpiece.blipDriver) // ENDIF // ENDIF // IF IS_PED_INJURED(thisSetpiece.thisPassenger) // IF DOES_BLIP_EXIST(thisSetpiece.blipPassenger) // REMOVE_BLIP(thisSetpiece.blipPassenger) // ENDIF // ENDIF // // IF IS_PED_INJURED(thisSetpiece.thisPassengerBackLeft) // IF DOES_BLIP_EXIST(thisSetpiece.blipPassengerBackLeft) // REMOVE_BLIP(thisSetpiece.blipPassengerBackLeft) // ENDIF // ENDIF // // IF IS_PED_INJURED(thisSetpiece.thisPassengerBackRight) // IF DOES_BLIP_EXIST(thisSetpiece.blipPassengerBackRight) // REMOVE_BLIP(thisSetpiece.blipPassengerBackRight) // ENDIF // ENDIF // // IF DOES_ENTITY_EXIST(thisSetpiece.thisCar) // IF NOT IS_ENTITY_DEAD(thisSetpiece.thisCar) // // IF NOT IS_PLAYBACK_GOING_ON_FOR_VEHICLE(thisSetpiece.thisCar) // SET_ENTITY_IS_TARGET_PRIORITY(thisSetpiece.thisCar, FALSE) // SET_VEHICLE_CAN_BE_TARGETTED(thisSetpiece.thisCar, FALSE) // ENDIF // // IF (IS_PED_INJURED(thisSetpiece.thisDriver) OR NOT IS_PED_IN_VEHICLE(thisSetpiece.thisDriver, thisSetpiece.thisCar)) // AND (IS_PED_INJURED(thisSetpiece.thisPassenger) OR NOT IS_PED_IN_VEHICLE(thisSetpiece.thisPassenger, thisSetpiece.thisCar)) // AND (IS_PED_INJURED(thisSetpiece.thisPassengerBackLeft) OR NOT IS_PED_IN_VEHICLE(thisSetpiece.thisPassengerBackLeft, thisSetpiece.thisCar)) // AND (IS_PED_INJURED(thisSetpiece.thisPassengerBackRight) OR NOT IS_PED_IN_VEHICLE(thisSetpiece.thisPassengerBackRight, thisSetpiece.thisCar)) // SET_ENTITY_IS_TARGET_PRIORITY(thisSetpiece.thisCar, FALSE) // SET_VEHICLE_CAN_BE_TARGETTED(thisSetpiece.thisCar, FALSE) // ENDIF // ENDIF // ENDIF // // IF NOT DOES_BLIP_EXIST(thisSetpiece.blipDriver) // AND NOT DOES_BLIP_EXIST(thisSetpiece.blipPassenger) // AND NOT DOES_BLIP_EXIST(thisSetpiece.blipPassengerBackLeft) // AND NOT DOES_BLIP_EXIST(thisSetpiece.blipPassengerBackRight) // RETURN TRUE // ELSE // RETURN FALSE // ENDIF // //ENDFUNC PROC CLEANUP_SET_PIECE_CAR(SET_PIECE_COP &thisSetpiece, BOOL bDelete = FALSE) IF NOT bDelete SET_VEHICLE_AS_NO_LONGER_NEEDED(thisSetpiece.thisCar) SET_PED_AS_NO_LONGER_NEEDED(thisSetpiece.thisDriver) SET_PED_AS_NO_LONGER_NEEDED(thisSetpiece.thisPassenger) SET_PED_AS_NO_LONGER_NEEDED(thisSetpiece.thisPassengerBackLeft) SET_PED_AS_NO_LONGER_NEEDED(thisSetpiece.thisPassengerBackright) ELSE DELETE_VEHICLE(thisSetpiece.thisCar) DELETE_PED(thisSetpiece.thisDriver) DELETE_PED(thisSetpiece.thisPassenger) DELETE_PED(thisSetpiece.thisPassengerBackLeft) DELETE_PED(thisSetpiece.thisPassengerBackright) ENDIF ENDPROC PROC SET_PED_RUN_INTO_POSITION_WHILE_SHOOTING_AT_ENTITY(PED_INDEX thisPed, VECTOR vRunTo, ENTITY_INDEX entityIndex, FLOAT fMoveBlend = PEDMOVE_RUN) SEQUENCE_INDEX runSeq IF NOT IS_PED_INJURED(thisPed) SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(thisPed, TRUE) SET_PED_SPHERE_DEFENSIVE_AREA(thisPed, vRunTo, 2.5) SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(thisPed, TRUE) CLEAR_PED_TASKS(thisPed) OPEN_SEQUENCE_TASK(runSeq) //TASK_PAUSE(NULL, iPauseTime) IF NOT IS_ENTITY_DEAD(entityIndex) TASK_GO_TO_COORD_WHILE_AIMING_AT_ENTITY(NULL, vRunTo, entityIndex, fMoveBlend, TRUE)// DEFAULT_TIME_BEFORE_WARP, DEFAULT_NAVMESH_RADIUS, ENAV_NO_STOPPING) ENDIF TASK_SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(NULL, FALSE) TASK_COMBAT_HATED_TARGETS_AROUND_PED(NULL, 100.00) CLOSE_SEQUENCE_TASK(runSeq) TASK_PERFORM_SEQUENCE(thisPed, runSeq) CLEAR_SEQUENCE_TASK(runSeq) ENDIF ENDPROC //BOOL bBikeCombatting BOOL bCarCombatting BOOL bOutsideGuySpawned = FALSE BOOL bGuyRunningUPDriveWayTriggered = FALSE INT iTimeOfDriveWayGuysTriggered COVERPOINT_INDEX cpLounge COVERPOINT_INDEX cpKitchen COVERPOINT_INDEX cpKitchen2 COVERPOINT_INDEX cpGarden1 COVERPOINT_INDEX cpGarden2 COVERPOINT_INDEX cpDiningRoom //INT iSkyLightSmashSound BOOL bMichaelWentInBathroom FUNC BOOL DID_MICHAEL_GO_IN_BATHROOM() IF bMichaelWentInBathroom RETURN bMichaelWentInBathroom ENDIF bMichaelWentInBathroom = IS_ENTITY_AT_COORD(PLAYER_PED_ID(), <<-802.5521, 168.2117, 75.7407>>, <<1.5, 1.5, 2.5>>) //IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-802.420715,167.887558,75.006653>>, <<-804.393738,172.011993,79.739891>>, 2.000000) //bathroom RETURN bMichaelWentInBathroom ENDFUNC INT iOnlyPlayOnce BOOL bMichaelOutside INT iAmandaConvoCounter INT iTimeOfStartShooting PROC HANDLE_SHOOTOUT_DIALOGUE() IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData, IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF) AND NOT IS_AMBIENT_SPEECH_PLAYING(PLAYER_PED_ID()) AND i_current_event > 5 AND TIMERA() > 6000 AND TIMERB() > 4400 IF IS_PED_SHOOTING(PLAYER_PED_ID()) OR (GET_GAME_TIMER() - iTimeOfStartShooting) < 3000 //OR IS_BULLET_IN_AREA(GET_ENTITY_COORDS(PLAYER_PED_ID()), 10.0) //OR IS_ANY_PED_NEAR_POINT(GET_ENTITY_COORDS(PLAYER_PED_ID()), 15.0) //SETTIMERA(0) iTimeOfStartShooting = GET_GAME_TIMER() IF IS_ENTITY_AT_COORD(PLAYER_PED_ID(), << -802.8893, 179.8200, 76.7408 >>, <<4.5, 4.0, 2.0>>) AND iAmandaConvoCounter < 3 IF CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_COWER", CONV_PRIORITY_VERY_HIGH) iAmandaConvoCounter++ SETTIMERA(0) ENDIF ELSE IF GET_RANDOM_BOOL() PED_INDEX piThisPed GET_CLOSEST_PED(GET_ENTITY_COORDS(PLAYER_PED_ID()), 4.0, FALSE, TRUE, piThisPed) IF DOES_ENTITY_EXIST(piThisPed) IF GET_RANDOM_BOOL() ADD_PED_FOR_DIALOGUE(myScriptedSpeech, 6, piThisPed, "MERRYWEATHER7") IF CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_MERRYDI", CONV_PRIORITY_VERY_HIGH) SETTIMERB(0) ENDIF ELSE ADD_PED_FOR_DIALOGUE(myScriptedSpeech, 8, piThisPed, "MERRYWEATHER8") IF CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_MERRYD2", CONV_PRIORITY_VERY_HIGH) SETTIMERB(0) ENDIF ENDIF ENDIF ELSE IF bMichaelOutside IF GET_RANDOM_INT_IN_RANGE(0, 10) > 7//Make play less often. IF CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_OUTSIDE", CONV_PRIORITY_VERY_HIGH) SETTIMERB(0) ENDIF ELSE SETTIMERB(0) ENDIF ELSE IF CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_MYHOUSE", CONV_PRIORITY_VERY_HIGH) SETTIMERB(0) ENDIF ENDIF ENDIF ENDIF ELSE IF NOT bMichaelOutside IF iOnlyPlayOnce = 0 IF CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_DOOR1", CONV_PRIORITY_VERY_HIGH) iOnlyPlayOnce++ SETTIMERA(0) ENDIF ENDIF IF iOnlyPlayOnce = 1 IF CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_DOOR2", CONV_PRIORITY_VERY_HIGH) iOnlyPlayOnce++ SETTIMERA(0) ENDIF ENDIF IF iOnlyPlayOnce = 2 IF CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_DOOR3", CONV_PRIORITY_VERY_HIGH) iOnlyPlayOnce++ SETTIMERA(0) ENDIF ENDIF IF iOnlyPlayOnce = 3 IF CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_DOOR4", CONV_PRIORITY_VERY_HIGH) iOnlyPlayOnce++ SETTIMERA(0) ENDIF ENDIF //IF NOT bMichaelOutside // IF iOnlyPlayOnce = 4 // IF CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_JCOWER", CONV_PRIORITY_VERY_HIGH) // iOnlyPlayOnce++ // SETTIMERA(0) // ENDIF // ENDIF IF iOnlyPlayOnce = 4 IF CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_TCOWER", CONV_PRIORITY_VERY_HIGH) iOnlyPlayOnce++ SETTIMERA(0) ENDIF ENDIF IF iOnlyPlayOnce = 5 IF CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_COWER", CONV_PRIORITY_VERY_HIGH) iOnlyPlayOnce = 6 SETTIMERA(0) ENDIF ENDIF ENDIF ENDIF ENDIF ENDPROC BOOL bPedsNowAdvancing BOOL bGuysInCarAdvancing INT iTimeOfGuysSpawning INT iTimeCarStopped //BOOL bIsLocked //FLOAT fOpenRatio1 //FLOAT fOpenRatio2 //FLOAT fOpenRatioLastFrame1 //FLOAT fOpenRatioLastFrame2 INT iTimeOfSeeingGuy4 SEQUENCE_INDEX seqGetOutOfMichaelsRoom BOOL bGuy1MovedIntoDiningRoom = FALSE //BOOL bGuy2MovedIntoDiningRoom = FALSE SEQUENCE_INDEX seqMoveIntoDiningRoom BOOL bAlternateSides BOOL bDiningRoomGuyJustShot = TRUE BOOL bLoungeGuyPoppedOut = FALSE PROC MAKE_PED_COME_LOOKING(PED_INDEX thisPed) IF NOT IS_PED_INJURED(thisPed) SET_PED_COMBAT_RANGE(thisPed, CR_NEAR) REMOVE_PED_DEFENSIVE_AREA(thisPed) SET_PED_COMBAT_MOVEMENT(thisPed, CM_WILLADVANCE) SET_PED_COMBAT_ATTRIBUTES(thisPed, CA_CAN_CHARGE, TRUE) SET_PED_COMBAT_ATTRIBUTES(thisPed, CA_AGGRESSIVE, TRUE) ENDIF ENDPROC BOOL bPed4WillCharge = FALSE INT iTimeOfGuys4and5 BOOL bGuys4And5ComeLooking = FALSE //INT iTimeOf2ndCarArriving //BOOL bExtraDiningRoomBusterGuy = FALSE INT iTimeOfGuysRunningInDiningRoom //INT iTimeOfExtraDiningGuySpawned //BOOL bExtraDiningGuyAdvancing /// PURPOSE: Check for entity in front garden of Michael's house /// /// PARAMS: /// thisEntity - /// RETURNS: /// INT iDeathCount INT iAliveCount PROC UPDATE_BLIPS_AND_DEATH_COUNT() INT i iDeathCount = 0 iAliveCount = 0 FOR i = 0 TO NUMBER_OF_MERRYWEATHER -1 IF IS_PED_INJURED(pedMerryWeather[i]) OR IS_PED_HURT(pedMerryWeather[i]) iDeathCount++ ELSE IF DOES_ENTITY_EXIST(pedMerryWeather[i]) iAliveCount++ ENDIF IF IS_PED_IN_WRITHE(pedMerryWeather[i]) APPLY_DAMAGE_TO_PED(pedMerryWeather[i], 100, TRUE) ENDIF ENDIF UPDATE_AI_PED_BLIP(pedMerryWeather[i], blipPedMerryWeather[i], -1, NULL, (i = 4)) ENDFOR ENDPROC BOOL bCloseFrontDoors OBJECT_INDEX oiGrenadeFake BOOL bForceAppliedToFakeGrenade SEQUENCE_INDEX seqMoveThroughFrontDoor INT iTimeOfSpawningExtraGuyComingInDoor INT iExtraGuy2SpawnTimer = 3000 INT iSpawnTimerGuy13 = 6500 INT iExtraGuyCounter OBJECT_INDEX oiCameraDummy BOOL bObjectivePrinted = FALSE BOOL bStartSpawningGuys13 = FALSE //BOOL bSetBlanks = FALSE BOOl bGoOutsideTextPrinted PROC stageFightIncomingBadGuys() REPLAY_DISABLE_CAMERA_MOVEMENT_THIS_FRAME() //Fix for bug 2195216 INT i SET_STATE_OF_CLOSEST_DOOR_OF_TYPE(PROP_BH1_48_BACKDOOR_L, <<-796.57, 177.22, 73.04>>, TRUE, 1.0) SET_STATE_OF_CLOSEST_DOOR_OF_TYPE(PROP_BH1_48_BACKDOOR_R, <<-794.51, 178.01, 73.04>>, TRUE, -1.0) // //Close Traceys door. // IF DOES_OBJECT_OF_TYPE_EXIST_AT_COORDS( <<-802.702,176.176,76.890>>, 2.0, V_ILEV_MM_DOORDAUGHTER) // SET_STATE_OF_CLOSEST_DOOR_OF_TYPE(V_ILEV_MM_DOORDAUGHTER, <<-802.702,176.176,76.890>>, TRUE, 0.0) // ENDIF //Back doors IF DOES_OBJECT_OF_TYPE_EXIST_AT_COORDS(<<-793.394,180.507,73.040>>, 2.0, prop_bh1_48_backdoor_l) SET_STATE_OF_CLOSEST_DOOR_OF_TYPE(prop_bh1_48_backdoor_l, <<-793.394,180.507,73.040>>, TRUE, 1.0) ENDIF IF DOES_OBJECT_OF_TYPE_EXIST_AT_COORDS(<<-794.185,182.568,73.040>>, 2.0, prop_bh1_48_backdoor_r) SET_STATE_OF_CLOSEST_DOOR_OF_TYPE(prop_bh1_48_backdoor_r, <<-794.185,182.568,73.040>>, TRUE, -1.0) ENDIF IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-817.345337,175.497055,70.260384>>, <<-794.602661,184.461853,82.473396>>, 12.000000) bMichaelOutside = FALSE ELSE bMichaelOutside = TRUE ENDIF //Stick Tracey's car nearby as cover. IF NOT DOES_ENTITY_EXIST(carTracey) REQUEST_NPC_VEH_MODEL(CHAR_TRACEY) IF HAS_NPC_VEH_MODEL_LOADED(CHAR_TRACEY) CREATE_NPC_VEHICLE(carTracey, CHAR_TRACEY, <<-815.0861, 163.3637, 70.3941>>, 195.6004) ENDIF ENDIF SUPPRESS_CONTEXT_BUTTON_ACTIONS_THIS_FRAME() //PRINTLN("H:", GET_GAMEPLAY_CAM_RELATIVE_HEADING()) //PRINTLN("P:", GET_GAMEPLAY_CAM_RELATIVE_PITCH()) //[Script] [00876599] H:-78.031601 //[Script] [00876599] P:-11.594591 IF IS_SPECIAL_ABILITY_ACTIVE(PLAYER_ID()) g_replay.iReplayInt[2] = 1 ENDIF IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData, IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF) AND bObjectivePrinted = FALSE AND i_current_event >= 3 PRINT_NOW("SOL5_KILLBAD", DEFAULT_GOD_TEXT_TIME, 0) bObjectivePrinted = TRUE ENDIF SWITCH i_current_event CASE 0 LOCK_AUTOMATIC_DOOR_OPEN(AUTODOOR_MICHAEL_MANSION_GATE, TRUE, FALSE) SET_WEATHER_TYPE_NOW_PERSIST("THUNDER") oiCameraDummy = CREATE_OBJECT(PROP_LD_TEST_01, GET_GAMEPLAY_CAM_COORD()) SET_ENTITY_COLLISION(oiCameraDummy, FALSE) SET_ENTITY_VISIBLE(oiCameraDummy, FALSE) SET_INSTANCE_PRIORITY_HINT(INSTANCE_HINT_SHOOTING) IF NOT IS_DOOR_REGISTERED_WITH_SYSTEM(ENUM_TO_INT(DOORHASH_M_MANSION_DAUGHTER)) ADD_DOOR_TO_SYSTEM(ENUM_TO_INT(DOORHASH_M_MANSION_DAUGHTER),V_ILEV_MM_DOORDAUGHTER, <<-802.702,176.176,76.890>>) ENDIF DOOR_SYSTEM_SET_OPEN_RATIO(ENUM_TO_INT(DOORHASH_M_MANSION_DAUGHTER), 0.0) DOOR_SYSTEM_SET_DOOR_STATE(ENUM_TO_INT(DOORHASH_M_MANSION_DAUGHTER), DOORSTATE_FORCE_LOCKED_THIS_FRAME, TRUE, TRUE) IF NOT IS_DOOR_REGISTERED_WITH_SYSTEM(ENUM_TO_INT(DOORHASH_M_MANSION_BW)) ADD_DOOR_TO_SYSTEM(ENUM_TO_INT(DOORHASH_M_MANSION_BW),V_ILEV_MM_WINDOWWC, <<-802.73333, 167.5041, 77.5824>>) ENDIF DOOR_SYSTEM_SET_OPEN_RATIO(ENUM_TO_INT(DOORHASH_M_MANSION_BW), 0.0) DOOR_SYSTEM_SET_DOOR_STATE(ENUM_TO_INT(DOORHASH_M_MANSION_BW), DOORSTATE_UNLOCKED, TRUE, TRUE) IF DOES_ENTITY_EXIST(carMichaelIsIn) IF NOT IS_ENTITY_DEAD(carMichaelIsIn) IF NOT IS_VEHICLE_IN_PLAYERS_GARAGE(carMichaelIsIn, CHAR_MICHAEL, FALSE) SET_ENTITY_COORDS(carMichaelIsIn, <<-829.7350, 164.0143, 68.2444>>) SET_ENTITY_HEADING(carMichaelIsIn, 345.6341 ) SET_VEHICLE_ON_GROUND_PROPERLY(carMichaelIsIn) ENDIF ENDIF ENDIF //bush in back gardne ADD_COVER_BLOCKING_AREA(<<-800.4777, 165.0952, 70.1682>>, <<-797.3882, 170.1375, 72.7098>>, TRUE, TRUE, TRUE) //bush in gap in front garden. ADD_COVER_BLOCKING_AREA(<<-821.9898, 150.2125, 70.0244>>, <<-819.2112, 154.3554, 72.0284>>, TRUE, TRUE, TRUE) START_AUDIO_SCENE("MI_4_DEFEND_HOUSE_MAIN") SPECIAL_ABILITY_CHARGE_ABSOLUTE(PLAYER_ID(), 30, TRUE) iAmandaConvoCounter = 0 iExtraGuyCounter = 0 ADD_PED_FOR_DIALOGUE(myScriptedSpeech, 1, NULL, "JIMMY") SET_PLAYER_ANGRY(PLAYER_PED_ID(), TRUE) SET_CREATE_RANDOM_COPS(FALSE) SET_CREATE_RANDOM_COPS_ON_SCENARIOS(FALSE) iExtraGuy2SpawnTimer = 4000 bPedsNowAdvancing = FALSE bGuysInCarAdvancing = FALSE bOutsideGuySpawned = FALSE bGuyRunningUPDriveWayTriggered = FALSE //bGuy2MovedIntoDiningRoom = FALSE bPedsNowAdvancing = FALSE bGuysInCarAdvancing = FALSE bLoungeGuyPoppedOut = FALSE bPed4WillCharge = FALSE bGuys4And5ComeLooking = FALSE bStartSpawningGuys13 = FALSE bGoOutsideTextPrinted = FALSE iExtraBadGuysComingIntoDiningRoomCount = 0 FOR i = 0 TO NUMBER_OF_MERRYWEATHER -1 bMWCharging[i] = FALSE ENDFOR RESET_MISSION_STATS_ENTITY_WATCH() IF NOT IS_ENTITY_DEAD(pedHostagetakerTracey) APPLY_DAMAGE_TO_PED(pedHostagetakerTracey, 1000, TRUE) ENDIF SET_PED_AS_NO_LONGER_NEEDED(pedHostagetakerAmanda) //bBikeCombatting = FALSE bCarCombatting = FALSE REQUEST_STAGE_ASSETS(STAGE_FIGHT_INCOMING_BAD_GUYS) SET_REPLAY_MID_MISSION_STAGE_WITH_NAME(6, "STAGE_FIGHT_INCOMING_BAD_GUYS", TRUE) IF cpHallway <> NULL REMOVE_COVER_POINT(cpHallway) ENDIF cpHallway = ADD_COVER_POINT(<<-802.83807, 179.84833, 75.7407>>, 16.5058, COVUSE_WALLTOLEFT, COVHEIGHT_TOOHIGH, COVARC_300TO0, TRUE) cpLounge = ADD_COVER_POINT(<<-806.61963, 176.69244, 71.8347>>, 30.2791 , COVUSE_WALLTORIGHT, COVHEIGHT_TOOHIGH, COVARC_300TO0, FALSE) cpDiningRoom = ADD_COVER_POINT(<<-798.37781, 177.98271, 71.83471>>, 115.9965, COVUSE_WALLTOLEFT, COVHEIGHT_TOOHIGH, COVARC_300TO0, FALSE) cpkitchen = ADD_COVER_POINT(<<-798.1015, 185.0172, 71.6056 >>, 109.7301, COVUSE_WALLTORIGHT, COVHEIGHT_LOW, COVARC_300TO0, FALSE) cpkitchen2 = ADD_COVER_POINT(<<-803.3184, 183.6969, 71.6055>>, 120.6245 , COVUSE_WALLTORIGHT, COVHEIGHT_LOW, COVARC_300TO0, FALSE) cpGarden1 = ADD_COVER_POINT(<< -792.2584, 158.9243, 69.6745 >>, 358.7681, COVUSE_WALLTOLEFT, COVHEIGHT_LOW, COVARC_300TO0, FALSE) cpGarden2 = ADD_COVER_POINT(<< -782.0049, 158.5722, 66.4747 >>, 120.1811, COVUSE_WALLTORIGHT, COVHEIGHT_LOW, COVARC_300TO0, FALSE) IF Get_Fail_Weapon(0) = WEAPONTYPE_UNARMED OR Get_Fail_Weapon(0) = WEAPONTYPE_INVALID IF beforeCutWeaponType = WEAPONTYPE_UNARMED SET_CURRENT_PED_WEAPON(PLAYER_PED_ID(), GET_BEST_PED_WEAPON(PLAYER_PED_ID()), FALSE) ELSE SET_CURRENT_PED_WEAPON(PLAYER_PED_ID(), beforeCutWeaponType, FALSE) ENDIF ELSE SET_CURRENT_PED_WEAPON(PLAYER_PED_ID(), Get_Fail_Weapon(0), FALSE) ENDIF bCloseFrontDoors = FALSE bForceAppliedToFakeGrenade = FALSE bPed4WillCharge = FALSE //Create first ped pedMerryWeather[16] = CREATE_PED(PEDTYPE_MISSION, getRandomGoonModel(), <<-809.6782, 182.3056, 72.2454>>, 340.7195) SET_PED_LEG_IK_MODE(pedMerryWeather[16], LEG_IK_FULL) SET_PED_AS_MERRYWEATHER(pedMerryWeather[16], WEAPONTYPE_PISTOL) OPEN_SEQUENCE_TASK(seqGetOutOfMichaelsRoom) TASK_PAUSE(NULL, 250) TASK_GO_TO_COORD_WHILE_AIMING_AT_ENTITY(NULL, <<-806.3740, 183.1262, 74.0027>>, PLAYER_PED_ID(), PEDMOVE_RUN, TRUE) TASK_SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(NULL, FALSE) TASK_COMBAT_PED(NULL, PLAYER_PED_ID()) CLOSE_SEQUENCE_TASK(seqGetOutOfMichaelsRoom) TASK_PERFORM_SEQUENCE(pedMerryWeather[16], seqGetOutOfMichaelsRoom) CLEAR_SEQUENCE_TASK(seqGetOutOfMichaelsRoom) SET_PED_SPHERE_DEFENSIVE_AREA(pedMerryWeather[16], <<-806.8599, 183.7816, 74.0032>>, 1.0, TRUE) TASK_COMBAT_HATED_TARGETS_AROUND_PED(pedMerryWeather[16], 50.0) IF bComingOutOfcutscene = FALSE //Comeing out of a cutscene skip. SET_ENTITY_COORDS(PLAYER_PED_ID(), <<-802.83807, 179.84833, 75.7407>>) SET_ENTITY_HEADING(PLAYER_PED_ID(), 105.5291) //WAIT(0) //TASK_PUT_PED_DIRECTLY_INTO_COVER(PLAYER_PED_ID(), << -802.8893, 179.8200, 75.7408 >>, 5000, FALSE, 0, TRUE, TRUE, cpHallway) //TASK_SEEK_COVER_TO_COVER_POINT(PLAYER_PED_ID(), cpHallway, <<-815.6069, 178.5089, 71.1531>>, 2000) //TASK_PUT_PED_DIRECTLY_INTO_COVER(PLAYER_PED_ID(), << -803.0251, 179.8324, 75.7408 >>, -1, TRUE, 0.5, TRUE, TRUE, cpHallway) TASK_PUT_PED_DIRECTLY_INTO_COVER(PLAYER_PED_ID(), <<-802.83807, 179.84833, 75.7407>>, -1, TRUE, 0.5, TRUE, TRUE, cpHallway) FORCE_PED_AI_AND_ANIMATION_UPDATE(PLAYER_PED_ID(), TRUE) SET_PLAYER_CLOTH_PIN_FRAMES(PLAYER_ID(), 1) SET_GAMEPLAY_CAM_RELATIVE_HEADING(-90.0) ENDIF REPLAY_RECORD_BACK_FOR_TIME(0.0, 5.0, REPLAY_IMPORTANCE_HIGHEST) //intMichaelsHouse = GET_INTERIOR_AT_COORDS(<< -806.9643, 182.9719, 77.7416 >>) FADE_IN_IF_NEEDED() ADD_PED_FOR_DIALOGUE(myScriptedSpeech, 6, pedMerryWeather[16], "MERRYWEATHER7") CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_MERRYIN", CONV_PRIORITY_VERY_HIGH) bObjectivePrinted = FALSE TRIGGER_MUSIC_EVENT("SOL5_BAD_GUYS") iTimeOfGuysSpawning = GET_GAME_TIMER() i_current_event = 3 BREAK CASE 3 UPDATE_BLIPS_AND_DEATH_COUNT() //Lock Open Front doors IF DOES_OBJECT_OF_TYPE_EXIST_AT_COORDS( <<-816.72, 179.10, 72.83>>, 2.0, V_ILEV_MM_DOORM_L) SET_STATE_OF_CLOSEST_DOOR_OF_TYPE(V_ILEV_MM_DOORM_L, <<-816.72, 179.10, 72.83>>, TRUE, 1.0) ENDIF IF DOES_OBJECT_OF_TYPE_EXIST_AT_COORDS( <<-816.11, 177.51, 72.83>>, 2.0, V_ILEV_MM_DOORM_R) SET_STATE_OF_CLOSEST_DOOR_OF_TYPE(V_ILEV_MM_DOORM_R, <<-816.11, 177.51, 72.83>>, TRUE, -1.0) ENDIF //Have the guys get more aggressive if you wait for ages. IF GET_GAME_TIMER() - iTimeOfGuysSpawning > 5000 IF NOT IS_PED_INJURED(pedMerryWeather[16]) MAKE_PED_COME_LOOKING(pedMerryWeather[16]) ENDIF iTimeOfGuysSpawning = GET_GAME_TIMER() ENDIF //2nd guy runs out of Michaels bedroom IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(pedMerryWeather[16], PLAYER_PED_ID()) OR IS_PED_HURT(pedMerryWeather[16]) OR IS_PED_INJURED(pedMerryWeather[16]) OR IS_ENTITY_AT_ENTITY(pedMerryWeather[16], PLAYER_PED_ID(), <<2.0, 2.0, 2.0>>) OR (IS_SPHERE_VISIBLE(<<-809.2635, 177.0600, 75.7407>>, 0.5) AND GET_GAME_TIMER() - iTimeOfGuysSpawning > 1000) i_current_event++ // IF CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_AMNWARN", CONV_PRIORITY_VERY_HIGH) // // //// IF NOT IS_PED_INJURED(pedMerryWeather[1]) // pedMerryWeather[1] = CREATE_PED(PEDTYPE_MISSION, getRandomGoonModel(), <<-810.5667, 179.2355, 75.7407>>, 208.5543) // SET_PED_AS_MERRYWEATHER(pedMerryWeather[1], WEAPONTYPE_PISTOL) // SET_PED_SPHERE_DEFENSIVE_AREA(pedMerryWeather[1], << -809.2069, 175.7380, 75.7407 >>, 1.0) // //SET_PED_COMBAT_ATTRIBUTES(pedMerryWeather[1], CA_OPEN_COMBAT_WHEN_DEFENSIVE_AREA_IS_REACHED, TRUE) // SET_COMBAT_FLOAT(pedMerryWeather[1], CCF_STRAFE_WHEN_MOVING_CHANCE, 1.0) // SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedMerryWeather[1], TRUE) // // OPEN_SEQUENCE_TASK(seqGetOutOfMichaelsRoom) // TASK_PAUSE(NULL, 500)//100) // TASK_GO_TO_COORD_WHILE_AIMING_AT_ENTITY(NULL, << -809.2069, 175.7380, 75.7407 >>, PLAYER_PED_ID(), PEDMOVE_RUN, TRUE) // TASK_SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(NULL, FALSE) // TASK_COMBAT_PED(NULL, PLAYER_PED_ID()) // CLOSE_SEQUENCE_TASK(seqGetOutOfMichaelsRoom) // TASK_PERFORM_SEQUENCE(pedMerryWeather[1], seqGetOutOfMichaelsRoom) // CLEAR_SEQUENCE_TASK(seqGetOutOfMichaelsRoom) // // SET_PED_CHANCE_OF_FIRING_BLANKS(pedMerryWeather[1], 0.8, 0.8) // MAKE_PED_COME_LOOKING(pedMerryWeather[1]) // // PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(pedMerryWeather[1], "GENERIC_WAR_CRY", "s_m_y_genericmarine_01_black_mini_01", SPEECH_PARAMS_FORCE) // ADD_PED_FOR_DIALOGUE(myScriptedSpeech, 6, NULL, "MERRYWEATHER6") // // //TASK_COMBAT_HATED_TARGETS_AROUND_PED(pedMerryWeather[1], 50.0) // // ENDIF // i_current_event++ // ENDIF ENDIF BREAK CASE 4 // IF NOT IS_ENTITY_DEAD(pedMerryWeather[1]) // // SET_PED_CAPSULE(pedMerryWeather[1], 0.4) //stop him clipping through door // // IF IS_SPHERE_VISIBLE(GET_ENTITY_COORDS(pedMerryWeather[1]), 0.5) // IF bSetBlanks = FALSE // SET_PED_CHANCE_OF_FIRING_BLANKS(pedMerryWeather[1], 0.6, 0.8) // bSetBlanks = TRUE // ENDIF // PRINTLN("on screen") // ELSE // IF bSetBlanks = TRUE // PRINTLN("off screen") // bSetBlanks = FALSE // ENDIF // SET_PED_CHANCE_OF_FIRING_BLANKS(pedMerryWeather[1], 1.0, 1.0) // ENDIF // ENDIF UPDATE_BLIPS_AND_DEATH_COUNT() //Spawn the door guys and the rest of the house guys. IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-808.820801,184.610107,71.090591>>, <<-807.065613,179.283417,86.242363>>, 7.000000) OR DID_MICHAEL_GO_IN_BATHROOM() OR bMichaelOutside OR GET_GAME_TIMER() - iTimeOfGuysSpawning > 45000 IF IS_REPLAY_IN_PROGRESS() AND g_replay.iReplayInt[1] = 0 //Flag AND g_replay.iReplayInt[2] = 0 //Special ability been used. AND (g_savedGlobals.sFlow.missionSavedData[SP_MISSION_MICHAEL_4].missionFailsNoProgress = 1 OR g_savedGlobals.sFlow.missionSavedData[SP_MISSION_MICHAEL_4].missionFailsNoProgress = 2) IF IS_USING_KEYBOARD_AND_MOUSE(PLAYER_CONTROL) PRINT_HELP("MIC4_SA_KM") ELSE PRINT_HELP("MIC4_SA") ENDIF g_replay.iReplayInt[1] = 1 ENDIF IF CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_GRENADE", CONV_PRIORITY_VERY_HIGH) // pedMerryWeatherDummyGrenade = CREATE_PED(PEDTYPE_MISSION, getRandomGoonModel(), <<-823.1418, 176.1851, 70.1579>>, 286.0137) // GIVE_WEAPON_TO_PED(pedMerryWeatherDummyGrenade, WEAPONTYPE_GRENADE, 1, TRUE, TRUE) // TASK_THROW_PROJECTILE(pedMerryWeatherDummyGrenade,<<-808.2316, 181.1697, 73.6507>>) // SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedMerryWeatherDummyGrenade, TRUE) oiGrenadeFake = CREATE_OBJECT(GET_WEAPONTYPE_MODEL(WEAPONTYPE_GRENADE), <<-817.6454, 177.7025, 73.1987>>) FREEZE_ENTITY_POSITION(oiGrenadeFake, TRUE) iTimeOfGuysSpawning = GET_GAME_TIMER() i_current_event++ ENDIF ENDIF BREAK CASE 5 UPDATE_BLIPS_AND_DEATH_COUNT() //"Throw" the fake grenade... IF bForceAppliedToFakeGrenade = FALSE AND DOES_ENTITY_HAVE_PHYSICS(oiGrenadeFake) AND GET_GAME_TIMER() - iTimeOfGuysSpawning > 1250 AND IS_SPHERE_VISIBLE(GET_ENTITY_COORDS(oiGrenadeFake), 0.5) OR DID_MICHAEL_GO_IN_BATHROOM() FREEZE_ENTITY_POSITION(oiGrenadeFake, FALSE) APPLY_FORCE_TO_ENTITY(oiGrenadeFake, APPLY_TYPE_IMPULSE, NORMALISE_VECTOR(<<-817.6454, 177.7025, 73.1987>> - <<-813.3746, 179.4353, 71.3900>>) * -5.0, <<0.0, 0.0, 0.0>>, 0, TRUE, TRUE, TRUE) bForceAppliedToFakeGrenade = TRUE ENDIF IF GET_GAME_TIMER() - iTimeOfGuysSpawning > 2500 AND bForceAppliedToFakeGrenade = TRUE SET_ENTITY_VISIBLE(oiGrenadeFake, FALSE) DELETE_OBJECT(oiGrenadeFake) ADD_EXPLOSION(<<-813.3746, 179.4353, 71.3900>>, EXP_TAG_GRENADE, 1.0, TRUE, FALSE, 1.0) i_current_event++ ENDIF BREAK CASE 6 UPDATE_BLIPS_AND_DEATH_COUNT() //IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-808.820801,184.610107,71.090591>>, <<-807.065613,179.283417,86.242363>>, 7.000000) //OR DID_MICHAEL_GO_IN_BATHROOM() //OR bMichaelOutside //OR GET_GAME_TIMER() - iTimeOfGuysSpawning > 25000 IF IS_EXPLOSION_IN_SPHERE(EXP_TAG_GRENADE, <<-813.3746, 179.4353, 71.3900>>, 5.0) iTimeOfGuysSpawning = GET_GAME_TIMER() START_AUDIO_SCENE("MI_4_ENEMIES_BREACH_DOOR") pedMerryWeather[2] = CREATE_PED(PEDTYPE_MISSION, getRandomGoonModel(), <<-818.7431, 174.8620, 70.6330>>, 318.7630) pedMerryWeather[3] = CREATE_PED(PEDTYPE_MISSION, getRandomGoonModel(), <<-824.0150, 179.4059, 70.4689>>, 265.8274) SET_PED_AS_MERRYWEATHER(pedMerryWeather[2]) SET_PED_AS_MERRYWEATHER(pedMerryWeather[3], WEAPONTYPE_PISTOL) OPEN_SEQUENCE_TASK(seqMoveThroughFrontDoor) TASK_GO_TO_COORD_WHILE_AIMING_AT_ENTITY(NULL, <<-813.7005, 181.0271, 71.1531>>, PLAYER_PED_ID(), PEDMOVE_RUN, FALSE, 0.5, 5.0, TRUE, ENAV_DONT_AVOID_OBJECTS) TASK_COMBAT_PED(NULL, PLAYER_PED_ID()) CLOSE_SEQUENCE_TASK(seqMoveThroughFrontDoor) TASK_PERFORM_SEQUENCE(pedMerryWeather[2], seqMoveThroughFrontDoor) CLEAR_SEQUENCE_TASK(seqMoveThroughFrontDoor) OPEN_SEQUENCE_TASK(seqMoveThroughFrontDoor) TASK_GO_TO_COORD_WHILE_AIMING_AT_ENTITY(NULL, <<-812.7673, 177.9856, 71.1592>>, PLAYER_PED_ID(), PEDMOVE_RUN, FALSE, 0.5, 5.0, TRUE, ENAV_DONT_AVOID_OBJECTS) TASK_COMBAT_PED(NULL, PLAYER_PED_ID()) CLOSE_SEQUENCE_TASK(seqMoveThroughFrontDoor) TASK_PERFORM_SEQUENCE(pedMerryWeather[3], seqMoveThroughFrontDoor) CLEAR_SEQUENCE_TASK(seqMoveThroughFrontDoor) pedMerryWeather[4] = CREATE_PED(PEDTYPE_MISSION, getRandomGoonModel(), << -800.0967, 178.5484, 71.8348 >>, 112.4967) TASK_PUT_PED_DIRECTLY_INTO_COVER(pedMerryWeather[4], <<-806.7888, 176.5762, 71.8347>>, INFINITE_TASK_TIME, TRUE, 0, TRUE, TRUE, cpLounge) PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(pedMerryWeather[2], "COVER_ME", "s_m_y_genericmarine_01_black_mini_01", SPEECH_PARAMS_FORCE) SET_PED_AS_MERRYWEATHER(pedMerryWeather[4]) SET_PED_NAME_DEBUG(pedMerryWeather[2], "Merry: 2") SET_PED_NAME_DEBUG(pedMerryWeather[3], "Merry: 3") SET_PED_NAME_DEBUG(pedMerryWeather[4], "Merry: 4") MAKE_PED_COME_LOOKING(pedMerryWeather[2]) MAKE_PED_COME_LOOKING(pedMerryWeather[3]) SET_PED_SPHERE_DEFENSIVE_AREA(pedMerryWeather[4], << -806.7888, 176.5762, 71.8347>>, 2.25) SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedMerryWeather[4], TRUE) SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedMerryWeather[2], TRUE) SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedMerryWeather[3], TRUE) iTimeOfSpawningExtraGuyComingInDoor = GET_GAME_TIMER() //ADD_PED_FOR_DIALOGUE(myScriptedSpeech, 6, pedMerryWeather[4], "MERRYWEATHER1") i_current_event++ ENDIF BREAK CASE 7 CASE 8 IF i_current_event = 7 IF NOT IS_PED_INJURED(pedMerryWeather[2]) ADD_PED_FOR_DIALOGUE(myScriptedSpeech, 6, pedMerryWeather[2], "MERRYWEATHER7") IF CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_MERRYIN", CONV_PRIORITY_VERY_HIGH) i_current_event = 8 ENDIF ELSE i_current_event = 8 ENDIF ENDIF //Keep the ped in the lounge in cover until further notice. IF NOT IS_PED_INJURED(pedMerryWeather[4]) IF NOT IS_ENTITY_ON_SCREEN(pedMerryWeather[4]) AND NOT bMichaelOutside SET_PED_RESET_FLAG(pedMerryWeather[4], PRF_ForcePeekFromCover, TRUE) IF bLoungeGuyPoppedOut = FALSE iTimeOfSeeingGuy4 = GET_GAME_TIMER() ENDIF ELSE IF GET_GAME_TIMER() - iTimeOfSeeingGuy4 > 500 //ms //500 AND bLoungeGuyPoppedOut = FALSE SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedMerryWeather[4], FALSE) ADD_PED_FOR_DIALOGUE(myScriptedSpeech, 6, pedMerryWeather[4], "MERRYWEATHER7") IF CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_MERRYDI", CONV_PRIORITY_VERY_HIGH) SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedMerryWeather[4], FALSE) SET_COMBAT_FLOAT(pedMerryWeather[4], CCF_TIME_BETWEEN_BURSTS_IN_COVER, 0.25) TASK_COMBAT_PED(pedMerryWeather[4], PLAYER_PED_ID()) MAKE_PED_COME_LOOKING(pedMerryWeather[4]) bLoungeGuyPoppedOut = TRUE ENDIF ENDIF //Two seconds after he's been spotted by the player IF GET_GAME_TIMER() - iTimeOfSeeingGuy4 > 2000 AND bPed4WillCharge = FALSE SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedMerryWeather[4], FALSE) MAKE_PED_COME_LOOKING(pedMerryWeather[4]) bPed4WillCharge = TRUE ENDIF ENDIF //If the player just fucks around IF GET_GAME_TIMER() - iTimeOfGuysSpawning > 15000 AND bPed4WillCharge = FALSE AND IS_PED_INJURED(pedMerryWeather[2]) AND IS_PED_INJURED(pedMerryWeather[3]) //SCRIPT_ASSERT("WTF") SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedMerryWeather[4], FALSE) MAKE_PED_COME_LOOKING(pedMerryWeather[4]) bPed4WillCharge = TRUE ENDIF ELSE IF bMWCharging[4] = FALSE iTimeOfSpawningExtraGuyComingInDoor = GET_GAME_TIMER() bMWCharging[4] = TRUE ENDIF ENDIF PRINTLN("fucksake: ", GET_GAME_TIMER() - iTimeOfGuysSpawning) //Set the two guys that run in the door to open combat IF GET_GAME_TIMER() - iTimeOfGuysSpawning > 4000 //Allow tasks to start... IF bMWCharging[2] = FALSE AND NOT IS_PED_INJURED(pedMerryWeather[2]) IF GET_SCRIPT_TASK_STATUS(pedMerryWeather[2], SCRIPT_TASK_PERFORM_SEQUENCE) = FINISHED_TASK SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedMerryWeather[2], FALSE) MAKE_PED_COME_LOOKING(pedMerryWeather[2]) bMWCharging[2] = TRUE ELSE SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedMerryWeather[2], TRUE) ENDIF ENDIF IF bMWCharging[3] = FALSE AND NOT IS_PED_INJURED(pedMerryWeather[3]) IF GET_SCRIPT_TASK_STATUS(pedMerryWeather[3], SCRIPT_TASK_PERFORM_SEQUENCE) <> FINISHED_TASK SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedMerryWeather[3], FALSE) MAKE_PED_COME_LOOKING(pedMerryWeather[3]) bMWCharging[3] = TRUE ELSE SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedMerryWeather[3], TRUE) ENDIF ENDIF ENDIF UPDATE_BLIPS_AND_DEATH_COUNT() //Advance a stage. IF GET_ENTITY_HEADING(PLAYER_PED_ID()) > 210.0 AND GET_ENTITY_HEADING(PLAYER_PED_ID()) < 310.0 AND IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-804.018066,181.418915,71.098137>>, <<-812.141724,179.262512,73.659195>>, 3.500000) OR (IS_SPHERE_VISIBLE(<<-802.0311, 182.6728, 72.9004>>, 0.5) AND IS_PED_HURT(pedMerryWeather[4]) AND IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-816.546997,178.490189,71.227776>>, <<-810.670471,180.819443,74.903091>>, 5.500000))//Bottom of stairs OR bMichaelOutside OR (IS_PED_INJURED(pedMerryWeather[2]) AND iExtraGuyCounter > 1) //killed two guys coming in the doors STOP_AUDIO_SCENE("MI_4_ENEMIES_BREACH_DOOR") TRIGGER_MUSIC_EVENT("SOL5_GROUND_FLOOR") pedMerryWeather[5] = CREATE_PED(PEDTYPE_MISSION, getRandomGoonModel(), <<-801.3400, 179.5918, 71.8347>>, 335.4891 ) pedMerryWeather[6] = CREATE_PED(PEDTYPE_MISSION, getRandomGoonModel(), <<-797.1436, 181.8869, 71.8453>>, 351.1270 ) pedMerryWeather[14] = CREATE_PED(PEDTYPE_MISSION, getRandomGoonModel(), <<-798.37781, 177.98271, 71.83471>>, 18.7039) //-798.37781, 177.98271, 71.83471 - BOOM SET_PED_AS_MERRYWEATHER(pedMerryWeather[5]) SET_PED_AS_MERRYWEATHER(pedMerryWeather[6], WEAPONTYPE_PISTOL) SET_PED_AS_MERRYWEATHER(pedMerryWeather[14], WEAPONTYPE_CARBINERIFLE) SET_PED_NAME_DEBUG(pedMerryWeather[6], "Merry: 5") SET_PED_NAME_DEBUG(pedMerryWeather[5], "Merry: 6") SET_PED_NAME_DEBUG(pedMerryWeather[14], "Merry: 14") SET_PED_SPHERE_DEFENSIVE_AREA(pedMerryWeather[5], <<-803.3466, 183.4802, 71.6055>>, 3.0) SET_PED_SPHERE_DEFENSIVE_AREA(pedMerryWeather[6], << -798.2574, 185.4006, 71.6056 >>, 3.0) SET_PED_SPHERE_DEFENSIVE_AREA(pedMerryWeather[14], <<-798.4697, 177.8276, 71.8347>>, 3.0) SET_PED_COMBAT_ATTRIBUTES(pedMerryWeather[5], CA_OPEN_COMBAT_WHEN_DEFENSIVE_AREA_IS_REACHED, TRUE) SET_PED_COMBAT_ATTRIBUTES(pedMerryWeather[6], CA_OPEN_COMBAT_WHEN_DEFENSIVE_AREA_IS_REACHED, TRUE) SET_PED_CONFIG_FLAG(pedMerryWeather[5], PCF_ForceInitialPeekInCover, TRUE) SET_PED_CONFIG_FLAG(pedMerryWeather[6], PCF_ForceInitialPeekInCover, TRUE) //SET_PED_COMBAT_ATTRIBUTES(pedMerryWeather[14], CA_OPEN_COMBAT_WHEN_DEFENSIVE_AREA_IS_REACHED, TRUE) TASK_COMBAT_PED(pedMerryWeather[5], PLAYER_PED_ID()) TASK_COMBAT_PED(pedMerryWeather[6], PLAYER_PED_ID()) TASK_COMBAT_PED(pedMerryWeather[14], PLAYER_PED_ID()) ADD_PED_FOR_DIALOGUE(myScriptedSpeech, 6, pedMerryWeather[5], "MERRYWEATHER1") SETTIMERB(0) iTimeOfGuys4and5 = GET_GAME_TIMER() bGuys4And5ComeLooking = FALSE i_current_event++ ELSE //If timer create one more guy PRINTLN("Extra guy:", GET_GAME_TIMER() - iTimeOfSpawningExtraGuyComingInDoor) IF GET_GAME_TIMER() - iTimeOfSpawningExtraGuyComingInDoor > iExtraGuy2SpawnTimer// 7000 shoot //13000 AND NOT bMichaelOutside AND IS_PED_INJURED(pedMerryWeather[2]) AND IS_PED_INJURED(pedMerryWeather[4]) //Killed the stairs guy... AND NOT DOES_ENTITY_EXIST(pedMerryWeather[5]) //Stop spawning these guys when the other guys get triggered. AND IS_SPHERE_VISIBLE(<<-817.4581, 177.9828, 71.2274>>, 0.5) //AND iExtraGuyCounter < 2 SWITCH iExtraGuyCounter CASE 0 //technically second guy.... iExtraGuy2SpawnTimer = GET_RANDOM_INT_IN_RANGE(4000, 8000) BREAK CASE 1 iExtraGuy2SpawnTimer = GET_RANDOM_INT_IN_RANGE(8500, 12000) BREAK CASE 2 iExtraGuy2SpawnTimer = GET_RANDOM_INT_IN_RANGE(12000, 15000) BREAK DEFAULT iExtraGuy2SpawnTimer = 15000 BREAK ENDSWITCH iExtraGuyCounter++ SET_PED_AS_NO_LONGER_NEEDED(pedMerryWeather[2]) IF iExtraGuyCounter % 2 = 0 pedMerryWeather[2] = CREATE_PED(PEDTYPE_MISSION, getRandomGoonModel(), <<-818.6957, 172.7013, 70.5827>>, 351.4070) ELSE pedMerryWeather[2] = CREATE_PED(PEDTYPE_MISSION, getRandomGoonModel(), <<-822.1360, 179.2826, 70.5304>>, 264.9692) ENDIF SET_PED_AS_MERRYWEATHER(pedMerryWeather[2], WEAPONTYPE_PISTOL) SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedMerryWeather[2], TRUE) OPEN_SEQUENCE_TASK(seqMoveThroughFrontDoor) TASK_SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(NULL, TRUE) TASK_GO_TO_COORD_WHILE_AIMING_AT_ENTITY(NULL, <<-816.6824, 178.2494, 71.2278>>, PLAYER_PED_ID(), PEDMOVE_RUN, TRUE) TASK_COMBAT_PED_TIMED(NULL, PLAYER_PED_ID(), 2000) TASK_GO_TO_COORD_WHILE_AIMING_AT_ENTITY(NULL, <<-813.7005, 181.0271, 71.1531>>, PLAYER_PED_ID(), PEDMOVE_RUN, TRUE) TASK_SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(NULL, FALSE) TASK_COMBAT_PED(NULL, PLAYER_PED_ID()) CLOSE_SEQUENCE_TASK(seqMoveThroughFrontDoor) TASK_PERFORM_SEQUENCE(pedMerryWeather[2], seqMoveThroughFrontDoor) CLEAR_SEQUENCE_TASK(seqMoveThroughFrontDoor) PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(pedMerryWeather[2], "GENERIC_WAR_CRY", "s_m_y_genericmarine_01_black_mini_01", SPEECH_PARAMS_FORCE) SET_PED_NAME_DEBUG(pedMerryWeather[2], "EXTRA: 2") iTimeOfSpawningExtraGuyComingInDoor = GET_GAME_TIMER() MAKE_PED_COME_LOOKING(pedMerryWeather[2]) ENDIF ENDIF BREAK CASE 9 //IF CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_MERRYIN", CONV_PRIORITY_VERY_HIGH) IF NOT IS_PED_INJURED(pedMerryWeather[5]) PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(pedMerryWeather[5], "COVER_ME", "s_m_y_genericmarine_01_black_mini_01", SPEECH_PARAMS_FORCE) ENDIF i_current_event++ BREAK CASE 10 UPDATE_BLIPS_AND_DEATH_COUNT() IF (GET_GAME_TIMER() - iTimeOfGuys4and5) > 10000 AND bGuys4And5ComeLooking = FALSE IF NOT IS_PED_INJURED(pedMerryWeather[5]) MAKE_PED_COME_LOOKING(pedMerryWeather[5]) ENDIF IF NOT IS_PED_INJURED(pedMerryWeather[6]) MAKE_PED_COME_LOOKING(pedMerryWeather[6]) ENDIF bGuys4And5ComeLooking = TRUE ENDIF IF bOutsideGuySpawned = FALSE IF IS_ENTITY_IN_DINING_ROOM(PLAYER_PED_ID()) OR DID_MICHAEL_GO_IN_BATHROOM() OR iExtraBadGuysComingIntoDiningRoomCount >= 2 //OR bMichaelOutside pedMerryWeather[7] = CREATE_PED(PEDTYPE_MISSION, getRandomGoonModel(), <<-787.6755, 167.0518, 70.3636>>, 351.2527) SET_PED_AS_MERRYWEATHER(pedMerryWeather[7], WEAPONTYPE_CARBINERIFLE) SET_PED_SPHERE_DEFENSIVE_AREA(pedMerryWeather[7], <<-791.1288, 173.7254, 71.5669>>, 1.5) SET_PED_RUN_INTO_POSITION_WHILE_SHOOTING_AT_ENTITY(pedMerryWeather[7], <<-791.1288, 173.7254, 71.5669>>, PLAYER_PED_ID()) SET_PED_NAME_DEBUG(pedMerryWeather[7], "Merry 7") SET_PED_CHANCE_OF_FIRING_BLANKS(pedMerryWeather[7], 0.5, 0.5) iTimeOfMerryWeatherSpawn[7] = GET_GAME_TIMER() bMWCharging[7] = FALSE bOutsideGuySpawned = TRUE ENDIF ENDIF IF bOutsideGuySpawned = TRUE AND GET_GAME_TIMER() - iTimeOfMerryWeatherSpawn[7] > 30000 AND bMWCharging[7] = FALSE IF NOT IS_PED_INJURED(pedMerryWeather[7]) PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(pedMerryWeather[7], "GENERIC_WAR_CRY", "s_m_y_genericmarine_01_black_mini_01", SPEECH_PARAMS_FORCE) MAKE_PED_COME_LOOKING(pedMerryWeather[7]) ENDIF FORCE_LIGHTNING_FLASH() bMWCharging[7] = TRUE ENDIF IF bMichaelOutside AND bOutsideGuySpawned = TRUE AND NOT DOES_ENTITY_EXIST(pedMerryWeather[8]) pedMerryWeather[8] = CREATE_PED(PEDTYPE_MISSION, getRandomGoonModel(), <<-799.2374, 165.6819, 70.5143>>, 299.6070) SET_PED_AS_MERRYWEATHER(pedMerryWeather[8], WEAPONTYPE_CARBINERIFLE) SET_PED_SPHERE_DEFENSIVE_AREA(pedMerryWeather[8], <<-791.1288, 173.7254, 71.5669>>, 1.2) SET_PED_RUN_INTO_POSITION_WHILE_SHOOTING_AT_ENTITY(pedMerryWeather[8], <<-791.1288, 173.7254, 71.5669>>, PLAYER_PED_ID()) SET_PED_NAME_DEBUG(pedMerryWeather[8], "Merry 8") SET_PED_CHANCE_OF_FIRING_BLANKS(pedMerryWeather[8], 0.5, 0.5) iTimeOfGuysSpawning = GET_GAME_TIMER() ENDIF IF DOES_ENTITY_EXIST(pedMerryWeather[8]) AND bMWCharging[8] = FALSE //Let the two outside guys near the dining room open combat IF (GET_GAME_TIMER() - iTimeOfGuysSpawning) > 10000 IF NOT IS_PED_INJURED(pedMerryWeather[8]) MAKE_PED_COME_LOOKING(pedMerryWeather[8]) bMWCharging[8] = TRUE ENDIF ENDIF ENDIF IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-801.983887,163.990921,70.538406>>, <<-788.171753,167.602310,73.864197>>, 6.000000) OR (DOES_ENTITY_EXIST(pedMerryWeather[8]) AND IS_PED_INJURED(pedMerryWeather[8])) IF bGuyRunningUPDriveWayTriggered = FALSE AND bMichaelOutside //If player has been a dick and run around the wrong way, dont spawn this guy IF NOT IS_ENTITY_IN_FRONT_GARDEN_AREA(PLAYER_PED_ID()) pedMerryWeather[9] = CREATE_PED(PEDTYPE_MISSION, getRandomGoonModel(), <<-811.7975, 163.0438, 70.5636>>, 23.6469) SET_PED_RUN_INTO_POSITION_WHILE_SHOOTING_AT_ENTITY(pedMerryWeather[9], <<-801.5480, 161.9153, 70.5567>>, PLAYER_PED_ID()) SET_PED_AS_MERRYWEATHER(pedMerryWeather[9], WEAPONTYPE_CARBINERIFLE) SET_PED_NAME_DEBUG(pedMerryWeather[9], "Merry 9") PRINTLN("merry 9 created") iTimeOfDriveWayGuysTriggered = GET_GAME_TIMER() ENDIF bGuyRunningUPDriveWayTriggered = TRUE ENDIF ENDIF IF bGuyRunningUPDriveWayTriggered = TRUE AND bMWCharging[9] = FALSE AND GET_GAME_TIMER() - iTimeOfMerryWeatherSpawn[9] > 5000 IF NOT IS_PED_INJURED(pedMerryWeather[9]) MAKE_PED_COME_LOOKING(pedMerryWeather[9]) ENDIF bMWCharging[9] = TRUE ENDIF //Check if Michael has gone outside, then make any existing indoor bad guys follow him out. IF bPedsNowAdvancing = FALSE IF TIMERA() > 1000 IF bMichaelOutside //Set the peds after him IF bPedsNowAdvancing = FALSE FOR i = 0 TO NUMBER_OF_MERRYWEATHER -1 IF NOT IS_PED_INJURED(pedMerryWeather[i]) AND IS_ENTITY_IN_ANGLED_AREA(pedMerryWeather[i], <<-817.345337,175.497055,70.260384>>, <<-794.602661,184.461853,82.473396>>, 12.000000) MAKE_PED_COME_LOOKING(pedMerryWeather[i]) ENDIF ENDFOR bPedsNowAdvancing = TRUE PRINTLN("NOT IN interior!") ENDIF ELSE PRINTLN("IN interior!") SETTIMERA(0) ENDIF ENDIF ENDIF //IF iDeathCount = NUMBER_OF_MERRYWEATHER IF bMichaelOutside AND bGuyRunningUPDriveWayTriggered = TRUE AND (GET_GAME_TIMER() - iTimeOfDriveWayGuysTriggered) > 20000 //back paved area behind carport thing. OR IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-817.129639,157.925400,69.902512>>, <<-787.036804,167.599136,77.365692>>, 10.250000) INFORM_MISSION_STATS_OF_INCREMENT(MIC4_KILLS, iDeathCount) i_current_event++ ENDIF BREAK CASE 11 IF HAVE_STAGE_ASSETS_LOADED(STAGE_FIGHT_INCOMING_BAD_GUYS) AND NOT IS_ENTITY_IN_FRONT_GARDEN_AREA(PLAYER_PED_ID()) AND NOT IS_ENTITY_ON_GARAGE_ROOF(PLAYER_PED_ID()) pedMerryWeather[12] = CREATE_PED(PEDTYPE_MISSION, getRandomGoonModel(), <<-821.4448, 153.0200, 69.0971>>, 339.5754) SET_PED_AS_MERRYWEATHER(pedMerryWeather[12], WEAPONTYPE_CARBINERIFLE) SET_PED_SPHERE_DEFENSIVE_AREA(pedMerryWeather[12], <<-811.7975, 163.0438, 70.5636>>, 1.2) SET_PED_RUN_INTO_POSITION_WHILE_SHOOTING_AT_ENTITY(pedMerryWeather[12], <<-811.7975, 163.0438, 70.5636>>, PLAYER_PED_ID()) MAKE_PED_COME_LOOKING(pedMerryWeather[12]) SET_PED_NAME_DEBUG(pedMerryWeather[12], "Merry 12") TRIGGER_MUSIC_EVENT("SOL5_MORE_MERRY") //PRINT_NOW("SOL5_MORE", DEFAULT_GOD_TEXT_TIME, 1) INIT_SET_PIECE_CAR(merryWeatherCar, MESA3, 3, "Sol5MW", 3000.0, 1.0) SET_VEHICLE_COLOURS(merryWeatherCar.thisCar, 0, 0) SET_POSITION_OFFSET_FOR_RECORDED_VEHICLE_PLAYBACK(merryWeatherCar.thisCar, <<0.0, 0.0, 0.2559>>) //DELETE_VEHICLE(badguyCarOutsideHouse2) START_AUDIO_SCENE("MI_4_ENEMY_CAR_ARRIVES") //INIT_SET_PIECE_CAR(merryWeatherBike, XYZ4, 4, "Sol5MW", 3000.0, 1.0, TRUE) i_current_event++ ENDIF BREAK CASE 12 //Front doors IF bCloseFrontDoors = FALSE IF DOES_OBJECT_OF_TYPE_EXIST_AT_COORDS( <<-816.72, 179.10, 72.83>>, 2.0, V_ILEV_MM_DOORM_L) AND DOES_OBJECT_OF_TYPE_EXIST_AT_COORDS( <<-816.11, 177.51, 72.83>>, 2.0, V_ILEV_MM_DOORM_R) SET_STATE_OF_CLOSEST_DOOR_OF_TYPE(V_ILEV_MM_DOORM_L, <<-816.72, 179.10, 72.83>>, FALSE, 0.0) SET_STATE_OF_CLOSEST_DOOR_OF_TYPE(V_ILEV_MM_DOORM_R, <<-816.11, 177.51, 72.83>>, FALSE, 0.0) bCloseFrontDoors = TRUE ENDIF ENDIF UPDATE_BLIPS_AND_DEATH_COUNT() //Open gate... // IF DOES_OBJECT_OF_TYPE_EXIST_AT_COORDS(<<-844.05, 155.96, 66.03>>, 2.0, PROP_LRGGATE_02_LD) // SET_STATE_OF_CLOSEST_DOOR_OF_TYPE(PROP_LRGGATE_02_LD,<<-844.05, 155.96, 66.03>>, TRUE, 1.0) // ENDIF IF IS_PED_INJURED(merryWeatherCar.thisPassenger) AND (IS_PED_INJURED(merryWeatherCar.thisPassengerBackRight) OR IS_PED_INJURED(merryWeatherCar.thisDriver)) AND NOT DOES_ENTITY_EXIST(merryWeatherCar2.thisCar) OR (NOT DOES_ENTITY_EXIST(merryWeatherCar2.thisCar) AND IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-839.168457,149.884491,65.924622>>, <<-804.994263,163.102219,73.789093>>, 11.750000)) //AND IS_ENTITY_IN_FRONT_GARDEN_AREA(PLAYER_PED_ID())) INIT_SET_PIECE_CAR(merryWeatherCar2, MESA3, 4, "Sol5MW", 1000.0, 1.0) SET_POSITION_OFFSET_FOR_RECORDED_VEHICLE_PLAYBACK(merryWeatherCar2.thisCar, <<0.0, 0.0, 0.2559>>) DELETE_PED(merryWeatherCar2.thisPassengerBackLeft) DELETE_PED(merryWeatherCar2.thisPassengerBackRight) SET_PED_ANGLED_DEFENSIVE_AREA(merryWeatherCar2.thisDriver, <<-822.301575,182.692917,69.383873>>, <<-827.917908,176.600449,72.692253>>, 3.500000) SET_PED_ANGLED_DEFENSIVE_AREA(merryWeatherCar2.thisPassenger, <<-822.301575,182.692917,69.383873>>, <<-827.917908,176.600449,72.692253>>, 3.500000) SET_VEHICLE_COLOURS(merryWeatherCar2.thisCar, 0, 0) START_AUDIO_SCENE("MI_4_ENEMY_CAR_ARRIVES") MAKE_PED_COME_LOOKING(merryWeatherCar2.thisDriver) MAKE_PED_COME_LOOKING(merryWeatherCar2.thisPassenger) ENDIF IF GET_VEHICLE_RECORDING_PLAYBACK_PERCENTAGE_PROGRESS(merryWeatherCar.thisCar, "SOL5MW") > 90.0 AND NOT IS_PED_INJURED(merryWeatherCar.thisPassengerBackRight) IF (GET_SCRIPT_TASK_STATUS(merryWeatherCar.thisPassengerBackRight, SCRIPT_TASK_COMBAT) <> PERFORMING_TASK) //SET_PED_ANGLED_DEFENSIVE_AREA(merryWeatherCar.thisPassengerBackRight, <<-827.860046,160.394165,67.701981>>, <<-808.137329,157.933777,71.781845>>, 10.250000) FORCE_LIGHTNING_FLASH() MAKE_PED_COME_LOOKING(merryWeatherCar.thisPassengerBackRight) TASK_COMBAT_PED(merryWeatherCar.thisPassengerBackRight, PLAYER_PED_ID()) ENDIF ENDIF IF GET_VEHICLE_RECORDING_PLAYBACK_PERCENTAGE_PROGRESS(merryWeatherCar.thisCar, "SOL5MW") > 93.0 AND NOT IS_PED_INJURED(merryWeatherCar.thisPassengerBackleft) IF (GET_SCRIPT_TASK_STATUS(merryWeatherCar.thisPassengerBackLeft, SCRIPT_TASK_COMBAT) <> PERFORMING_TASK) //SET_PED_ANGLED_DEFENSIVE_AREA(merryWeatherCar.thisPassengerBackLeft, <<-827.860046,160.394165,67.701981>>, <<-808.137329,157.933777,71.781845>>, 10.250000) MAKE_PED_COME_LOOKING(merryWeatherCar.thisPassengerBackLeft) TASK_COMBAT_PED(merryWeatherCar.thisPassengerBackLeft, PLAYER_PED_ID()) ENDIF ENDIF IF GET_VEHICLE_RECORDING_PLAYBACK_PERCENTAGE_PROGRESS(merryWeatherCar.thisCar, "SOL5MW") > 95.5 AND NOT IS_PED_INJURED(merryWeatherCar.thisPassenger) IF (GET_SCRIPT_TASK_STATUS(merryWeatherCar.thisPassenger, SCRIPT_TASK_COMBAT) <> PERFORMING_TASK) //SET_PED_ANGLED_DEFENSIVE_AREA(merryWeatherCar.thisPassenger, <<-827.860046,160.394165,67.701981>>, <<-808.137329,157.933777,71.781845>>, 10.250000) MAKE_PED_COME_LOOKING(merryWeatherCar.thisPassenger) TASK_COMBAT_PED(merryWeatherCar.thisPassenger, PLAYER_PED_ID()) ENDIF ENDIF IF GET_VEHICLE_RECORDING_PLAYBACK_PERCENTAGE_PROGRESS(merryWeatherCar.thisCar, "SOL5MW") >= 96.9 AND bCarCombatting = FALSE IF NOT IS_PED_INJURED(merryWeatherCar.thisDriver) //SET_PED_ANGLED_DEFENSIVE_AREA(merryWeatherCar.thisDriver, <<-827.860046,160.394165,67.701981>>, <<-808.137329,157.933777,71.781845>>, 10.250000) MAKE_PED_COME_LOOKING(merryWeatherCar.thisDriver) TASK_COMBAT_PED(merryWeatherCar.thisDriver, PLAYER_PED_ID()) IF IS_AUDIO_SCENE_ACTIVE("MI_4_ENEMY_CAR_ARRIVES") STOP_AUDIO_SCENE("MI_4_ENEMY_CAR_ARRIVES") REMOVE_ENTITY_FROM_AUDIO_MIX_GROUP(merryWeatherCar.thisCar) iTimeCarStopped = GET_GAME_TIMER() ENDIF bCarCombatting = TRUE ELSE IF IS_AUDIO_SCENE_ACTIVE("MI_4_ENEMY_CAR_ARRIVES") STOP_AUDIO_SCENE("MI_4_ENEMY_CAR_ARRIVES") REMOVE_ENTITY_FROM_AUDIO_MIX_GROUP(merryWeatherCar.thisCar) iTimeCarStopped = GET_GAME_TIMER() bCarCombatting = TRUE ENDIF ENDIF ENDIF //Stop audio scene. IF GET_VEHICLE_RECORDING_PLAYBACK_PERCENTAGE_PROGRESS(merryWeatherCar2.thisCar, "SOL5MW") >= 96.9 IF IS_AUDIO_SCENE_ACTIVE("MI_4_ENEMY_CAR_ARRIVES") REMOVE_ENTITY_FROM_AUDIO_MIX_GROUP(merryWeatherCar2.thisCar) STOP_AUDIO_SCENE("MI_4_ENEMY_CAR_ARRIVES") ENDIF ENDIF UPDATE_BLIPS_AND_DEATH_COUNT() UPDATE_AI_PED_BLIP(merryWeatherCar.thisDriver, merryWeatherCar.blipDriver) UPDATE_AI_PED_BLIP(merryWeatherCar.thisPassenger, merryWeatherCar.blipPassenger) UPDATE_AI_PED_BLIP(merryWeatherCar.thisPassengerBackLeft, merryWeatherCar.blipPassengerBackLeft) UPDATE_AI_PED_BLIP(merryWeatherCar.thisPassengerBackRight, merryWeatherCar.blipPassengerBackRight) UPDATE_AI_PED_BLIP(merryWeatherCar2.thisDriver, merryWeatherCar2.blipDriver) UPDATE_AI_PED_BLIP(merryWeatherCar2.thisPassenger, merryWeatherCar2.blipPassenger) IF GET_DISTANCE_BETWEEN_ENTITY_AND_COORD(PLAYER_PED_ID(), << -812.6817, 160.5256, 70.4072 >>) > 20.0 AND (GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(),merryWeatherCar.thisCar) > 20.0) SET_PLAYBACK_SPEED(merryWeatherCar.thisCar, 0.21) ELSE SET_PLAYBACK_SPEED(merryWeatherCar.thisCar, 1.2 - (1.0 / GET_DISTANCE_BETWEEN_ENTITY_AND_COORD(PLAYER_PED_ID(), << -812.6817, 160.5256, 70.4072 >>))) ENDIF IF (GET_GAME_TIMER() - iTimeCarStopped) > 10000 AND bGuysInCarAdvancing = FALSE AND bCarCombatting = TRUE MAKE_PED_COME_LOOKING(merryWeatherCar.thisDriver) MAKE_PED_COME_LOOKING(merryWeatherCar.thisPassenger) MAKE_PED_COME_LOOKING(merryWeatherCar.thisPassengerBackLeft) MAKE_PED_COME_LOOKING(merryWeatherCar.thisPassengerBackRight) bGuysInCarAdvancing = TRUE ENDIF //Advance to next stage. IF IS_PED_INJURED(merryWeatherCar.thisDriver) AND IS_PED_INJURED(merryWeatherCar.thisPassenger) AND IS_PED_INJURED(merryWeatherCar.thisPassengerBackLeft) AND IS_PED_INJURED(merryWeatherCar.thisPassengerBackRight) AND IS_PED_INJURED(merryWeatherCar2.thisDriver) AND IS_PED_INJURED(merryWeatherCar2.thisPassenger) AND iDeathCount = NUMBER_OF_MERRYWEATHER SETTIMERA(0) i_current_event++ ENDIF BREAK CASE 13 IF TIMERA() > 1500 DELETE_OBJECT(oiCameraDummy) i_current_event = 0 STOP_AUDIO_SCENE("MI_4_DEFEND_HOUSE_MAIN") mission_stage = STAGE_REUNITE_WITH_FAMILY ENDIF BREAK ENDSWITCH //Spawn some extra guys if you stay inside for too long... IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-794.016357,181.931747,71.412010>>, <<-807.962341,173.754105,75.575302>>, 6.250000) //Move the kitchen guys into the dining area if you go into hte living room. IF NOT IS_PED_INJURED(pedMerryWeather[6]) AND bGuy1MovedIntoDiningRoom = FALSE OPEN_SEQUENCE_TASK(seqMoveIntoDiningRoom) TASK_SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(NULL, TRUE) TASK_GO_TO_COORD_WHILE_AIMING_AT_ENTITY(NULL, <<-799.7594, 181.2103, 71.8347>>, PLAYER_PED_ID(), PEDMOVE_RUN, TRUE) TASK_SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(NULL, FALSE) TASK_COMBAT_PED(NULL, PLAYER_PED_ID()) CLOSE_SEQUENCE_TASK(seqMoveIntoDiningRoom) TASK_PERFORM_SEQUENCE(pedMerryWeather[6], seqMoveIntoDiningRoom) CLEAR_SEQUENCE_TASK(seqMoveIntoDiningRoom) //SET_PED_SPHERE_DEFENSIVE_AREA(pedMerryWeather[5], <<-799.7594, 181.2103, 71.8347>>, 4.0, TRUE) SETTIMERB(0) bGuy1MovedIntoDiningRoom = TRUE ENDIF ENDIF //If player is in lounge //IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-799.236755,179.579681,71.834709>>, <<-805.600037,176.659973,75.334709>>, 4.000000) //IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-799.236755,179.579681,71.834709>>, <<-808.380981,175.258133,75.334709>>, 4.000000) IF NOT bMichaelOutside //AND NOT IS_ENTITY_IN_DINING_ROOM(PLAYER_PED_ID()) AND bOutsideGuySpawned = FALSE AND DOES_ENTITY_EXIST(pedMerryWeather[5]) AND IS_PED_INJURED(pedMerryWeather[13]) AND bDiningRoomGuyJustShot = TRUE AND iAliveCount < 2 PRINTLN("GET_GAME_TIMER() - iTimeOfGuysRunningInDiningRoom:", GET_GAME_TIMER() - iTimeOfGuysRunningInDiningRoom) IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-799.236755,179.579681,71.834709>>, <<-805.600037,176.659973,75.334709>>, 4.000000) OR IS_ENTITY_IN_DINING_ROOM(PLAYER_PED_ID()) bStartSpawningGuys13 = TRUE ENDIF //Spawn guys if you take too long elsewhere in the house. IF ((IS_ENTITY_IN_DINING_ROOM(PLAYER_PED_ID()) OR IS_SPHERE_VISIBLE(<<-794.8332, 181.1352, 73.6243>>, 0.6)) AND GET_GAME_TIMER() - iTimeOfGuysRunningInDiningRoom > iSpawnTimerGuy13 AND IS_PED_INJURED(pedMerryWeather[5]) AND IS_PED_INJURED(pedMerryWeather[6])) //OR if you hit a locate and are in the livign room area... spawn every so often. OR (bStartSpawningGuys13 AND GET_GAME_TIMER() - iTimeOfGuysRunningInDiningRoom > iSpawnTimerGuy13 AND IS_PED_INJURED(pedMerryWeather[7])) //Guy who runs in from the garden. iSpawnTimerGuy13 = GET_RANDOM_INT_IN_RANGE(6000, 7000) IF NOT IS_PED_INJURED(pedMerryWeather[14]) MAKE_PED_COME_LOOKING(pedMerryWeather[14]) ENDIF SET_PED_AS_NO_LONGER_NEEDED(pedMerryWeather[13]) //Cleanup old ped //Update the game camera dummy object IF DOES_ENTITY_EXIST(oiCameraDummy) SET_ENTITY_COORDS(oiCameraDummy, GET_GAMEPLAY_CAM_COORD()) ENDIF IF NOT IS_ENTITY_IN_DINING_ROOM(PLAYER_PED_ID()) AND NOT bMichaelOutside AND NOT IS_ENTITY_OUTSIDE(oiCameraDummy) //IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-797.828613,180.159698,71.740204>>, <<-808.773438,175.866150,74.751839>>, 19.500000) //AND NOT bMichaelOutside pedMerryWeather[13] = CREATE_PED(PEDTYPE_MISSION, getRandomGoonModel(), <<-792.9798, 183.6559, 71.8351>>, 167.9431) SET_PED_AS_MERRYWEATHER(pedMerryWeather[13], WEAPONTYPE_CARBINERIFLE) MAKE_PED_COME_LOOKING(pedMerryWeather[13]) SET_PED_NAME_DEBUG(pedMerryWeather[13], "Merry13:EX-F") IF bAlternateSides = FALSE OPEN_SEQUENCE_TASK(seqMoveIntoDiningRoom) TASK_SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(NULL, TRUE) TASK_GO_TO_COORD_WHILE_AIMING_AT_ENTITY(NULL, <<-793.2159, 181.7920, 71.8351>>, PLAYER_PED_ID(), PEDMOVE_RUN, TRUE, 0.5, 4.0, TRUE)//, ENAV_DONT_AVOID_OBJECTS) TASK_GO_TO_COORD_WHILE_AIMING_AT_ENTITY(NULL, <<-799.7575, 181.1908, 71.8347>>, PLAYER_PED_ID(), PEDMOVE_RUN, TRUE, 0.5, 4.0, TRUE)//, ENAV_DONT_AVOID_OBJECTS) TASK_COMBAT_PED(NULL, PLAYER_PED_ID()) TASK_SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(NULL, FALSE) CLOSE_SEQUENCE_TASK(seqMoveIntoDiningRoom) bAlternateSides = TRUE ELSE OPEN_SEQUENCE_TASK(seqMoveIntoDiningRoom) TASK_SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(NULL, TRUE) TASK_GO_TO_COORD_WHILE_AIMING_AT_ENTITY(NULL, <<-793.2159, 181.7920, 71.8351>>, PLAYER_PED_ID(), PEDMOVE_RUN, TRUE, 0.5, 4.0, TRUE)//, ENAV_DONT_AVOID_OBJECTS) TASK_GO_TO_COORD_WHILE_AIMING_AT_ENTITY(NULL, <<-798.4775, 177.8392, 71.8347>>, PLAYER_PED_ID(), PEDMOVE_RUN, TRUE, 0.5, 4.0, TRUE)//, ENAV_DONT_AVOID_OBJECTS) TASK_COMBAT_PED(NULL, PLAYER_PED_ID()) TASK_SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(NULL, FALSE) CLOSE_SEQUENCE_TASK(seqMoveIntoDiningRoom) bAlternateSides = FALSE ENDIF ELSE IF bAlternateSides = FALSE //Spawn a guy outside running in... pedMerryWeather[13] = CREATE_PED(PEDTYPE_MISSION, getRandomGoonModel(), <<-793.5820, 187.2418, 71.8353>>, 203.3005 ) SET_PED_AS_MERRYWEATHER(pedMerryWeather[13], WEAPONTYPE_CARBINERIFLE) //MAKE_PED_COME_LOOKING(pedMerryWeather[13]) SET_PED_COMBAT_RANGE(pedMerryWeather[13], CR_NEAR) REMOVE_PED_DEFENSIVE_AREA(pedMerryWeather[13]) SET_PED_COMBAT_MOVEMENT(pedMerryWeather[13], CM_WILLADVANCE) SET_PED_COMBAT_ATTRIBUTES(pedMerryWeather[13], CA_AGGRESSIVE, TRUE) SET_PED_NAME_DEBUG(pedMerryWeather[13], "Merry13:EX-BA1") OPEN_SEQUENCE_TASK(seqMoveIntoDiningRoom) TASK_SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(NULL, TRUE) TASK_GO_TO_COORD_WHILE_AIMING_AT_ENTITY(NULL, <<-793.2159, 181.7920, 71.8351>>, PLAYER_PED_ID(), PEDMOVE_RUN, TRUE, 0.5, 4.0, TRUE)//, ENAV_DONT_AVOID_OBJECTS) TASK_COMBAT_PED(NULL, PLAYER_PED_ID()) TASK_SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(NULL, FALSE) CLOSE_SEQUENCE_TASK(seqMoveIntoDiningRoom) //Make the next guy coming from the front door come later. iSpawnTimerGuy13 = GET_RANDOM_INT_IN_RANGE(7000, 7500) bAlternateSides = TRUE ELSE //Spawn a guy up front / livign room pedMerryWeather[13] = CREATE_PED(PEDTYPE_MISSION, getRandomGoonModel(), <<-798.6892, 174.0237, 71.8349>>, 321.3347)// <<-807.4605, 177.0671, 71.8347>>, 200.9755) SET_PED_AS_MERRYWEATHER(pedMerryWeather[13], WEAPONTYPE_CARBINERIFLE) //MAKE_PED_COME_LOOKING(pedMerryWeather[13]) //Remiove charge flag for Les TODO SET_PED_COMBAT_RANGE(pedMerryWeather[13], CR_NEAR) REMOVE_PED_DEFENSIVE_AREA(pedMerryWeather[13]) SET_PED_COMBAT_MOVEMENT(pedMerryWeather[13], CM_WILLADVANCE) SET_PED_COMBAT_ATTRIBUTES(pedMerryWeather[13], CA_AGGRESSIVE, TRUE) SET_PED_NAME_DEBUG(pedMerryWeather[13], "Merry13:EX-BA2") OPEN_SEQUENCE_TASK(seqMoveIntoDiningRoom) TASK_SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(NULL, TRUE) TASK_GO_TO_COORD_WHILE_AIMING_AT_ENTITY(NULL, <<-801.2900, 178.5022, 71.8347>>, PLAYER_PED_ID(), PEDMOVE_RUN, TRUE, 0.5, 4.0, TRUE)//, ENAV_DONT_AVOID_OBJECTS) TASK_COMBAT_PED(NULL, PLAYER_PED_ID()) TASK_SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(NULL, FALSE) CLOSE_SEQUENCE_TASK(seqMoveIntoDiningRoom) iSpawnTimerGuy13 = GET_RANDOM_INT_IN_RANGE(5000, 7000) bAlternateSides = FALSE ENDIF ENDIF PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(pedMerryWeather[13], "COVER_ME", "s_m_y_genericmarine_01_black_mini_01", SPEECH_PARAMS_FORCE) TASK_PERFORM_SEQUENCE(pedMerryWeather[13], seqMoveIntoDiningRoom) CLEAR_SEQUENCE_TASK(seqMoveIntoDiningRoom) SET_PED_CHANCE_OF_FIRING_BLANKS(pedMerryWeather[13], 0.6, 0.8) PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(pedMerryWeather[13], "GENERIC_WAR_CRY", "s_m_y_genericmarine_01_black_mini_01", SPEECH_PARAMS_FORCE) iExtraBadGuysComingIntoDiningRoomCount++ IF NOT bGoOutsideTextPrinted AND iExtraBadGuysComingIntoDiningRoomCount = 2 PRINT_NOW("SOL5_KILLBAD2", DEFAULT_GOD_TEXT_TIME, 1) bGoOutsideTextPrinted = TRUE ENDIF bDiningRoomGuyJustShot = FALSE ENDIF ENDIF //IF DOES_ENTITY_EXIST(pedMerryWeather[13]) IF IS_PED_INJURED(pedMerryWeather[13]) IF bDiningRoomGuyJustShot = FALSE iTimeOfGuysRunningInDiningRoom = GET_GAME_TIMER() bDiningRoomGuyJustShot = TRUE ENDIF ENDIF // //HANDLE_RAPPEL(pedsRappelData[0], TRUE, FALSE) HANDLE_SHOOTOUT_DIALOGUE() ENDPROC BOOL bLastStageASsetsCreated = FALSE PROC stageReuniteWithFamily() REPLAY_DISABLE_CAMERA_MOVEMENT_THIS_FRAME() //Fix for bug 2195216 IF DOES_OBJECT_OF_TYPE_EXIST_AT_COORDS(<<-802.70, 176.18, 76.89>>, 1.0, V_ILEV_MM_DOORW) SET_STATE_OF_CLOSEST_DOOR_OF_TYPE(V_ILEV_MM_DOORW, <<-802.70, 176.18, 76.89>>, TRUE, 0.2) ENDIF bMichaelOutside = IS_ENTITY_OUTSIDE(PLAYER_PED_ID()) SWITCH i_current_event CASE 0 IF PREPARE_MUSIC_EVENT("SOL5_BACK_TO_TRACEY") TRIGGER_MUSIC_EVENT("SOL5_BACK_TO_TRACEY") REMOVE_CUTSCENE() iOnlyPlayOnce = 4 SET_CREATE_RANDOM_COPS(FALSE) SET_CREATE_RANDOM_COPS_ON_SCENARIOS(FALSE) FADE_IN_IF_NEEDED() START_AUDIO_SCENE("MI_4_GET_BACK_UPSTAIRS") bLastStageASsetsCreated = FALSE //SET_REPLAY_MID_MISSION_STAGE_WITH_NAME(7, "STAGE_REUNITE_WITH_FAMILY", TRUE) REPLAY_RECORD_BACK_FOR_TIME(10.0, 4.0, REPLAY_IMPORTANCE_HIGHEST) i_current_event++ ENDIF BREAK CASE 1 PRINT_NOW("SOL5_RENDEZV", DEFAULT_GOD_TEXT_TIME, 0) blipTraceysRoom = CREATE_BLIP_FOR_COORD( << -802.7369, 174.3312, 75.7408 >>) SET_BLIP_NAME_FROM_TEXT_FILE(blipTraceysRoom, "MIC4_BLIPFAM") SET_BLIP_COLOUR(blipTraceysRoom, BLIP_COLOUR_BLUE) REQUEST_STAGE_ASSETS(STAGE_REUNITE_WITH_FAMILY) REQUEST_STAGE_ASSETS(STAGE_JIMMY_SAVES_THE_DAY_CUTSCENE) i_current_event++ BREAK CASE 2 IF CAN_REQUEST_ASSETS_FOR_CUTSCENE_ENTITY() SET_CUTSCENE_PED_COMPONENT_VARIATION("Amanda", INT_TO_ENUM(PED_COMPONENT,0), 0, 1) //(head) SET_CUTSCENE_PED_COMPONENT_VARIATION("Amanda", INT_TO_ENUM(PED_COMPONENT,2), 1, 0) //(hair) SET_CUTSCENE_PED_COMPONENT_VARIATION("Amanda", INT_TO_ENUM(PED_COMPONENT,3), 7, 0) //(uppr) SET_CUTSCENE_PED_COMPONENT_VARIATION("Amanda", INT_TO_ENUM(PED_COMPONENT,4), 2, 0) //(lowr) SET_CUTSCENE_PED_COMPONENT_VARIATION("Amanda", INT_TO_ENUM(PED_COMPONENT,5), 0, 0) //(hand) SET_CUTSCENE_PED_COMPONENT_VARIATION("Amanda", INT_TO_ENUM(PED_COMPONENT,7), 0, 0) //(teef) SET_CUTSCENE_PED_COMPONENT_VARIATION("Tracy", INT_TO_ENUM(PED_COMPONENT,0), 0, 1) //(head) SET_CUTSCENE_PED_COMPONENT_VARIATION("Tracy", INT_TO_ENUM(PED_COMPONENT,2), 2, 0) //(hair) SET_CUTSCENE_PED_COMPONENT_VARIATION("Tracy", INT_TO_ENUM(PED_COMPONENT,3), 2, 0) //(uppr) SET_CUTSCENE_PED_COMPONENT_VARIATION("Tracy", INT_TO_ENUM(PED_COMPONENT,4), 2, 0) //(lowr) SET_CUTSCENE_PED_COMPONENT_VARIATION("Tracy", INT_TO_ENUM(PED_COMPONENT,5), 0, 0) //(hand) SET_CUTSCENE_PED_COMPONENT_VARIATION("Tracy", INT_TO_ENUM(PED_COMPONENT,6), 2, 0) //(feet) SET_CUTSCENE_PED_COMPONENT_VARIATION("Tracy", INT_TO_ENUM(PED_COMPONENT,7), 0, 0) //(teef) SET_CUTSCENE_PED_COMPONENT_VARIATION("Tracy", INT_TO_ENUM(PED_COMPONENT,8), 1, 0) //(accs) SET_CUTSCENE_PED_COMPONENT_VARIATION("Jimmy", INT_TO_ENUM(PED_COMPONENT,0), 0, 0) //(head) SET_CUTSCENE_PED_COMPONENT_VARIATION("Jimmy", INT_TO_ENUM(PED_COMPONENT,2), 0, 0) //(hair) SET_CUTSCENE_PED_COMPONENT_VARIATION("Jimmy", INT_TO_ENUM(PED_COMPONENT,3), 3, 0) //(uppr) SET_CUTSCENE_PED_COMPONENT_VARIATION("Jimmy", INT_TO_ENUM(PED_COMPONENT,4), 2, 0) //(lowr) SET_CUTSCENE_PED_COMPONENT_VARIATION("Jimmy", INT_TO_ENUM(PED_COMPONENT,5), 1, 0) //(hand) SET_CUTSCENE_PED_COMPONENT_VARIATION("Jimmy", INT_TO_ENUM(PED_COMPONENT,6), 2, 0) //(feet) SET_CUTSCENE_PED_COMPONENT_VARIATION("Jimmy", INT_TO_ENUM(PED_COMPONENT,7), 0, 0) //(teef) SET_CUTSCENE_PED_COMPONENT_VARIATION("Jimmy", INT_TO_ENUM(PED_COMPONENT,8), 2, 0) //(accs) //SET_CUTSCENE_PED_COMPONENT_VARIATION("Jimmy", INT_TO_ENUM(PED_COMPONENT,9), 1, 0, 0) //(task) SET_CUTSCENE_PED_COMPONENT_VARIATION("Jimmy", INT_TO_ENUM(PED_COMPONENT,10), 0, 0) //(decl) i_current_event++ ENDIF BREAK CASE 3 CASE 4 CASE 5 IF HAVE_STAGE_ASSETS_LOADED(STAGE_REUNITE_WITH_FAMILY) AND NOT DOES_ENTITY_EXIST(pedWritheGuy) AND bLastStageASsetsCreated = FALSE CREATE_STAGE_ASSETS(STAGE_REUNITE_WITH_FAMILY) bLastStageASsetsCreated = TRUE ENDIF IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData, IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF) AND i_current_event = 3 IF CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_RENDEZ", CONV_PRIORITY_VERY_HIGH) i_current_event = 4 ENDIF ENDIF IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData, IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF) AND i_current_event = 4 AND bMichaelOutside = FALSE IF CREATE_CONVERSATION(myScriptedSpeech, "SOL5AUD", "SOL5_RENDEZ2", CONV_PRIORITY_VERY_HIGH) i_current_event = 5 ENDIF ENDIF IF IS_ENTITY_AT_COORD(PLAYER_PED_ID(), <<-805.6776, 182.4792, 75.7146>>, <<3.0, 3.0, 3.0>>) SET_PED_USING_ACTION_MODE(PLAYER_PED_ID(), FALSE) SET_PED_MAX_MOVE_BLEND_RATIO(PLAYER_PED_ID(), PEDMOVE_WALK) ENDIF //IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-807.770081,178.713364,75.493347>>, <<-803.683960,180.453369,79.740799>>, 1.250000) IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-799.990295,179.395172,74.915062>>, <<-807.950012,176.674271,77.990738>>, 8.500000) AND HAS_CUTSCENE_LOADED_WITH_FAILSAFE() REMOVE_BLIP(blipTraceysRoom) SET_PED_AS_NO_LONGER_NEEDED(pedWritheGuy) i_current_event = 0 STOP_AUDIO_SCENE("MI_4_GET_BACK_UPSTAIRS") mission_stage = STAGE_JIMMY_SAVES_THE_DAY_CUTSCENE ENDIF BREAK ENDSWITCH //HANDLE_SHOOTOUT_DIALOGUE() ENDPROC BOOL bDontAlwaysLoadTheScene = FALSE BOOL bDamagePackApplied = FALSE PROC stageJimmySavesTheDayCutscene() SET_PED_MAX_MOVE_BLEND_RATIO(PLAYER_PED_ID(), PEDMOVE_WALK) SWITCH i_current_event CASE 0 //REQUEST_STAGE_ASSETS(STAGE_JIMMY_SAVES_THE_DAY_CUTSCENE) i_current_event++ BREAK CASE 1 DELETE_VEHICLE(carTracey) SET_NPC_VEH_MODEL_AS_NO_LONGER_NEEDED(CHAR_TRACEY) DELETE_PED(pedTracey) IF NOT IS_ENTITY_DEAD(pedTracey) REGISTER_ENTITY_FOR_CUTSCENE(pedTracey, "Tracy", CU_ANIMATE_EXISTING_SCRIPT_ENTITY) ENDIF IF NOT IS_ENTITY_DEAD(pedAmanda) REGISTER_ENTITY_FOR_CUTSCENE(pedAmanda, "Amanda", CU_ANIMATE_EXISTING_SCRIPT_ENTITY) ENDIF // // IF NOT IS_ENTITY_DEAD(pedJimmy) // REGISTER_ENTITY_FOR_CUTSCENE(pedJimmy, "Jimmy", CU_ANIMATE_EXISTING_SCRIPT_ENTITY) // ENDIF SET_PED_USING_ACTION_MODE(PLAYER_PED_ID(), FALSE, -1) SET_SCRIPTS_SAFE_FOR_CUTSCENE(TRUE) KILL_FACE_TO_FACE_CONVERSATION_DO_NOT_FINISH_LAST_LINE() TRIGGER_MUSIC_EVENT("SOL5_ENDING_CS") START_CUTSCENE() REPLAY_START_EVENT(REPLAY_IMPORTANCE_HIGHEST) bDontAlwaysLoadTheScene = FALSE bDamagePackApplied = FALSE SET_CUTSCENE_FADE_VALUES(FALSE, FALSE, TRUE, FALSE) i_current_event++ BREAK CASE 2 CASE 3 CASE 4 CASE 5 CASE 6 IF DOES_ENTITY_EXIST(GET_ENTITY_INDEX_OF_CUTSCENE_ENTITY("Tracy", CS_TRACYDISANTO)) AND bDamagePackApplied = FALSE IF NOT IS_ENTITY_DEAD(GET_ENTITY_INDEX_OF_CUTSCENE_ENTITY("Tracy", CS_TRACYDISANTO)) APPLY_PED_DAMAGE_PACK(GET_PED_INDEX_FROM_ENTITY_INDEX(GET_ENTITY_INDEX_OF_CUTSCENE_ENTITY("Tracy", CS_TRACYDISANTO)), "SCR_TracySplash", 1.0, 1.0) bDamagePackApplied = TRUE ENDIF ENDIF IF IS_CUTSCENE_PLAYING() AND bDontAlwaysLoadTheScene = FALSE FADE_IN_IF_NEEDED() DELETE_ARRAY_OF_PEDS(pedMerryWeather, FALSE) CLEAR_AREA(<<-804.5567, 179.0212, 75.7407>>, 30.0, TRUE) bDontAlwaysLoadTheScene = TRUE ENDIF IF i_current_event = 2 AND GET_CUTSCENE_TIME() > 1950 IF PREPARE_MUSIC_EVENT("SOL5_MICHAEL_CLOBBERED") TRIGGER_MUSIC_EVENT("SOL5_MICHAEL_CLOBBERED") //APPLY_PED_DAMAGE_DECAL(pedIndex, Zone, u, v, rotation, scale, alpha, forceFrame, fadeIn, damageDecalName) APPLY_PED_DAMAGE_DECAL(PLAYER_PED_ID(), PDZ_HEAD, 0.587, 0.782, 341.282, 1.000, 0.571, 3, TRUE, "bruise") APPLY_PED_DAMAGE_DECAL(PLAYER_PED_ID(), PDZ_HEAD, 0.587, 0.782, 341.282, 1.000, 0.571, 4, TRUE, "bruise") APPLY_PED_DAMAGE_DECAL(PLAYER_PED_ID(), PDZ_HEAD, 0.587, 0.782, 341.282, 1.000, 0.571, 1, TRUE, "bruise") i_current_event = 3 ENDIF ENDIF IF GET_CUTSCENE_TIME() > 9230.0 AND i_current_event = 3 SET_TIMECYCLE_MODIFIER("micheals_lightsOFF") i_current_event = 4 ENDIF IF GET_CUTSCENE_TIME() > 10800.4//10834.4 AND HAS_CUTSCENE_CUT_THIS_FRAME() //IF HAS_ANIM_EVENT_FIRED(PLAYER_PED_ID(), GET_HASH_KEY("NVON")) AND i_current_event = 4 CLEAR_TIMECYCLE_MODIFIER() SET_NIGHTVISION(TRUE) RESET_ADAPTATION() i_current_event = 5 ENDIF IF GET_CUTSCENE_TIME() > 25766.334//21265.66// 26000.00 //IF HAS_ANIM_EVENT_FIRED(PLAYER_PED_ID(), GET_HASH_KEY("NVOFF")) AND HAS_CUTSCENE_CUT_THIS_FRAME() AND i_current_event = 5 SET_NIGHTVISION(FALSE) i_current_event = 6 ENDIF // IF CAN_SET_EXIT_STATE_FOR_REGISTERED_ENTITY("Michael") // SIMULATE_PLAYER_INPUT_GAIT(PLAYER_ID(), PEDMOVE_WALK, 1000) // ENDIF IF GET_CUTSCENE_TIME() > 43990.0 DO_SCREEN_FADE_OUT(DEFAULT_FADE_TIME_LONG) ENDIF IF HAS_CUTSCENE_FINISHED() //CAN_SET_EXIT_STATE_FOR_REGISTERED_ENTITY("Michael") //HAS_CUTSCENE_FINISHED() DELETE_PED(pedTracey) DELETE_PED(pedAmanda) DELETE_PED(pedJimmy) //RESET_GAME_CAMERA() bDialogueDisplayed = FALSE SET_SCRIPTS_SAFE_FOR_CUTSCENE(FALSE) SET_NIGHTVISION(FALSE) REPLAY_STOP_EVENT() i_current_event = 0 SET_PLAYER_CONTROL(PLAYER_ID(), TRUE) mission_stage = STAGE_MISSION_PASSED ENDIF BREAK ENDSWITCH ENDPROC PROC DELETE_ALL_ENTITIES() bTimeLapseComplete = FALSE IF DOES_ENTITY_EXIST(pedJimmy) RESET_PED_MOVEMENT_CLIPSET(pedJimmy) ENDIF RESET_PED_MOVEMENT_CLIPSET(PLAYER_PED_ID()) REMOVE_ANIM_SET("move_characters@Jimmy@slow@") REMOVE_ANIM_SET("move_p_m_zero_slow") REMOVE_CUTSCENE() STOP_AUDIO_SCENES() bComingOutOfcutscene = FALSE bJimmyGotToHouseOk = FALSE bResetFlashTimer = FALSE bFailForFiringButMissing = FALSE iExtraBadGuysComingIntoDiningRoomCount = 0 IF navBlockArea <> 0 REMOVE_NAVMESH_BLOCKING_OBJECT(navBlockArea) ENDIF DOOR_SYSTEM_SET_HOLD_OPEN(g_sAutoDoorData[AUTODOOR_MICHAEL_MANSION_GATE].doorID, FALSE) CLEANUP_UBER_PLAYBACK(TRUE) REMOVE_COVER_POINT(cpHallway) cpHallway = NULL REMOVE_COVER_POINT(cpLounge) REMOVE_COVER_POINT(cpDiningRoom) REMOVE_COVER_POINT(cpKitchen) REMOVE_COVER_POINT(cpKitchen2) REMOVE_COVER_POINT(cpGarden1) REMOVE_COVER_POINT(cpGarden2) SET_MODEL_AS_NO_LONGER_NEEDED(MESA3) DELETE_VEHICLE(badguyCarOutsideHouse1) DELETE_VEHICLE(badguyCarOutsideHouse2) DELETE_VEHICLE(carTracey) SET_NPC_VEH_MODEL_AS_NO_LONGER_NEEDED(CHAR_TRACEY) DELETE_PED(pedAmanda) DELETE_PED(pedTracey) DELETE_VEHICLE(carMichael) DELETE_PED(pedJimmy) DELETE_PED(pedAmanda) DELETE_PED(pedTracey) DELETE_PED(pedHostagetakerTracey) DELETE_PED(pedHostagetakerAmanda) DELETE_PED(pedWritheGuy) DELETE_PED(pedLimoDriver) IF DOES_ENTITY_EXIST(oiCameraDummy) DELETE_OBJECT(oiCameraDummy) ENDIF //CLEANUP_RAPPEL(pedsRappelData[0]) CLEANUP_SET_PIECE_CAR(merryWeatherCar, TRUE) CLEANUP_SET_PIECE_CAR(merryWeatherCar2, TRUE) //Camera men DELETE_ARRAY_OF_OBJECTS(oiRedCarpetObjects) DELETE_ARRAY_OF_PEDS(pedsMoviePremier) DELETE_ARRAY_OF_PEDS(pedMerryWeather) DELETE_ARRAY_OF_PEDS(pedMerryWeatherCutscene) REMOVE_BLIP_AND_CHECK_IF_EXISTS(blipPedHostagetaker) REMOVE_BLIP_AND_CHECK_IF_EXISTS(blipInsideHouse) REMOVE_BLIP_AND_CHECK_IF_EXISTS(blipPedTracey) REMOVE_BLIP_AND_CHECK_IF_EXISTS(blipTraceysRoom) REMOVE_BLIP_AND_CHECK_IF_EXISTS(blipJimmy) REMOVE_BLIP_AND_CHECK_IF_EXISTS(blipTuxShop) REMOVE_BLIP_AND_CHECK_IF_EXISTS(blipInsideHouse) REMOVE_BLIP_AND_CHECK_IF_EXISTS(blipAmanda) REMOVE_BLIP_AND_CHECK_IF_EXISTS(blipJimmy) REMOVE_BLIP_AND_CHECK_IF_EXISTS(blipLimo) REMOVE_BLIP_AND_CHECK_IF_EXISTS(blipTuxShop) //iSceneId = -1 //Clean up blip INT I FOR i = 0 TO NUMBER_OF_MERRYWEATHER -1 UPDATE_AI_PED_BLIP(pedMerryWeather[i], blipPedMerryWeather[i]) ENDFOR UPDATE_AI_PED_BLIP(merryWeatherCar.thisDriver, merryWeatherCar.blipDriver) UPDATE_AI_PED_BLIP(merryWeatherCar.thisPassenger, merryWeatherCar.blipPassenger) UPDATE_AI_PED_BLIP(merryWeatherCar.thisPassengerBackLeft, merryWeatherCar.blipPassengerBackLeft) UPDATE_AI_PED_BLIP(merryWeatherCar.thisPassengerBackRight, merryWeatherCar.blipPassengerBackRight) bAlternateSides = FALSE ENDPROC #IF IS_DEBUG_BUILD PROC debugProcedures() iDebugMissionStage = ENUM_TO_INT(mission_stage) IF bDebugInitialised = FALSE //Init debug stuff. sol5WidgetGroup = START_WIDGET_GROUP("Michael 4 - Movie Premier") ADD_WIDGET_BOOL("bIsSuperDebugEnabled", bIsSuperDebugEnabled) ADD_WIDGET_BOOL("Enable Debug Processing", bDebugOn) //ADD_WIDGET_INT_READ_ONLY("iTimelapseCut", sTimelapse.iTimelapseCut) ADD_WIDGET_INT_READ_ONLY("i_current_event", i_current_event) ADD_WIDGET_INT_READ_ONLY("mission_stage", iDebugMissionStage) ADD_WIDGET_INT_READ_ONLY("iJimmySunroof", iJimmySunroof) ADD_WIDGET_INT_READ_ONLY("iLimoCamStage", iLimoCamStage) ADD_WIDGET_INT_SLIDER("iSpawnTimerGuy13", iSpawnTimerGuy13, 0, 999999, 500) ADD_WIDGET_INT_SLIDER("iMissionTimer", iMissionTimer, 0, 9999999, 1000) ADD_WIDGET_INT_SLIDER("g_replay.iReplayInt[0]", g_replay.iReplayInt[0], 0, 9999999, 1000) ADD_WIDGET_INT_READ_ONLY("iAliveCount", iAliveCount) ADD_WIDGET_INT_READ_ONLY("iDeathCount", iDeathCount) ADD_WIDGET_INT_READ_ONLY("iTimeLapseStage", iTimeLapseStage) ADD_WIDGET_VECTOR_SLIDER("vAmandaScenePos",vAmandaScenePos, -3000.0, 3000.0, 0.1) ADD_WIDGET_VECTOR_SLIDER("vAmandaSceneRot",vAmandaSceneRot, -360.0, 360.0, 0.5) ADD_WIDGET_VECTOR_SLIDER("vOffset1",vOffset1, -3000.0, 3000.0, 0.1) ADD_WIDGET_VECTOR_SLIDER("vOffset2",vOffset2, -3000.0, 3000.0, 0.1) ADD_WIDGET_VECTOR_SLIDER("vOffset3",vOffset3, -3000.0, 3000.0, 0.1) ADD_WIDGET_VECTOR_SLIDER("vOffset4",vOffset4, -3000.0, 3000.0, 0.1) STOP_WIDGET_GROUP() SET_LOCATES_HEADER_WIDGET_GROUP(sol5WidgetGroup) //SkipMenuStruct[ENUM_TO_INT(STAGE_TIME_LAPSE)].bSelectable = FALSE SkipMenuStruct[ENUM_TO_INT(STAGE_INITIALISE)].bSelectable = FALSE SkipMenuStruct[ENUM_TO_INT(STAGE_PICKUP_JIMMY)].sTxtLabel = "Stage get Jimmy/Tux" SkipMenuStruct[ENUM_TO_INT(STAGE_GET_TO_MOVIE_PREMIERE)].sTxtLabel = "Stage get to Movie Premiere" SkipMenuStruct[ENUM_TO_INT(STAGE_MOVIE_PREMIERE_CUT)].sTxtLabel = "Cutscene: mic_4_int" SkipMenuStruct[ENUM_TO_INT(STAGE_GET_TO_MICHAELS_HOUSE)].sTxtLabel = "STAGE_GET_TO_MICHAELS_HOUSE" SkipMenuStruct[ENUM_TO_INT(STAGE_ENTER_THE_HOUSE)].sTxtLabel = "STAGE_ENTER_THE_HOUSE" SkipMenuStruct[ENUM_TO_INT(STAGE_SAVE_AMANDA)].sTxtLabel = "STAGE_SAVE_AMANDA" SkipMenuStruct[ENUM_TO_INT(STAGE_SAVE_TRACEY)].sTxtLabel = "STAGE_SAVE_TRACEY" SkipMenuStruct[ENUM_TO_INT(STAGE_TRACEY_CAPTOR_SHOT)].sTxtLabel = "Cutscene: SOL_5_MCS_1" SkipMenuStruct[ENUM_TO_INT(STAGE_FIGHT_INCOMING_BAD_GUYS)].sTxtLabel = "STAGE_FIGHT_INCOMING_BAD_GUYS" SkipMenuStruct[ENUM_TO_INT(STAGE_REUNITE_WITH_FAMILY)].sTxtLabel = "STAGE_REUNITE_WITH_FAMILY" SkipMenuStruct[ENUM_TO_INT(STAGE_JIMMY_SAVES_THE_DAY_CUTSCENE)].sTxtLabel = "Cutscene: SOL_5_MCS_2" SkipMenuStruct[ENUM_TO_INT(STAGE_MISSION_PASSED)].sTxtLabel = "STAGE_MISSION_PASSED" SkipMenuStruct[ENUM_TO_INT(STAGE_DEBUG)].sTxtLabel = "STAGE_DEBUG" bDebugInitialised = TRUE ENDIF IF IS_SYNCHRONIZED_SCENE_RUNNING(iSceneId) SET_SYNCHRONIZED_SCENE_ORIGIN(iSceneId, vAmandaScenePos, vAmandaSceneRot) ENDIF PRINTLN("stage: ", iDebugMissionStage, " Current event :", i_current_event, "TRIGGERED?:", bKeepAmandaConditionsReturningTrue) IF IS_KEYBOARD_KEY_JUST_PRESSED(KEY_C) FLOAT fX, fY, fZ, fW VECTOR vCoords ENTITY_INDEX thisCar = GET_FOCUS_ENTITY_INDEX() IF DOES_ENTITY_EXIST(thisCar) GET_ENTITY_QUATERNION(thisCar, fX, fY, fZ, fW) vCoords = GET_ENTITY_COORDS(thiscar) SAVE_STRING_TO_DEBUG_FILE("SET_ENTITY_QUATERNION(thisCar,") SAVE_FLOAT_TO_DEBUG_FILE(fX) SAVE_STRING_TO_DEBUG_FILE(", ") SAVE_FLOAT_TO_DEBUG_FILE(fY) SAVE_STRING_TO_DEBUG_FILE(", ") SAVE_FLOAT_TO_DEBUG_FILE(fZ) SAVE_STRING_TO_DEBUG_FILE(", ") SAVE_FLOAT_TO_DEBUG_FILE(fW) SAVE_STRING_TO_DEBUG_FILE(")") SAVE_STRING_TO_DEBUG_FILE("SET_ENTITY_COORDS(thisCar,") SAVE_VECTOR_TO_DEBUG_FILE(vCoords) SAVE_STRING_TO_DEBUG_FILE(")") ENDIF ENDIF IF bDebugOn IF LAUNCH_MISSION_STAGE_MENU(SkipMenuStruct, iReturnStage, ENUM_TO_INT(mission_stage), TRUE) STOP_CUTSCENE(TRUE) WHILE NOT HAS_CUTSCENE_FINISHED() WAIT(0) ENDWHILE // WHILE IS_CUTSCENE_ACTIVE() // WAIT(0) // ENDWHILE REMOVE_CUTSCENE() DO_SCREEN_FADE_OUT(500) WHILE NOT IS_SCREEN_FADED_OUT() WAIT(0) ENDWHILE REMOVE_CUTSCENE() //DESTROY_CAM(sTimelapse.splineCamera) NEW_LOAD_SCENE_STOP() REMOVE_ANIM_DICT("misssolomon_5@stairs") REMOVE_ANIM_DICT("misssolomon_5@bedroom") REMOVE_BLIP(blipRedCarpet) DELETE_OBJECT(oiChampagneBottle) SET_MODEL_AS_NO_LONGER_NEEDED(Prop_Champ_01b) REMOVE_ANIM_DICT("missmic4jimmy_limo") DESTROY_ALL_CAMS() SET_MODEL_AS_NO_LONGER_NEEDED(IG_TRACYDISANTO) SET_MODEL_AS_NO_LONGER_NEEDED(IG_JIMMYDISANTO) SET_MODEL_AS_NO_LONGER_NEEDED(IG_AMANDATOWNLEY) SET_MODEL_AS_NO_LONGER_NEEDED(S_M_Y_BLACKOPS_01) SET_MODEL_AS_NO_LONGER_NEEDED(S_M_Y_BLACKOPS_02) CLEAR_PED_TASKS_IMMEDIATELY(PLAYER_PED_ID()) STOP_GAMEPLAY_HINT(TRUE) bKeepAmandaConditionsReturningTrue = FALSE DELETE_ALL_ENTITIES() //GIVE_WEAPON_TO_PED(PLAYER_PED_ID(), MichaelsWeapon, INFINITE_AMMO, FALSE, FALSE) KILL_ANY_CONVERSATION() SET_CUTSCENE_RUNNING(FALSE) iJimmySunroof = 0 // iLimoCamIndex = 0 iLimoCamStage = 0 i_current_event = 0 bMichaelWentInBathroom = FALSE bOutsideGuySpawned = FALSE CLEAR_MISSION_LOCATION_TEXT_AND_BLIPS(sLocatesData) CLEAR_ALL_FLOATING_HELP() SET_CUTSCENE_RUNNING(FALSE) //initialiseMission() //Set stage enum to required stage skip_mission_stage = INT_TO_ENUM(MISSION_STAGE_FLAG, iReturnStage) SET_CURRENT_SELECTOR_PED(SELECTOR_PED_MICHAEL) //Do additional work when selecting stagePl MANAGE_SKIP(skip_mission_stage, FALSE) mission_stage = skip_mission_stage RESET_GAME_CAMERA() //When a stage has been selected from the menu LAUNCH_MISSION_STAGE_MENU() returns true it passes back the stage that has been selected as an INT iReturnStage //This INT can then be used to change the current mission stage using your J/P skip functions. // iReturnStage = 0 is returned if STAGE_1 is selected from the menu. ENDIF IF IS_KEYBOARD_KEY_PRESSED(KEY_S) MISSION_PASSED() ENDIF IF IS_KEYBOARD_KEY_PRESSED(KEY_f) Mission_Failed() ENDIF ENDIF ENDPROC PROC stageRecordUber() // // INT i // VECTOR vSize = <<5.0, 5.0, 5.0>> SWITCH i_current_event CASE 0 REQUEST_MODEL(STRETCH) REQUEST_VEHICLE_RECORDING(1, "MIC4") WHILE NOT HAS_MODEL_LOADED(STRETCH) OR NOT HAS_VEHICLE_RECORDING_BEEN_LOADED(1, "MIC4") WAIT(0) ENDWHILE carMichael = CREATE_STRETCH() SET_ENTITY_COORDS(carMichael, <<-714.0481, -173.6860, 35.8828>>) SET_ENTITY_HEADING(carMichael, 28.2506) SET_PED_INTO_VEHICLE(PLAYER_PED_ID(), carMichael, VS_DRIVER) INIT_UBER_RECORDING("MIC4") i_current_event++ BREAK CASE 1 UPDATE_UBER_RECORDING() IF IS_VEHICLE_DRIVEABLE(carMichael) IF IS_RECORDING_GOING_ON_FOR_VEHICLE(carMichael) IF NOT IS_PLAYBACK_GOING_ON_FOR_VEHICLE(carMichael) START_PLAYBACK_RECORDED_VEHICLE(carMichael, 1, "MIC4") ENDIF ENDIF ENDIF BREAK ENDSWITCH ENDPROC #ENDIF FUNC BOOL MISSION_FLOW_SET_FAIL_REASON_WHEN_FADED_IN(STRING strThisString) IF IS_PLAYER_IN_ANY_SHOP() //Fix for 1844264 AND (mission_stage <> STAGE_INITIALISE) //SCRIPT_ASSERT("failing 1") MISSION_FLOW_SET_FAIL_REASON(strThisString) RETURN TRUE ENDIF //IF IS_PLAYER_CONTROL_ON(PLAYER_ID()) IF IS_SCREEN_FADED_IN() AND NOT IS_PLAYER_IN_ANY_SHOP() //SCRIPT_ASSERT("failing 2") MISSION_FLOW_SET_FAIL_REASON(strThisString) RETURN TRUE ENDIF RETURN FALSE ENDFUNC INT iTimeOfLeaving BOOL bLeftLimo = FALSE INT iTimerSound INT iSoundCounter INT iSoundFrequency = 1000 //PURPOSE: Checks if the user has failed a level stage FUNC BOOL HAS_MISSION_FAILED() IF bDisplayTimer SWITCH mission_stage CASE STAGE_GET_TO_MOVIE_PREMIERE CASE STAGE_GET_TO_MICHAELS_HOUSE CASE STAGE_ENTER_THE_HOUSE //CASE STAGE_SAVE_AMANDA //CASE STAGE_SAVE_TRACEY iMissionTimer = (GET_GAME_TIMER() - iMissionStartTime) //+ g_replay.iReplayInt[0] IF iMissionTimer <= MISSION_TIME_LIMIT - g_replay.iReplayInt[0] //Within time range IF iMissionTimer > (MISSION_TIME_LIMIT - 10000 - g_replay.iReplayInt[0]) IF iMissionTimer > (MISSION_TIME_LIMIT - 10000 - g_replay.iReplayInt[0]) - GET_FRAME_TIME() IF iMissionTimer > (MISSION_TIME_LIMIT - 5000 - g_replay.iReplayInt[0]) iSoundFrequency = 500 ENDIF PRINTLN("TIMER:", (MISSION_TIME_LIMIT - iMissionTimer - g_replay.iReplayInt[0]), " - ", iSoundCounter, " > ", iSoundFrequency ) IF ABSI((MISSION_TIME_LIMIT - iMissionTimer - g_replay.iReplayInt[0]) - iSoundCounter) > iSoundFrequency PLAY_SOUND_FRONTEND(iTimerSound, "10_SEC_WARNING", "HUD_MINI_GAME_SOUNDSET") iSoundCounter = (MISSION_TIME_LIMIT - iMissionTimer - g_replay.iReplayInt[0]) ENDIF ENDIF //Draw red IF bResetFlashTimer = FALSE //Start flashing DRAW_GENERIC_TIMER(MISSION_TIME_LIMIT - iMissionTimer - g_replay.iReplayInt[0], "TIMER_TIME", 0, TIMER_STYLE_DONTUSEMILLISECONDS, 0, PODIUMPOS_NONE, HUDORDER_DONTCARE, FALSE, HUD_COLOUR_RED) bResetFlashTimer = TRUE ELSE DRAW_GENERIC_TIMER(MISSION_TIME_LIMIT - iMissionTimer - g_replay.iReplayInt[0], "TIMER_TIME", 0, TIMER_STYLE_DONTUSEMILLISECONDS, 10000, PODIUMPOS_NONE, HUDORDER_DONTCARE, FALSE, HUD_COLOUR_RED) ENDIF ELSE //Draw time normally in red DRAW_GENERIC_TIMER(MISSION_TIME_LIMIT - iMissionTimer - g_replay.iReplayInt[0], "TIMER_TIME", 0, TIMER_STYLE_DONTUSEMILLISECONDS, 0, PODIUMPOS_NONE, HUDORDER_DONTCARE, FALSE, HUD_COLOUR_WHITE) ENDIF ELSE IF iTimerSound <> 0 STOP_SOUND(iTimerSound) PLAY_SOUND_FRONTEND(-1, "TIMER_STOP", "HUD_MINI_GAME_SOUNDSET") ENDIF //Below zero, cap at zero DRAW_GENERIC_TIMER(0, "TIMER_TIME", 0, TIMER_STYLE_DONTUSEMILLISECONDS, 110000, PODIUMPOS_NONE, HUDORDER_DONTCARE, FALSE, HUD_COLOUR_RED) ENDIF HIDE_HUD_COMPONENT_THIS_FRAME(NEW_HUD_AREA_NAME) //PRINTLN("iMissionTimer", iMissionTimer) IF iMissionTimer + g_replay.iReplayInt[0] > MISSION_TIME_LIMIT + 2000 //iMissionTimer > MISSION_TIME_LIMIT + 3000 RETURN MISSION_FLOW_SET_FAIL_REASON_WHEN_FADED_IN("SOL5_TIMEUP") ENDIF BREAK ENDSWITCH ENDIF SWITCH mission_stage CASE STAGE_ENTER_THE_HOUSE CASE STAGE_SAVE_AMANDA CASE STAGE_SAVE_TRACEY CASE STAGE_FIGHT_INCOMING_BAD_GUYS CASE STAGE_REUNITE_WITH_FAMILY IF GET_DISTANCE_BETWEEN_ENTITY_AND_COORD(PLAYER_PED_ID(), vMichaelsHouse) > 150.0 RETURN MISSION_FLOW_SET_FAIL_REASON_WHEN_FADED_IN("SOL5_LEAVE") ENDIF BREAK ENDSWITCH SWITCH mission_stage // CASE STAGE_TIME_LAPSE // BREAK CASE STAGE_PICKUP_JIMMY IF NOT IS_PED_COMP_ITEM_CURRENT_SP(PLAYER_PED_ID(), COMP_TYPE_OUTFIT, OUTFIT_P0_MOVIE_TUXEDO) AND i_current_event >= 1 IF NOT IS_SHOP_OPEN_FOR_BUSINESS(CLOTHES_SHOP_H_01_BH) RETURN MISSION_FLOW_SET_FAIL_REASON_WHEN_FADED_IN("SOL5_FAILTUX") ENDIF ENDIF IF DOES_ENTITY_EXIST(carMichael) IF NOT IS_VEHICLE_DRIVEABLE(carMichael) RETURN MISSION_FLOW_SET_FAIL_REASON_WHEN_FADED_IN("MIC4_LIMODEAD") ENDIF ENDIF IF DOES_ENTITY_EXIST(pedLimoDriver) IF IS_PED_INJURED(pedLimoDriver) RETURN MISSION_FLOW_SET_FAIL_REASON_WHEN_FADED_IN("MIC4_DRIVERDEAD") ENDIF ENDIF IF GET_CLOCK_HOURS() > 3 AND GET_CLOCK_HOURS() < 21 AND IS_PED_COMP_ITEM_CURRENT_SP(PLAYER_PED_ID(), COMP_TYPE_OUTFIT, OUTFIT_P0_MOVIE_TUXEDO) AND DOES_ENTITY_EXIST(pedJimmy) AND NOT IS_PLAYER_IN_ANY_SHOP() IF NOT IS_ENTITY_DEAD(carMichael) IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(), carMichael) RETURN FALSE ENDIF ENDIF RETURN MISSION_FLOW_SET_FAIL_REASON_WHEN_FADED_IN("SOL5_MISSED") ENDIF IF GET_PLAYER_WANTED_LEVEL(PLAYER_ID()) > 0 RETURN MISSION_FLOW_SET_FAIL_REASON_WHEN_FADED_IN("MIC4_DISRUPT") ENDIF IF DOES_ENTITY_EXIST(pedJimmy) IF NOT IS_PED_INJURED(pedJimmy) SET_PED_RESET_FLAG(pedJimmy, PRF_DisablePotentialBlastReactions, TRUE) IF NOT IS_ENTITY_AT_ENTITY(PLAYER_PED_ID(), pedJimmy, <<80.0, 80.0, 80.0>>) IF bWarnedLeavingJimmy = FALSE PRINT_NOW("CMN_JLEAVE", DEFAULT_GOD_TEXT_TIME, 1) bWarnedLeavingJimmy = TRUE ENDIF ELIF IS_ENTITY_AT_ENTITY(PLAYER_PED_ID(), pedJimmy, <<70.0, 70.0, 70.0>>) bWarnedLeavingJimmy = FALSE ENDIF IF NOT IS_ENTITY_AT_ENTITY(PLAYER_PED_ID(), pedJimmy, <<100.0, 100.0, 100.0>>) RETURN MISSION_FLOW_SET_FAIL_REASON_WHEN_FADED_IN("CMN_JLEFT") ENDIF ELSE RETURN MISSION_FLOW_SET_FAIL_REASON_WHEN_FADED_IN("SOL5_JDIED") ENDIF ENDIF BREAK CASE STAGE_GET_TO_MOVIE_PREMIERE IF GET_PLAYER_WANTED_LEVEL(PLAYER_ID()) > 0 RETURN MISSION_FLOW_SET_FAIL_REASON_WHEN_FADED_IN("MIC4_DISRUPT") ENDIF IF DOES_ENTITY_EXIST(pedLimoDriver) IF IS_PED_INJURED(pedLimoDriver) RETURN MISSION_FLOW_SET_FAIL_REASON_WHEN_FADED_IN("MIC4_DRIVERDEAD") ENDIF ENDIF IF DOES_ENTITY_EXIST(carMichael) IF NOT IS_VEHICLE_DRIVEABLE(carMichael) RETURN MISSION_FLOW_SET_FAIL_REASON_WHEN_FADED_IN("MIC4_LIMODEAD") ENDIF ENDIF IF GET_CLOCK_HOURS() > 3 //Give them an hour after the arrive before they fail AND GET_CLOCK_HOURS() < 21 IF NOT IS_ENTITY_DEAD(carMichael) IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(), carMichael) RETURN FALSE ENDIF ENDIF RETURN MISSION_FLOW_SET_FAIL_REASON_WHEN_FADED_IN("SOL5_MISSED") ENDIF IF DOES_ENTITY_EXIST(pedJimmy) IF NOT IS_PED_INJURED(pedJimmy) SET_PED_RESET_FLAG(pedJimmy, PRF_DisablePotentialBlastReactions, TRUE) IF NOT IS_ENTITY_AT_ENTITY(PLAYER_PED_ID(), pedJimmy, <<80.0, 80.0, 80.0>>) IF bWarnedLeavingJimmy = FALSE PRINT_NOW("CMN_JLEAVE", DEFAULT_GOD_TEXT_TIME, 1) bWarnedLeavingJimmy = TRUE ENDIF ELIF IS_ENTITY_AT_ENTITY(PLAYER_PED_ID(), pedJimmy, <<70.0, 70.0, 70.0>>) bWarnedLeavingJimmy = FALSE ENDIF IF NOT IS_ENTITY_AT_ENTITY(PLAYER_PED_ID(), pedJimmy, <<100.0, 100.0, 100.0>>) RETURN MISSION_FLOW_SET_FAIL_REASON_WHEN_FADED_IN("CMN_JLEFT") ENDIF ELSE RETURN MISSION_FLOW_SET_FAIL_REASON_WHEN_FADED_IN("SOL5_JDIED") ENDIF ENDIF IF NOT IS_ENTITY_DEAD(carMichael) IF NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(), carMichael) IF bLeftLimo = FALSE iTimeOfLeaving = GET_GAME_TIMER() bLeftLimo = TRUE ENDIF ELSE iTimeOfLeaving = GET_GAME_TIMER() bLeftLimo = FALSE ENDIF IF GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(), carMichael) > 100.0 OR GET_GAME_TIMER() - iTimeOfLeaving > 5000 RETURN MISSION_FLOW_SET_FAIL_REASON_WHEN_FADED_IN("SOL5_NOLIMO") ENDIF ENDIF BREAK CASE STAGE_MOVIE_PREMIERE_CUT INT i FOR i = 0 TO MOVP_MAX_PEDS - 1 IF DOES_ENTITY_EXIST(pedsMoviePremier[i]) IF IS_PED_INJURED(pedsMoviePremier[i]) RETURN MISSION_FLOW_SET_FAIL_REASON_WHEN_FADED_IN("MIC4_DISRUPT") ENDIF ENDIF ENDFOR IF DOES_ENTITY_EXIST(pedJimmy) IF IS_PED_INJURED(pedJimmy) RETURN MISSION_FLOW_SET_FAIL_REASON_WHEN_FADED_IN("SOL5_JDIED") ELSE IF NOT IS_ENTITY_AT_ENTITY(PLAYER_PED_ID(), pedJimmy, <<60.0, 60.0, 60.0>>) RETURN MISSION_FLOW_SET_FAIL_REASON_WHEN_FADED_IN("CMN_JLEFT") ENDIF ENDIF ENDIF IF GET_PLAYER_WANTED_LEVEL(PLAYER_ID()) > 0 RETURN MISSION_FLOW_SET_FAIL_REASON_WHEN_FADED_IN("MIC4_DISRUPT") ENDIF // IF GET_CLOCK_HOURS() > iArrivalTime + 1 // AND GET_CLOCK_HOURS() < 21 // RETURN MISSION_FLOW_SET_FAIL_REASON_WHEN_FADED_IN("SOL5_MISSED") // // ENDIF BREAK CASE STAGE_GET_TO_MICHAELS_HOUSE //Jimmy fail stuff IF DOES_ENTITY_EXIST(pedJimmy) IF NOT IS_PED_INJURED(pedJimmy) SET_PED_RESET_FLAG(pedJimmy, PRF_DisablePotentialBlastReactions, TRUE) IF NOT IS_ENTITY_AT_ENTITY(PLAYER_PED_ID(), pedJimmy, <<80.0, 80.0, 80.0>>) IF bWarnedLeavingJimmy = FALSE PRINT_NOW("CMN_JLEAVE", DEFAULT_GOD_TEXT_TIME, 1) bWarnedLeavingJimmy = TRUE ENDIF ELIF IS_ENTITY_AT_ENTITY(PLAYER_PED_ID(), pedJimmy, <<70.0, 70.0, 70.0>>) bWarnedLeavingJimmy = FALSE ENDIF IF NOT IS_ENTITY_AT_ENTITY(PLAYER_PED_ID(), pedJimmy, <<100.0, 100.0, 100.0>>) MISSION_FLOW_SET_FAIL_REASON_WHEN_FADED_IN("CMN_JLEFT") ENDIF IF IS_ENTITY_AT_COORD(PLAYER_PED_ID(), vMichaelsHouse, <<12.0, 4.0, 12.0>>) OR IS_ENTITY_IN_ANGLED_AREA( PLAYER_PED_ID(), <<-822.901489,171.583603,68.902214>>, <<-774.385681,170.937317,83.796524>>, 31.750000) IF GET_PLAYER_WANTED_LEVEL(PLAYER_ID()) > 0 RETURN MISSION_FLOW_SET_FAIL_REASON_WHEN_FADED_IN("MIC4_COPS") ENDIF IF NOT (IS_ENTITY_AT_COORD(pedJimmy, vMichaelsHouse, <<12.0, 4.0, 12.0>>) OR IS_ENTITY_IN_ANGLED_AREA(pedJimmy, <<-822.901489,171.583603,68.902214>>, <<-774.385681,170.937317,83.796524>>, 31.750000)) IF NOT IS_ENTITY_AT_ENTITY(PLAYER_PED_ID(), pedJimmy, <<50.0, 50.0, 30.0>>) RETURN MISSION_FLOW_SET_FAIL_REASON_WHEN_FADED_IN("CMN_JLEFT") ENDIF ENDIF ENDIF ELSE RETURN MISSION_FLOW_SET_FAIL_REASON_WHEN_FADED_IN("SOL5_JDIED") ENDIF ENDIF BREAK CASE STAGE_ENTER_THE_HOUSE IF NOT bJimmyGotToHouseOk IF IS_ENTITY_AT_COORD(PLAYER_PED_ID(), vMichaelsHouse, <<12.0, 4.0, 12.0>>) OR IS_ENTITY_IN_ANGLED_AREA( PLAYER_PED_ID(), <<-822.901489,171.583603,68.902214>>, <<-774.385681,170.937317,83.796524>>, 31.750000) IF NOT (IS_ENTITY_AT_COORD(pedJimmy, vMichaelsHouse, <<12.0, 4.0, 12.0>>) OR IS_ENTITY_IN_ANGLED_AREA(pedJimmy, <<-822.901489,171.583603,68.902214>>, <<-774.385681,170.937317,83.796524>>, 31.750000)) IF NOT IS_ENTITY_AT_ENTITY(PLAYER_PED_ID(), pedJimmy, <<50.0, 50.0, 30.0>>) TRIGGER_MUSIC_EVENT("SOL5_FAIL") RETURN MISSION_FLOW_SET_FAIL_REASON_WHEN_FADED_IN("CMN_JLEFT") ENDIF ELSE bJimmyGotToHouseOk = TRUE ENDIF ENDIF ENDIF IF GET_PLAYER_WANTED_LEVEL(PLAYER_ID()) > 0 RETURN MISSION_FLOW_SET_FAIL_REASON_WHEN_FADED_IN("MIC4_COPS") ENDIF IF IS_PED_INJURED(pedJimmy) RETURN MISSION_FLOW_SET_FAIL_REASON_WHEN_FADED_IN("SOL5_JDIED") ENDIF IF IS_PED_INJURED(pedAmanda) RETURN MISSION_FLOW_SET_FAIL_REASON_WHEN_FADED_IN("SOL5_ADIED") ENDIF BREAK CASE STAGE_SAVE_AMANDA IF IS_PED_INJURED(pedAmanda) RETURN MISSION_FLOW_SET_FAIL_REASON_WHEN_FADED_IN("SOL5_ADIED") ENDIF BREAK CASE STAGE_SAVE_TRACEY IF IS_PED_INJURED(pedAmanda) RETURN MISSION_FLOW_SET_FAIL_REASON_WHEN_FADED_IN("SOL5_ADIED") ELSE IF IS_ENTITY_ON_FIRE(pedAmanda) RETURN MISSION_FLOW_SET_FAIL_REASON_WHEN_FADED_IN("SOL5_ADIED") ENDIF ENDIF IF IS_SYNCHRONIZED_SCENE_RUNNING(iSceneId) IF GET_SYNCHRONIZED_SCENE_PHASE(iSceneId) >= 0.9 //0.7 IF IS_PED_INJURED(pedTracey) RETURN MISSION_FLOW_SET_FAIL_REASON_WHEN_FADED_IN("SOL5_TDIED") ENDIF ENDIF ENDIF BREAK CASE STAGE_TRACEY_CAPTOR_SHOT CASE STAGE_FIGHT_INCOMING_BAD_GUYS CASE STAGE_REUNITE_WITH_FAMILY BREAK ENDSWITCH RETURN FALSE ENDFUNC // ____________________________________ MISSION SCRIPT _____________________________________ SCRIPT IF HAS_FORCE_CLEANUP_OCCURRED() STORE_FAIL_WEAPON(PLAYER_PED_ID(), 0) SET_TUXEDOS_AVAILABLE(FALSE) // lock the tuxedos again Mission_Flow_Mission_Force_Cleanup() MISSION_CLEANUP() TERMINATE_THIS_THREAD() ENDIF // ____________________________________ MISSION LOOP _______________________________________ SET_MISSION_FLAG(TRUE) //INFORM_MISSION_STATS_OF_MISSION_START_SOLOMON_5() //BREAK_ON_NATIVE_COMMAND("SET_ENTITY_COORDS", FALSE) // set tuxedos as available SET_TUXEDOS_AVAILABLE(TRUE) WHILE TRUE REPLAY_CHECK_FOR_EVENT_THIS_FRAME("M_Meltdown") IF iDisableReplayCameraTimer > GET_GAME_TIMER() REPLAY_DISABLE_CAMERA_MOVEMENT_THIS_FRAME() //Fix for bug 2227677 ENDIF #IF IS_DEBUG_BUILD debugProcedures() //mission_stage = STAGE_RECORD_UBER //STAGE_DEBUG //Comment out... #ENDIF SWITCH mission_stage #IF IS_DEBUG_BUILD CASE STAGE_DEBUG debugRoutines() BREAK #ENDIF //Stage 0 CASE STAGE_INITIALISE initialiseMission() BREAK CASE STAGE_PICKUP_JIMMY stagePickUpJimmy() BREAK CASE STAGE_GET_TO_MOVIE_PREMIERE stageGetToMoviePremiere() BREAK CASE STAGE_MOVIE_PREMIERE_CUT stageIntroMocapCutscene() BREAK CASE STAGE_GET_TO_MICHAELS_HOUSE stageGetToMichaelsHouse() BREAK CASE STAGE_ENTER_THE_HOUSE stageEnterTheHouse() BREAK CASE STAGE_SAVE_AMANDA stageSaveAmanda() BREAK CASE STAGE_SAVE_TRACEY stageSaveTracey() BREAK CASE STAGE_TRACEY_CAPTOR_SHOT stageMCS1() BREAK CASE STAGE_FIGHT_INCOMING_BAD_GUYS stageFightIncomingBadGuys() BREAK CASE STAGE_REUNITE_WITH_FAMILY stageReuniteWithFamily() BREAK CASE STAGE_JIMMY_SAVES_THE_DAY_CUTSCENE stageJimmySavesTheDayCutscene() BREAK CASE STAGE_MISSION_PASSED mission_Passed() BREAK #IF IS_DEBUG_BUILD CASE STAGE_RECORD_UBER stageRecordUber() BREAK #ENDIF DEFAULT SCRIPT_ASSERT("Unrecognised Mission Stage!") BREAK ENDSWITCH IF HAS_MISSION_FAILED() Mission_Failed() ENDIF WAIT(0) ENDWHILE // should never reach here - always ends by going through the cleanup function ENDSCRIPT