9524 lines
334 KiB
Python
Executable File
9524 lines
334 KiB
Python
Executable File
//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
|
||
|
||
|
||
|