19680 lines
716 KiB
Python
Executable File
19680 lines
716 KiB
Python
Executable File
//+-----------------------------------------------------------------------------+
|
|
//¦ ¦
|
|
//¦ Author: Adam Westwood Date: 09/11/2010 ¦
|
|
//¦ ¦
|
|
//¦-----------------------------------------------------------------------------¦
|
|
//¦ ¦
|
|
//¦ Docks Setup - Scout Docks ¦
|
|
//¦ ¦
|
|
//¦ ¦
|
|
//¦ ¦
|
|
//+-----------------------------------------------------------------------------+
|
|
|
|
//Compile out Title Update changes to header functions.
|
|
//Must be before includes.
|
|
//CONST_INT USE_TU_CHANGES 0 // Removed by Kenneth R.
|
|
|
|
//---------------------------------¦ HEADERS ¦-----------------------------------
|
|
|
|
//CL 3663473 submitted to create new AGGRESSIVE_INVESTIGATE group. Adds RELGROUPHASH_AGGRESSIVE_INVESTIGATE to the REL_GROUP_HASH enum in script.
|
|
//Adam, back to you. Unfortunately my CL is code with a script header change, so you may need a new build to be able to change the new AGGRESSIVE_INVESTIGATE's relationship.
|
|
|
|
//And some other new roots:
|
|
//DS1_noton
|
|
//DS1_whyme
|
|
|
|
//Floyd waving at Trevor
|
|
//- Dictionary: friends@frj@ig_1
|
|
|
|
///depot/gta5/art/anim/export_mb/FRIENDS@/FRJ@/IG_1/
|
|
//WAVE_A.anim
|
|
//WAVE_B.anim
|
|
//WAVE_C.anim
|
|
//WAVE_D.anim
|
|
//WAVE_E.anim
|
|
|
|
//SUPERVISOR A0
|
|
|
|
|
|
USING "rage_builtins.sch"
|
|
USING "globals.sch"
|
|
|
|
USING "commands_misc.sch"
|
|
USING "commands_pad.sch"
|
|
USING "commands_script.sch"
|
|
USING "commands_player.sch"
|
|
USING "commands_streaming.sch"
|
|
USING "commands_vehicle.sch"
|
|
USING "commands_camera.sch"
|
|
USING "commands_path.sch"
|
|
USING "commands_fire.sch"
|
|
USING "commands_graphics.sch"
|
|
USING "commands_object.sch"
|
|
USING "commands_task.sch"
|
|
USING "commands_misc.sch"
|
|
|
|
USING "streamed_scripts.sch"
|
|
USING "cellphone_public.sch"
|
|
USING "flow_public_core_override.sch"
|
|
USING "model_enums.sch"
|
|
USING "script_player.sch"
|
|
USING "selector_public.sch"
|
|
USING "player_ped_public.sch"
|
|
USING "chase_hint_cam.sch"
|
|
USING "commands_physics.sch"
|
|
USING "cutscene_public.sch"
|
|
USING "script_blips.sch"
|
|
USING "replay_public.sch"
|
|
USING "locates_public.sch"
|
|
USING "script_ped.sch"
|
|
USING "commands_debug.sch"
|
|
USING "commands_physics.sch"
|
|
USING "automatic_door_public.sch"
|
|
USING "script_heist.sch"
|
|
USING "taxi_functions.sch"
|
|
USING "CompletionPercentage_public.sch"
|
|
USING "Mission_stat_public.sch"
|
|
USING "area_checks.sch"
|
|
USING "vehicle_gen_public.sch"
|
|
USING "Timelapse.sch"
|
|
USING "clearmissionarea.sch"
|
|
USING "flow_mission_trigger_public.sch"
|
|
USING "tv_control_public.sch"
|
|
USING "cheat_controller_public.sch"
|
|
USING "commands_recording.sch"
|
|
USING "script_misc.sch"
|
|
//USING "asset_management_public.sch"
|
|
|
|
//For the Text
|
|
CONST_INT MAX_QUEUED_TEXT 10
|
|
CONST_INT MAX_QUEUED_HELP_AL 3
|
|
CONST_INT MAX_TEXT_HASHES 50
|
|
//STRING sConversationBlock = "D1AUD"
|
|
|
|
structPedsForConversation sSpeech
|
|
|
|
CONST_INT MPF_NUM_OF_PEDS 5
|
|
|
|
//CUTSCENE_PED_VARIATION sCutscenePedVariationRegister[MPF_NUM_OF_PEDS]
|
|
|
|
USING "text_queue.sch"
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
USING "script_debug.sch"
|
|
USING "select_mission_stage.sch"
|
|
#ENDIF
|
|
|
|
//---------------------------------:CUTSCENE VARS:------------------------------------------
|
|
BOOL b_skipped_mocap
|
|
INT i_current_event
|
|
BOOL b_is_jumping_directly_to_stage
|
|
VEHICLE_INDEX veh_pre_mission_car
|
|
|
|
ENUM SECTION_STAGE
|
|
SECTION_STAGE_SETUP = 0,
|
|
SECTION_STAGE_RUNNING,
|
|
SECTION_STAGE_CLEANUP,
|
|
SECTION_STAGE_SKIP,
|
|
SECTION_STAGE_JUMPING_TO,
|
|
SECTION_DEBUG
|
|
ENDENUM
|
|
|
|
SECTION_STAGE e_section_stage = SECTION_STAGE_SETUP
|
|
|
|
CONST_INT MAX_ANIMS 15
|
|
CONST_INT iTotalBomb 3
|
|
CONST_INT iTotalMerc 15
|
|
CONST_INT iTotalDockWorker 22
|
|
CONST_INT iTotalNumberOfPtX 25
|
|
CONST_INT iNumberOfPatrols 20
|
|
CONST_INT iTotalVehicles 6
|
|
CONST_INT iNumberOfDockSetPieces 12
|
|
CONST_INT iNumberOfWayPointTasks 10
|
|
CONST_INT iTotalNumberOfPhotos 3
|
|
CONST_INT iTotalBuddy 3
|
|
CONST_INT MAX_NUM_OF_CLIPBOARDS 10
|
|
CONST_INT CONST_IGNORE_THIS 0
|
|
INT iPhotosTaken
|
|
INT iHelp
|
|
INT iCraneHelp
|
|
INT iCraneTimer
|
|
INT i_placeholder_dialogue_timer = 0
|
|
INT i_current_dialogue_duration = 0
|
|
INT iMissionDialogue
|
|
INT iDialogueTimer
|
|
INT iHandlerSection
|
|
INT iCraneFailTimer
|
|
INT iCraneDialogueTimer
|
|
INT iReplayStage
|
|
INT iNextFloydHurrySpeechTime
|
|
INT iStageStartTime
|
|
INT iGateSecurityGuy
|
|
INT iSecurityTimer
|
|
INT sceneBlackAbuse
|
|
INT sceneBlackAbuse2
|
|
INT soundBeating
|
|
INT iTimer
|
|
INT iReleaseTimer
|
|
INT ssCraneWorker
|
|
INT iCraneHelpTimer
|
|
INT iFailTimer
|
|
INT iBlockReplayCameraTimer
|
|
INT iMerryWeatherFail
|
|
INT iDamagedContainer
|
|
INT iFloydHauler
|
|
INT iAmbientDialogueTimer
|
|
INT iJumpTimer
|
|
INT iStaggerTimer
|
|
INT iHandlerFailTimer
|
|
INT iCraneSound = GET_SOUND_ID()
|
|
INT iHandlerDialogueSwitch
|
|
INT iCraneStrain = GET_SOUND_ID()
|
|
INT iManagePickerAudio
|
|
|
|
INT ssWadeOnCouch
|
|
|
|
INT iLineMatch = -1
|
|
|
|
//Time of Day
|
|
//CAMERA_INDEX camTOD
|
|
//INT iTimeOfDayTracker
|
|
//TIMEOFDAY todReference
|
|
|
|
CAMERA_INDEX cam_interp
|
|
CAM_VIEW_MODE cCam
|
|
|
|
TEXT_LABEL_23 tSavedBanterRoot
|
|
TEXT_LABEL_23 tResumeBanterLabel
|
|
|
|
//BOOL
|
|
BOOL bRunFailChecks
|
|
BOOL bCleanup
|
|
BOOL bMissionStageLoaded
|
|
BOOL bDisabledHotSwap
|
|
BOOL balarmtriggered
|
|
//BOOL bPrinted
|
|
BOOL bCleanupStage
|
|
BOOL bInitStage
|
|
BOOL bForceTasks
|
|
BOOL bDialogue
|
|
BOOL bGodText
|
|
BOOL bdistancewarning
|
|
BOOL bTooFar = FALSE
|
|
BOOL bClearText = FALSE
|
|
BOOL bDoneWithTruck = FALSE
|
|
BOOL bContainerSetUpForDrive = FALSE
|
|
BOOL bClearTasks = FALSE
|
|
BOOL bLockForklift
|
|
BOOl bToggleObjective = FALSE
|
|
BOOL bHelpText = FALSE
|
|
BOOL bFakeSound
|
|
BOOL bRestrictedSupressed = FALSE
|
|
BOOL bPhoneCallStarted = FALSE
|
|
BOOL bFloydWalkPaused
|
|
BOOL bKilledOnFootConversation
|
|
BOOL bDoneHurrySpeech
|
|
BOOL bIncreaseFloydSpeed
|
|
FLOAT fFloydWalkSpeed
|
|
BOOL bSavedConvo
|
|
//BOOL bDoneBanter
|
|
BOOL bDoneConversationAnim[20]
|
|
BOOL bSetAltAnim = FALSE
|
|
BOOL bCarryingContainer = FALSE
|
|
BOOL bInitialGodText = FALSE
|
|
BOOL bTrailerAttachements = FALSE
|
|
BOOL bCreateFirstHauler = FALSE
|
|
BOOL bWaveIn = FALSE
|
|
BOOl bClearCutscenArea = FALSE
|
|
BOOl bMercPatrolCreated[iTotalMerc]
|
|
BOOl bPatrolCreated[iTotalDockWorker]
|
|
BOOL bIgnoreTheseFails = FALSE
|
|
BOOL bHitMarkToTriggerAudioSceneChange = FALSE
|
|
BOOL bBoardCutsceneRequested = FALSE
|
|
BOOL bPedDockCraneVariation = FALSE
|
|
|
|
BOOL bDoPlayerAnims = FALSE
|
|
|
|
BOOL bHasChanged
|
|
|
|
//TRUE, TRUE, FALSE, FALSE
|
|
BOOL b1 = TRUE
|
|
BOOL b2 = FALSE
|
|
BOOL b3 = FALSE
|
|
BOOL b4 = FALSE
|
|
|
|
BOOL bAddedRopes
|
|
BOOL bSetYourTimer
|
|
BOOL bForceNoGrab
|
|
BOOL bTriggerSetPiece[iNumberOfDockSetPieces]
|
|
BOOL bWaypointTask[iNumberOfWayPointTasks]
|
|
BOOL bDoCatchUp
|
|
BOOL bCraneSectionComplete
|
|
BOOL bCrate1Attached
|
|
BOOL bCrate0Attached
|
|
BOOL bIsJumpingDirectlyToStage
|
|
BOOL bObjectsCreated[4]
|
|
BOOL bSkipping = FALSE
|
|
BOOL bGoToSpeach = FALSE
|
|
BOOL bcutsceneplaying = TRUE
|
|
|
|
INT iNumberAnimsLoaded
|
|
STRING sAnimLoaded[MAX_ANIMS]
|
|
|
|
INT iWayTarget
|
|
INT iWayPlayer
|
|
FLOAT fSpeed
|
|
VECTOR vDistTarget
|
|
VECTOR vDistPlayer
|
|
FLOAT fPlayerDist
|
|
FLOAT fTargetDist
|
|
TWEAK_FLOAT fIdealDistance 0.6
|
|
TWEAK_FLOAT fMinDistance 1.1
|
|
TWEAK_FLOAT fMaxDistance 2.0
|
|
TWEAK_FLOAT fTargerMaxCatchUp 2.0
|
|
FLOAT fThisSpeed = 1
|
|
|
|
FLOAT fXTolerance = 0.48
|
|
FLOAT fYTolerance = 0.42
|
|
|
|
FLOAT fThisValue = -5.700
|
|
|
|
FLOAT fFallOff = 9.8
|
|
FLOAT fIntensity = 30
|
|
FLOAT fInnerAngle = 7.0
|
|
FLOAT fOuterAngle = 7.0
|
|
FLOAT fExposure = 10.1
|
|
|
|
INT icutsceneprog
|
|
|
|
//Crane stuff
|
|
BOOL b_is_crane_cinematic_active
|
|
|
|
VECTOR v_helper_offset
|
|
|
|
VECTOR v_crane_pos = << -53.6982, -2415.7900, 5.0500 >> //<< -53.2665, -2415.8633, 5.066 >>
|
|
BOOL b_is_audio_scene_active
|
|
CONST_FLOAT AUDIO_TRIGGER_THRESHOLD 0.01
|
|
CONST_FLOAT SPREADER_START_OFFSET -7.0 //-15.4
|
|
CAMERA_INDEX cam_cutscene
|
|
VECTOR v_left_door_offset = <<-1.3, -6.08, 1.4>>
|
|
VECTOR v_right_door_offset = <<1.3, -6.08, 1.4>>
|
|
BLIP_INDEX blip_current_destination
|
|
BLIP_INDEX container0_blip
|
|
BLIP_INDEX container1_blip
|
|
BLIP_INDEX Blip_player
|
|
|
|
OBJECT_INDEX ObjdockProps[10]
|
|
OBJECT_INDEX objHandlerContainer[3]
|
|
INT iGandDTimer
|
|
INT iCameraTimer
|
|
|
|
VECTOR vAttach1 = <<-0.800, 0.0, 0.0>>
|
|
VECTOR vAttach2 = <<-2.0, 0.0, 1.3>>
|
|
VECTOR vAttachRot = <<0,0,0>>
|
|
VECTOR vInitialCabinPosition
|
|
|
|
INTERIOR_INSTANCE_INDEX interior_living_room
|
|
|
|
//VECTOR VECTOR_ZERO = <<0.0, 0.0, 0.0>>
|
|
|
|
//Ensure you reset bPrint if P-skipping is going on
|
|
CONST_INT iPrintTotal 25
|
|
//STRING sPrintList[iPrintTotal]
|
|
ENUM PrintList
|
|
PH_HELP1,
|
|
PH_HELP2,
|
|
PH_HELP3,
|
|
PH_HELP4,
|
|
FL_HELP1,
|
|
FL_HELP2,
|
|
DCKH_SWP_TRVR,
|
|
DCKH_COVER,
|
|
DCKH_GEOTAG,
|
|
DCKH_DETONATE,
|
|
DCKH_DIA1,
|
|
DCKH_DIA2,
|
|
DCKH_DIA3,
|
|
DCKH_DIA4,
|
|
DCKH_DIA5,
|
|
DCKH_DIA6,
|
|
DCKH_HELP1,
|
|
DCKH_HELP2,
|
|
DCKH_PASS,
|
|
DCKH_FAIL
|
|
ENDENUM
|
|
|
|
ENUM MISSION_REQUIREMENT
|
|
REQ_CRANE,
|
|
REQ_HAULER_WITH_TRAILER,
|
|
REQ_CONTAINERS_FOR_HANDLER_SECTION_START,
|
|
REQ_CONTAINERS_FOR_HANDLER_SECTION_FINAL,
|
|
REQ_HAULER_WITH_TRAILER_FINAL_STAGE,
|
|
REQ_TREVORS_TRUCK,
|
|
REQ_FLOYD,
|
|
REQ_WADE,
|
|
REQ_SECURITY,
|
|
REQ_HANDLER,
|
|
REQ_CAR_TO_DRIVE_FINAL_STAGE,
|
|
REQ_MERRYWEATHER_GUARDS_AT_OTHER_DOCKS,
|
|
REQ_GUARDS_AND_FLOYD,
|
|
REQ_CRANE_CONTAINERS
|
|
ENDENUM
|
|
|
|
//SynchScene Data
|
|
INT sceneArriveStartId
|
|
INT sceneArriveMainId
|
|
//INT sceneArriveEndId
|
|
|
|
INT sceneDockPipe1Id
|
|
INT sceneDockPipe2Id
|
|
INT sceneDockPipe3Id
|
|
INT sceneDockPipe4Id
|
|
INT sceneDockPipe5Id
|
|
|
|
INT sceneBlackWater1Id
|
|
INT sceneBlackWater2Id
|
|
INT sceneBlackWater3Id
|
|
INT sceneBlackWater4Id
|
|
INT sceneBlackWater5Id
|
|
|
|
INT sceneGantryCraneDynamic1
|
|
INT sceneGantryCraneDynamic2
|
|
INT sceneGantryCraneDynamic3
|
|
INT sceneGantryCraneDynamic4
|
|
|
|
INT sceneGuysAroundCar1
|
|
INT sceneGuysAroundCar2
|
|
INT sceneGuysAroundCar3
|
|
|
|
INT sceneDockWorkerTalking1A
|
|
INT sceneDockWorkerTalking2A
|
|
|
|
INT ssCraneAnims
|
|
|
|
INT sceneHandlerA1
|
|
|
|
INT sceneForkliftB1
|
|
|
|
INT sceneWelder
|
|
|
|
INT sceneCraneStatic
|
|
|
|
INT sceneDummy
|
|
|
|
INT sceneFloydPackage1init
|
|
|
|
INT iWalkAndTalk
|
|
INT iMerryWeatherResponse
|
|
|
|
MODEL_NAMES model_crane = Prop_Dock_RTG_LD
|
|
//MODEL_NAMES model_spreader = P_Dock_RTG_LD_spdr
|
|
MODEL_NAMES model_spreader = P_DOCK_CRANE_SLD_S //P_DOCK_CRANE_SPRDRLD
|
|
MODEL_NAMES model_cabin = P_Dock_RTG_LD_Cab
|
|
MODEL_NAMES model_container = Prop_Container_LD //Prop_Container_LD
|
|
MODEL_NAMES model_wheel_left = P_Dock_RTG_LD_wheel
|
|
MODEL_NAMES model_wheel_right = P_Dock_RTG_LD_wheel
|
|
MODEL_NAMES model_boom = P_Dock_RTG_LD_wheel //P_DOCK_CRANE_CABLES //?
|
|
MODEL_NAMES model_left_door = PROP_CNTRDOOR_LD_L
|
|
MODEL_NAMES model_right_door = PROP_CNTRDOOR_LD_R
|
|
MODEL_NAMES model_wheel = model_wheel_left
|
|
|
|
//VECTOR vWadeArriveStart = <<-61.084805,-2525.028320,5.950000>>
|
|
//FLOAT fWadeArriveStart = -10.750012
|
|
//
|
|
//VECTOR vFloydArriveStart = <<-61.744289,-2524.412598,5.950000>>
|
|
//FLOAT fFloydArriveStart = -20.750008
|
|
|
|
STRUCT SETPIECE_PED
|
|
PED_INDEX ped
|
|
BLIP_INDEX blip
|
|
MODEL_NAMES model
|
|
BOOL b_is_created
|
|
INT i_event
|
|
INT i_timer
|
|
OBJECT_INDEX obj_prop
|
|
//VECTOR v_dest
|
|
VECTOR v_spawn_position
|
|
FLOAT f_start_heading
|
|
COVERPOINT_INDEX cover
|
|
VECTOR v_ss_pos
|
|
FLOAT f_ss_rot
|
|
ENDSTRUCT
|
|
|
|
STRUCT SETPIECE_VEHICLE
|
|
VEHICLE_INDEX veh
|
|
MODEL_NAMES model
|
|
BOOL b_is_created
|
|
INT i_event
|
|
VECTOR v_spawn_position
|
|
FLOAT f_start_heading
|
|
ENDSTRUCT
|
|
|
|
SETPIECE_VEHICLE s_sv_car_to_admire[1]
|
|
|
|
SETPIECE_PED s_sp_supervisor1[1]
|
|
SETPIECE_PED s_sp_blackwater_with_dockworker [3]
|
|
SETPIECE_PED s_sp_gantry_guys_static [2]
|
|
SETPIECE_PED s_sp_guys_around_car [5]
|
|
SETPIECE_PED s_sp_dock_workers_on_pipe [3]
|
|
SETPIECE_PED s_sp_welder[1]
|
|
SETPIECE_PED s_sp_dock_workers_talking [2]
|
|
SETPIECE_PED s_sp_forklift_supervisorA[1]
|
|
SETPIECE_PED s_sp_forklift_supervisorB[1]
|
|
SETPIECE_PED s_sp_gantry_guys_dynamic [4]
|
|
SETPIECE_PED s_sp_floyd_grabs_package [3]
|
|
|
|
ENUM AMBIENT_SET_PIECE_SPEECH_ENUM
|
|
AMBSP_BLACKWATER_WITH_DOCK_WORKER,
|
|
AMBSP_DOCK_WORKERS_ON_PIPE,
|
|
AMBSP_GUYS_WITH_THE_PACKAGE,
|
|
AMBSP_GUYS_BY_THE_CAR,
|
|
AMBSP_WELDER
|
|
ENDENUM
|
|
|
|
|
|
ENUM SynchList
|
|
SS_EMPTY,
|
|
SS_ARRIVE_AT_DOCKS,
|
|
SS_FLOYD_GRABS_PACKAGE,
|
|
SS_GANTRY_GUYS,
|
|
SS_guys_around_car,
|
|
SS_dock_workers_on_pipe,
|
|
SS_WELDER,
|
|
SS_dock_workers_talking,
|
|
SS_FORKLIFT_SUPERVISOR_A,
|
|
SS_FORKLIFT_SUPERVISOR_B,
|
|
SS_WALK_AND_TALK_1,
|
|
SS_blackwater_with_dockworker,
|
|
SS_STATIC_GANTRY_GUYS,
|
|
SS_NUMBER_OF_ITEMS_IN_THIS_ENUM
|
|
ENDENUM
|
|
|
|
STRUCT SCENE_DATA
|
|
//STRING st_AnimDict
|
|
//STRING st_AnimName
|
|
VECTOR v_scene_pos
|
|
VECTOR v_scene_rot
|
|
BOOL b_data_generated
|
|
ENDSTRUCT
|
|
|
|
BOOL bSetPiece[SS_NUMBER_OF_ITEMS_IN_THIS_ENUM]
|
|
|
|
PED_INDEX ped_dummy[5]
|
|
|
|
VECTOR v_ss_floyd[SS_NUMBER_OF_ITEMS_IN_THIS_ENUM]
|
|
FLOAT f_ss_floyd[SS_NUMBER_OF_ITEMS_IN_THIS_ENUM]
|
|
VECTOR v_ss_wade[SS_NUMBER_OF_ITEMS_IN_THIS_ENUM]
|
|
FLOAT f_ss_wade[SS_NUMBER_OF_ITEMS_IN_THIS_ENUM]
|
|
|
|
BOOL bSSComplete[SS_NUMBER_OF_ITEMS_IN_THIS_ENUM]
|
|
|
|
SCENE_DATA s_sd_arrive_at_docks
|
|
SCENE_DATA s_sd_gantry_guys_dynamic
|
|
SCENE_DATA s_sd_gantry_guys_static
|
|
SCENE_DATA s_sd_guys_around_car
|
|
SCENE_DATA s_sd_dock_workers_on_pipe
|
|
SCENE_DATA s_sd_welder
|
|
SCENE_DATA s_sd_forklift_supervisor_a
|
|
SCENE_DATA s_sd_forklift_supervisor_b
|
|
SCENE_DATA S_sd_blackwater_with_dockworker
|
|
SCENE_DATA s_sd_floyd_grabs_package
|
|
|
|
//SynchList eSynch = SS_ARRIVE_AT_DOCKS
|
|
|
|
//INT
|
|
INT iSetupProgress
|
|
INT iProgress
|
|
INT iCount
|
|
//INT iLastGodTextID
|
|
INT iPreStreamStage
|
|
INT iAlarmID
|
|
INT iThisCounter
|
|
INT iCutsceneStage
|
|
|
|
FLOAT fMercStart[iTotalMerc]
|
|
FLOAT fDockWorkerStart [iTotalDockWorker]
|
|
FLOAT fPlayerStart = 133.1177
|
|
FLOAT fstartheading
|
|
FLOAT ffloydStart = 30.6234
|
|
FLOAT fWadeStart = 30.6234
|
|
FLOAT fSecurity = 233.1648
|
|
FLOAT fDockVeh[iTotalVehicles]
|
|
|
|
FLOAT fVal1 = 0.8
|
|
FLOAT fVal2 = 0.8
|
|
FLOAT fVal3 = 3.1
|
|
FLOAT fVal4 = 3.5
|
|
|
|
PED_INDEX pedMerc[iTotalMerc]
|
|
PED_INDEX pedDockWorker[iTotalDockWorker]
|
|
PED_INDEX pedFloyd
|
|
PED_INDEX pedWade
|
|
PED_INDEX pedSecurity
|
|
|
|
VEHICLE_INDEX vehMission
|
|
VEHICLE_INDEX vehHandler
|
|
VEHICLE_INDEX vehDocks[iTotalVehicles]
|
|
//Other Docks
|
|
VEHICLE_INDEX vehFloydTruck
|
|
VEHICLE_INDEX vehFinal
|
|
VEHICLE_INDEX vehBlocking
|
|
VEHICLE_INDEX vehFirstHauler
|
|
VEHICLE_INDEX vehTrailer1
|
|
VEHICLE_INDEX vehTrailer2
|
|
VEHICLE_INDEX vanByDocks
|
|
|
|
OBJECT_INDEX objClipboard[MAX_NUM_OF_CLIPBOARDS]
|
|
OBJECT_INDEX objPencil[MAX_NUM_OF_CLIPBOARDS]
|
|
//OBJECT_INDEX objBlocking
|
|
|
|
//ROPE_INDEX RopeSub
|
|
|
|
SEQUENCE_INDEX seqMain
|
|
|
|
//Camera
|
|
CAMERA_INDEX camMain
|
|
|
|
//VECTOR
|
|
VECTOR vStageStart = << -1154.9279, -1521.5001, 9.6346 >>
|
|
VECTOR vPlayerStart = << -1154.9279, -1521.5001, 9.6346 >>
|
|
VECTOR vfloydStart = << -1149.9487, -1528.3273, 3.2755 >>
|
|
VECTOR vWadeStart = << -1149.9487, -1526.3273, 3.2755 >>
|
|
VECTOR vMercStart[iTotalMerc]
|
|
VECTOR vMercPatrol[iTotalMerc][4]
|
|
VECTOR vDockWorkerStart [iTotalDockWorker]
|
|
VECTOR vDockPatrol[iTotalDockWorker][4]
|
|
VECTOR vDocks = << 18.1416, -2532.4927, 5.0504 >>
|
|
VECTOR vForkLiftLoadingArea = << -95.8455, -2455.7607, 5.0191 >>
|
|
VECTOR vSecurity = << 12.2127, -2531.0344, 5.0509 >>
|
|
VECTOR vParkUpHere = <<-59.0169, -2531.6919, 5.0103>> //<< -61.0438, -2531.3821, 5.0103 >>
|
|
VECTOR vDockVeh[iTotalVehicles]
|
|
|
|
VECTOR vSpreaderPosition = <<-52.94, -2415.64, 14.76>>
|
|
|
|
BLIP_INDEX blipDockWorker[iTotalDockWorker]
|
|
BLIP_INDEX blipHandlerContainers[3]
|
|
BLIP_INDEX blipCrane
|
|
BLIP_INDEX blipHaulerLoadingArea
|
|
|
|
PTFX_ID PTX_SHIP_EXPLOSIONS[iTotalNumberOfPtX]
|
|
BOOL bPTX_Triggered[iTotalNumberOfPtX]
|
|
|
|
//CRANE VARIABLES
|
|
|
|
FLOAT MAX_CABIN_Y =5.5
|
|
FLOAT MIN_CABIN_Y =-6.4
|
|
//
|
|
FLOAT MAX_SPREADER_Z =-3 //-2
|
|
FLOAT MIN_SPREADER_Z =-14 //-14
|
|
//
|
|
FLOAT MAX_CRANE_OFFSET = 5.0
|
|
FLOAT MIN_CRANE_OFFSET =-56.600
|
|
//
|
|
FLOAT MAX_CABIN_VEL =3.0 //5.0
|
|
FLOAT MAX_SPREADER_VEL = 3.0//5.0
|
|
FLOAT MAX_CRANE_VEL =3.0
|
|
//
|
|
FLOAT CABIN_ACCEL =5.0
|
|
FLOAT SPREADER_ACCEL =3.0//5.0
|
|
FLOAT CRANE_ACCEL =3.0
|
|
//BOOL b_added_ropes = FALSE
|
|
INT i_spreader_dampingframes = 120
|
|
FLOAT f_ropes_len_change_rate = 1.4//3.5
|
|
FLOAT f_ropes_min_len = 4 //2
|
|
FLOAT f_spreader_damping = 1.3
|
|
|
|
BOOL bInhibitCrane = FALSE
|
|
|
|
//CRANE CAM
|
|
|
|
//VECTOR v_cabin_attach_start = <<15.1064, -25.756, 9.692>>
|
|
//VECTOR v_cabin_point_start = <<13.610, -23.579, 11.002>>
|
|
//
|
|
//VECTOR v_cabin_attach_end = <<9.763, -23.549, 12.491>>
|
|
//VECTOR v_cabin_point_end = <<9.100, -23.647, 9.751>>
|
|
//
|
|
//VECTOR v_spreader_attach_start = <<15.1069, -25.8024, 11.8412>>
|
|
//VECTOR v_spreader_point_start = <<13.6548, -23.6745, 10.3039>>
|
|
//
|
|
//VECTOR v_spreader_attach_end = <<15.1069, -25.5991, -10.000>>
|
|
//VECTOR v_spreader_point_end = <<13.6548, -23.1884, -10.5>>
|
|
|
|
//Original
|
|
|
|
//VECTOR v_cabin_attach_start = <<15.1064, -25.8022, 11.8410>>
|
|
//VECTOR v_cabin_point_start = <<13.6553, -23.6718, 10.3063>>
|
|
//
|
|
//VECTOR v_cabin_attach_end = <<7.4302, -25.8017, 11.7590>>
|
|
//VECTOR v_cabin_point_end = <<6.4453, -23.4199, 10.2238>>
|
|
//
|
|
//VECTOR v_spreader_attach_start = <<15.1069, -25.8024, 11.8412>>
|
|
//VECTOR v_spreader_point_start = <<13.6548, -23.6745, 10.3039>>
|
|
//
|
|
//VECTOR v_spreader_attach_end = <<15.1069, -25.5991, -10.000>>
|
|
//VECTOR v_spreader_point_end = <<13.6548, -23.1884, -10.5>>
|
|
|
|
VECTOR v_cabin_attach_start = <<15.1064, -25.8022, 11.8410>>
|
|
VECTOR v_cabin_point_start = <<13.6553, -23.6718, 10.3063>>
|
|
|
|
VECTOR v_cabin_attach_end = <<20.0, -21.400, 14.200>>
|
|
VECTOR v_cabin_point_end = <<2.800, -2.800, 4.343>>
|
|
|
|
VECTOR v_spreader_attach_start = <<15.1069, -25.8024, 11.8412>>
|
|
VECTOR v_spreader_point_start = <<13.6548, -23.6745, 10.3039>>
|
|
|
|
VECTOR v_spreader_attach_end = <<15.1069, -25.5991, -10.000>>
|
|
VECTOR v_spreader_point_end = <<13.6548, -23.1884, -10.5>>
|
|
|
|
//VECTOR v_attach_to_cam_value = <<-1.512, 0.0, -1.678>>//<<-2.5, 0.0, -3.5479>>
|
|
VECTOR v_attach_to_cam_value = <<-1.512, 0.0, -1.078>>
|
|
VECTOR v_crane_attach_cam_rot = <<-89.0, 0.0, -90.0>>
|
|
FLOAT f_crane_attach_cam_fov = 100
|
|
FLOAT f_crane_cam_fov = 45.0193
|
|
|
|
VECTOR vRopeTop1= <<-2.6, -1.0, 0.285>> //<< -0.7,-2.6, 0.3>> //0.3
|
|
VECTOR vRopeBottom1 = <<1.0, -2.55, 1.75>>//<<-2.65, -0.7, 0.2>>
|
|
|
|
VECTOR vRopeTop2= <<2.6, -1.0, 0.285>>//<< -0.7,2.6, 0.3>>//
|
|
VECTOR vRopeBottom2 = <<1.0,2.65,1.75>>//<<2.65, -0.7, 0.2>>
|
|
|
|
VECTOR vRopeTop3= <<-2.6, 1.0, 0.285>>//<<0.7,-2.6,0.3>>
|
|
VECTOR vRopeBottom3 = <<-1.0,-2.55, 1.75>>//<<-2.65, 0.7, 0.2>>
|
|
|
|
VECTOR vRopeTop4= <<2.6, 1.0, 0.285>>//<< 0.7,2.6, 0.3>>
|
|
VECTOR vRopeBottom4 = <<-1.0,2.65,1.75>>//<<2.65, 0.7, 0.2>>
|
|
|
|
//Inside ropes
|
|
|
|
VECTOR vRopeTop5= <<2.6, 0.05, 0.285>>//<< -0.05,2.6, 0.3>>
|
|
VECTOR vRopeBottom5 = <<-0.05,2.65,1.75>>//<<2.65, -0.05, 0.2>>
|
|
|
|
VECTOR vRopeTop6= <<2.6, -0.05, 0.285>>//<<0.05,2.6, 0.3>>
|
|
VECTOR vRopeBottom6 = <<0.05, 2.65, 1.75>>//<<2.65, 0.05, 0.2>>
|
|
|
|
VECTOR vRopeTop7= <<-2.6, 0.05, 0.285>>//<<-0.05, -2.6,0.3>>
|
|
VECTOR vRopeBottom7 = <<-0.05, -2.55, 1.75>>//<<-2.65, -0.05, 0.2>>
|
|
|
|
VECTOR vRopeTop8= <<-2.6, -0.05, 0.285>>//<<0.05,-2.6, 0.3>>
|
|
VECTOR vRopeBottom8 = <<0.05, -2.55, 1.75>>//<<-2.65,0.05, 0.2>>
|
|
|
|
LOCATES_HEADER_DATA sLocatesData
|
|
|
|
WEAPON_TYPE wtAdRifle = WEAPONTYPE_ADVANCEDRIFLE
|
|
|
|
|
|
structPedsForConversation s_conversation_peds
|
|
|
|
SCRIPTTASKSTATUS TaskStatus
|
|
CONST_FLOAT CONVERSATION_PAUSE_DISTANCE 50.0
|
|
|
|
//INT
|
|
INT iHelpDuration
|
|
|
|
//VECTOR
|
|
VECTOR vHelpText
|
|
STRING sHelpText
|
|
|
|
ENTITY_INDEX entHelpText
|
|
//Arrow direction for help text
|
|
eARROW_DIRECTION eArrowDirection = HELP_TEXT_SOUTH
|
|
|
|
// ========================================= ENUMS =========================================
|
|
// MISSION_ENUMS stages that make up each section of the mission
|
|
ENUM MISSION_STAGE_ENUM
|
|
MISSION_STAGE_SETUP, //0
|
|
MISSION_STAGE_OPENING_CUTSCENE,
|
|
MISSION_STAGE_1,
|
|
MISSION_STAGE_2,
|
|
MISSION_STAGE_4,
|
|
MISSION_STAGE_5,
|
|
MISSION_STAGE_6,
|
|
MISSION_STAGE_7,
|
|
MISSION_STAGE_8,
|
|
MISSION_STAGE_10,
|
|
MISSION_STAGE_11,
|
|
MISSION_STAGE_PASSED,
|
|
MISSION_STAGE_FAIL
|
|
ENDENUM
|
|
MISSION_STAGE_ENUM eMissionStage = MISSION_STAGE_SETUP
|
|
|
|
MISSION_STAGE_ENUM eFailedStage = MISSION_STAGE_SETUP
|
|
//different mission fail conditions
|
|
|
|
STRUCT CRANE_DATA
|
|
OBJECT_INDEX obj_main
|
|
OBJECT_INDEX obj_cabin
|
|
OBJECT_INDEX obj_spreader
|
|
OBJECT_INDEX obj_lift
|
|
OBJECT_INDEX obj_wheels[8]
|
|
OBJECT_INDEX obj_helper
|
|
OBJECT_INDEX obj_boom_cable
|
|
ROPE_INDEX ropes[8]
|
|
|
|
VECTOR v_cabin_attach_offset
|
|
VECTOR v_spreader_attach_offset
|
|
VECTOR v_lift_attach_offset
|
|
VECTOR v_start_pos
|
|
VECTOR v_wheel_offsets[8]
|
|
VECTOR v_wheel_rotation
|
|
VECTOR v_prev_spreader_pos
|
|
VECTOR v_prev_spreader_rot
|
|
|
|
|
|
FLOAT f_crane_offset
|
|
FLOAT f_cabin_vel
|
|
FLOAT f_spreader_vel
|
|
FLOAT f_lift_vel
|
|
FLOAT f_crane_vel
|
|
FLOAT f_cam_z_progress
|
|
FLOAT f_cam_x_progress
|
|
|
|
BOOL b_container_attached
|
|
BOOL b_lift_active
|
|
BOOL b_spreader_stuck_on_ground
|
|
|
|
INT i_cabin_sound_id
|
|
INT i_spreader_fail_sound_id
|
|
INT i_spreader_sound_id
|
|
INT i_crane_sound_id
|
|
INT i_lift_sound_id
|
|
INT i_strain_sound_id
|
|
INT i_dampingframes
|
|
INT i_num_vertical_movement_frames
|
|
INT i_num_cabin_movement_frames
|
|
INT i_current_cam
|
|
INT i_prev_cam
|
|
ENDSTRUCT
|
|
|
|
STRUCT CONTAINER_SPOT
|
|
VECTOR v_offset
|
|
BOOL b_is_taken
|
|
BOOL b_is_active
|
|
ENDSTRUCT
|
|
|
|
STRUCT CARGO_CONTAINER
|
|
OBJECT_INDEX obj_main
|
|
OBJECT_INDEX obj_left_door
|
|
OBJECT_INDEX obj_right_door
|
|
BLIP_INDEX blip
|
|
|
|
CONTAINER_SPOT s_spots[2]
|
|
BOOL b_loaded_on_truck
|
|
BOOL b_is_full
|
|
|
|
FLOAT f_speed
|
|
FLOAT f_prev_speed
|
|
VECTOR vPrevVel
|
|
|
|
INT iTimeSinceDropped
|
|
INT iTimeSinceLastCollisionSound
|
|
BOOL bCollisionSoundPrimed
|
|
|
|
ENDSTRUCT
|
|
|
|
CARGO_CONTAINER s_containers[2]
|
|
CRANE_DATA s_crane
|
|
|
|
ENUM MISSION_FAIL_ENUM
|
|
#IF IS_DEBUG_BUILD
|
|
FORCE_FAIL,
|
|
#ENDIF
|
|
GENERIC,
|
|
VEHICLE_DEAD,
|
|
VEHICLE_STUCK,
|
|
FORKLIFT_DEAD,
|
|
FLOYDS_FORKLIFT_DEAD,
|
|
FLOYD_LEFT,
|
|
FLOYD_DEAD,
|
|
WADE_LEFT,
|
|
COVER_BLOWN,
|
|
COVER_BLOWN_RAN_OVER,
|
|
TRUCK_DEAD,
|
|
TRUCK_STUCK,
|
|
HANDLER_DEAD,
|
|
HANDLER_STUCK,
|
|
DAMAGED_CARGO,
|
|
DAMAGED_HANDLER_CARGO,
|
|
DAMAGED_CRATES,
|
|
ABADONED_DOCKS,
|
|
WADE_AND_FLOYD_DEAD,
|
|
DITCHED_THE_CARGO,
|
|
WADE_DEAD
|
|
ENDENUM
|
|
|
|
MISSION_FAIL_ENUM reason_for_fail = GENERIC
|
|
//debug things
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
//BLIP_INDEX
|
|
WIDGET_GROUP_ID wgDOCKSSETUP
|
|
INT iMissionStageDB
|
|
INT iProgressDB
|
|
INT iPreLoadStageDB
|
|
INT iSpeechTextProgressDB
|
|
INT iCraneHelpDB
|
|
INT iWidgetMissionSkip
|
|
INT ieMissionStageTemp
|
|
BOOl bJumpToMissionJump
|
|
INT iSpeechProgress
|
|
INT iMissionDialogueDB
|
|
|
|
CONST_INT MAX_SKIP_MENU_LENGTH 11 //number of stages in mission(length of menu)
|
|
INT iReturnStage //mission stage to jump to
|
|
MissionStageMenuTextStruct SkipMenuStruct[MAX_SKIP_MENU_LENGTH]//struct containing the debug menu
|
|
#ENDIF
|
|
|
|
// =============================== PROCEDURES AND FUNCTIONS ================================
|
|
|
|
BOOL bPCControlsSetup = FALSE
|
|
|
|
// Initialise PC controls for peircing and tatooing minigames
|
|
PROC SETUP_PC_CONTROLS()
|
|
|
|
IF IS_PC_VERSION()
|
|
IF NOT bPCControlsSetup
|
|
INIT_PC_SCRIPTED_CONTROLS( "Port_LS_Heist_crane")
|
|
bPCControlsSetup = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
|
|
PROC CLEANUP_PC_CONTROLS()
|
|
IF IS_PC_VERSION()
|
|
IF bPCControlsSetup
|
|
SHUTDOWN_PC_SCRIPTED_CONTROLS()
|
|
bPCControlsSetup = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
FUNC BOOL INIT_CUTSCENE_STAGE()
|
|
IF bInitStage = FALSE
|
|
SETTIMERA(0)
|
|
bInitStage = TRUE
|
|
RETURN TRUE
|
|
ELSE
|
|
RETURN FALSE
|
|
ENDIF
|
|
ENDFUNC
|
|
|
|
PROC ADVANCE_CUTSCENE()
|
|
SETTIMERA(0)
|
|
iCutsceneStage++
|
|
ENDPROC
|
|
|
|
PROC ADVANCE_STAGE()
|
|
bCleanupStage = TRUE
|
|
ENDPROC
|
|
|
|
FUNC BOOL CLEANUP_STAGE()
|
|
IF bCleanupStage = TRUE
|
|
SETTIMERA(0)
|
|
// hotswapStage = MISSION_HOTSWAP_STAGE_SELECT_CHARACTER
|
|
bInitStage = FALSE
|
|
bCleanupStage = FALSE
|
|
iCutsceneStage = 0
|
|
//bPrinted = FALSE
|
|
RETURN TRUE
|
|
ELSE
|
|
RETURN FALSE
|
|
ENDIF
|
|
ENDFUNC
|
|
|
|
|
|
PROC SET_PLAYER_START_POSITION(MISSION_STAGE_ENUM eMissionStagePassed)
|
|
//DRIVE WITH floyd TO THE DOCKS
|
|
IF (eMissionStagePassed = MISSION_STAGE_SETUP
|
|
OR eMissionStagePassed = MISSION_STAGE_1)
|
|
vStageStart = vPlayerStart
|
|
fstartheading = fPlayerStart
|
|
//PLAYER PARKS UP AND GETS CHANGED
|
|
ELIF eMissionStagePassed = MISSION_STAGE_2
|
|
vStageStart = << 24.4835, -2536.4578, 5.0410 >>
|
|
fstartheading = 55.2078
|
|
ELIF eMissionStagePassed = MISSION_STAGE_4
|
|
vStageStart = << -61.5066, -2525.5120, 5.0101 >>
|
|
fstartheading = 56.9516
|
|
//FORKLIFT AND TASKS
|
|
ELIF eMissionStagePassed = MISSION_STAGE_5
|
|
vStageStart = <<-125.5439, -2421.8813, 5.0005>>
|
|
fstartheading = 49.0800
|
|
//FOLLOW floyd TO THE CRANE
|
|
ELIF eMissionStagePassed = MISSION_STAGE_6
|
|
vStageStart = <<-88.8838, -2451.5679, 5.0175>>
|
|
fstartheading = 317.2729
|
|
//CRANE SECTION
|
|
ELIF eMissionStagePassed = MISSION_STAGE_7
|
|
vStageStart = << -50.2985, -2403.9036, 5.0003 >>
|
|
fstartheading = 191.2160
|
|
//USE CAMERA
|
|
ELIF eMissionStagePassed = MISSION_STAGE_8
|
|
vStageStart = << -114.5969, -2406.8113, 22.2282 >>
|
|
fstartheading = 359.8527
|
|
//DRIVE TO OTHER DOCKS
|
|
ELIF eMissionStagePassed = MISSION_STAGE_10
|
|
vStageStart = <<-120.9023, -2411.2688, 5.0007>>
|
|
fstartheading = 195.5543
|
|
//DRIVE TO OTHER DOCKS
|
|
ELIF eMissionStagePassed = MISSION_STAGE_11
|
|
vStageStart = <<-120.9023, -2411.2688, 5.0007>>
|
|
fstartheading = 195.5543
|
|
ENDIF
|
|
IF IS_SCREEN_FADED_OUT()
|
|
//LOAD_SCENE(vStageStart)
|
|
CLEAR_PED_TASKS(PLAYER_PED_ID())
|
|
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
|
|
CLEAR_PED_WETNESS(PLAYER_PED_ID())
|
|
ENDIF
|
|
WARP_PLAYER(vStageStart, fstartheading)
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
// ======================================================================
|
|
// Init Arrays
|
|
// ======================================================================
|
|
|
|
//PURPOSE: defines up the individual ped details
|
|
PROC INITALISE_ARRAYS() // defines up the individual ped details
|
|
|
|
s_crane.v_cabin_attach_offset = <<0.0, 0.0, 18.000>>
|
|
|
|
//Guards
|
|
//Patrols
|
|
//Merc 0
|
|
vMercStart[0] = <<-104.07, -2374.69, 8.3191>>
|
|
fMercStart[0] = 93.83
|
|
vMercPatrol[0][0] = <<-104.07, -2374.69, 8.3191>>
|
|
vMercPatrol[0][1] = <<-147.40, -2378.30, 8.3191>>
|
|
vMercPatrol[0][2] = <<-104.07, -2374.69, 8.3191>>
|
|
vMercPatrol[0][3] = <<-147.40, -2378.30, 8.3191>>
|
|
//Merc 1
|
|
vMercStart[1] = <<-212.2350, -2377.4456, 16.3326>>
|
|
fMercStart[1] = 94.3986
|
|
vMercPatrol[1][0] = <<-212.2350, -2377.4456, 16.3326>>
|
|
vMercPatrol[1][1] = <<-231.7264, -2377.5935, 16.3319>>
|
|
vMercPatrol[1][2] = <<-232.1804, -2374.6602, 16.3308>>
|
|
vMercPatrol[1][3] = <<-231.7264, -2377.5935, 16.3319>>
|
|
//Merc 2
|
|
vMercStart[2] = <<-248.9245, -2376.2087, 8.3191>>
|
|
fMercStart[2] = 274.0258
|
|
vMercPatrol[2][0] = <<-248.9245, -2376.2087, 8.3191>>
|
|
vMercPatrol[2][1] = <<-209.7266, -2378.2537, 8.3191>>
|
|
vMercPatrol[2][2] = <<-186.3949, -2377.6677, 8.3191>>
|
|
vMercPatrol[2][3] = <<-163.5379, -2378.0491, 8.3191>>
|
|
//Merc 3
|
|
vMercStart[3] = << -123.4885, -2352.8262, 8.3191 >>
|
|
fMercStart[3] = 3.7757
|
|
vMercPatrol[3][0] = << -151.3500, -2408.0063, 5.0005 >>
|
|
vMercPatrol[3][1] = << -102.0827, -2408.0342, 5.0005 >>
|
|
vMercPatrol[3][2] = << -102.2400, -2423.9700, 5.0005 >>
|
|
vMercPatrol[3][3] = << -61.0789, -2423.8125, 5.0012 >>
|
|
|
|
//at other docks
|
|
|
|
vMercStart[4] = <<483.60, -3119.91, 5.0696>>
|
|
fMercStart[4] = -11.93
|
|
|
|
vMercStart[5] = <<484.6697, -3110.7073, 5.2948>>
|
|
fMercStart[5] = 1.5744
|
|
|
|
vMercStart[6] = <<482.53, -3119.30, 6.07>>
|
|
fMercStart[6] = 44.12
|
|
|
|
//On boat
|
|
vMercStart[7] = <<-124.56, -2371.68, 9.32>>
|
|
fMercStart[7] = -75.45
|
|
|
|
vMercStart[8] = <<482.53, -3119.30, 6.07>>
|
|
fMercStart[8] = 44.12
|
|
|
|
//Dock Workers
|
|
|
|
//in office - 0
|
|
vDockWorkerStart[0] = << -151.3500, -2408.0063, 5.0005 >>
|
|
fDockWorkerStart[0] = 268.7411
|
|
vDockPatrol[0][0] = << -151.3500, -2408.0063, 5.0005 >>
|
|
vDockPatrol[0][1] = << -102.0827, -2408.0342, 5.0005 >>
|
|
vDockPatrol[0][2] = << -102.2400, -2423.9700, 5.0005 >>
|
|
vDockPatrol[0][3] = << -61.0789, -2423.8125, 5.0012 >>
|
|
|
|
//patrolling round
|
|
vDockWorkerStart[1] = << -43.6959, -2520.3784, 6.3988 >>
|
|
fDockWorkerStart[1] = 321.2447
|
|
|
|
//patrol length of dock
|
|
vDockWorkerStart[2] = << -176.3674, -2408.1582, 5.0007 >>
|
|
fDockWorkerStart[2] = 271.7324
|
|
|
|
//Sweeping up crap by the tanker
|
|
vDockWorkerStart[3] = << -62.19, -2539.51, 6.01 >>
|
|
fDockWorkerStart[3] = -157.31
|
|
|
|
//Guys chatting by crates lean
|
|
vDockWorkerStart[4] = << -56.7946, -2448.8533, 6.2398 >>
|
|
fDockWorkerStart[4] = 66.4825
|
|
|
|
//Guys chatting by crates stood talking
|
|
vDockWorkerStart[5] = << 14.2126, -2507.8977, 5.0067 >>
|
|
fDockWorkerStart[5] = 102.599983
|
|
|
|
//Welding guy
|
|
vDockWorkerStart[6] = << -121.86, -2451.69, 5.02 >>
|
|
fDockWorkerStart[6] = -5.80
|
|
|
|
//Behind Truck - SUPERVISOR 2
|
|
vDockWorkerStart[7] = << -133.5132, -2450.7058, 5.0167 >>
|
|
fDockWorkerStart[7] = 321.2153
|
|
|
|
//On phone by doorway
|
|
vDockWorkerStart[8] = << -104.7430, -2496.9646, 5.0058 >>
|
|
fDockWorkerStart[8] = 319.1118
|
|
|
|
//Dealing with fuse box
|
|
vDockWorkerStart[9] = << -124.0598, -2479.0505, 5.0196 >>
|
|
fDockWorkerStart[9] = 329.9548
|
|
|
|
//Circle crates 2 - PATROL
|
|
vDockWorkerStart[10] = << -72.4153, -2485.4336, 5.0334 >>
|
|
fDockWorkerStart[10] = 52.6711
|
|
vDockPatrol[10][0] = << -72.4153, -2485.4336, 5.0334 >>
|
|
vDockPatrol[10][1] = << -96.9927, -2468.2859, 5.0208 >>
|
|
vDockPatrol[10][2] = << -88.6509, -2456.4009, 5.0196 >>
|
|
vDockPatrol[10][3] = << -135.2554, -2449.3057, 5.0170 >>
|
|
|
|
//To Drive Truck
|
|
vDockWorkerStart[11] = << -115.3376, -2517.0283, 5.0005 >>
|
|
fDockWorkerStart[11] = 245.6216
|
|
|
|
//To Drive Forklift
|
|
vDockWorkerStart[12] = << -106.1724, -2464.8291, 5.0208 >>
|
|
fDockWorkerStart[12] = 125.7997
|
|
|
|
//By crates - angry
|
|
vDockWorkerStart[13] = << -98.68, -2467.15, 6.02 >>
|
|
fDockWorkerStart[13] = -7.74
|
|
|
|
//By crates - starts by office
|
|
vDockWorkerStart[14] = <<-67.21, -2437.73, 7.25 >>
|
|
fDockWorkerStart[14] = 81.13
|
|
|
|
//At other docks
|
|
vDockWorkerStart[15] = << 481.98, -3052.50, 6.23 >>
|
|
fDockWorkerStart[15] = -0.95
|
|
|
|
vDockWorkerStart[16] = << 489.35, -3050.57, 6.12 >>
|
|
fDockWorkerStart[16] = 346.3188
|
|
|
|
//to drive biffs at start of docks
|
|
vDockWorkerStart[17] = << 488.6217, -3050.3328, 5.1097 >>
|
|
fDockWorkerStart[17] = 2.1321
|
|
|
|
vDockWorkerStart[18] = << 479.67, -3049.37, 5.1097 >>
|
|
fDockWorkerStart[18] = 2.1321
|
|
|
|
//inside hut SUPERVISOR 1
|
|
vDockWorkerStart[19] = << -227.7128, -2426.8201, 5.1497 >>
|
|
fDockWorkerStart[19] = 327.6013
|
|
|
|
//MILITARY DOCKS - by final vehilce
|
|
vDockWorkerStart[20] = << 463.81, -3040.37, 6.07 >>
|
|
fDockWorkerStart[20] = 327.6013
|
|
|
|
//MILITARY DOCKS - By Blocking vehicle
|
|
vDockWorkerStart[21] = << 493.09, -3047.20, 6.11 >>
|
|
fDockWorkerStart[21] = 135.22
|
|
|
|
//BIFF to be driven
|
|
vDockVeh[0]= << -104.8244, -2513.3738, 4.5183 >>
|
|
fDockVeh[0]= 56.5885
|
|
|
|
//FORKLIFT to be driven
|
|
vDockVeh[1]= << -104.7854, -2465.9553, 5.0208 >>
|
|
fDockVeh[1]= 235.9101
|
|
|
|
//UPON ENTERING THE DOCKS AMBIENT STUFF - BIFF 1
|
|
vDockVeh[2] = << -69.5243, -2505.9260, 5.0075 >>
|
|
fDockVeh[2] = 324.8585
|
|
|
|
//UPON ENTERING THE DOCKS AMBIENT STUFF - BIFF 2
|
|
vDockVeh[3] = << -39.1900, -2449.1589, 5.0043 >>
|
|
fDockVeh[3] = 144.4548
|
|
/*
|
|
____ ___ _ _ _ __ ___ _ _ _ _ __ ___ __ __ __ ___ _ _ ___ __ _ ___ _
|
|
/ _\ V / \| | U |/ _| o \/ \| \| | / _| __| \ / _|/ _| __| \| | __| | \ / \_ _/ \
|
|
\_ \\ /| \\ | ( (_| ( o ) \\ | \_ \ _|| o ) \_ ( (_| _|| \\ | _| | o ) o | | o |
|
|
|__/|_||_|\_|_n_|\__|_|\\\_/|_|\_|_|__/___|__/ |__/\__|___|_|\_|___| |__/|_n_|_|_n_|*/
|
|
|
|
//BLACKWATER GUYS WITH DOCKWORKER
|
|
|
|
s_sp_blackwater_with_dockworker[0].model = S_M_M_DOCKWORK_01
|
|
s_sp_blackwater_with_dockworker[1].model = S_M_Y_BlackOps_01
|
|
s_sp_blackwater_with_dockworker[2].model = S_M_Y_BlackOps_01
|
|
|
|
//Fill these
|
|
s_sp_blackwater_with_dockworker[0].v_spawn_position = << -69.5243, -2505.9260, 5.0075 >>
|
|
s_sp_blackwater_with_dockworker[0].f_start_heading = 0.0
|
|
s_sp_blackwater_with_dockworker[1].v_spawn_position = << -69.5243, -2505.9260, 5.0075 >>
|
|
s_sp_blackwater_with_dockworker[1].f_start_heading = 0.0
|
|
s_sp_blackwater_with_dockworker[2].v_spawn_position = << -69.5243, -2505.9260, 5.0075 >>
|
|
s_sp_blackwater_with_dockworker[2].f_start_heading = 0.0
|
|
|
|
//SUPERVISOR IN HUT
|
|
s_sp_supervisor1[0].model = S_M_M_DOCKWORK_01
|
|
s_sp_supervisor1[0].v_spawn_position = << -62.2290, -2518.5679, 6.4002 >>
|
|
s_sp_supervisor1[0].f_start_heading = 143.9633
|
|
|
|
//GUY WHO TELLS YOU TO USE FORKLIFT
|
|
s_sp_forklift_supervisorA[0].model = S_M_M_DOCKWORK_01
|
|
s_sp_forklift_supervisorA[0].v_spawn_position = <<-122.25, -2419.58, 6.00>>
|
|
s_sp_forklift_supervisorA[0].f_start_heading = 179.2108
|
|
|
|
//GUY WHO TELLS YOU TO PICK UP CRATE
|
|
s_sp_forklift_supervisorB[0].model = S_M_M_DOCKWORK_01
|
|
s_sp_forklift_supervisorB[0].v_spawn_position = << -96.7150, -2455.2817, 5.0189 >>
|
|
s_sp_forklift_supervisorB[0].f_start_heading = 225.5408
|
|
|
|
//DOCK WORKERS TALKING
|
|
//IG 5 Dockworker 2
|
|
s_sp_dock_workers_talking[0].model = S_M_M_DOCKWORK_01
|
|
s_sp_dock_workers_talking[0].v_spawn_position = <<-110.41, -2481.24, 6.02>>
|
|
s_sp_dock_workers_talking[0].f_start_heading= -109.52
|
|
//IG 5 Dockworker 1
|
|
s_sp_dock_workers_talking[1].model = S_M_M_DOCKWORK_01
|
|
s_sp_dock_workers_talking[1].v_spawn_position = << -108.83, -2482.12, 6.02 >>
|
|
s_sp_dock_workers_talking[1].f_start_heading= -88.92
|
|
|
|
//GANTRY CRANE GUYS SETPIECE
|
|
s_sp_gantry_guys_dynamic[0].model = S_M_M_DOCKWORK_01
|
|
s_sp_gantry_guys_dynamic[1].model = S_M_M_DOCKWORK_01
|
|
s_sp_gantry_guys_dynamic[2].model = S_M_M_DOCKWORK_01
|
|
s_sp_gantry_guys_dynamic[3].model = S_M_M_DOCKWORK_01
|
|
|
|
s_sp_gantry_guys_dynamic[0].v_spawn_position = << -69.5243, -2505.9260, 5.0075 >>
|
|
s_sp_gantry_guys_dynamic[1].v_spawn_position = << -69.5243, -2505.9260, 5.0075 >>
|
|
s_sp_gantry_guys_dynamic[2].v_spawn_position = << -69.5243, -2505.9260, 5.0075 >>
|
|
s_sp_gantry_guys_dynamic[3].v_spawn_position = << -69.5243, -2505.9260, 5.0075 >>
|
|
|
|
s_sp_gantry_guys_dynamic[0].f_start_heading = 143.9633
|
|
s_sp_gantry_guys_dynamic[1].f_start_heading = 143.9633
|
|
s_sp_gantry_guys_dynamic[2].f_start_heading = 143.9633
|
|
s_sp_gantry_guys_dynamic[3].f_start_heading = 143.9633
|
|
|
|
//GANTRY CRANE GUYS AT THE FRONT
|
|
s_sp_gantry_guys_static[0].model = S_M_M_DOCKWORK_01
|
|
s_sp_gantry_guys_static[1].model = S_M_M_DOCKWORK_01
|
|
|
|
s_sp_gantry_guys_static[0].v_spawn_position = << -69.5243, -2505.9260, 5.0075 >>
|
|
s_sp_gantry_guys_static[1].v_spawn_position = << -69.5243, -2505.9260, 5.0075 >>
|
|
|
|
s_sp_gantry_guys_static[0].f_start_heading = 143.9633
|
|
s_sp_gantry_guys_static[1].f_start_heading = 143.9633
|
|
|
|
//WELDER
|
|
s_sp_welder[0].model = S_M_M_DOCKWORK_01
|
|
s_sp_welder[0].v_spawn_position = << -107.9554, -2465.7800, 7.8185 >>
|
|
s_sp_welder[0].f_start_heading = 331.6483
|
|
|
|
//GUYS AROUND CAR
|
|
s_sp_guys_around_car[0].model = S_M_M_DOCKWORK_01
|
|
s_sp_guys_around_car[1].model = S_M_M_DOCKWORK_01
|
|
s_sp_guys_around_car[2].model = S_M_M_DOCKWORK_01
|
|
s_sp_guys_around_car[3].model = S_M_M_DOCKWORK_01
|
|
s_sp_guys_around_car[4].model = S_M_M_DOCKWORK_01
|
|
|
|
s_sv_car_to_admire[0].model = BUFFALO
|
|
s_sv_car_to_admire[0].v_spawn_position = << -109.5377, -2519.4890, 5.0000 >>
|
|
s_sv_car_to_admire[0].f_start_heading = 51.6828
|
|
|
|
s_sp_guys_around_car[0].v_spawn_position = << -105.6039, -2520.6841, 5.0000 >>
|
|
s_sp_guys_around_car[0].f_start_heading =10
|
|
s_sp_guys_around_car[1].v_spawn_position = << -107.4489, -2523.3547, 5.0000 >>
|
|
s_sp_guys_around_car[1].f_start_heading = 22
|
|
s_sp_guys_around_car[2].v_spawn_position = << -111.8440, -2520.2720, 5.0000 >>
|
|
s_sp_guys_around_car[2].f_start_heading = 55
|
|
s_sp_guys_around_car[3].v_spawn_position = << -110.1655, -2516.7170, 5.0000 >>
|
|
s_sp_guys_around_car[3].f_start_heading = 43
|
|
s_sp_guys_around_car[4].v_spawn_position = << -114.7683, -2516.2803, 5.0999 >>
|
|
s_sp_guys_around_car[4].f_start_heading =84
|
|
|
|
//DOCKWORKERS WORKING ON PIPE
|
|
|
|
s_sp_dock_workers_on_pipe[0].model = S_M_M_DOCKWORK_01
|
|
s_sp_dock_workers_on_pipe[1].model = S_M_M_DOCKWORK_01
|
|
s_sp_dock_workers_on_pipe[2].model = S_M_M_DOCKWORK_01
|
|
|
|
s_sp_dock_workers_on_pipe[0].v_spawn_position = << -77.0331, -2527.0872, 5.0101 >>
|
|
s_sp_dock_workers_on_pipe[1].v_spawn_position = << -75.1044, -2529.4731, 5.0101 >>
|
|
s_sp_dock_workers_on_pipe[2].v_spawn_position = << -73.6988, -2529.5952, 5.0101 >>
|
|
|
|
s_sp_dock_workers_on_pipe[0].f_start_heading = 20
|
|
s_sp_dock_workers_on_pipe[1].f_start_heading = 60
|
|
s_sp_dock_workers_on_pipe[2].f_start_heading = 266
|
|
|
|
//FLOYD GRABS PACKAGE
|
|
s_sp_floyd_grabs_package[0].model = S_M_M_DOCKWORK_01
|
|
s_sp_floyd_grabs_package[1].model = S_M_M_DOCKWORK_01
|
|
s_sp_floyd_grabs_package[2].model = S_M_M_DOCKWORK_01
|
|
|
|
//PIPE GUYS
|
|
s_sp_dock_workers_on_pipe[0].v_ss_pos = << -68.320, -2531.518, 5.060 >> //<<-62.118767,-2519.220947,7.414408>>
|
|
s_sp_dock_workers_on_pipe[0].f_ss_rot = 3.640 //-170.750000
|
|
s_sp_dock_workers_on_pipe[1].v_ss_pos = << -68.320, -2531.518, 5.060 >>
|
|
s_sp_dock_workers_on_pipe[1].f_ss_rot = 3.640
|
|
s_sp_dock_workers_on_pipe[2].v_ss_pos = << -68.320, -2531.518, 5.060 >>
|
|
s_sp_dock_workers_on_pipe[2].f_ss_rot = 3.640
|
|
|
|
//GANTRY
|
|
s_sp_gantry_guys_dynamic[0].v_ss_pos = <<-115.7235, -2477.5984, 22.2266>>
|
|
s_sp_gantry_guys_dynamic[1].v_ss_pos = <<-117.2564, -2479.7366, 22.2266>>
|
|
s_sp_gantry_guys_dynamic[2].v_ss_pos = <<-114.1917, -2475.4312, 22.2266>>
|
|
s_sp_gantry_guys_dynamic[3].v_ss_pos = <<-117.7939, -2480.5886, 22.2266>>
|
|
|
|
//SCENE DATA
|
|
|
|
s_sd_arrive_at_docks.v_scene_pos = << -60.173, -2525.329, 4.925 >>
|
|
s_sd_arrive_at_docks.v_scene_rot = << 0.000, 0.000, 59.250 >>
|
|
|
|
s_sd_floyd_grabs_package.v_scene_pos = << -88.341, -2502.575, 5.011 >>
|
|
s_sd_floyd_grabs_package.v_scene_rot = << 0.000, -0.000, -32.844 >>
|
|
|
|
s_sd_dock_workers_on_pipe.v_scene_pos = << -68.929, -2530.365, 5.126 >>
|
|
s_sd_dock_workers_on_pipe.v_scene_rot = << 0.000, 0.000, 46.000 >>
|
|
|
|
s_sd_blackwater_with_dockworker.v_scene_pos = << -110.715, -2429.089, 5.001 >>
|
|
s_sd_blackwater_with_dockworker.v_scene_rot = << 0.000, 0.000, 91.000 >>
|
|
|
|
s_sd_forklift_supervisor_a.v_scene_pos = << -131.496, -2423.041, 5.000 >>
|
|
s_sd_floyd_grabs_package.v_scene_rot = << 0.000, 0.000, 63.720 >>
|
|
|
|
s_sd_gantry_guys_dynamic.v_scene_pos = << -116.113, -2475.791, 22.206 >>
|
|
s_sd_gantry_guys_dynamic.v_scene_rot = << 0.000, 0.000, 145.520 >>
|
|
|
|
s_sd_gantry_guys_static.v_scene_pos = << -29.053, -2481.937, 22.205 >>
|
|
s_sd_gantry_guys_static.v_scene_rot = << 0.000, 0.000, 147.280 >>
|
|
|
|
s_sd_welder.v_scene_pos = << -108.066, -2464.675, 5.020 >>
|
|
s_sd_welder.v_scene_rot = << 0.000, 0.000, 55.000 >>
|
|
|
|
//ARRIVE SETUP
|
|
s_sp_supervisor1[0].v_ss_pos = <<-62.118767,-2519.220947,7.414408>>
|
|
s_sp_supervisor1[0].f_ss_rot = -170.750000
|
|
|
|
v_ss_floyd[SS_FLOYD_GRABS_PACKAGE] = <<-76.45, -2508.30, 6.01>>
|
|
f_ss_floyd[SS_FLOYD_GRABS_PACKAGE] = -38.15
|
|
|
|
//for the skip menu
|
|
#IF IS_DEBUG_BUILD
|
|
SkipMenuStruct[0].sTxtLabel = "Initial Mission"
|
|
SkipMenuStruct[0].bSelectable = FALSE
|
|
SkipMenuStruct[1].sTxtLabel = "Opening Mocap"
|
|
SkipMenuStruct[2].sTxtLabel = "Drive to docks | LSDH_INT"
|
|
SkipMenuStruct[3].sTxtLabel = "Park up and check in"
|
|
SkipMenuStruct[4].sTxtLabel = "Follow Floyd around the docks"
|
|
SkipMenuStruct[5].sTxtLabel = "Handler Task"
|
|
SkipMenuStruct[6].sTxtLabel = "Follow Floyd to the crane"
|
|
SkipMenuStruct[7].sTxtLabel = "Use the crane | LSDHS_MCS_1"
|
|
SkipMenuStruct[8].sTxtLabel = "Take photos of the boat"
|
|
SkipMenuStruct[9].sTxtLabel = "Drive to the Docks | LSDHS_MCS_2"
|
|
SkipMenuStruct[10].sTxtLabel = "Return to Floyd's apartment"
|
|
#ENDIF
|
|
ENDPROC
|
|
|
|
// ======================================================================
|
|
// Tech Procs
|
|
// ======================================================================
|
|
|
|
|
|
// ╚══════════════════════════╡ Misc Speech Functions ╞════════════════════════════╝
|
|
//PURPOSE: Checks to see if text of speech has been triggered
|
|
|
|
PROC DISABLE_COMBAT_CONTROLS_THIS_FRAME()
|
|
|
|
WEAPON_TYPE playerWeap
|
|
IF NOT GET_CURRENT_PED_VEHICLE_WEAPON(PLAYER_PED_ID(),playerWeap)
|
|
IF GET_CURRENT_PED_WEAPON(PLAYER_PED_ID(), playerWeap)
|
|
IF eMissionStage != MISSION_STAGE_8
|
|
IF playerWeap != WEAPONTYPE_UNARMED
|
|
AND NOT IS_PHONE_ONSCREEN()
|
|
SET_CURRENT_PED_WEAPON(PLAYER_PED_ID(), WEAPONTYPE_UNARMED, TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
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_ATTACK)
|
|
DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_ATTACK2)
|
|
DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_MELEE_ATTACK1)
|
|
DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_MELEE_ATTACK2)
|
|
DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_MELEE_BLOCK)
|
|
DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_NEXT_WEAPON)
|
|
DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_PREV_WEAPON)
|
|
DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_AIM)
|
|
DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_RELOAD)
|
|
DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_MELEE_ATTACK_HEAVY)
|
|
DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_MELEE_ATTACK_LIGHT)
|
|
DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_WEAPON_WHEEL_LR)
|
|
//DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_WEAPON_WHEEL_NEXT)
|
|
//DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_WEAPON_WHEEL_PREV)
|
|
//DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_WEAPON_WHEEL_UD)
|
|
DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_SELECT_WEAPON)
|
|
ENDPROC
|
|
|
|
//PURPOSE: Displays the text at the correct location
|
|
PROC MANAGE_HELP_TEXT_UPDATE()
|
|
//Help Text
|
|
IF entHelpText != NULL
|
|
IF DOES_ENTITY_EXIST(entHelpText)
|
|
IF NOT IS_ENTITY_DEAD(entHelpText)
|
|
IF IS_ENTITY_A_PED(entHelpText)
|
|
vHelpText = GET_PED_BONE_COORDS(GET_PED_INDEX_FROM_ENTITY_INDEX(entHelpText), BONETAG_ROOT, <<0.0, 0.0, 0.0>>) + <<0.0, 0.0, 1.0>>
|
|
ELIF IS_ENTITY_A_VEHICLE(entHelpText)
|
|
vHelpText = GET_ENTITY_COORDS(entHelpText) + <<0.0, 0.0, 1.0>>
|
|
ELSE
|
|
vHelpText = GET_ENTITY_COORDS(entHelpText) + <<0.0, 0.0, 1.0>>
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT IS_STRING_NULL(sHelpText)
|
|
IF IS_THIS_HELP_MESSAGE_BEING_DISPLAYED(sHelpText)
|
|
IF NOT ARE_VECTORS_EQUAL(vHelpText, <<0.0, 0.0, 0.0>>)
|
|
IF vHelpText.Z != 0.0
|
|
SET_HELP_MESSAGE_WORLD_POSITION(vHelpText)
|
|
ELSE
|
|
SET_HELP_MESSAGE_SCREEN_POSITION(vHelpText.X, vHelpText.Y)
|
|
ENDIF
|
|
|
|
SET_HELP_MESSAGE_STYLE(HELP_MESSAGE_STYLE_TAGGABLE, HUD_COLOUR_NET_PLAYER15, 80, eArrowDirection)
|
|
ENDIF
|
|
|
|
IF GET_GAME_TIMER() > iHelpDuration
|
|
AND iHelpDuration <> -1
|
|
IF IS_HELP_MESSAGE_BEING_DISPLAYED()
|
|
CLEAR_HELP()
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
|
|
/// PURPOSE:
|
|
/// Plays a single line of dialogue, this is used for placeholder dialogue only so that the timings can be tweaked in script prior to the real dialogue being ready.
|
|
/// PARAMS:
|
|
/// s_text_block - The label for the entire block of text
|
|
/// s_dialogue_block - The label for the block of dialogue that contains the particular line
|
|
/// s_dialogue_line - The label for the particular line
|
|
/// i_duration - The length of time that this line should play for.
|
|
/// RETURNS:
|
|
/// Bool indicating whether playback was successful.
|
|
FUNC BOOL PLAY_PLACEHOLDER_DIALOGUE_LINE(STRING s_text_block, STRING s_dialogue_block, STRING s_dialogue_line, INT i_duration, BOOL b_only_play_once = TRUE)
|
|
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(s_conversation_peds, s_text_block, s_dialogue_block, s_dialogue_line, CONV_PRIORITY_MEDIUM)
|
|
SET_LABEL_AS_TRIGGERED(s_dialogue_line, b_only_play_once)
|
|
i_placeholder_dialogue_timer = GET_GAME_TIMER()
|
|
i_current_dialogue_duration = i_duration
|
|
RETURN TRUE
|
|
ELSE
|
|
KILL_FACE_TO_FACE_CONVERSATION_DO_NOT_FINISH_LAST_LINE() //In case this overlaps another line
|
|
ENDIF
|
|
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
/// PURPOSE:
|
|
/// Kills any current placeholder dialogue playing when it's played for a long enough time
|
|
PROC MANAGE_PLACEHOLDER_DIALOGUE()
|
|
IF i_placeholder_dialogue_timer != 0
|
|
IF GET_GAME_TIMER() - i_placeholder_dialogue_timer > i_current_dialogue_duration
|
|
KILL_FACE_TO_FACE_CONVERSATION_DO_NOT_FINISH_LAST_LINE()
|
|
i_placeholder_dialogue_timer = 0
|
|
ENDIF
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Stops any placeholder dialogue immediately
|
|
PROC FORCE_RESET_PLACEHOLDER_DIALOGUE()
|
|
KILL_FACE_TO_FACE_CONVERSATION()
|
|
i_placeholder_dialogue_timer = 0
|
|
i_current_dialogue_duration = 0
|
|
ENDPROC
|
|
|
|
|
|
// ╚═════════════════════════════════════════════════════════════════════════════════╝
|
|
// ╚══════════════════════════╡ Controls ╞════════════════════════════╝
|
|
// ╚═════════════════════════════════════════════════════════════════════════════════╝
|
|
|
|
|
|
PROC CONVERGE_VALUE_WITH_DECEL(FLOAT &val, FLOAT desired_val, FLOAT max_val, FLOAT min_amount_to_converge, FLOAT max_amount_to_converge, FLOAT decel_range = 1.0)
|
|
IF val != desired_val
|
|
FLOAT val_diff = ABSF(val - desired_val) / max_val
|
|
FLOAT new_converge_value = max_amount_to_converge
|
|
|
|
IF val_diff < decel_range
|
|
new_converge_value = (val_diff / decel_range) * max_amount_to_converge
|
|
ENDIF
|
|
|
|
IF new_converge_value < min_amount_to_converge
|
|
new_converge_value = min_amount_to_converge
|
|
ENDIF
|
|
|
|
CONVERGE_VALUE(val, desired_val, new_converge_value)
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
PROC SET_PED_POSITION(PED_INDEX pedIndex, VECTOR vCoords, FLOAT fHeading, BOOL bKeepVehicle = TRUE)
|
|
IF bKeepVehicle = TRUE
|
|
SET_PED_COORDS_KEEP_VEHICLE(pedIndex, vCoords)
|
|
SET_ENTITY_HEADING(pedIndex, fHeading)
|
|
ELSE
|
|
SET_ENTITY_COORDS(pedIndex,vCoords,TRUE)
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
FUNC BOOL SAFE_DEATH_CHECK_PED(PED_INDEX &pedIndex)
|
|
IF DOES_ENTITY_EXIST(pedIndex)
|
|
IF IS_ENTITY_DEAD(pedIndex)
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
FUNC BOOL SAFE_DEATH_CHECK_VEHICLE(VEHICLE_INDEX &vehIndex)
|
|
IF DOES_ENTITY_EXIST(vehIndex)
|
|
IF IS_ENTITY_DEAD(vehIndex)
|
|
OR NOT IS_VEHICLE_DRIVEABLE(vehIndex)
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
PROC SAFE_ADD_BLIP_LOCATION(BLIP_INDEX &blipIndex, VECTOR vCoords, BOOL bRoute = FALSE)
|
|
IF NOT DOES_BLIP_EXIST(blipIndex)
|
|
blipIndex = ADD_BLIP_FOR_COORD(vCoords)
|
|
SET_BLIP_ROUTE(blipIndex, bRoute)
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
PROC SAFE_ADD_BLIP_PED(BLIP_INDEX &blipIndex, PED_INDEX &pedIndex, BOOL bFriendly = FALSE)
|
|
IF NOT DOES_BLIP_EXIST(blipIndex)
|
|
IF DOES_ENTITY_EXIST(pedIndex)
|
|
IF NOT IS_ENTITY_DEAD(pedIndex)
|
|
blipIndex = CREATE_BLIP_FOR_ENTITY(pedIndex, NOT bFriendly)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
PROC SAFE_ADD_BLIP_VEHICLE(BLIP_INDEX &blipIndex, VEHICLE_INDEX &vehIndex, BOOL bFriendly = FALSE)
|
|
IF NOT DOES_BLIP_EXIST(blipIndex)
|
|
IF DOES_ENTITY_EXIST(vehIndex)
|
|
IF NOT IS_ENTITY_DEAD(vehIndex)
|
|
blipIndex = ADD_BLIP_FOR_ENTITY(vehIndex)
|
|
SET_BLIP_AS_FRIENDLY(blipIndex, bFriendly)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
PROC SAFE_REMOVE_BLIP(BLIP_INDEX &blipIndex)
|
|
IF DOES_BLIP_EXIST(blipIndex)
|
|
REMOVE_BLIP(blipIndex)
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
PROC SPAWN_PED(PED_INDEX &pedIndex, MODEL_NAMES eThisModel, VECTOR vStart, FLOAT fStart = 0.0, BOOL bDefault = TRUE)
|
|
REQUEST_MODEL(eThisModel)
|
|
WHILE NOT HAS_MODEL_LOADED(eThisModel)
|
|
WAIT (0)
|
|
ENDWHILE
|
|
IF NOT DOES_ENTITY_EXIST(pedIndex)
|
|
pedIndex = CREATE_PED(PEDTYPE_MISSION, eThisModel, vStart, fStart)
|
|
IF bDefault = TRUE
|
|
SET_PED_DEFAULT_COMPONENT_VARIATION(pedIndex)
|
|
ENDIF
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
PROC SPAWN_BUDDY(PED_INDEX &pedIndex, MODEL_NAMES eThisModel, VECTOR vStart, FLOAT fStart = 0.0, BOOL bDefault = TRUE, WEAPON_TYPE WpnIndex = WEAPONTYPE_UNARMED, BOOL bPassenger = TRUE,STRING sDialogue = NULL,INT iSpeaker = 0)
|
|
REQUEST_MODEL(eThisModel)
|
|
IF HAS_MODEL_LOADED(eThisModel)
|
|
IF NOT DOES_ENTITY_EXIST(pedIndex)
|
|
pedIndex = CREATE_PED(PEDTYPE_MISSION, eThisModel, vStart, fStart)
|
|
ENDIF
|
|
IF NOT IS_PED_INJURED(pedIndex)
|
|
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedIndex, TRUE)
|
|
GIVE_WEAPON_TO_PED(pedIndex, WpnIndex, 800, TRUE)
|
|
SET_PED_CAN_BE_TARGETTED(pedIndex, FALSE)
|
|
SET_PED_CAN_RAGDOLL_FROM_PLAYER_IMPACT(pedIndex, FALSE)
|
|
SET_PED_RELATIONSHIP_GROUP_HASH(pedIndex ,rel_group_buddies)
|
|
SET_ENTITY_PROOFS(pedIndex, FALSE, FALSE, FALSE, FALSE, FALSE)
|
|
//SET_PED_SUFFERS_CRITICAL_HITS(pedIndex ,FALSE)
|
|
SET_ENTITY_HEALTH(pedIndex,200)
|
|
IF bPassenger = TRUE
|
|
//SET_PED_GROUP_MEMBER_PASSENGER_INDEX(pedIndex, VS_FRONT_RIGHT)
|
|
ELSE
|
|
//SET_PED_AS_GROUP_MEMBER(pedIndex, PLAYER_GROUP_ID())
|
|
ENDIF
|
|
SET_PED_AS_ENEMY(pedIndex , FALSE)
|
|
SET_ENTITY_AS_MISSION_ENTITY(pedIndex)
|
|
SET_PED_DEFAULT_COMPONENT_VARIATION(pedIndex)
|
|
IF bDefault = TRUE
|
|
SET_PED_DEFAULT_COMPONENT_VARIATION(pedIndex)
|
|
ENDIF
|
|
|
|
IF NOT IS_STRING_NULL_OR_EMPTY(sDialogue)
|
|
ADD_PED_FOR_DIALOGUE(sSpeech,iSpeaker,pedIndex,sDialogue)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
PROC SPAWN_VEHICLE(VEHICLE_INDEX &vehIndex, MODEL_NAMES eThisModel, VECTOR vStart, FLOAT fStart = 0.0, INT iColour = -1, FLOAT fDirt = 0.0,BOOL bConsidered = TRUE)
|
|
REQUEST_MODEL(eThisModel)
|
|
WHILE NOT HAS_MODEL_LOADED(eThisModel)
|
|
WAIT (0)
|
|
ENDWHILE
|
|
IF NOT DOES_ENTITY_EXIST(vehIndex)
|
|
vehIndex = CREATE_VEHICLE(eThisModel, vStart, fStart)
|
|
SET_ENTITY_SHOULD_FREEZE_WAITING_ON_COLLISION(vehIndex,TRUE)
|
|
ELSE
|
|
IF IS_VEHICLE_DRIVEABLE(vehIndex)
|
|
IF iColour >= 0
|
|
SET_VEHICLE_COLOURS(vehIndex, iColour, iColour)
|
|
ENDIF
|
|
IF fDirt >= 0
|
|
SET_VEHICLE_DIRT_LEVEL(vehIndex, fDirt)
|
|
ENDIF
|
|
SET_VEHICLE_IS_CONSIDERED_BY_PLAYER(vehIndex,bConsidered)
|
|
ENDIF
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
PROC SPAWN_OBJECT(OBJECT_INDEX &objIndex, MODEL_NAMES eThisModel, VECTOR vStart, FLOAT fStart = 0.0,BOOL bNetworkObject = TRUE, BOOL bScriptHostObject = TRUE)
|
|
IF NOT DOES_ENTITY_EXIST(objIndex)
|
|
objIndex = CREATE_OBJECT(eThisModel, vStart, bNetworkObject, bScriptHostObject)
|
|
SET_ENTITY_HEADING(objIndex,fStart)
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
FUNC PED_INDEX CREATE_SETPIECE_PED(MODEL_NAMES model, VECTOR v_pos, FLOAT f_heading, REL_GROUP_HASH group,
|
|
INT i_health = 200, INT i_armour = 0, WEAPON_TYPE weapon = WEAPONTYPE_UNARMED, PED_TYPE e_ped_type = PEDTYPE_MISSION)
|
|
IF IS_VECTOR_ZERO(v_pos)
|
|
PRINTSTRING("VECTOR IS ZERO")PRINTNL()
|
|
ENDIF
|
|
PED_INDEX ped = CREATE_PED(e_ped_type, model, v_pos, f_heading)
|
|
GIVE_WEAPON_TO_PED(ped, weapon, INFINITE_AMMO, TRUE)
|
|
SET_PED_INFINITE_AMMO(ped, TRUE, weapon)
|
|
SET_PED_MAX_HEALTH(ped, i_health)
|
|
SET_ENTITY_HEALTH(ped, i_health)
|
|
ADD_ARMOUR_TO_PED(ped, i_armour)
|
|
SET_PED_DIES_WHEN_INJURED(ped, TRUE)
|
|
SET_PED_RELATIONSHIP_GROUP_HASH(ped, group)
|
|
SET_ENTITY_SHOULD_FREEZE_WAITING_ON_COLLISION(ped,TRUE)
|
|
RETURN ped
|
|
|
|
ENDFUNC
|
|
|
|
FUNC VEHICLE_INDEX CREATE_SETPIECE_VEHICLE(MODEL_NAMES model, VECTOR v_pos, FLOAT f_heading)
|
|
VEHICLE_INDEX veh = CREATE_VEHICLE(model,v_pos,f_heading)
|
|
RETURN veh
|
|
ENDFUNC
|
|
|
|
PROC CLEAN_UP_SETPIECE_VEHILCE(SETPIECE_VEHICLE &s_setpiece, BOOL b_reset_variables = FALSE, BOOL bFullClean = FALSE)
|
|
|
|
IF bFullClean
|
|
DELETE_VEHICLE(s_setpiece.veh)
|
|
ELSE
|
|
SET_VEHICLE_AS_NO_LONGER_NEEDED(s_setpiece.veh)
|
|
ENDIF
|
|
|
|
IF b_reset_variables
|
|
s_setpiece.b_is_created = FALSE
|
|
IF s_setpiece.i_event != 0
|
|
s_setpiece.i_event = 0
|
|
ENDIF
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
PROC INITIALISE_SETPIECE_GROUP(SETPIECE_PED &s_setpiece[], STRING name)
|
|
INT i = 0
|
|
|
|
REPEAT COUNT_OF(s_setpiece) i
|
|
IF NOT IS_PED_INJURED(s_setpiece[i].ped)
|
|
//TASK_STAND_STILL(s_setpiece[i].ped, -1)
|
|
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(s_setpiece[i].ped, TRUE)
|
|
IF NOT s_setpiece[i].b_is_created = TRUE
|
|
s_setpiece[i].b_is_created = TRUE
|
|
ENDIF
|
|
s_setpiece[i].i_event = 0
|
|
IF s_setpiece[i].i_timer !=0
|
|
s_setpiece[i].i_timer = 0
|
|
ENDIF
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
TEXT_LABEL_31 debug_name = name
|
|
debug_name += i
|
|
SET_PED_NAME_DEBUG(s_setpiece[i].ped, debug_name)
|
|
#ENDIF
|
|
|
|
#IF NOT IS_DEBUG_BUILD
|
|
name = name // to prevent an Unreferenced variable error
|
|
#ENDIF
|
|
ENDIF
|
|
ENDREPEAT
|
|
ENDPROC
|
|
|
|
PROC CLEAN_UP_SETPIECE_PED(SETPIECE_PED &s_setpiece, BOOL b_reset_variables = FALSE, BOOL bFullClean = FALSE)
|
|
IF DOES_BLIP_EXIST(s_setpiece.blip)
|
|
REMOVE_BLIP(s_setpiece.blip)
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(s_setpiece.ped)
|
|
IF NOT IS_PED_INJURED(s_setpiece.ped)
|
|
CLEAR_PED_TASKS(s_setpiece.ped)
|
|
STOP_SYNCHRONIZED_ENTITY_ANIM(s_setpiece.ped,0,TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(s_setpiece.ped)
|
|
IF DOES_ENTITY_EXIST(s_setpiece.obj_prop)
|
|
DETACH_ENTITY(s_setpiece.obj_prop)
|
|
IF bFullClean
|
|
DELETE_OBJECT(s_setpiece.obj_prop)
|
|
ELSE
|
|
SET_OBJECT_AS_NO_LONGER_NEEDED(s_setpiece.obj_prop)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(s_setpiece.ped)
|
|
IF bFullClean
|
|
DELETE_PED(s_setpiece.ped)
|
|
ELSE
|
|
SET_PED_AS_NO_LONGER_NEEDED(s_setpiece.ped)
|
|
ENDIF
|
|
|
|
REMOVE_COVER_POINT(s_setpiece.cover)
|
|
ENDIF
|
|
|
|
IF b_reset_variables
|
|
s_setpiece.b_is_created = FALSE
|
|
s_setpiece.i_event = 0
|
|
s_setpiece.i_timer = 0
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
PROC createMercenary(INT i, BOOL bPatrol)
|
|
SPAWN_PED(pedMerc[i], S_M_Y_BlackOps_01, vMercStart[i], fMercStart[i], FALSE)
|
|
|
|
IF NOT IS_PED_INJURED(pedMerc[i])
|
|
SET_PED_COMBAT_RANGE(pedMerc[i], CR_FAR)
|
|
SET_PED_COMBAT_MOVEMENT(pedMerc[i], CM_WILLADVANCE)
|
|
SET_PED_RELATIONSHIP_GROUP_HASH(pedMerc[i] ,rel_group_buddies)
|
|
SET_ENTITY_SHOULD_FREEZE_WAITING_ON_COLLISION(pedMerc[i] ,TRUE)
|
|
GIVE_WEAPON_TO_PED(pedMerc[i], wtAdRifle, INFINITE_AMMO, TRUE)
|
|
|
|
IF bPatrol = TRUE
|
|
IF bMercPatrolCreated[i] = FALSE
|
|
TEXT_LABEL sPatrol = "miss_merc"
|
|
sPatrol +=i
|
|
IF NOT IS_VECTOR_ZERO(vMercPatrol[i][0])
|
|
DELETE_PATROL_ROUTE(sPatrol)
|
|
OPEN_PATROL_ROUTE(sPatrol)
|
|
IF NOT IS_VECTOR_ZERO(vMercPatrol[i][0])
|
|
ADD_PATROL_ROUTE_NODE(1, "WORLD_HUMAN_GUARD_STAND",vMercPatrol[i][0] , vMercPatrol[i][0] , GET_RANDOM_INT_IN_RANGE(500,1500))
|
|
ENDIF
|
|
IF NOT IS_VECTOR_ZERO(vMercPatrol[i][1])
|
|
ADD_PATROL_ROUTE_NODE(2, "WORLD_HUMAN_GUARD_STAND",vMercPatrol[i][1] , vMercPatrol[i][1] , GET_RANDOM_INT_IN_RANGE(1000,6000))
|
|
ENDIF
|
|
IF NOT IS_VECTOR_ZERO(vMercPatrol[i][2])
|
|
ADD_PATROL_ROUTE_NODE(3, "WORLD_HUMAN_GUARD_STAND",vMercPatrol[i][2] , vMercPatrol[i][2] , GET_RANDOM_INT_IN_RANGE(1000,6000))
|
|
ENDIF
|
|
IF NOT IS_VECTOR_ZERO(vMercPatrol[i][3])
|
|
ADD_PATROL_ROUTE_NODE(4, "WORLD_HUMAN_GUARD_STAND",vMercPatrol[i][3] , vMercPatrol[i][3] , GET_RANDOM_INT_IN_RANGE(1000,6000))
|
|
ENDIF
|
|
ADD_PATROL_ROUTE_LINK(1, 2)
|
|
ADD_PATROL_ROUTE_LINK(2, 3)
|
|
ADD_PATROL_ROUTE_LINK(3, 4)
|
|
ADD_PATROL_ROUTE_LINK(4, 1)
|
|
CLOSE_PATROL_ROUTE()
|
|
CREATE_PATROL_ROUTE()
|
|
IF NOT IS_PED_INJURED(pedMerc[i])
|
|
TASK_PATROL(pedMerc[i], sPatrol, PAS_CASUAL, TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
bMercPatrolCreated[i] = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
TEXT_LABEL tDebugName = "Merc "
|
|
tDebugName += i
|
|
SET_PED_NAME_DEBUG(pedMerc[i], tDebugName)
|
|
#ENDIF
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
PROC createDockWorker(INT i,BOOL bPatrol = TRUE)
|
|
IF NOT DOES_ENTITY_EXIST(pedDockWorker[i])
|
|
IF IS_VECTOR_ZERO(vDockWorkerStart[i])
|
|
PRINTSTRING("vDockWorkerStart:")PRINTINT(i)PRINTNL()
|
|
ENDIF
|
|
SPAWN_PED(pedDockWorker[i], S_M_M_DOCKWORK_01, vDockWorkerStart[i], fDockWorkerStart[i], FALSE)
|
|
SET_ENTITY_SHOULD_FREEZE_WAITING_ON_COLLISION(pedDockWorker[i],TRUE)
|
|
SET_PED_CONFIG_FLAG(pedDockWorker[i],PCF_UseKinematicModeWhenStationary,TRUE)
|
|
ELSE
|
|
IF NOT IS_PED_INJURED(pedDockWorker[i])
|
|
SET_PED_COMBAT_RANGE(pedDockWorker[i], CR_FAR)
|
|
SET_PED_COMBAT_MOVEMENT(pedDockWorker[i], CM_WILLRETREAT)
|
|
SET_PED_CONFIG_FLAG(pedDockWorker[i],PCF_CanBeAgitated,TRUE)
|
|
|
|
//Temp make these dudes friendly
|
|
SET_PED_RELATIONSHIP_GROUP_HASH(pedDockWorker[i] ,rel_group_buddies)
|
|
//ADD SIGNAL MAN
|
|
IF i = 7
|
|
IF NOT IS_PED_INJURED(pedDockWorker[14])
|
|
IF sSpeech.PedInfo[8].Index = NULL
|
|
ADD_PED_FOR_DIALOGUE(sSpeech, 8, pedDockWorker[14], "SIGNALMAN")
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF bPatrol = TRUE
|
|
IF bPatrolCreated[i] = FALSE
|
|
TEXT_LABEL sPatrol = "miss_dock"
|
|
sPatrol +=i
|
|
IF NOT IS_VECTOR_ZERO(vDockPatrol[i][0])
|
|
DELETE_PATROL_ROUTE(sPatrol)
|
|
OPEN_PATROL_ROUTE(sPatrol)
|
|
IF NOT IS_VECTOR_ZERO(vDockPatrol[i][0])
|
|
ADD_PATROL_ROUTE_NODE(1, "StandGuard",vDockPatrol[i][0] , vDockPatrol[i][0] , 1000)
|
|
ENDIF
|
|
IF NOT IS_VECTOR_ZERO(vDockPatrol[i][1])
|
|
ADD_PATROL_ROUTE_NODE(2, "StandGuard",vDockPatrol[i][1] , vDockPatrol[i][1] , 1000)
|
|
ENDIF
|
|
IF NOT IS_VECTOR_ZERO(vDockPatrol[i][2])
|
|
ADD_PATROL_ROUTE_NODE(3, "StandGuard",vDockPatrol[i][2] , vDockPatrol[i][2] , 1000)
|
|
ENDIF
|
|
IF NOT IS_VECTOR_ZERO(vDockPatrol[i][3])
|
|
ADD_PATROL_ROUTE_NODE(4, "StandGuard",vDockPatrol[i][3] , vDockPatrol[i][3] , 1000)
|
|
ENDIF
|
|
ADD_PATROL_ROUTE_LINK(1, 2)
|
|
ADD_PATROL_ROUTE_LINK(2, 3)
|
|
ADD_PATROL_ROUTE_LINK(3, 4)
|
|
ADD_PATROL_ROUTE_LINK(4, 1)
|
|
CLOSE_PATROL_ROUTE()
|
|
CREATE_PATROL_ROUTE()
|
|
IF NOT IS_PED_INJURED(pedDockWorker[i])
|
|
TASK_PATROL(pedDockWorker[i], sPatrol, PAS_CASUAL, TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
bPatrolCreated[i] = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
TEXT_LABEL tDebugName = "Dock Worker"
|
|
tDebugName += i
|
|
SET_PED_NAME_DEBUG(pedDockWorker[i], tDebugName)
|
|
#ENDIF
|
|
|
|
ENDIF
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
PROC createDockWorkersNow()
|
|
INT i
|
|
|
|
REPEAT 3 i
|
|
createDockWorker(i)
|
|
ENDREPEAT
|
|
|
|
ENDPROC
|
|
|
|
PROC createMercenaries()
|
|
INT i
|
|
|
|
REPEAT 3 i
|
|
IF NOT DOES_ENTITY_EXIST(pedMerc[i])
|
|
createMercenary(i)
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
//Patrols
|
|
IF NOT IS_PED_INJURED(pedMerc[0])
|
|
TASK_PATROL(pedMerc[0], "miss_merc0", PAS_CASUAL, TRUE)
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(pedMerc[1])
|
|
TASK_PATROL(pedMerc[1], "miss_merc1", PAS_CASUAL, TRUE)
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(pedMerc[2])
|
|
TASK_PATROL(pedMerc[2], "miss_merc2", PAS_CASUAL, TRUE)
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
// PURPOSE: If player is in a bike/car, remove player control 'til the car is stopped
|
|
PROC STOP_PLAYER_CAR(BOOL bAndLeave = FALSE,INT iDelay = 0)
|
|
|
|
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
|
|
IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
|
|
FLOAT playerCarSpeed
|
|
VEHICLE_INDEX playerCar
|
|
playerCar = GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID())
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(playerCar)
|
|
SET_PLAYER_CONTROL(PLAYER_ID(), FALSE)
|
|
playerCarSpeed = GET_ENTITY_SPEED(playerCar)
|
|
WHILE playerCarSpeed > 0.2
|
|
WAIT(0)
|
|
IF NOT IS_ENTITY_DEAD(playerCar)
|
|
playerCarSpeed = GET_ENTITY_SPEED(playerCar)
|
|
ENDIF
|
|
ENDWHILE
|
|
|
|
IF NOT bAndLeave
|
|
SET_PLAYER_CONTROL(PLAYER_ID(), TRUE)
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//FINISH
|
|
IF bAndLeave
|
|
IF GET_SCRIPT_TASK_STATUS(PLAYER_PED_ID(),SCRIPT_TASK_LEAVE_ANY_VEHICLE)<> PERFORMING_TASK
|
|
TASK_LEAVE_ANY_VEHICLE(PLAYER_PED_ID(),iDelay)
|
|
SET_PLAYER_CONTROL(PLAYER_ID(), TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
PROC SET_PED_FACING_PED(PED_INDEX pedLookAt, PED_INDEX pedToFace)
|
|
VECTOR v1, v2, v1v2
|
|
IF NOT IS_PED_INJURED(pedLookAt)
|
|
IF NOT IS_PED_INJURED(pedToFace)
|
|
v1 = GET_ENTITY_COORDS(pedLookAt)
|
|
v2 = GET_ENTITY_COORDS(pedToFace)
|
|
v1v2 = v2 - v1
|
|
SET_ENTITY_HEADING(pedLookAt, GET_HEADING_FROM_VECTOR_2D(v1v2.x, v1v2.y))
|
|
ENDIF
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
PROC SET_PED_FACING_COORD(PED_INDEX pedLookAt, VECTOR vCoord)
|
|
VECTOR v1, v1v2
|
|
IF NOT IS_PED_INJURED(pedLookAt)
|
|
|
|
v1 = GET_ENTITY_COORDS(pedLookAt)
|
|
v1v2 = vCoord - v1
|
|
|
|
SET_ENTITY_HEADING(pedLookAt, GET_HEADING_FROM_VECTOR_2D(v1v2.x, v1v2.y))
|
|
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
PROC REMOVE_OBJECT(OBJECT_INDEX &obj, BOOL b_force_delete = FALSE)
|
|
IF DOES_ENTITY_EXIST(obj)
|
|
IF IS_ENTITY_ATTACHED(obj)
|
|
DETACH_ENTITY(obj)
|
|
ENDIF
|
|
|
|
IF b_force_delete
|
|
DELETE_OBJECT(obj)
|
|
ELSE
|
|
SET_OBJECT_AS_NO_LONGER_NEEDED(obj)
|
|
ENDIF
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
FUNC BOOL IS_THIS_SYNCHRONISED_SCENE_COMPLETE(SynchList eSynchStage)
|
|
|
|
IF bSSComplete[eSynchStage]
|
|
RETURN TRUE
|
|
ENDIF
|
|
|
|
RETURN FALSE
|
|
|
|
ENDFUNC
|
|
|
|
FUNC PED_INDEX CREATE_DUMMY_PED(MODEL_NAMES model, VECTOR v_pos, FLOAT f_heading, REL_GROUP_HASH group,
|
|
INT i_health = 2000, INT i_armour = 0,PED_TYPE e_ped_type = PEDTYPE_MISSION)
|
|
PED_INDEX ped = CREATE_PED(e_ped_type, model, v_pos, f_heading)
|
|
SET_PED_MAX_HEALTH(ped, i_health)
|
|
SET_ENTITY_HEALTH(ped, i_health)
|
|
ADD_ARMOUR_TO_PED(ped, i_armour)
|
|
SET_ENTITY_VISIBLE(ped,TRUE)
|
|
SET_ENTITY_INVINCIBLE(ped,TRUE)
|
|
SET_PED_RELATIONSHIP_GROUP_HASH(ped, group)
|
|
RETURN ped
|
|
ENDFUNC
|
|
|
|
FUNC BOOL IS_SCENE_DATA_READY(SCENE_DATA sThisScene)
|
|
IF sThisScene.b_data_generated
|
|
RETURN TRUE
|
|
ELSE
|
|
RETURN FALSE
|
|
ENDIF
|
|
ENDFUNC
|
|
|
|
PROC RESET_SCENE_DATA(SCENE_DATA sThisScene)
|
|
IF sThisScene.b_data_generated
|
|
sThisScene.b_data_generated = FALSE
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
|
|
PROC GET_SCENE_DATA(SynchList eSynchStage)
|
|
|
|
////PRINTLN(s_sd_arrive_at_docks.b_data_generated)
|
|
|
|
SWITCH eSynchStage
|
|
CASE SS_ARRIVE_AT_DOCKS
|
|
IF NOT IS_SCENE_DATA_READY(s_sd_arrive_at_docks)
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_2_p1@new_structure")
|
|
REQUEST_MODEL(S_M_M_DOCKWORK_01)
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_2_p1@new_structure")
|
|
AND HAS_MODEL_LOADED(S_M_M_DOCKWORK_01)
|
|
IF NOT IS_SYNCHRONIZED_SCENE_RUNNING(sceneArriveStartId)
|
|
ped_dummy[0] = CREATE_DUMMY_PED(S_M_M_DOCKWORK_01,<< -81.7436, -2456.1165, 5.0189 >>, 87.3373, rel_group_buddies)
|
|
ped_dummy[1] = CREATE_DUMMY_PED(S_M_M_DOCKWORK_01,<< -81.7436, -2456.1165, 5.0189 >>, 87.3373, rel_group_buddies)
|
|
ped_dummy[2] = CREATE_DUMMY_PED(S_M_M_DOCKWORK_01,<< -81.7436, -2456.1165, 5.0189 >>, 87.3373, rel_group_buddies)
|
|
|
|
sceneDummy = CREATE_SYNCHRONIZED_SCENE(s_sd_arrive_at_docks.v_scene_pos, s_sd_arrive_at_docks.v_scene_rot)
|
|
TASK_SYNCHRONIZED_SCENE (ped_dummy[0],sceneDummy, "missheistdockssetup1ig_2_p1@new_structure", "supervisor_exitdoor_startidle_supervisor", NORMAL_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_NONE )
|
|
TASK_SYNCHRONIZED_SCENE (ped_dummy[1],sceneDummy, "missheistdockssetup1ig_2_p1@new_structure", "supervisor_exitdoor_startidle_wade", NORMAL_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_NONE,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (ped_dummy[2],sceneDummy, "missheistdockssetup1ig_2_p1@new_structure", "supervisor_exitdoor_startidle_floyd", NORMAL_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_NONE,RBF_PLAYER_IMPACT )
|
|
ELSE
|
|
IF NOT IS_PED_INJURED(ped_dummy[0])
|
|
s_sp_supervisor1[0].v_ss_pos = GET_ENTITY_COORDS(ped_dummy[0])
|
|
s_sp_supervisor1[0].f_ss_rot = GET_ENTITY_HEADING(ped_dummy[0])
|
|
DELETE_PED(ped_dummy[0])
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(ped_dummy[1])
|
|
v_ss_wade[SS_ARRIVE_AT_DOCKS]= GET_ENTITY_COORDS(ped_dummy[1])
|
|
f_ss_wade[SS_ARRIVE_AT_DOCKS]= GET_ENTITY_HEADING(ped_dummy[1])
|
|
DELETE_PED(ped_dummy[1])
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(ped_dummy[2])
|
|
v_ss_floyd[SS_ARRIVE_AT_DOCKS]= GET_ENTITY_COORDS(ped_dummy[2])
|
|
f_ss_floyd[SS_ARRIVE_AT_DOCKS] = GET_ENTITY_HEADING(ped_dummy[2])
|
|
DELETE_PED(ped_dummy[2])
|
|
ENDIF
|
|
|
|
s_sd_arrive_at_docks.b_data_generated = TRUE
|
|
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE Ss_dock_workers_on_pipe
|
|
IF NOT IS_SCENE_DATA_READY(s_sd_arrive_at_docks)
|
|
|
|
REQUEST_MODEL(S_M_M_DOCKWORK_01)
|
|
|
|
IF HAS_MODEL_LOADED(S_M_M_DOCKWORK_01)
|
|
//SCRIPT_ASSERT("1")
|
|
IF NOT IS_SYNCHRONIZED_SCENE_RUNNING(sceneDummy)
|
|
ped_dummy[0] = CREATE_DUMMY_PED(S_M_M_DOCKWORK_01,<< -81.7436, -2456.1165, 5.0189 >>, 87.3373, rel_group_buddies)
|
|
ped_dummy[1] = CREATE_DUMMY_PED(S_M_M_DOCKWORK_01,<< -81.7436, -2456.1165, 5.0189 >>, 87.3373, rel_group_buddies)
|
|
ped_dummy[2] = CREATE_DUMMY_PED(S_M_M_DOCKWORK_01,<< -81.7436, -2456.1165, 5.0189 >>, 87.3373, rel_group_buddies)
|
|
|
|
sceneDummy = CREATE_SYNCHRONIZED_SCENE(s_sd_dock_workers_on_pipe.v_scene_pos, s_sd_dock_workers_on_pipe.v_scene_rot)
|
|
//SCRIPT_ASSERT("2")
|
|
ELSE
|
|
IF NOT IS_PED_INJURED(ped_dummy[0])
|
|
s_sp_dock_workers_on_pipe[0].v_ss_pos = GET_ENTITY_COORDS(ped_dummy[0])
|
|
s_sp_dock_workers_on_pipe[0].f_ss_rot = GET_ENTITY_HEADING(ped_dummy[0])
|
|
DELETE_PED(ped_dummy[0])
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(ped_dummy[1])
|
|
s_sp_dock_workers_on_pipe[1].v_ss_pos = GET_ENTITY_COORDS(ped_dummy[1])
|
|
s_sp_dock_workers_on_pipe[1].f_ss_rot = GET_ENTITY_HEADING(ped_dummy[1])
|
|
DELETE_PED(ped_dummy[1])
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(ped_dummy[2])
|
|
s_sp_dock_workers_on_pipe[2].v_ss_pos = GET_ENTITY_COORDS(ped_dummy[2])
|
|
s_sp_dock_workers_on_pipe[2].f_ss_rot = GET_ENTITY_HEADING(ped_dummy[2])
|
|
DELETE_PED(ped_dummy[2])
|
|
ENDIF
|
|
// SCRIPT_ASSERT("3")
|
|
s_sd_dock_workers_on_pipe.b_data_generated = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE SS_blackwater_with_dockworker
|
|
IF NOT IS_SCENE_DATA_READY(S_sd_blackwater_with_dockworker)
|
|
REQUEST_MODEL(S_M_M_DOCKWORK_01)
|
|
IF NOT IS_SYNCHRONIZED_SCENE_RUNNING(sceneDummy)
|
|
ped_dummy[0] = CREATE_DUMMY_PED(S_M_M_DOCKWORK_01,<< -81.7436, -2456.1165, 5.0189 >>, 87.3373, rel_group_buddies)
|
|
ped_dummy[1] = CREATE_DUMMY_PED(S_M_M_DOCKWORK_01,<< -81.7436, -2456.1165, 5.0189 >>, 87.3373, rel_group_buddies)
|
|
ped_dummy[2] = CREATE_DUMMY_PED(S_M_M_DOCKWORK_01,<< -81.7436, -2456.1165, 5.0189 >>, 87.3373, rel_group_buddies)
|
|
|
|
sceneDummy = CREATE_SYNCHRONIZED_SCENE(S_sd_blackwater_with_dockworker.v_scene_pos, S_sd_blackwater_with_dockworker.v_scene_rot)
|
|
|
|
ELSE
|
|
IF NOT IS_PED_INJURED(ped_dummy[0])
|
|
s_sp_blackwater_with_dockworker[0].v_ss_pos = GET_ENTITY_COORDS(ped_dummy[0])
|
|
s_sp_blackwater_with_dockworker[0].f_ss_rot = GET_ENTITY_HEADING(ped_dummy[0])
|
|
DELETE_PED(ped_dummy[0])
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(ped_dummy[1])
|
|
s_sp_blackwater_with_dockworker[1].v_ss_pos = GET_ENTITY_COORDS(ped_dummy[1])
|
|
s_sp_blackwater_with_dockworker[1].f_ss_rot = GET_ENTITY_HEADING(ped_dummy[1])
|
|
DELETE_PED(ped_dummy[1])
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(ped_dummy[2])
|
|
s_sp_blackwater_with_dockworker[2].v_ss_pos = GET_ENTITY_COORDS(ped_dummy[2])
|
|
s_sp_blackwater_with_dockworker[2].f_ss_rot = GET_ENTITY_HEADING(ped_dummy[2])
|
|
DELETE_PED(ped_dummy[2])
|
|
ENDIF
|
|
|
|
S_sd_blackwater_with_dockworker.b_data_generated = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
|
|
CASE SS_FLOYD_GRABS_PACKAGE
|
|
IF NOT IS_SCENE_DATA_READY(s_sd_floyd_grabs_package)
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_4@start_idle")
|
|
REQUEST_MODEL(S_M_M_DOCKWORK_01)
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_4@start_idle")
|
|
AND HAS_MODEL_LOADED(S_M_M_DOCKWORK_01)
|
|
IF NOT IS_SYNCHRONIZED_SCENE_RUNNING(sceneDummy)
|
|
ped_dummy[0] = CREATE_DUMMY_PED(S_M_M_DOCKWORK_01,<< -81.7436, -2456.1165, 5.0189 >>, 87.3373, rel_group_buddies)
|
|
ped_dummy[1] = CREATE_DUMMY_PED(S_M_M_DOCKWORK_01,<< -81.7436, -2456.1165, 5.0189 >>, 87.3373, rel_group_buddies)
|
|
ped_dummy[2] = CREATE_DUMMY_PED(S_M_M_DOCKWORK_01,<< -81.7436, -2456.1165, 5.0189 >>, 87.3373, rel_group_buddies)
|
|
ped_dummy[3] = CREATE_DUMMY_PED(S_M_M_DOCKWORK_01,<< -81.7436, -2456.1165, 5.0189 >>, 87.3373, rel_group_buddies)
|
|
|
|
sceneDummy = CREATE_SYNCHRONIZED_SCENE(s_sd_floyd_grabs_package.v_scene_pos, s_sd_floyd_grabs_package.v_scene_rot)
|
|
TASK_SYNCHRONIZED_SCENE (ped_dummy[0],sceneDummy, "missheistdockssetup1ig_4@start_idle", "FLOYD_FellPackage_StartIdle_DockWorker1", NORMAL_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_NONE )
|
|
TASK_SYNCHRONIZED_SCENE (ped_dummy[1],sceneDummy, "missheistdockssetup1ig_4@start_idle", "FLOYD_FellPackage_StartIdle_DockWorker2", NORMAL_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_NONE )
|
|
TASK_SYNCHRONIZED_SCENE (ped_dummy[2],sceneDummy, "missheistdockssetup1ig_4@start_idle", "FLOYD_FellPackage_StartIdle_DockWorker3", NORMAL_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_NONE )
|
|
TASK_SYNCHRONIZED_SCENE (ped_dummy[3],sceneDummy, "missheistdockssetup1ig_4@start_idle", "FLOYD_FellPackage_StartIdle_Floyd", NORMAL_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_NONE,RBF_PLAYER_IMPACT )
|
|
ELSE
|
|
IF NOT IS_PED_INJURED(ped_dummy[0])
|
|
s_sp_floyd_grabs_package[0].v_ss_pos = GET_ENTITY_COORDS(ped_dummy[0])
|
|
s_sp_floyd_grabs_package[0].f_ss_rot = GET_ENTITY_HEADING(ped_dummy[0])
|
|
DELETE_PED(ped_dummy[0])
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(ped_dummy[1])
|
|
s_sp_floyd_grabs_package[1].v_ss_pos = GET_ENTITY_COORDS(ped_dummy[1])
|
|
s_sp_floyd_grabs_package[1].f_ss_rot = GET_ENTITY_HEADING(ped_dummy[1])
|
|
DELETE_PED(ped_dummy[1])
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(ped_dummy[2])
|
|
s_sp_floyd_grabs_package[2].v_ss_pos = GET_ENTITY_COORDS(ped_dummy[2])
|
|
s_sp_floyd_grabs_package[2].f_ss_rot = GET_ENTITY_HEADING(ped_dummy[2])
|
|
DELETE_PED(ped_dummy[2])
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(ped_dummy[3])
|
|
v_ss_floyd[SS_FLOYD_GRABS_PACKAGE] = GET_ENTITY_COORDS(ped_dummy[3])
|
|
f_ss_floyd[SS_FLOYD_GRABS_PACKAGE] = GET_ENTITY_HEADING(ped_dummy[3])
|
|
DELETE_PED(ped_dummy[3])
|
|
ENDIF
|
|
|
|
s_sd_floyd_grabs_package.b_data_generated = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
CASE SS_WELDER
|
|
IF NOT IS_SCENE_DATA_READY(s_sd_welder)
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_3")
|
|
REQUEST_MODEL(S_M_M_DOCKWORK_01)
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_3")
|
|
AND HAS_MODEL_LOADED(S_M_M_DOCKWORK_01)
|
|
IF NOT IS_SYNCHRONIZED_SCENE_RUNNING(sceneDummy)
|
|
ped_dummy[0] = CREATE_DUMMY_PED(S_M_M_DOCKWORK_01,<< -81.7436, -2456.1165, 5.0189 >>, 87.3373, rel_group_buddies)
|
|
IF DOES_ENTITY_EXIST(ped_dummy[0])
|
|
IF NOT IS_PED_INJURED(ped_dummy[0])
|
|
sceneDummy = CREATE_SYNCHRONIZED_SCENE(s_sd_welder.v_scene_pos,s_sd_welder.v_scene_rot)
|
|
TASK_SYNCHRONIZED_SCENE (ped_dummy[0], sceneDummy, "missheistdockssetup1ig_3", "welding_enter_dockworker", NORMAL_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_NONE )
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF NOT IS_PED_INJURED(ped_dummy[0])
|
|
s_sp_welder[0].v_ss_pos = GET_ENTITY_COORDS(ped_dummy[0])
|
|
s_sp_welder[0].f_ss_rot = GET_ENTITY_HEADING(ped_dummy[0])
|
|
DELETE_PED(ped_dummy[0])
|
|
ENDIF
|
|
s_sd_welder.b_data_generated = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
|
|
ENDSWITCH
|
|
|
|
|
|
ENDPROC
|
|
|
|
FUNC BOOL SETUP_PEDS_FOR_DIALOGUE()
|
|
|
|
IF DOES_ENTITY_EXIST(pedSecurity)
|
|
IF NOT IS_PED_INJURED(pedSecurity)
|
|
IF sSpeech.PedInfo[1].Index = NULL
|
|
ADD_PED_FOR_DIALOGUE(sSpeech, 1, pedSecurity, "GATEGUARD")
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF sSpeech.PedInfo[1].Index <> NULL
|
|
REMOVE_PED_FOR_DIALOGUE(sSpeech, 1)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ADD_PED_FOR_DIALOGUE(sSpeech, 2, PLAYER_PED_ID(), "TREVOR")
|
|
|
|
IF DOES_ENTITY_EXIST(pedFloyd)
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
//IF sSpeech.PedInfo[3].Index = NULL
|
|
IF sSpeech.PedInfo[3].ActiveInConversation = FALSE
|
|
ADD_PED_FOR_DIALOGUE(sSpeech, 3, pedFloyd, "FLOYD")
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
//IF sSpeech.PedInfo[3].Index <> NULL
|
|
IF sSpeech.PedInfo[3].ActiveInConversation = TRUE
|
|
REMOVE_PED_FOR_DIALOGUE(sSpeech, 3)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(pedWade)
|
|
IF NOT IS_PED_INJURED(pedWade)
|
|
IF sSpeech.PedInfo[4].Index = NULL
|
|
ADD_PED_FOR_DIALOGUE(sSpeech, 4, pedWade, "WADE")
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF sSpeech.PedInfo[4].Index <> NULL
|
|
REMOVE_PED_FOR_DIALOGUE(sSpeech, 4)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(s_sp_supervisor1[0].ped)
|
|
IF NOT IS_PED_INJURED(s_sp_supervisor1[0].ped)
|
|
ADD_PED_FOR_DIALOGUE(sSpeech, 6, s_sp_supervisor1[0].ped, "SUPERVISOR1")
|
|
ENDIF
|
|
ELSE
|
|
IF sSpeech.PedInfo[6].Index <> NULL
|
|
REMOVE_PED_FOR_DIALOGUE(sSpeech, 6)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF eMissionStage = MISSION_STAGE_4
|
|
IF DOES_ENTITY_EXIST(s_sp_dock_workers_talking[0].ped)
|
|
IF NOT IS_PED_INJURED(s_sp_dock_workers_talking[0].ped)
|
|
ADD_PED_FOR_DIALOGUE(sSpeech, 5, s_sp_dock_workers_talking[0].ped, "LONGSHOREMAN")
|
|
ENDIF
|
|
ELSE
|
|
IF sSpeech.PedInfo[5].Index <> NULL
|
|
REMOVE_PED_FOR_DIALOGUE(sSpeech, 5)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF eMissionStage = MISSION_STAGE_4
|
|
IF DOES_ENTITY_EXIST(s_sp_forklift_supervisorA[0].ped)
|
|
IF NOT IS_PED_INJURED(s_sp_forklift_supervisorA[0].ped)
|
|
ADD_PED_FOR_DIALOGUE(sSpeech, 7, s_sp_forklift_supervisorA[0].ped, "SUPERVISOR2")
|
|
ENDIF
|
|
ELSE
|
|
IF sSpeech.PedInfo[7].Index <> NULL
|
|
REMOVE_PED_FOR_DIALOGUE(sSpeech, 7)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF eMissionStage > MISSION_STAGE_5
|
|
IF DOES_ENTITY_EXIST(pedDockWorker[14])
|
|
IF NOT IS_PED_INJURED(pedDockWorker[14])
|
|
ADD_PED_FOR_DIALOGUE(sSpeech, 8, pedDockWorker[14], "SIGNALMAN")
|
|
ENDIF
|
|
ELSE
|
|
IF sSpeech.PedInfo[8].Index <> NULL
|
|
REMOVE_PED_FOR_DIALOGUE(sSpeech, 8)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
RETURN TRUE
|
|
|
|
ENDFUNC
|
|
|
|
PROC GENERATE_ALL_SCENE_DATA()
|
|
|
|
IF NOT IS_SCENE_DATA_READY(s_sd_arrive_at_docks)
|
|
GET_SCENE_DATA(SS_ARRIVE_AT_DOCKS)
|
|
//SCRIPT_ASSERT("SS_ARRIVE_AT_DOCKS")
|
|
ENDIF
|
|
|
|
IF IS_SCENE_DATA_READY(s_sd_arrive_at_docks)
|
|
IF NOT IS_SCENE_DATA_READY(S_sd_dock_workers_on_pipe)
|
|
GET_SCENE_DATA(SS_dock_workers_on_pipe)
|
|
//SCRIPT_ASSERT("SS_dock_workers_on_pipe")
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_SCENE_DATA_READY(S_sd_dock_workers_on_pipe)
|
|
IF NOT IS_SCENE_DATA_READY(S_sd_blackwater_with_dockworker)
|
|
GET_SCENE_DATA(SS_blackwater_with_dockworker)
|
|
//SCRIPT_ASSERT("SS_blackwater_with_dockworker")
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_SCENE_DATA_READY(S_sd_blackwater_with_dockworker)
|
|
IF NOT IS_SCENE_DATA_READY(s_sd_gantry_guys_dynamic)
|
|
GET_SCENE_DATA(SS_GANTRY_GUYS)
|
|
//SCRIPT_ASSERT("SS_GANTRY_GUYS")
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_SCENE_DATA_READY(s_sd_gantry_guys_dynamic)
|
|
IF NOT IS_SCENE_DATA_READY(s_sd_gantry_guys_static)
|
|
GET_SCENE_DATA(SS_STATIC_GANTRY_GUYS)
|
|
//SCRIPT_ASSERT("SS_STATIC_GANTRY_GUYS")
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_SCENE_DATA_READY(s_sd_gantry_guys_static)
|
|
IF NOT IS_SCENE_DATA_READY(s_sd_floyd_grabs_package)
|
|
GET_SCENE_DATA(SS_FLOYD_GRABS_PACKAGE)
|
|
//SCRIPT_ASSERT("SS_FLOYD_GRABS_PACKAGE")
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_SCENE_DATA_READY(s_sd_floyd_grabs_package)
|
|
IF NOT IS_SCENE_DATA_READY(s_sd_welder)
|
|
GET_SCENE_DATA(SS_WELDER)
|
|
//SCRIPT_ASSERT("SS_WELDER")
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
PROC MANAGE_SPEECH_FOR_AMBIENT_SET_PIECE(AMBIENT_SET_PIECE_SPEECH_ENUM eAmbientSP)
|
|
|
|
SWITCH eAmbientSP
|
|
|
|
CASE AMBSP_BLACKWATER_WITH_DOCK_WORKER
|
|
IF NOT IS_PED_INJURED(s_sp_blackwater_with_dockworker[0].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_blackwater_with_dockworker[1].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_blackwater_with_dockworker[2].ped)
|
|
IF s_sp_blackwater_with_dockworker[0].i_event = 0
|
|
// IF NOT HAS_LABEL_BEEN_TRIGGERED("TR2_DWAA")
|
|
// PLAY_PED_AMBIENT_SPEECH_WITH_VOICE_NATIVE(enemy[2].ped,"TR2_AIAA","TREVOR2BIKER1","SPEECH_PARAMS_FORCE_FRONTEND")
|
|
// SET_LABEL_AS_TRIGGERED("TR2_DWAA",TRUE)
|
|
// ELSE
|
|
// IF NOT HAS_LABEL_BEEN_TRIGGERED("TR2_DWAB")
|
|
// PLAY_PED_AMBIENT_SPEECH_WITH_VOICE_NATIVE(enemy[2].ped,"TR2_AIAB","TREVOR2BIKER1","SPEECH_PARAMS_FORCE_FRONTEND")
|
|
// SET_LABEL_AS_TRIGGERED("TR2_DWAB",TRUE)
|
|
// ELSE
|
|
// IF NOT HAS_LABEL_BEEN_TRIGGERED("TR2_DWAC")
|
|
// PLAY_PED_AMBIENT_SPEECH_WITH_VOICE_NATIVE(enemy[2].ped,"TR2_AIAC","TREVOR2BIKER1","SPEECH_PARAMS_FORCE_FRONTEND")
|
|
// SET_LABEL_AS_TRIGGERED("TR2_DWAC",TRUE)
|
|
// bDialogue = TRUE
|
|
// ENDIF
|
|
// ENDIF
|
|
// ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE AMBSP_DOCK_WORKERS_ON_PIPE
|
|
IF NOT IS_PED_INJURED(s_sp_dock_workers_on_pipe[0].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_dock_workers_on_pipe[1].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_dock_workers_on_pipe[2].ped)
|
|
// IF s_sp_dock_workers_on_pipe[0].i_event = 0
|
|
// IF NOT HAS_LABEL_BEEN_TRIGGERED("TR2_DWAA")
|
|
// PLAY_PED_AMBIENT_SPEECH_WITH_VOICE_NATIVE(enemy[2].ped,"TR2_AIAA","TREVOR2BIKER1","SPEECH_PARAMS_FORCE_FRONTEND")
|
|
// SET_LABEL_AS_TRIGGERED("TR2_DWAA",TRUE)
|
|
// ELSE
|
|
// IF NOT HAS_LABEL_BEEN_TRIGGERED("TR2_DWAB")
|
|
// PLAY_PED_AMBIENT_SPEECH_WITH_VOICE_NATIVE(enemy[2].ped,"TR2_AIAB","TREVOR2BIKER1","SPEECH_PARAMS_FORCE_FRONTEND")
|
|
// SET_LABEL_AS_TRIGGERED("TR2_DWAB",TRUE)
|
|
// ELSE
|
|
// IF NOT HAS_LABEL_BEEN_TRIGGERED("TR2_DWAC")
|
|
// PLAY_PED_AMBIENT_SPEECH_WITH_VOICE_NATIVE(enemy[2].ped,"TR2_AIAC","TREVOR2BIKER1","SPEECH_PARAMS_FORCE_FRONTEND")
|
|
// SET_LABEL_AS_TRIGGERED("TR2_DWAC",TRUE)
|
|
// bDialogue = TRUE
|
|
// ENDIF
|
|
// ENDIF
|
|
// ENDIF
|
|
// ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
|
|
ENDSWITCH
|
|
|
|
ENDPROC
|
|
|
|
PROC MANAGE_DOCK_SETPIECES(VECTOR v_player_pos)
|
|
|
|
//SEQUENCE_INDEX seq
|
|
|
|
//Keep these models in memory
|
|
REQUEST_MODEL(S_M_M_DOCKWORK_01)
|
|
REQUEST_MODEL(S_M_Y_BLACKOPS_01)
|
|
/*
|
|
_ ___ ___ _ _ _ ___ _ ___ __ _ __ _ ___
|
|
/ \| o \ o \ | | | __| / \_ _| | \ / \ / _| |// _|
|
|
| o | / / | V | _| | o | | | o | o | (_| (\_ \
|
|
|_n_|_|\\_|\\_|\_/|___| |_n_|_| |__/ \_/ \__|_|\\__|
|
|
|
|
*/
|
|
IF NOT IS_THIS_SYNCHRONISED_SCENE_COMPLETE(SS_ARRIVE_AT_DOCKS)
|
|
IF NOT DOES_ENTITY_EXIST(s_sp_supervisor1[0].ped)
|
|
IF eMissionStage > MISSION_STAGE_1
|
|
AND eMissionStage < MISSION_STAGE_4
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_2_p1@new_structure")
|
|
REQUEST_MODEL(s_sp_supervisor1[0].model)
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_2_p1@new_structure")
|
|
AND HAS_MODEL_LOADED(s_sp_supervisor1[0].model)
|
|
s_sp_supervisor1[0].ped = CREATE_SETPIECE_PED(s_sp_supervisor1[0].model,s_sp_supervisor1[0].v_ss_pos, s_sp_supervisor1[0].f_ss_rot, rel_group_buddies, 200, 0)
|
|
ADD_PED_FOR_DIALOGUE(sSpeech, 6, s_sp_supervisor1[0].ped, "SUPERVISOR1")
|
|
INITIALISE_SETPIECE_GROUP(s_sp_supervisor1, "Arrive at docks")
|
|
v_ss_floyd[SS_ARRIVE_AT_DOCKS] = <<-61.30, -2523.86, 6.16>>
|
|
f_ss_floyd[SS_ARRIVE_AT_DOCKS] = -31.41
|
|
|
|
v_ss_wade[SS_ARRIVE_AT_DOCKS] = <<-60.50, -2523.52, 6.16>>
|
|
f_ss_wade[SS_ARRIVE_AT_DOCKS] = 59.25
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF bSetPiece[SS_ARRIVE_AT_DOCKS]
|
|
SWITCH s_sp_supervisor1[0].i_event
|
|
//SUPERVISOR LEAVES THE BUILDING
|
|
CASE 0
|
|
|
|
IF DOES_ENTITY_EXIST(s_sp_supervisor1[0].ped)
|
|
AND DOES_ENTITY_EXIST(pedWade)
|
|
AND DOES_ENTITY_EXIST(pedFloyd)
|
|
IF NOT IS_PED_INJURED(s_sp_supervisor1[0].ped)
|
|
AND NOT IS_PED_INJURED(pedWade)
|
|
AND NOT IS_PED_INJURED(pedFloyd)
|
|
//KILL_FACE_TO_FACE_CONVERSATION_DO_NOT_FINISH_LAST_LINE()
|
|
IF SETUP_PEDS_FOR_DIALOGUE()
|
|
sceneArriveStartId = CREATE_SYNCHRONIZED_SCENE(s_sd_arrive_at_docks.v_scene_pos, s_sd_arrive_at_docks.v_scene_rot)
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_supervisor1[0].ped,sceneArriveStartId, "missheistdockssetup1ig_2_p1@new_structure", "walk_down_supervisor", NORMAL_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT)
|
|
s_sp_supervisor1[0].i_event ++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
//SUPERVISOR WAIT LOOP
|
|
CASE 1
|
|
IF GET_SYNCHRONIZED_SCENE_PHASE(sceneArriveStartId) > 0.1
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_03b")
|
|
IF NOT IS_PED_INJURED(s_sp_supervisor1[0].ped)
|
|
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(s_sp_supervisor1[0].ped,"DH1_BXAB","SUPERVISOR",SPEECH_PARAMS_FORCE_FRONTEND)
|
|
PRINTSTRING("SHOUT")PRINTNL()
|
|
SET_LABEL_AS_TRIGGERED("DS1_03b",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(s_sp_supervisor1[0].ped)
|
|
AND DOES_ENTITY_EXIST(pedWade)
|
|
AND DOES_ENTITY_EXIST(pedFloyd)
|
|
IF NOT IS_PED_INJURED(s_sp_supervisor1[0].ped)
|
|
AND NOT IS_PED_INJURED(pedWade)
|
|
AND NOT IS_PED_INJURED(pedFloyd)
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(sceneArriveStartId)
|
|
IF GET_SYNCHRONIZED_SCENE_PHASE(sceneArriveStartId) = 1.0
|
|
sceneArriveStartId = CREATE_SYNCHRONIZED_SCENE(s_sd_arrive_at_docks.v_scene_pos, s_sd_arrive_at_docks.v_scene_rot)
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_supervisor1[0].ped,sceneArriveStartId, "missheistdockssetup1ig_2_p1@new_structure", "wait_loop_supervisor", SLOW_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT)
|
|
SET_SYNCHRONIZED_SCENE_LOOPED(sceneArriveStartId,TRUE)
|
|
s_sp_supervisor1[0].i_event ++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
//START THE ACTION
|
|
CASE 2
|
|
IF DOES_ENTITY_EXIST(s_sp_supervisor1[0].ped)
|
|
AND DOES_ENTITY_EXIST(pedWade)
|
|
AND DOES_ENTITY_EXIST(pedFloyd)
|
|
IF NOT IS_PED_INJURED(s_sp_supervisor1[0].ped)
|
|
AND NOT IS_PED_INJURED(pedWade)
|
|
AND NOT IS_PED_INJURED(pedFloyd)
|
|
IF IS_PED_READY_FOR_ANIM(pedWade, v_ss_wade[SS_ARRIVE_AT_DOCKS], f_ss_wade[SS_ARRIVE_AT_DOCKS],<<0.2,0.2,2>>,360,TRUE)
|
|
AND IS_PED_READY_FOR_ANIM(pedFloyd,v_ss_floyd[SS_ARRIVE_AT_DOCKS], f_ss_floyd[SS_ARRIVE_AT_DOCKS],<<0.2,0.2,2>>,360,TRUE)
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_03c")
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData, IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF CREATE_CONVERSATION(sSpeech,"D1AUD", "DS1_03c", CONV_PRIORITY_HIGH)
|
|
REPLAY_RECORD_BACK_FOR_TIME(2.0, 7.0, REPLAY_IMPORTANCE_HIGHEST)
|
|
SET_LABEL_AS_TRIGGERED("DS1_03c",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
sceneArriveMainId = CREATE_SYNCHRONIZED_SCENE(s_sd_arrive_at_docks.v_scene_pos, s_sd_arrive_at_docks.v_scene_rot)
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_supervisor1[0].ped,sceneArriveMainId, "missheistdockssetup1ig_2_p1@new_structure", "push_guy_back_supervisor", SLOW_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT)
|
|
TASK_SYNCHRONIZED_SCENE (pedWade, sceneArriveMainId, "missheistdockssetup1ig_2_p1@new_structure", "push_guy_back_wade", SLOW_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT,4)
|
|
TASK_SYNCHRONIZED_SCENE (pedFloyd, sceneArriveMainId, "missheistdockssetup1ig_2_p1@new_structure", "push_guy_back_floyd", SLOW_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT,4)
|
|
SET_SYNCHRONIZED_SCENE_LOOPED(sceneArriveMainId,FALSE)
|
|
s_sp_supervisor1[0].i_event ++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
//GET INTO END IDLE
|
|
CASE 3
|
|
|
|
IF DOES_ENTITY_EXIST(s_sp_supervisor1[0].ped)
|
|
AND DOES_ENTITY_EXIST(pedWade)
|
|
AND DOES_ENTITY_EXIST(pedFloyd)
|
|
IF NOT IS_PED_INJURED(s_sp_supervisor1[0].ped)
|
|
AND NOT IS_PED_INJURED(pedWade)
|
|
AND NOT IS_PED_INJURED(pedFloyd)
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(sceneArriveMainId)
|
|
IF GET_SYNCHRONIZED_SCENE_PHASE(sceneArriveMainId) > 0.7
|
|
SET_LOCKED_UNSTREAMED_IN_DOOR_OF_TYPE(P_CUT_DOOR_02,<<-63.19, -2519.27, 7.79>>,TRUE,0,0,0)
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_2_p1@end_idle")
|
|
s_sp_supervisor1[0].i_event ++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
//FINISH UP - CLEAR TASKS ECT
|
|
CASE 4
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_2_p1@end_idle")
|
|
IF DOES_ENTITY_EXIST(pedFloyd)
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(sceneArriveMainId)
|
|
IF GET_SYNCHRONIZED_SCENE_PHASE(sceneArriveMainId) = 1
|
|
IF eMissionStage = MISSION_STAGE_2
|
|
sceneArriveMainId = CREATE_SYNCHRONIZED_SCENE(s_sd_arrive_at_docks.v_scene_pos, s_sd_arrive_at_docks.v_scene_rot)
|
|
TASK_SYNCHRONIZED_SCENE (pedFloyd,sceneArriveMainId, "missheistdockssetup1ig_2_p1@end_idle", "supervisor_exitdoor_endidle_floyd", NORMAL_BLEND_IN, SLOW_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS )
|
|
SET_SYNCHRONIZED_SCENE_LOOPED(sceneArriveMainId,TRUE)
|
|
REMOVE_ANIM_DICT("missheistdockssetup1ig_2_p1@new_structure")
|
|
bSSComplete[SS_ARRIVE_AT_DOCKS] = TRUE
|
|
s_sp_supervisor1[0].i_event ++
|
|
ELSE
|
|
IF eMissionStage = MISSION_STAGE_4
|
|
IF iProgress < 3
|
|
sceneArriveMainId = CREATE_SYNCHRONIZED_SCENE(s_sd_arrive_at_docks.v_scene_pos, s_sd_arrive_at_docks.v_scene_rot)
|
|
TASK_SYNCHRONIZED_SCENE (pedFloyd,sceneArriveMainId, "missheistdockssetup1ig_2_p1@end_idle", "supervisor_exitdoor_endidle_floyd", NORMAL_BLEND_IN, SLOW_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS )
|
|
SET_SYNCHRONIZED_SCENE_LOOPED(sceneArriveMainId,TRUE)
|
|
REMOVE_ANIM_DICT("missheistdockssetup1ig_2_p1@new_structure")
|
|
bSSComplete[SS_ARRIVE_AT_DOCKS] = TRUE
|
|
s_sp_supervisor1[0].i_event ++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 5
|
|
|
|
BREAK
|
|
|
|
|
|
ENDSWITCH
|
|
|
|
ELSE
|
|
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
/* ___ _ ___ ____ __ ___ _ ___ __ ___ _ __ _ _ _ __ ___
|
|
| __| | / \ V / \ / _|| o \/ \| o ) _| | o \/ \ / _| |/// \ / _|| __|
|
|
| _|| |_( o ) /| o ) ( |_n| / o | o \_ \ | _/ o ( (_| (| o ( |_n| _|
|
|
|_| |___|\_/|_||__/ \__/|_|\\_n_|___/__/ |_| |_n_|\__|_|\\_n_|\__/|___|*/
|
|
|
|
|
|
IF NOT IS_THIS_SYNCHRONISED_SCENE_COMPLETE(SS_FLOYD_GRABS_PACKAGE)
|
|
IF NOT DOES_ENTITY_EXIST(s_sp_floyd_grabs_package[0].ped)
|
|
IF eMissionStage > MISSION_STAGE_1
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_4@start_idle")
|
|
REQUEST_MODEL(s_sp_floyd_grabs_package[0].model)
|
|
REQUEST_MODEL(s_sp_floyd_grabs_package[1].model)
|
|
REQUEST_MODEL(s_sp_floyd_grabs_package[2].model)
|
|
//REQUEST_MODEL(PROP_CS_PACKAGE_01)
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_4@start_idle")
|
|
AND HAS_MODEL_LOADED(s_sp_floyd_grabs_package[0].model)
|
|
AND HAS_MODEL_LOADED(s_sp_floyd_grabs_package[1].model)
|
|
AND HAS_MODEL_LOADED(s_sp_floyd_grabs_package[2].model)
|
|
//AND HAS_MODEL_LOADED(PROP_CS_PACKAGE_01)
|
|
s_sp_floyd_grabs_package[0].ped = CREATE_SETPIECE_PED(s_sp_floyd_grabs_package[0].model,s_sp_floyd_grabs_package[0].v_ss_pos, s_sp_floyd_grabs_package[0].f_ss_rot, rel_group_buddies, 200, 0)
|
|
s_sp_floyd_grabs_package[1].ped = CREATE_SETPIECE_PED(s_sp_floyd_grabs_package[1].model,s_sp_floyd_grabs_package[1].v_ss_pos, s_sp_floyd_grabs_package[0].f_ss_rot, rel_group_buddies, 200, 0)
|
|
s_sp_floyd_grabs_package[2].ped = CREATE_SETPIECE_PED(s_sp_floyd_grabs_package[2].model,s_sp_floyd_grabs_package[2].v_ss_pos, s_sp_floyd_grabs_package[0].f_ss_rot, rel_group_buddies, 200, 0)
|
|
//s_sp_floyd_grabs_package[0].obj_prop = CREATE_OBJECT(PROP_CS_PACKAGE_01,<< -56.6750, -2434.4624, 5.0008 >>)
|
|
INITIALISE_SETPIECE_GROUP(s_sp_floyd_grabs_package, "Floyd Grabs Package")
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
//All the enemies are triggered off the same locate, so do outside the loop.
|
|
SET_PED_CAPSULE(s_sp_floyd_grabs_package[0].ped, 0.4)
|
|
SET_PED_CAPSULE(s_sp_floyd_grabs_package[1].ped, 0.7)
|
|
SET_PED_CAPSULE(s_sp_floyd_grabs_package[2].ped, 0.4)
|
|
|
|
SWITCH s_sp_floyd_grabs_package[0].i_event
|
|
//GET PEDS INTO POSITION
|
|
CASE 0
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_4@start_idle")
|
|
IF DOES_ENTITY_EXIST(s_sp_floyd_grabs_package[0].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_floyd_grabs_package[1].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_floyd_grabs_package[2].ped)
|
|
AND DOES_ENTITY_EXIST(pedFloyd)
|
|
IF NOT IS_PED_INJURED(s_sp_floyd_grabs_package[0].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_floyd_grabs_package[1].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_floyd_grabs_package[2].ped)
|
|
AND NOT IS_PED_INJURED(pedFloyd)
|
|
sceneFloydPackage1init = CREATE_SYNCHRONIZED_SCENE(<< -88.341, -2502.575, 5.011 >>, << 0.000, -0.000, -32.844 >>)
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_floyd_grabs_package[0].ped,sceneFloydPackage1init, "missheistdockssetup1ig_4@start_idle", "FLOYD_FellPackage_StartIdle_DockWorker1", NORMAL_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_floyd_grabs_package[1].ped,sceneFloydPackage1init, "missheistdockssetup1ig_4@start_idle", "FLOYD_FellPackage_StartIdle_DockWorker2", NORMAL_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_floyd_grabs_package[2].ped,sceneFloydPackage1init, "missheistdockssetup1ig_4@start_idle", "FLOYD_FellPackage_StartIdle_DockWorker3", NORMAL_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
SET_SYNCHRONIZED_SCENE_LOOPED(sceneFloydPackage1init,TRUE)
|
|
s_sp_floyd_grabs_package[0].i_event ++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
|
|
CASE 1
|
|
IF eMissionStage = MISSION_STAGE_4
|
|
IF DOES_ENTITY_EXIST(s_sp_floyd_grabs_package[0].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_floyd_grabs_package[1].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_floyd_grabs_package[2].ped)
|
|
AND DOES_ENTITY_EXIST(pedFloyd)
|
|
IF HAS_LABEL_BEEN_TRIGGERED("FLOYD SEEN BOAT")
|
|
IF NOT IS_PED_INJURED(s_sp_floyd_grabs_package[0].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_floyd_grabs_package[1].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_floyd_grabs_package[2].ped)
|
|
AND NOT IS_PED_INJURED(pedFloyd)
|
|
IF NOT IS_ENTITY_ON_SCREEN(s_sp_floyd_grabs_package[0].ped)
|
|
AND NOT IS_ENTITY_ON_SCREEN(s_sp_floyd_grabs_package[1].ped)
|
|
AND NOT IS_ENTITY_ON_SCREEN(s_sp_floyd_grabs_package[2].ped)
|
|
//CLEAR_PED_TASKS(pedFloyd)
|
|
STOP_SYNCHRONIZED_ENTITY_ANIM(s_sp_floyd_grabs_package[0].ped,SLOW_BLEND_OUT,TRUE)
|
|
STOP_SYNCHRONIZED_ENTITY_ANIM(s_sp_floyd_grabs_package[1].ped,SLOW_BLEND_OUT,TRUE)
|
|
STOP_SYNCHRONIZED_ENTITY_ANIM(s_sp_floyd_grabs_package[2].ped,SLOW_BLEND_OUT,TRUE)
|
|
CLEAR_PED_TASKS(s_sp_floyd_grabs_package[0].ped)
|
|
CLEAR_PED_TASKS(s_sp_floyd_grabs_package[1].ped)
|
|
CLEAR_PED_TASKS(s_sp_floyd_grabs_package[2].ped)
|
|
SET_PED_AS_NO_LONGER_NEEDED(s_sp_floyd_grabs_package[0].ped)
|
|
SET_PED_AS_NO_LONGER_NEEDED(s_sp_floyd_grabs_package[1].ped)
|
|
SET_PED_AS_NO_LONGER_NEEDED(s_sp_floyd_grabs_package[2].ped)
|
|
REMOVE_ANIM_DICT("missheistdockssetup1ig_4@start_idle")
|
|
bSSComplete[SS_FLOYD_GRABS_PACKAGE] = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
ENDIF
|
|
|
|
/*
|
|
| | | |/ \| o \ |// | \| |/ _| / \| \| | | o \ | o \ __|
|
|
| V V ( o ) / (| | \\ ( |_n ( o ) \\ | | _/ | _/ _|
|
|
\_n_/ \_/|_|\\_|\\_|_|\_|\__/ \_/|_|\_| |_| |_|_| |___|
|
|
*/
|
|
IF NOT IS_THIS_SYNCHRONISED_SCENE_COMPLETE(SS_dock_workers_on_pipe)
|
|
IF bSetPiece[SS_dock_workers_on_pipe]
|
|
IF NOT DOES_ENTITY_EXIST(s_sp_dock_workers_on_pipe[0].ped)
|
|
IF eMissionStage > MISSION_STAGE_1
|
|
REQUEST_MODEL(s_sp_dock_workers_on_pipe[0].model)
|
|
REQUEST_MODEL(s_sp_dock_workers_on_pipe[1].model)
|
|
REQUEST_MODEL(s_sp_dock_workers_on_pipe[2].model)
|
|
|
|
|
|
IF HAS_MODEL_LOADED(s_sp_dock_workers_on_pipe[0].model)
|
|
AND HAS_MODEL_LOADED(s_sp_dock_workers_on_pipe[1].model)
|
|
AND HAS_MODEL_LOADED(s_sp_dock_workers_on_pipe[2].model)
|
|
//IF IS_SCENE_DATA_READY(s_sd_dock_workers_on_pipe)
|
|
s_sp_dock_workers_on_pipe[0].ped = CREATE_SETPIECE_PED(s_sp_dock_workers_on_pipe[0].model,s_sp_dock_workers_on_pipe[0].v_ss_pos, s_sp_dock_workers_on_pipe[0].f_ss_rot, rel_group_buddies, 200, 0)
|
|
s_sp_dock_workers_on_pipe[1].ped = CREATE_SETPIECE_PED(s_sp_dock_workers_on_pipe[1].model,s_sp_dock_workers_on_pipe[1].v_ss_pos, s_sp_dock_workers_on_pipe[1].f_ss_rot, rel_group_buddies, 200, 0)
|
|
SET_PED_COMPONENT_VARIATION(s_sp_dock_workers_on_pipe[1].ped, PED_COMP_HEAD, 1, 0)
|
|
SET_PED_COMPONENT_VARIATION(s_sp_dock_workers_on_pipe[1].ped, PED_COMP_BERD, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(s_sp_dock_workers_on_pipe[1].ped, PED_COMP_HAIR, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(s_sp_dock_workers_on_pipe[1].ped, PED_COMP_TORSO, 1, 0)
|
|
SET_PED_COMPONENT_VARIATION(s_sp_dock_workers_on_pipe[1].ped, PED_COMP_LEG, 1, 0)
|
|
SET_PED_COMPONENT_VARIATION(s_sp_dock_workers_on_pipe[1].ped, PED_COMP_HAND, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(s_sp_dock_workers_on_pipe[1].ped, PED_COMP_FEET, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(s_sp_dock_workers_on_pipe[1].ped, PED_COMP_TEETH, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(s_sp_dock_workers_on_pipe[1].ped, PED_COMP_SPECIAL, 1, 0)
|
|
SET_PED_COMPONENT_VARIATION(s_sp_dock_workers_on_pipe[1].ped, PED_COMP_SPECIAL2, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(s_sp_dock_workers_on_pipe[1].ped, PED_COMP_DECL, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(s_sp_dock_workers_on_pipe[1].ped, PED_COMP_JBIB, 0, 0)
|
|
SET_PED_PROP_INDEX(s_sp_dock_workers_on_pipe[1].ped, ANCHOR_HEAD, 0)
|
|
|
|
s_sp_dock_workers_on_pipe[2].ped = CREATE_SETPIECE_PED(s_sp_dock_workers_on_pipe[2].model,s_sp_dock_workers_on_pipe[2].v_ss_pos, s_sp_dock_workers_on_pipe[2].f_ss_rot, rel_group_buddies, 200, 0)
|
|
INITIALISE_SETPIECE_GROUP(s_sp_dock_workers_on_pipe, "Working on pipe")
|
|
//ELSE
|
|
//GET_SCENE_DATA(SS_dock_workers_on_pipe)
|
|
//ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
//All the enemies are triggered off the same locate, so do outside the loop.
|
|
IF GET_DISTANCE_BETWEEN_COORDS(v_player_pos,s_sd_dock_workers_on_pipe.v_scene_pos) < 100
|
|
SWITCH s_sp_dock_workers_on_pipe[0].i_event
|
|
//GET PEDS INTO POSITION
|
|
|
|
CASE 0
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_10@base")
|
|
s_sp_dock_workers_on_pipe[0].i_event ++
|
|
BREAK
|
|
|
|
CASE 1
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_10@base")
|
|
IF DOES_ENTITY_EXIST(s_sp_dock_workers_on_pipe[0].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_dock_workers_on_pipe[1].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_dock_workers_on_pipe[2].ped)
|
|
IF NOT IS_PED_INJURED(s_sp_dock_workers_on_pipe[0].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_dock_workers_on_pipe[1].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_dock_workers_on_pipe[2].ped)
|
|
sceneDockPipe1Id = CREATE_SYNCHRONIZED_SCENE(<< -68.320, -2531.518, 5.060 >>, << 0.000, -0.000, 3.640 >>)
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_dock_workers_on_pipe[0].ped,sceneDockPipe1Id, "missheistdockssetup1ig_10@base", "talk_pipe_base_worker1", INSTANT_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_dock_workers_on_pipe[1].ped, sceneDockPipe1Id, "missheistdockssetup1ig_10@base", "talk_pipe_base_worker2", INSTANT_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_dock_workers_on_pipe[2].ped, sceneDockPipe1Id, "missheistdockssetup1ig_10@base", "talk_pipe_base_worker3", INSTANT_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
SET_SYNCHRONIZED_SCENE_LOOPED(sceneDockPipe1Id,TRUE)
|
|
s_sp_dock_workers_on_pipe[0].i_event ++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
//START THE ACTION
|
|
CASE 2
|
|
IF GET_DISTANCE_BETWEEN_COORDS(v_player_pos,s_sd_dock_workers_on_pipe.v_scene_pos) < 20
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_10@laugh")
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_10@laugh")
|
|
IF DOES_ENTITY_EXIST(s_sp_dock_workers_on_pipe[0].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_dock_workers_on_pipe[1].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_dock_workers_on_pipe[2].ped)
|
|
IF NOT IS_PED_INJURED(s_sp_dock_workers_on_pipe[0].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_dock_workers_on_pipe[1].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_dock_workers_on_pipe[2].ped)
|
|
sceneDockPipe2Id = CREATE_SYNCHRONIZED_SCENE(<< -68.320, -2531.518, 5.060 >>, << 0.000, -0.000, 3.640 >>)
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_dock_workers_on_pipe[0].ped, sceneDockPipe2Id, "missheistdockssetup1ig_10@laugh", "laugh_pipe_worker1", NORMAL_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_dock_workers_on_pipe[1].ped, sceneDockPipe2Id, "missheistdockssetup1ig_10@laugh", "laugh_pipe_worker2", NORMAL_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_dock_workers_on_pipe[2].ped, sceneDockPipe2Id, "missheistdockssetup1ig_10@laugh", "laugh_pipe_worker3", NORMAL_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
REMOVE_ANIM_DICT("missheistdockssetup1ig_10@laugh")
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_10@idle_b")
|
|
s_sp_dock_workers_on_pipe[0].i_event ++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
//LOOP AMBIENT AFTER TRIGGERING LAUGH
|
|
CASE 3
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_10@idle_b")
|
|
IF DOES_ENTITY_EXIST(s_sp_dock_workers_on_pipe[0].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_dock_workers_on_pipe[1].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_dock_workers_on_pipe[2].ped)
|
|
IF NOT IS_PED_INJURED(s_sp_dock_workers_on_pipe[0].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_dock_workers_on_pipe[1].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_dock_workers_on_pipe[2].ped)
|
|
SET_PED_CAPSULE(s_sp_dock_workers_on_pipe[0].ped, 0.5)
|
|
SET_PED_CAPSULE(s_sp_dock_workers_on_pipe[1].ped, 0.5)
|
|
SET_PED_CAPSULE(s_sp_dock_workers_on_pipe[2].ped, 0.5)
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(sceneDockPipe2Id)
|
|
IF GET_SYNCHRONIZED_SCENE_PHASE(sceneDockPipe2Id) = 1
|
|
sceneDockPipe3Id = CREATE_SYNCHRONIZED_SCENE(<< -68.320, -2531.518, 5.060 >>, << 0.000, -0.000, 3.640 >>)
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_dock_workers_on_pipe[0].ped,sceneDockPipe3Id, "missheistdockssetup1ig_10@idle_b", "talk_pipe_b_worker1", INSTANT_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_dock_workers_on_pipe[1].ped, sceneDockPipe3Id, "missheistdockssetup1ig_10@idle_b", "talk_pipe_b_worker2", INSTANT_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_dock_workers_on_pipe[2].ped, sceneDockPipe3Id, "missheistdockssetup1ig_10@idle_b", "talk_pipe_b_worker3", INSTANT_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
REMOVE_ANIM_DICT("missheistdockssetup1ig_10@idle_b")
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_10@idle_c")
|
|
s_sp_dock_workers_on_pipe[0].i_event ++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
//LOOP AMBIENT AFTER TRIGGERING LAUGH
|
|
CASE 4
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_10@idle_c")
|
|
IF DOES_ENTITY_EXIST(s_sp_dock_workers_on_pipe[0].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_dock_workers_on_pipe[1].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_dock_workers_on_pipe[2].ped)
|
|
IF NOT IS_PED_INJURED(s_sp_dock_workers_on_pipe[0].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_dock_workers_on_pipe[1].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_dock_workers_on_pipe[2].ped)
|
|
SET_PED_CAPSULE(s_sp_dock_workers_on_pipe[0].ped, 0.5)
|
|
SET_PED_CAPSULE(s_sp_dock_workers_on_pipe[1].ped, 0.5)
|
|
SET_PED_CAPSULE(s_sp_dock_workers_on_pipe[2].ped, 0.5)
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(sceneDockPipe3Id)
|
|
IF GET_SYNCHRONIZED_SCENE_PHASE(sceneDockPipe3Id) = 1
|
|
sceneDockPipe4Id = CREATE_SYNCHRONIZED_SCENE(<< -68.320, -2531.518, 5.060 >>, << 0.000, -0.000, 3.640 >>)
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_dock_workers_on_pipe[0].ped,sceneDockPipe4Id, "missheistdockssetup1ig_10@idle_c", "talk_pipe_c_worker1", INSTANT_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_dock_workers_on_pipe[1].ped, sceneDockPipe4Id, "missheistdockssetup1ig_10@idle_c", "talk_pipe_c_worker2", INSTANT_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_dock_workers_on_pipe[2].ped, sceneDockPipe4Id, "missheistdockssetup1ig_10@idle_c", "talk_pipe_c_worker3", INSTANT_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
REMOVE_ANIM_DICT("missheistdockssetup1ig_10@idle_c")
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_10@idle_d")
|
|
s_sp_dock_workers_on_pipe[0].i_event ++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
//LOOP AMBIENT AFTER TRIGGERING LAUGH
|
|
CASE 5
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_10@idle_d")
|
|
IF DOES_ENTITY_EXIST(s_sp_dock_workers_on_pipe[0].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_dock_workers_on_pipe[1].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_dock_workers_on_pipe[2].ped)
|
|
IF NOT IS_PED_INJURED(s_sp_dock_workers_on_pipe[0].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_dock_workers_on_pipe[1].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_dock_workers_on_pipe[2].ped)
|
|
SET_PED_CAPSULE(s_sp_dock_workers_on_pipe[0].ped, 0.5)
|
|
SET_PED_CAPSULE(s_sp_dock_workers_on_pipe[1].ped, 0.5)
|
|
SET_PED_CAPSULE(s_sp_dock_workers_on_pipe[2].ped, 0.5)
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(sceneDockPipe4Id)
|
|
IF GET_SYNCHRONIZED_SCENE_PHASE(sceneDockPipe4Id) = 1
|
|
sceneDockPipe5Id = CREATE_SYNCHRONIZED_SCENE(<< -68.320, -2531.518, 5.060 >>, << 0.000, -0.000, 3.640 >>)
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_dock_workers_on_pipe[0].ped,sceneDockPipe5Id, "missheistdockssetup1ig_10@idle_d", "talk_pipe_d_worker1", INSTANT_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_dock_workers_on_pipe[1].ped, sceneDockPipe5Id, "missheistdockssetup1ig_10@idle_d", "talk_pipe_d_worker2", INSTANT_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_dock_workers_on_pipe[2].ped, sceneDockPipe5Id, "missheistdockssetup1ig_10@idle_d", "talk_pipe_d_worker3", INSTANT_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
SET_SYNCHRONIZED_SCENE_LOOPED(sceneDockPipe5Id,TRUE)
|
|
s_sp_dock_workers_on_pipe[0].i_event ++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
//FINISH UP - CLEAR TASKS ECT
|
|
CASE 6
|
|
IF NOT IS_PED_INJURED(s_sp_dock_workers_on_pipe[0].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_dock_workers_on_pipe[1].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_dock_workers_on_pipe[2].ped)
|
|
IF NOT IS_ENTITY_ON_SCREEN(s_sp_dock_workers_on_pipe[0].ped)
|
|
AND NOT IS_ENTITY_ON_SCREEN(s_sp_dock_workers_on_pipe[1].ped)
|
|
AND NOT IS_ENTITY_ON_SCREEN(s_sp_dock_workers_on_pipe[2].ped)
|
|
|
|
IF NOT IS_PED_INJURED(s_sp_dock_workers_on_pipe[0].ped)
|
|
CLEAR_PED_TASKS(s_sp_dock_workers_on_pipe[0].ped)
|
|
SET_PED_AS_NO_LONGER_NEEDED(s_sp_dock_workers_on_pipe[0].ped)
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(s_sp_dock_workers_on_pipe[1].ped)
|
|
CLEAR_PED_TASKS(s_sp_dock_workers_on_pipe[1].ped)
|
|
SET_PED_AS_NO_LONGER_NEEDED(s_sp_dock_workers_on_pipe[1].ped)
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(s_sp_dock_workers_on_pipe[2].ped)
|
|
CLEAR_PED_TASKS(s_sp_dock_workers_on_pipe[2].ped)
|
|
SET_PED_AS_NO_LONGER_NEEDED(s_sp_dock_workers_on_pipe[2].ped)
|
|
ENDIF
|
|
REMOVE_ANIM_DICT("missheistdockssetup1ig_10@idle_d")
|
|
bSSComplete[SS_dock_workers_on_pipe] = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
/*
|
|
__ _ _ _ ___ _____ __ __ _ ___ ____ ____ ___ _ _ _ _ _ __
|
|
/ _| / \| \| |_ _| o \ V / / _|| | \ V / _| | \ V / \| |/ \| \_/ | |/ _|
|
|
( |_n| o | \\ || || /\ / ( |_n| U |\ /\_ \ | o ) /| \\ | o | \_/ | ( (_
|
|
\__/|_n_|_|\_||_||_|\\|_| \__/|___||_||__/ |__/|_||_|\_|_n_|_| |_|_|\__| */
|
|
|
|
IF bSetPiece[SS_GANTRY_GUYS]
|
|
|
|
IF NOT DOES_ENTITY_EXIST(s_sp_gantry_guys_dynamic[0].ped)
|
|
REQUEST_MODEL(s_sp_gantry_guys_dynamic[0].model)
|
|
REQUEST_MODEL(s_sp_gantry_guys_dynamic[1].model)
|
|
REQUEST_MODEL(s_sp_gantry_guys_dynamic[2].model)
|
|
REQUEST_MODEL(s_sp_gantry_guys_dynamic[3].model)
|
|
|
|
IF HAS_MODEL_LOADED(s_sp_gantry_guys_dynamic[0].model)
|
|
AND HAS_MODEL_LOADED(s_sp_gantry_guys_dynamic[1].model)
|
|
AND HAS_MODEL_LOADED(s_sp_gantry_guys_dynamic[2].model)
|
|
AND HAS_MODEL_LOADED(s_sp_gantry_guys_dynamic[3].model)
|
|
//IF IS_SCENE_DATA_READY(s_sd_gantry_guys_dynamic)
|
|
s_sp_gantry_guys_dynamic[0].ped = CREATE_SETPIECE_PED(s_sp_gantry_guys_dynamic[0].model,s_sp_gantry_guys_dynamic[0].v_ss_pos, s_sp_gantry_guys_dynamic[0].f_ss_rot, rel_group_buddies, 200, 0)
|
|
s_sp_gantry_guys_dynamic[1].ped = CREATE_SETPIECE_PED(s_sp_gantry_guys_dynamic[1].model,s_sp_gantry_guys_dynamic[1].v_ss_pos, s_sp_gantry_guys_dynamic[1].f_ss_rot, rel_group_buddies, 200, 0)
|
|
s_sp_gantry_guys_dynamic[2].ped = CREATE_SETPIECE_PED(s_sp_gantry_guys_dynamic[2].model,s_sp_gantry_guys_dynamic[2].v_ss_pos, s_sp_gantry_guys_dynamic[2].f_ss_rot, rel_group_buddies, 200, 0)
|
|
s_sp_gantry_guys_dynamic[3].ped = CREATE_SETPIECE_PED(s_sp_gantry_guys_dynamic[3].model,s_sp_gantry_guys_dynamic[3].v_ss_pos, s_sp_gantry_guys_dynamic[3].f_ss_rot, rel_group_buddies, 200, 0)
|
|
INITIALISE_SETPIECE_GROUP(s_sp_gantry_guys_dynamic, "Gantry guys dynamic")
|
|
//ELSE
|
|
//GET_SCENE_DATA(SS_GANTRY_GUYS)
|
|
//ENDIF
|
|
ENDIF
|
|
ELSE
|
|
//All the enemies are triggered off the same locate, so do outside the loop.
|
|
IF GET_DISTANCE_BETWEEN_COORDS(v_player_pos,s_sd_gantry_guys_dynamic.v_scene_pos) < 100
|
|
//REPEAT COUNT_OF(s_sp_gantry_guys_dynamic) i
|
|
//IF DOES_ENTITY_EXIST(s_sp_gantry_guys_dynamic[i].ped)
|
|
//IF NOT IS_PED_INJURED(s_sp_gantry_guys_dynamic[i].ped)
|
|
SWITCH s_sp_gantry_guys_dynamic[0].i_event
|
|
//GET PEDS INTO POSITION
|
|
|
|
CASE 0
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_12@base")
|
|
s_sp_gantry_guys_dynamic[0].i_event ++
|
|
BREAK
|
|
|
|
CASE 1
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_12@base")
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_12@base")
|
|
//LOOP OVER UNTIL PARK UP
|
|
IF DOES_ENTITY_EXIST(s_sp_gantry_guys_dynamic[0].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_gantry_guys_dynamic[1].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_gantry_guys_dynamic[2].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_gantry_guys_dynamic[3].ped)
|
|
IF NOT IS_PED_INJURED(s_sp_gantry_guys_dynamic[0].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_gantry_guys_dynamic[1].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_gantry_guys_dynamic[2].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_gantry_guys_dynamic[3].ped)
|
|
sceneGantryCraneDynamic1 = CREATE_SYNCHRONIZED_SCENE(s_sd_gantry_guys_dynamic.v_scene_pos,s_sd_gantry_guys_dynamic.v_scene_rot)
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_gantry_guys_dynamic[0].ped,sceneGantryCraneDynamic1, "missheistdockssetup1ig_12@base", "TALK_Gantry_Idle_Base_Worker1", INSTANT_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_gantry_guys_dynamic[1].ped, sceneGantryCraneDynamic1,"missheistdockssetup1ig_12@base", "TALK_Gantry_Idle_Base_Worker2", INSTANT_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_gantry_guys_dynamic[2].ped, sceneGantryCraneDynamic1,"missheistdockssetup1ig_12@base", "TALK_Gantry_Idle_Base_Worker3", INSTANT_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_gantry_guys_dynamic[3].ped, sceneGantryCraneDynamic1,"missheistdockssetup1ig_12@base", "TALK_Gantry_Idle_Base_Worker4", INSTANT_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
SET_SYNCHRONIZED_SCENE_LOOPED(sceneGantryCraneDynamic1,TRUE)
|
|
s_sp_gantry_guys_dynamic[0].i_event ++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
//START THE ACTION - WHEN THE PLAYER APPROACHES GET COORDS FOR CONDITION
|
|
CASE 2
|
|
IF GET_DISTANCE_BETWEEN_COORDS(v_player_pos,s_sd_gantry_guys_dynamic.v_scene_pos) < 50
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_12@idle_a")
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_12@idle_a")
|
|
IF DOES_ENTITY_EXIST(s_sp_gantry_guys_dynamic[0].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_gantry_guys_dynamic[1].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_gantry_guys_dynamic[2].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_gantry_guys_dynamic[3].ped)
|
|
IF NOT IS_PED_INJURED(s_sp_gantry_guys_dynamic[0].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_gantry_guys_dynamic[1].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_gantry_guys_dynamic[2].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_gantry_guys_dynamic[3].ped)
|
|
sceneGantryCraneDynamic2 = CREATE_SYNCHRONIZED_SCENE(s_sd_gantry_guys_dynamic.v_scene_pos,s_sd_gantry_guys_dynamic.v_scene_rot)
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_gantry_guys_dynamic[0].ped, sceneGantryCraneDynamic2, "missheistdockssetup1ig_12@idle_a", "TALK_Gantry_Idle_A_Worker1", SLOW_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_gantry_guys_dynamic[1].ped, sceneGantryCraneDynamic2,"missheistdockssetup1ig_12@idle_a", "TALK_Gantry_Idle_A_Worker2", SLOW_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_gantry_guys_dynamic[2].ped, sceneGantryCraneDynamic2,"missheistdockssetup1ig_12@idle_a", "TALK_Gantry_Idle_A_Worker3", SLOW_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_gantry_guys_dynamic[3].ped, sceneGantryCraneDynamic2,"missheistdockssetup1ig_12@idle_a", "TALK_Gantry_Idle_A_Worker4", SLOW_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_12@idle_b")
|
|
|
|
s_sp_gantry_guys_dynamic[0].i_event ++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
//SECOND ANIM
|
|
CASE 3
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_12@idle_b")
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_12@idle_b")
|
|
IF DOES_ENTITY_EXIST(s_sp_gantry_guys_dynamic[0].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_gantry_guys_dynamic[1].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_gantry_guys_dynamic[2].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_gantry_guys_dynamic[3].ped)
|
|
IF NOT IS_PED_INJURED(s_sp_gantry_guys_dynamic[0].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_gantry_guys_dynamic[1].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_gantry_guys_dynamic[2].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_gantry_guys_dynamic[3].ped)
|
|
IF GET_SYNCHRONIZED_SCENE_PHASE(sceneGantryCraneDynamic2) = 1
|
|
sceneGantryCraneDynamic3 = CREATE_SYNCHRONIZED_SCENE(s_sd_gantry_guys_dynamic.v_scene_pos,s_sd_gantry_guys_dynamic.v_scene_rot)
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_gantry_guys_dynamic[0].ped,sceneGantryCraneDynamic3, "missheistdockssetup1ig_12@idle_b", "TALK_Gantry_Idle_B_Worker1", NORMAL_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_gantry_guys_dynamic[1].ped, sceneGantryCraneDynamic3,"missheistdockssetup1ig_12@idle_b", "TALK_Gantry_Idle_B_Worker2", NORMAL_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_gantry_guys_dynamic[2].ped, sceneGantryCraneDynamic3,"missheistdockssetup1ig_12@idle_b", "TALK_Gantry_Idle_B_Worker3", NORMAL_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_gantry_guys_dynamic[3].ped, sceneGantryCraneDynamic3,"missheistdockssetup1ig_12@idle_b", "TALK_Gantry_Idle_B_Worker4", NORMAL_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_12@idle_c")
|
|
s_sp_gantry_guys_dynamic[0].i_event ++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
//FINAL LOOP
|
|
CASE 4
|
|
REMOVE_ANIM_DICT("missheistdockssetup1ig_12@idle_b")
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_12@idle_c")
|
|
IF DOES_ENTITY_EXIST(s_sp_gantry_guys_dynamic[0].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_gantry_guys_dynamic[1].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_gantry_guys_dynamic[2].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_gantry_guys_dynamic[3].ped)
|
|
IF NOT IS_PED_INJURED(s_sp_gantry_guys_dynamic[0].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_gantry_guys_dynamic[1].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_gantry_guys_dynamic[2].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_gantry_guys_dynamic[3].ped)
|
|
IF GET_SYNCHRONIZED_SCENE_PHASE(sceneGantryCraneDynamic3) = 1
|
|
sceneGantryCraneDynamic4= CREATE_SYNCHRONIZED_SCENE(s_sd_gantry_guys_dynamic.v_scene_pos,s_sd_gantry_guys_dynamic.v_scene_rot)
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_gantry_guys_dynamic[0].ped, sceneGantryCraneDynamic4, "missheistdockssetup1ig_12@idle_c", "TALK_Gantry_Idle_C_Worker1", NORMAL_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_gantry_guys_dynamic[1].ped, sceneGantryCraneDynamic4,"missheistdockssetup1ig_12@idle_c", "TALK_Gantry_Idle_C_Worker2", NORMAL_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_gantry_guys_dynamic[2].ped, sceneGantryCraneDynamic4,"missheistdockssetup1ig_12@idle_c", "TALK_Gantry_Idle_C_Worker3", NORMAL_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_gantry_guys_dynamic[3].ped, sceneGantryCraneDynamic4,"missheistdockssetup1ig_12@idle_c", "TALK_Gantry_Idle_C_Worker4", NORMAL_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
SET_SYNCHRONIZED_SCENE_LOOPED(sceneGantryCraneDynamic4,TRUE)
|
|
s_sp_gantry_guys_dynamic[0].i_event ++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
//FINISH UP - CLEAR TASKS ECT
|
|
CASE 5
|
|
REMOVE_ANIM_DICT("missheistdockssetup1ig_12@idle_a")
|
|
REMOVE_ANIM_DICT("missheistdockssetup1ig_12@idle_c")
|
|
BREAK
|
|
|
|
|
|
ENDSWITCH
|
|
//ENDIF
|
|
//ENDIF
|
|
//ENDREPEAT
|
|
ELSE
|
|
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
|
|
/*
|
|
__ _ ___ ____ _ ___ _ _ _ _ _ __ __ _ ___
|
|
/ _|| | \ V / _| / \| o \/ \| | | \| | \ / _|/ \| o \
|
|
( |_n| U |\ /\_ \ | o | ( o ) U | \\ | o ) ( (_| o | /
|
|
\__/|___||_||__/ |_n_|_|\\\_/|___|_|\_|__/ \__|_n_|_|\\ */
|
|
|
|
IF bSetPiece[SS_guys_around_car]
|
|
|
|
IF NOT DOES_ENTITY_EXIST(s_sp_guys_around_car[4].ped)
|
|
REQUEST_MODEL(s_sp_guys_around_car[0].model)
|
|
REQUEST_MODEL(s_sp_guys_around_car[1].model)
|
|
REQUEST_MODEL(s_sp_guys_around_car[2].model)
|
|
REQUEST_MODEL(s_sp_guys_around_car[3].model)
|
|
REQUEST_MODEL(s_sp_guys_around_car[4].model)
|
|
REQUEST_MODEL(BUFFALO)
|
|
IF HAS_MODEL_LOADED(s_sp_guys_around_car[0].model)
|
|
AND HAS_MODEL_LOADED(s_sp_guys_around_car[1].model)
|
|
AND HAS_MODEL_LOADED(s_sp_guys_around_car[2].model)
|
|
AND HAS_MODEL_LOADED(s_sp_guys_around_car[3].model)
|
|
AND HAS_MODEL_LOADED(s_sp_guys_around_car[4].model)
|
|
AND HAS_MODEL_LOADED(s_sv_car_to_admire[0].model)
|
|
s_sv_car_to_admire[0].veh = CREATE_SETPIECE_VEHICLE(BUFFALO,s_sv_car_to_admire[0].v_spawn_position,s_sv_car_to_admire[0].f_start_heading)
|
|
IF NOT s_sv_car_to_admire[0].b_is_created
|
|
s_sv_car_to_admire[0].b_is_created = TRUE
|
|
ENDIF
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(s_sv_car_to_admire[0].model)
|
|
s_sp_guys_around_car[0].ped = CREATE_SETPIECE_PED(s_sp_guys_around_car[0].model,s_sp_guys_around_car[0].v_spawn_position, s_sp_guys_around_car[0].f_ss_rot, rel_group_buddies, 200, 0)
|
|
s_sp_guys_around_car[1].ped = CREATE_SETPIECE_PED(s_sp_guys_around_car[1].model,s_sp_guys_around_car[1].v_spawn_position, s_sp_guys_around_car[1].f_ss_rot, rel_group_buddies, 200, 0)
|
|
s_sp_guys_around_car[2].ped = CREATE_SETPIECE_PED(s_sp_guys_around_car[2].model,s_sp_guys_around_car[2].v_spawn_position, s_sp_guys_around_car[2].f_ss_rot, rel_group_buddies, 200, 0)
|
|
s_sp_guys_around_car[3].ped = CREATE_SETPIECE_PED(s_sp_guys_around_car[3].model,s_sp_guys_around_car[3].v_spawn_position, s_sp_guys_around_car[3].f_ss_rot, rel_group_buddies, 200, 0)
|
|
s_sp_guys_around_car[4].ped = CREATE_SETPIECE_PED(s_sp_guys_around_car[4].model,s_sp_guys_around_car[4].v_spawn_position, s_sp_guys_around_car[4].f_ss_rot, rel_group_buddies, 200, 0)
|
|
INITIALISE_SETPIECE_GROUP(s_sp_guys_around_car, "Show off car")
|
|
ENDIF
|
|
ELSE
|
|
//All the enemies are triggered off the same locate, so do outside the loop.
|
|
IF IS_VEHICLE_DRIVEABLE(s_sv_car_to_admire[0].veh)
|
|
IF GET_DISTANCE_BETWEEN_COORDS(v_player_pos,GET_ENTITY_COORDS(s_sv_car_to_admire[0].veh)) < 100
|
|
IF s_sp_guys_around_car[0].i_event > 1
|
|
IF GET_DISTANCE_BETWEEN_COORDS(v_player_pos,GET_ENTITY_COORDS(s_sv_car_to_admire[0].veh)) > 20
|
|
REMOVE_ANIM_DICT("missheistdockssetup1showcar@idle_a")
|
|
REMOVE_ANIM_DICT("missheistdockssetup1showcar@idle_b")
|
|
REQUEST_ANIM_DICT("missheistdockssetup1showcar@base")
|
|
s_sp_guys_around_car[0].i_event = 1
|
|
ENDIF
|
|
ENDIF
|
|
|
|
SWITCH s_sp_guys_around_car[0].i_event
|
|
//GET PEDS INTO POSITION
|
|
|
|
CASE 0
|
|
REQUEST_ANIM_DICT("missheistdockssetup1showcar@base")
|
|
IF IS_VEHICLE_DRIVEABLE(s_sv_car_to_admire[0].veh)
|
|
SET_VEHICLE_IS_CONSIDERED_BY_PLAYER(s_sv_car_to_admire[0].veh,FALSE)
|
|
FREEZE_ENTITY_POSITION(s_sv_car_to_admire[0].veh,TRUE)
|
|
ENDIF
|
|
s_sp_guys_around_car[0].i_event ++
|
|
BREAK
|
|
|
|
CASE 1
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1showcar@base")
|
|
//LOOP OVER UNTIL PARK UP
|
|
IF DOES_ENTITY_EXIST(s_sp_guys_around_car[0].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_guys_around_car[1].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_guys_around_car[2].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_guys_around_car[3].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_guys_around_car[4].ped)
|
|
IF NOT IS_PED_INJURED(s_sp_guys_around_car[0].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_guys_around_car[1].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_guys_around_car[2].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_guys_around_car[3].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_guys_around_car[4].ped)
|
|
sceneGuysAroundCar1 = CREATE_SYNCHRONIZED_SCENE(s_sd_guys_around_car.v_scene_pos,s_sd_guys_around_car.v_scene_rot)
|
|
IF IS_VEHICLE_DRIVEABLE(s_sv_car_to_admire[0].veh)
|
|
ATTACH_SYNCHRONIZED_SCENE_TO_ENTITY(sceneGuysAroundCar1,s_sv_car_to_admire[0].veh,-1)
|
|
ENDIF
|
|
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_guys_around_car[0].ped,sceneGuysAroundCar1, "missheistdockssetup1showcar@base", "base_1", INSTANT_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_guys_around_car[1].ped, sceneGuysAroundCar1,"missheistdockssetup1showcar@base", "base_2", INSTANT_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_guys_around_car[2].ped, sceneGuysAroundCar1,"missheistdockssetup1showcar@base", "base_3", INSTANT_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_guys_around_car[3].ped, sceneGuysAroundCar1,"missheistdockssetup1showcar@base", "base_4", INSTANT_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_guys_around_car[4].ped, sceneGuysAroundCar1,"missheistdockssetup1showcar@base", "base_5", INSTANT_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
SET_SYNCHRONIZED_SCENE_LOOPED(sceneGuysAroundCar1,TRUE)
|
|
|
|
SET_ENTITY_NO_COLLISION_ENTITY(s_sp_guys_around_car[0].ped,s_sv_car_to_admire[0].veh,FALSE)
|
|
SET_ENTITY_NO_COLLISION_ENTITY(s_sp_guys_around_car[1].ped,s_sv_car_to_admire[0].veh,FALSE)
|
|
SET_ENTITY_NO_COLLISION_ENTITY(s_sp_guys_around_car[2].ped,s_sv_car_to_admire[0].veh,FALSE)
|
|
SET_ENTITY_NO_COLLISION_ENTITY(s_sp_guys_around_car[3].ped,s_sv_car_to_admire[0].veh,FALSE)
|
|
SET_ENTITY_NO_COLLISION_ENTITY(s_sp_guys_around_car[4].ped,s_sv_car_to_admire[0].veh,FALSE)
|
|
|
|
s_sp_guys_around_car[0].i_event ++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 2
|
|
IF GET_DISTANCE_BETWEEN_COORDS(v_player_pos,GET_ENTITY_COORDS(s_sv_car_to_admire[0].veh)) < 15
|
|
REQUEST_ANIM_DICT("missheistdockssetup1showcar@idle_a")
|
|
s_sp_guys_around_car[0].i_event ++
|
|
ENDIF
|
|
BREAK
|
|
|
|
//START THE ACTION - WHEN THE PLAYER APPROACHES GET COORDS FOR CONDITION
|
|
CASE 3
|
|
REQUEST_ANIM_DICT("missheistdockssetup1showcar@idle_a")
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1showcar@idle_a")
|
|
AND DOES_ENTITY_EXIST(s_sp_guys_around_car[0].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_guys_around_car[1].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_guys_around_car[2].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_guys_around_car[3].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_guys_around_car[4].ped)
|
|
IF NOT IS_PED_INJURED(s_sp_guys_around_car[0].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_guys_around_car[1].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_guys_around_car[2].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_guys_around_car[3].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_guys_around_car[4].ped)
|
|
sceneGuysAroundCar2 = CREATE_SYNCHRONIZED_SCENE(s_sd_guys_around_car.v_scene_pos,s_sd_guys_around_car.v_scene_rot)
|
|
IF IS_VEHICLE_DRIVEABLE(s_sv_car_to_admire[0].veh)
|
|
ATTACH_SYNCHRONIZED_SCENE_TO_ENTITY(sceneGuysAroundCar2,s_sv_car_to_admire[0].veh,-1)
|
|
ENDIF
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_guys_around_car[0].ped,sceneGuysAroundCar2, "missheistdockssetup1showcar@idle_a", "idle_a_1", INSTANT_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_guys_around_car[1].ped, sceneGuysAroundCar2,"missheistdockssetup1showcar@idle_a", "idle_a_2", INSTANT_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_guys_around_car[2].ped, sceneGuysAroundCar2,"missheistdockssetup1showcar@idle_a", "idle_a_3", INSTANT_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_guys_around_car[3].ped, sceneGuysAroundCar2,"missheistdockssetup1showcar@idle_a", "idle_a_4", INSTANT_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_guys_around_car[4].ped, sceneGuysAroundCar2,"missheistdockssetup1showcar@idle_a", "idle_a_5", INSTANT_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
SET_SYNCHRONIZED_SCENE_LOOPED(sceneGuysAroundCar2,TRUE)
|
|
REMOVE_ANIM_DICT("missheistdockssetup1showcar@idle_a")
|
|
REQUEST_ANIM_DICT("missheistdockssetup1showcar@idle_b")
|
|
s_sp_guys_around_car[0].i_event ++
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
//SECOND ANIM
|
|
CASE 4
|
|
REQUEST_ANIM_DICT("missheistdockssetup1showcar@idle_b")
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1showcar@idle_b")
|
|
IF DOES_ENTITY_EXIST(s_sp_guys_around_car[0].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_guys_around_car[1].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_guys_around_car[2].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_guys_around_car[3].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_guys_around_car[4].ped)
|
|
IF NOT IS_PED_INJURED(s_sp_guys_around_car[0].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_guys_around_car[1].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_guys_around_car[2].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_guys_around_car[3].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_guys_around_car[4].ped)
|
|
IF GET_SYNCHRONIZED_SCENE_PHASE(sceneGuysAroundCar2) = 1
|
|
sceneGuysAroundCar3 = CREATE_SYNCHRONIZED_SCENE(s_sd_guys_around_car.v_scene_pos,s_sd_guys_around_car.v_scene_rot)
|
|
IF IS_VEHICLE_DRIVEABLE(s_sv_car_to_admire[0].veh)
|
|
ATTACH_SYNCHRONIZED_SCENE_TO_ENTITY(sceneGuysAroundCar3,s_sv_car_to_admire[0].veh,-1)
|
|
ENDIF
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_guys_around_car[0].ped,sceneGuysAroundCar3, "missheistdockssetup1showcar@idle_b", "idle_b_1", INSTANT_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_guys_around_car[1].ped, sceneGuysAroundCar3,"missheistdockssetup1showcar@idle_b", "idle_b_2", INSTANT_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_guys_around_car[2].ped, sceneGuysAroundCar3,"missheistdockssetup1showcar@idle_b", "idle_b_3", INSTANT_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_guys_around_car[3].ped, sceneGuysAroundCar3,"missheistdockssetup1showcar@idle_b", "idle_b_4", INSTANT_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_guys_around_car[4].ped, sceneGuysAroundCar3,"missheistdockssetup1showcar@idle_b", "idle_b_5", INSTANT_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
SET_SYNCHRONIZED_SCENE_LOOPED(sceneGuysAroundCar3,TRUE)
|
|
s_sp_guys_around_car[0].i_event ++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
//FINAL LOOP
|
|
CASE 5
|
|
REMOVE_ANIM_DICT("missheistdockssetup1showcar@idle_b")
|
|
REMOVE_ANIM_DICT("missheistdockssetup1showcar@idle_a")
|
|
s_sp_guys_around_car[0].i_event ++
|
|
BREAK
|
|
|
|
|
|
ENDSWITCH
|
|
ELSE
|
|
REMOVE_ANIM_DICT("missheistdockssetup1showcar@idle_b")
|
|
REMOVE_ANIM_DICT("missheistdockssetup1showcar@idle_a")
|
|
ENDIF
|
|
ELSE
|
|
//SCRIPT_ASSERT("Set Piece Car Not Drivable")
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
|
|
/*
|
|
_ _ _ ___ _ __ ___ ___
|
|
| | | | __| | | \| __| o \
|
|
| V V | _|| |_| o ) _|| /
|
|
\_n_/|___|___|__/|___|_|\\ */
|
|
|
|
//ANIMS DONE
|
|
IF NOT DOES_ENTITY_EXIST(s_sp_welder[0].ped)
|
|
REQUEST_MODEL(s_sp_welder[0].model)
|
|
REQUEST_MODEL(PROP_WELD_TORCH)
|
|
IF HAS_MODEL_LOADED(s_sp_welder[0].model)
|
|
AND HAS_MODEL_LOADED(PROP_WELD_TORCH)
|
|
IF s_sp_welder[0].i_event < 1
|
|
s_sp_welder[0].ped = CREATE_SETPIECE_PED(s_sp_welder[0].model,s_sp_welder[0].v_spawn_position, s_sp_welder[0].f_start_heading, rel_group_buddies, 200, 0)
|
|
s_sp_welder[0].obj_prop = CREATE_OBJECT(PROP_WELD_TORCH,<<-110.56, -2463.63, 5.04>>)
|
|
SET_RAGDOLL_BLOCKING_FLAGS(s_sp_welder[0].ped, RBF_PLAYER_IMPACT)
|
|
//SET_ENTITY_HEADING(s_sp_welder[0].obj_prop,s_sp_welder[0].f_start_heading)
|
|
INITIALISE_SETPIECE_GROUP(s_sp_welder, "Welder")
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
//All the enemies are triggered off the same locate, so do outside the loop.
|
|
IF bSetPiece[SS_WELDER]
|
|
|
|
SWITCH s_sp_welder[0].i_event
|
|
|
|
//GET PEDS INTO POSITION
|
|
|
|
CASE 0
|
|
IF IS_ENTITY_AT_COORD(PLAYER_PED_ID(),<< -102.1558, -2475.9209, 5.0203 >>,<<10,10,10>>)
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_3@enter")
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_3@talk")
|
|
s_sp_welder[0].i_event ++
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 1
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_3@enter")
|
|
IF DOES_ENTITY_EXIST(s_sp_welder[0].ped)
|
|
IF NOT IS_PED_INJURED(s_sp_welder[0].ped)
|
|
IF NOT IS_ENTITY_ON_SCREEN(s_sp_welder[0].ped)
|
|
sceneWelder = CREATE_SYNCHRONIZED_SCENE(s_sd_welder.v_scene_pos,s_sd_welder.v_scene_rot)
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_welder[0].ped, sceneWelder, "missheistdockssetup1ig_3@enter", "welding_enter_dockworker", NORMAL_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_DONT_INTERRUPT | SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
ATTACH_ENTITY_TO_ENTITY(s_sp_welder[0].obj_prop, s_sp_welder[0].ped, GET_PED_BONE_INDEX(s_sp_welder[0].ped, BONETAG_PH_R_HAND),<<0,0,0>>,<<0,0,0>>)
|
|
REMOVE_ANIM_DICT("missheistdockssetup1ig_3@enter")
|
|
s_sp_welder[0].i_event ++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 2
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_3@talk")
|
|
IF DOES_ENTITY_EXIST(s_sp_welder[0].ped)
|
|
IF NOT IS_PED_INJURED(s_sp_welder[0].ped)
|
|
SET_PED_CAPSULE(s_sp_welder[0].ped, 0.4)
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(sceneWelder)
|
|
// IF NOT HAS_LABEL_BEEN_TRIGGERED("PICK UP WELDER")
|
|
// IF GET_SYNCHRONIZED_SCENE_PHASE(sceneWelder) > 0.66
|
|
// ATTACH_ENTITY_TO_ENTITY(s_sp_welder[0].obj_prop, s_sp_welder[0].ped, GET_PED_BONE_INDEX(s_sp_welder[0].ped, BONETAG_PH_R_HAND),<<0,0,0>>,<<0,0,0>>)
|
|
// SET_LABEL_AS_TRIGGERED("PICK UP WELDER",TRUE)
|
|
// ENDIF
|
|
// ENDIF
|
|
IF GET_SYNCHRONIZED_SCENE_PHASE(sceneWelder) = 1
|
|
sceneWelder = CREATE_SYNCHRONIZED_SCENE(s_sd_welder.v_scene_pos,s_sd_welder.v_scene_rot)
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_welder[0].ped, sceneWelder, "missheistdockssetup1ig_3@talk", "oh_hey_vin_dockworker", NORMAL_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
SET_SYNCHRONIZED_SCENE_LOOPED(sceneWelder,TRUE)
|
|
REMOVE_ANIM_DICT("missheistdockssetup1ig_3@talk")
|
|
s_sp_welder[0].i_event ++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 3
|
|
IF NOT IS_PED_INJURED(s_sp_welder[0].ped)
|
|
SET_PED_CAPSULE(s_sp_welder[0].ped, 0.4)
|
|
ENDIF
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
ENDIF
|
|
ENDIF
|
|
|
|
/*
|
|
|
|
Do anim dictionary stuff set up vectors etc
|
|
__ _ __ _ _ _ _ _ _ ___ _ ____ ___ __ ___ _ _ _ __ _ _ __
|
|
| \ / \ / _| |// | | | |/ \| o \ |// __| o Y _| |_ _/ \| | | |// | \| |/ _|
|
|
| o | o | (_| ( | V V ( o ) / (| _|| |_ \ | | o | |_| (| | \\ ( |_n
|
|
|__/ \_/ \__|_|\\ \_n_/ \_/|_|\\_|\\___|_|\\__/ |_|_n_|___|_|\\_|_|\_|\__/ */
|
|
|
|
IF NOT DOES_ENTITY_EXIST(s_sp_dock_workers_talking[0].ped)
|
|
REQUEST_MODEL(s_sp_dock_workers_talking[0].model)
|
|
REQUEST_MODEL(s_sp_dock_workers_talking[1].model)
|
|
|
|
IF HAS_MODEL_LOADED(s_sp_dock_workers_talking[0].model)
|
|
AND HAS_MODEL_LOADED(s_sp_dock_workers_talking[1].model)
|
|
//<<-110.41, -2481.24, 6.02>>
|
|
IF s_sp_dock_workers_talking[0].i_event < 0
|
|
s_sp_dock_workers_talking[0].ped = CREATE_SETPIECE_PED(s_sp_dock_workers_talking[0].model,s_sp_dock_workers_talking[0].v_spawn_position, s_sp_dock_workers_talking[0].f_start_heading, rel_group_buddies, 200, 0)
|
|
s_sp_dock_workers_talking[1].ped = CREATE_SETPIECE_PED(s_sp_dock_workers_talking[1].model,s_sp_dock_workers_talking[1].v_spawn_position, s_sp_dock_workers_talking[1].f_start_heading, rel_group_buddies, 200, 0)
|
|
INITIALISE_SETPIECE_GROUP(s_sp_dock_workers_talking, "Dockworkers talking by crates")
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
//All the enemies are triggered off the same locate, so do outside the loop.
|
|
IF bSetPiece[Ss_dock_workers_talking]
|
|
|
|
IF s_sp_dock_workers_talking[0].i_event = 0
|
|
IF GET_DISTANCE_BETWEEN_COORDS(v_player_pos,s_sp_dock_workers_talking[0].v_spawn_position) < 20
|
|
s_sp_dock_workers_talking[0].i_event = 1
|
|
ELSE
|
|
REMOVE_ANIM_DICT("missheistdockssetup1ig_5@base")
|
|
ENDIF
|
|
ENDIF
|
|
|
|
|
|
SWITCH s_sp_dock_workers_talking[0].i_event
|
|
//GET PEDS INTO POSITION
|
|
|
|
CASE 0
|
|
|
|
BREAK
|
|
|
|
CASE 1
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_5@base")
|
|
s_sp_dock_workers_talking[0].i_event ++
|
|
BREAK
|
|
|
|
CASE 2
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_5@base")
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_5@base")
|
|
IF DOES_ENTITY_EXIST(s_sp_dock_workers_talking[1].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_dock_workers_talking[0].ped)
|
|
IF NOT IS_PED_INJURED(s_sp_dock_workers_talking[1].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_dock_workers_talking[0].ped)
|
|
|
|
sceneDockWorkerTalking1A = CREATE_SYNCHRONIZED_SCENE(<< -110.402, -2481.259, 6.018 >>,<< 0.000, 0.000, -122.000 >>)
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_dock_workers_talking[0].ped, sceneDockWorkerTalking1A, "missheistdockssetup1ig_5@base","workers_talking_base_dockworker1", NORMAL_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
SET_SYNCHRONIZED_SCENE_LOOPED(sceneDockWorkerTalking1A,TRUE)
|
|
|
|
sceneDockWorkerTalking2A = CREATE_SYNCHRONIZED_SCENE(<< -109.253, -2481.959, 6.018 >>,<< 0.000, 0.000, 26.640 >>)
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_dock_workers_talking[1].ped, sceneDockWorkerTalking2A, "missheistdockssetup1ig_5@base","workers_talking_base_dockworker2", NORMAL_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
SET_SYNCHRONIZED_SCENE_LOOPED(sceneDockWorkerTalking2A,TRUE)
|
|
|
|
s_sp_dock_workers_talking[0].i_event ++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 3
|
|
|
|
BREAK
|
|
|
|
|
|
ENDSWITCH
|
|
ENDIF
|
|
ENDIF
|
|
|
|
/*
|
|
___ _ ___ _ __ _ ___ ___ __ _ _ ___ ___ ___ _ _ _ __ _ ___ _
|
|
| __/ \| o \ |// | | | __|_ _| / _| | | o \ __| o \ | | / _|/ \| o \ / \
|
|
| _( o ) / (| |_| | _| | | \_ \ U | _/ _|| / V | \_ ( o ) / | o |
|
|
|_| \_/|_|\\_|\\___|_|_| |_| |__/___|_| |___|_|\\\_/|_|__/\_/|_|\\ |_n_|*/
|
|
|
|
IF bSetPiece[SS_FORKLIFT_SUPERVISOR_A]
|
|
IF NOT DOES_ENTITY_EXIST(s_sp_forklift_supervisorA[0].ped)
|
|
IF eMissionStage > MISSION_STAGE_1
|
|
REQUEST_MODEL(s_sp_forklift_supervisorA[0].model)
|
|
|
|
IF HAS_MODEL_LOADED(s_sp_forklift_supervisorA[0].model)
|
|
s_sp_forklift_supervisorA[0].ped = CREATE_SETPIECE_PED(s_sp_forklift_supervisorA[0].model,s_sp_forklift_supervisorA[0].v_spawn_position, s_sp_forklift_supervisorA[0].f_start_heading, rel_group_buddies, 200, 0)
|
|
INITIALISE_SETPIECE_GROUP(s_sp_forklift_supervisorA, "Supervisor A")
|
|
|
|
//Set supervisor to specific variation
|
|
SET_PED_COMPONENT_VARIATION(s_sp_forklift_supervisorA[0].ped, INT_TO_ENUM(PED_COMPONENT,0), 1, 1, 0) //(head)
|
|
SET_PED_COMPONENT_VARIATION(s_sp_forklift_supervisorA[0].ped, INT_TO_ENUM(PED_COMPONENT,3), 0, 2, 0) //(uppr)
|
|
SET_PED_COMPONENT_VARIATION(s_sp_forklift_supervisorA[0].ped, INT_TO_ENUM(PED_COMPONENT,4), 1, 1, 0) //(lowr)
|
|
SET_PED_COMPONENT_VARIATION(s_sp_forklift_supervisorA[0].ped, INT_TO_ENUM(PED_COMPONENT,8), 0, 0, 0) //(accs)
|
|
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
//All the enemies are triggered off the same locate, so do outside the loop.
|
|
IF GET_DISTANCE_BETWEEN_COORDS(v_player_pos,s_sd_forklift_supervisor_a.v_scene_pos) < 50
|
|
SWITCH s_sp_forklift_supervisorA[0].i_event
|
|
|
|
CASE 0
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_9@start_idle")
|
|
s_sp_forklift_supervisorA[0].i_event ++
|
|
BREAK
|
|
|
|
CASE 1
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_9@start_idle")
|
|
IF NOT DOES_ENTITY_EXIST(objClipboard[1])
|
|
objClipboard[1] = CREATE_OBJECT(P_CS_CLIPBOARD,<<-131.08, -2423.25, 8.00>>)
|
|
ELSE
|
|
IF NOT DOES_ENTITY_EXIST(objPencil[1])
|
|
objPencil[1] = CREATE_OBJECT(PROP_PENCIL_01,<<-131.08, -2423.25, 8.00>>)
|
|
ELSE
|
|
IF DOES_ENTITY_EXIST(s_sp_forklift_supervisorA[0].ped)
|
|
IF NOT IS_PED_INJURED(s_sp_forklift_supervisorA[0].ped)
|
|
ATTACH_ENTITY_TO_ENTITY(objPencil[1],s_sp_forklift_supervisorA[0].ped,GET_PED_BONE_INDEX(s_sp_forklift_supervisorA[0].ped, BONETAG_PH_R_HAND),<<0,0,0>>,<<0,0,0>>,TRUE)
|
|
ATTACH_ENTITY_TO_ENTITY(objClipboard[1],s_sp_forklift_supervisorA[0].ped,GET_PED_BONE_INDEX(s_sp_forklift_supervisorA[0].ped, BONETAG_PH_L_HAND),<<0,0,0>>,<<0,0,0>>,TRUE)
|
|
TASK_PLAY_ANIM(s_sp_forklift_supervisorA[0].ped,"missheistdockssetup1ig_9@start_idle", "forklift_supervise_idlebase_supervisor",NORMAL_BLEND_IN,NORMAL_BLEND_OUT,-1,AF_LOOPING)
|
|
SET_PED_CAN_RAGDOLL(s_sp_forklift_supervisorA[0].ped,TRUE)
|
|
s_sp_forklift_supervisorA[0].i_event ++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 2
|
|
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
/*
|
|
___ _ ___ _ __ _ ___ ___ __ _ _ ___ ___ ___ _ _ _ __ _ ___ ___
|
|
| __/ \| o \ |// | | | __|_ _| / _| | | o \ __| o \ | | / _|/ \| o \ | o )
|
|
| _( o ) / (| |_| | _| | | \_ \ U | _/ _|| / V | \_ ( o ) / | o \
|
|
|_| \_/|_|\\_|\\___|_|_| |_| |__/___|_| |___|_|\\\_/|_|__/\_/|_|\\ |___/*/
|
|
|
|
IF bSetPiece[SS_FORKLIFT_SUPERVISOR_B]
|
|
IF NOT DOES_ENTITY_EXIST(s_sp_forklift_supervisorB[0].ped)
|
|
IF eMissionStage > MISSION_STAGE_1
|
|
AND eMissionStage < MISSION_STAGE_5
|
|
|
|
REQUEST_MODEL(s_sp_forklift_supervisorB[0].model)
|
|
IF HAS_MODEL_LOADED(s_sp_forklift_supervisorB[0].model)
|
|
IF IS_SCENE_DATA_READY(s_sd_forklift_supervisor_b)
|
|
s_sp_forklift_supervisorB[0].ped = CREATE_SETPIECE_PED(s_sp_forklift_supervisorB[0].model,s_sp_forklift_supervisorB[0].v_spawn_position, s_sp_dock_workers_talking[0].f_start_heading, rel_group_buddies, 200, 0)
|
|
INITIALISE_SETPIECE_GROUP(s_sp_forklift_supervisorA, "Supervisor B")
|
|
ELSE
|
|
GET_SCENE_DATA(SS_FORKLIFT_SUPERVISOR_B)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
//All the enemies are triggered off the same locate, so do outside the loop.
|
|
IF GET_DISTANCE_BETWEEN_COORDS(v_player_pos,s_sd_forklift_supervisor_b.v_scene_pos) < 50
|
|
//REPEAT COUNT_OF(s_sp_forklift_supervisorB) i
|
|
//IF DOES_ENTITY_EXIST(s_sp_forklift_supervisorB[i].ped)
|
|
//IF NOT IS_PED_INJURED(s_sp_forklift_supervisorB[i].ped)
|
|
SWITCH s_sp_forklift_supervisorB[0].i_event
|
|
//GET PEDS INTO POSITION
|
|
|
|
CASE 0
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_2_p1@new_structure")
|
|
s_sp_forklift_supervisorB[0].i_event ++
|
|
BREAK
|
|
|
|
CASE 1
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_2_p1@new_structure")
|
|
IF DOES_ENTITY_EXIST(s_sp_forklift_supervisorB[0].ped)
|
|
IF NOT IS_PED_INJURED(s_sp_forklift_supervisorB[0].ped)
|
|
sceneForkliftB1= CREATE_SYNCHRONIZED_SCENE(s_sd_forklift_supervisor_b.v_scene_pos,s_sd_forklift_supervisor_b.v_scene_rot)
|
|
//TASK_SYNCHRONIZED_SCENE (s_sp_forklift_supervisorB[0].ped, sceneForkliftB1, "missheistdockssetup1ig_12", "TALK_Gantry_Idle_C_Worker1", NORMAL_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_NONE )
|
|
SET_SYNCHRONIZED_SCENE_LOOPED(sceneForkliftB1,TRUE)
|
|
s_sp_forklift_supervisorB[0].i_event ++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
CASE 2
|
|
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
//ENDIF
|
|
//ENDIF
|
|
//ENDREPEAT
|
|
ELSE
|
|
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
/*
|
|
__ ___ _ ___ _ __ __ ___ _ _ _ ___ __ _ ___ ____
|
|
/ _|_ _/ \_ _| |/ _| / _| o \/ \| \| | __| / _|| | \ V / _|
|
|
\_ \| | o | || ( (_ ( (_| / o | \\ | _| ( |_n| U |\ /\_ \
|
|
|__/|_|_n_|_||_|\__| \__|_|\\_n_|_|\_|___| \__/|___||_||__/ */
|
|
|
|
//ANIMS DONE
|
|
|
|
IF bSetPiece[SS_STATIC_GANTRY_GUYS]
|
|
IF NOT DOES_ENTITY_EXIST(s_sp_gantry_guys_static[0].ped)
|
|
REQUEST_MODEL(s_sp_gantry_guys_static[0].model)
|
|
REQUEST_MODEL(s_sp_gantry_guys_static[1].model)
|
|
IF HAS_MODEL_LOADED(s_sp_gantry_guys_static[0].model)
|
|
AND HAS_MODEL_LOADED(s_sp_gantry_guys_static[1].model)
|
|
//IF IS_SCENE_DATA_READY(s_sd_gantry_guys_static)
|
|
s_sp_gantry_guys_static[0].ped = CREATE_SETPIECE_PED(s_sp_gantry_guys_static[0].model,s_sp_gantry_guys_static[0].v_ss_pos, s_sp_gantry_guys_static[0].f_ss_rot, rel_group_buddies, 200, 0)
|
|
s_sp_gantry_guys_static[1].ped = CREATE_SETPIECE_PED(s_sp_gantry_guys_static[1].model,s_sp_gantry_guys_static[1].v_ss_pos, s_sp_gantry_guys_static[1].f_ss_rot, rel_group_buddies, 200, 0)
|
|
INITIALISE_SETPIECE_GROUP(s_sp_gantry_guys_static, "Static Crane guys")
|
|
//ELSE
|
|
//GET_SCENE_DATA(SS_STATIC_GANTRY_GUYS)
|
|
//ENDIF
|
|
ENDIF
|
|
ELSE
|
|
//All the enemies are triggered off the same locate, so do outside the loop.
|
|
//REPEAT COUNT_OF(s_sp_gantry_guys_static) i
|
|
IF GET_DISTANCE_BETWEEN_COORDS(v_player_pos,s_sd_gantry_guys_static.v_scene_pos) < 100
|
|
//IF DOES_ENTITY_EXIST(s_sp_gantry_guys_static[i].ped)
|
|
//IF NOT IS_PED_INJURED(s_sp_gantry_guys_static[i].ped)
|
|
SWITCH s_sp_gantry_guys_static[0].i_event
|
|
//GET PEDS INTO POSITION
|
|
|
|
CASE 0
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_12@base")
|
|
s_sp_gantry_guys_static[0].i_event ++
|
|
BREAK
|
|
|
|
CASE 1
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_12@base")
|
|
IF DOES_ENTITY_EXIST(s_sp_gantry_guys_static[0].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_gantry_guys_static[1].ped)
|
|
IF NOT IS_PED_INJURED(s_sp_gantry_guys_static[0].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_gantry_guys_static[1].ped)
|
|
sceneCraneStatic = CREATE_SYNCHRONIZED_SCENE(s_sd_gantry_guys_static.v_scene_pos,s_sd_gantry_guys_static.v_scene_rot)
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_gantry_guys_static[0].ped, sceneCraneStatic,"missheistdockssetup1ig_12@base", "talk_gantry_idle_base_worker2", NORMAL_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_gantry_guys_static[1].ped, sceneCraneStatic,"missheistdockssetup1ig_12@base", "talk_gantry_idle_base_worker1", NORMAL_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
SET_SYNCHRONIZED_SCENE_LOOPED(sceneCraneStatic,TRUE)
|
|
s_sp_gantry_guys_static[0].i_event ++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
CASE 2
|
|
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
ENDIF
|
|
//ENDIF
|
|
//ENDIF
|
|
//ENDREPEAT
|
|
ENDIF
|
|
ENDIF
|
|
|
|
|
|
ENDPROC
|
|
|
|
|
|
// ======================================================================
|
|
// The Crane
|
|
// ======================================================================
|
|
|
|
|
|
FUNC BOOL CAN_CRANE_PICK_UP_CONTAINER(VECTOR v_container_pos, VECTOR v_spreader_pos)
|
|
IF NOT bForceNoGrab
|
|
IF ABSF(v_container_pos.x - v_spreader_pos.x) < fVal1
|
|
IF ABSF(v_container_pos.y - v_spreader_pos.y) < fVal2
|
|
IF (v_spreader_pos.z - v_container_pos.z) > fVal3
|
|
IF (v_spreader_pos.z - v_container_pos.z) < fVal4
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
|
|
INT iSoundAttachementTime
|
|
|
|
PROC CHECK_CONTAINER_ATTACHING(OBJECT_INDEX &obj_container)
|
|
|
|
//VECTOR vTempOffset
|
|
IF NOT bForceNoGrab
|
|
IF HAS_ANIM_DICT_LOADED("map_objects")
|
|
IF IS_ENTITY_ATTACHED(obj_container)
|
|
PLAY_ENTITY_ANIM(s_crane.obj_spreader, "Dock_crane_SLD_unload", "map_objects", NORMAL_BLEND_IN, FALSE, TRUE)
|
|
DETACH_ENTITY(obj_container, TRUE, FALSE)
|
|
SET_OBJECT_PHYSICS_PARAMS(obj_container, -1.0, -1.0, <<-1.0, -1.0, -1.0>>, <<-1.0, -1.0, -1.0>>)
|
|
PLAY_SOUND_FROM_ENTITY(-1, "Detach_Container", obj_container, "CRANE_SOUNDS")
|
|
iSoundAttachementTime = GET_GAME_TIMER()
|
|
s_crane.b_container_attached = FALSE
|
|
ELSE
|
|
IF NOT s_crane.b_container_attached
|
|
IF CAN_CRANE_PICK_UP_CONTAINER(GET_ENTITY_COORDS(obj_container), GET_ENTITY_COORDS(s_crane.obj_spreader))
|
|
PLAY_ENTITY_ANIM(s_crane.obj_spreader, "Dock_crane_SLD_load", "map_objects", NORMAL_BLEND_IN, FALSE, TRUE)
|
|
FREEZE_ENTITY_POSITION(obj_container, FALSE)
|
|
|
|
ATTACH_ENTITY_TO_ENTITY_PHYSICALLY(obj_container, s_crane.obj_spreader, -1, -1, vAttach1, vAttach2, vAttachRot, -1.0, b1, b2, b3, b4)
|
|
PLAY_SOUND_FROM_ENTITY(-1, "Attach_Container", obj_container, "CRANE_SOUNDS")
|
|
iSoundAttachementTime = GET_GAME_TIMER()
|
|
s_crane.b_container_attached = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
ENUM CRANE_ACTION
|
|
CRANE_ACTION_SPREADER,
|
|
CRANE_ACTION_CABIN,
|
|
CRANE_ACTION_GRABBER,
|
|
CRANE_ACTION_CRANE
|
|
ENDENUM
|
|
|
|
PROC INHIBIT_CRANE(CRANE_ACTION eAction)
|
|
|
|
IF eAction = CRANE_ACTION_SPREADER
|
|
DISABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_SCRIPT_LEFT_AXIS_Y)
|
|
ENDIF
|
|
|
|
IF eAction = CRANE_ACTION_GRABBER
|
|
DISABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_SCRIPT_PAD_RIGHT)
|
|
ENDIF
|
|
|
|
IF eAction = CRANE_ACTION_CABIN
|
|
IF b_is_crane_cinematic_active
|
|
DISABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_SCRIPT_RIGHT_AXIS_X)
|
|
ELSE
|
|
DISABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_SCRIPT_RIGHT_AXIS_Y)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF eAction = CRANE_ACTION_CRANE
|
|
IF b_is_crane_cinematic_active
|
|
DISABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_SCRIPT_RIGHT_AXIS_Y)
|
|
ELSE
|
|
DISABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_SCRIPT_RIGHT_AXIS_X)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
INT iMapAngle = 270
|
|
INT iOverheadMapAngle = 225
|
|
|
|
PROC MANAGE_CRANE(BOOL b_force_cam_into_position = FALSE)
|
|
|
|
ALLOW_ALTERNATIVE_SCRIPT_CONTROLS_LAYOUT(PLAYER_CONTROL)
|
|
ALLOW_ALTERNATIVE_SCRIPT_CONTROLS_LAYOUT(FRONTEND_CONTROL)
|
|
SET_RADAR_AS_INTERIOR_THIS_FRAME(GET_HASH_KEY("V_FakePortContainersPO102"), -80.0,-2410)
|
|
|
|
IF b_is_crane_cinematic_active
|
|
LOCK_MINIMAP_ANGLE(iMapAngle)
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("CRANE TIMECYCLE")
|
|
CASCADE_SHADOWS_INIT_SESSION()
|
|
CLEAR_TIMECYCLE_MODIFIER()
|
|
SET_TIMECYCLE_MODIFIER("crane_cam")
|
|
SET_LABEL_AS_TRIGGERED("CRANE TIMECYCLE",TRUE)
|
|
SET_LABEL_AS_TRIGGERED("CINEMATIC TIMECYCLE",FALSE)
|
|
ENDIF
|
|
ELSE
|
|
LOCK_MINIMAP_ANGLE(iOverheadMapAngle)
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("CINEMATIC TIMECYCLE")
|
|
CASCADE_SHADOWS_SET_SPLIT_Z_EXP_WEIGHT(0.5)
|
|
CASCADE_SHADOWS_SET_CASCADE_BOUNDS_SCALE(0.2)
|
|
CLEAR_TIMECYCLE_MODIFIER()
|
|
SET_TIMECYCLE_MODIFIER("crane_cam_cinematic")
|
|
SET_LABEL_AS_TRIGGERED("CINEMATIC TIMECYCLE",TRUE)
|
|
SET_LABEL_AS_TRIGGERED("CRANE TIMECYCLE",FALSE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
INT i_left_x = 0
|
|
INT i_left_y = 0
|
|
INT i_right_y = 0
|
|
//,i_right_x
|
|
|
|
IF bInhibitCrane = FALSE
|
|
//GET_POSITION_OF_ANALOGUE_STICKS(PAD1, i_left_x, i_left_y, i_right_x, i_right_y)
|
|
i_left_x = GET_CONTROL_VALUE(FRONTEND_CONTROL, INPUT_SCRIPT_RIGHT_AXIS_X) - 128
|
|
i_left_y = GET_CONTROL_VALUE(FRONTEND_CONTROL, INPUT_SCRIPT_RIGHT_AXIS_Y) - 128
|
|
i_right_y = GET_CONTROL_VALUE(FRONTEND_CONTROL, INPUT_SCRIPT_LEFT_AXIS_Y) - 128
|
|
ENDIF
|
|
|
|
INT i = 0
|
|
INT iCurrentlyAttachedContainer = -1
|
|
REPEAT COUNT_OF(s_Containers) i
|
|
IF DOES_ENTITY_EXIST(s_Containers[i].obj_Main)
|
|
IF IS_ENTITY_ATTACHED(s_Containers[i].obj_Main)
|
|
iCurrentlyAttachedContainer = i
|
|
ENDIF
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
//IMRAN assigned to d pad
|
|
// IF IS_CONTROL_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_RIGHT)
|
|
// i_left_x = 127
|
|
// //i_left_y = -127
|
|
// ENDIF
|
|
//
|
|
// IF IS_CONTROL_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_LEFT)
|
|
// i_left_x = -127
|
|
// //i_left_y = 127
|
|
// ENDIF
|
|
//
|
|
// IF IS_CONTROL_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_UP)
|
|
// i_left_y = -127
|
|
// //i_left_x = -127
|
|
// ENDIF
|
|
//
|
|
// IF IS_CONTROL_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_DOWN)
|
|
// i_left_y = 127
|
|
// //i_left_x = 127
|
|
// ENDIF
|
|
|
|
//Cap really small values to prevent jittering
|
|
IF ABSI(i_Left_X) < 15
|
|
i_Left_X = 0
|
|
ENDIF
|
|
|
|
IF ABSI(i_Left_Y) < 15
|
|
i_Left_Y = 0
|
|
ENDIF
|
|
|
|
IF ABSI(i_Right_Y) < 15
|
|
i_Right_Y = 0
|
|
ENDIF
|
|
|
|
|
|
//Detect if the spreader has hit the ground. If this is the case don't unwind ropes and don't move the camera.
|
|
|
|
VECTOR v_spreader_vel = GET_ENTITY_VELOCITY(s_crane.obj_spreader)
|
|
VECTOR v_spreader_pos = GET_ENTITY_COORDS(s_crane.obj_spreader)
|
|
VECTOR v_spreader_rot = GET_ENTITY_ROTATION(s_crane.obj_spreader)
|
|
|
|
VECTOR vLeftOffset1, vLeftOffset2, vRightOffset1, vRightOffset2, vBottomOffset1, vBottomOffset2
|
|
|
|
IF iCurrentlyAttachedContainer >= 0
|
|
vBottomOffset1 = GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_crane.obj_spreader, <<0.0, 5.0, -3.5>>)
|
|
vBottomOffset2 = GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_crane.obj_spreader, <<0.0, -5.0, -3.5>>)
|
|
ELSE
|
|
vBottomOffset1 = GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_crane.obj_spreader, <<0.0, 5.0, -1.0>>)
|
|
vBottomOffset2 = GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_crane.obj_spreader, <<0.0, -5.0, -1.0>>)
|
|
ENDIF
|
|
|
|
REQUEST_ANIM_DICT("map_objects")
|
|
|
|
IF NOT s_crane.b_spreader_stuck_on_ground
|
|
IF i_right_y >= 1
|
|
s_crane.i_num_vertical_movement_frames++
|
|
|
|
IF s_crane.i_num_vertical_movement_frames > 10
|
|
IF v_spreader_vel.z > -0.1
|
|
AND ABSF(v_spreader_rot.y) < 5.0
|
|
AND ABSF(s_crane.v_prev_spreader_rot.y - v_spreader_rot.y) < 0.5
|
|
s_crane.b_spreader_stuck_on_ground = TRUE
|
|
s_crane.i_num_vertical_movement_frames = 0
|
|
s_crane.i_num_cabin_movement_frames = 0
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
s_crane.i_num_vertical_movement_frames = 0
|
|
s_crane.i_num_cabin_movement_frames = 0
|
|
ENDIF
|
|
ELSE
|
|
IF i_left_x != 0
|
|
s_crane.i_num_cabin_movement_frames++
|
|
ENDIF
|
|
|
|
IF ABSF(s_crane.v_prev_spreader_pos.z - v_spreader_pos.z) > 0.01
|
|
OR ABSF(s_crane.v_prev_spreader_rot.y - v_spreader_rot.y) > 0.5
|
|
OR ABSF(v_spreader_rot.y) > 5.0
|
|
OR ABSF(v_spreader_rot.x) > 5.0
|
|
INHIBIT_CRANE(CRANE_ACTION_SPREADER)
|
|
s_crane.b_spreader_stuck_on_ground = FALSE
|
|
s_crane.i_num_vertical_movement_frames = 0
|
|
s_crane.i_num_cabin_movement_frames = 0
|
|
ENDIF
|
|
ENDIF
|
|
|
|
s_crane.v_prev_spreader_pos = v_spreader_pos
|
|
s_crane.v_prev_spreader_rot = v_spreader_rot
|
|
|
|
REPEAT 8 i
|
|
STOP_ROPE_UNWINDING_FRONT(s_crane.ropes[i])
|
|
STOP_ROPE_WINDING(s_crane.ropes[i])
|
|
|
|
IF i_right_y < 0
|
|
START_ROPE_WINDING(s_crane.ropes[i])
|
|
ENDIF
|
|
|
|
IF i_right_y > 0
|
|
START_ROPE_UNWINDING_FRONT(s_crane.ropes[i])
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
//Detect if the spreader is being pushed downwards into map collision, if this is the case we need to disable rope unwinding.
|
|
IF i_Right_Y > 0
|
|
FLOAT fGroundZ1, fGroundZ2
|
|
GET_GROUND_Z_FOR_3D_COORD(vBottomOffset1 + <<0.0, 0.0, 50.0>>, fGroundZ1)
|
|
GET_GROUND_Z_FOR_3D_COORD(vBottomOffset2 + <<0.0, 0.0, 50.0>>, fGroundZ2)
|
|
|
|
IF fGroundZ1 > vBottomOffset1.z OR fGroundZ2 > vBottomOffset2.z
|
|
i_Right_Y = 0
|
|
ENDIF
|
|
|
|
//SET_DEBUG_LINES_AND_SPHERES_DRAWING_ACTIVE(TRUE)
|
|
//DRAW_DEBUG_SPHERE(vBottomOffset1, 0.1)
|
|
//DRAW_DEBUG_SPHERE(vBottomOffset2, 0.1)
|
|
ENDIF
|
|
|
|
//Detect if the spreader is moving sideways into map collision, if this is the case we need to disable movement in a direction based on which side is touching.
|
|
IF i_Left_X != 0
|
|
FLOAT fLeftGroundZ1, fLeftGroundZ2, fRightGroundZ1, fRightGroundZ2
|
|
GET_GROUND_Z_FOR_3D_COORD(vLeftOffset1 + <<0.0, 0.0, 50.0>>, fLeftGroundZ1)
|
|
GET_GROUND_Z_FOR_3D_COORD(vLeftOffset2 + <<0.0, 0.0, 50.0>>, fLeftGroundZ2)
|
|
GET_GROUND_Z_FOR_3D_COORD(vRightOffset1 + <<0.0, 0.0, 50.0>>, fRightGroundZ1)
|
|
GET_GROUND_Z_FOR_3D_COORD(vRightOffset2 + <<0.0, 0.0, 50.0>>, fRightGroundZ2)
|
|
IF fLeftGroundZ1 > vLeftOffset1.z OR fLeftGroundZ2 > vLeftOffset2.z
|
|
IF i_Left_X < 0
|
|
PRINTSTRING("INHIBIT SPREADER SIDEWAYS")PRINTNL()
|
|
//INHIBIT_CRANE(CRANE_ACTION_CABIN)
|
|
i_Left_X = 0
|
|
ENDIF
|
|
ELIF fRightGroundZ1 > vRightOffset1.z OR fRightGroundZ2 > vRightOffset2.z
|
|
IF i_Left_X > 0
|
|
PRINTSTRING("INHIBIT SPREADER SIDEWAYS")PRINTNL()
|
|
//INHIBIT_CRANE(CRANE_ACTION_CABIN)
|
|
i_Left_X = 0
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//Detech for moving fowards into collision
|
|
IF i_Left_Y != 0
|
|
FLOAT fLeftGroundZ1, fLeftGroundZ2, fRightGroundZ1, fRightGroundZ2
|
|
GET_GROUND_Z_FOR_3D_COORD(vLeftOffset1 + <<0.0, 0.0, 50.0>>, fLeftGroundZ1)
|
|
GET_GROUND_Z_FOR_3D_COORD(vLeftOffset2 + <<0.0, 0.0, 50.0>>, fLeftGroundZ2)
|
|
GET_GROUND_Z_FOR_3D_COORD(vRightOffset1 + <<0.0, 0.0, 50.0>>, fRightGroundZ1)
|
|
GET_GROUND_Z_FOR_3D_COORD(vRightOffset2 + <<0.0, 0.0, 50.0>>, fRightGroundZ2)
|
|
IF fLeftGroundZ1 > vLeftOffset1.z OR fLeftGroundZ2 > vLeftOffset2.z
|
|
IF i_Left_Y < 0
|
|
PRINTSTRING("INHIBIT SPREADER FORWARD")PRINTNL()
|
|
// INHIBIT_CRANE(CRANE_ACTION_CRANE)
|
|
i_Left_Y = 0
|
|
ENDIF
|
|
ELIF fRightGroundZ1 > vRightOffset1.z OR fRightGroundZ2 > vRightOffset2.z
|
|
IF i_Left_Y > 0
|
|
PRINTSTRING("INHIBIT SPREADER FORWARD")PRINTNL()
|
|
//INHIBIT_CRANE(CRANE_ACTION_CRANE)
|
|
i_Left_Y = 0
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//Detect if the spreader is touching one of the other containers, disable movement in this case too.
|
|
REPEAT COUNT_OF(s_Containers) i
|
|
IF DOES_ENTITY_EXIST(s_Containers[i].obj_main)
|
|
IF i != iCurrentlyAttachedContainer
|
|
IF i_Left_X != 0
|
|
IF IS_POINT_IN_ANGLED_AREA(vLeftOffset1, GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_Containers[i].obj_main, <<0.0, -6.0, 0.0>>),
|
|
GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_Containers[i].obj_main, <<0.0, 6.0, 3.0>>), 3.0)
|
|
OR IS_POINT_IN_ANGLED_AREA(vLeftOffset2, GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_Containers[i].obj_main, <<0.0, -6.0, 0.0>>),
|
|
GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_Containers[i].obj_main, <<0.0, 6.0, 3.0>>), 3.0)
|
|
IF i_Left_X < 0
|
|
PRINTSTRING("INHIBIT SPREADER DOWN")PRINTNL()
|
|
//INHIBIT_CRANE(CRANE_ACTION_CABIN)
|
|
i_Left_X = 0
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_POINT_IN_ANGLED_AREA(vRightOffset1, GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_Containers[i].obj_main, <<0.0, -6.0, 0.0>>),
|
|
GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_Containers[i].obj_main, <<0.0, 6.0, 3.0>>), 3.0)
|
|
OR IS_POINT_IN_ANGLED_AREA(vRightOffset2, GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_Containers[i].obj_main, <<0.0, -6.0, 0.0>>),
|
|
GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_Containers[i].obj_main, <<0.0, 6.0, 3.0>>), 3.0)
|
|
IF i_Left_X > 0
|
|
PRINTSTRING("INHIBIT SPREADER DOWN")PRINTNL()
|
|
//INHIBIT_CRANE(CRANE_ACTION_CABIN)
|
|
i_Left_X = 0
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF i_Right_Y > 0
|
|
IF IS_POINT_IN_ANGLED_AREA(vBottomOffset1, GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_Containers[i].obj_main, <<0.0, -6.0, 0.0>>),
|
|
GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_Containers[i].obj_main, <<0.0, 6.0, 2.7>>), 3.0)
|
|
OR IS_POINT_IN_ANGLED_AREA(vBottomOffset2, GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_Containers[i].obj_main, <<0.0, -6.0, 0.0>>),
|
|
GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_Containers[i].obj_main, <<0.0, 6.0, 2.7>>), 3.0)
|
|
i_Right_Y = 0
|
|
PRINTSTRING("INHIBIT SPREADER DOWN")PRINTNL()
|
|
//INHIBIT_CRANE(CRANE_ACTION_SPREADER)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
IF NOT b_is_audio_scene_active
|
|
START_AUDIO_SCENE("CAR_THEFT_EXPORT_CARS_CRANE_SECTION_SCENE")
|
|
b_is_audio_scene_active = TRUE
|
|
ENDIF
|
|
|
|
//TODO 100140: should not be able to move diagonally on the left stick, cancel one axis out if the other is greater.
|
|
IF ABSI(i_left_x) > ABSI(i_left_y)
|
|
i_left_y = 0
|
|
ELSE
|
|
i_left_x = 0
|
|
ENDIF
|
|
|
|
//CABIN
|
|
FLOAT f_cabin_speed_modifier = 1.0
|
|
IF ABSF(s_crane.v_cabin_attach_offset.y - MAX_CABIN_Y) < 4.0 AND s_crane.f_cabin_vel > 0.0
|
|
f_cabin_speed_modifier = ABSF(s_crane.v_cabin_attach_offset.y - MAX_CABIN_y) / 4.0
|
|
ELIF ABSF(s_crane.v_cabin_attach_offset.y - MIN_CABIN_Y) < 4.0 AND s_crane.f_cabin_vel < 0.0
|
|
f_cabin_speed_modifier = ABSF(s_crane.v_cabin_attach_offset.y - MIN_CABIN_y) / 4.0
|
|
ENDIF
|
|
|
|
FLOAT f_desired_cabin_vel
|
|
|
|
//CHANGED CONTROLS
|
|
IF b_is_crane_cinematic_active
|
|
f_desired_cabin_vel = ((TO_FLOAT(i_left_x) / 128.0) * MAX_CABIN_VEL) * f_cabin_speed_modifier
|
|
CONVERGE_VALUE(s_crane.f_cabin_vel, f_desired_cabin_vel, CABIN_ACCEL, TRUE)
|
|
s_crane.v_cabin_attach_offset.y = s_crane.v_cabin_attach_offset.y +@ s_crane.f_cabin_vel
|
|
ELSE
|
|
f_desired_cabin_vel = ((TO_FLOAT(i_left_y) / -128.0) * MAX_CABIN_VEL) * f_cabin_speed_modifier
|
|
CONVERGE_VALUE(s_crane.f_cabin_vel, f_desired_cabin_vel, CABIN_ACCEL, TRUE)
|
|
s_crane.v_cabin_attach_offset.y = s_crane.v_cabin_attach_offset.y +@ s_crane.f_cabin_vel
|
|
ENDIF
|
|
|
|
// IF b_is_crane_cinematic_active
|
|
// f_desired_cabin_vel = ((TO_FLOAT(i_left_x) / 128.0) * MAX_CABIN_VEL) * f_cabin_speed_modifier
|
|
// CONVERGE_VALUE(s_crane.f_cabin_vel, f_desired_cabin_vel, CABIN_ACCEL, TRUE)
|
|
// s_crane.v_cabin_attach_offset.y = s_crane.v_cabin_attach_offset.y +@ s_crane.f_cabin_vel
|
|
// ELSE
|
|
// f_desired_cabin_vel = ((TO_FLOAT(i_left_x) / 128.0) * MAX_CABIN_VEL) * f_cabin_speed_modifier
|
|
// CONVERGE_VALUE(s_crane.f_cabin_vel, f_desired_cabin_vel, CABIN_ACCEL, TRUE)
|
|
// s_crane.v_cabin_attach_offset.y = s_crane.v_cabin_attach_offset.y +@ s_crane.f_cabin_vel
|
|
// ENDIF
|
|
|
|
IF s_crane.v_cabin_attach_offset.y < MIN_CABIN_Y
|
|
s_crane.v_cabin_attach_offset.y = MIN_CABIN_Y
|
|
s_crane.f_cabin_vel = 0.0
|
|
ELIF s_crane.v_cabin_attach_offset.y > MAX_CABIN_Y
|
|
s_crane.v_cabin_attach_offset.y = MAX_CABIN_Y
|
|
s_crane.f_cabin_vel = 0.0
|
|
ENDIF
|
|
|
|
////
|
|
|
|
//CABIN AUDIO
|
|
IF ABSF(s_crane.f_cabin_vel) > AUDIO_TRIGGER_THRESHOLD
|
|
IF HAS_SOUND_FINISHED(s_crane.i_cabin_sound_id)
|
|
PLAY_SOUND_FROM_ENTITY(s_crane.i_cabin_sound_id, "Move_L_R", s_crane.obj_spreader, "CRANE_SOUNDS")
|
|
////PRINTLN("CABIN AUDIO PLAYING")//PRINTNL()
|
|
ENDIF
|
|
SET_VARIABLE_ON_SOUND(s_crane.i_cabin_sound_id, "Speed", ABSF(s_crane.f_cabin_vel / MAX_CABIN_VEL))
|
|
ELSE
|
|
IF NOT HAS_SOUND_FINISHED(s_crane.i_cabin_sound_id)
|
|
STOP_SOUND(s_crane.i_cabin_sound_id)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//SPREADER
|
|
FLOAT f_spreader_speed_modifier = 1.0
|
|
IF ABSF(s_crane.v_spreader_attach_offset.z - MAX_SPREADER_Z) < 4.0 AND s_crane.f_spreader_vel > 0.0
|
|
f_spreader_speed_modifier = ABSF(s_crane.v_spreader_attach_offset.z - MAX_SPREADER_Z) / 4.0
|
|
ELIF ABSF(s_crane.v_spreader_attach_offset.z - MIN_SPREADER_Z) < 4.0 AND s_crane.f_spreader_vel < 0.0
|
|
f_spreader_speed_modifier = ABSF(s_crane.v_spreader_attach_offset.z - MIN_SPREADER_Z) / 4.0
|
|
ENDIF
|
|
|
|
FLOAT f_desired_spreader_vel = ((TO_FLOAT(i_right_y) / 128.0) * -MAX_SPREADER_VEL) * f_spreader_speed_modifier
|
|
|
|
IF s_crane.b_spreader_stuck_on_ground
|
|
IF f_desired_spreader_vel < 0.0
|
|
f_desired_spreader_vel = 0.0
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF b_is_crane_cinematic_active
|
|
f_desired_spreader_vel = ((TO_FLOAT(i_right_y) / 128.0) * MAX_SPREADER_VEL) * f_spreader_speed_modifier
|
|
CONVERGE_VALUE(s_crane.f_spreader_vel, f_desired_spreader_vel, SPREADER_ACCEL, TRUE)
|
|
s_crane.v_spreader_attach_offset.z = s_crane.v_spreader_attach_offset.z +@ s_crane.f_spreader_vel
|
|
ELSE
|
|
f_desired_spreader_vel = ((TO_FLOAT(i_right_y) / 128.0) * -MAX_SPREADER_VEL) * f_spreader_speed_modifier
|
|
CONVERGE_VALUE(s_crane.f_spreader_vel, f_desired_spreader_vel, SPREADER_ACCEL, TRUE)
|
|
s_crane.v_spreader_attach_offset.z = s_crane.v_spreader_attach_offset.z +@ s_crane.f_spreader_vel
|
|
ENDIF
|
|
|
|
IF s_crane.v_spreader_attach_offset.z < MIN_SPREADER_Z
|
|
s_crane.v_spreader_attach_offset.z = MIN_SPREADER_Z
|
|
s_crane.f_spreader_vel = 0.0
|
|
ELIF s_crane.v_spreader_attach_offset.z > MAX_SPREADER_Z
|
|
s_crane.v_spreader_attach_offset.z = MAX_SPREADER_Z
|
|
s_crane.f_spreader_vel = 0.0
|
|
ENDIF
|
|
|
|
//DETACH_ENTITY(s_crane.obj_spreader)
|
|
//ATTACH_ENTITY_TO_ENTITY(s_crane.obj_spreader, s_crane.obj_cabin, 0, s_crane.v_spreader_attach_offset, <<0.0, 0.0, 0.0>>)
|
|
v_helper_offset = <<s_crane.v_spreader_attach_offset.x, s_crane.v_spreader_attach_offset.y, s_crane.v_spreader_attach_offset.z - SPREADER_START_OFFSET>>
|
|
IF DOES_ENTITY_EXIST(s_crane.obj_cabin)
|
|
SET_ENTITY_COORDS_NO_OFFSET(s_crane.obj_helper, GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_crane.obj_cabin, v_helper_offset))
|
|
ENDIF
|
|
|
|
|
|
IF NOT MANAGE_MY_TIMER(iSoundAttachementTime,5000)
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("CLAMP SOUND")
|
|
PRINTSTRING("PLAYINGSOUND")PRINTNL()
|
|
PLAY_SOUND_FROM_ENTITY(iCraneSound, "Clamp", s_crane.obj_spreader, "CRANE_SOUNDS")
|
|
SET_LABEL_AS_TRIGGERED("CLAMP SOUND",TRUE)
|
|
ENDIF
|
|
ELSE
|
|
IF HAS_LABEL_BEEN_TRIGGERED("CLAMP SOUND")
|
|
PRINTSTRING("STOPPEDSOUND")PRINTNL()
|
|
STOP_SOUND(iCraneSound)
|
|
SET_LABEL_AS_TRIGGERED("CLAMP SOUND",FALSE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
VECTOR vSpreaderPos
|
|
|
|
IF DOES_ENTITY_EXIST(s_Crane.obj_spreader)
|
|
vSpreaderPos = GET_ENTITY_COORDS(s_Crane.obj_spreader)
|
|
ENDIF
|
|
//SPEADER AUDIO
|
|
IF i_Right_Y != 0
|
|
AND NOT s_crane.b_spreader_stuck_on_ground
|
|
PRINTSTRING("vSpreaderPos")PRINTVECTOR(vSpreaderPos)PRINTNL()
|
|
IF vSpreaderPos. z > 17.52
|
|
IF HAS_SOUND_FINISHED(s_Crane.i_spreader_sound_id)
|
|
PLAY_SOUND_FROM_ENTITY(s_Crane.i_spreader_sound_id, "Move_Fail", s_Crane.obj_spreader, "CRANE_SOUNDS")
|
|
//PRINTLN("SPREADER AUDIO PLAYING")//PRINTNL()
|
|
ENDIF
|
|
SET_VARIABLE_ON_SOUND(s_Crane.i_spreader_sound_id, "Speed", MAX_SPREADER_VEL / 2.0)
|
|
ELSE
|
|
IF HAS_SOUND_FINISHED(s_Crane.i_spreader_sound_id)
|
|
PLAY_SOUND_FROM_ENTITY(s_Crane.i_spreader_sound_id, "Move_U_D", s_Crane.obj_spreader, "CRANE_SOUNDS")
|
|
//PRINTLN("SPREADER AUDIO PLAYING")//PRINTNL()
|
|
ENDIF
|
|
SET_VARIABLE_ON_SOUND(s_Crane.i_spreader_sound_id, "Speed", MAX_SPREADER_VEL / 2.0)
|
|
ENDIF
|
|
ELSE
|
|
IF NOT bFakeSound
|
|
IF NOT HAS_SOUND_FINISHED(s_Crane.i_spreader_sound_id)
|
|
STOP_SOUND(s_Crane.i_spreader_sound_id)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//MAIN CRANE
|
|
//CHANGE CRANE CONTROLS
|
|
//FLOAT f_desired_crane_vel = (TO_FLOAT(i_left_y) / 128.0) * -MAX_CRANE_VEL
|
|
IF b_is_crane_cinematic_active
|
|
FLOAT f_desired_crane_vel = (TO_FLOAT(i_left_y) / 128.0) * -MAX_CRANE_VEL
|
|
CONVERGE_VALUE(s_crane.f_crane_vel, f_desired_crane_vel, CRANE_ACCEL, TRUE)
|
|
s_crane.f_crane_offset = s_crane.f_crane_offset +@ s_crane.f_crane_vel
|
|
ELSE
|
|
FLOAT f_desired_crane_vel = (TO_FLOAT(i_left_x) / 128.0) * -MAX_CRANE_VEL
|
|
CONVERGE_VALUE(s_crane.f_crane_vel, f_desired_crane_vel, CRANE_ACCEL, TRUE)
|
|
s_crane.f_crane_offset = s_crane.f_crane_offset +@ s_crane.f_crane_vel
|
|
ENDIF
|
|
|
|
IF s_crane.f_crane_offset < MIN_CRANE_OFFSET
|
|
s_crane.f_crane_offset = MIN_CRANE_OFFSET
|
|
s_crane.f_crane_vel = 0.0
|
|
ELIF s_crane.f_crane_offset > MAX_CRANE_OFFSET
|
|
s_crane.f_crane_offset = MAX_CRANE_OFFSET
|
|
s_crane.f_crane_vel = 0.0
|
|
ENDIF
|
|
|
|
|
|
// DETACH_ENTITY(s_crane.obj_cabin)
|
|
// ATTACH_ENTITY_TO_ENTITY(s_crane.obj_cabin, s_crane.obj_main, -1, s_crane.v_cabin_attach_offset, <<0.0, 0.0, 0.0>>)
|
|
|
|
// SET_ENTITY_COORDS_NO_OFFSET(s_crane.obj_main, s_crane.v_start_pos + <<s_crane.f_crane_offset, 0.0, 0.0>>)
|
|
|
|
//PRINTSTRING("Crane Coords:")PRINTVECTOR(GET_ENTITY_COORDS(s_crane.obj_main))//PRINTNL()
|
|
|
|
//Spreader speed correction and damping
|
|
FLOAT spreader_damping = 0.0
|
|
IF ABSI(i_left_y) > 0 OR ABSI(i_left_x) > 0
|
|
s_crane.i_dampingframes = -1
|
|
VECTOR spreaderVelocity = GET_ENTITY_VELOCITY(s_crane.obj_spreader)
|
|
VECTOR desiredSpreaderVelocity = <<s_crane.f_crane_vel, -s_crane.f_cabin_vel, spreaderVelocity.z>>
|
|
FLOAT correctionSpeed = 0.3
|
|
APPLY_FORCE_TO_ENTITY_CENTER_OF_MASS(s_crane.obj_spreader, APPLY_TYPE_IMPULSE, (desiredSpreaderVelocity-spreaderVelocity)*correctionSpeed, 0, FALSE, TRUE)
|
|
ELSE
|
|
IF s_crane.i_dampingframes = -1
|
|
s_crane.i_dampingframes = i_spreader_dampingframes
|
|
ENDIF
|
|
IF s_crane.i_dampingframes > 0
|
|
spreader_damping = f_spreader_damping
|
|
s_crane.i_dampingframes = s_crane.i_dampingframes - 1
|
|
ENDIF
|
|
ENDIF
|
|
SET_DAMPING( s_crane.obj_spreader, PHYSICS_DAMPING_LINEAR_V, spreader_damping)
|
|
|
|
//BASE AUDIO
|
|
|
|
//Audio
|
|
IF ABSF(s_crane.f_crane_vel) > AUDIO_TRIGGER_THRESHOLD
|
|
IF HAS_SOUND_FINISHED(s_crane.i_crane_sound_id)
|
|
PLAY_SOUND_FROM_ENTITY(s_crane.i_crane_sound_id, "Move_Base", s_crane.obj_spreader, "CRANE_SOUNDS")
|
|
ENDIF
|
|
SET_VARIABLE_ON_SOUND(s_crane.i_crane_sound_id, "Speed", ABSF(s_crane.f_crane_vel / MAX_CRANE_VEL))
|
|
ELSE
|
|
IF NOT HAS_SOUND_FINISHED(s_crane.i_crane_sound_id)
|
|
STOP_SOUND(s_crane.i_crane_sound_id)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//Fudge for spreader getting stuck: try to knock it into activity
|
|
VECTOR v_vel = GET_ENTITY_VELOCITY(s_crane.obj_spreader)
|
|
IF v_vel.x = 0.0 AND v_vel.y = 0.0 AND v_vel.z = 0.0
|
|
IF i_Right_Y < -10
|
|
SET_ENTITY_VELOCITY(s_crane.obj_spreader, <<0.0, 0.0, 4.0>>)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//Manage containers
|
|
REPEAT COUNT_OF(s_containers) i
|
|
IF DOES_ENTITY_EXIST(s_containers[i].obj_main)
|
|
s_containers[i].f_prev_speed = s_containers[i].f_speed
|
|
s_containers[i].f_speed = ABSF(GET_SCALAR_VELOCITY(GET_ENTITY_VELOCITY(s_containers[i].obj_main), FALSE))
|
|
VECTOR v_current_pos = GET_ENTITY_COORDS(s_containers[i].obj_main)
|
|
|
|
//Freeze if it's not moving (to stop it from being knocked too easily)
|
|
IF NOT IS_ENTITY_ATTACHED(s_containers[i].obj_main)
|
|
IF s_containers[i].f_speed < 0.02
|
|
IF v_current_pos.z > 1.0
|
|
FREEZE_ENTITY_POSITION(s_containers[i].obj_main, TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//Attachments
|
|
IF IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL, INPUT_SCRIPT_PAD_RIGHT)
|
|
IF DOES_ENTITY_EXIST(s_containers[0].obj_main)
|
|
IF NOT CAN_CRANE_PICK_UP_CONTAINER(GET_ENTITY_COORDS(s_containers[0].obj_main), GET_ENTITY_COORDS(s_crane.obj_spreader))
|
|
IF DOES_ENTITY_EXIST(s_containers[1].obj_main)
|
|
IF NOT CAN_CRANE_PICK_UP_CONTAINER(GET_ENTITY_COORDS(s_containers[1].obj_main), GET_ENTITY_COORDS(s_crane.obj_spreader))
|
|
//Fail sound
|
|
IF HAS_SOUND_FINISHED(s_crane.i_spreader_fail_sound_id)
|
|
PLAY_SOUND_FROM_ENTITY(s_crane.i_spreader_fail_sound_id, "Attach_Container_Fail", s_crane.obj_spreader, "CRANE_SOUNDS")
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
CHECK_CONTAINER_ATTACHING(s_containers[i].obj_main)
|
|
ENDIF
|
|
|
|
//Container collision sounds - messy
|
|
FLOAT f_speed_diff = ABSF(s_containers[i].f_speed - s_containers[i].f_prev_speed)
|
|
|
|
IF f_speed_diff > 6.0
|
|
INT i_impact_sound_id = GET_SOUND_ID()
|
|
PLAY_SOUND_FROM_ENTITY(i_impact_sound_id, "Container_Impact", s_containers[i].obj_main, "CRANE_SOUNDS")
|
|
SET_VARIABLE_ON_SOUND(i_impact_sound_id, "Speed", f_speed_diff / 100.0)
|
|
RELEASE_SOUND_ID(i_impact_sound_id)
|
|
ENDIF
|
|
|
|
//Specific collision sound after dropping it
|
|
IF NOT IS_ENTITY_ATTACHED(s_containers[i].obj_main)
|
|
IF NOT s_containers[i].bCollisionSoundPrimed
|
|
IF GET_GAME_TIMER() - s_containers[i].iTimeSinceDropped < 3000
|
|
AND GET_GAME_TIMER() - s_containers[i].iTimeSinceLastCollisionSound > 4000
|
|
IF s_containers[i].f_speed > 5.0
|
|
s_containers[i].bCollisionSoundPrimed = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF HAS_ENTITY_COLLIDED_WITH_ANYTHING(s_containers[i].obj_main)
|
|
PLAY_SOUND_FROM_ENTITY(-1, "Container_Impact_Land", s_containers[i].obj_main, "CRANE_SOUNDS")
|
|
s_containers[i].bCollisionSoundPrimed = FALSE
|
|
s_containers[i].iTimeSinceLastCollisionSound = GET_GAME_TIMER()
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
s_containers[i].bCollisionSoundPrimed = FALSE
|
|
s_containers[i].iTimeSinceLastCollisionSound = 0
|
|
ENDIF
|
|
|
|
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
|
|
INT j = 0
|
|
IF ABSF(s_crane.f_spreader_vel) > 0.01
|
|
REPEAT 8 j
|
|
ROPE_RESET_LENGTH(s_crane.ropes[j], FALSE )
|
|
ENDREPEAT
|
|
ELSE
|
|
REPEAT 8 j
|
|
ROPE_RESET_LENGTH(s_crane.ropes[j], TRUE )
|
|
ENDREPEAT
|
|
|
|
FLOAT currentMaxLength = 0.0
|
|
FLOAT currentMinLength = 1000.0
|
|
FLOAT currentLength
|
|
|
|
REPEAT 8 j
|
|
currentLength = ROPE_GET_DISTANCE_BETWEEN_ENDS(s_crane.ropes[j])
|
|
IF currentLength > currentMaxLength
|
|
currentMaxLength = currentLength
|
|
ENDIF
|
|
|
|
IF currentLength < currentMinLength
|
|
currentMinLength = currentLength
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
IF (currentMaxLength - currentMinLength) > 0.02
|
|
REPEAT 8 j
|
|
ROPE_FORCE_LENGTH(s_crane.ropes[j], currentMaxLength)
|
|
ENDREPEAT
|
|
ENDIF
|
|
ENDIF
|
|
|
|
|
|
//Camera: interp based on both the position of the cabin and the position of the spreader
|
|
IF IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL, INPUT_SCRIPT_SELECT)
|
|
b_is_crane_cinematic_active = NOT b_is_crane_cinematic_active
|
|
ENDIF
|
|
|
|
IF NOT DOES_CAM_EXIST(cam_cutscene)
|
|
cam_cutscene = CREATE_CAM("DEFAULT_SCRIPTED_CAMERA", TRUE)
|
|
SHAKE_CAM(cam_cutscene, "HAND_SHAKE", 0.1)
|
|
RENDER_SCRIPT_CAMS(TRUE, FALSE)
|
|
ENDIF
|
|
|
|
|
|
SET_ENTITY_COORDS_NO_OFFSET(s_crane.obj_main, s_crane.v_start_pos + <<s_crane.f_crane_offset, 0.0, 0.0>>)
|
|
DETACH_ENTITY(s_crane.obj_cabin)
|
|
ATTACH_ENTITY_TO_ENTITY(s_crane.obj_cabin, s_crane.obj_main, -1, s_crane.v_cabin_attach_offset, <<0.0, 0.0, 0.0>>)
|
|
|
|
//Rotate wheels
|
|
REPEAT COUNT_OF(s_crane.obj_wheels) i
|
|
DETACH_ENTITY(s_crane.obj_wheels[i])
|
|
ATTACH_ENTITY_TO_ENTITY(s_crane.obj_wheels[i], s_crane.obj_main, -1, s_crane.v_wheel_offsets[i], <<0.0, s_crane.f_crane_offset*70*-1, 0.0>>)
|
|
ENDREPEAT
|
|
|
|
IF NOT b_is_crane_cinematic_active
|
|
VECTOR v_spreader_offset_from_cabin = GET_OFFSET_FROM_ENTITY_GIVEN_WORLD_COORDS(s_crane.obj_cabin, v_spreader_pos)
|
|
VECTOR v_spreader_offset_from_main = GET_OFFSET_FROM_ENTITY_GIVEN_WORLD_COORDS(s_crane.obj_main, v_spreader_pos)
|
|
IF v_spreader_offset_from_cabin.z < MIN_SPREADER_Z
|
|
v_spreader_offset_from_cabin.z = MIN_SPREADER_Z
|
|
ELIF v_spreader_offset_from_cabin.z > MAX_SPREADER_Z
|
|
v_spreader_offset_from_cabin.z = MAX_SPREADER_Z
|
|
ENDIF
|
|
|
|
IF v_spreader_offset_from_main.x < MIN_CABIN_Y
|
|
v_spreader_offset_from_main.x = MIN_CABIN_Y
|
|
ELIF v_spreader_offset_from_main.x > MAX_CABIN_Y
|
|
v_spreader_offset_from_main.x = MAX_CABIN_Y
|
|
ENDIF
|
|
|
|
FLOAT f_cabin_progress = (v_spreader_offset_from_main.x - MIN_CABIN_Y) / (MAX_CABIN_Y - MIN_CABIN_Y)
|
|
FLOAT f_spreader_progress = 1.0 - ((v_spreader_offset_from_cabin.z - MIN_SPREADER_Z) / (MAX_SPREADER_Z - MIN_SPREADER_Z))
|
|
|
|
IF b_force_cam_into_position
|
|
s_crane.f_cam_z_progress = f_spreader_progress
|
|
s_crane.f_cam_x_progress = f_cabin_progress
|
|
ELSE
|
|
s_crane.f_cam_z_progress = s_crane.f_cam_z_progress + ((f_spreader_progress - s_crane.f_cam_z_progress) * 0.2)
|
|
s_crane.f_cam_x_progress = s_crane.f_cam_x_progress + ((f_cabin_progress - s_crane.f_cam_x_progress) * 0.1)
|
|
ENDIF
|
|
|
|
VECTOR v_current_attach = v_cabin_attach_start
|
|
v_current_attach.x += (v_cabin_attach_end.x - v_cabin_attach_start.x) * s_crane.f_cam_x_progress
|
|
v_current_attach.y += (v_cabin_attach_end.y - v_cabin_attach_start.y) * s_crane.f_cam_x_progress
|
|
v_current_attach.z += (v_cabin_attach_end.z - v_cabin_attach_start.z) * s_crane.f_cam_x_progress
|
|
|
|
v_current_attach.x += (v_spreader_attach_end.x - v_spreader_attach_start.x) * s_crane.f_cam_z_progress
|
|
v_current_attach.y += (v_spreader_attach_end.y - v_spreader_attach_start.y) * s_crane.f_cam_z_progress
|
|
v_current_attach.z += (v_spreader_attach_end.z - v_spreader_attach_start.z) * s_crane.f_cam_z_progress
|
|
|
|
VECTOR v_current_point = v_cabin_point_start
|
|
v_current_point.x += (v_cabin_point_end.x - v_cabin_point_start.x) * s_crane.f_cam_x_progress
|
|
v_current_point.y += (v_cabin_point_end.y - v_cabin_point_start.y) * s_crane.f_cam_x_progress
|
|
v_current_point.z += (v_cabin_point_end.z - v_cabin_point_start.z) * s_crane.f_cam_x_progress
|
|
|
|
v_current_point.x += (v_spreader_point_end.x - v_spreader_point_start.x) * s_crane.f_cam_z_progress
|
|
v_current_point.y += (v_spreader_point_end.y - v_spreader_point_start.y) * s_crane.f_cam_z_progress
|
|
v_current_point.z += (v_spreader_point_end.z - v_spreader_point_start.z) * s_crane.f_cam_z_progress
|
|
|
|
ATTACH_CAM_TO_ENTITY(cam_cutscene, s_crane.obj_cabin, v_current_attach)
|
|
POINT_CAM_AT_ENTITY(cam_cutscene, s_crane.obj_cabin, v_current_point)
|
|
SET_CAM_FOV(cam_cutscene, f_crane_cam_fov)
|
|
|
|
SHAKE_CAM(cam_cutscene, "HAND_SHAKE", 0.1)
|
|
|
|
SET_GAMEPLAY_CAM_RELATIVE_HEADING(-70.0)
|
|
SET_GAMEPLAY_CAM_RELATIVE_PITCH(-70.0)
|
|
ELSE
|
|
|
|
VECTOR spreaderPos
|
|
spreaderPos = GET_ENTITY_COORDS( s_crane.obj_spreader )
|
|
VECTOR cabinPos
|
|
cabinPos = GET_ENTITY_COORDS( s_crane.obj_cabin )
|
|
VECTOR cameraPos
|
|
|
|
cameraPos.x = (cabinPos.x + spreaderPos.x) * 0.5 - spreaderPos.x // - 1.512
|
|
cameraPos.y = (cabinPos.y + spreaderPos.y) * 0.5 - spreaderPos.y
|
|
cameraPos.z = v_attach_to_cam_value.z - 1.55
|
|
|
|
ATTACH_CAM_TO_ENTITY(cam_cutscene, s_crane.obj_cabin, cameraPos)
|
|
// ATTACH_CAM_TO_ENTITY(cam_cutscene, s_crane.obj_cabin, v_attach_to_cam_value)
|
|
STOP_CAM_POINTING(cam_cutscene)
|
|
SET_CAM_NEAR_CLIP(cam_cutscene,0.1)
|
|
SET_CAM_ROT(cam_cutscene, v_crane_attach_cam_rot)
|
|
SET_CAM_FOV(cam_cutscene, f_crane_attach_cam_fov)
|
|
ENDIF
|
|
|
|
//Light: indicates where on the ground the spreader will land
|
|
//VECTOR v_spreader_pos = GET_ENTITY_COORDS(s_crane.obj_spreader)
|
|
VECTOR v_ground_pos = v_spreader_pos
|
|
GET_GROUND_Z_FOR_3D_COORD(v_spreader_pos, v_ground_pos.z)
|
|
v_ground_pos.z += 0.5
|
|
|
|
IF NOT s_crane.b_container_attached
|
|
REPEAT COUNT_OF(s_containers) i
|
|
IF DOES_ENTITY_EXIST(s_containers[i].obj_main)
|
|
VECTOR v_offset = GET_OFFSET_FROM_ENTITY_GIVEN_WORLD_COORDS(s_containers[i].obj_main, v_ground_pos)
|
|
|
|
IF ABSF(v_offset.x) < 1.3
|
|
IF ABSF(v_offset.y) < 6.0
|
|
IF v_offset.z < 2.8
|
|
VECTOR v_container_pos = GET_ENTITY_COORDS(s_containers[i].obj_main)
|
|
v_ground_pos.z = v_container_pos.z + 3.0
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDREPEAT
|
|
ENDIF
|
|
|
|
IF NOT s_crane.b_container_attached
|
|
IF DOES_ENTITY_EXIST(s_Crane.obj_Spreader)
|
|
|
|
DRAW_SPOT_LIGHT(GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_Crane.obj_Spreader,<<1.2658, 6.0654, -0.6602>>),<<0,0,-1>>,0, 255, 0, fFallOff,fIntensity,fInnerAngle,fOuterAngle,fExposure)
|
|
|
|
DRAW_SPOT_LIGHT(GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_Crane.obj_Spreader,<<-1.2819, 6.0349, -0.7461>>),<<0,0,-1>>,0, 255, 0, fFallOff,fIntensity,fInnerAngle,fOuterAngle,fExposure)
|
|
|
|
DRAW_SPOT_LIGHT(GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_Crane.obj_Spreader,<<-1.2073, -5.9944, -0.6715>>),<<0,0,-1>>,0, 255, 0, fFallOff,fIntensity,fInnerAngle,fOuterAngle,fExposure)
|
|
|
|
DRAW_SPOT_LIGHT(GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_Crane.obj_Spreader,<<1.1668, -5.9398, -0.5084>>),<<0,0,-1>>,0, 255, 0, fFallOff,fIntensity,fInnerAngle,fOuterAngle,fExposure)
|
|
//DRAW_LIGHT_WITH_RANGE(v_ground_pos, 0, 255, 0, 4.0, 50.0)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//Strain sound effect: plays on the currently attached container.
|
|
IF s_Crane.b_container_attached
|
|
IF HAS_SOUND_FINISHED(s_Crane.i_strain_sound_Id)
|
|
REPEAT COUNT_OF(s_Containers) i
|
|
IF IS_ENTITY_ATTACHED_TO_ENTITY(s_Containers[i].obj_Main, s_Crane.obj_Spreader)
|
|
PLAY_SOUND_FROM_ENTITY(s_Crane.i_Strain_Sound_Id, "Strain", s_Containers[i].obj_Main, "CRANE_SOUNDS")
|
|
ENDIF
|
|
ENDREPEAT
|
|
ENDIF
|
|
ELSE
|
|
IF NOT HAS_SOUND_FINISHED(s_Crane.i_Strain_Sound_Id)
|
|
STOP_SOUND(s_Crane.i_Strain_Sound_Id)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
PROC REMOVE_ALL_OBJECTS(BOOL b_force_delete = FALSE)
|
|
REMOVE_OBJECT(s_crane.obj_spreader, TRUE)
|
|
REMOVE_OBJECT(s_crane.obj_cabin, TRUE)
|
|
REMOVE_OBJECT(s_crane.obj_lift, TRUE)
|
|
REMOVE_OBJECT(s_crane.obj_main, TRUE)
|
|
REMOVE_OBJECT(s_crane.obj_helper, TRUE)
|
|
REMOVE_OBJECT(s_crane.obj_boom_cable, TRUE)
|
|
|
|
INT i = 0
|
|
REPEAT COUNT_OF(s_containers) i
|
|
REMOVE_OBJECT(s_containers[i].obj_left_door, b_force_delete)
|
|
REMOVE_OBJECT(s_containers[i].obj_right_door, b_force_delete)
|
|
REMOVE_OBJECT(s_containers[i].obj_main, b_force_delete)
|
|
ENDREPEAT
|
|
|
|
REPEAT COUNT_OF(s_crane.obj_wheels) i
|
|
REMOVE_OBJECT(s_crane.obj_wheels[i], TRUE)
|
|
ENDREPEAT
|
|
|
|
ENDPROC
|
|
|
|
FUNC BOOL INITIALISE_CRANE(BOOL bPlacePlayerInside = TRUE)
|
|
//CRANE
|
|
|
|
IF DOES_ENTITY_EXIST(s_crane.obj_main)
|
|
INT i = 0
|
|
|
|
WAIT(0)
|
|
|
|
IF bPlacePlayerInside
|
|
REQUEST_ANIM_DICT("missheistdockssetup1trevor_crane")
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1trevor_crane")
|
|
IF NOT IS_SYNCHRONIZED_SCENE_RUNNING(ssCraneAnims)
|
|
ssCraneAnims = CREATE_SYNCHRONIZED_SCENE(<< -0.100, -0.150, -0.350 >>,<< 0.000, 0.000, 0.000 >>)
|
|
ATTACH_SYNCHRONIZED_SCENE_TO_ENTITY(ssCraneAnims,s_crane.obj_cabin,-1)
|
|
TASK_SYNCHRONIZED_SCENE (PLAYER_PED_ID(), ssCraneAnims, "missheistdockssetup1trevor_crane", "idle", NORMAL_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT)
|
|
SET_SYNCHRONIZED_SCENE_HOLD_LAST_FRAME(ssCraneAnims,FALSE)
|
|
SET_SYNCHRONIZED_SCENE_LOOPED(ssCraneAnims,TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//Close container doors
|
|
IF DOES_ENTITY_EXIST( s_containers[0].obj_main)
|
|
IF DOES_ENTITY_EXIST(s_containers[0].obj_left_door)
|
|
ATTACH_ENTITY_TO_ENTITY(s_containers[0].obj_left_door, s_containers[0].obj_main, -1, v_left_door_offset, <<0.0, 0.0, 0.0>>)
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(s_containers[0].obj_right_door)
|
|
ATTACH_ENTITY_TO_ENTITY(s_containers[0].obj_right_door, s_containers[0].obj_main, -1, v_right_door_offset, <<0.0, 0.0, 0.0>>)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST( s_containers[1].obj_main)
|
|
IF DOES_ENTITY_EXIST(s_containers[1].obj_left_door)
|
|
ATTACH_ENTITY_TO_ENTITY(s_containers[1].obj_left_door, s_containers[1].obj_main, -1, v_left_door_offset, <<0.0, 0.0, 0.0>>)
|
|
ENDIF
|
|
IF DOES_ENTITY_EXIST(s_containers[1].obj_right_door)
|
|
ATTACH_ENTITY_TO_ENTITY(s_containers[1].obj_right_door, s_containers[1].obj_main, -1, v_right_door_offset, <<0.0, 0.0, 0.0>>)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//Attach crane parts to the main crane (collision is no longer needed on them)
|
|
//Added detach for freeze fix
|
|
DETACH_ENTITY(s_crane.obj_cabin)
|
|
FREEZE_ENTITY_POSITION(s_crane.obj_cabin, FALSE)
|
|
ATTACH_ENTITY_TO_ENTITY(s_crane.obj_cabin, s_crane.obj_main, -1, s_crane.v_cabin_attach_offset, <<0.0, 0.0, 0.0>>)
|
|
|
|
REPEAT COUNT_OF(s_crane.obj_wheels) i
|
|
//FREEZE_ENTITY_POSITION(s_crane.obj_wheels[i], FALSE)
|
|
ATTACH_ENTITY_TO_ENTITY(s_crane.obj_wheels[i], s_crane.obj_main, -1, s_crane.v_wheel_offsets[i], <<0.0, 0.0, 0.0>>)
|
|
ENDREPEAT
|
|
|
|
RETURN TRUE
|
|
ELSE
|
|
//SCRIPT_ASSERT("THE CRANE ISN'T LOADED IN...somehow.")
|
|
ENDIF
|
|
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
// ======================================================================
|
|
// Waypoint Actions and Events
|
|
// ======================================================================
|
|
|
|
PROC MANAGE_PLAYER_OUTFIT()
|
|
|
|
PRINTSTRING("SETTING COMPONENTS")PRINTNL()
|
|
|
|
SET_PED_COMP_ITEM_CURRENT_SP(PLAYER_PED_ID(), COMP_TYPE_OUTFIT, OUTFIT_P2_DOCK_WORKER, FALSE)
|
|
SET_PLAYER_HAS_CHANGE_CLOTHES_ON_MISSION(CHAR_TREVOR)
|
|
|
|
IF DOES_ENTITY_EXIST(pedFloyd)
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
|
|
SET_PED_COMPONENT_VARIATION(pedFloyd, PED_COMP_HEAD, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedFloyd, PED_COMP_BERD, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedFloyd, PED_COMP_HAIR, 1, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedFloyd, PED_COMP_TORSO, 1, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedFloyd, PED_COMP_LEG, 1, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedFloyd, PED_COMP_HAND, 1, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedFloyd, PED_COMP_FEET, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedFloyd, PED_COMP_TEETH, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedFloyd, PED_COMP_SPECIAL, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedFloyd, PED_COMP_SPECIAL2, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedFloyd, PED_COMP_DECL, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedFloyd, PED_COMP_JBIB, 0, 0)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(pedWade)
|
|
IF NOT IS_PED_INJURED(pedWade)
|
|
SET_PED_COMPONENT_VARIATION(pedWade, PED_COMP_HEAD, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedWade, PED_COMP_BERD, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedWade, PED_COMP_HAIR, 1, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedWade, PED_COMP_TORSO, 1, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedWade, PED_COMP_LEG, 1, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedWade, PED_COMP_HAND, 1, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedWade, PED_COMP_FEET, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedWade, PED_COMP_TEETH, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedWade, PED_COMP_SPECIAL, 1, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedWade, PED_COMP_SPECIAL2, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedWade, PED_COMP_DECL, 1, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedWade, PED_COMP_JBIB, 0, 0)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
|
|
|
|
ENDPROC
|
|
|
|
|
|
|
|
//Triggers and sets up waypoint actions for following floyd
|
|
PROC MANAGE_WAYPOINT_ACTIONS()
|
|
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
|
|
//PAUSE WHEN HE SEES THE SHIP
|
|
#IF CONST_IGNORE_THIS
|
|
IF IS_ENTITY_AT_COORD(pedFloyd,<< -116.8039, -2454.5374, 5.0187 >> ,<<2.0,2.0,2.0>>) AND bWaypointTask[2] = FALSE
|
|
IF IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_PED(pedFloyd)
|
|
WAYPOINT_PLAYBACK_PAUSE(pedFloyd,FALSE)
|
|
ENDIF
|
|
bWaypointTask[2] = TRUE
|
|
bDoCatchUp = FALSE
|
|
ENDIF
|
|
|
|
|
|
IF IS_ENTITY_AT_COORD(PLAYER_PED_ID(),GET_ENTITY_COORDS(pedFloyd),<<2.0,2.0,2.0>>) AND bWaypointTask[2] = TRUE
|
|
IF bNearShip = FALSE
|
|
SET_PLAYER_CONTROL(PLAYER_ID(),FALSE)
|
|
OPEN_SEQUENCE_TASK(seqMain)
|
|
TASK_GO_STRAIGHT_TO_COORD(NULL,<< -117.9427, -2455.8772, 5.0191 >>,PEDMOVE_WALK)
|
|
TASK_ACHIEVE_HEADING(NULL,47.1444)
|
|
CLOSE_SEQUENCE_TASK(seqMain)
|
|
TASK_PERFORM_SEQUENCE(PLAYER_PED_ID(), seqMain)
|
|
|
|
|
|
IF NOT DOES_CAM_EXIST(camMain)
|
|
camMain = CREATE_CAM("DEFAULT_SCRIPTED_CAMERA", TRUE)
|
|
ENDIF
|
|
SHAKE_CAM(camMain, "HAND_SHAKE", 0.01)
|
|
SET_CAM_PARAMS(camMain,
|
|
<< -116.3125, -2456.3374, 6.6209 >>, << -1.7519, -0.1310, 51.9340 >>,
|
|
41.1853,
|
|
0,
|
|
GRAPH_TYPE_LINEAR,
|
|
GRAPH_TYPE_LINEAR)
|
|
|
|
SET_CAM_PARAMS(camMain,
|
|
<< -116.3125, -2456.3374, 6.6209 >>, << 3.5014, -0.1310, 51.9340 >>,
|
|
24.4644,
|
|
6000,
|
|
GRAPH_TYPE_LINEAR,
|
|
GRAPH_TYPE_LINEAR)
|
|
|
|
RENDER_SCRIPT_CAMS(TRUE, TRUE,3000)
|
|
SETTIMERA(0)
|
|
//bPrinted = FALSE
|
|
bNearShip = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF bNearShip = TRUE AND bWaypointTask[3] = FALSE AND TIMERA() > 6000
|
|
CONTROL_COORD_CHASE_HINT_CAM_ON_FOOT(<< -217.4790, -2375.1294, 25.4562 >> )
|
|
RENDER_SCRIPT_CAMS(FALSE, TRUE,3000)
|
|
bDoCatchUp = TRUE
|
|
SET_PLAYER_CONTROL(PLAYER_ID(),TRUE)
|
|
IF IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_PED(pedFloyd)
|
|
WAYPOINT_PLAYBACK_RESUME(pedFloyd,FALSE)
|
|
bWaypointTask[3] = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
#ENDIF
|
|
|
|
//STOP FOR TRUCK
|
|
IF IS_ENTITY_AT_COORD(pedFloyd,<< -73.1476, -2514.1521, 5.0094 >>,<<2,2,2>>) AND bWaypointTask[0] = FALSE
|
|
IF IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_PED(pedFloyd)
|
|
//IF bTruckHasGone
|
|
//WAYPOINT_PLAYBACK_PAUSE(pedFloyd,FALSE)
|
|
bWaypointTask[0] = TRUE
|
|
//bDoCatchUp = FALSE
|
|
//ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(vehDocks[0])
|
|
IF IS_ENTITY_AT_COORD(vehDocks[0],<< -72.5587, -2502.6030, 5.0074 >>,<<8,8,8>>)
|
|
//bTruckHasGone = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(vehDocks[0])
|
|
IF DOES_ENTITY_EXIST(vehDocks[0])
|
|
IF IS_ENTITY_AT_COORD(vehDocks[0],<< -72.5587, -2502.6030, 5.0074 >>,<<4,4,4>>) //AND bWaypointTask[1] = FALSE
|
|
IF IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_PED(pedFloyd)
|
|
WAYPOINT_PLAYBACK_RESUME(pedFloyd,FALSE)
|
|
bDoCatchUp = TRUE
|
|
bWaypointTask[1] = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//CRANE MOVING
|
|
IF bWaypointTask[4] = FALSE
|
|
IF IS_ENTITY_AT_COORD(PLAYER_PED_ID(),<< -72.5587, -2502.6030, 5.0074 >>,<<3,3,3>>)
|
|
//bPrinted = FALSE
|
|
//bPrinted = FALSE
|
|
bWaypointTask[4] = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//PRINTSTRING("bDOCatchUp:")PRINTBOOL(bDoCatchUp)//PRINTNL()
|
|
//PRINTSTRING("GET_DISTANCE_BETWEEN_PEDS:")PRINTFLOAT(GET_DISTANCE_BETWEEN_PEDS(pedFloyd,PLAYER_PED_ID()))//PRINTNL()
|
|
//PRINTSTRING("Doing Catch Up:")PRINTBOOL(bDoCatchUp)//PRINTNL()
|
|
|
|
INT iWayPoint
|
|
INT iRandBeckon
|
|
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_8")
|
|
REQUEST_ANIM_DICT("MissHeistDocksSetup1")
|
|
|
|
//CATCH UP
|
|
IF bDoCatchUp = TRUE
|
|
IF GET_DISTANCE_BETWEEN_PEDS(pedFloyd,PLAYER_PED_ID()) > 4
|
|
IF IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_PED(pedFloyd)
|
|
//PRINTSTRING("WAYPOINT ACTION - DISTANCE LESS THAN 1")//PRINTNL()
|
|
WAYPOINT_RECORDING_GET_CLOSEST_WAYPOINT("floyddocks1",GET_ENTITY_COORDS(pedFloyd),iWayPoint)
|
|
IF bSetYourTimer = FALSE
|
|
SETTIMERA(0)
|
|
iRandBeckon = GET_RANDOM_INT_IN_RANGE(0,5)
|
|
bSetYourTimer = TRUE
|
|
ENDIF
|
|
IF TIMERA() > 1000
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_8")
|
|
AND HAS_ANIM_DICT_LOADED("MissHeistDocksSetup1")
|
|
IF IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_PED(pedFloyd)
|
|
CLEAR_PED_TASKS(pedFloyd)
|
|
IF iRandBeckon = 0
|
|
TASK_PLAY_ANIM(pedFloyd,"MissHeistDocksSetup1","Beckon")
|
|
ELIF iRandBeckon = 1
|
|
TASK_PLAY_ANIM(pedFloyd,"missheistdockssetup1ig_8","are_you_coming")
|
|
ELIF iRandBeckon = 2
|
|
TASK_PLAY_ANIM(pedFloyd,"missheistdockssetup1ig_8","Are_You_Gonna_Hurt")
|
|
ELIF iRandBeckon = 3
|
|
TASK_PLAY_ANIM(pedFloyd,"missheistdockssetup1ig_8","its_over_here_if")
|
|
ELIF iRandBeckon = 4
|
|
TASK_PLAY_ANIM(pedFloyd,"missheistdockssetup1ig_8","this_dont_make_me")
|
|
ENDIF
|
|
bSetYourTimer = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF GET_DISTANCE_BETWEEN_PEDS(pedFloyd,PLAYER_PED_ID()) < 3
|
|
//PRINTSTRING("WAYPOINT ACTION - DISTANCE GREATER THAN 1")//PRINTNL()
|
|
IF NOT IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_PED(pedFloyd)
|
|
WAYPOINT_RECORDING_GET_CLOSEST_WAYPOINT("floyddocks1",GET_ENTITY_COORDS(pedFloyd),iWayPoint)
|
|
TASK_FOLLOW_WAYPOINT_RECORDING(pedFloyd, "floyddocks1", iWayPoint)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
|
|
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
//Triggers and sets up ambient events around the docks
|
|
PROC MANAGE_DOCKS_AMBIENCE()
|
|
|
|
VEHICLE_INDEX vehTemp
|
|
|
|
IF eMissionStage < MISSION_STAGE_5
|
|
AND eMissionStage > MISSION_STAGE_1
|
|
IF DOES_ENTITY_EXIST(s_sp_forklift_supervisorA[0].ped)
|
|
IF NOT IS_PED_INJURED(s_sp_forklift_supervisorA[0].ped)
|
|
IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
vehTemp = GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID())
|
|
IF IS_VEHICLE_DRIVEABLE(vehTemp)
|
|
IF NOT IS_PED_INJURED(s_sp_forklift_supervisorA[0].ped)
|
|
IF IS_ENTITY_TOUCHING_ENTITY(vehTemp,s_sp_forklift_supervisorA[0].ped)
|
|
reason_for_fail = COVER_BLOWN
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_PED_RAGDOLL(s_sp_forklift_supervisorA[0].ped)
|
|
reason_for_fail = COVER_BLOWN
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//CLEANING UP WASTE
|
|
IF eMissionStage > MISSION_STAGE_1
|
|
AND eMissionStage < MISSION_STAGE_5
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("WORLD_HUMAN_JANITOR")
|
|
IF NOT IS_PED_INJURED(pedDockWorker[3])
|
|
TASK_START_SCENARIO_AT_POSITION(pedDockWorker[3],"WORLD_HUMAN_JANITOR",<<-62.19, -2539.51, 6.01>>,-157.31)
|
|
SET_LABEL_AS_TRIGGERED("WORLD_HUMAN_JANITOR",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//UPON ARRIVING TO THE DOCKS AMBIENCE
|
|
IF eMissionStage = MISSION_STAGE_2
|
|
IF bTriggerSetPiece[9] = FALSE
|
|
IF DOES_ENTITY_EXIST(pedDockWorker[1])
|
|
IF NOT IS_PED_INJURED(pedDockWorker[1])
|
|
TASK_START_SCENARIO_IN_PLACE(pedDockWorker[1],"WORLD_HUMAN_STAND_MOBILE")
|
|
bTriggerSetPiece[9] = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF bTriggerSetPiece[10] = FALSE
|
|
IF IS_VEHICLE_DRIVEABLE(vehDocks[3])
|
|
IF NOT IS_PED_INJURED(pedDockWorker[17])
|
|
REQUEST_VEHICLE_RECORDING(1,"AWDocks5")
|
|
IF HAS_VEHICLE_RECORDING_BEEN_LOADED(1,"AWDocks5")
|
|
IF IS_PED_IN_VEHICLE(pedDockWorker[17],vehDocks[3])
|
|
IF NOT IS_PLAYBACK_GOING_ON_FOR_VEHICLE(vehDocks[3])
|
|
START_PLAYBACK_RECORDED_VEHICLE(vehDocks[3],1,"AWDocks5")
|
|
SET_PLAYBACK_SPEED(vehDocks[3],0.7)
|
|
bTriggerSetPiece[10] = TRUE
|
|
ENDIF
|
|
ELSE
|
|
IF IS_VEHICLE_SEAT_FREE(vehDocks[3],VS_DRIVER)
|
|
SET_PED_INTO_VEHICLE(pedDockWorker[17],vehDocks[3])
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
REQUEST_VEHICLE_RECORDING(1,"AWDocks5")
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF NOT IS_PED_INJURED(pedDockWorker[17])
|
|
DELETE_PED(pedDockWorker[17])
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF TIMERA() > 4000
|
|
IF bTriggerSetPiece[11] = FALSE
|
|
IF NOT DOES_ENTITY_EXIST(vehDocks[2])
|
|
IF IS_VEHICLE_DRIVEABLE(vehDocks[2])
|
|
IF NOT IS_PED_INJURED(pedDockWorker[18])
|
|
REQUEST_VEHICLE_RECORDING(1,"AWDocks4")
|
|
IF HAS_VEHICLE_RECORDING_BEEN_LOADED(1,"AWDocks4")
|
|
IF IS_PED_IN_VEHICLE(pedDockWorker[18],vehDocks[2])
|
|
IF NOT IS_PLAYBACK_GOING_ON_FOR_VEHICLE(vehDocks[2])
|
|
START_PLAYBACK_RECORDED_VEHICLE(vehDocks[2],1,"AWDocks4")
|
|
SET_PLAYBACK_SPEED(vehDocks[2],0.7)
|
|
bTriggerSetPiece[11] = TRUE
|
|
ENDIF
|
|
ELSE
|
|
IF IS_VEHICLE_SEAT_FREE(vehDocks[2],VS_DRIVER)
|
|
SET_PED_INTO_VEHICLE(pedDockWorker[18],vehDocks[2])
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
REQUEST_VEHICLE_RECORDING(1,"AWDocks4")
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF DOES_ENTITY_EXIST(pedDockWorker[18])
|
|
DELETE_PED(pedDockWorker[18])
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF eMissionStage >= MISSION_STAGE_4
|
|
IF DOES_ENTITY_EXIST(vehDocks[2])
|
|
IF IS_VEHICLE_DRIVEABLE(vehDocks[2])
|
|
IF GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(),vehDocks[2]) > 30
|
|
IF NOT IS_ENTITY_ON_SCREEN(vehDocks[2])
|
|
DELETE_VEHICLE(vehDocks[2])
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(BIFF)
|
|
REMOVE_VEHICLE_RECORDING(1,"AWDocks4")
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(vehDocks[3])
|
|
IF IS_VEHICLE_DRIVEABLE(vehDocks[3])
|
|
IF GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(),vehDocks[3]) > 30
|
|
IF NOT IS_ENTITY_ON_SCREEN(vehDocks[3])
|
|
DELETE_VEHICLE(vehDocks[3])
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(BIFF)
|
|
REMOVE_VEHICLE_RECORDING(1,"AWDocks5")
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF eMissionStage > MISSION_STAGE_2
|
|
AND eMissionStage < MISSION_STAGE_10
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
IF bTriggerSetPiece[0] = FALSE
|
|
IF NOT IS_PED_INJURED(pedDockWorker[11]) AND IS_VEHICLE_DRIVEABLE(vehDocks[0])
|
|
OPEN_SEQUENCE_TASK(seqMain)
|
|
TASK_ENTER_VEHICLE(NULL,vehDocks[0],1)
|
|
CLOSE_SEQUENCE_TASK(seqMain)
|
|
TASK_PERFORM_SEQUENCE(pedDockWorker[11], seqMain)
|
|
ENDIF
|
|
bTriggerSetPiece[0] = TRUE
|
|
ENDIF
|
|
|
|
IF bTriggerSetPiece[1] = FALSE
|
|
IF NOT IS_PED_INJURED(pedDockWorker[11]) AND IS_VEHICLE_DRIVEABLE(vehDocks[0])
|
|
IF IS_PED_IN_VEHICLE(pedDockWorker[11],vehDocks[0])
|
|
//START_PLAYBACK_RECORDED_VEHICLE(vehDocks[0],1,"AWDock1")
|
|
//SET_PLAYBACK_SPEED(vehDocks[0],0.7)
|
|
bTriggerSetPiece[1] = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF bTriggerSetPiece[2] = FALSE
|
|
IF NOT IS_PED_INJURED(pedDockWorker[4])
|
|
AND NOT IS_PED_INJURED(pedDockWorker[5])
|
|
//GUYS BY THE WALL
|
|
//TASK_START_SCENARIO_AT_POSITION(pedDockWorker[4],"WORLD_HUMAN_LEANING",<<-109.06, -2481.83, 6.02>>,144.23)
|
|
TASK_START_SCENARIO_AT_POSITION(pedDockWorker[4],"WORLD_HUMAN_SMOKING",<<-109.06, -2481.83, 6.02>>,144.23)
|
|
TASK_START_SCENARIO_AT_POSITION(pedDockWorker[5],"WORLD_HUMAN_HANG_OUT_STREET",<<-110.18, -2482.25, 6.02>>,-80.21)
|
|
bTriggerSetPiece[2] = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF eMissionStage = MISSION_STAGE_4
|
|
OR eMissionStage = MISSION_STAGE_5
|
|
//BEHIND LORRY
|
|
IF bTriggerSetPiece[5] = FALSE
|
|
IF NOT IS_PED_INJURED(pedDockWorker[14])
|
|
TASK_START_SCENARIO_IN_PLACE(pedDockWorker[14],"WORLD_HUMAN_DRINKING")
|
|
bTriggerSetPiece[5] = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//FORKLIFT COMING PAST
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
IF bTriggerSetPiece[6] = FALSE
|
|
IF IS_ENTITY_AT_COORD(pedFloyd,<<-106.5262, -2482.1042, 5.0181>>,<<5,5,5>>)
|
|
OR eMissionStage > MISSION_STAGE_4 AND eMissionStage < MISSION_STAGE_10
|
|
IF NOT IS_PED_INJURED(pedDockWorker[12]) AND IS_VEHICLE_DRIVEABLE(vehDocks[1])
|
|
IF IS_VEHICLE_SEAT_FREE(vehDocks[1],VS_DRIVER)
|
|
iBlockReplayCameraTimer = GET_GAME_TIMER() + 1000 // For B*2226188
|
|
SET_VEHICLE_DOORS_LOCKED(vehDocks[1],VEHICLELOCK_LOCKOUT_PLAYER_ONLY)
|
|
SET_PED_INTO_VEHICLE(pedDockWorker[12],vehDocks[1])
|
|
SET_FORKLIFT_FORK_HEIGHT(vehDocks[1],1.0)
|
|
ELSE
|
|
DELETE_PED(pedDockWorker[12])
|
|
ENDIF
|
|
bTriggerSetPiece[6] = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF bTriggerSetPiece[6] = TRUE
|
|
IF bTriggerSetPiece[7] = FALSE
|
|
REQUEST_VEHICLE_RECORDING(1,"AWDocks2")
|
|
IF HAS_VEHICLE_RECORDING_BEEN_LOADED(1,"AWDocks2")
|
|
IF NOT IS_PED_INJURED(pedDockWorker[12]) AND IS_VEHICLE_DRIVEABLE(vehDocks[1])
|
|
IF NOT IS_PED_INJURED(pedDockWorker[7])
|
|
TASK_START_SCENARIO_IN_PLACE(pedDockWorker[7],"WORLD_HUMAN_AA_SMOKE")
|
|
ENDIF
|
|
IF IS_PED_IN_VEHICLE(pedDockWorker[12],vehDocks[1])
|
|
START_PLAYBACK_RECORDED_VEHICLE(vehDocks[1],1,"AWDocks2")
|
|
SET_PLAYBACK_SPEED(vehDocks[1],1.1)
|
|
bTriggerSetPiece[7] = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
// ======================================================================
|
|
// Phone Stuff
|
|
// ======================================================================
|
|
PROC MANAGE_PHONE_HELP()
|
|
//HELP STUFF
|
|
|
|
SWITCH iHelp
|
|
|
|
CASE 0
|
|
|
|
IF NOT IS_BIT_SET (BitSet_CellphoneDisplay, g_BS_PICTURE_TAKE_BUTTON_PRESSED)
|
|
|
|
ENDIF
|
|
|
|
IF NOT IS_CELLPHONE_ON_HOMESCREEN()
|
|
IF IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("PH_HELP2")
|
|
CLEAR_HELP()
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT IS_PHONE_ONSCREEN()
|
|
IF iPhotosTaken = 3
|
|
IF NOT HAS_CONTACT_RECEIVED_PICTURE_MESSAGE(CHAR_RON)
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("PH_HELP6")
|
|
PRINT_HELP("PH_HELP6")
|
|
SET_LABEL_AS_TRIGGERED("PH_HELP6",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// IF NOT IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("PH_HELP1")
|
|
// CLEAR_HELP()
|
|
// PRINT_HELP("PH_HELP1")
|
|
// ENDIF
|
|
IF IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("PH_HELP2")
|
|
CLEAR_HELP()
|
|
ENDIF
|
|
ELSE
|
|
//SET_PLAYER_CONTROL(PLAYER_ID(),TRUE)
|
|
IF IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("PH_HELP1")
|
|
CLEAR_HELP()
|
|
ENDIF
|
|
|
|
iHelp ++
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 1
|
|
IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("appCamera")) = 0
|
|
IF iPhotosTaken != 3
|
|
IF NOT IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("PH_HELP2")
|
|
IF IS_HELP_MESSAGE_BEING_DISPLAYED()
|
|
CLEAR_HELP()
|
|
ENDIF
|
|
PRINT_HELP_FOREVER("PH_HELP2")
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF iPhotosTaken = 3
|
|
IF NOT HAS_CONTACT_RECEIVED_PICTURE_MESSAGE(CHAR_RON)
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("PH_HELP6")
|
|
PRINT_HELP("PH_HELP6")
|
|
SET_LABEL_AS_TRIGGERED("PH_HELP6",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
IF IS_HELP_MESSAGE_BEING_DISPLAYED()
|
|
CLEAR_HELP()
|
|
ENDIF
|
|
IF IS_BIT_SET (BitSet_CellphoneDisplay, g_BS_CAMERA_READY_TO_TAKE_PHOTO)
|
|
iHelp ++
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT IS_PHONE_ONSCREEN()
|
|
iHelp = 0
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 2
|
|
IF iPhotosTaken = 0
|
|
//REMOVED HELP TEXT
|
|
IF NOT IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("PHOTO_H1A")
|
|
IF IS_HELP_MESSAGE_BEING_DISPLAYED()
|
|
CLEAR_HELP()
|
|
ENDIF
|
|
SETTIMERA(0)
|
|
IF NOT IS_BIT_SET (BitSet_CellphoneDisplay, g_BS_PICTURE_TAKE_BUTTON_PRESSED)
|
|
PRINT_HELP("PHOTO_H1A",60000)
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF iPhotosTaken = 1
|
|
iHelp ++
|
|
ENDIF
|
|
|
|
IF iPhotosTaken = 2
|
|
iHelp = 4
|
|
ENDIF
|
|
|
|
IF iPhotosTaken = 3
|
|
iHelp = 5
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_PHONE_ONSCREEN()
|
|
IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("appCamera"))= 0
|
|
iHelp = 1
|
|
ENDIF
|
|
ELSE
|
|
iHelp = 0
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 3
|
|
IF iPhotosTaken = 1
|
|
IF NOT IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("PHOTO_H2A")
|
|
IF IS_HELP_MESSAGE_BEING_DISPLAYED()
|
|
CLEAR_HELP()
|
|
ENDIF
|
|
SETTIMERA(0)
|
|
IF NOT IS_BIT_SET (BitSet_CellphoneDisplay, g_BS_PICTURE_TAKE_BUTTON_PRESSED)
|
|
PRINT_HELP("PHOTO_H2A",60000)
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF iPhotosTaken = 2
|
|
iHelp ++
|
|
ENDIF
|
|
|
|
IF iPhotosTaken = 3
|
|
iHelp = 5
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_PHONE_ONSCREEN()
|
|
IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("appCamera"))= 0
|
|
iHelp = 1
|
|
ENDIF
|
|
ELSE
|
|
iHelp = 0
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 4
|
|
IF iPhotosTaken = 2
|
|
//REMOVED HELP TEXT
|
|
IF NOT IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("PHOTO_H3A")
|
|
IF IS_HELP_MESSAGE_BEING_DISPLAYED()
|
|
CLEAR_HELP()
|
|
ENDIF
|
|
SETTIMERA(0)
|
|
IF NOT IS_BIT_SET (BitSet_CellphoneDisplay, g_BS_PICTURE_TAKE_BUTTON_PRESSED)
|
|
PRINT_HELP("PHOTO_H3A",60000)
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF iPhotosTaken = 3
|
|
//ENABLE_AUTO_SCROLL_TO_CONTACT(CHAR_RON)
|
|
IF IS_HELP_MESSAGE_BEING_DISPLAYED()
|
|
CLEAR_HELP()
|
|
ENDIF
|
|
SETTIMERA(0)
|
|
IF NOT IS_BIT_SET (BitSet_CellphoneDisplay, g_BS_PICTURE_TAKE_BUTTON_PRESSED)
|
|
PRINT_HELP_FOREVER("PH_HELP5")
|
|
iHelp ++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_PHONE_ONSCREEN()
|
|
IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("appCamera"))= 0
|
|
iHelp = 1
|
|
ENDIF
|
|
ELSE
|
|
iHelp = 0
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 5
|
|
IF IS_PHONE_ONSCREEN()
|
|
IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("appCamera"))!= 0
|
|
IF IS_CONTACTS_LIST_ON_SCREEN()
|
|
IF IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("PH_HELP5")
|
|
CLEAR_HELP()
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT HAS_CONTACT_RECEIVED_PICTURE_MESSAGE(CHAR_RON)
|
|
|
|
ELSE
|
|
IF IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("PH_HELP5")
|
|
CLEAR_HELP()
|
|
ENDIF
|
|
iHelp ++
|
|
ENDIF
|
|
ELSE
|
|
IF IS_HELP_MESSAGE_BEING_DISPLAYED()
|
|
CLEAR_HELP()
|
|
ENDIF
|
|
iHelp = 0
|
|
ENDIF
|
|
ELSE
|
|
IF IS_HELP_MESSAGE_BEING_DISPLAYED()
|
|
CLEAR_HELP()
|
|
ENDIF
|
|
iHelp = 0
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 6
|
|
|
|
IF iPhotosTaken = 3
|
|
IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("appCamera"))= 0
|
|
iHelp ++
|
|
CLEAR_HELP()
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
|
|
|
|
ENDPROC
|
|
|
|
// ======================================================================
|
|
// Models
|
|
// ======================================================================
|
|
//Cleans up the loaded models
|
|
|
|
//Cleans up the loaded car recs
|
|
|
|
|
|
//Clean up anim dictionary
|
|
PROC CLEANUP_LOADED_ANIM_ARRAY()
|
|
INT i
|
|
IF iNumberAnimsLoaded > 0
|
|
FOR i = 0 TO (iNumberAnimsLoaded -1)
|
|
IF HAS_ANIM_DICT_LOADED(sAnimLoaded[i])
|
|
REMOVE_ANIM_DICT(sAnimLoaded[i])
|
|
////PRINTNL()PRINTSTRING("Anim cleaned up = ")PRINTINT(i)//PRINTNL()
|
|
ENDIF
|
|
ENDFOR
|
|
ENDIF
|
|
////PRINTNL()PRINTSTRING("CLEANUP_LOADED_CARREC_ARRAY done")//PRINTNL()
|
|
iNumberAnimsLoaded = 0
|
|
ENDPROC
|
|
|
|
//PURPOSE: adds a single Anim Request to the Array
|
|
PROC ADD_ANIM_REQUEST_TO_ARRAY(STRING Anim)
|
|
|
|
INT i
|
|
BOOL bAnimRequested
|
|
|
|
REQUEST_ANIM_DICT(Anim)
|
|
|
|
IF iNumberAnimsLoaded > 0
|
|
FOR i = 0 TO (iNumberAnimsLoaded -1)
|
|
IF IS_STRING_EQUAL_TO_STRING(Anim,sAnimLoaded[i])
|
|
bAnimRequested = TRUE
|
|
//PRINTSTRING("Anim already requested")//PRINTNL()
|
|
ENDIF
|
|
ENDFOR
|
|
IF NOT bAnimRequested
|
|
sAnimLoaded[iNumberAnimsLoaded] = Anim
|
|
iNumberAnimsLoaded++
|
|
//PRINTSTRING("number of anims requested : ")PRINTINT(iNumberAnimsLoaded)//PRINTNL()
|
|
ENDIF
|
|
ELIF iNumberAnimsLoaded = 0
|
|
sAnimLoaded[0] = Anim
|
|
//PRINTSTRING("first anim requested")//PRINTNL()
|
|
iNumberAnimsLoaded++
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
//PURPOSE: checks to see if all the requested models in the array are in memory
|
|
FUNC BOOL ARE_REQUESTED_ANIMS_LOADED()
|
|
|
|
INT i
|
|
IF iNumberAnimsLoaded > 0
|
|
FOR i = 0 TO (iNumberAnimsLoaded-1)
|
|
IF NOT HAS_ANIM_DICT_LOADED(sAnimLoaded[i])
|
|
//PRINTSTRING("anims loading")//PRINTNL()
|
|
WAIT(0)
|
|
RETURN FALSE
|
|
ENDIF
|
|
ENDFOR
|
|
ENDIF
|
|
|
|
//PRINTSTRING("anims loaded")//PRINTNL()
|
|
|
|
RETURN TRUE
|
|
|
|
ENDFUNC
|
|
|
|
// Pass, Fail, Clean Up
|
|
// ======================================================================
|
|
|
|
//PURPOSE: gets the player into position, fades in and turns on control.
|
|
PROC INIT_STAGE(BOOL bWithFadeIn = TRUE)
|
|
//GIVE_PED_NECESSARY_WEAPONS()
|
|
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
|
|
IF IS_SCREEN_FADED_OUT()
|
|
IF NOT IS_ENTITY_ATTACHED(PLAYER_PED_ID())
|
|
FREEZE_ENTITY_POSITION(PLAYER_PED_ID(),FALSE)
|
|
ENDIF
|
|
ENDIF
|
|
SET_PLAYER_CONTROL(PLAYER_ID(),TRUE)
|
|
ENDIF
|
|
bRunFailChecks = TRUE
|
|
bDialogue = FALSE
|
|
IF bWithFadeIn
|
|
CONTROL_FADE_IN(500)
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
PROC CLEANUP_AUDIO_SCENES()
|
|
IF IS_AUDIO_SCENE_ACTIVE("DH_1_DRIVE_START")
|
|
STOP_AUDIO_SCENE("DH_1_DRIVE_START")
|
|
ENDIF
|
|
IF IS_AUDIO_SCENE_ACTIVE("DH_1_DRIVE_APPROACH_DOCKS")
|
|
STOP_AUDIO_SCENE("DH_1_DRIVE_APPROACH_DOCKS")
|
|
ENDIF
|
|
IF IS_AUDIO_SCENE_ACTIVE("DH_1_FOLLOW_FLOYD_START")
|
|
STOP_AUDIO_SCENE("DH_1_FOLLOW_FLOYD_START")
|
|
ENDIF
|
|
IF IS_AUDIO_SCENE_ACTIVE("DH_1_FOLLOW_FLOYD_SEE_FREIGHTER")
|
|
STOP_AUDIO_SCENE("DH_1_FOLLOW_FLOYD_SEE_FREIGHTER")
|
|
ENDIF
|
|
IF IS_AUDIO_SCENE_ACTIVE("DH_1_HANDLER_START")
|
|
STOP_AUDIO_SCENE("DH_1_HANDLER_START")
|
|
ENDIF
|
|
IF IS_AUDIO_SCENE_ACTIVE("DH_1_CLIMB_UP_CRANE")
|
|
STOP_AUDIO_SCENE("DH_1_CLIMB_UP_CRANE")
|
|
ENDIF
|
|
IF IS_AUDIO_SCENE_ACTIVE("DH_1_USE_CRANE")
|
|
STOP_AUDIO_SCENE("DH_1_USE_CRANE")
|
|
ENDIF
|
|
IF IS_AUDIO_SCENE_ACTIVE("DH_1_TAKE_PHOTOS")
|
|
STOP_AUDIO_SCENE("DH_1_TAKE_PHOTOS")
|
|
ENDIF
|
|
IF IS_AUDIO_SCENE_ACTIVE("DH_1_PHONE_RON")
|
|
STOP_AUDIO_SCENE("DH_1_PHONE_RON")
|
|
ENDIF
|
|
IF IS_AUDIO_SCENE_ACTIVE("DH_1_GET_TO_TRUCK")
|
|
STOP_AUDIO_SCENE("DH_1_GET_TO_TRUCK")
|
|
ENDIF
|
|
IF IS_AUDIO_SCENE_ACTIVE("DH_1_DRIVE_TO_DOCKS")
|
|
STOP_AUDIO_SCENE("DH_1_DRIVE_TO_DOCKS")
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
PROC SET_UP_DOCKS_RADIO(BOOL bEnable = TRUE)
|
|
SET_STATIC_EMITTER_ENABLED("SE_LS_DOCKS_RADIO_01",bEnable)
|
|
SET_STATIC_EMITTER_ENABLED("SE_LS_DOCKS_RADIO_02",bEnable)
|
|
SET_STATIC_EMITTER_ENABLED("SE_LS_DOCKS_RADIO_03",bEnable)
|
|
SET_STATIC_EMITTER_ENABLED("SE_LS_DOCKS_RADIO_04",bEnable)
|
|
SET_STATIC_EMITTER_ENABLED("SE_LS_DOCKS_RADIO_05",bEnable)
|
|
SET_STATIC_EMITTER_ENABLED("SE_LS_DOCKS_RADIO_06",bEnable)
|
|
SET_STATIC_EMITTER_ENABLED("SE_LS_DOCKS_RADIO_07",bEnable)
|
|
SET_STATIC_EMITTER_ENABLED("SE_LS_DOCKS_RADIO_08",bEnable)
|
|
ENDPROC
|
|
|
|
//PURPOSE: cleans up all resources used in the mission
|
|
PROC MISSION_CLEANUP(BOOL bRestart = FALSE, BOOL bMissionPassed = FALSE)
|
|
//IF IS_PLAYER_PLAYING(PLAYER_ID())
|
|
#IF IS_DEBUG_BUILD
|
|
// IF DOES_WIDGET_GROUP_EXIST(wgDOCKSSETUP)
|
|
// DELETE_WIDGET_GROUP(wgDOCKSSETUP)
|
|
// ENDIF
|
|
#ENDIF
|
|
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
|
|
SET_PED_COMBAT_ATTRIBUTES(PLAYER_PED_ID(),CA_DO_DRIVEBYS,TRUE)
|
|
SET_PED_PATH_CAN_USE_LADDERS(PLAYER_PED_ID(),TRUE)
|
|
ENDIF
|
|
|
|
REPOSITION_LANDSCAPE_PHONE_FOR_LONG_SUBTITLES (FALSE)
|
|
SET_ALL_SHOPS_TEMPORARILY_UNAVAILABLE(FALSE)
|
|
CASCADE_SHADOWS_INIT_SESSION()
|
|
SET_USER_RADIO_CONTROL_ENABLED(TRUE)
|
|
SET_UP_DOCKS_RADIO(FALSE)
|
|
CLEANUP_AUDIO_SCENES()
|
|
CLEAR_TIMECYCLE_MODIFIER()
|
|
REMOVE_SCENARIO_BLOCKING_AREAS()
|
|
DISABLE_CHEAT(CHEAT_TYPE_ALL, FALSE)
|
|
REMOVE_FORCED_OBJECT(<<479.2571, -3115.5513, 5.0701>>,50,PROP_GATE_DOCKS_LD)
|
|
|
|
ASSISTED_MOVEMENT_REMOVE_ROUTE("pols_1")
|
|
ASSISTED_MOVEMENT_REMOVE_ROUTE("pols_2")
|
|
ASSISTED_MOVEMENT_REMOVE_ROUTE("pols_3")
|
|
ASSISTED_MOVEMENT_REMOVE_ROUTE("pols_4")
|
|
ASSISTED_MOVEMENT_REMOVE_ROUTE("pols_5")
|
|
ASSISTED_MOVEMENT_REMOVE_ROUTE("pols_6")
|
|
ASSISTED_MOVEMENT_REMOVE_ROUTE("pols_7")
|
|
ASSISTED_MOVEMENT_REMOVE_ROUTE("pols_8")
|
|
|
|
IF IS_SCREEN_FADING_OUT()
|
|
OR IS_SCREEN_FADED_OUT()
|
|
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
|
|
CLEAR_PED_TASKS_IMMEDIATELY(PLAYER_PED_ID())
|
|
|
|
//RESTORE_PLAYER_PED_VARIATIONS(PLAYER_PED_ID())
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF GET_IS_WAYPOINT_RECORDING_LOADED("cranassist")
|
|
REMOVE_WAYPOINT_RECORDING("cranassist")
|
|
ENDIF
|
|
|
|
IF b_is_audio_scene_active
|
|
STOP_AUDIO_SCENE("CAR_THEFT_EXPORT_CARS_CRANE_SECTION_SCENE")
|
|
b_is_audio_scene_active = FALSE
|
|
ENDIF
|
|
|
|
IF NOT HAS_SOUND_FINISHED(iCraneSound)
|
|
STOP_SOUND(iCraneSound)
|
|
RELEASE_SOUND_ID(iCraneSound)
|
|
ENDIF
|
|
|
|
IF IS_AUDIO_SCENE_ACTIVE("DOCKS_HEIST_USING_CRANE")
|
|
STOP_AUDIO_SCENE("DOCKS_HEIST_USING_CRANE")
|
|
ENDIF
|
|
|
|
IF IS_THIS_TV_AVAILABLE_FOR_USE(TV_LOC_TREVOR_VENICE)
|
|
IF IS_THIS_TV_FORCED_ON(TV_LOC_TREVOR_VENICE)
|
|
FORCE_STOP_TV(TV_LOC_TREVOR_VENICE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
UNREGISTER_PED_TO_ACTIVATE_AUTOMATIC_DOOR(AUTODOOR_MIL_DOCKS_GATE_IN,PLAYER_PED_ID())
|
|
//DOOR_SYSTEM_SET_HOLD_OPEN(g_sAutoDoorData[AUTODOOR_MIL_DOCKS_GATE_IN].doorID, FALSE)
|
|
DOOR_SYSTEM_SET_OPEN_RATIO(g_sAutoDoorData[AUTODOOR_MIL_DOCKS_GATE_IN].doorID, 0.0)
|
|
DOOR_SYSTEM_SET_DOOR_STATE(g_sAutoDoorData[AUTODOOR_MIL_DOCKS_GATE_IN].doorID,DOORSTATE_LOCKED)
|
|
|
|
|
|
// Fix for PT - we need to stop locking the door open when we're done as the autodoor
|
|
// system locks on to this door and forgets about the rest.
|
|
LOCK_AUTOMATIC_DOOR_OPEN(AUTODOOR_DOCKS_BACK_GATE_OUT, FALSE, FALSE)
|
|
LOCK_AUTOMATIC_DOOR_OPEN(AUTODOOR_DOCKS_FRONT_GATE_OUT, FALSE, FALSE)
|
|
|
|
|
|
UNLOCK_MINIMAP_ANGLE()
|
|
SET_AUDIO_FLAG("MobileRadioInGame", FALSE)
|
|
SET_ALL_RANDOM_PEDS_FLEE(PLAYER_ID(), FALSE)
|
|
ENABLE_PICTURE_MESSAGE_SENDING_AND_HELP(FALSE)
|
|
BYPASS_CELLPHONE_CAMERA_DEFAULT_SAVE_ROUTINE(FALSE)
|
|
CLEAR_BIT(BitSet_CellphoneDisplay,g_BS_FORCE_CELLPHONE_CAM_AUTO_CONTINUE)
|
|
DISABLE_VEHICLE_GEN_ON_MISSION(FALSE)
|
|
HIDE_ACTIVE_PHONE(FALSE)
|
|
bIgnoreTheseFails = FALSE
|
|
|
|
ROPE_UNLOAD_TEXTURES()
|
|
|
|
IF DOES_BLIP_EXIST(blipHaulerLoadingArea)
|
|
REMOVE_BLIP(blipHaulerLoadingArea)
|
|
ENDIF
|
|
|
|
INT iThisCount
|
|
REPEAT COUNT_OF(bDoneConversationAnim) iThisCount
|
|
bDoneConversationAnim[iThisCount] = FALSE
|
|
ENDREPEAT
|
|
|
|
CLEAR_TRIGGERED_LABELS()
|
|
|
|
Blip_player = GET_MAIN_PLAYER_BLIP_ID()
|
|
IF DOES_BLIP_EXIST(Blip_player)
|
|
SET_BLIP_ALPHA(Blip_player,100)
|
|
ENDIF
|
|
|
|
SET_VEHICLE_POPULATION_BUDGET(3)
|
|
SET_PED_POPULATION_BUDGET(3)
|
|
|
|
IF IS_CUTSCENE_ACTIVE()
|
|
AND IS_CUTSCENE_PLAYING()
|
|
STOP_CUTSCENE()
|
|
REMOVE_CUTSCENE()
|
|
WHILE IS_CUTSCENE_ACTIVE()
|
|
WAIT(0)
|
|
ENDWHILE
|
|
ENDIF
|
|
|
|
IF NOT IS_ENTITY_DEAD(PLAYER_PED_ID())
|
|
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
|
|
CLEAR_PED_WETNESS(PLAYER_PED_ID())
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF bRestart
|
|
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
|
|
IF NOT IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
DELETE_VEHICLE(vanByDocks)
|
|
ELSE
|
|
//TASK_LEAVE_ANY_VEHICLE(PLAYER_PED_ID())
|
|
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
|
|
CLEAR_PED_TASKS_IMMEDIATELY(PLAYER_PED_ID())
|
|
ENDIF
|
|
DELETE_VEHICLE(vanByDocks)
|
|
ENDIF
|
|
ELSE
|
|
DELETE_VEHICLE(vanByDocks)
|
|
ENDIF
|
|
ELSE
|
|
SET_VEHICLE_AS_NO_LONGER_NEEDED(vanByDocks)
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(pedDockWorker[14])
|
|
IF NOT IS_PED_INJURED(pedDockWorker[14])
|
|
DISABLE_PED_PAIN_AUDIO(pedDockWorker[14],TRUE)
|
|
STOP_PED_SPEAKING(pedDockWorker[14],TRUE)
|
|
IF NOT IS_ENTITY_ON_SCREEN(pedDockWorker[14])
|
|
DELETE_PED(pedDockWorker[14])
|
|
ELSE
|
|
SET_PED_AS_NO_LONGER_NEEDED(pedDockWorker[14])
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
v_crane_pos = << -53.6982, -2415.7900, 5.0500 >> //<< -53.2665, -2415.8633, 5.066 >>
|
|
bContainerSetUpForDrive = FALSE
|
|
g_bDocksBackGatesIgnoreTrevorsUniform = FALSE
|
|
|
|
//RESET ALL SYNCH SCENE DATA
|
|
|
|
INT iTemp
|
|
REPEAT COUNT_OF(bSetPiece) iTemp
|
|
bSetPiece[iTemp] = FALSE
|
|
ENDREPEAT
|
|
|
|
REPEAT COUNT_OF(bSSComplete) iTemp
|
|
bSSComplete[iTemp] = FALSE
|
|
ENDREPEAT
|
|
|
|
REPEAT COUNT_OF(s_sv_car_to_admire) iCount
|
|
CLEAN_UP_SETPIECE_VEHILCE(s_sv_car_to_admire[iCount],TRUE,bRestart)
|
|
ENDREPEAT
|
|
|
|
REPEAT COUNT_OF(s_sp_blackwater_with_dockworker) iCount
|
|
CLEAN_UP_SETPIECE_PED(s_sp_blackwater_with_dockworker[iCount],TRUE,bRestart)
|
|
ENDREPEAT
|
|
|
|
REPEAT COUNT_OF(s_sp_dock_workers_on_pipe) iCount
|
|
CLEAN_UP_SETPIECE_PED(s_sp_dock_workers_on_pipe[iCount],TRUE,bRestart)
|
|
ENDREPEAT
|
|
|
|
REPEAT COUNT_OF(s_sp_dock_workers_talking) iCount
|
|
CLEAN_UP_SETPIECE_PED(s_sp_dock_workers_talking[iCount],TRUE,bRestart)
|
|
ENDREPEAT
|
|
|
|
REPEAT COUNT_OF(s_sp_forklift_supervisorA) iCount
|
|
CLEAN_UP_SETPIECE_PED(s_sp_forklift_supervisorA[iCount],TRUE,bRestart)
|
|
ENDREPEAT
|
|
|
|
REPEAT COUNT_OF(s_sp_forklift_supervisorB) iCount
|
|
CLEAN_UP_SETPIECE_PED(s_sp_forklift_supervisorB[iCount],TRUE,bRestart)
|
|
ENDREPEAT
|
|
|
|
REPEAT COUNT_OF(s_sp_blackwater_with_dockworker) iCount
|
|
CLEAN_UP_SETPIECE_PED(s_sp_blackwater_with_dockworker[iCount],TRUE,bRestart)
|
|
ENDREPEAT
|
|
|
|
REPEAT COUNT_OF(s_sp_gantry_guys_static) iCount
|
|
CLEAN_UP_SETPIECE_PED(s_sp_gantry_guys_static[iCount],TRUE,bRestart)
|
|
ENDREPEAT
|
|
|
|
REPEAT COUNT_OF(s_sp_guys_around_car) iCount
|
|
CLEAN_UP_SETPIECE_PED(s_sp_guys_around_car[iCount],TRUE,bRestart)
|
|
ENDREPEAT
|
|
|
|
REPEAT COUNT_OF(s_sp_supervisor1) iCount
|
|
CLEAN_UP_SETPIECE_PED(s_sp_supervisor1[iCount],TRUE,bRestart)
|
|
ENDREPEAT
|
|
|
|
REPEAT COUNT_OF(s_sp_welder) iCount
|
|
CLEAN_UP_SETPIECE_PED(s_sp_welder[iCount],TRUE,bRestart)
|
|
ENDREPEAT
|
|
|
|
|
|
SET_PLAYER_CAN_CHANGE_CLOTHES_ON_MISSION(TRUE)
|
|
DISABLE_TAXI_HAILING(FALSE)
|
|
CLEANUP_LOADED_MODEL_ARRAY()
|
|
CLEANUP_LOADED_ANIM_ARRAY()
|
|
CLEANUP_LOADED_CARREC_ARRAY("")
|
|
|
|
REMOVE_PED_FOR_DIALOGUE(sSpeech, 0)
|
|
REMOVE_PED_FOR_DIALOGUE(sSpeech, 1)
|
|
REMOVE_PED_FOR_DIALOGUE(sSpeech, 2)
|
|
REMOVE_PED_FOR_DIALOGUE(sSpeech, 3)
|
|
REMOVE_PED_FOR_DIALOGUE(sSpeech, 4)
|
|
REMOVE_PED_FOR_DIALOGUE(sSpeech, 5)
|
|
REMOVE_PED_FOR_DIALOGUE(sSpeech, 6)
|
|
REMOVE_PED_FOR_DIALOGUE(sSpeech, 7)
|
|
REMOVE_PED_FOR_DIALOGUE(sSpeech, 8)
|
|
REMOVE_PED_FOR_DIALOGUE(sSpeech, 9)
|
|
|
|
KILL_ANY_CONVERSATION()
|
|
|
|
IF DOES_BLIP_EXIST(blipHandlerContainers[0])
|
|
REMOVE_BLIP(blipHandlerContainers[0])
|
|
ENDIF
|
|
|
|
IF DOES_BLIP_EXIST(blipHandlerContainers[1])
|
|
REMOVE_BLIP(blipHandlerContainers[1])
|
|
ENDIF
|
|
|
|
IF DOES_BLIP_EXIST(blipHandlerContainers[2])
|
|
REMOVE_BLIP(blipHandlerContainers[2])
|
|
ENDIF
|
|
|
|
|
|
bInhibitCrane = FALSE
|
|
bForceNoGrab = FALSE
|
|
bDoneWithTruck = FALSE
|
|
|
|
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
|
|
IF IS_VEHICLE_DRIVEABLE(vehMission)
|
|
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehMission)
|
|
IF IS_SCREEN_FADED_OUT() OR IS_SCREEN_FADING_OUT()
|
|
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
|
|
CLEAR_PED_TASKS_IMMEDIATELY(PLAYER_PED_ID())
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF DOES_ENTITY_BELONG_TO_THIS_SCRIPT(vehMission, FALSE)
|
|
IF DOES_ENTITY_EXIST(vehMission)
|
|
DELETE_VEHICLE(vehMission)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
SET_ENTITY_VISIBLE(PLAYER_PED_ID(),TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("appCamera"))> 0
|
|
HANG_UP_AND_PUT_AWAY_PHONE()
|
|
SET_GAME_PAUSED (FALSE)
|
|
ENDIF
|
|
|
|
IF NOT bRestart
|
|
INIT_STAGE(FALSE)
|
|
SET_VEHICLE_MODEL_IS_SUPPRESSED(FORKLIFT,FALSE)
|
|
SET_VEHICLE_MODEL_IS_SUPPRESSED(BODHI2,FALSE)
|
|
SET_VEHICLE_MODEL_IS_SUPPRESSED(BIFF,FALSE)
|
|
ENDIF
|
|
|
|
//CLEAN UP OBJECTS
|
|
FOR iCount = 0 TO MAX_NUM_OF_CLIPBOARDS -1
|
|
IF bRestart
|
|
IF DOES_ENTITY_EXIST(objClipboard[iCount])
|
|
DELETE_OBJECT(objClipboard[iCount])
|
|
ENDIF
|
|
ELSE
|
|
IF DOES_ENTITY_EXIST(objClipboard[iCount])
|
|
SET_OBJECT_AS_NO_LONGER_NEEDED(objClipboard[iCount])
|
|
ENDIF
|
|
ENDIF
|
|
ENDFOR
|
|
|
|
FOR iCount = 0 TO MAX_NUM_OF_CLIPBOARDS -1
|
|
IF bRestart
|
|
IF DOES_ENTITY_EXIST(objPencil[iCount])
|
|
DELETE_OBJECT(objPencil[iCount])
|
|
ENDIF
|
|
ELSE
|
|
IF DOES_ENTITY_EXIST(objPencil[iCount])
|
|
SET_OBJECT_AS_NO_LONGER_NEEDED(objPencil[iCount])
|
|
ENDIF
|
|
ENDIF
|
|
ENDFOR
|
|
|
|
iMissionDialogue = 0
|
|
iManagePickerAudio = 0
|
|
|
|
//Vehs
|
|
FOR iCount = 0 To (MAX_MISSION_VEH -1)
|
|
IF DOES_ENTITY_EXIST(mission_veh[iCount].veh)
|
|
IF bRestart
|
|
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
|
|
IF NOT IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
DELETE_VEHICLE(mission_veh[iCount].veh)
|
|
ELSE
|
|
//TASK_LEAVE_ANY_VEHICLE(PLAYER_PED_ID())
|
|
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
|
|
CLEAR_PED_TASKS_IMMEDIATELY(PLAYER_PED_ID())
|
|
ENDIF
|
|
DELETE_VEHICLE(mission_veh[iCount].veh)
|
|
ENDIF
|
|
ELSE
|
|
DELETE_VEHICLE(mission_veh[iCount].veh)
|
|
ENDIF
|
|
ELSE
|
|
SET_VEHICLE_AS_NO_LONGER_NEEDED(mission_veh[iCount].veh)
|
|
ENDIF
|
|
ENDIF
|
|
IF DOES_BLIP_EXIST(mission_veh[iCount].blip)
|
|
REMOVE_BLIP(mission_veh[iCount].blip)
|
|
ENDIF
|
|
ENDFOR
|
|
//Enemies
|
|
FOR iCount = 0 To (MAX_ENEMY_PED -1)
|
|
IF DOES_ENTITY_EXIST(enemy[iCount].ped)
|
|
IF bRestart
|
|
DELETE_PED(enemy[iCount].ped)
|
|
ELSE
|
|
SET_PED_AS_NO_LONGER_NEEDED(enemy[iCount].ped)
|
|
ENDIF
|
|
ENDIF
|
|
IF DOES_BLIP_EXIST(enemy[iCount].blip)
|
|
REMOVE_BLIP(enemy[iCount].blip)
|
|
ENDIF
|
|
ENDFOR
|
|
//Buddies
|
|
FOR iCount = 0 To (MAX_BUDDY_PED -1)
|
|
IF DOES_ENTITY_EXIST(buddy[iCount].ped)
|
|
IF bRestart
|
|
DELETE_PED(buddy[iCount].ped)
|
|
ELSE
|
|
SET_PED_AS_NO_LONGER_NEEDED(buddy[iCount].ped)
|
|
ENDIF
|
|
ENDIF
|
|
IF DOES_BLIP_EXIST(buddy[iCount].blip)
|
|
REMOVE_BLIP(buddy[iCount].blip)
|
|
ENDIF
|
|
ENDFOR
|
|
//reenable the hotswap Stuff
|
|
IF bDisabledHotSwap = TRUE
|
|
ENABLE_SELECTOR()
|
|
ENDIF
|
|
|
|
IF bPatrolCreated[0] = TRUE
|
|
DELETE_PATROL_ROUTE("miss_dock")
|
|
bPatrolCreated[0] = FALSE
|
|
ENDIF
|
|
|
|
IF bPatrolCreated[1] = TRUE
|
|
DELETE_PATROL_ROUTE("miss_merc0")
|
|
DELETE_PATROL_ROUTE("miss_merc1")
|
|
DELETE_PATROL_ROUTE("miss_merc2")
|
|
bPatrolCreated[1] = FALSE
|
|
ENDIF
|
|
|
|
IF bMercPatrolCreated[0] = TRUE
|
|
DELETE_PATROL_ROUTE("miss_merc0")
|
|
DELETE_PATROL_ROUTE("miss_merc1")
|
|
DELETE_PATROL_ROUTE("miss_merc2")
|
|
bPatrolCreated[0] = FALSE
|
|
bPatrolCreated[1] = FALSE
|
|
bPatrolCreated[2] = FALSE
|
|
ENDIF
|
|
|
|
FOR iCount = 0 TO (iTotalNumberOfPtX -1)
|
|
IF bPTX_Triggered[iCount]
|
|
REMOVE_PARTICLE_FX(PTX_SHIP_EXPLOSIONS[iCount])
|
|
bPTX_Triggered[iCount] = FALSE
|
|
ENDIF
|
|
ENDFOR
|
|
|
|
//Dock Workers
|
|
FOR iCount = 0 To (iTotalDockWorker -1)
|
|
IF DOES_ENTITY_EXIST(pedDockWorker[iCount])
|
|
IF bRestart
|
|
DELETE_PED(pedDockWorker[iCount])
|
|
ELSE
|
|
SET_PED_AS_NO_LONGER_NEEDED(pedDockWorker[iCount])
|
|
ENDIF
|
|
ENDIF
|
|
IF DOES_BLIP_EXIST(blipDockWorker[iCount])
|
|
REMOVE_BLIP(blipDockWorker[iCount])
|
|
ENDIF
|
|
ENDFOR
|
|
//Mercs
|
|
FOR iCount = 0 To (iTotalMerc -1)
|
|
IF DOES_ENTITY_EXIST(pedMerc[iCount])
|
|
IF bRestart
|
|
DELETE_PED(pedMerc[iCount])
|
|
ELSE
|
|
SET_PED_AS_NO_LONGER_NEEDED(pedMerc[iCount])
|
|
ENDIF
|
|
ENDIF
|
|
ENDFOR
|
|
|
|
//Player entities
|
|
IF DOES_ENTITY_EXIST(sSelectorPeds.pedID[SELECTOR_PED_MICHAEL])
|
|
IF bRestart
|
|
DELETE_PED(sSelectorPeds.pedID[SELECTOR_PED_MICHAEL])
|
|
ELSE
|
|
SET_PED_AS_NO_LONGER_NEEDED(sSelectorPeds.pedID[SELECTOR_PED_MICHAEL])
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(sSelectorPeds.pedID[SELECTOR_PED_TREVOR])
|
|
IF bRestart
|
|
DELETE_PED(sSelectorPeds.pedID[SELECTOR_PED_TREVOR])
|
|
ELSE
|
|
SET_PED_AS_NO_LONGER_NEEDED(sSelectorPeds.pedID[SELECTOR_PED_TREVOR])
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(sSelectorPeds.pedID[SELECTOR_PED_FRANKLIN])
|
|
IF bRestart
|
|
DELETE_PED(sSelectorPeds.pedID[SELECTOR_PED_FRANKLIN])
|
|
ELSE
|
|
SET_PED_AS_NO_LONGER_NEEDED(sSelectorPeds.pedID[SELECTOR_PED_FRANKLIN])
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(pedFloyd)
|
|
IF bRestart
|
|
DELETE_PED(pedFloyd)
|
|
ELSE
|
|
SET_PED_AS_NO_LONGER_NEEDED(pedFloyd)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF bMissionPassed = FALSE
|
|
IF DOES_ENTITY_EXIST(pedWade)
|
|
IF bRestart
|
|
DELETE_PED(pedWade)
|
|
ELSE
|
|
SET_PED_AS_NO_LONGER_NEEDED(pedWade)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//Docks Vehicles
|
|
FOR iCount = 0 To (iTotalVehicles-1)
|
|
IF DOES_ENTITY_EXIST(vehDocks[iCount])
|
|
IF bRestart
|
|
DELETE_VEHICLE(vehDocks[iCount])
|
|
ELSE
|
|
SET_VEHICLE_AS_NO_LONGER_NEEDED(vehDocks[iCount])
|
|
ENDIF
|
|
ENDIF
|
|
ENDFOR
|
|
|
|
IF DOES_ENTITY_EXIST(vehMission)
|
|
IF bRestart
|
|
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
|
|
IF NOT IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
DELETE_VEHICLE(vehMission)
|
|
ELSE
|
|
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
|
|
CLEAR_PED_TASKS_IMMEDIATELY(PLAYER_PED_ID())
|
|
ENDIF
|
|
DELETE_VEHICLE(vehMission)
|
|
ENDIF
|
|
ELSE
|
|
DELETE_VEHICLE(vehMission)
|
|
ENDIF
|
|
ELSE
|
|
IF NOT IS_ENTITY_DEAD(vehMission)
|
|
IF DOES_ENTITY_BELONG_TO_THIS_SCRIPT(vehMission, FALSE)
|
|
SET_VEHICLE_AS_NO_LONGER_NEEDED(vehMission)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(vehFloydTruck)
|
|
IF bRestart
|
|
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
|
|
IF NOT IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
DELETE_VEHICLE(vehFloydTruck)
|
|
ELSE
|
|
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
|
|
CLEAR_PED_TASKS_IMMEDIATELY(PLAYER_PED_ID())
|
|
ENDIF
|
|
DELETE_VEHICLE(vehFloydTruck)
|
|
ENDIF
|
|
ELSE
|
|
DELETE_VEHICLE(vehFloydTruck)
|
|
ENDIF
|
|
ELSE
|
|
IF DOES_ENTITY_BELONG_TO_THIS_SCRIPT(vehFloydTruck, FALSE)
|
|
SET_VEHICLE_AS_NO_LONGER_NEEDED(vehFloydTruck)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(vehTrailer2)
|
|
IF bRestart
|
|
DELETE_VEHICLE(vehTrailer2)
|
|
ELSE
|
|
SET_VEHICLE_AS_NO_LONGER_NEEDED(vehTrailer2)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(vehFirstHauler)
|
|
IF bRestart
|
|
DELETE_VEHICLE(vehFirstHauler)
|
|
ELSE
|
|
SET_VEHICLE_AS_NO_LONGER_NEEDED(vehFirstHauler)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(vehTrailer1)
|
|
IF bRestart
|
|
DELETE_VEHICLE(vehTrailer1)
|
|
ELSE
|
|
SET_VEHICLE_AS_NO_LONGER_NEEDED(vehTrailer1)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(vehBlocking)
|
|
IF bRestart
|
|
DELETE_VEHICLE(vehBlocking)
|
|
ELSE
|
|
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
|
|
SET_VEHICLE_AS_NO_LONGER_NEEDED(vehBlocking)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(vehHandler)
|
|
IF bRestart
|
|
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
|
|
IF NOT IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
DELETE_VEHICLE(vehHandler)
|
|
ELSE
|
|
CLEAR_PED_TASKS_IMMEDIATELY(PLAYER_PED_ID())
|
|
DELETE_VEHICLE(vehHandler)
|
|
ENDIF
|
|
ELSE
|
|
DELETE_VEHICLE(vehHandler)
|
|
ENDIF
|
|
ELSE
|
|
IF DOES_ENTITY_BELONG_TO_THIS_SCRIPT(vehHandler, FALSE)
|
|
SET_VEHICLE_AS_NO_LONGER_NEEDED(vehHandler)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//DELETE ROPES FIRST
|
|
IF bAddedRopes
|
|
INT i = 0
|
|
REPEAT 8 i
|
|
IF DOES_ROPE_EXIST(s_Crane.ropes[i])
|
|
DELETE_ROPE(s_Crane.ropes[i])
|
|
ENDIF
|
|
ENDREPEAT
|
|
bAddedRopes = FALSE
|
|
ENDIF
|
|
|
|
REMOVE_ANIM_DICT("map_objects")
|
|
|
|
//DELETE THE CRANE AFTER THIS
|
|
IF DOES_ENTITY_EXIST(s_crane.obj_main)
|
|
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
|
|
IF NOT IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
IF IS_ENTITY_ATTACHED(PLAYER_PED_ID())
|
|
DETACH_ENTITY(PLAYER_PED_ID())
|
|
SET_ENTITY_COORDS(PLAYER_PED_ID(),<<-62.8851, -2406.8723, 5.0009>>)
|
|
SET_ENTITY_HEADING(PLAYER_PED_ID(),338.2688)
|
|
ENDIF
|
|
ENDIF
|
|
IF NOT IS_ENTITY_ATTACHED(PLAYER_PED_ID())
|
|
FREEZE_ENTITY_POSITION(PLAYER_PED_ID(),FALSE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(s_crane.obj_spreader)
|
|
FREEZE_ENTITY_POSITION(s_crane.obj_spreader,TRUE)
|
|
ENDIF
|
|
|
|
//PRINTSTRING("DELETING CRANE")//PRINTNL()
|
|
IF IS_SCREEN_FADED_OUT()
|
|
DELETE_OBJECT(s_crane.obj_main)
|
|
DELETE_OBJECT(s_crane.obj_cabin)
|
|
DELETE_OBJECT(s_crane.obj_spreader)
|
|
DELETE_OBJECT(s_crane.obj_helper)
|
|
DELETE_OBJECT(s_crane.obj_wheels[0])
|
|
DELETE_OBJECT(s_crane.obj_wheels[1])
|
|
DELETE_OBJECT(s_crane.obj_wheels[2])
|
|
DELETE_OBJECT(s_crane.obj_wheels[3])
|
|
DELETE_OBJECT(s_crane.obj_wheels[4])
|
|
DELETE_OBJECT(s_crane.obj_wheels[5])
|
|
DELETE_OBJECT(s_crane.obj_wheels[6])
|
|
DELETE_OBJECT(s_crane.obj_wheels[7])
|
|
DELETE_OBJECT(s_containers[0].obj_main)
|
|
DELETE_OBJECT(s_containers[0].obj_left_door)
|
|
DELETE_OBJECT(s_containers[0].obj_right_door)
|
|
DELETE_OBJECT(s_containers[1].obj_main)
|
|
DELETE_OBJECT(s_containers[1].obj_left_door)
|
|
DELETE_OBJECT(s_containers[1].obj_right_door)
|
|
ELSE
|
|
SET_OBJECT_AS_NO_LONGER_NEEDED(s_crane.obj_main)
|
|
SET_OBJECT_AS_NO_LONGER_NEEDED(s_crane.obj_cabin)
|
|
SET_OBJECT_AS_NO_LONGER_NEEDED(s_crane.obj_spreader)
|
|
SET_OBJECT_AS_NO_LONGER_NEEDED(s_crane.obj_helper)
|
|
SET_OBJECT_AS_NO_LONGER_NEEDED(s_crane.obj_wheels[0])
|
|
SET_OBJECT_AS_NO_LONGER_NEEDED(s_crane.obj_wheels[1])
|
|
SET_OBJECT_AS_NO_LONGER_NEEDED(s_crane.obj_wheels[2])
|
|
SET_OBJECT_AS_NO_LONGER_NEEDED(s_crane.obj_wheels[3])
|
|
SET_OBJECT_AS_NO_LONGER_NEEDED(s_crane.obj_wheels[4])
|
|
SET_OBJECT_AS_NO_LONGER_NEEDED(s_crane.obj_wheels[5])
|
|
SET_OBJECT_AS_NO_LONGER_NEEDED(s_crane.obj_wheels[6])
|
|
SET_OBJECT_AS_NO_LONGER_NEEDED(s_crane.obj_wheels[7])
|
|
SET_OBJECT_AS_NO_LONGER_NEEDED(s_containers[0].obj_main)
|
|
SET_OBJECT_AS_NO_LONGER_NEEDED(s_containers[0].obj_left_door)
|
|
SET_OBJECT_AS_NO_LONGER_NEEDED(s_containers[0].obj_right_door)
|
|
SET_OBJECT_AS_NO_LONGER_NEEDED(s_containers[1].obj_main)
|
|
SET_OBJECT_AS_NO_LONGER_NEEDED(s_containers[1].obj_left_door)
|
|
SET_OBJECT_AS_NO_LONGER_NEEDED(s_containers[1].obj_right_door)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_CELLPHONE_CAMERA_INHIBITED_FOR_DOCKS_SETUP()
|
|
INHIBIT_CELLPHONE_CAMERA_FUNCTIONS_FOR_DOCKS_SETUP(FALSE)
|
|
ENDIF
|
|
|
|
//remove all blips
|
|
CLEAN_OBJECTIVE_BLIP_DISPLAY()
|
|
//remove all Models
|
|
CLEANUP_LOADED_MODEL_ARRAY()
|
|
CLEANUP_LOADED_CARREC_ARRAY("AWDocks1")
|
|
CLEANUP_LOADED_ANIM_ARRAY()
|
|
|
|
IF bRestart
|
|
CLEAR_AREA(vPlayerStart,200,TRUE,TRUE)
|
|
CLEAR_AREA_OF_OBJECTS(vPlayerStart,200)
|
|
CLEAR_AREA(vDocks,500,TRUE,TRUE)
|
|
CLEAR_AREA_OF_OBJECTS(vDocks,500)
|
|
WASH_DECALS_IN_RANGE(vDocks,500,1)
|
|
REMOVE_DECALS_IN_RANGE(vDocks,500)
|
|
REMOVE_ALL_PICKUPS_OF_TYPE(PICKUP_WEAPON_ASSAULTRIFLE)
|
|
CLEAR_PRINTS()
|
|
|
|
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
|
|
IF NOT IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
IF IS_ENTITY_ATTACHED(PLAYER_PED_ID())
|
|
DETACH_ENTITY(PLAYER_PED_ID())
|
|
ENDIF
|
|
ENDIF
|
|
FREEZE_ENTITY_POSITION(PLAYER_PED_ID(),FALSE)
|
|
ENDIF
|
|
|
|
//Allow particals to be displayed again
|
|
FOR iCount = 0 TO (iTotalNumberOfPtX -1)
|
|
bPTX_Triggered[iCount] = FALSE
|
|
ENDFOR
|
|
ENDIF
|
|
|
|
//house keeping
|
|
SET_WIDESCREEN_BORDERS(FALSE,0)
|
|
RENDER_SCRIPT_CAMS(FALSE, FALSE)
|
|
DESTROY_ALL_CAMS()
|
|
|
|
IF IS_HELP_MESSAGE_BEING_DISPLAYED()
|
|
CLEAR_HELP()
|
|
ENDIF
|
|
|
|
SET_TIME_SCALE(1.0)
|
|
CLEAR_TIMECYCLE_MODIFIER()
|
|
|
|
CLEANUP_PC_CONTROLS()
|
|
|
|
IF NOT bRestart
|
|
SET_MAX_WANTED_LEVEL(6)
|
|
SET_WANTED_LEVEL_MULTIPLIER(1.0)
|
|
TERMINATE_THIS_THREAD()
|
|
ENDIF
|
|
|
|
//ENDIF
|
|
ENDPROC
|
|
|
|
PROC DISTANCE_FAIL_CHECKS(VECTOR vfailcheckcoords, FLOAT warningdist, FLOAT faildist,STRING sdistwarning,STRING scurrentobjective,MISSION_FAIL_ENUM efail = WADE_LEFT)
|
|
|
|
IF GET_DISTANCE_BETWEEN_COORDS(GET_ENTITY_COORDS(PLAYER_PED_ID(),FALSE),vfailcheckcoords) > faildist
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = efail
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ELIF GET_DISTANCE_BETWEEN_COORDS(GET_ENTITY_COORDS(PLAYER_PED_ID(),FALSE),vfailcheckcoords) > warningdist
|
|
IF NOT bdistancewarning
|
|
PRINTSTRING("sdistwarning")PRINTNL()
|
|
PRINT_GOD_TEXT(sdistwarning)
|
|
bdistancewarning = TRUE
|
|
ENDIF
|
|
ELIF GET_DISTANCE_BETWEEN_COORDS(GET_ENTITY_COORDS(PLAYER_PED_ID(),FALSE),vfailcheckcoords) < (warningdist - 25)
|
|
IF bdistancewarning
|
|
PRINTSTRING("scurrentobjective")PRINTNL()
|
|
PRINT_GOD_TEXT(scurrentobjective)
|
|
bdistancewarning = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
INT iFlipTimer = -1
|
|
INT iTimeLastContact = 9999
|
|
BOOl bFlipTimerSetFork = FALSE
|
|
BOOL bContactTimerSet = FALSE
|
|
|
|
FUNC BOOL HAS_PLAYER_VEH_FLIPPED_VEH(VEHICLE_INDEX _player_veh, VEHICLE_INDEX _other_veh)
|
|
BOOL bRet = FALSE
|
|
IF bFlipTimerSetFork = FALSE
|
|
IF IS_ENTITY_TOUCHING_ENTITY(_player_veh, _other_veh)
|
|
OR IS_ENTITY_AT_ENTITY(_player_veh, _other_veh,<<3,3,3>>)
|
|
iTimeLastContact = GET_GAME_TIMER()
|
|
bContactTimerSet = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
VECTOR vTestVec
|
|
IF bFlipTimerSet = FALSE
|
|
AND bContactTimerSet
|
|
IF NOT MANAGE_MY_TIMER(iTimeLastContact,4000)
|
|
vTestVec = NORMALISE_VECTOR(GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(_other_veh, <<0,0,1>>) - GET_ENTITY_COORDS(_other_veh))
|
|
IF ABSF(GET_ANGLE_BETWEEN_2D_VECTORS(vTestVec.x, vTestVec.z, 0, 1)) > 80
|
|
OR ABSF(GET_ANGLE_BETWEEN_2D_VECTORS(vTestVec.y, vTestVec.z, 0, 1)) > 80
|
|
iFlipTimer = GET_GAME_TIMER()
|
|
bFlipTimerSetFork = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ELIF bFlipTimerSet = TRUE
|
|
vTestVec = NORMALISE_VECTOR(GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(_other_veh, <<0,0,1>>) - GET_ENTITY_COORDS(_other_veh))
|
|
IF ABSF(GET_ANGLE_BETWEEN_2D_VECTORS(vTestVec.x, vTestVec.z, 0, 1)) < 45
|
|
AND ABSF(GET_ANGLE_BETWEEN_2D_VECTORS(vTestVec.y, vTestVec.z, 0, 1)) < 45
|
|
bFlipTimerSetFork = FALSE
|
|
bContactTimerSet = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
IF MANAGE_MY_TIMER(iFlipTimer,4000)
|
|
AND bFlipTimerSetFork = TRUE
|
|
bRet = TRUE
|
|
ENDIF
|
|
RETURN bRet
|
|
ENDFUNC
|
|
|
|
|
|
BLIP_INDEX blipTrailer
|
|
INT iDialogueWarning
|
|
INT iConnectTrailerTimer
|
|
|
|
//PURPOSE: Tests for various fail conditions
|
|
PROC FAIL_CHECKS()
|
|
|
|
|
|
IF IS_PED_INJURED(PLAYER_PED_ID())
|
|
eFailedStage = eMissionStage
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
|
|
IF eMissionStage <> MISSION_STAGE_PASSED
|
|
IF DOES_ENTITY_EXIST(vehMission)
|
|
//REMOVED THIS CHECK CAUSE OF PT
|
|
IF NOT IS_VEHICLE_DRIVEABLE(vehMission)
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = VEHICLE_DEAD
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ELSE
|
|
IF IS_VEHICLE_PERMANENTLY_STUCK(vehMission)
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = VEHICLE_STUCK
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(pedWade)
|
|
IF DOES_ENTITY_EXIST(pedWade)
|
|
IF eMissionStage < MISSION_STAGE_4
|
|
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
|
|
IF NOT IS_PED_INJURED(pedWade)
|
|
DISTANCE_FAIL_CHECKS(GET_ENTITY_COORDS(pedWade), 150, 200,"AW_DONT_LEAVE_W","AW_DISTWARNW",WADE_LEFT)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(pedWade) AND DOES_ENTITY_EXIST(pedFloyd)
|
|
IF eMissionStage < MISSION_STAGE_4
|
|
IF IS_PED_INJURED(pedWade) AND IS_PED_INJURED(pedFloyd)
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = WADE_AND_FLOYD_DEAD
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ELIF IS_PED_INJURED(pedWade)
|
|
IF eMissionStage < MISSION_STAGE_4
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = WADE_DEAD
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
ELIF IS_PED_INJURED(pedFloyd)
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = FLOYD_DEAD
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF DOES_ENTITY_EXIST(pedFloyd)
|
|
IF IS_PED_INJURED(pedFloyd)
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = FLOYD_DEAD
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF eMissionStage < MISSION_STAGE_PASSED
|
|
IF DOES_ENTITY_EXIST(pedFloyd)
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
|
|
IF eMissionStage = MISSION_STAGE_1
|
|
IF IS_VEHICLE_DRIVEABLE(vehMission)
|
|
IF NOT IS_PED_IN_VEHICLE(pedFloyd,vehMission)
|
|
DISTANCE_FAIL_CHECKS(GET_ENTITY_COORDS(pedFloyd), 190, 250,"AW_DONT_LEAVE_T","AW_DISTWARNF",FLOYD_LEFT)
|
|
ENDIF
|
|
ENDIF
|
|
ELIF eMissionStage = MISSION_STAGE_4
|
|
DISTANCE_FAIL_CHECKS(GET_ENTITY_COORDS(pedFloyd), 190, 250,"AW_DONT_LEAVE_T","AW_DISTWARNF",FLOYD_LEFT)
|
|
ELIF eMissionStage = MISSION_STAGE_6
|
|
DISTANCE_FAIL_CHECKS(<<-65.59, -2467.65, 5.96>>, 180, 250,"AW_DISTWARNL","AW_DISTWARND",ABADONED_DOCKS)
|
|
ELIF eMissionStage = MISSION_STAGE_7
|
|
DISTANCE_FAIL_CHECKS(<<-65.59, -2467.65, 5.96>>, 180, 250,"AW_DISTWARNL","AW_DISTWARND",ABADONED_DOCKS)
|
|
ELSE
|
|
IF eMissionStage = MISSION_STAGE_2
|
|
IF iProgress > 1
|
|
DISTANCE_FAIL_CHECKS(<<-65.59, -2467.65, 5.96>>, 250, 270,"AW_DISTWARNL","AW_DISTWARND",ABADONED_DOCKS)
|
|
ENDIF
|
|
ENDIF
|
|
IF eMissionStage > MISSION_STAGE_2
|
|
AND eMissionStage < MISSION_STAGE_10
|
|
IF eMissionStage != MISSION_STAGE_6
|
|
OR eMissionStage != MISSION_STAGE_7
|
|
DISTANCE_FAIL_CHECKS(<<-65.59, -2467.65, 5.96>>, 250, 270,"AW_DISTWARNL","AW_DISTWARND",ABADONED_DOCKS)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
IF eMissionStage > MISSION_STAGE_2
|
|
AND eMissionStage < MISSION_STAGE_4
|
|
VEHICLE_INDEX vehPlayer
|
|
IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
vehPlayer = GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID())
|
|
IF IS_ENTITY_TOUCHING_ENTITY(vehPlayer,pedFloyd)
|
|
IF IS_PED_RAGDOLL(pedFloyd)
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = COVER_BLOWN
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
ENDIF
|
|
IF HAS_ENTITY_BEEN_DAMAGED_BY_ANY_VEHICLE(pedFloyd)
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = COVER_BLOWN
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF eMissionStage > MISSION_STAGE_7 AND bDoneWithTruck = FALSE
|
|
IF DOES_ENTITY_EXIST(vehFloydTruck)
|
|
IF NOT IS_VEHICLE_DRIVEABLE(vehFloydTruck)
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = TRUCK_DEAD
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ELSE
|
|
IF IS_VEHICLE_PERMANENTLY_STUCK(vehFloydTruck)
|
|
PRINTSTRING("WOULD HAVE FAILED")PRINTNL()
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = TRUCK_STUCK
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(vehTrailer2)
|
|
IF NOT IS_VEHICLE_DRIVEABLE(vehTrailer2)
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = DAMAGED_CARGO
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
IF IS_VEHICLE_DRIVEABLE(vehFloydTruck)
|
|
IF NOT IS_VEHICLE_ATTACHED_TO_TRAILER(vehFloydTruck)
|
|
IF IS_ENTITY_IN_WATER(vehTrailer2)
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = DAMAGED_CARGO
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF eMissionStage = MISSION_STAGE_10
|
|
IF iProgress > 1
|
|
IF DOES_ENTITY_EXIST(vehFloydTruck)
|
|
IF IS_VEHICLE_DRIVEABLE(vehFloydTruck)
|
|
|
|
IF NOT IS_VEHICLE_ATTACHED_TO_TRAILER(vehFloydTruck)
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("TRAILER DISCONNECTED")
|
|
iConnectTrailerTimer = GET_GAME_TIMER()
|
|
IF IS_VEHICLE_DRIVEABLE(vehTrailer2)
|
|
IF NOT DOES_BLIP_EXIST(blipTrailer)
|
|
blipTrailer = ADD_BLIP_FOR_ENTITY(vehTrailer2)
|
|
SET_BLIP_COLOUR(blipTrailer,BLIP_COLOUR_BLUE)
|
|
ENDIF
|
|
ENDIF
|
|
IF IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF NOT IS_FACE_TO_FACE_CONVERSATION_PAUSED()
|
|
PAUSE_FACE_TO_FACE_CONVERSATION(TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
PRINT_GOD_TEXT("AW_RECONTRA")
|
|
SET_LABEL_AS_TRIGGERED("TRAILER DISCONNECTED",TRUE)
|
|
ELSE
|
|
IF MANAGE_MY_TIMER(iConnectTrailerTimer,45000)
|
|
PRINTSTRING("WOULD HAVE FAILED")PRINTNL()
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = DITCHED_THE_CARGO
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF HAS_LABEL_BEEN_TRIGGERED("TRAILER DISCONNECTED")
|
|
IF DOES_BLIP_EXIST(blipTrailer)
|
|
REMOVE_BLIP(blipTrailer)
|
|
ENDIF
|
|
IF IS_FACE_TO_FACE_CONVERSATION_PAUSED()
|
|
PAUSE_FACE_TO_FACE_CONVERSATION(FALSE)
|
|
ENDIF
|
|
IF IS_THIS_PRINT_BEING_DISPLAYED("AW_RECONTRA")
|
|
CLEAR_PRINTS()
|
|
ENDIF
|
|
SET_LABEL_AS_TRIGGERED("TRAILER DISCONNECTED",FALSE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF eMissionStage < MISSION_STAGE_6
|
|
IF DOES_ENTITY_EXIST(vehHandler)
|
|
IF NOT IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
OR IS_ENTITY_IN_WATER(vehHandler)
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = HANDLER_DEAD
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ELSE
|
|
IF IS_VEHICLE_PERMANENTLY_STUCK(vehHandler)
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = HANDLER_STUCK
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//Fail checks for containers: if placed on their side, dropped from a height, or slammed into another object, fail the mission.
|
|
IF eMissionStage = MISSION_STAGE_7
|
|
IF iCraneFailTimer = 0
|
|
CONST_FLOAT SAFE_CONTAINER_ROT 32.0
|
|
CONST_FLOAT SAFE_HELD_CONTAINER_ROT 45.0
|
|
CONST_FLOAT SAFE_CONTAINER_ZROTDEV 15.0
|
|
CONST_FLOAT SAFE_CONTAINER_VEL_CHANGE 5.0
|
|
|
|
INT i = 0
|
|
REPEAT COUNT_OF(s_Containers) i
|
|
IF s_Containers[i].b_loaded_on_truck = FALSE
|
|
IF DOES_ENTITY_EXIST(s_Containers[i].obj_main)
|
|
VECTOR vContainerRot = GET_ENTITY_ROTATION(s_Containers[i].obj_main)
|
|
VECTOR vContainerVel = GET_ENTITY_VELOCITY(s_Containers[i].obj_Main)
|
|
|
|
PRINTSTRING("Container Number:")PRINTINT(i)PRINTSTRING("vContainerRot:")PRINTVECTOR(vContainerRot)PRINTNL()
|
|
PRINTSTRING("Container Number:")PRINTINT(i)PRINTSTRING("vContainerVel:")PRINTVECTOR(vContainerVel)PRINTNL()
|
|
|
|
IF NOT IS_ENTITY_ATTACHED(s_Containers[i].obj_main)
|
|
IF vContainerRot.y > SAFE_HELD_CONTAINER_ROT OR vContainerRot.y < -SAFE_HELD_CONTAINER_ROT
|
|
iCraneFailTimer = GET_GAME_TIMER()
|
|
ENDIF
|
|
ELSE
|
|
IF vContainerRot.y > SAFE_CONTAINER_ROT OR vContainerRot.y < -SAFE_CONTAINER_ROT
|
|
iCraneFailTimer = GET_GAME_TIMER()
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF s_Containers[i].vPrevVel.z < -8.0
|
|
IF vContainerVel.z - s_Containers[i].vPrevVel.z > SAFE_CONTAINER_VEL_CHANGE
|
|
iCraneFailTimer = GET_GAME_TIMER()
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT IS_ENTITY_ATTACHED(s_Containers[i].obj_main)
|
|
IF vContainerRot.z > 91.2705 + SAFE_CONTAINER_ZROTDEV OR vContainerRot.z < 91.2705 - SAFE_CONTAINER_ZROTDEV
|
|
iCraneFailTimer = GET_GAME_TIMER()
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT IS_ENTITY_ATTACHED(s_Containers[i].obj_main)
|
|
IF NOT IS_ENTITY_IN_ANGLED_AREA(s_Containers[i].obj_main, <<-48.327007,-2415.719482,2.000961>>, <<-110.642082,-2416.208008,22.250463>>, 14.500000)
|
|
iCraneFailTimer = GET_GAME_TIMER()
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//Supervisor shouts up if the player flings the containers around
|
|
IF iCraneFailTimer = 0
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData, IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF ABSF(VMAG(vContainerVel) - VMAG(s_Containers[i].vPrevVel)) > 4.0
|
|
KILL_FACE_TO_FACE_CONVERSATION()
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_10h", CONV_PRIORITY_MEDIUM)
|
|
iCraneDialogueTimer = GET_GAME_TIMER()
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF (GET_GAME_TIMER() - iCraneDialogueTimer > 8000 AND ABSF(vContainerRot.y) > 45.0 AND IS_ENTITY_ATTACHED(s_Containers[i].obj_Main))
|
|
KILL_FACE_TO_FACE_CONVERSATION()
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_10h", CONV_PRIORITY_MEDIUM)
|
|
iCraneDialogueTimer = GET_GAME_TIMER()
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
s_Containers[i].vPrevVel = vContainerVel
|
|
ENDIF
|
|
ENDIF
|
|
ENDREPEAT
|
|
ELIF GET_GAME_TIMER() - iCraneFailTimer > 1000
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = DAMAGED_CARGO
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(objHandlerContainer[0])
|
|
IF IS_ENTITY_IN_WATER(objHandlerContainer[0])
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = DAMAGED_CRATES
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(objHandlerContainer[1])
|
|
IF IS_ENTITY_IN_WATER(objHandlerContainer[1])
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = DAMAGED_CRATES
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
ENDIF
|
|
|
|
|
|
IF (eMissionStage > MISSION_STAGE_1 OR (IS_ENTITY_AT_COORD(PLAYER_PED_ID(), vDocks, << 20, 20, 20 >>) AND IS_PLAYER_WANTED_LEVEL_GREATER(PLAYER_ID(),0)))
|
|
AND eMissionStage < MISSION_STAGE_11
|
|
IF bIgnoreTheseFails = FALSE
|
|
//player wanted level
|
|
IF IS_PLAYER_WANTED_LEVEL_GREATER(PLAYER_ID(),0)
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = COVER_BLOWN
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
// start checking for attacking of people once player arrives at the docks
|
|
//IF HAS_PLAYER_DAMAGED_AT_LEAST_ONE_PED(PLAYER_ID())
|
|
IF HAS_PLAYER_DAMAGED_AT_LEAST_ONE_NON_ANIMAL_PED(PLAYER_ID())
|
|
KILL_FACE_TO_FACE_CONVERSATION()
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_38", CONV_PRIORITY_HIGH)
|
|
//SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE,rel_group_enemies,rel_group_buddies)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE,rel_group_enemies,RELGROUPHASH_PLAYER)
|
|
//SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE,rel_group_buddies,rel_group_enemies)
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = COVER_BLOWN
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
ENDIF
|
|
|
|
PED_INDEX pedArray[5]
|
|
|
|
INT i = 0
|
|
|
|
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
|
|
GET_PED_NEARBY_PEDS(PLAYER_PED_ID(), pedArray)
|
|
FOR i = 0 TO (COUNT_OF(pedArray) - 1)
|
|
IF NOT IS_PED_INJURED(pedArray[i])
|
|
IF NOT IS_PED_MODEL(pedArray[i],IG_WADE)
|
|
AND NOT IS_PED_MODEL(pedArray[i],IG_FLOYD)
|
|
IF IS_PED_MODEL(pedArray[i],S_M_Y_BLACKOPS_01)
|
|
IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(pedArray[i],PLAYER_PED_ID())
|
|
OR IS_PED_IN_COMBAT(pedArray[i],PLAYER_PED_ID())
|
|
OR IS_ENTITY_TOUCHING_ENTITY(PLAYER_PED_ID(),pedArray[i])
|
|
//CHANGE RELATIONSHIP GROUPS
|
|
SET_PED_RELATIONSHIP_GROUP_HASH(pedArray[i],rel_group_enemies)
|
|
//SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_HATE,rel_group_enemies,rel_group_buddies)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_HATE,rel_group_enemies,RELGROUPHASH_PLAYER)
|
|
//SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_HATE,rel_group_buddies,rel_group_enemies)
|
|
TASK_COMBAT_PED(pedArray[i],PLAYER_PED_ID())
|
|
KILL_ANY_CONVERSATION()
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_38", CONV_PRIORITY_HIGH)
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = COVER_BLOWN
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
ENDIF
|
|
IF HAS_PED_RECEIVED_EVENT(pedArray[i], EVENT_RAN_OVER_PED)
|
|
KILL_ANY_CONVERSATION()
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_38", CONV_PRIORITY_HIGH)
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = COVER_BLOWN_RAN_OVER
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(pedArray[i],PLAYER_PED_ID())
|
|
OR IS_PED_IN_COMBAT(pedArray[i],PLAYER_PED_ID())
|
|
KILL_ANY_CONVERSATION()
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_38", CONV_PRIORITY_HIGH)
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = COVER_BLOWN
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
ENDIF
|
|
IF HAS_PED_RECEIVED_EVENT(pedArray[i], EVENT_RAN_OVER_PED)
|
|
KILL_ANY_CONVERSATION()
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_38", CONV_PRIORITY_HIGH)
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = COVER_BLOWN_RAN_OVER
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDFOR
|
|
ENDIF
|
|
|
|
FOR i = 0 TO (COUNT_OF(pedArray) - 1)
|
|
IF DOES_ENTITY_EXIST(pedArray[i])
|
|
IF NOT IS_PED_INJURED(pedArray[i])
|
|
IF IS_PED_MODEL(pedArray[i],S_M_Y_BLACKOPS_01)
|
|
OR IS_PED_MODEL(pedArray[i],S_M_Y_DOCKWORK_01)
|
|
OR IS_PED_MODEL(pedArray[i],S_M_M_DOCKWORK_01)
|
|
IF NOT IS_PED_MODEL(pedArray[i],IG_WADE)
|
|
AND NOT IS_PED_MODEL(pedArray[i],IG_FLOYD)
|
|
IF DOES_ENTITY_EXIST(objHandlerContainer[0])
|
|
AND DOES_ENTITY_EXIST(objHandlerContainer[1])
|
|
IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(pedArray[i],objHandlerContainer[0])
|
|
OR HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(pedArray[i],objHandlerContainer[1])
|
|
TASK_SMART_FLEE_PED(pedArray[i],PLAYER_PED_ID(),200,-1)
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = COVER_BLOWN
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDFOR
|
|
|
|
// check for running over peds
|
|
REPEAT COUNT_OF(pedDockWorker) i
|
|
IF DOES_ENTITY_EXIST(pedDockWorker[i])
|
|
IF NOT IS_PED_INJURED(pedDockWorker[i])
|
|
IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
IF HAS_PED_RECEIVED_EVENT(pedDockWorker[i], EVENT_POTENTIAL_GET_RUN_OVER)
|
|
OR HAS_PED_RECEIVED_EVENT(pedDockWorker[i], EVENT_RAN_OVER_PED)
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_41")
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
KILL_ANY_CONVERSATION()
|
|
IF DOES_ENTITY_EXIST(vehHandler)
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehHandler)
|
|
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(pedFloyd,"DH1_EWAA","FLOYD",SPEECH_PARAMS_FORCE_FRONTEND)
|
|
ELSE
|
|
IF ARE_CHARS_SITTING_IN_SAME_VEHICLE(PLAYER_PED_ID(),pedFloyd)
|
|
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(pedFloyd,"DH1_EWAA","FLOYD",SPEECH_PARAMS_FORCE_FRONTEND)
|
|
ELSE
|
|
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(pedFloyd,"DH1_EWAA","FLOYD",SPEECH_PARAMS_FORCE_NORMAL)
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF ARE_CHARS_SITTING_IN_SAME_VEHICLE(PLAYER_PED_ID(),pedFloyd)
|
|
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(pedFloyd,"DH1_EWAA","FLOYD",SPEECH_PARAMS_FORCE_FRONTEND)
|
|
ELSE
|
|
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(pedFloyd,"DH1_EWAA","FLOYD",SPEECH_PARAMS_FORCE_NORMAL)
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF ARE_CHARS_SITTING_IN_SAME_VEHICLE(PLAYER_PED_ID(),pedFloyd)
|
|
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(pedFloyd,"DH1_EWAA","FLOYD",SPEECH_PARAMS_FORCE_FRONTEND)
|
|
ELSE
|
|
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(pedFloyd,"DH1_EWAA","FLOYD",SPEECH_PARAMS_FORCE_NORMAL)
|
|
ENDIF
|
|
ENDIF
|
|
SET_LABEL_AS_TRIGGERED("DS1_41",TRUE)
|
|
iDialogueWarning = GET_GAME_TIMER()
|
|
ENDIF
|
|
ELSE
|
|
IF MANAGE_MY_TIMER(iDialogueWarning,9000)
|
|
SET_LABEL_AS_TRIGGERED("DS1_41",FALSE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(pedDockWorker[i],PLAYER_PED_ID())
|
|
OR (IS_PED_RAGDOLL(pedDockWorker[i]) AND IS_ENTITY_TOUCHING_ENTITY(pedDockWorker[i],PLAYER_PED_ID()))
|
|
KILL_ANY_CONVERSATION()
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_38", CONV_PRIORITY_HIGH)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE,rel_group_enemies,rel_group_buddies)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE,rel_group_enemies,RELGROUPHASH_PLAYER)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE,rel_group_buddies,rel_group_enemies)
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = COVER_BLOWN
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
KILL_ANY_CONVERSATION()
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_38", CONV_PRIORITY_HIGH)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE,rel_group_enemies,rel_group_buddies)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE,rel_group_enemies,RELGROUPHASH_PLAYER)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE,rel_group_buddies,rel_group_enemies)
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = COVER_BLOWN
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
IF NOT IS_PED_INJURED(pedSecurity)
|
|
IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
IF HAS_PED_RECEIVED_EVENT(pedSecurity, EVENT_POTENTIAL_GET_RUN_OVER)
|
|
OR HAS_PED_RECEIVED_EVENT(pedSecurity, EVENT_RAN_OVER_PED)
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_41")
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
KILL_ANY_CONVERSATION()
|
|
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(pedFloyd,"DH1_EWAA","FLOYD",SPEECH_PARAMS_FORCE_NORMAL)
|
|
SET_LABEL_AS_TRIGGERED("DS1_41",TRUE)
|
|
iDialogueWarning = GET_GAME_TIMER()
|
|
ENDIF
|
|
ELSE
|
|
IF MANAGE_MY_TIMER(iDialogueWarning,9000)
|
|
SET_LABEL_AS_TRIGGERED("DS1_41",FALSE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
|
|
IF IS_PED_SHOOTING(PLAYER_PED_ID())
|
|
KILL_ANY_CONVERSATION()
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_38", CONV_PRIORITY_HIGH)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE,rel_group_enemies,rel_group_buddies)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE,rel_group_enemies,RELGROUPHASH_PLAYER)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE,rel_group_buddies,rel_group_enemies)
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = COVER_BLOWN
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_PED_PERFORMING_STEALTH_KILL(PLAYER_PED_ID())
|
|
KILL_ANY_CONVERSATION()
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_38", CONV_PRIORITY_HIGH)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE,rel_group_enemies,rel_group_buddies)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE,rel_group_enemies,RELGROUPHASH_PLAYER)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE,rel_group_buddies,rel_group_enemies)
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = COVER_BLOWN
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_PED_IN_COMBAT(PLAYER_PED_ID())
|
|
KILL_ANY_CONVERSATION()
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_38", CONV_PRIORITY_HIGH)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE,rel_group_enemies,rel_group_buddies)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE,rel_group_enemies,RELGROUPHASH_PLAYER)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE,rel_group_buddies,rel_group_enemies)
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = COVER_BLOWN
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//Walked into office
|
|
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-63.843861,-2515.959229,6.150424>>, <<-51.076782,-2525.074463,9.171206>>, 4.250000)
|
|
OR IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-63.257442,-2519.074707,8.900423>>, <<-62.217762,-2519.834961,6.150424>>, 0.500000)
|
|
KILL_ANY_CONVERSATION()
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_38", CONV_PRIORITY_HIGH)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE,rel_group_enemies,rel_group_buddies)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE,rel_group_enemies,RELGROUPHASH_PLAYER)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE,rel_group_buddies,rel_group_enemies)
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = COVER_BLOWN
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-77.755180,-2364.332520,38.796139>>, <<-252.818283,-2363.691650,-2.910417>>, 35.750000)
|
|
KILL_ANY_CONVERSATION()
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_38", CONV_PRIORITY_HIGH)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE,rel_group_enemies,rel_group_buddies)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE,rel_group_enemies,RELGROUPHASH_PLAYER)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE,rel_group_buddies,rel_group_enemies)
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = COVER_BLOWN
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("MERRYWEATHER ALERTED")
|
|
IF DOES_ENTITY_EXIST(pedMerc[4])
|
|
AND DOES_ENTITY_EXIST(pedMerc[5])
|
|
AND DOES_ENTITY_EXIST(pedMerc[5])
|
|
IF NOT IS_PED_INJURED(pedMerc[4])
|
|
AND NOT IS_PED_INJURED(pedMerc[5])
|
|
AND NOT IS_PED_INJURED(pedMerc[6])
|
|
IF IS_PED_IN_COMBAT(pedMerc[4])
|
|
OR IS_PED_IN_COMBAT(pedMerc[5])
|
|
OR IS_PED_IN_COMBAT(pedMerc[6])
|
|
IF NOT HAS_SOUND_FINISHED(soundBeating)
|
|
STOP_SOUND(soundBeating)
|
|
RELEASE_SOUND_ID(soundBeating)
|
|
ENDIF
|
|
|
|
iMerryWeatherFail = GET_GAME_TIMER()
|
|
SET_LABEL_AS_TRIGGERED("MERRYWEATHER ALERTED",TRUE)
|
|
ENDIF
|
|
ELSE
|
|
IF eMissionStage = MISSION_STAGE_10
|
|
OR (eMissionStage = MISSION_STAGE_11 AND VDIST2(GET_ENTITY_COORDS(PLAYER_PED_ID()), <<478.596, -3116.911, 5.069>>) < 40000.0)
|
|
KILL_ANY_CONVERSATION()
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_38", CONV_PRIORITY_HIGH)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE,rel_group_enemies,rel_group_buddies)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE,rel_group_enemies,RELGROUPHASH_PLAYER)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE,rel_group_buddies,rel_group_enemies)
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = COVER_BLOWN
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF MANAGE_MY_TIMER(iMerryWeatherFail,6000)
|
|
KILL_ANY_CONVERSATION()
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_38", CONV_PRIORITY_HIGH)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE,rel_group_enemies,rel_group_buddies)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE,rel_group_enemies,RELGROUPHASH_PLAYER)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE,rel_group_buddies,rel_group_enemies)
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = COVER_BLOWN
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF bIgnoreTheseFails = FALSE
|
|
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-63.600880,-2517.614014,6.400066>>, <<-61.070011,-2519.372559,8.900066>>, 1.750000)
|
|
KILL_ANY_CONVERSATION()
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_38", CONV_PRIORITY_HIGH)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE,rel_group_enemies,rel_group_buddies)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE,rel_group_enemies,RELGROUPHASH_PLAYER)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE,rel_group_buddies,rel_group_enemies)
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = COVER_BLOWN
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF eMissionStage > MISSION_STAGE_1
|
|
VEHICLE_INDEX vehTemp
|
|
vehTemp = GET_RANDOM_VEHICLE_IN_SPHERE(<<-62.70, -2527.79, 5.01>>, 40, DUMMY_MODEL_FOR_SCRIPT, VEHICLE_SEARCH_FLAG_RETURN_RANDOM_VEHICLES)
|
|
IF vehTemp != vehMission
|
|
IF DOES_ENTITY_EXIST(vehTemp)
|
|
IF IS_ENTITY_IN_ANGLED_AREA(vehTemp, <<-52.457756,-2535.257813,4.010103>>, <<-73.385857,-2520.341309,8.510103>>, 14.250000)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE,rel_group_enemies,rel_group_buddies)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE,rel_group_enemies,RELGROUPHASH_PLAYER)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE,rel_group_buddies,rel_group_enemies)
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = COVER_BLOWN
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
INT iWorker
|
|
FOR iWorker = 0 TO (iTotalDockWorker -1)
|
|
IF DOES_ENTITY_EXIST(pedDockWorker[iWorker])
|
|
IF NOT IS_PED_INJURED(pedDockWorker[iWorker])
|
|
IF (IS_PLAYER_TARGETTING_ENTITY(PLAYER_ID(), pedDockWorker[iWorker]) OR IS_PLAYER_FREE_AIMING_AT_ENTITY(PLAYER_ID(), pedDockWorker[iWorker]))
|
|
KILL_ANY_CONVERSATION()
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_38", CONV_PRIORITY_HIGH)
|
|
TASK_SMART_FLEE_PED(pedDockWorker[iWorker],PLAYER_PED_ID(),200,-1)
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = COVER_BLOWN
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDFOR
|
|
|
|
IF DOES_ENTITY_EXIST(pedSecurity)
|
|
IF NOT IS_PED_INJURED(pedSecurity)
|
|
IF (IS_PLAYER_TARGETTING_ENTITY(PLAYER_ID(), pedSecurity) OR IS_PLAYER_FREE_AIMING_AT_ENTITY(PLAYER_ID(), pedSecurity))
|
|
KILL_ANY_CONVERSATION()
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_38", CONV_PRIORITY_HIGH)
|
|
TASK_SMART_FLEE_PED(pedSecurity,PLAYER_PED_ID(),200,-1)
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = COVER_BLOWN
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(pedSecurity,PLAYER_PED_ID())
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_38", CONV_PRIORITY_HIGH)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE,rel_group_enemies,rel_group_buddies)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE,rel_group_enemies,RELGROUPHASH_PLAYER)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE,rel_group_buddies,rel_group_enemies)
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = COVER_BLOWN
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
|
|
FOR iWorker = 0 TO (iTotalDockWorker -1)
|
|
IF DOES_ENTITY_EXIST(pedDockWorker[iWorker])
|
|
IF DOES_ENTITY_EXIST(objHandlerContainer[0])
|
|
AND DOES_ENTITY_EXIST(objHandlerContainer[1])
|
|
IF NOT IS_PED_INJURED(pedDockWorker[iWorker])
|
|
IF HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(pedDockWorker[iWorker],objHandlerContainer[0])
|
|
OR HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(pedDockWorker[iWorker],objHandlerContainer[1])
|
|
TASK_SMART_FLEE_PED(pedDockWorker[iWorker],PLAYER_PED_ID(),200,-1)
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = COVER_BLOWN
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
ELSE
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = COVER_BLOWN
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDFOR
|
|
|
|
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
IF eMissionStage = MISSION_STAGE_5
|
|
IF iHandlerFailTimer = 0
|
|
CONST_FLOAT SAFE_HANDLER_CONTAINER_ROT 75.0
|
|
CONST_FLOAT SAFE_HANDLER_CONTAINER_ZROTDEV 35.0
|
|
VECTOR vHandlerContainerTemp
|
|
|
|
INT i = 0
|
|
REPEAT COUNT_OF(objHandlerContainer) i
|
|
IF DOES_ENTITY_EXIST(objHandlerContainer[i])
|
|
IF NOT IS_ANY_ENTITY_ATTACHED_TO_HANDLER_FRAME(vehHandler)
|
|
IF NOT IS_ANY_ENTITY_ATTACHED_TO_HANDLER_FRAME(vehHandler)
|
|
IF NOT IS_ENTITY_IN_ANGLED_AREA(objHandlerContainer[i], <<-92.523666,-2461.800049,8.267201>>, <<-103.638123,-2453.989258,4.520514>>, 14.750000)
|
|
IF DOES_ENTITY_EXIST(objHandlerContainer[i])
|
|
VECTOR vHandlerContainerRot = GET_ENTITY_ROTATION(objHandlerContainer[i])
|
|
|
|
IF vHandlerContainerRot.y > SAFE_HANDLER_CONTAINER_ROT OR vHandlerContainerRot.y < -SAFE_HANDLER_CONTAINER_ROT
|
|
iHandlerFailTimer = GET_GAME_TIMER()
|
|
PRINTSTRING("@@@@@@@@@ Fail for Y: @@@@@@@@@")PRINTNL()
|
|
ENDIF
|
|
|
|
IF NOT IS_ENTITY_ATTACHED(objHandlerContainer[i])
|
|
// 91.2705 + | 91.2705 -
|
|
IF vHandlerContainerRot.z > 55.003 + SAFE_HANDLER_CONTAINER_ZROTDEV OR vHandlerContainerRot.z < 55.003 - SAFE_HANDLER_CONTAINER_ZROTDEV
|
|
iHandlerFailTimer = GET_GAME_TIMER()
|
|
PRINTSTRING("@@@@@@@@@ Fail for Z: @@@@@@@@@")PRINTNL()
|
|
ENDIF
|
|
ENDIF
|
|
//PRINTSTRING("vHandlerContainerRot:")PRINTVECTOR(vHandlerContainerRot)PRINTNL()
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(objHandlerContainer[i])
|
|
vHandlerContainerTemp = GET_ENTITY_COORDS(objHandlerContainer[i])
|
|
IF vHandlerContainerTemp. z > 10.6
|
|
iHandlerFailTimer = GET_GAME_TIMER()
|
|
PRINTSTRING("@@@@@@@@@ Fail for Z out of reach: @@@@@@@@@")PRINTNL()
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDREPEAT
|
|
ELIF GET_GAME_TIMER() - iHandlerFailTimer > 2000
|
|
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = DAMAGED_HANDLER_CARGO
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
|
|
ENDPROC
|
|
//PURPOSE: controls the failure of the mission
|
|
PROC MISSION_FAILED()
|
|
|
|
TRIGGER_MUSIC_EVENT("AHP1_FAIL")
|
|
|
|
|
|
STRING sFailString
|
|
SWITCH reason_for_fail
|
|
CASE GENERIC
|
|
//FAIL_GENERIC
|
|
CLEAR_PRINTS()
|
|
sFailString = "AW_FAILED"
|
|
//PRINT_GOD_TEXT("AW_FAILED")
|
|
BREAK
|
|
|
|
CASE FLOYD_LEFT
|
|
//FAIL_GENERIC
|
|
CLEAR_PRINTS()
|
|
sFailString = "AW_FAILED_FL"
|
|
//PRINT_GOD_TEXT("AW_FAILED_FL")
|
|
BREAK
|
|
|
|
CASE FLOYD_DEAD
|
|
//FAIL_GENERIC
|
|
CLEAR_PRINTS()
|
|
sFailString = "AW_FAILED_FD"
|
|
//PRINT_GOD_TEXT("AW_FAILED_FD")
|
|
BREAK
|
|
|
|
CASE WADE_LEFT
|
|
//FAIL_GENERIC
|
|
CLEAR_PRINTS()
|
|
sFailString = "AW_FAILED_WL"
|
|
//PRINT_GOD_TEXT("AW_FAILED_WL")
|
|
BREAK
|
|
|
|
CASE WADE_DEAD
|
|
//FAIL_GENERIC
|
|
CLEAR_PRINTS()
|
|
sFailString = "AW_FAILED_WD"
|
|
//PRINT_GOD_TEXT("AW_FAILED_WD")
|
|
BREAK
|
|
|
|
CASE FLOYDS_FORKLIFT_DEAD
|
|
CLEAR_PRINTS()
|
|
sFailString = "AW_FAILED_FFLD"
|
|
//PRINT_GOD_TEXT("AW_FAILED_FLD")
|
|
BREAK
|
|
|
|
CASE FORKLIFT_DEAD
|
|
CLEAR_PRINTS()
|
|
sFailString = "AW_FAILED_FLD"
|
|
//PRINT_GOD_TEXT("AW_FAILED_FLD")
|
|
BREAK
|
|
|
|
CASE VEHICLE_DEAD
|
|
CLEAR_PRINTS()
|
|
sFailString = "AW_FAILED_TTD"
|
|
//PRINT_GOD_TEXT("AW_FAILED_TTD")
|
|
BREAK
|
|
|
|
CASE VEHICLE_STUCK
|
|
CLEAR_PRINTS()
|
|
sFailString = "AW_FAILED_TTS"
|
|
//PRINT_GOD_TEXT("AW_FAILED_TTD")
|
|
BREAK
|
|
|
|
CASE TRUCK_DEAD
|
|
CLEAR_PRINTS()
|
|
sFailString = "AW_FAILED_TRD"
|
|
//PRINT_GOD_TEXT("AW_FAILED_TRD")
|
|
BREAK
|
|
|
|
CASE TRUCK_STUCK
|
|
CLEAR_PRINTS()
|
|
sFailString = "AW_FAILED_TRS"
|
|
//PRINT_GOD_TEXT("AW_FAILED_TRD")
|
|
BREAK
|
|
|
|
CASE COVER_BLOWN
|
|
CLEAR_PRINTS()
|
|
sFailString = "AW_FAILED_CBL"
|
|
//PRINT_GOD_TEXT("AW_FAILED_CBL")
|
|
BREAK
|
|
|
|
CASE COVER_BLOWN_RAN_OVER
|
|
CLEAR_PRINTS()
|
|
sFailString = "AW_FAILED_CBL"
|
|
//PRINT_GOD_TEXT("AW_FAILED_CBL")
|
|
BREAK
|
|
|
|
CASE DAMAGED_CARGO
|
|
CLEAR_PRINTS()
|
|
sFailString = "AW_FAILED_DC"
|
|
//PRINT_GOD_TEXT("AW_FAILED_CBL")
|
|
BREAK
|
|
|
|
CASE DAMAGED_CRATES
|
|
CLEAR_PRINTS()
|
|
sFailString = "AW_FAILED_DC"
|
|
//PRINT_GOD_TEXT("AW_FAILED_CBL")
|
|
BREAK
|
|
|
|
CASE HANDLER_DEAD
|
|
CLEAR_PRINTS()
|
|
sFailString = "AW_FAILED_HD"
|
|
//PRINT_GOD_TEXT("AW_FAILED_CBL")
|
|
BREAK
|
|
|
|
CASE HANDLER_STUCK
|
|
CLEAR_PRINTS()
|
|
sFailString = "AW_FAILED_HS"
|
|
//PRINT_GOD_TEXT("AW_FAILED_TRD")
|
|
BREAK
|
|
|
|
CASE DAMAGED_HANDLER_CARGO
|
|
CLEAR_PRINTS()
|
|
sFailString = "AW_FAILED_HCD"
|
|
BREAK
|
|
|
|
CASE WADE_AND_FLOYD_DEAD
|
|
CLEAR_PRINTS()
|
|
sFailString = "AW_FAILED_FWD"
|
|
//PRINT_GOD_TEXT("AW_FAILED_CBL")
|
|
BREAK
|
|
|
|
CASE ABADONED_DOCKS
|
|
CLEAR_PRINTS()
|
|
sFailString = "AW_FAILED_AD"
|
|
//PRINT_GOD_TEXT("AW_FAILED_CBL")
|
|
BREAK
|
|
|
|
CASE DITCHED_THE_CARGO
|
|
CLEAR_PRINTS()
|
|
sFailString = "AW_FAILED_DTC"
|
|
//PRINT_GOD_TEXT("AW_FAILED_CBL")
|
|
BREAK
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
CASE FORCE_FAIL
|
|
//FAIL_GENERIC
|
|
CLEAR_PRINTS()
|
|
PRINT_GOD_TEXT("AW_FAILED")
|
|
BREAK
|
|
#ENDIF
|
|
ENDSWITCH
|
|
|
|
MISSION_FLOW_MISSION_FAILED_WITH_REASON(sFailString)
|
|
|
|
SET_MISSION_FLOW_FLAG_STATE(FLOWFLAG_HEIST_DOCKS_PRIME_BOARD_TRANSITION, FALSE)
|
|
IF GET_BUILDING_STATE(BUILDINGNAME_ES_FLOYDS_APPARTMENT_PICTURE) != BUILDINGSTATE_NORMAL
|
|
SET_BUILDING_STATE(BUILDINGNAME_ES_FLOYDS_APPARTMENT_PICTURE, BUILDINGSTATE_NORMAL)
|
|
ENDIF
|
|
IF GET_BUILDING_STATE(BUILDINGNAME_ES_FLOYDS_APPARTMENT_SHIT) != BUILDINGSTATE_NORMAL
|
|
SET_BUILDING_STATE(BUILDINGNAME_ES_FLOYDS_APPARTMENT_SHIT, BUILDINGSTATE_NORMAL)
|
|
ENDIF
|
|
IF GET_BUILDING_STATE(BUILDINGNAME_ES_FLOYDS_APPARTMENT_SHIT_SOFA) != BUILDINGSTATE_NORMAL
|
|
SET_BUILDING_STATE(BUILDINGNAME_ES_FLOYDS_APPARTMENT_SHIT_SOFA, BUILDINGSTATE_NORMAL)
|
|
ENDIF
|
|
// IF GET_BUILDING_STATE(BUILDINGNAME_ES_FLOYDS_APPARTMENT_RASPBERRY_JAM) != BUILDINGSTATE_NORMAL
|
|
// SET_BUILDING_STATE(BUILDINGNAME_ES_FLOYDS_APPARTMENT_RASPBERRY_JAM, BUILDINGSTATE_NORMAL)
|
|
// ENDIF
|
|
// IF GET_BUILDING_STATE(BUILDINGNAME_ES_FLOYDS_APPARTMENT_RASPBERRY_JAM_CUTSCENE) != BUILDINGSTATE_DESTROYED
|
|
// SET_BUILDING_STATE(BUILDINGNAME_ES_FLOYDS_APPARTMENT_RASPBERRY_JAM_CUTSCENE, BUILDINGSTATE_DESTROYED)
|
|
// ENDIF
|
|
|
|
WHILE NOT GET_MISSION_FLOW_SAFE_TO_CLEANUP()
|
|
//Maintain anything that could look weird during fade out (e.g. enemies walking off).
|
|
IF bAddedRopes
|
|
INT i = 0
|
|
REPEAT 8 i
|
|
STOP_ROPE_UNWINDING_FRONT(s_Crane.ropes[i])
|
|
STOP_ROPE_WINDING(s_Crane.ropes[i])
|
|
ENDREPEAT
|
|
ENDIF
|
|
WAIT(0)
|
|
ENDWHILE
|
|
|
|
RESET_PLAYER_HAS_CHANGE_CLOTHES_ON_MISSION(CHAR_TREVOR, bHasChanged)
|
|
RESTORE_MISSION_START_OUTFIT()
|
|
|
|
// Call RemovePlayerFromRestrictedVehicle() here if you need to
|
|
// 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
|
|
|
|
IF eFailedStage > MISSION_STAGE_1
|
|
VEHICLE_INDEX vehPlayer
|
|
IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
vehPlayer = GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID())
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(vehPlayer)
|
|
IF IS_VEHICLE_DRIVEABLE(vehPlayer)
|
|
IF IS_ENTITY_A_MISSION_ENTITY(vehPlayer)
|
|
IF NOT IS_ENTITY_DEAD(vehPlayer)
|
|
IF IS_VEHICLE_MODEL(vehPlayer, HANDLER)
|
|
OR IS_VEHICLE_MODEL(vehPlayer, HAULER)
|
|
OR IS_VEHICLE_MODEL(vehPlayer, FORKLIFT)
|
|
OR IS_VEHICLE_MODEL(vehPlayer, BARRACKS)
|
|
OR IS_VEHICLE_MODEL(vehPlayer, BARRACKS2)
|
|
//RemovePlayerFromRestrictedVehicle(vehPlayer)
|
|
ENDIF
|
|
IF GET_ENTITY_MODEL(vehPlayer) = GET_PLAYER_VEH_MODEL(CHAR_TREVOR)
|
|
SET_REPLAY_DECLINED_VEHICLE_WARP_LOCATION(<<27.8582, -2553.9465, 5.0001>>,263.0292)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
MISSION_FLOW_SET_FAIL_WARP_LOCATION(<<20.1336, -2536.1494, 5.0502>>,232.2569)
|
|
|
|
IF DOES_ENTITY_EXIST(vehPlayer)
|
|
IF IS_VEHICLE_DRIVEABLE(vehPlayer)
|
|
IF IS_VEHICLE_MODEL(vehPlayer, GET_PLAYER_VEH_MODEL(CHAR_TREVOR))
|
|
IF NOT IS_ENTITY_DEAD(vehPlayer)
|
|
IF IS_VEHICLE_SEAT_FREE(vehPlayer,VS_DRIVER)
|
|
SET_PED_INTO_VEHICLE(PLAYER_PED_ID(),vehPlayer)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
|
|
MISSION_CLEANUP() // must only take 1 frame and terminate the thread
|
|
ENDPROC
|
|
// ======================================================================
|
|
// Misc Procs
|
|
// ======================================================================
|
|
//
|
|
//FUNC PED_INDEX PLAYER_PED(SELECTOR_SLOTS_ENUM sSelectorSlots)
|
|
// PED_INDEX pedIndex
|
|
//
|
|
// IF sSelectorPeds.eCurrentSelectorPed = sSelectorSlots
|
|
// pedIndex = PLAYER_PED_ID()
|
|
// ELSE
|
|
// pedIndex = sSelectorPeds.pedID[sSelectorSlots]
|
|
// ENDIF
|
|
//
|
|
// RETURN pedIndex
|
|
//ENDFUNC
|
|
// all player peds block non-temporary events
|
|
PROC SET_PLAYER_PEDS_BLOCK_NON_TEMPORARY_EVENTS()
|
|
INT i
|
|
REPEAT COUNT_OF(sSelectorPeds.pedID) i
|
|
IF NOT IS_PED_INJURED(sSelectorPeds.pedID[i])
|
|
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(sSelectorPeds.pedID[i], TRUE)
|
|
ENDIF
|
|
ENDREPEAT
|
|
ENDPROC
|
|
|
|
PROC INHIBIT_ALL_CONTROLS_EXCEPT_THIS(CONTROL_ACTION eAction)
|
|
IF eAction = INPUT_FRONTEND_ACCEPT
|
|
DISABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_RIGHT_AXIS_Y)
|
|
DISABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_RIGHT_AXIS_X)
|
|
DISABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_AXIS_X)
|
|
DISABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_AXIS_Y)
|
|
ENDIF
|
|
IF eAction = INPUT_FRONTEND_RIGHT_AXIS_Y
|
|
DISABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_RIGHT_AXIS_X)
|
|
DISABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_AXIS_X)
|
|
DISABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_AXIS_Y)
|
|
DISABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_ACCEPT)
|
|
ENDIF
|
|
IF eAction = INPUT_FRONTEND_RIGHT_AXIS_X
|
|
DISABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_RIGHT_AXIS_Y)
|
|
DISABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_AXIS_X)
|
|
DISABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_AXIS_Y)
|
|
DISABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_ACCEPT)
|
|
ENDIF
|
|
IF eAction = INPUT_FRONTEND_AXIS_X
|
|
DISABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_RIGHT_AXIS_Y)
|
|
DISABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_RIGHT_AXIS_X)
|
|
DISABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_AXIS_Y)
|
|
DISABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_ACCEPT)
|
|
ENDIF
|
|
IF eAction = INPUT_FRONTEND_AXIS_Y
|
|
DISABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_RIGHT_AXIS_Y)
|
|
DISABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_RIGHT_AXIS_X)
|
|
DISABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_AXIS_X)
|
|
DISABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_ACCEPT)
|
|
ENDIF
|
|
//SPECIAL CASE
|
|
IF eAction = INPUT_FRONTEND_X
|
|
DISABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_AXIS_X)
|
|
DISABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_ACCEPT)
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
PROC INHIBIT_LOWERING_SPREADER()
|
|
|
|
IF NOT IS_ENTITY_DEAD(s_containers[0].obj_main)
|
|
AND NOT IS_ENTITY_DEAD(vehTrailer1)
|
|
// IF IS_ENTITY_TOUCHING_ENTITY(s_containers[0].obj_main,vehTrailer1)
|
|
// PRINTLN("@@@@@@@@@@ IS_ENTITY_TOUCHING_ENTITY(s_containers[0].obj_main,vehTrailer1) @@@@@@@@@@@@")
|
|
IF(GET_CONTROL_UNBOUND_NORMAL(FRONTEND_CONTROL, INPUT_SCRIPT_LEFT_AXIS_Y) < 0)
|
|
PRINTLN("@@@@@@@@@@ INHIBIT_CRANE @@@@@@@@@@@@")
|
|
INHIBIT_CRANE(CRANE_ACTION_SPREADER)
|
|
ENDIF
|
|
// ENDIF
|
|
ENDIF
|
|
|
|
IF NOT IS_ENTITY_DEAD(s_containers[0].obj_main)
|
|
AND NOT IS_ENTITY_DEAD(vehTrailer2)
|
|
// IF IS_ENTITY_TOUCHING_ENTITY(s_containers[0].obj_main,vehTrailer2)
|
|
// PRINTLN("@@@@@@@@@@ IS_ENTITY_TOUCHING_ENTITY(s_containers[0].obj_main,vehTrailer1) @@@@@@@@@@@@")
|
|
IF(GET_CONTROL_UNBOUND_NORMAL(FRONTEND_CONTROL, INPUT_SCRIPT_LEFT_AXIS_Y) < 0)
|
|
PRINTLN("@@@@@@@@@@ INHIBIT_CRANE @@@@@@@@@@@@")
|
|
INHIBIT_CRANE(CRANE_ACTION_SPREADER)
|
|
ENDIF
|
|
// ENDIF
|
|
ENDIF
|
|
|
|
IF NOT IS_ENTITY_DEAD(s_containers[1].obj_main)
|
|
AND NOT IS_ENTITY_DEAD(vehTrailer1)
|
|
// IF IS_ENTITY_TOUCHING_ENTITY(s_containers[1].obj_main,vehTrailer1)
|
|
// PRINTLN("@@@@@@@@@@ IS_ENTITY_TOUCHING_ENTITY(s_containers[0].obj_main,vehTrailer1) @@@@@@@@@@@@")
|
|
IF(GET_CONTROL_UNBOUND_NORMAL(FRONTEND_CONTROL, INPUT_SCRIPT_LEFT_AXIS_Y) < 0)
|
|
PRINTLN("@@@@@@@@@@ INHIBIT_CRANE @@@@@@@@@@@@")
|
|
INHIBIT_CRANE(CRANE_ACTION_SPREADER)
|
|
ENDIF
|
|
// ENDIF
|
|
ENDIF
|
|
|
|
IF NOT IS_ENTITY_DEAD(s_containers[1].obj_main)
|
|
AND NOT IS_ENTITY_DEAD(vehTrailer2)
|
|
// IF IS_ENTITY_TOUCHING_ENTITY(s_containers[1].obj_main,vehTrailer2)
|
|
// PRINTLN("@@@@@@@@@@ IS_ENTITY_TOUCHING_ENTITY(s_containers[0].obj_main,vehTrailer1) @@@@@@@@@@@@")
|
|
IF(GET_CONTROL_UNBOUND_NORMAL(FRONTEND_CONTROL, INPUT_SCRIPT_LEFT_AXIS_Y) < 0)
|
|
PRINTLN("@@@@@@@@@@ INHIBIT_CRANE @@@@@@@@@@@@")
|
|
INHIBIT_CRANE(CRANE_ACTION_SPREADER)
|
|
ENDIF
|
|
// ENDIF
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
PROC INHIBIT_LOWERING_SPREADER_IF_TOUCHING()
|
|
|
|
IF NOT IS_ENTITY_DEAD(s_containers[0].obj_main)
|
|
AND NOT IS_ENTITY_DEAD(vehTrailer1)
|
|
IF IS_ENTITY_TOUCHING_ENTITY(s_containers[0].obj_main,vehTrailer1)
|
|
PRINTLN("@@@@@@@@@@ IS_ENTITY_TOUCHING_ENTITY(s_containers[0].obj_main,vehTrailer1) @@@@@@@@@@@@")
|
|
IF(GET_CONTROL_UNBOUND_NORMAL(FRONTEND_CONTROL, INPUT_SCRIPT_LEFT_AXIS_Y) < 0)
|
|
PRINTLN("@@@@@@@@@@ INHIBIT_CRANE @@@@@@@@@@@@")
|
|
INHIBIT_CRANE(CRANE_ACTION_SPREADER)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT IS_ENTITY_DEAD(s_containers[0].obj_main)
|
|
AND NOT IS_ENTITY_DEAD(vehTrailer2)
|
|
IF IS_ENTITY_TOUCHING_ENTITY(s_containers[0].obj_main,vehTrailer2)
|
|
PRINTLN("@@@@@@@@@@ IS_ENTITY_TOUCHING_ENTITY(s_containers[0].obj_main,vehTrailer1) @@@@@@@@@@@@")
|
|
IF(GET_CONTROL_UNBOUND_NORMAL(FRONTEND_CONTROL, INPUT_SCRIPT_LEFT_AXIS_Y) < 0)
|
|
PRINTLN("@@@@@@@@@@ INHIBIT_CRANE @@@@@@@@@@@@")
|
|
INHIBIT_CRANE(CRANE_ACTION_SPREADER)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT IS_ENTITY_DEAD(s_containers[1].obj_main)
|
|
AND NOT IS_ENTITY_DEAD(vehTrailer1)
|
|
IF IS_ENTITY_TOUCHING_ENTITY(s_containers[1].obj_main,vehTrailer1)
|
|
PRINTLN("@@@@@@@@@@ IS_ENTITY_TOUCHING_ENTITY(s_containers[0].obj_main,vehTrailer1) @@@@@@@@@@@@")
|
|
IF(GET_CONTROL_UNBOUND_NORMAL(FRONTEND_CONTROL, INPUT_SCRIPT_LEFT_AXIS_Y) < 0)
|
|
PRINTLN("@@@@@@@@@@ INHIBIT_CRANE @@@@@@@@@@@@")
|
|
INHIBIT_CRANE(CRANE_ACTION_SPREADER)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT IS_ENTITY_DEAD(s_containers[1].obj_main)
|
|
AND NOT IS_ENTITY_DEAD(vehTrailer2)
|
|
IF IS_ENTITY_TOUCHING_ENTITY(s_containers[1].obj_main,vehTrailer2)
|
|
PRINTLN("@@@@@@@@@@ IS_ENTITY_TOUCHING_ENTITY(s_containers[0].obj_main,vehTrailer1) @@@@@@@@@@@@")
|
|
IF(GET_CONTROL_UNBOUND_NORMAL(FRONTEND_CONTROL, INPUT_SCRIPT_LEFT_AXIS_Y) < 0)
|
|
PRINTLN("@@@@@@@@@@ INHIBIT_CRANE @@@@@@@@@@@@")
|
|
INHIBIT_CRANE(CRANE_ACTION_SPREADER)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
PROC MANAGE_CRANE_HELP()
|
|
|
|
VECTOR v_cabin_pos
|
|
VECTOR v_container_pos_1
|
|
VECTOR v_container_pos_2
|
|
VECTOR v_spreader_pos
|
|
VECTOR vTemp
|
|
INT i
|
|
//FLOAT fTemp
|
|
|
|
SET_GAMEPLAY_CAM_RELATIVE_HEADING(fThisValue)
|
|
SET_GAMEPLAY_CAM_RELATIVE_HEADING(fThisValue)
|
|
|
|
INHIBIT_LOWERING_SPREADER_IF_TOUCHING()
|
|
|
|
//Full help text
|
|
IF iCraneHelp > 8
|
|
IF DOES_ENTITY_EXIST(s_crane.obj_spreader)
|
|
v_spreader_pos = GET_ENTITY_COORDS(s_crane.obj_spreader)
|
|
ENDIF
|
|
|
|
VECTOR vContainer1Pos
|
|
VECTOR vContainer2Pos
|
|
|
|
IF DOES_ENTITY_EXIST(s_containers[0].obj_main)
|
|
vContainer1Pos = GET_ENTITY_COORDS(s_containers[0].obj_main,FALSE)
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(s_containers[1].obj_main)
|
|
vContainer2Pos = GET_ENTITY_COORDS(s_containers[1].obj_main,FALSE)
|
|
ENDIF
|
|
|
|
IF CAN_CRANE_PICK_UP_CONTAINER(vContainer1Pos, v_spreader_pos)
|
|
OR CAN_CRANE_PICK_UP_CONTAINER(vContainer2Pos, v_spreader_pos)
|
|
IF s_crane.b_container_attached = FALSE
|
|
IF iCraneHelp < 15
|
|
IF NOT IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("CRH_PICKUC")
|
|
PRINT_HELP_FOREVER("CRH_PICKUC")
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF b_is_crane_cinematic_active
|
|
IF NOT IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("CRH_H3A")
|
|
PRINT_HELP_FOREVER("CRH_H3A")
|
|
ENDIF
|
|
ELSE
|
|
IF NOT IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("CRH_H3B")
|
|
PRINT_HELP_FOREVER("CRH_H3B")
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF s_crane.b_container_attached = TRUE
|
|
IF DOES_ENTITY_EXIST(s_containers[1].obj_main)
|
|
IF NOT IS_ENTITY_DEAD(s_containers[1].obj_main)
|
|
AND NOT IS_ENTITY_DEAD(vehTrailer2)
|
|
IF IS_ENTITY_AT_ENTITY(s_containers[1].obj_main,vehTrailer2,<<1.5,1,1>>)
|
|
INHIBIT_LOWERING_SPREADER()
|
|
IF iCraneHelp < 15
|
|
IF NOT IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("CRH_RELC")
|
|
PRINT_HELP_FOREVER("CRH_RELC")
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF b_is_crane_cinematic_active
|
|
IF NOT IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("CRH_H3A")
|
|
PRINT_HELP_FOREVER("CRH_H3A")
|
|
ENDIF
|
|
ELSE
|
|
IF NOT IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("CRH_H3B")
|
|
PRINT_HELP_FOREVER("CRH_H3B")
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF DOES_ENTITY_EXIST(s_containers[0].obj_main)
|
|
IF NOT IS_ENTITY_DEAD(s_containers[0].obj_main)
|
|
AND NOT IS_ENTITY_DEAD(vehTrailer2)
|
|
IF IS_ENTITY_AT_ENTITY(s_containers[0].obj_main,vehTrailer2,<<1.5,1,1>>)
|
|
INHIBIT_LOWERING_SPREADER()
|
|
IF NOT IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("CRH_RELC")
|
|
PRINT_HELP_FOREVER("CRH_RELC")
|
|
ENDIF
|
|
ELSE
|
|
IF b_is_crane_cinematic_active
|
|
IF NOT IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("CRH_H3A")
|
|
PRINT_HELP_FOREVER("CRH_H3A")
|
|
ENDIF
|
|
ELSE
|
|
IF NOT IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("CRH_H3B")
|
|
PRINT_HELP_FOREVER("CRH_H3B")
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF b_is_crane_cinematic_active
|
|
IF NOT IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("CRH_H3A")
|
|
PRINT_HELP_FOREVER("CRH_H3A")
|
|
ENDIF
|
|
ELSE
|
|
IF NOT IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("CRH_H3B")
|
|
PRINT_HELP_FOREVER("CRH_H3B")
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
|
|
|
|
ENDIF
|
|
|
|
//Use ~INPUT_SCRIPT_RIGHT_AXIS_Y~ to move crane.~n~
|
|
//Use ~INPUT_SCRIPT_RIGHT_AXIS_X~ to move cabin.~n~
|
|
//Use ~INPUT_SCRIPT_LEFT_AXIS_Y~ to move spreader.~s~
|
|
IF iCraneHelp = 5
|
|
IF b_is_crane_cinematic_active
|
|
IF NOT IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("CRH_HELP2A")
|
|
PRINT_HELP_FOREVER("CRH_HELP2A")
|
|
ENDIF
|
|
ELSE
|
|
IF NOT IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("CRH_HELP2B")
|
|
PRINT_HELP_FOREVER("CRH_HELP2B")
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//~s~Use ~PAD_LSTICK_LEFTRIGHT~ to move the cabin.~n~
|
|
//~s~Use ~PAD_RSTICK_UPDOWN~ to move the spreader.~s~
|
|
IF iCraneHelp = 6
|
|
IF ABSF(v_spreader_pos.x - vTemp.x) < 5.0
|
|
|
|
ENDIF
|
|
IF b_is_crane_cinematic_active
|
|
IF NOT IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("CRH_HELP3A")
|
|
PRINT_HELP_FOREVER("CRH_HELP3A")
|
|
ENDIF
|
|
ELSE
|
|
IF NOT IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("CRH_HELP3B")
|
|
PRINT_HELP_FOREVER("CRH_HELP3B")
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//~s~Use ~PAD_LSTICK_LEFTRIGHT~ to move the crane.~s~
|
|
IF iCraneHelp = 1
|
|
IF b_is_crane_cinematic_active
|
|
IF NOT IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("CRH_H1A")
|
|
PRINT_HELP_FOREVER("CRH_H1A")
|
|
ENDIF
|
|
ELSE
|
|
IF NOT IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("CRH_H1B")
|
|
PRINT_HELP_FOREVER("CRH_H1B")
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF iCraneHelp > 8
|
|
IF IS_VEHICLE_DRIVEABLE(vehFirstHauler)
|
|
IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(vehFirstHauler)
|
|
//PRINTSTRING("Trailer Position:")PRINTFLOAT(GET_TIME_POSITION_IN_RECORDING(vehFirstHauler))PRINTNL()
|
|
IF GET_TIME_POSITION_IN_RECORDING(vehFirstHauler) > 9757.000000
|
|
IF DOES_ENTITY_EXIST(vehTrailer1)
|
|
DELETE_VEHICLE(vehTrailer1)
|
|
ENDIF
|
|
IF DOES_ENTITY_EXIST(vehFirstHauler)
|
|
DELETE_VEHICLE(vehFirstHauler)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//BLIPS
|
|
IF iCraneHelp > 10 AND iCraneHelp < 15
|
|
IF s_crane.b_container_attached
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(vehTrailer2)
|
|
IF NOT DOES_BLIP_EXIST(dest_blip)
|
|
dest_blip = CREATE_BLIP_FOR_COORD(GET_ENTITY_COORDS(vehTrailer2))
|
|
SET_ENTITY_PROOFS(vehTrailer2,TRUE,TRUE,TRUE,TRUE,TRUE)
|
|
SET_BLIP_COLOUR(dest_blip,BLIP_COLOUR_BLUE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DOES_BLIP_EXIST(container0_blip)
|
|
REMOVE_BLIP(container0_blip)
|
|
ENDIF
|
|
|
|
IF DOES_BLIP_EXIST(container1_blip)
|
|
REMOVE_BLIP(container1_blip)
|
|
ENDIF
|
|
ELSE
|
|
IF DOES_BLIP_EXIST(dest_blip)
|
|
REMOVE_BLIP(dest_blip)
|
|
ENDIF
|
|
|
|
IF bCrate0Attached = FALSE
|
|
IF DOES_ENTITY_EXIST(s_containers[0].obj_main)
|
|
IF NOT DOES_BLIP_EXIST(container0_blip)
|
|
AND NOT DOES_BLIP_EXIST(GET_BLIP_FROM_ENTITY(s_containers[0].obj_main))
|
|
container0_blip = CREATE_BLIP_FOR_ENTITY(s_containers[0].obj_main)
|
|
SET_BLIP_COLOUR(container0_blip,BLIP_COLOUR_GREEN)
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF DOES_BLIP_EXIST(container0_blip)
|
|
REMOVE_BLIP(container0_blip)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF bCrate1Attached = FALSE
|
|
IF DOES_ENTITY_EXIST(s_containers[1].obj_main)
|
|
IF NOT DOES_BLIP_EXIST(container1_blip)
|
|
AND NOT DOES_BLIP_EXIST(GET_BLIP_FROM_ENTITY(s_containers[1].obj_main))
|
|
container1_blip = CREATE_BLIP_FOR_ENTITY(s_containers[1].obj_main)
|
|
SET_BLIP_COLOUR(container1_blip,BLIP_COLOUR_GREEN)
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF DOES_BLIP_EXIST(container1_blip)
|
|
REMOVE_BLIP(container1_blip)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF iCraneHelp > 0
|
|
|
|
IF s_crane.b_container_attached
|
|
|
|
IF DOES_BLIP_EXIST(container0_blip)
|
|
REMOVE_BLIP(container0_blip)
|
|
ENDIF
|
|
|
|
IF DOES_BLIP_EXIST(container1_blip)
|
|
REMOVE_BLIP(container1_blip)
|
|
ENDIF
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(vehTrailer1)
|
|
IF NOT DOES_BLIP_EXIST(dest_blip)
|
|
dest_blip = CREATE_BLIP_FOR_COORD(GET_ENTITY_COORDS(vehTrailer1))
|
|
SET_BLIP_COLOUR(dest_blip,BLIP_COLOUR_BLUE)
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
|
|
IF DOES_BLIP_EXIST(dest_blip)
|
|
REMOVE_BLIP(dest_blip)
|
|
ENDIF
|
|
|
|
IF bCrate0Attached = FALSE
|
|
IF NOT DOES_BLIP_EXIST(container0_blip)
|
|
IF DOES_ENTITY_EXIST(s_containers[0].obj_main)
|
|
container0_blip = CREATE_BLIP_FOR_ENTITY(s_containers[0].obj_main)
|
|
SET_BLIP_COLOUR(container0_blip,BLIP_COLOUR_GREEN)
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF DOES_BLIP_EXIST(container0_blip)
|
|
REMOVE_BLIP(container0_blip)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF bCrate1Attached = FALSE
|
|
IF NOT DOES_BLIP_EXIST(container1_blip)
|
|
IF DOES_ENTITY_EXIST(s_containers[1].obj_main)
|
|
container1_blip = CREATE_BLIP_FOR_ENTITY(s_containers[1].obj_main)
|
|
SET_BLIP_COLOUR(container1_blip,BLIP_COLOUR_GREEN)
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF DOES_BLIP_EXIST(container1_blip)
|
|
REMOVE_BLIP(container1_blip)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//HIDE_HUD_AND_RADAR_THIS_FRAME()
|
|
|
|
#IF IS_DEBUG_BUILD // debug controls
|
|
//PRINTSTRING("iCraneHelp:")PRINTINT(iCraneHelp)PRINTNL()
|
|
//PRINTSTRING("s_crane.b_container_attached:")PRINTBOOL(s_crane.b_container_attached)PRINTNL()
|
|
//PRINTSTRING("Cabin Position:")PRINTVECTOR(GET_ENTITY_COORDS(s_crane.obj_cabin))PRINTNL()
|
|
#ENDIF
|
|
|
|
//LIGHTS
|
|
IF HAS_LABEL_BEEN_TRIGGERED("DS1_10a")
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_10a2")
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_10a2", CONV_PRIORITY_MEDIUM)
|
|
SET_LABEL_AS_TRIGGERED("DS1_10a2",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
SWITCH iCraneHelp
|
|
|
|
CASE 0
|
|
|
|
IF NOT IS_AUDIO_SCENE_ACTIVE("DOCKS_HEIST_USING_CRANE")
|
|
START_AUDIO_SCENE("DOCKS_HEIST_USING_CRANE")
|
|
ENDIF
|
|
|
|
REQUEST_ANIM_DICT("missheistdockssetup1trevor_crane")
|
|
|
|
INHIBIT_CRANE(CRANE_ACTION_CABIN)
|
|
INHIBIT_CRANE(CRANE_ACTION_SPREADER)
|
|
INHIBIT_CRANE(CRANE_ACTION_CRANE)
|
|
INHIBIT_CRANE(CRANE_ACTION_GRABBER)
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_10")
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_10", CONV_PRIORITY_MEDIUM)
|
|
SET_LABEL_AS_TRIGGERED("DS1_10",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_DIALOGUE_IF_SUBTITLES_OFF)
|
|
PRINT_GOD_TEXT("AW_GRAB_CR")
|
|
container0_blip = CREATE_BLIP_FOR_ENTITY(s_containers[0].obj_main)
|
|
container1_blip = CREATE_BLIP_FOR_ENTITY(s_containers[1].obj_main)
|
|
SET_BLIP_COLOUR(container0_blip,BLIP_COLOUR_GREEN)
|
|
SET_BLIP_COLOUR(container1_blip,BLIP_COLOUR_GREEN)
|
|
|
|
//~s~Use ~PAD_LSTICK_UPDOWN~ to move the cabin.~n~
|
|
//Press ~PAD_BACK~ to change view.~s~
|
|
IF b_is_crane_cinematic_active
|
|
IF NOT IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("CRH_H1A")
|
|
PRINT_HELP_FOREVER("CRH_H1A")
|
|
ENDIF
|
|
ELSE
|
|
IF NOT IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("CRH_H1B")
|
|
PRINT_HELP_FOREVER("CRH_H1B")
|
|
ENDIF
|
|
ENDIF
|
|
SET_PLAYER_CONTROL(PLAYER_ID(),FALSE)
|
|
HANG_UP_AND_PUT_AWAY_PHONE(TRUE)
|
|
SETTIMERA(0)
|
|
bForceNoGrab = FALSE
|
|
iCraneHelpTimer = GET_GAME_TIMER()
|
|
vInitialCabinPosition = GET_ENTITY_COORDS(s_crane.obj_cabin, FALSE)
|
|
iCraneHelp++
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 1
|
|
|
|
IF MANAGE_MY_TIMER(iCraneHelpTimer,200)
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_10a")
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_10a", CONV_PRIORITY_MEDIUM)
|
|
SET_LABEL_AS_TRIGGERED("DS1_10a",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
|
|
ENDIF
|
|
|
|
v_cabin_pos = GET_ENTITY_COORDS(s_crane.obj_cabin, FALSE)
|
|
v_container_pos_1 = GET_ENTITY_COORDS(s_containers[0].obj_main, FALSE)
|
|
v_container_pos_2 = GET_ENTITY_COORDS(s_containers[1].obj_main, FALSE)
|
|
|
|
IF VDIST(vInitialCabinPosition,v_cabin_pos) > 1.0
|
|
OR ABSF(v_cabin_pos.x - v_container_pos_1.x) < 1.0
|
|
OR ABSF(v_cabin_pos.x - v_container_pos_2.x) < 1.0
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(s_crane.obj_spreader)
|
|
v_spreader_pos = GET_ENTITY_COORDS(s_crane.obj_spreader)
|
|
ENDIF
|
|
|
|
IF CAN_CRANE_PICK_UP_CONTAINER(GET_ENTITY_COORDS(s_containers[0].obj_main, FALSE), v_spreader_pos)
|
|
OR CAN_CRANE_PICK_UP_CONTAINER(GET_ENTITY_COORDS(s_containers[1].obj_main, FALSE), v_spreader_pos)
|
|
CLEAR_HELP()
|
|
//~s~Use ~PAD_RSTICK_UPDOWN~ to move the spreader.~s~
|
|
IF NOT IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("CRH_SPR")
|
|
PRINT_HELP_FOREVER("CRH_SPR")
|
|
ENDIF
|
|
|
|
iCraneHelpTimer = GET_GAME_TIMER()
|
|
vInitialCabinPosition = GET_ENTITY_COORDS(s_crane.obj_cabin, FALSE)
|
|
INHIBIT_CRANE(CRANE_ACTION_GRABBER)
|
|
iCraneHelp++
|
|
ENDIF
|
|
|
|
//IF ABSF(v_cabin_pos.y - -2418.09) < 0.01
|
|
IF v_cabin_pos.y < -2418.09
|
|
OR v_cabin_pos.y > -2413.05
|
|
CLEAR_HELP()
|
|
//~s~Use ~PAD_RSTICK_UPDOWN~ to move the spreader.~s~
|
|
IF NOT IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("CRH_SPR")
|
|
PRINT_HELP_FOREVER("CRH_SPR")
|
|
ENDIF
|
|
|
|
iCraneHelpTimer = GET_GAME_TIMER()
|
|
vInitialCabinPosition = GET_ENTITY_COORDS(s_crane.obj_cabin, FALSE)
|
|
INHIBIT_CRANE(CRANE_ACTION_GRABBER)
|
|
iCraneHelp++
|
|
ELSE
|
|
INHIBIT_CRANE(CRANE_ACTION_GRABBER)
|
|
ENDIF
|
|
ELSE
|
|
INHIBIT_CRANE(CRANE_ACTION_CABIN)
|
|
INHIBIT_CRANE(CRANE_ACTION_SPREADER)
|
|
INHIBIT_CRANE(CRANE_ACTION_CRANE)
|
|
INHIBIT_CRANE(CRANE_ACTION_GRABBER)
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 2
|
|
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_10b")
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_10b", CONV_PRIORITY_MEDIUM)
|
|
SET_LABEL_AS_TRIGGERED("DS1_10b",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
iCraneHelp++
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 3
|
|
IF MANAGE_MY_TIMER(iCraneHelpTimer,1000)
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_10c")
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_10c", CONV_PRIORITY_MEDIUM)
|
|
SET_LABEL_AS_TRIGGERED("DS1_10c",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
IF DOES_ENTITY_EXIST(s_crane.obj_spreader)
|
|
v_spreader_pos = GET_ENTITY_COORDS(s_crane.obj_spreader)
|
|
ENDIF
|
|
IF CAN_CRANE_PICK_UP_CONTAINER(GET_ENTITY_COORDS(s_containers[0].obj_main, FALSE), v_spreader_pos)
|
|
OR CAN_CRANE_PICK_UP_CONTAINER(GET_ENTITY_COORDS(s_containers[1].obj_main, FALSE), v_spreader_pos)
|
|
IF IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("CRH_SPR")
|
|
CLEAR_HELP()
|
|
ENDIF
|
|
IF IS_THIS_PRINT_BEING_DISPLAYED("AW_GRAB_CR")
|
|
CLEAR_PRINTS()
|
|
ENDIF
|
|
//PRINT_GOD_TEXT("AW_CRA_DIA3")
|
|
//PICK UP CONTAINER
|
|
//~s~Press ~PAD_A~ to pick up a container.~s~
|
|
IF NOT IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("CRH_PICKUC")
|
|
PRINT_HELP_FOREVER("CRH_PICKUC")
|
|
ENDIF
|
|
SETTIMERA(0)
|
|
iCraneHelp++
|
|
ELSE
|
|
//INHIBIT_CRANE(CRANE_ACTION_CABIN)
|
|
//INHIBIT_CRANE(CRANE_ACTION_CRANE)
|
|
INHIBIT_CRANE(CRANE_ACTION_GRABBER)
|
|
ENDIF
|
|
ELSE
|
|
INHIBIT_CRANE(CRANE_ACTION_CABIN)
|
|
INHIBIT_CRANE(CRANE_ACTION_SPREADER)
|
|
INHIBIT_CRANE(CRANE_ACTION_CRANE)
|
|
INHIBIT_CRANE(CRANE_ACTION_GRABBER)
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 4
|
|
IF s_crane.b_container_attached
|
|
IF IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("CRH_PICKUC")
|
|
CLEAR_HELP()
|
|
ENDIF
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(vehTrailer1)
|
|
SET_ENTITY_INVINCIBLE(vehTrailer1,TRUE)
|
|
FREEZE_ENTITY_POSITION(vehTrailer1,TRUE)
|
|
SET_ENTITY_INVINCIBLE(vehTrailer1,TRUE)
|
|
SET_ENTITY_PROOFS(vehTrailer1,TRUE,TRUE,TRUE,TRUE,TRUE)
|
|
ENDIF
|
|
|
|
REMOVE_BLIP(container0_blip)
|
|
REMOVE_BLIP(container1_blip)
|
|
//PRINT_GOD_TEXT("AW_CRA_DIA4")
|
|
//LSTICK MOVE CRANE UP DOWN
|
|
IF b_is_crane_cinematic_active
|
|
IF NOT IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("CRH_HELP2A")
|
|
PRINT_HELP_FOREVER("CRH_HELP2A")
|
|
ENDIF
|
|
ELSE
|
|
IF NOT IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("CRH_HELP2B")
|
|
PRINT_HELP_FOREVER("CRH_HELP2B")
|
|
ENDIF
|
|
ENDIF
|
|
iCraneHelp++
|
|
ELSE
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_10d")
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_10d", CONV_PRIORITY_MEDIUM)
|
|
SET_LABEL_AS_TRIGGERED("DS1_10d",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
//INHIBIT_CRANE(CRANE_ACTION_CABIN)
|
|
//INHIBIT_CRANE(CRANE_ACTION_SPREADER)
|
|
//INHIBIT_CRANE(CRANE_ACTION_CRANE)
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 5
|
|
IF s_crane.b_container_attached
|
|
IF s_crane.f_crane_offset < -55
|
|
IF IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("CRH_HELP2A")
|
|
CLEAR_HELP()
|
|
ENDIF
|
|
IF DOES_ENTITY_EXIST(vehTrailer1)
|
|
SET_ENTITY_INVINCIBLE(vehTrailer1,TRUE)
|
|
ENDIF
|
|
DELETE_VEHICLE(vehFloydTruck)
|
|
DELETE_VEHICLE(vehTrailer2)
|
|
//INHIBIT_CRANE(CRANE_ACTION_CABIN)
|
|
//INHIBIT_CRANE(CRANE_ACTION_SPREADER)
|
|
//INHIBIT_CRANE(CRANE_ACTION_CRANE)
|
|
INHIBIT_CRANE(CRANE_ACTION_GRABBER)
|
|
iCraneHelp++
|
|
ELSE
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_10e")
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_10e", CONV_PRIORITY_MEDIUM)
|
|
REPLAY_RECORD_BACK_FOR_TIME(5.0, 5.0, REPLAY_IMPORTANCE_HIGHEST)
|
|
SET_LABEL_AS_TRIGGERED("DS1_10e",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
IF HAS_LABEL_BEEN_TRIGGERED("DS1_10e")
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_10e3")
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_10e3", CONV_PRIORITY_MEDIUM)
|
|
SET_LABEL_AS_TRIGGERED("DS1_10e3",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_10e5")
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_10e5", CONV_PRIORITY_MEDIUM)
|
|
SET_LABEL_AS_TRIGGERED("DS1_10e5",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
INHIBIT_CRANE(CRANE_ACTION_GRABBER)
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
//In position for dropping crate
|
|
CASE 6
|
|
IF NOT IS_ENTITY_DEAD(s_containers[1].obj_main)
|
|
AND NOT IS_ENTITY_DEAD(s_containers[0].obj_main)
|
|
AND NOT IS_ENTITY_DEAD(vehTrailer1)
|
|
IF (IS_ENTITY_AT_ENTITY(s_containers[1].obj_main,vehTrailer1,<<1.5,1,1>>) AND GET_ENTITY_SPEED(s_containers[1].obj_main) < 0.3)
|
|
OR (IS_ENTITY_AT_ENTITY(s_containers[0].obj_main,vehTrailer1,<<1.5,1,1>>) AND GET_ENTITY_SPEED(s_containers[0].obj_main) < 0.3)
|
|
IF NOT IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("CRH_RELC")
|
|
PRINT_HELP_FOREVER("CRH_RELC")
|
|
ENDIF
|
|
INHIBIT_LOWERING_SPREADER()
|
|
INHIBIT_CRANE(CRANE_ACTION_GRABBER)
|
|
iCraneHelp++
|
|
ELSE
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_10f")
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_10f", CONV_PRIORITY_MEDIUM)
|
|
SET_LABEL_AS_TRIGGERED("DS1_10f",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF HAS_LABEL_BEEN_TRIGGERED("DS1_10f")
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_10e2")
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_10e2", CONV_PRIORITY_MEDIUM)
|
|
SET_LABEL_AS_TRIGGERED("DS1_10e2",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
INHIBIT_CRANE(CRANE_ACTION_GRABBER)
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
//Drop off crate
|
|
CASE 7
|
|
|
|
IF NOT IS_ENTITY_DEAD(s_containers[1].obj_main)
|
|
AND NOT IS_ENTITY_DEAD(s_containers[0].obj_main)
|
|
AND NOT IS_ENTITY_DEAD(vehTrailer1)
|
|
IF (IS_ENTITY_AT_ENTITY(s_containers[1].obj_main,vehTrailer1,<<1.5,1,1>>) AND GET_ENTITY_SPEED(s_containers[1].obj_main) < 0.3)
|
|
OR (IS_ENTITY_AT_ENTITY(s_containers[0].obj_main,vehTrailer1,<<1.5,1,1>>) AND GET_ENTITY_SPEED(s_containers[0].obj_main) < 0.3)
|
|
INHIBIT_LOWERING_SPREADER()
|
|
IF s_crane.b_container_attached = FALSE
|
|
IF IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("CRH_RELC")
|
|
CLEAR_HELP()
|
|
ENDIF
|
|
INHIBIT_CRANE(CRANE_ACTION_GRABBER)
|
|
INHIBIT_CRANE(CRANE_ACTION_CABIN)
|
|
INHIBIT_CRANE(CRANE_ACTION_SPREADER)
|
|
INHIBIT_CRANE(CRANE_ACTION_CRANE)
|
|
iCraneHelp++
|
|
ENDIF
|
|
ELSE
|
|
INHIBIT_CRANE(CRANE_ACTION_GRABBER)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF HAS_LABEL_BEEN_TRIGGERED("DS1_10f")
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_10e2")
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_10e2", CONV_PRIORITY_MEDIUM)
|
|
SET_LABEL_AS_TRIGGERED("DS1_10e2",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// IF IS_VEHICLE_DRIVEABLE(vehTrailer1)
|
|
// IF IS_VEHICLE_DRIVEABLE(vehFirstHauler)
|
|
// IF ABSF(v_spreader_pos.x - vTemp.x ) < 0.8
|
|
// AND ABSF(v_spreader_pos.y - vTemp.y ) < 0.4
|
|
// AND ABSF(v_spreader_pos.z - vTemp.z ) < 4.2
|
|
// IF s_crane.b_container_attached = FALSE
|
|
// IF IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("CRH_RELC")
|
|
// CLEAR_HELP()
|
|
// ENDIF
|
|
// INHIBIT_CRANE(CRANE_ACTION_GRABBER)
|
|
// INHIBIT_CRANE(CRANE_ACTION_CABIN)
|
|
// INHIBIT_CRANE(CRANE_ACTION_SPREADER)
|
|
// INHIBIT_CRANE(CRANE_ACTION_CRANE)
|
|
// iCraneHelp++
|
|
//
|
|
// ENDIF
|
|
// ELSE
|
|
// INHIBIT_CRANE(CRANE_ACTION_GRABBER)
|
|
// ENDIF
|
|
// ENDIF
|
|
// ENDIF
|
|
BREAK
|
|
|
|
//Crate dropped off
|
|
CASE 8
|
|
VECTOR vTempOffset1
|
|
IF IS_VEHICLE_DRIVEABLE(vehTrailer1)
|
|
IF s_crane.b_container_attached = FALSE
|
|
IF DOES_BLIP_EXIST(dest_blip)
|
|
REMOVE_BLIP(dest_blip)
|
|
ENDIF
|
|
// IF NOT DOES_BLIP_EXIST(dest_blip)
|
|
// dest_blip = CREATE_BLIP_FOR_ENTITY(s_containers[1].obj_main)
|
|
// ENDIF
|
|
IF DOES_ENTITY_EXIST(vehTrailer1)
|
|
IF NOT IS_ENTITY_DEAD(s_containers[1].obj_main)
|
|
IF IS_ENTITY_AT_ENTITY(s_containers[1].obj_main,vehTrailer1,<<1.5,1,1>>)
|
|
INHIBIT_LOWERING_SPREADER()
|
|
IF GET_ENTITY_SPEED(s_containers[1].obj_main) < 0.3
|
|
IF NOT DOES_BLIP_EXIST(container0_blip)
|
|
container0_blip = CREATE_BLIP_FOR_ENTITY(s_containers[0].obj_main)
|
|
ENDIF
|
|
|
|
REMOVE_BLIP(dest_blip)
|
|
|
|
IF DOES_BLIP_EXIST(container1_blip)
|
|
REMOVE_BLIP(container1_blip)
|
|
ENDIF
|
|
|
|
vTempOffset1 = GET_OFFSET_FROM_ENTITY_GIVEN_WORLD_COORDS(vehTrailer1,GET_ENTITY_COORDS(s_containers[1].obj_main))
|
|
ATTACH_ENTITY_TO_ENTITY(s_containers[1].obj_main,vehTrailer1,0,vTempOffset1,<<0,0,0>>,TRUE,FALSE,FALSE)
|
|
|
|
bCrate1Attached = TRUE
|
|
bForceNoGrab = TRUE
|
|
s_Containers[1].b_loaded_on_truck = TRUE
|
|
ENDIF
|
|
ELSE
|
|
IF NOT IS_ENTITY_ATTACHED(s_containers[1].obj_main)
|
|
IF GET_ENTITY_SPEED(s_containers[1].obj_main) < 0.2
|
|
IF IS_ENTITY_AT_ENTITY(s_containers[1].obj_main,vehTrailer1,<<10.5,2,10>>)
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_10l")
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_10l", CONV_PRIORITY_MEDIUM)
|
|
SET_LABEL_AS_TRIGGERED("DS1_10l",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
IF NOT IS_ENTITY_DEAD(s_containers[0].obj_main)
|
|
IF IS_ENTITY_AT_ENTITY(s_containers[0].obj_main,vehTrailer1,<<1.5,1,1>>)
|
|
INHIBIT_LOWERING_SPREADER()
|
|
IF GET_ENTITY_SPEED(s_containers[0].obj_main) < 0.3
|
|
|
|
IF NOT DOES_BLIP_EXIST(container1_blip)
|
|
container1_blip = CREATE_BLIP_FOR_ENTITY(s_containers[1].obj_main)
|
|
ENDIF
|
|
|
|
IF DOES_BLIP_EXIST(container0_blip)
|
|
REMOVE_BLIP(container0_blip)
|
|
ENDIF
|
|
|
|
REMOVE_BLIP(dest_blip)
|
|
vTempOffset1 = GET_OFFSET_FROM_ENTITY_GIVEN_WORLD_COORDS(vehTrailer1,GET_ENTITY_COORDS(s_containers[0].obj_main))
|
|
ATTACH_ENTITY_TO_ENTITY(s_containers[0].obj_main,vehTrailer1,0,vTempOffset1,<<0,0,0>>,TRUE,FALSE,FALSE)
|
|
FREEZE_ENTITY_POSITION(vehFirstHauler,FALSE)
|
|
FREEZE_ENTITY_POSITION(vehTrailer1,FALSE)
|
|
bCrate0Attached = TRUE
|
|
bForceNoGrab = TRUE
|
|
s_Containers[0].b_loaded_on_truck = TRUE
|
|
|
|
ENDIF
|
|
ELSE
|
|
IF NOT IS_ENTITY_ATTACHED(s_containers[0].obj_main)
|
|
IF GET_ENTITY_SPEED(s_containers[0].obj_main) < 0.2
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_10l")
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_10l", CONV_PRIORITY_MEDIUM)
|
|
SET_LABEL_AS_TRIGGERED("DS1_10l",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF bCrate0Attached OR bCrate1Attached
|
|
INHIBIT_CRANE(CRANE_ACTION_SPREADER)
|
|
INHIBIT_CRANE(CRANE_ACTION_GRABBER)
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_10f3")
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_10f3", CONV_PRIORITY_MEDIUM)
|
|
REPLAY_RECORD_BACK_FOR_TIME(5.0, 5.0, REPLAY_IMPORTANCE_HIGHEST)
|
|
SET_LABEL_AS_TRIGGERED("DS1_10f3",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF IS_VEHICLE_DRIVEABLE(vehFirstHauler)
|
|
//Start vehicle recording.
|
|
IF IS_ENTITY_ATTACHED_TO_ENTITY(vehTrailer1,s_containers[0].obj_main) OR IS_ENTITY_ATTACHED_TO_ENTITY(vehTrailer1,s_containers[1].obj_main)
|
|
IF HAS_VEHICLE_RECORDING_BEEN_LOADED(2,"AWDocks1")
|
|
FREEZE_ENTITY_POSITION(vehFirstHauler,FALSE)
|
|
FREEZE_ENTITY_POSITION(vehTrailer1,FALSE)
|
|
START_PLAYBACK_RECORDED_VEHICLE(vehFirstHauler,2,"AWDocks1")
|
|
SET_PLAYER_CONTROL(PLAYER_ID(),TRUE)
|
|
bInhibitCrane = TRUE
|
|
iCraneTimer = GET_GAME_TIMER()
|
|
bFakeSound = TRUE
|
|
SET_LABEL_AS_TRIGGERED("DS1_10l",FALSE)
|
|
iCraneHelp++
|
|
ELSE
|
|
REQUEST_VEHICLE_RECORDING(2,"AWDocks1")
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
INHIBIT_CRANE(CRANE_ACTION_CABIN)
|
|
INHIBIT_CRANE(CRANE_ACTION_SPREADER)
|
|
INHIBIT_CRANE(CRANE_ACTION_CRANE)
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
//So you can watch the truck leaving
|
|
CASE 9
|
|
INHIBIT_CRANE(CRANE_ACTION_GRABBER)
|
|
INHIBIT_CRANE(CRANE_ACTION_SPREADER)
|
|
//1542589
|
|
//inhibting spreader
|
|
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_10g")
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_10g", CONV_PRIORITY_MEDIUM)
|
|
SET_LABEL_AS_TRIGGERED("DS1_10g",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
IF NOT MANAGE_MY_TIMER(iCraneTimer, 1000)
|
|
REPEAT 8 i
|
|
STOP_ROPE_UNWINDING_FRONT(s_crane.ropes[i])
|
|
START_ROPE_WINDING(s_crane.ropes[i])
|
|
ENDREPEAT
|
|
|
|
IF HAS_SOUND_FINISHED(s_Crane.i_spreader_sound_id)
|
|
PLAY_SOUND_FROM_ENTITY(s_Crane.i_spreader_sound_id, "CRANE_MOVE_U_D", s_Crane.obj_spreader)
|
|
//PRINTLN("SPREADER AUDIO PLAYING")//PRINTNL()
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF MANAGE_MY_TIMER(iCraneTimer,5000)
|
|
bFakeSound = FALSE
|
|
bInhibitCrane = FALSE
|
|
SET_PLAYER_CONTROL(PLAYER_ID(),TRUE)
|
|
iCraneTimer = GET_GAME_TIMER()
|
|
iCraneHelp++
|
|
ENDIF
|
|
BREAK
|
|
|
|
//Picked up another container
|
|
CASE 10
|
|
//1542589
|
|
//inhibting grabber until you are past
|
|
//INHIBIT_CRANE(CRANE_ACTION_GRABBER)
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_10g")
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_10g", CONV_PRIORITY_MEDIUM)
|
|
SET_LABEL_AS_TRIGGERED("DS1_10g",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_10g2")
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_10g2", CONV_PRIORITY_MEDIUM)
|
|
SET_LABEL_AS_TRIGGERED("DS1_10g2",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF MANAGE_MY_TIMER(iCraneTimer,3000)
|
|
bForceNoGrab = FALSE
|
|
ENDIF
|
|
|
|
IF s_crane.b_container_attached
|
|
INHIBIT_CRANE(CRANE_ACTION_GRABBER)
|
|
ENDIF
|
|
|
|
IF s_crane.b_container_attached OR s_crane.f_crane_offset > -22
|
|
CLEAR_PRINTS()
|
|
//PRINT_GOD_TEXT("AW_CRA_DIA7")
|
|
bForceNoGrab = FALSE
|
|
|
|
IF NOT DOES_ENTITY_EXIST(vehFloydTruck)
|
|
SPAWN_VEHICLE(vehFloydTruck,HAULER,<< -117.9839, -2416.6272, 5.0003 >>,91.3366)
|
|
|
|
ELSE
|
|
IF NOT DOES_ENTITY_EXIST(vehTrailer2)
|
|
IF IS_VEHICLE_DRIVEABLE(vehFloydTruck)
|
|
SPAWN_VEHICLE(vehTrailer2,DOCKTRAILER,GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(vehFloydTruck, <<-0.3, -9.5, -0.25>>), GET_ENTITY_HEADING(vehFloydTruck))
|
|
SET_VEHICLE_COLOURS(vehFloydTruck,0,0)
|
|
SET_VEHICLE_EXTRA(vehTrailer2,1,TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(vehTrailer2)
|
|
IF IS_VEHICLE_DRIVEABLE(vehFloydTruck)
|
|
//IF NOT IS_VEHICLE_ATTACHED_TO_TRAILER(vehFloydTruck)
|
|
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
TASK_ENTER_VEHICLE(pedFloyd,vehFloydTruck)
|
|
IF IS_VEHICLE_DRIVEABLE(vehFloydTruck) AND DOES_ENTITY_EXIST(vehTrailer2)
|
|
//IF IS_VEHICLE_ATTACHED_TO_TRAILER(vehFloydTruck)
|
|
ATTACH_VEHICLE_TO_TRAILER(vehFloydTruck,vehTrailer2)
|
|
//IF NOT IS_ENTITY_ATTACHED(vehFloydTruck)
|
|
FREEZE_ENTITY_POSITION(vehFloydTruck,TRUE)
|
|
//ENDIF
|
|
//IF NOT IS_ENTITY_ATTACHED(vehTrailer2)
|
|
FREEZE_ENTITY_POSITION(vehTrailer2,TRUE)
|
|
//ENDIF
|
|
SET_ENTITY_PROOFS(vehTrailer2,FALSE,FALSE,FALSE,TRUE,FALSE)
|
|
iCraneHelp++
|
|
//ELSE
|
|
|
|
//ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
//ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
|
|
BREAK
|
|
|
|
CASE 11
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_10g3")
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_10g3", CONV_PRIORITY_MEDIUM)
|
|
SET_LABEL_AS_TRIGGERED("DS1_10g3",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
IF s_crane.b_container_attached = TRUE
|
|
INHIBIT_CRANE(CRANE_ACTION_GRABBER)
|
|
ENDIF
|
|
IF s_crane.f_crane_offset < -55
|
|
//PRINT_GOD_TEXT("AW_CRA_DIA10")
|
|
iCraneHelp++
|
|
ENDIF
|
|
BREAK
|
|
|
|
//check if both crates are in the area
|
|
// IF IS_ENTITY_AT_COORD(s_containers[1].obj_main,<< -106.7826, -2414.5659, 5.0003 >>,<<10,10,2>>)
|
|
// AND IS_ENTITY_AT_COORD(s_containers[0].obj_main,<< -106.7826, -2414.5659, 5.0003 >>,<<10,10,2>>)
|
|
CASE 12
|
|
|
|
//INHIBIT_CRANE(CRANE_ACTION_GRABBER)
|
|
|
|
VECTOR vTempOffset
|
|
IF IS_VEHICLE_DRIVEABLE(vehFloydTruck)
|
|
vTemp = GET_ENTITY_COORDS(vehFloydTruck)
|
|
PRINTSTRING("float:")PRINTFLOAT(ABSF(v_spreader_pos.x - vTemp.x ))
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(vehTrailer2)
|
|
//IF ABSF(v_spreader_pos.x - vTemp.x) < 5.0
|
|
IF s_crane.b_container_attached = FALSE
|
|
IF DOES_ENTITY_EXIST(vehTrailer2)
|
|
IF NOT IS_ENTITY_DEAD(s_containers[1].obj_main)
|
|
IF IS_ENTITY_AT_ENTITY(s_containers[1].obj_main,vehTrailer2,<<1.5,1,1>>)
|
|
INHIBIT_LOWERING_SPREADER()
|
|
IF GET_ENTITY_SPEED(s_containers[1].obj_main) < 0.3
|
|
IF bCrate1Attached = FALSE
|
|
DETACH_ENTITY(s_containers[1].obj_main)
|
|
s_Containers[1].b_loaded_on_truck = TRUE
|
|
//ATTACH_ENTITY_TO_ENTITY_PHYSICALLY(s_containers[1].obj_main,vehTrailer1, -1, -1, <<0,0,0>>,<<0,0,0>>,<<0,0,0>>, -1.0,TRUE,TRUE,TRUE,TRUE)
|
|
vTempOffset = GET_OFFSET_FROM_ENTITY_GIVEN_WORLD_COORDS(vehTrailer2,GET_ENTITY_COORDS(s_containers[1].obj_main))
|
|
ATTACH_ENTITY_TO_ENTITY(s_containers[1].obj_main,vehTrailer2,0,vTempOffset,<<0,0,0>>,TRUE,FALSE,FALSE)
|
|
bCrate1Attached = TRUE
|
|
bForceNoGrab = TRUE
|
|
SET_PLAYER_CONTROL(PLAYER_ID(),FALSE)
|
|
|
|
IF DOES_BLIP_EXIST(container0_blip)
|
|
REMOVE_BLIP(container0_blip)
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(vehFirstHauler)
|
|
DELETE_VEHICLE(vehFirstHauler)
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(vehTrailer1)
|
|
DELETE_VEHICLE(vehTrailer1)
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(s_containers[0].obj_main)
|
|
DELETE_OBJECT(s_containers[0].obj_main)
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(s_containers[0].obj_left_door)
|
|
DELETE_OBJECT(s_containers[0].obj_left_door)
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(s_containers[0].obj_right_door)
|
|
DELETE_OBJECT(s_containers[0].obj_right_door)
|
|
ENDIF
|
|
|
|
CLEAR_PRINTS()
|
|
//PRINT_GOD_TEXT("AW_CRA_DIA9")
|
|
iCraneHelp++
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF bCrate0Attached = FALSE
|
|
IF NOT IS_ENTITY_DEAD(s_containers[0].obj_main)
|
|
IF IS_ENTITY_AT_ENTITY(s_containers[0].obj_main,vehTrailer2,<<1.5,1,1>>)
|
|
INHIBIT_LOWERING_SPREADER()
|
|
IF GET_ENTITY_SPEED(s_containers[0].obj_main) < 0.3
|
|
s_Containers[0].b_loaded_on_truck = TRUE
|
|
DETACH_ENTITY(s_containers[0].obj_main)
|
|
vTempOffset = GET_OFFSET_FROM_ENTITY_GIVEN_WORLD_COORDS(vehTrailer2,GET_ENTITY_COORDS(s_containers[0].obj_main))
|
|
ATTACH_ENTITY_TO_ENTITY(s_containers[0].obj_main,vehTrailer2,0,vTempOffset,<<0,0,0>>,TRUE,FALSE,FALSE)
|
|
//ATTACH_ENTITY_TO_ENTITY_PHYSICALLY(s_containers[1].obj_main,vehTrailer1, -1, -1, <<0,0,0>>,<<0,0,0>>,<<0,0,0>>, -1.0,TRUE,TRUE,TRUE,TRUE)
|
|
//ATTACH_ENTITY_TO_ENTITY(s_containers[0].obj_main,vehTrailer2,0,<<0,0,0>>,<<0,0,0>>,TRUE,FALSE,TRUE)
|
|
bCrate0Attached = TRUE
|
|
bForceNoGrab = TRUE
|
|
SET_PLAYER_CONTROL(PLAYER_ID(),FALSE)
|
|
|
|
IF DOES_BLIP_EXIST(container1_blip)
|
|
REMOVE_BLIP(container1_blip)
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(vehFirstHauler)
|
|
DELETE_VEHICLE(vehFirstHauler)
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(vehTrailer1)
|
|
DELETE_VEHICLE(vehTrailer1)
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(s_containers[1].obj_main)
|
|
DELETE_OBJECT(s_containers[1].obj_main)
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(s_containers[1].obj_left_door)
|
|
DELETE_OBJECT(s_containers[1].obj_left_door)
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(s_containers[1].obj_right_door)
|
|
DELETE_OBJECT(s_containers[1].obj_right_door)
|
|
ENDIF
|
|
|
|
|
|
CLEAR_PRINTS()
|
|
//PRINT_GOD_TEXT("AW_CRA_DIA9")
|
|
iCraneHelp++
|
|
ENDIF
|
|
ELSE
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_noton")
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_noton", CONV_PRIORITY_MEDIUM)
|
|
SET_LABEL_AS_TRIGGERED("DS1_noton",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
//ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
//bInhibitCrane = TRUE
|
|
|
|
CASE 13
|
|
INHIBIT_CRANE(CRANE_ACTION_GRABBER)
|
|
IF s_crane.b_container_attached = FALSE
|
|
IF s_crane.f_crane_offset < -55
|
|
CLEAR_PRINTS()
|
|
SETTIMERA(0)
|
|
//PRINT_GOD_TEXT("AW_CRA_DIA8")
|
|
bInhibitCrane = TRUE
|
|
bFakeSound = TRUE
|
|
iCraneHelp++
|
|
ELSE
|
|
SETTIMERA(0)
|
|
//PRINT_GOD_TEXT("AW_CRA_DIA9")
|
|
//iCraneHelp++
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 14
|
|
|
|
IF s_crane.b_container_attached = FALSE
|
|
//IF bCrate0Attached AND bCrate1Attached
|
|
|
|
REPEAT 8 i
|
|
STOP_ROPE_UNWINDING_FRONT(s_crane.ropes[i])
|
|
START_ROPE_WINDING(s_crane.ropes[i])
|
|
ENDREPEAT
|
|
|
|
|
|
IF TIMERA() > 3000
|
|
IF s_crane.f_crane_offset < -55
|
|
//PRINT_GOD_TEXT("AW_CRA_DIA8")
|
|
IF IS_VEHICLE_DRIVEABLE(vehFloydTruck)
|
|
//IF NOT IS_ENTITY_ATTACHED(vehFloydTruck)
|
|
FREEZE_ENTITY_POSITION(vehFloydTruck,FALSE)
|
|
//ENDIF
|
|
ENDIF
|
|
IF IS_VEHICLE_DRIVEABLE(vehTrailer2)
|
|
//IF NOT IS_ENTITY_ATTACHED(vehTrailer2)
|
|
FREEZE_ENTITY_POSITION(vehTrailer2,FALSE)
|
|
//ENDIF
|
|
ENDIF
|
|
IF DOES_BLIP_EXIST(dest_blip)
|
|
REMOVE_BLIP(dest_blip)
|
|
ENDIF
|
|
IF DOES_BLIP_EXIST(container0_blip)
|
|
REMOVE_BLIP(container0_blip)
|
|
ENDIF
|
|
IF DOES_BLIP_EXIST(container1_blip)
|
|
REMOVE_BLIP(container1_blip)
|
|
ENDIF
|
|
IF NOT HAS_SOUND_FINISHED(s_Crane.i_spreader_sound_id)
|
|
STOP_SOUND(s_Crane.i_spreader_sound_id)
|
|
ENDIF
|
|
UNLOCK_MINIMAP_ANGLE()
|
|
|
|
INFORM_STAT_SYSTEM_OF_BOOL_STAT_HAPPENED(DH1_EMPLOYEE_OF_THE_MONTH)
|
|
|
|
bCraneSectionComplete = TRUE
|
|
IF IS_AUDIO_SCENE_ACTIVE("DOCKS_HEIST_USING_CRANE")
|
|
STOP_AUDIO_SCENE("DOCKS_HEIST_USING_CRANE")
|
|
ENDIF
|
|
SET_PLAYER_CONTROL(PLAYER_ID(),TRUE)
|
|
bFakeSound = FALSE
|
|
iCraneHelp++
|
|
ENDIF
|
|
ELSE
|
|
IF NOT s_crane.b_spreader_stuck_on_ground
|
|
|
|
IF HAS_SOUND_FINISHED(s_Crane.i_spreader_sound_id)
|
|
PLAY_SOUND_FROM_ENTITY(s_Crane.i_spreader_sound_id, "CRANE_MOVE_U_D", s_Crane.obj_spreader)
|
|
//PRINTLN("SPREADER AUDIO PLAYING")//PRINTNL()
|
|
ENDIF
|
|
SET_VARIABLE_ON_SOUND(s_Crane.i_spreader_sound_id, "Speed", MAX_SPREADER_VEL / 2.0)
|
|
ELSE
|
|
IF NOT HAS_SOUND_FINISHED(s_Crane.i_spreader_sound_id)
|
|
STOP_SOUND(s_Crane.i_spreader_sound_id)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
//ENDIF
|
|
ELSE
|
|
INHIBIT_CRANE(CRANE_ACTION_GRABBER)
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 15
|
|
UNLOCK_MINIMAP_ANGLE()
|
|
DISPLAY_RADAR(TRUE)
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData, IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
CLEAR_PRINTS()
|
|
ENDIF
|
|
IF IS_HELP_MESSAGE_ON_SCREEN()
|
|
CLEAR_HELP()
|
|
ENDIF
|
|
|
|
IF DOES_BLIP_EXIST(dest_blip)
|
|
REMOVE_BLIP(dest_blip)
|
|
ENDIF
|
|
IF DOES_BLIP_EXIST(container0_blip)
|
|
REMOVE_BLIP(container0_blip)
|
|
ENDIF
|
|
IF DOES_BLIP_EXIST(container1_blip)
|
|
REMOVE_BLIP(container1_blip)
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
ENDPROC
|
|
|
|
// ======================================================================
|
|
// Ropes
|
|
// ======================================================================
|
|
|
|
PROC CREATE_ROPES(ENTITY_INDEX &Entity, ROPE_INDEX &rope, BOOL &bRopesCreated)
|
|
IF NOT bRopesCreated
|
|
|
|
// INT i
|
|
VECTOR vCreatePos
|
|
IF NOT IS_ENTITY_DEAD(Entity)
|
|
vCreatePos = GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(Entity, <<0,0,0.7>>)
|
|
rope = ADD_ROPE(vCreatePos, <<0,0,0>>, 15, PHYSICS_ROPE_DEFAULT)
|
|
bRopesCreated = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
// attach sub to container with rope
|
|
PROC ATTACH_ROPE_FROM_ENTITY_TO_OBJECT(ENTITY_INDEX &Vehicle, OBJECT_INDEX &containerObject, ROPE_INDEX &rope, BOOL &bRopesCreated, BOOL &bRopesAttached, BOOL bPin, BOOL bSetPlaybackMass = FALSE)
|
|
IF NOT bRopesCreated
|
|
CREATE_ROPES(Vehicle, rope, bRopesCreated)
|
|
ENDIF
|
|
|
|
IF bRopesCreated
|
|
IF NOT bRopesAttached
|
|
// INT i
|
|
VECTOR vAttachPos
|
|
VECTOR vContainerAttachPos
|
|
IF NOT IS_ENTITY_DEAD(Vehicle)
|
|
AND DOES_ENTITY_EXIST(containerObject)
|
|
IF DOES_ENTITY_HAVE_PHYSICS(containerObject)
|
|
OR bPin
|
|
DETACH_ENTITY(containerObject)
|
|
vAttachPos = GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(Vehicle, <<0,0,0.7>>)
|
|
vContainerAttachPos = GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(containerObject, <<0,0,0.7>>)
|
|
IF bPin
|
|
DETACH_ROPE_FROM_ENTITY(rope, containerObject)
|
|
PIN_ROPE_VERTEX(rope, 0, vAttachPos)
|
|
PIN_ROPE_VERTEX(rope, GET_ROPE_VERTEX_COUNT(rope)-1, vContainerAttachPos)
|
|
ELSE
|
|
UNPIN_ROPE_VERTEX(rope, 0)
|
|
UNPIN_ROPE_VERTEX(rope, GET_ROPE_VERTEX_COUNT(rope)-1)
|
|
ATTACH_ENTITIES_TO_ROPE(rope, containerObject, Vehicle, vContainerAttachPos, vAttachPos, 15, 0, 0)
|
|
ENDIF
|
|
|
|
IF NOT bPin
|
|
FLOAT fMass
|
|
FLOAT fGravity
|
|
IF bSetPlaybackMass
|
|
fMass = 0.00001
|
|
fGravity = 1
|
|
ELSE
|
|
fMass = 0.00001
|
|
fGravity = 1
|
|
ENDIF
|
|
SET_OBJECT_PHYSICS_PARAMS(containerObject, fMass, fGravity, <<-1,-1,-1>>, <<-1,-1,-1>>)
|
|
ENDIF
|
|
bRopesAttached = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
PROC MANAGE_FORCE_MERC_TASKS()
|
|
IF bForceTasks = TRUE
|
|
FOR iThisCounter = 0 TO iTotalMerc - 1
|
|
IF NOT IS_ENTITY_DEAD(pedMerc[iThisCounter])
|
|
IF NOT IS_ENTITY_DEAD(sSelectorPeds.pedID[SELECTOR_PED_FRANKLIN])
|
|
IF GET_SCRIPT_TASK_STATUS(pedMerc[iThisCounter],SCRIPT_TASK_COMBAT)<> PERFORMING_TASK
|
|
TASK_COMBAT_PED(pedMerc[iThisCounter],sSelectorPeds.pedID[SELECTOR_PED_FRANKLIN])
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDFOR
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
PROC SET_MAP_CRANE_VISIBLE(BOOL b_is_visible)
|
|
|
|
IF b_is_visible = FALSE
|
|
|
|
ENDIF
|
|
|
|
//Dockside Crane
|
|
CREATE_MODEL_HIDE(<< -72.16, -2390.39, 24.11 >> , 200.0, Prop_Dock_Crane_02, b_is_visible)
|
|
//SET_USES_COLLISION_OF_CLOSEST_OBJECT_OF_TYPE(<< -99.0574, -2389.7400, 5.0005 >> , 300.0, Prop_Dock_Crane_02, b_is_visible)
|
|
|
|
ENDPROC
|
|
|
|
//Some MISC debug procs.
|
|
#IF IS_DEBUG_BUILD
|
|
//PURPOSE: does a script assert
|
|
PROC ScriptAssert(STRING errorPassed)
|
|
PRINTSTRING("------- Docks Setup 1 Script Assert --------")//PRINTNL()
|
|
PRINTSTRING("MISSION_STAGE_ENUM = ")PRINTINT(ENUM_TO_INT(eMissionStage))//PRINTNL()
|
|
PRINTSTRING("iprogress = ")PRINTINT(iprogress)//PRINTNL()
|
|
PRINTSTRING("iPreLoadStage = ")PRINTINT(iPreStreamStage)//PRINTNL()
|
|
PRINTSTRING("iSpeechProgress = ")PRINTINT(iSpeechProgress)//PRINTNL()
|
|
//PRINTSTRING("iBuddyProgress = ")PRINTINT(iBuddyProgress)//PRINTNL()
|
|
//PRINTSTRING("ienemyAIprog = ")PRINTINT(ienemyAIprog)//PRINTNL()
|
|
//PRINTSTRING("icutsceneprog = ")PRINTINT(icutsceneprog)//PRINTNL()
|
|
SCRIPT_ASSERT(errorPassed)
|
|
ENDPROC
|
|
//PURPOSE: Prints a line so it's easy to find my db output in logs
|
|
PROC DBOutPut()
|
|
PRINTSTRING("Docks Setup 1 output")//PRINTNL()
|
|
ENDPROC
|
|
//PURPOSE: Prints thigs when they change value
|
|
PROC Where_are_we()
|
|
IF iMissionStageDB <> ENUM_TO_INT(eMissionStage)
|
|
iMissionStageDB = ENUM_TO_INT(eMissionStage)
|
|
DBOutPut()
|
|
PRINTSTRING("MISSION_STAGE_ENUM = ")PRINTINT(iMissionStageDB)//PRINTNL()
|
|
ENDIF
|
|
IF iProgressDB <> iProgress
|
|
iProgressDB = iProgress
|
|
DBOutPut()
|
|
PRINTSTRING("iprogress = ")PRINTINT(iprogress)//PRINTNL()
|
|
ENDIF
|
|
IF iPreLoadStageDB <> iPreStreamStage
|
|
iPreLoadStageDB = iPreStreamStage
|
|
DBOutPut()
|
|
PRINTSTRING("iPreLoadStage = ")PRINTINT(iPreStreamStage)//PRINTNL()
|
|
ENDIF
|
|
IF iSpeechTextProgressDB <> iSpeechProgress
|
|
iSpeechTextProgressDB = iSpeechProgress
|
|
DBOutPut()
|
|
PRINTSTRING("iSpeechProgress = ")PRINTINT(iSpeechProgress)//PRINTNL()
|
|
ENDIF
|
|
|
|
IF iMissionDialogueDB <> iMissionDialogue
|
|
iMissionDialogueDB = iMissionDialogue
|
|
DBOutPut()
|
|
PRINTSTRING("iMissionDialogue = ")PRINTINT(iMissionDialogue)//PRINTNL()
|
|
ENDIF
|
|
|
|
IF iCraneHelpDB <> iCraneHelp
|
|
iCraneHelpDB = iCraneHelp
|
|
DBOutPut()
|
|
PRINTSTRING("iCraneHelp = ")PRINTINT(iCraneHelp)//PRINTNL()
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
#ENDIF
|
|
|
|
//PURPOSE: controls the sucessfull completion of the mission
|
|
PROC MISSION_PASSED()
|
|
// IF IS_SCREEN_FADED_OUT()
|
|
// DO_SCREEN_FADE_IN(500)
|
|
// ENDIF
|
|
SET_PLAYER_CONTROL(PLAYER_ID(),TRUE)
|
|
INFORM_STAT_SYSTEM_OF_BOOL_STAT_HAPPENED(DH1_HONEST_DAYS_WORK)
|
|
SET_HEIST_BOARD_DISPLAY_GROUP_VISIBLE(HEIST_DOCKS, PBDG_1, TRUE)
|
|
//RESET_PLAYER_HAS_CHANGE_CLOTHES_ON_MISSION(CHAR_TREVOR, bHasChanged)
|
|
|
|
//Make sure the board intro cutscene is loading as we pass.
|
|
SET_MISSION_FLOW_FLAG_STATE(FLOWFLAG_HEIST_DOCKS_PRIME_BOARD_TRANSITION, TRUE)
|
|
IF GET_BUILDING_STATE(BUILDINGNAME_ES_FLOYDS_APPARTMENT_PICTURE) != BUILDINGSTATE_DESTROYED
|
|
SET_BUILDING_STATE(BUILDINGNAME_ES_FLOYDS_APPARTMENT_PICTURE, BUILDINGSTATE_DESTROYED)
|
|
ENDIF
|
|
IF GET_BUILDING_STATE(BUILDINGNAME_ES_FLOYDS_APPARTMENT_SHIT) != BUILDINGSTATE_DESTROYED
|
|
SET_BUILDING_STATE(BUILDINGNAME_ES_FLOYDS_APPARTMENT_SHIT, BUILDINGSTATE_DESTROYED)
|
|
ENDIF
|
|
IF GET_BUILDING_STATE(BUILDINGNAME_ES_FLOYDS_APPARTMENT_SHIT_SOFA) != BUILDINGSTATE_DESTROYED
|
|
SET_BUILDING_STATE(BUILDINGNAME_ES_FLOYDS_APPARTMENT_SHIT_SOFA, BUILDINGSTATE_DESTROYED)
|
|
ENDIF
|
|
// IF GET_BUILDING_STATE(BUILDINGNAME_ES_FLOYDS_APPARTMENT_RASPBERRY_JAM) != BUILDINGSTATE_DESTROYED
|
|
// SET_BUILDING_STATE(BUILDINGNAME_ES_FLOYDS_APPARTMENT_RASPBERRY_JAM, BUILDINGSTATE_DESTROYED)
|
|
// ENDIF
|
|
// IF GET_BUILDING_STATE(BUILDINGNAME_ES_FLOYDS_APPARTMENT_RASPBERRY_JAM_CUTSCENE) != BUILDINGSTATE_NORMAL
|
|
// SET_BUILDING_STATE(BUILDINGNAME_ES_FLOYDS_APPARTMENT_RASPBERRY_JAM_CUTSCENE, BUILDINGSTATE_NORMAL)
|
|
// ENDIF
|
|
|
|
Mission_Flow_Mission_Passed(TRUE)
|
|
//RESTORE_PLAYER_PED_VARIATIONS(PLAYER_PED_ID())
|
|
MISSION_CLEANUP(FALSE,TRUE)
|
|
ENDPROC
|
|
|
|
|
|
//PURPOSE: resets the mission stage ints
|
|
PROC RESET_MISSION_STAGE_VARIABLES()
|
|
iProgress = 0
|
|
iPreStreamStage = 0
|
|
//iSpeechProgress = 0
|
|
//iBuddyProgress = 0
|
|
//icutsceneprog = 0
|
|
//ienemyAIprog = 0
|
|
iSetupProgress = 0
|
|
bCraneSectionComplete = FALSE
|
|
bForceNoGrab = FALSE
|
|
bInhibitCrane = FALSE
|
|
CLEAR_MISSION_LOCATION_TEXT_AND_BLIPS(sLocatesData)
|
|
bObjectsCreated[0] = FALSE
|
|
bObjectsCreated[1] = FALSE
|
|
bObjectsCreated[2] = FALSE
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
iProgressDB = 0
|
|
iPreLoadStageDB = 0
|
|
iSpeechTextProgressDB = 0
|
|
//icutsceneprogDB = 0
|
|
//ienemyAIprogDB = 0
|
|
iMissionStageDB = 0
|
|
#ENDIF
|
|
ENDPROC
|
|
//PURPOSE: resets the mission stage ints if you skipp
|
|
PROC RESET_MISSION_STAGE_INTS_SKIP()
|
|
RESET_MISSION_STAGE_VARIABLES()
|
|
bmissionstageloaded = TRUE
|
|
#IF IS_DEBUG_BUILD
|
|
bskipping = FALSE
|
|
#ENDIF
|
|
ENDPROC
|
|
|
|
PROC ADVANCE_MISSION_STAGE()
|
|
//bPrinted = FALSE
|
|
eMissionStage = INT_TO_ENUM(MISSION_STAGE_ENUM, (ENUM_TO_INT(eMissionStage) + 1))
|
|
RESET_MISSION_STAGE_VARIABLES()
|
|
|
|
ENDPROC
|
|
// ======================================================================
|
|
// PED & Vehicle Creation
|
|
// ======================================================================
|
|
|
|
//Create the docks stuff
|
|
|
|
FUNC BOOL CREATE_THE_DOCKS_STUFF()
|
|
IF eMissionStage = MISSION_STAGE_1
|
|
IF bObjectsCreated[0] = FALSE
|
|
IF GET_DISTANCE_BETWEEN_COORDS(GET_ENTITY_COORDS(PLAYER_PED_ID()),vDocks) < 100
|
|
REQUEST_MODEL(S_M_Y_BlackOps_01)
|
|
REQUEST_MODEL(S_M_M_DOCKWORK_01)
|
|
REQUEST_MODEL(BIFF)
|
|
REQUEST_MODEL(FORKLIFT)
|
|
|
|
IF HAS_MODEL_LOADED(S_M_Y_BlackOps_01)
|
|
AND HAS_MODEL_LOADED(S_M_M_DOCKWORK_01)
|
|
AND HAS_MODEL_LOADED(BIFF)
|
|
AND HAS_MODEL_LOADED(FORKLIFT)
|
|
IF NOT DOES_ENTITY_EXIST(vehDocks[0])
|
|
SPAWN_VEHICLE(vehDocks[0],BIFF,vDockVeh[0],fDockVeh[0],-1,1.0,FALSE)
|
|
ELSE
|
|
IF NOT DOES_ENTITY_EXIST(vehDocks[1])
|
|
SPAWN_VEHICLE(vehDocks[1],FORKLIFT,vDockVeh[1],fDockVeh[1],-1,1.0,FALSE)
|
|
ELSE
|
|
createMercenary(0,TRUE)
|
|
createMercenary(1,TRUE)
|
|
createMercenary(2,TRUE)
|
|
createMercenary(3,FALSE)
|
|
createMercenary(7,FALSE)
|
|
createMercenary(8,FALSE)
|
|
//createDockWorker(3)
|
|
createDockWorker(4)
|
|
createDockWorker(5)
|
|
createDockWorker(6)
|
|
createDockWorker(7)
|
|
createDockWorker(8)
|
|
IF eMissionStage != MISSION_STAGE_6
|
|
createDockWorker(12)
|
|
ENDIF
|
|
createDockWorker(13)
|
|
createDockWorker(14)
|
|
createDockWorker(17)
|
|
createDockWorker(18)
|
|
bObjectsCreated[0] = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF eMissionStage > MISSION_STAGE_1 AND eMissionStage < MISSION_STAGE_5
|
|
IF bObjectsCreated[0] = FALSE
|
|
REQUEST_MODEL(S_M_Y_BlackOps_01)
|
|
REQUEST_MODEL(S_M_M_DOCKWORK_01)
|
|
REQUEST_MODEL(BIFF)
|
|
REQUEST_MODEL(FORKLIFT)
|
|
IF HAS_MODEL_LOADED(S_M_Y_BlackOps_01)
|
|
AND HAS_MODEL_LOADED(S_M_M_DOCKWORK_01)
|
|
AND HAS_MODEL_LOADED(BIFF)
|
|
AND HAS_MODEL_LOADED(FORKLIFT)
|
|
IF eMissionStage = MISSION_STAGE_2
|
|
IF NOT DOES_ENTITY_EXIST(vehDocks[2])
|
|
SPAWN_VEHICLE(vehDocks[2],BIFF,vDockVeh[2],fDockVeh[2],-1,1.0,FALSE)
|
|
ELSE
|
|
IF NOT DOES_ENTITY_EXIST(vehDocks[3])
|
|
SPAWN_VEHICLE(vehDocks[3],BIFF,vDockVeh[3],fDockVeh[3],-1,1.0,FALSE)
|
|
ELSE
|
|
IF NOT DOES_ENTITY_EXIST(vehDocks[0])
|
|
SPAWN_VEHICLE(vehDocks[0],BIFF,vDockVeh[0],fDockVeh[0],-1,1.0,FALSE)
|
|
ELSE
|
|
IF NOT DOES_ENTITY_EXIST(vehDocks[1])
|
|
SPAWN_VEHICLE(vehDocks[1],FORKLIFT,vDockVeh[1],fDockVeh[1],-1,1.0,FALSE)
|
|
ELSE
|
|
createMercenary(0,TRUE)
|
|
createMercenary(1,TRUE)
|
|
createMercenary(2,TRUE)
|
|
createMercenary(3,FALSE)
|
|
createMercenary(7,FALSE)
|
|
createMercenary(8,FALSE)
|
|
createDockWorker(4)
|
|
createDockWorker(5)
|
|
createDockWorker(6)
|
|
createDockWorker(7)
|
|
createDockWorker(8)
|
|
IF eMissionStage != MISSION_STAGE_6
|
|
createDockWorker(12)
|
|
ENDIF
|
|
createDockWorker(13)
|
|
createDockWorker(14)
|
|
createDockWorker(17)
|
|
createDockWorker(18)
|
|
bObjectsCreated[0] = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF NOT DOES_ENTITY_EXIST(vehDocks[1])
|
|
SPAWN_VEHICLE(vehDocks[1],FORKLIFT,vDockVeh[1],fDockVeh[1],-1,1.0,FALSE)
|
|
ELSE
|
|
createMercenary(0,TRUE)
|
|
createMercenary(1,TRUE)
|
|
createMercenary(2,TRUE)
|
|
createMercenary(3,FALSE)
|
|
createMercenary(7,FALSE)
|
|
createMercenary(8,FALSE)
|
|
createDockWorker(4)
|
|
createDockWorker(5)
|
|
createDockWorker(6)
|
|
createDockWorker(7)
|
|
createDockWorker(8)
|
|
IF eMissionStage != MISSION_STAGE_6
|
|
createDockWorker(12)
|
|
ENDIF
|
|
createDockWorker(13)
|
|
createDockWorker(14)
|
|
createDockWorker(17)
|
|
createDockWorker(18)
|
|
bObjectsCreated[0] = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF eMissionStage > MISSION_STAGE_4
|
|
IF bObjectsCreated[0] = FALSE
|
|
REQUEST_MODEL(S_M_Y_BlackOps_01)
|
|
REQUEST_MODEL(S_M_M_DOCKWORK_01)
|
|
IF HAS_MODEL_LOADED(S_M_Y_BlackOps_01)
|
|
AND HAS_MODEL_LOADED(S_M_M_DOCKWORK_01)
|
|
createMercenary(0,TRUE)
|
|
createMercenary(1,TRUE)
|
|
createMercenary(2,TRUE)
|
|
createMercenary(3,FALSE)
|
|
createMercenary(7,FALSE)
|
|
createMercenary(8,FALSE)
|
|
createDockWorker(4)
|
|
createDockWorker(5)
|
|
createDockWorker(6)
|
|
createDockWorker(7)
|
|
createDockWorker(8)
|
|
IF eMissionStage != MISSION_STAGE_6
|
|
createDockWorker(12)
|
|
ENDIF
|
|
createDockWorker(13)
|
|
createDockWorker(14)
|
|
createDockWorker(17)
|
|
createDockWorker(18)
|
|
bObjectsCreated[0] = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF eMissionStage > MISSION_STAGE_2 AND eMissionStage < MISSION_STAGE_PASSED
|
|
IF bObjectsCreated[1] = FALSE
|
|
IF bObjectsCreated[0] = TRUE
|
|
REQUEST_MODEL(HANDLER)
|
|
REQUEST_MODEL(FORKLIFT)
|
|
REQUEST_MODEL(PROP_CONTR_03B_LD)
|
|
IF HAS_MODEL_LOADED(FORKLIFT)
|
|
AND HAS_MODEL_LOADED(PROP_CONTR_03B_LD)
|
|
AND HAS_MODEL_LOADED(HANDLER)
|
|
IF eMissionStage < MISSION_STAGE_7
|
|
IF NOT DOES_ENTITY_EXIST(vehHandler)
|
|
IF eMissionStage = MISSION_STAGE_6
|
|
SPAWN_VEHICLE(vehHandler,HANDLER,<<-92.7994, -2448.4775, 5.0163>>, 257.5271,-1,1.0,FALSE)
|
|
SET_VEHICLE_IS_CONSIDERED_BY_PLAYER(vehHandler,FALSE)
|
|
SET_VEHICLE_COLOUR_COMBINATION(vehHandler,0)
|
|
SET_VEHICLE_AUTOMATICALLY_ATTACHES(vehHandler,FALSE)
|
|
SET_VEHICLE_PROVIDES_COVER(vehHandler,FALSE)
|
|
ELSE
|
|
SPAWN_VEHICLE(vehHandler,HANDLER,<<-129.77, -2418.28, 6.24>>,183.0850,-1,1.0,FALSE)
|
|
SET_VEHICLE_IS_CONSIDERED_BY_PLAYER(vehHandler,FALSE)
|
|
SET_VEHICLE_COLOUR_COMBINATION(vehHandler,0)
|
|
SET_VEHICLE_AUTOMATICALLY_ATTACHES(vehHandler,FALSE)
|
|
FREEZE_ENTITY_POSITION(vehHandler,TRUE)
|
|
SET_VEHICLE_PROVIDES_COVER(vehHandler,FALSE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(pedMerc[3])
|
|
TASK_START_SCENARIO_AT_POSITION(pedMerc[3],"WORLD_HUMAN_GUARD_STAND",<<-123.91, -2352.94, 9.32>>,-0.21)
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(pedMerc[7])
|
|
TASK_START_SCENARIO_AT_POSITION(pedMerc[7],"WORLD_HUMAN_SMOKING",<<-133.26, -2379.25, 9.32>>,153.86)
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(pedMerc[8])
|
|
TASK_START_SCENARIO_AT_POSITION(pedMerc[8],"WORLD_HUMAN_BINOCULARS",<<-216.83, -2376.18, 26.46>>,-160.35)
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(pedDockWorker[6])
|
|
TASK_START_SCENARIO_IN_PLACE(pedDockWorker[6],"WORLD_HUMAN_WELDING")
|
|
SET_PED_CAN_EVASIVE_DIVE(pedDockWorker[6],FALSE)
|
|
SET_RAGDOLL_BLOCKING_FLAGS(pedDockWorker[6],RBF_PLAYER_IMPACT)
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(pedDockWorker[8])
|
|
TASK_START_SCENARIO_IN_PLACE(pedDockWorker[8],"WORLD_HUMAN_STAND_MOBILE")
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(pedDockWorker[13])
|
|
TASK_START_SCENARIO_IN_PLACE(pedDockWorker[13],"WORLD_HUMAN_CLIPBOARD")
|
|
SET_RAGDOLL_BLOCKING_FLAGS(pedDockWorker[13],RBF_PLAYER_IMPACT)
|
|
ENDIF
|
|
|
|
bObjectsCreated[1] = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF NOT IS_PED_INJURED(pedDockWorker[6])
|
|
SET_PED_CAPSULE(pedDockWorker[6], 0.5)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF eMissionStage = MISSION_STAGE_7
|
|
IF bObjectsCreated[3] = FALSE
|
|
REQUEST_MODEL(HAULER)
|
|
REQUEST_MODEL(DOCKTRAILER)
|
|
IF HAS_MODEL_LOADED(HAULER)
|
|
AND HAS_MODEL_LOADED(DOCKTRAILER)
|
|
IF NOT DOES_ENTITY_EXIST(vehFirstHauler)
|
|
SPAWN_VEHICLE(vehFirstHauler,HAULER,<< -117.9839, -2416.6272, 5.0003 >>,91.3366)
|
|
ELSE
|
|
IF NOT DOES_ENTITY_EXIST(vehTrailer1)
|
|
IF IS_VEHICLE_DRIVEABLE(vehFirstHauler)
|
|
SPAWN_VEHICLE(vehTrailer1,DOCKTRAILER,GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(vehFirstHauler, <<-0.3, -9.5, -0.25>>), GET_ENTITY_HEADING(vehFirstHauler))
|
|
ACTIVATE_PHYSICS(vehFirstHauler)
|
|
ACTIVATE_PHYSICS(vehTrailer1)
|
|
SET_VEHICLE_EXTRA(vehTrailer1,1,TRUE)
|
|
ENDIF
|
|
ELSE
|
|
bObjectsCreated[3] = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF eMissionStage = MISSION_STAGE_8
|
|
IF bObjectsCreated[3] = FALSE
|
|
REQUEST_MODEL(HAULER)
|
|
REQUEST_MODEL(DOCKTRAILER)
|
|
IF HAS_MODEL_LOADED(HAULER)
|
|
AND HAS_MODEL_LOADED(DOCKTRAILER)
|
|
IF NOT DOES_ENTITY_EXIST(vehFloydTruck)
|
|
SPAWN_VEHICLE(vehFloydTruck,HAULER,<< -117.9839, -2416.6272, 5.0003 >>,91.3366)
|
|
ELSE
|
|
IF NOT DOES_ENTITY_EXIST(vehTrailer2)
|
|
IF IS_VEHICLE_DRIVEABLE(vehFloydTruck)
|
|
SET_VEHICLE_COLOURS(vehFloydTruck,0,0)
|
|
SPAWN_VEHICLE(vehTrailer2,DOCKTRAILER,GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(vehFloydTruck, <<-0.3, -9.5, -0.25>>), GET_ENTITY_HEADING(vehFloydTruck))
|
|
ACTIVATE_PHYSICS(vehFloydTruck)
|
|
ACTIVATE_PHYSICS(vehTrailer2)
|
|
SET_VEHICLE_EXTRA(vehTrailer2,1,TRUE)
|
|
ENDIF
|
|
ELSE
|
|
bObjectsCreated[3] = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF eMissionStage > MISSION_STAGE_8
|
|
IF bObjectsCreated[2] = FALSE
|
|
REQUEST_MODEL(S_M_M_DOCKWORK_01)
|
|
REQUEST_MODEL(TIPTRUCK)
|
|
IF HAS_MODEL_LOADED(S_M_M_DOCKWORK_01)
|
|
AND HAS_MODEL_LOADED(TIPTRUCK)
|
|
IF NOT DOES_ENTITY_EXIST(vehFinal)
|
|
SPAWN_VEHICLE(vehFinal,TIPTRUCK, << 465.8751, -3037.0837, 5.0686 >>, 126.3433)
|
|
ELSE
|
|
IF NOT DOES_ENTITY_EXIST(pedDockWorker[15])
|
|
createDockWorker(15)
|
|
ELSE
|
|
IF NOT DOES_ENTITY_EXIST(pedDockWorker[16])
|
|
createDockWorker(16)
|
|
ELSE
|
|
bObjectsCreated[2] = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF eMissionStage > MISSION_STAGE_1
|
|
|
|
IF eMissionStage = MISSION_STAGE_2
|
|
IF bObjectsCreated[0] = TRUE
|
|
CLEANUP_LOADED_MODEL_ARRAY()
|
|
//PRINTSTRING("DOCKS STUFF CREATED")//PRINTNL()
|
|
RETURN TRUE
|
|
ELSE
|
|
//PRINTSTRING("CREATING THE DOCKS STUFF")//PRINTNL()
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF eMissionStage = MISSION_STAGE_2
|
|
IF bObjectsCreated[0] = TRUE
|
|
CLEANUP_LOADED_MODEL_ARRAY()
|
|
//PRINTSTRING("DOCKS STUFF CREATED")//PRINTNL()
|
|
|
|
RETURN TRUE
|
|
ELSE
|
|
//PRINTSTRING("CREATING THE DOCKS STUFF")//PRINTNL()
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF eMissionStage = MISSION_STAGE_4
|
|
IF bObjectsCreated[0] = TRUE AND bObjectsCreated[1] = TRUE
|
|
CLEANUP_LOADED_MODEL_ARRAY()
|
|
//PRINTSTRING("DOCKS STUFF CREATED")//PRINTNL()
|
|
RETURN TRUE
|
|
ELSE
|
|
//PRINTSTRING("CREATING THE DOCKS STUFF")//PRINTNL()
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF eMissionStage = MISSION_STAGE_5
|
|
IF bObjectsCreated[0] = TRUE AND bObjectsCreated[1] = TRUE
|
|
CLEANUP_LOADED_MODEL_ARRAY()
|
|
//PRINTSTRING("DOCKS STUFF CREATED")//PRINTNL()
|
|
RETURN TRUE
|
|
ELSE
|
|
//PRINTSTRING("CREATING THE DOCKS STUFF")//PRINTNL()
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF eMissionStage = MISSION_STAGE_6
|
|
IF bObjectsCreated[0] = TRUE AND bObjectsCreated[1] = TRUE
|
|
CLEANUP_LOADED_MODEL_ARRAY()
|
|
//PRINTSTRING("DOCKS STUFF CREATED")//PRINTNL()
|
|
RETURN TRUE
|
|
ELSE
|
|
//PRINTSTRING("CREATING THE DOCKS STUFF")//PRINTNL()
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF eMissionStage = MISSION_STAGE_7
|
|
IF bObjectsCreated[0] = TRUE AND bObjectsCreated[1] = TRUE AND bObjectsCreated[3] = TRUE
|
|
CLEANUP_LOADED_MODEL_ARRAY()
|
|
//PRINTSTRING("DOCKS STUFF CREATED")//PRINTNL()
|
|
RETURN TRUE
|
|
ELSE
|
|
//PRINTSTRING("CREATING THE DOCKS STUFF")//PRINTNL()
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF eMissionStage = MISSION_STAGE_8
|
|
IF bObjectsCreated[0] = TRUE AND bObjectsCreated[1] = TRUE AND bObjectsCreated[3] = TRUE
|
|
CLEANUP_LOADED_MODEL_ARRAY()
|
|
//PRINTSTRING("DOCKS STUFF CREATED")//PRINTNL()
|
|
RETURN TRUE
|
|
ELSE
|
|
//PRINTSTRING("CREATING THE DOCKS STUFF")//PRINTNL()
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF eMissionStage = MISSION_STAGE_10
|
|
IF bObjectsCreated[0] = TRUE AND bObjectsCreated[1] = TRUE AND bObjectsCreated[2] = TRUE
|
|
CLEANUP_LOADED_MODEL_ARRAY()
|
|
//PRINTSTRING("DOCKS STUFF CREATED")//PRINTNL()
|
|
RETURN TRUE
|
|
ELSE
|
|
//PRINTSTRING("CREATING THE DOCKS STUFF")//PRINTNL()
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
|
|
//PURPOSE: Makes a vehicle without a driver
|
|
FUNC BOOL CREATE_MISSION_VEHICLE(INT index,MODEL_NAMES vehmod,VECTOR vVehloc,FLOAT vehhead)
|
|
//PRINTINT(index)
|
|
////PRINTNL()
|
|
IF NOT DOES_ENTITY_EXIST(mission_veh[index].veh)
|
|
mission_veh[index].veh=CREATE_VEHICLE(vehmod,vVehloc,vehhead)
|
|
ELSE
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(mission_veh[index].veh)
|
|
#IF IS_DEBUG_BUILD
|
|
TEXT_LABEL_23 nameLabel = "VEHICLE "
|
|
nameLabel += index
|
|
SET_VEHICLE_NAME_DEBUG(mission_veh[index].veh ,nameLabel)
|
|
PRINTSTRING("vehicle made")//PRINTNL()
|
|
#ENDIF
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
//PRINTSTRING("CREATE_MISSION_VEHICLE - FALSE")//PRINTNL()
|
|
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
FUNC BOOL SETUP_MISSION_REQUIREMENT_WITH_LOCATION(MISSION_REQUIREMENT eRequirement, VECTOR vPos, FLOAT fHeading = 0.0)
|
|
|
|
SWITCH eRequirement
|
|
|
|
CASE REQ_HAULER_WITH_TRAILER
|
|
|
|
REQUEST_MODEL(HAULER)
|
|
REQUEST_MODEL(DOCKTRAILER)
|
|
IF HAS_MODEL_LOADED(HAULER)
|
|
AND HAS_MODEL_LOADED(DOCKTRAILER)
|
|
IF NOT DOES_ENTITY_EXIST(vehFirstHauler)
|
|
SPAWN_VEHICLE(vehFirstHauler,HAULER,<< -117.9839, -2416.6272, 5.0003 >>,91.3366)
|
|
ELSE
|
|
IF NOT DOES_ENTITY_EXIST(vehTrailer1)
|
|
IF IS_VEHICLE_DRIVEABLE(vehFirstHauler)
|
|
SPAWN_VEHICLE(vehTrailer1,DOCKTRAILER,GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(vehFirstHauler, <<-0.3, -9.5, -0.25>>), GET_ENTITY_HEADING(vehFirstHauler))
|
|
SET_VEHICLE_EXTRA(vehTrailer1,1,TRUE)
|
|
SET_DOOR_ALLOWED_TO_BE_BROKEN_OFF(vehFirstHauler,SC_DOOR_FRONT_LEFT,FALSE)
|
|
SET_DOOR_ALLOWED_TO_BE_BROKEN_OFF(vehFirstHauler,SC_DOOR_FRONT_RIGHT,FALSE)
|
|
SET_VEHICLE_AS_RESTRICTED(vehTrailer1,0)
|
|
SET_VEHICLE_AS_RESTRICTED(vehFirstHauler,1)
|
|
//PRINTSTRING("REQ_HAULER_WITH_TRAILER")
|
|
RETURN TRUE
|
|
ELSE
|
|
//SCRIPT_ASSERT("HAULER NOT DRIVABLE")
|
|
ENDIF
|
|
ELSE
|
|
//PRINTSTRING("REQ_HAULER_WITH_TRAILER")
|
|
IF IS_VEHICLE_DRIVEABLE(vehTrailer1)
|
|
SET_VEHICLE_EXTRA(vehTrailer1,1,TRUE)
|
|
ENDIF
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE REQ_CONTAINERS_FOR_HANDLER_SECTION_FINAL
|
|
IF NOT DOES_ENTITY_EXIST(objHandlerContainer[0])
|
|
REQUEST_MODEL(PROP_CONTR_03B_LD)
|
|
IF HAS_MODEL_LOADED(PROP_CONTR_03B_LD)
|
|
objHandlerContainer[0] = CREATE_OBJECT_NO_OFFSET(PROP_CONTR_03B_LD,<< -96.71, -2455.31, 5.02 >>)
|
|
IF DOES_ENTITY_HAVE_PHYSICS(objHandlerContainer[0])
|
|
SET_OBJECT_PHYSICS_PARAMS(objHandlerContainer[0],5000,-1,<<0,0,0>>,<<0,0,0>>)
|
|
ENDIF
|
|
|
|
SET_ENTITY_ROTATION (objHandlerContainer[0], <<0.000000,0.000000,55.00>>)
|
|
SET_ENTITY_SHOULD_FREEZE_WAITING_ON_COLLISION(objHandlerContainer[0],TRUE)
|
|
ENDIF
|
|
ELSE
|
|
IF NOT DOES_ENTITY_EXIST(objHandlerContainer[1])
|
|
objHandlerContainer[1] = CREATE_OBJECT_NO_OFFSET(PROP_CONTR_03B_LD,<<-99.99, -2461.02, 5.02 >>)
|
|
IF DOES_ENTITY_HAVE_PHYSICS(objHandlerContainer[1])
|
|
SET_OBJECT_PHYSICS_PARAMS(objHandlerContainer[1],5000,-1,<<0,0,0>>,<<0,0,0>>)
|
|
ENDIF
|
|
SET_ENTITY_ROTATION (objHandlerContainer[1],<<0.03, 0.02, 54.13>>)
|
|
SET_ENTITY_SHOULD_FREEZE_WAITING_ON_COLLISION(objHandlerContainer[1],TRUE)
|
|
ELSE
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE REQ_CONTAINERS_FOR_HANDLER_SECTION_START
|
|
IF NOT DOES_ENTITY_EXIST(objHandlerContainer[0])
|
|
REQUEST_MODEL(PROP_CONTR_03B_LD)
|
|
IF HAS_MODEL_LOADED(PROP_CONTR_03B_LD)
|
|
objHandlerContainer[0] = CREATE_OBJECT_NO_OFFSET(PROP_CONTR_03B_LD,<<42.829399,-2476.966064,4.933219>>)
|
|
IF DOES_ENTITY_HAVE_PHYSICS(objHandlerContainer[0])
|
|
SET_OBJECT_PHYSICS_PARAMS(objHandlerContainer[0],5000,-1,<<0,0,0>>,<<0,0,0>>)
|
|
ENDIF
|
|
|
|
SET_ENTITY_ROTATION (objHandlerContainer[0], <<0.000000,0.000000,55.248119>>)
|
|
SET_ENTITY_SHOULD_FREEZE_WAITING_ON_COLLISION(objHandlerContainer[0],TRUE)
|
|
ENDIF
|
|
ELSE
|
|
IF NOT DOES_ENTITY_EXIST(objHandlerContainer[1])
|
|
objHandlerContainer[1] = CREATE_OBJECT_NO_OFFSET(PROP_CONTR_03B_LD,<<39.751469,-2481.112793,4.981983>>)
|
|
IF DOES_ENTITY_HAVE_PHYSICS(objHandlerContainer[1])
|
|
SET_OBJECT_PHYSICS_PARAMS(objHandlerContainer[1],5000,-1,<<0,0,0>>,<<0,0,0>>)
|
|
ENDIF
|
|
SET_ENTITY_ROTATION (objHandlerContainer[1],<<0.000000,0.000000,55.002975>>)
|
|
SET_ENTITY_SHOULD_FREEZE_WAITING_ON_COLLISION(objHandlerContainer[1],TRUE)
|
|
ELSE
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE REQ_HAULER_WITH_TRAILER_FINAL_STAGE
|
|
REQUEST_MODEL(HAULER)
|
|
REQUEST_MODEL(DOCKTRAILER)
|
|
IF HAS_MODEL_LOADED(HAULER)
|
|
AND HAS_MODEL_LOADED(DOCKTRAILER)
|
|
IF NOT DOES_ENTITY_EXIST(vehFloydTruck)
|
|
SPAWN_VEHICLE(vehFloydTruck,HAULER,<<479.47, -3109.19, 6.28>>,180.19)
|
|
ELSE
|
|
IF NOT DOES_ENTITY_EXIST(vehTrailer2)
|
|
IF IS_VEHICLE_DRIVEABLE(vehFloydTruck)
|
|
SPAWN_VEHICLE(vehTrailer2,DOCKTRAILER,GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(vehFloydTruck, <<-0.3, -9.5, -0.25>>), GET_ENTITY_HEADING(vehFloydTruck))
|
|
SET_VEHICLE_EXTRA(vehTrailer2,1,FALSE)
|
|
SET_VEHICLE_COLOURS(vehFloydTruck,0,0)
|
|
SET_VEHICLE_IS_CONSIDERED_BY_PLAYER(vehFloydTruck,FALSE)
|
|
ACTIVATE_PHYSICS(vehFloydTruck)
|
|
ACTIVATE_PHYSICS(vehTrailer2)
|
|
ATTACH_VEHICLE_TO_TRAILER(vehFloydTruck,vehTrailer2)
|
|
SET_VEHICLE_AS_RESTRICTED(vehFloydTruck,2)
|
|
SET_VEHICLE_AS_RESTRICTED(vehTrailer2,3)
|
|
SET_DOOR_ALLOWED_TO_BE_BROKEN_OFF(vehFloydTruck,SC_DOOR_FRONT_LEFT,FALSE)
|
|
SET_DOOR_ALLOWED_TO_BE_BROKEN_OFF(vehFloydTruck,SC_DOOR_FRONT_RIGHT,FALSE)
|
|
//PRINTSTRING("REQ_HAULER_WITH_TRAILER")
|
|
RETURN TRUE
|
|
ELSE
|
|
//SCRIPT_ASSERT("HAULER NOT DRIVABLE")
|
|
ENDIF
|
|
ELSE
|
|
//PRINTSTRING("REQ_HAULER_WITH_TRAILER")
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE REQ_GUARDS_AND_FLOYD
|
|
IF DOES_ENTITY_EXIST(pedFloyd)
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
REQUEST_MODEL(S_M_Y_BlackOps_01)
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_13@kick_idle")
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_13@kick_idle")
|
|
IF DOES_ENTITY_EXIST(pedFloyd)
|
|
AND DOES_ENTITY_EXIST(pedMerc[4])
|
|
AND DOES_ENTITY_EXIST(pedMerc[5])
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
AND NOT IS_PED_INJURED(pedMerc[4])
|
|
AND NOT IS_PED_INJURED(pedMerc[5])
|
|
IF NOT IS_SYNCHRONIZED_SCENE_RUNNING(sceneBlackAbuse)
|
|
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedFloyd,TRUE)
|
|
REMOVE_PED_FROM_GROUP(pedFloyd)
|
|
sceneBlackAbuse = CREATE_SYNCHRONIZED_SCENE(<< 478.596, -3116.911, 5.069 >>,<< -0.000, -0.000, 53.446 >>)
|
|
TASK_SYNCHRONIZED_SCENE (pedFloyd,sceneBlackAbuse, "missheistdockssetup1ig_13@kick_idle", "guard_beatup_kickidle_dockworker", REALLY_SLOW_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (pedMerc[4], sceneBlackAbuse,"missheistdockssetup1ig_13@kick_idle", "guard_beatup_kickidle_guard1", REALLY_SLOW_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (pedMerc[5], sceneBlackAbuse, "missheistdockssetup1ig_13@kick_idle", "guard_beatup_kickidle_guard2", REALLY_SLOW_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
SET_SYNCHRONIZED_SCENE_LOOPED(sceneBlackAbuse,TRUE)
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF HAS_MODEL_LOADED(S_M_Y_BlackOps_01)
|
|
IF NOT DOES_ENTITY_EXIST(pedMerc[4])
|
|
createMercenary(4,FALSE)
|
|
ENDIF
|
|
IF NOT DOES_ENTITY_EXIST(pedMerc[5])
|
|
createMercenary(5,FALSE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF CREATE_NPC_PED_ON_FOOT(pedFloyd, CHAR_FLOYD, <<479.753, -3114.320, 5.070>>, 0.0)
|
|
SET_PED_CAN_BE_TARGETTED(pedFloyd, FALSE)
|
|
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedFloyd, TRUE)
|
|
SET_PED_CAN_RAGDOLL_FROM_PLAYER_IMPACT(pedFloyd, FALSE)
|
|
SET_PED_RELATIONSHIP_GROUP_HASH(pedFloyd, RELGROUPHASH_PLAYER)
|
|
SET_PED_RELATIONSHIP_GROUP_HASH(pedFloyd ,rel_group_buddies)
|
|
SET_ENTITY_PROOFS(pedFloyd, FALSE, FALSE, FALSE, TRUE, FALSE)
|
|
SET_PED_AS_ENEMY(pedFloyd , FALSE)
|
|
SET_PED_CONFIG_FLAG(pedFloyd,PCF_CanActivateRagdollWhenVehicleUpsideDown,TRUE)
|
|
SET_ENTITY_AS_MISSION_ENTITY(pedFloyd)
|
|
ADD_PED_FOR_DIALOGUE(sSpeech, 3, pedFloyd, "FLOYD")
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
|
|
CASE REQ_TREVORS_TRUCK
|
|
IF NOT DOES_ENTITY_EXIST(vehMission)
|
|
REQUEST_VEHICLE_ASSET(BODHI2)
|
|
CREATE_PLAYER_VEHICLE(vehMission, CHAR_TREVOR ,vPos, fHeading, TRUE)
|
|
ELSE
|
|
REQUEST_VEHICLE_ASSET(BODHI2)
|
|
IF HAS_VEHICLE_ASSET_LOADED(BODHI2)
|
|
IF IS_VEHICLE_DRIVEABLE(vehMission)
|
|
SET_VEHICLE_HAS_STRONG_AXLES(vehMission,TRUE)
|
|
INFORM_MISSION_STATS_OF_DAMAGE_WATCH_ENTITY(vehMission)
|
|
INFORM_MISSION_STATS_OF_SPEED_WATCH_ENTITY(vehMission)
|
|
SET_ENTITY_SHOULD_FREEZE_WAITING_ON_COLLISION(vehMission,TRUE)
|
|
SET_VEHICLE_DISABLE_TOWING(vehMission,TRUE)
|
|
SET_VEHICLE_AUTOMATICALLY_ATTACHES(vehMission,FALSE)
|
|
SET_VEHICLE_CAN_LEAK_PETROL(vehMission,FALSE)
|
|
//PRINTLN("TREVOR TRUCK CREATED")//PRINTNL()
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE REQ_FLOYD
|
|
IF NOT DOES_ENTITY_EXIST(pedFloyd)
|
|
IF CREATE_NPC_PED_ON_FOOT(pedFloyd, CHAR_FLOYD, vPos, fHeading)
|
|
SET_PED_CAN_BE_TARGETTED(pedFloyd, FALSE)
|
|
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedFloyd, TRUE)
|
|
SET_PED_CAN_RAGDOLL_FROM_PLAYER_IMPACT(pedFloyd, FALSE)
|
|
SET_PED_RELATIONSHIP_GROUP_HASH(pedFloyd, RELGROUPHASH_PLAYER)
|
|
SET_PED_RELATIONSHIP_GROUP_HASH(pedFloyd ,rel_group_buddies)
|
|
SET_ENTITY_PROOFS(pedFloyd, FALSE, FALSE, FALSE, TRUE, FALSE)
|
|
SET_PED_AS_ENEMY(pedFloyd , FALSE)
|
|
SET_PED_CONFIG_FLAG(pedFloyd,PCF_CanActivateRagdollWhenVehicleUpsideDown,TRUE)
|
|
SET_ENTITY_AS_MISSION_ENTITY(pedFloyd)
|
|
ADD_PED_FOR_DIALOGUE(sSpeech, 3, pedFloyd, "FLOYD")
|
|
IF eMissionStage = MISSION_STAGE_OPENING_CUTSCENE
|
|
SET_PED_COMPONENT_VARIATION(pedFloyd, PED_COMP_HEAD, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedFloyd, PED_COMP_BERD, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedFloyd, PED_COMP_HAIR, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedFloyd, PED_COMP_TORSO, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedFloyd, PED_COMP_LEG, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedFloyd, PED_COMP_HAND, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedFloyd, PED_COMP_FEET, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedFloyd, PED_COMP_TEETH, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedFloyd, PED_COMP_SPECIAL, 1, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedFloyd, PED_COMP_SPECIAL2, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedFloyd, PED_COMP_DECL, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedFloyd, PED_COMP_JBIB, 0, 0)
|
|
CLEAR_ALL_PED_PROPS(pedFloyd)
|
|
PRINTSTRING("setting up Floyd's component variation for Opening cutscene for repeat play") PRINTNL()
|
|
PRINTSTRING("CLEAR_ALL_PED_PROPS(pedFloyd)") PRINTNL()
|
|
ENDIF
|
|
//PRINTLN("CREATING FLOYD")//PRINTNL()
|
|
RETURN TRUE
|
|
ENDIF
|
|
ELSE
|
|
IF sSpeech.PedInfo[3].Index != pedFloyd
|
|
ADD_PED_FOR_DIALOGUE(sSpeech, 3, pedFloyd, "FLOYD")
|
|
ENDIF
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
SET_PED_CAN_BE_TARGETTED(pedFloyd, FALSE)
|
|
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedFloyd, TRUE)
|
|
SET_PED_CAN_RAGDOLL_FROM_PLAYER_IMPACT(pedFloyd, FALSE)
|
|
SET_PED_RELATIONSHIP_GROUP_HASH(pedFloyd, RELGROUPHASH_PLAYER)
|
|
SET_PED_RELATIONSHIP_GROUP_HASH(pedFloyd ,rel_group_buddies)
|
|
SET_ENTITY_PROOFS(pedFloyd, FALSE, FALSE, FALSE, TRUE, FALSE)
|
|
SET_PED_AS_ENEMY(pedFloyd , FALSE)
|
|
SET_PED_CONFIG_FLAG(pedFloyd,PCF_CanActivateRagdollWhenVehicleUpsideDown,TRUE)
|
|
SET_ENTITY_AS_MISSION_ENTITY(pedFloyd)
|
|
ENDIF
|
|
//PRINTLN("CREATING FLOYD")//PRINTNL()
|
|
RETURN TRUE
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE REQ_WADE
|
|
IF NOT DOES_ENTITY_EXIST(pedWade)
|
|
IF CREATE_NPC_PED_ON_FOOT(pedWade, CHAR_WADE, vPos, fHeading)
|
|
SET_PED_CAN_BE_TARGETTED(pedWade, FALSE)
|
|
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedWade, TRUE)
|
|
SET_PED_CAN_RAGDOLL_FROM_PLAYER_IMPACT(pedWade, FALSE)
|
|
SET_PED_RELATIONSHIP_GROUP_HASH(pedWade, RELGROUPHASH_PLAYER)
|
|
SET_PED_RELATIONSHIP_GROUP_HASH(pedWade ,rel_group_buddies)
|
|
SET_ENTITY_PROOFS(pedWade, FALSE, FALSE, FALSE, TRUE, FALSE)
|
|
SET_PED_CONFIG_FLAG(pedWade,PCF_CanActivateRagdollWhenVehicleUpsideDown,TRUE)
|
|
SET_PED_AS_ENEMY(pedWade , FALSE)
|
|
SET_ENTITY_AS_MISSION_ENTITY(pedWade)
|
|
ADD_PED_FOR_DIALOGUE(sSpeech, 4, pedWade, "WADE")
|
|
//PRINTLN("CREATED WADE")//PRINTNL()
|
|
RETURN TRUE
|
|
ENDIF
|
|
ELSE
|
|
IF sSpeech.PedInfo[4].Index != pedWade
|
|
ADD_PED_FOR_DIALOGUE(sSpeech, 4, pedWade, "WADE")
|
|
ENDIF
|
|
IF NOT IS_PED_INJURED(pedWade)
|
|
SET_PED_CAN_BE_TARGETTED(pedWade, FALSE)
|
|
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedWade, TRUE)
|
|
SET_PED_CAN_RAGDOLL_FROM_PLAYER_IMPACT(pedWade, FALSE)
|
|
SET_PED_RELATIONSHIP_GROUP_HASH(pedWade, RELGROUPHASH_PLAYER)
|
|
SET_PED_RELATIONSHIP_GROUP_HASH(pedWade ,rel_group_buddies)
|
|
SET_ENTITY_PROOFS(pedWade, FALSE, FALSE, FALSE, TRUE, FALSE)
|
|
SET_PED_CONFIG_FLAG(pedWade,PCF_CanActivateRagdollWhenVehicleUpsideDown,TRUE)
|
|
SET_PED_AS_ENEMY(pedWade , FALSE)
|
|
SET_ENTITY_AS_MISSION_ENTITY(pedWade)
|
|
ENDIF
|
|
//PRINTLN("CREATED WADE")//PRINTNL()
|
|
RETURN TRUE
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE REQ_SECURITY
|
|
IF NOT DOES_ENTITY_EXIST(pedSecurity)
|
|
REQUEST_MODEL(S_M_M_DOCKWORK_01)
|
|
IF HAS_MODEL_LOADED(S_M_M_DOCKWORK_01)
|
|
IF NOT DOES_ENTITY_EXIST(pedSecurity)
|
|
SPAWN_PED(pedSecurity,S_M_M_DOCKWORK_01,vSecurity,fSecurity)
|
|
SET_RAGDOLL_BLOCKING_FLAGS(pedSecurity,RBF_PLAYER_IMPACT)
|
|
SET_PED_CAPSULE(pedSecurity,0.4)
|
|
//PRINTLN("CREATED SECURITY")//PRINTNL()
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
//PRINTLN("CREATED SECURITY")//PRINTNL()
|
|
RETURN TRUE
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE REQ_HANDLER
|
|
IF NOT DOES_ENTITY_EXIST(vehHandler)
|
|
REQUEST_VEHICLE_ASSET(HANDLER)
|
|
REQUEST_MODEL(HANDLER)
|
|
IF HAS_MODEL_LOADED(HANDLER)
|
|
SPAWN_VEHICLE(vehHandler,HANDLER,<<-129.77, -2418.28, 6.24>>,183.0850)
|
|
SET_VEHICLE_ON_GROUND_PROPERLY(vehHandler)
|
|
SET_VEHICLE_PROVIDES_COVER(vehHandler,FALSE)
|
|
SET_VEHICLE_AS_RESTRICTED(vehHandler,4)
|
|
RETURN TRUE
|
|
ENDIF
|
|
ELSE
|
|
REQUEST_VEHICLE_ASSET(HANDLER)
|
|
IF HAS_VEHICLE_ASSET_LOADED(HANDLER)
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE REQ_CAR_TO_DRIVE_FINAL_STAGE
|
|
IF NOT DOES_ENTITY_EXIST(vanByDocks)
|
|
REQUEST_MODEL(TOWTRUCK)
|
|
IF HAS_MODEL_LOADED(TOWTRUCK)
|
|
SPAWN_VEHICLE(vanByDocks,TOWTRUCK,<<505.8820, -3053.2310, 5.0695>>, 180.3786)
|
|
SET_VEHICLE_NUMBER_PLATE_TEXT(vanByDocks,"5T3ALM3")
|
|
RETURN TRUE
|
|
ENDIF
|
|
ELSE
|
|
RETURN TRUE
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE REQ_MERRYWEATHER_GUARDS_AT_OTHER_DOCKS
|
|
|
|
IF NOT DOES_ENTITY_EXIST(pedMerc[4])
|
|
AND NOT DOES_ENTITY_EXIST(pedMerc[5])
|
|
AND NOT DOES_ENTITY_EXIST(pedMerc[6])
|
|
REQUEST_MODEL(S_M_Y_BlackOps_01)
|
|
IF HAS_MODEL_LOADED(S_M_Y_BlackOps_01)
|
|
createMercenary(4,FALSE)
|
|
createMercenary(5,FALSE)
|
|
createMercenary(6,FALSE)
|
|
ENDIF
|
|
ELSE
|
|
IF NOT IS_PED_INJURED(pedMerc[4])
|
|
TASK_START_SCENARIO_IN_PLACE(pedMerc[4],"WORLD_HUMAN_GUARD_STAND_ARMY")
|
|
ENDIF
|
|
IF NOT IS_PED_INJURED(pedMerc[5])
|
|
TASK_START_SCENARIO_IN_PLACE(pedMerc[5],"WORLD_HUMAN_GUARD_STAND_ARMY")
|
|
ENDIF
|
|
IF NOT IS_PED_INJURED(pedMerc[6])
|
|
TASK_START_SCENARIO_IN_PLACE(pedMerc[6],"WORLD_HUMAN_GUARD_STAND")
|
|
ENDIF
|
|
RETURN TRUE
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
|
|
CASE REQ_CRANE
|
|
|
|
IF IS_VECTOR_ZERO(vPos)
|
|
|
|
ENDIF
|
|
|
|
IF fHeading > 0
|
|
|
|
ENDIF
|
|
|
|
IF NOT DOES_ENTITY_EXIST(s_crane.obj_main)
|
|
REQUEST_MODEL(model_crane)
|
|
REQUEST_MODEL(model_spreader)
|
|
REQUEST_MODEL(model_cabin)
|
|
REQUEST_MODEL(model_wheel_left)
|
|
REQUEST_MODEL(model_wheel_right)
|
|
REQUEST_MODEL(model_boom)
|
|
REQUEST_MODEL(model_container)
|
|
REQUEST_MODEL(model_left_door)
|
|
REQUEST_MODEL(model_right_door)
|
|
REQUEST_COLLISION_FOR_MODEL(model_spreader)
|
|
REQUEST_ANIM_DICT("missheistdockssetup1leadinoutlsdhs_mcs_1_p2")
|
|
ROPE_LOAD_TEXTURES()
|
|
|
|
|
|
IF HAS_MODEL_LOADED(model_crane)
|
|
AND HAS_MODEL_LOADED(model_spreader)
|
|
AND HAS_MODEL_LOADED(model_cabin)
|
|
AND HAS_MODEL_LOADED(model_container)
|
|
AND HAS_MODEL_LOADED(model_left_door)
|
|
AND HAS_MODEL_LOADED(model_right_door)
|
|
AND HAS_MODEL_LOADED(model_wheel_left)
|
|
AND HAS_MODEL_LOADED(model_wheel_right)
|
|
AND HAS_MODEL_LOADED(model_boom)
|
|
AND REQUEST_AMBIENT_AUDIO_BANK("Crane")
|
|
AND REQUEST_AMBIENT_AUDIO_BANK("Crane_Stress")
|
|
AND REQUEST_AMBIENT_AUDIO_BANK("Crane_Impact_Sweeteners")
|
|
AND HAS_ANIM_DICT_LOADED("missheistdockssetup1leadinoutlsdhs_mcs_1_p2")
|
|
AND ROPE_ARE_TEXTURES_LOADED()
|
|
|
|
REMOVE_IPL("pcranecont")
|
|
//Main crane
|
|
s_crane.v_start_pos = v_crane_pos
|
|
s_crane.obj_main = CREATE_OBJECT(model_crane, s_crane.v_start_pos)
|
|
SET_ENTITY_HEADING(s_crane.obj_main, 180)
|
|
FREEZE_ENTITY_POSITION(s_crane.obj_main, TRUE)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(model_crane)
|
|
|
|
//Cabin
|
|
//s_crane.v_cabin_attach_offset = <<9.028, 0.0, 33.65>>
|
|
//P_Dock_RTG_LD_Cab
|
|
s_crane.obj_cabin = CREATE_OBJECT(model_cabin, GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_crane.obj_main, s_crane.v_cabin_attach_offset))
|
|
SET_ENTITY_COORDS_NO_OFFSET(s_crane.obj_cabin, GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_crane.obj_main, s_crane.v_cabin_attach_offset))
|
|
SET_ENTITY_HEADING(s_crane.obj_cabin, GET_ENTITY_HEADING(s_crane.obj_main))
|
|
FREEZE_ENTITY_POSITION(s_crane.obj_cabin, TRUE)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(model_cabin)
|
|
|
|
//Spreader and helper: the spreader is attached via ropes to an invisible helper object (currently no way to resize rope attachments, so instead
|
|
//the invisible object is moved)
|
|
s_crane.v_spreader_attach_offset = <<0.0, 0.0, SPREADER_START_OFFSET>>
|
|
//s_crane.obj_spreader = CREATE_OBJECT(model_spreader, GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_crane.obj_cabin, s_crane.v_spreader_attach_offset))
|
|
s_crane.obj_spreader = CREATE_OBJECT_NO_OFFSET(model_spreader, vSpreaderPosition)
|
|
SET_ENTITY_SHOULD_FREEZE_WAITING_ON_COLLISION(s_crane.obj_spreader, FALSE)
|
|
//DAMPENING
|
|
SET_OBJECT_PHYSICS_PARAMS(s_crane.obj_spreader, -1, -1, <<-1,-1,-1>>, <<1,2.3,0.7>>)
|
|
//NO SWING
|
|
//FREEZE_ENTITY_POSITION(s_crane.obj_spreader, TRUE)
|
|
ATTACH_ENTITY_TO_ENTITY(s_crane.obj_spreader, s_crane.obj_cabin, -1, s_crane.v_spreader_attach_offset, <<0.0, 0.0, -90.0>>)
|
|
DETACH_ENTITY(s_Crane.obj_Spreader, TRUE, FALSE)
|
|
|
|
v_helper_offset = s_crane.v_spreader_attach_offset - <<0.0, 0.0, SPREADER_START_OFFSET>>
|
|
//NO SWING
|
|
//s_crane.obj_helper = CREATE_OBJECT(model_spreader, GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_crane.obj_cabin, v_helper_offset))
|
|
s_crane.obj_helper = CREATE_OBJECT(model_spreader, vSpreaderPosition)
|
|
|
|
SET_ENTITY_HEADING(s_crane.obj_helper, GET_ENTITY_HEADING(s_crane.obj_cabin))
|
|
FREEZE_ENTITY_POSITION(s_crane.obj_helper, TRUE)
|
|
SET_ENTITY_VISIBLE(s_crane.obj_helper, FALSE)
|
|
SET_ENTITY_COLLISION(s_crane.obj_helper,FALSE)
|
|
//SET_ENTITY_VISIBLE(s_crane.obj_helper, TRUE)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(model_spreader)
|
|
|
|
s_crane.i_dampingframes = 0
|
|
//15.26
|
|
|
|
//New Wheel positions
|
|
// ____________________
|
|
// |6 2|
|
|
// |7 3|
|
|
// | |
|
|
// | |
|
|
// | |
|
|
// |4 1|
|
|
// _5________________0_
|
|
|
|
//Set 1 0-1
|
|
// s_crane.v_wheel_offsets[0] = <<4.800, 9.300, 0.680>>
|
|
// s_crane.v_wheel_offsets[1] = <<3.400, 9.300, 0.680>>
|
|
// //Set 2 2-3
|
|
// s_crane.v_wheel_offsets[2] = <<-4.900, 9.300, 0.680>>
|
|
// s_crane.v_wheel_offsets[3] = <<-3.500, 9.300, 0.680>>
|
|
// //Set 3 4-5
|
|
// s_crane.v_wheel_offsets[4] = <<4.800, -9.300, 0.680>>
|
|
// s_crane.v_wheel_offsets[5] = <<3.400, -9.300, 0.680>>
|
|
// //Set 4 6-7
|
|
// s_crane.v_wheel_offsets[6] = <<-4.900, -9.300, 0.680>>
|
|
// s_crane.v_wheel_offsets[7] = <<-3.500, -9.300, 0.680>>
|
|
|
|
s_crane.v_wheel_offsets[0] = <<4.700, 9.450, 0.680>>
|
|
s_crane.v_wheel_offsets[1] = <<3.300, 9.450, 0.680>>
|
|
//Set 2 2-3
|
|
s_crane.v_wheel_offsets[2] = <<-5.000, 9.450, 0.680>>
|
|
s_crane.v_wheel_offsets[3] = <<-3.600, 9.450, 0.680>>
|
|
//Set 3 4-5
|
|
s_crane.v_wheel_offsets[4] = <<4.700, -9.025, 0.680>>
|
|
s_crane.v_wheel_offsets[5] = <<3.300, -9.025, 0.680>>
|
|
//Set 4 6-7
|
|
s_crane.v_wheel_offsets[6] = <<-5.000, -9.025, 0.680>>
|
|
s_crane.v_wheel_offsets[7] = <<-3.600, -9.025, 0.680>>
|
|
|
|
INT i
|
|
|
|
REPEAT COUNT_OF(s_crane.obj_wheels) i
|
|
|
|
IF i > 3
|
|
model_wheel = model_wheel_right
|
|
s_crane.obj_wheels[i] = CREATE_OBJECT_NO_OFFSET(model_wheel, GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_crane.obj_main, s_crane.v_wheel_offsets[i]))
|
|
SET_ENTITY_HEADING(s_crane.obj_wheels[i], GET_ENTITY_HEADING(s_crane.obj_main)-180)
|
|
ELSE
|
|
s_crane.obj_wheels[i] = CREATE_OBJECT_NO_OFFSET(model_wheel, GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_crane.obj_main, s_crane.v_wheel_offsets[i]))
|
|
SET_ENTITY_HEADING(s_crane.obj_wheels[i], GET_ENTITY_HEADING(s_crane.obj_main))
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
REPEAT COUNT_OF(s_crane.obj_wheels) i
|
|
//FREEZE_ENTITY_POSITION(s_crane.obj_wheels[i], FALSE)
|
|
ATTACH_ENTITY_TO_ENTITY(s_crane.obj_wheels[i], s_crane.obj_main, -1, s_crane.v_wheel_offsets[i], <<0.0, 0.0, 0.0>>)
|
|
ENDREPEAT
|
|
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(model_wheel_left)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(model_wheel_right)
|
|
|
|
//Setup crane sound ids
|
|
s_crane.i_cabin_sound_id = GET_SOUND_ID()
|
|
s_crane.i_crane_sound_id = GET_SOUND_ID()
|
|
s_crane.i_spreader_sound_id = GET_SOUND_ID()
|
|
s_crane.i_lift_sound_id = GET_SOUND_ID()
|
|
s_crane.i_strain_sound_id = GET_SOUND_ID()
|
|
s_crane.i_spreader_fail_sound_id = GET_SOUND_ID()
|
|
|
|
s_crane.b_spreader_stuck_on_ground = FALSE
|
|
|
|
ENDIF
|
|
ELIF NOT bAddedRopes
|
|
IF DOES_ENTITY_HAVE_PHYSICS(s_Crane.obj_spreader)
|
|
AND DOES_ENTITY_HAVE_PHYSICS(s_Crane.obj_cabin)
|
|
//FLOAT fRopeStartLength
|
|
//fRopeStartLength = -SPREADER_START_OFFSET - 4.0
|
|
|
|
//Fudge for ropes not working on Z-skip: the code needs physics on the cabin, so load the scene and unfreeze the object, then freeze it again
|
|
//after attaching the ropes.
|
|
IF bIsJumpingDirectlyToStage
|
|
AND eMissionStage > MISSION_STAGE_6
|
|
FREEZE_ENTITY_POSITION(s_Crane.obj_Cabin, FALSE)
|
|
|
|
SET_ENTITY_COORDS(PLAYER_PED_ID(), s_crane.v_start_pos)
|
|
LOAD_SCENE(s_crane.v_start_pos)
|
|
|
|
WAIT(500)
|
|
ENDIF
|
|
|
|
s_crane.ropes[0] = ADD_ROPE(GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_crane.obj_cabin, <<-1.0, -2.7, -1.78>>), //-1.78 //-1.75
|
|
<<0.0, 0.0, 0.0>>, 15.26, PHYSICS_ROPE_THIN, -SPREADER_START_OFFSET , f_ropes_min_len, f_ropes_len_change_rate ) //15.26
|
|
s_crane.ropes[1] = ADD_ROPE(GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_crane.obj_cabin, <<-1.0, 2.7, -1.78>>),
|
|
<<0.0, 0.0, 0.0>>, 15.26, PHYSICS_ROPE_THIN, -SPREADER_START_OFFSET , f_ropes_min_len, f_ropes_len_change_rate )
|
|
s_crane.ropes[2] = ADD_ROPE(GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_crane.obj_cabin, <<1.0, 2.7, -1.78>>),
|
|
<<0.0, 0.0, 0.0>>, 15.26, PHYSICS_ROPE_THIN, -SPREADER_START_OFFSET , f_ropes_min_len, f_ropes_len_change_rate )
|
|
s_crane.ropes[3] = ADD_ROPE(GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_crane.obj_cabin,<<1.0, 2.7, -1.78>>),
|
|
<<0.0, 0.0, 0.0>>, 15.26, PHYSICS_ROPE_THIN, -SPREADER_START_OFFSET , f_ropes_min_len, f_ropes_len_change_rate )
|
|
|
|
s_crane.ropes[4] = ADD_ROPE(GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_crane.obj_cabin, <<-0.05, -2.7, -1.78>>),
|
|
<<0.0, 0.0, 0.0>>, 15.26, PHYSICS_ROPE_THIN, -SPREADER_START_OFFSET , f_ropes_min_len, f_ropes_len_change_rate )
|
|
s_crane.ropes[5] = ADD_ROPE(GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_crane.obj_cabin, <<-0.05, 2.7, -1.78>>),
|
|
<<0.0, 0.0, 0.0>>, 15.26, PHYSICS_ROPE_THIN, -SPREADER_START_OFFSET , f_ropes_min_len, f_ropes_len_change_rate )
|
|
s_crane.ropes[6] = ADD_ROPE(GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_crane.obj_cabin, <<0.05, -2.7, -1.78>>),
|
|
<<0.0, 0.0, 0.0>>, 15.26, PHYSICS_ROPE_THIN, -SPREADER_START_OFFSET , f_ropes_min_len, f_ropes_len_change_rate )
|
|
s_crane.ropes[7] = ADD_ROPE(GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_crane.obj_cabin, <<0.05, 2.7, -1.78>>),
|
|
<<0.0, 0.0, 0.0>>, 15.26, PHYSICS_ROPE_THIN, -SPREADER_START_OFFSET, f_ropes_min_len, f_ropes_len_change_rate )
|
|
|
|
ROPE_SET_SMOOTH_REELIN( s_crane.ropes[0], TRUE )
|
|
ROPE_SET_SMOOTH_REELIN( s_crane.ropes[1], TRUE )
|
|
ROPE_SET_SMOOTH_REELIN( s_crane.ropes[2], TRUE )
|
|
ROPE_SET_SMOOTH_REELIN( s_crane.ropes[3], TRUE )
|
|
ROPE_SET_SMOOTH_REELIN( s_crane.ropes[4], TRUE )
|
|
ROPE_SET_SMOOTH_REELIN( s_crane.ropes[5], TRUE )
|
|
ROPE_SET_SMOOTH_REELIN( s_crane.ropes[6], TRUE )
|
|
ROPE_SET_SMOOTH_REELIN( s_crane.ropes[7], TRUE )
|
|
|
|
ROPE_SET_UPDATE_ORDER( s_crane.ropes[0], 2 )
|
|
ROPE_SET_UPDATE_ORDER( s_crane.ropes[1], 2 )
|
|
ROPE_SET_UPDATE_ORDER( s_crane.ropes[2], 2 )
|
|
ROPE_SET_UPDATE_ORDER( s_crane.ropes[3], 2 )
|
|
ROPE_SET_UPDATE_ORDER( s_crane.ropes[4], 2 )
|
|
ROPE_SET_UPDATE_ORDER( s_crane.ropes[5], 2 )
|
|
ROPE_SET_UPDATE_ORDER( s_crane.ropes[6], 2 )
|
|
ROPE_SET_UPDATE_ORDER( s_crane.ropes[7], 2 )
|
|
|
|
|
|
ATTACH_ENTITIES_TO_ROPE(s_crane.ropes[0], s_crane.obj_cabin, s_crane.obj_spreader,
|
|
GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_crane.obj_cabin, vRopeTop1),
|
|
GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_crane.obj_spreader, vRopeBottom1), -SPREADER_START_OFFSET , 0, 0)
|
|
|
|
ATTACH_ENTITIES_TO_ROPE(s_crane.ropes[1], s_crane.obj_cabin, s_crane.obj_spreader,
|
|
GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_crane.obj_cabin, vRopeTop2),
|
|
GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_crane.obj_spreader, vRopeBottom2), -SPREADER_START_OFFSET , 0, 0)
|
|
|
|
ATTACH_ENTITIES_TO_ROPE(s_crane.ropes[2], s_crane.obj_cabin, s_crane.obj_spreader,
|
|
GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_crane.obj_cabin, vRopeTop3),
|
|
GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_crane.obj_spreader, vRopeBottom3), -SPREADER_START_OFFSET, 0, 0)
|
|
|
|
ATTACH_ENTITIES_TO_ROPE(s_crane.ropes[3], s_crane.obj_cabin, s_crane.obj_spreader,
|
|
GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_crane.obj_cabin, vRopeTop4),
|
|
GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_crane.obj_spreader, vRopeBottom4), -SPREADER_START_OFFSET, 0, 0)
|
|
|
|
ATTACH_ENTITIES_TO_ROPE(s_crane.ropes[4], s_crane.obj_cabin, s_crane.obj_spreader,
|
|
GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_crane.obj_cabin, vRopeTop5),
|
|
GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_crane.obj_spreader, vRopeBottom5), -SPREADER_START_OFFSET , 0, 0)
|
|
|
|
ATTACH_ENTITIES_TO_ROPE(s_crane.ropes[5], s_crane.obj_cabin, s_crane.obj_spreader,
|
|
GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_crane.obj_cabin, vRopeTop6),
|
|
GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_crane.obj_spreader, vRopeBottom6), -SPREADER_START_OFFSET , 0, 0)
|
|
|
|
ATTACH_ENTITIES_TO_ROPE(s_crane.ropes[6], s_crane.obj_cabin, s_crane.obj_spreader,
|
|
GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_crane.obj_cabin, vRopeTop7),
|
|
GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_crane.obj_spreader, vRopeBottom7), -SPREADER_START_OFFSET, 0, 0)
|
|
|
|
ATTACH_ENTITIES_TO_ROPE(s_crane.ropes[7], s_crane.obj_cabin, s_crane.obj_spreader,
|
|
GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_crane.obj_cabin, vRopeTop8),
|
|
GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_crane.obj_spreader, vRopeBottom8), -SPREADER_START_OFFSET, 0, 0)
|
|
|
|
//CRANE GUY STUFF
|
|
IF eMissionStage != MISSION_STAGE_8
|
|
IF DOES_ENTITY_EXIST(pedDockWorker[14])
|
|
IF NOT IS_PED_INJURED(pedDockWorker[14])
|
|
IF NOT IS_SYNCHRONIZED_SCENE_RUNNING(ssCraneWorker)
|
|
ssCraneWorker = CREATE_SYNCHRONIZED_SCENE(<< 3.050, -0.350, 0.350 >>, << 0.000, 0.000, 180.000 >>)
|
|
ATTACH_SYNCHRONIZED_SCENE_TO_ENTITY(ssCraneWorker,s_crane.obj_cabin,-1)
|
|
//ATTACH_SYNCHRONIZED_SCENE_TO_ENTITY(ssCraneWorker,s_crane.obj_helper,-1)
|
|
TASK_SYNCHRONIZED_SCENE (pedDockWorker[14],ssCraneWorker, "missheistdockssetup1leadinoutlsdhs_mcs_1_p2", "leadin_idle_b", INSTANT_BLEND_IN, INSTANT_BLEND_OUT , SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT)
|
|
SET_ENTITY_NO_COLLISION_ENTITY(pedDockWorker[14],s_crane.obj_cabin,FALSE)
|
|
SET_SYNCHRONIZED_SCENE_LOOPED(ssCraneWorker,TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
bAddedRopes = TRUE
|
|
|
|
//NO SWING
|
|
FREEZE_ENTITY_POSITION(s_crane.obj_spreader, FALSE)
|
|
|
|
APPLY_FORCE_TO_ENTITY_CENTER_OF_MASS(s_crane.obj_spreader, APPLY_TYPE_IMPULSE, <<0.0, 0.0, 0.01>>, 0, FALSE, TRUE)
|
|
|
|
|
|
IF bIsJumpingDirectlyToStage
|
|
AND eMissionStage > MISSION_STAGE_4
|
|
FREEZE_ENTITY_POSITION(s_crane.obj_cabin, TRUE)
|
|
ENDIF
|
|
|
|
RETURN TRUE
|
|
ELSE
|
|
PRINTSTRING("AWAITING PHYSICS ON CRANE PROPS")//PRINTNL()
|
|
IF NOT DOES_ENTITY_HAVE_PHYSICS(s_Crane.obj_spreader)
|
|
PRINTSTRING("NO PHYSICS ON SPREADER")//PRINTNL()
|
|
ENDIF
|
|
IF NOT DOES_ENTITY_HAVE_PHYSICS(s_Crane.obj_cabin)
|
|
PRINTSTRING("NO PHYSICS ON CABIN")//PRINTNL()
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
RETURN TRUE
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE REQ_CRANE_CONTAINERS
|
|
REQUEST_MODEL(model_container)
|
|
REQUEST_MODEL(model_left_door)
|
|
REQUEST_MODEL(model_right_door)
|
|
IF HAS_MODEL_LOADED(model_container)
|
|
AND HAS_MODEL_LOADED(model_left_door)
|
|
AND HAS_MODEL_LOADED(model_right_door)
|
|
|
|
//Containers
|
|
IF NOT DOES_ENTITY_EXIST( s_containers[0].obj_main)
|
|
s_containers[0].obj_main = CREATE_OBJECT_NO_OFFSET(model_container, << -53.2547, -2412.8684, 5.0007 >>)
|
|
SET_ENTITY_HEADING(s_containers[0].obj_main, 91.2705)
|
|
FREEZE_ENTITY_POSITION(s_containers[0].obj_main, TRUE)
|
|
ENDIF
|
|
|
|
IF NOT DOES_ENTITY_EXIST( s_containers[0].obj_left_door)
|
|
s_containers[0].obj_left_door = CREATE_OBJECT(model_left_door, << -53.2547, -2411.8684, 5.0007 >>)
|
|
SET_ENTITY_COORDS_NO_OFFSET(s_containers[0].obj_left_door, GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_containers[0].obj_main, v_left_door_offset))
|
|
SET_ENTITY_HEADING(s_containers[0].obj_left_door, GET_ENTITY_HEADING(s_containers[0].obj_main) - 150.0)
|
|
FREEZE_ENTITY_POSITION(s_containers[0].obj_left_door, TRUE)
|
|
ENDIF
|
|
|
|
IF NOT DOES_ENTITY_EXIST( s_containers[0].obj_right_door)
|
|
s_containers[0].obj_right_door = CREATE_OBJECT(model_right_door, << -53.2547, -2413.8684, 5.0007 >>)
|
|
SET_ENTITY_COORDS_NO_OFFSET(s_containers[0].obj_right_door, GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_containers[0].obj_main, v_right_door_offset))
|
|
SET_ENTITY_HEADING(s_containers[0].obj_right_door, GET_ENTITY_HEADING(s_containers[0].obj_main) + 150.0)
|
|
FREEZE_ENTITY_POSITION(s_containers[0].obj_right_door, TRUE)
|
|
ENDIF
|
|
|
|
//99.2664
|
|
IF NOT DOES_ENTITY_EXIST( s_containers[1].obj_main)
|
|
s_containers[1].obj_main = CREATE_OBJECT_NO_OFFSET(model_container, << -52.8189, -2418.3357, 5.0009 >>)
|
|
SET_ENTITY_HEADING(s_containers[1].obj_main, 91.2705)
|
|
FREEZE_ENTITY_POSITION(s_containers[1].obj_main, TRUE)
|
|
ENDIF
|
|
|
|
IF NOT DOES_ENTITY_EXIST( s_containers[1].obj_left_door)
|
|
s_containers[1].obj_left_door = CREATE_OBJECT(model_left_door, << -52.8189, -2417.3357, 5.0009 >>)
|
|
SET_ENTITY_COORDS_NO_OFFSET(s_containers[1].obj_left_door, GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_containers[1].obj_main, v_left_door_offset))
|
|
SET_ENTITY_HEADING(s_containers[1].obj_left_door, GET_ENTITY_HEADING(s_containers[0].obj_main) - 150.0)
|
|
FREEZE_ENTITY_POSITION(s_containers[1].obj_left_door, TRUE)
|
|
ENDIF
|
|
|
|
IF NOT DOES_ENTITY_EXIST( s_containers[1].obj_right_door)
|
|
s_containers[1].obj_right_door = CREATE_OBJECT(model_right_door, << -52.8189, -2415.3357, 5.0009 >>)
|
|
SET_ENTITY_COORDS_NO_OFFSET(s_containers[1].obj_right_door, GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_containers[1].obj_main, v_right_door_offset))
|
|
SET_ENTITY_HEADING(s_containers[1].obj_right_door, GET_ENTITY_HEADING(s_containers[0].obj_main) + 150.0)
|
|
FREEZE_ENTITY_POSITION(s_containers[1].obj_right_door, TRUE)
|
|
ENDIF
|
|
|
|
//Close container doors
|
|
IF DOES_ENTITY_EXIST( s_containers[0].obj_main)
|
|
IF DOES_ENTITY_EXIST(s_containers[0].obj_left_door)
|
|
ATTACH_ENTITY_TO_ENTITY(s_containers[0].obj_left_door, s_containers[0].obj_main, -1, v_left_door_offset, <<0.0, 0.0, 0.0>>,FALSE,FALSE,TRUE)
|
|
SET_ENTITY_NO_COLLISION_ENTITY(s_containers[0].obj_left_door, s_containers[0].obj_main,TRUE)
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(s_containers[0].obj_right_door)
|
|
ATTACH_ENTITY_TO_ENTITY(s_containers[0].obj_right_door, s_containers[0].obj_main, -1, v_right_door_offset, <<0.0, 0.0, 0.0>>,FALSE,FALSE,TRUE)
|
|
SET_ENTITY_NO_COLLISION_ENTITY(s_containers[0].obj_right_door, s_containers[0].obj_main,TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST( s_containers[1].obj_main)
|
|
AND DOES_ENTITY_EXIST( s_containers[0].obj_main)
|
|
IF DOES_ENTITY_EXIST(s_containers[1].obj_left_door)
|
|
AND DOES_ENTITY_EXIST(s_containers[0].obj_left_door)
|
|
ATTACH_ENTITY_TO_ENTITY(s_containers[1].obj_left_door, s_containers[1].obj_main, -1, v_left_door_offset, <<0.0, 0.0, 0.0>>,FALSE,FALSE,TRUE)
|
|
SET_ENTITY_NO_COLLISION_ENTITY(s_containers[1].obj_left_door, s_containers[1].obj_main,TRUE)
|
|
ENDIF
|
|
IF DOES_ENTITY_EXIST(s_containers[1].obj_right_door)
|
|
AND DOES_ENTITY_EXIST(s_containers[1].obj_right_door)
|
|
ATTACH_ENTITY_TO_ENTITY(s_containers[1].obj_right_door, s_containers[1].obj_main, -1, v_right_door_offset, <<0.0, 0.0, 0.0>>,FALSE,FALSE,TRUE)
|
|
SET_ENTITY_NO_COLLISION_ENTITY(s_containers[1].obj_right_door, s_containers[1].obj_main,TRUE)
|
|
ENDIF
|
|
RETURN TRUE
|
|
ENDIF
|
|
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(model_container)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(model_left_door)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(model_right_door)
|
|
ENDIF
|
|
BREAK
|
|
|
|
|
|
ENDSWITCH
|
|
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
FUNC BOOL SETUP_MISSION_REQUIREMENT(MISSION_REQUIREMENT eRequirement)
|
|
RETURN SETUP_MISSION_REQUIREMENT_WITH_LOCATION(eRequirement, <<0.0, 0.0, 0.0>>)
|
|
ENDFUNC
|
|
|
|
PROC SWITCH_CRANE_VISIBILITY(BOOL bVisible)
|
|
|
|
IF DOES_ENTITY_EXIST(s_crane.obj_spreader)
|
|
SET_ENTITY_VISIBLE(s_crane.obj_spreader,bVisible)
|
|
ENDIF
|
|
IF DOES_ENTITY_EXIST(s_crane.obj_main)
|
|
SET_ENTITY_VISIBLE(s_crane.obj_main,bVisible)
|
|
ENDIF
|
|
IF DOES_ENTITY_EXIST(s_crane.obj_cabin)
|
|
SET_ENTITY_VISIBLE(s_crane.obj_cabin,bVisible)
|
|
ENDIF
|
|
IF DOES_ENTITY_EXIST(s_crane.obj_lift)
|
|
SET_ENTITY_VISIBLE(s_crane.obj_lift,bVisible)
|
|
ENDIF
|
|
IF DOES_ENTITY_EXIST(s_crane.obj_boom_cable)
|
|
SET_ENTITY_VISIBLE(s_crane.obj_boom_cable,bVisible)
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(s_crane.obj_spreader)
|
|
SET_ENTITY_COORDS(s_crane.obj_spreader,GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(s_crane.obj_cabin, s_crane.v_spreader_attach_offset) - <<0.0, 0.0, 1.0>> )
|
|
ENDIF
|
|
|
|
IF DOES_ROPE_EXIST(s_crane.ropes[0])
|
|
//SET_ENTITY_VISIBLE(s_crane.ropes[0],bVisible)
|
|
ENDIF
|
|
IF DOES_ROPE_EXIST(s_crane.ropes[1])
|
|
//SET_ENTITY_VISIBLE(s_crane.ropes[1],bVisible)
|
|
ENDIF
|
|
IF DOES_ROPE_EXIST(s_crane.ropes[2])
|
|
//SET_ENTITY_VISIBLE(s_crane.ropes[2],bVisible)
|
|
ENDIF
|
|
IF DOES_ROPE_EXIST(s_crane.ropes[3])
|
|
//SET_ENTITY_VISIBLE(s_crane.ropes[3],bVisible)
|
|
ENDIF
|
|
IF DOES_ROPE_EXIST(s_crane.ropes[4])
|
|
//SET_ENTITY_VISIBLE(s_crane.ropes[4],bVisible)
|
|
ENDIF
|
|
IF DOES_ROPE_EXIST(s_crane.ropes[5])
|
|
//SET_ENTITY_VISIBLE(s_crane.ropes[5],bVisible)
|
|
ENDIF
|
|
IF DOES_ROPE_EXIST(s_crane.ropes[6])
|
|
//SET_ENTITY_VISIBLE(s_crane.ropes[6],bVisible)
|
|
ENDIF
|
|
IF DOES_ROPE_EXIST(s_crane.ropes[7])
|
|
//SET_ENTITY_VISIBLE(s_crane.ropes[7],bVisible)
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(s_crane.obj_wheels[0])
|
|
SET_ENTITY_VISIBLE(s_crane.obj_wheels[0],bVisible)
|
|
ENDIF
|
|
IF DOES_ENTITY_EXIST(s_crane.obj_wheels[1])
|
|
SET_ENTITY_VISIBLE(s_crane.obj_wheels[1],bVisible)
|
|
ENDIF
|
|
IF DOES_ENTITY_EXIST(s_crane.obj_wheels[2])
|
|
SET_ENTITY_VISIBLE(s_crane.obj_wheels[2],bVisible)
|
|
ENDIF
|
|
IF DOES_ENTITY_EXIST(s_crane.obj_wheels[3])
|
|
SET_ENTITY_VISIBLE(s_crane.obj_wheels[3],bVisible)
|
|
ENDIF
|
|
IF DOES_ENTITY_EXIST(s_crane.obj_wheels[4])
|
|
SET_ENTITY_VISIBLE(s_crane.obj_wheels[4],bVisible)
|
|
ENDIF
|
|
IF DOES_ENTITY_EXIST(s_crane.obj_wheels[5])
|
|
SET_ENTITY_VISIBLE(s_crane.obj_wheels[5],bVisible)
|
|
ENDIF
|
|
IF DOES_ENTITY_EXIST(s_crane.obj_wheels[6])
|
|
SET_ENTITY_VISIBLE(s_crane.obj_wheels[6],bVisible)
|
|
ENDIF
|
|
IF DOES_ENTITY_EXIST(s_crane.obj_wheels[7])
|
|
SET_ENTITY_VISIBLE(s_crane.obj_wheels[7],bVisible)
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
// ======================================================================
|
|
// Load Stages
|
|
// ======================================================================
|
|
|
|
//PURPOSE: PreLoads the next stage when the player get near to it.
|
|
FUNC BOOL PRE_STREAM_MISSION_STAGE()
|
|
|
|
MISSION_STAGE_ENUM eStageToLoad = INT_TO_ENUM(MISSION_STAGE_ENUM, (ENUM_TO_INT(eMissionStage) + 1))
|
|
|
|
SWITCH iPreStreamStage
|
|
|
|
CASE 0
|
|
IF eStageToLoad = MISSION_STAGE_SETUP
|
|
iPreStreamStage++
|
|
ELIF eStageToLoad = MISSION_STAGE_OPENING_CUTSCENE
|
|
iPreStreamStage++
|
|
ELIF eStageToLoad = MISSION_STAGE_1
|
|
iPreStreamStage++
|
|
//PLAYER PARKS UP AND GET'S CHANGED
|
|
ELIF eStageToLoad = MISSION_STAGE_2
|
|
//ADD_MODEL_REQUEST_TO_ARRAY(S_M_Y_BlackOps_01)
|
|
//ADD_MODEL_REQUEST_TO_ARRAY(S_M_M_DOCKWORK_01)
|
|
//ADD_MODEL_REQUEST_TO_ARRAY(BIFF)
|
|
//ADD_MODEL_REQUEST_TO_ARRAY(FORKLIFT)
|
|
REQUEST_VEHICLE_RECORDING(1,"AWDocks4")
|
|
REQUEST_VEHICLE_RECORDING(1,"AWDocks5")
|
|
iPreStreamStage++
|
|
//CUTSCENE GET CHANGED
|
|
// ELIF eStageToLoad = MISSION_STAGE_3
|
|
// iPreStreamStage++
|
|
//FOLLOW floyd AROUND DOCKS
|
|
ELIF eStageToLoad = MISSION_STAGE_4
|
|
CLEANUP_LOADED_MODEL_ARRAY()
|
|
REQUEST_WAYPOINT_RECORDING("floyddocks1")
|
|
REQUEST_WAYPOINT_RECORDING("docksplayer1")
|
|
REQUEST_VEHICLE_RECORDING(1,"AWDock1")
|
|
REQUEST_VEHICLE_RECORDING(1,"AWDocks2")
|
|
iPreStreamStage++
|
|
//FORKLIFT AND TASKS
|
|
ELIF eStageToLoad = MISSION_STAGE_5
|
|
REQUEST_VEHICLE_RECORDING(1,"AWDocks3")
|
|
iPreStreamStage++
|
|
//FOLLOW floyd TO CRANE
|
|
ELIF eStageToLoad = MISSION_STAGE_6
|
|
CLEANUP_LOADED_MODEL_ARRAY()
|
|
ADD_MODEL_REQUEST_TO_ARRAY(Prop_Dock_RTG_LD)
|
|
ADD_MODEL_REQUEST_TO_ARRAY(P_Dock_RTG_LD_spdr)
|
|
ADD_MODEL_REQUEST_TO_ARRAY(P_Dock_RTG_LD_Cab)
|
|
ADD_MODEL_REQUEST_TO_ARRAY(PROP_CONTAINER_LD) //PROP_CONTAINER_LD_D
|
|
ADD_MODEL_REQUEST_TO_ARRAY(P_Dock_RTG_LD_wheel)
|
|
ADD_MODEL_REQUEST_TO_ARRAY(P_Dock_RTG_LD_wheel)
|
|
//ADD_MODEL_REQUEST_TO_ARRAY(P_DOCK_CRANE_CABLES)
|
|
ADD_MODEL_REQUEST_TO_ARRAY(PROP_CNTRDOOR_LD_L)
|
|
ADD_MODEL_REQUEST_TO_ARRAY(PROP_CNTRDOOR_LD_R)
|
|
iPreStreamStage++
|
|
//CRANE SECTION
|
|
ELIF eStageToLoad = MISSION_STAGE_7
|
|
CLEANUP_LOADED_MODEL_ARRAY()
|
|
REQUEST_VEHICLE_RECORDING(2,"AWDocks1")
|
|
ADD_MODEL_REQUEST_TO_ARRAY(BIFF)
|
|
ADD_MODEL_REQUEST_TO_ARRAY(HAULER)
|
|
ADD_MODEL_REQUEST_TO_ARRAY(DOCKTRAILER)
|
|
iPreStreamStage++
|
|
//USE CAMERA
|
|
ELIF eStageToLoad = MISSION_STAGE_8
|
|
CLEANUP_LOADED_MODEL_ARRAY()
|
|
ADD_MODEL_REQUEST_TO_ARRAY(BIFF)
|
|
ADD_MODEL_REQUEST_TO_ARRAY(HAULER)
|
|
ADD_MODEL_REQUEST_TO_ARRAY(DOCKTRAILER)
|
|
iPreStreamStage++
|
|
//DRIVE TO OTHER DOCKS
|
|
ELIF eStageToLoad = MISSION_STAGE_10
|
|
CLEANUP_LOADED_MODEL_ARRAY()
|
|
ADD_MODEL_REQUEST_TO_ARRAY(HAULER)
|
|
ADD_MODEL_REQUEST_TO_ARRAY(DOCKTRAILER)
|
|
ADD_MODEL_REQUEST_TO_ARRAY(TIPTRUCK)
|
|
//ADD_MODEL_REQUEST_TO_ARRAY(SUBMARINE)
|
|
ADD_MODEL_REQUEST_TO_ARRAY(S_M_Y_BlackOps_01)
|
|
ADD_MODEL_REQUEST_TO_ARRAY(S_M_M_DOCKWORK_01)
|
|
iPreStreamStage++
|
|
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 1
|
|
IF ARE_REQUESTED_MODELS_LOADED()
|
|
AND ARE_REQUESTED_CARRECS_LOADED("AWDocks1")
|
|
//AND ARE_REQUESTED_ANIMS_LOADED()
|
|
iPreStreamStage++
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 2
|
|
IF eStageToLoad = MISSION_STAGE_SETUP
|
|
iPreStreamStage++
|
|
ELIF eStageToLoad = MISSION_STAGE_OPENING_CUTSCENE
|
|
iPreStreamStage++
|
|
ELIF eStageToLoad = MISSION_STAGE_1
|
|
iPreStreamStage++
|
|
//PLAYER PARKS UP AND GET'S CHANGED
|
|
ELIF eStageToLoad = MISSION_STAGE_2
|
|
iPreStreamStage++
|
|
//CUTSCENE GET CHANGED
|
|
// ELIF eStageToLoad = MISSION_STAGE_3
|
|
// iPreStreamStage++
|
|
//FOLLOW floyd AROUND DOCKS
|
|
ELIF eStageToLoad = MISSION_STAGE_4
|
|
IF GET_IS_WAYPOINT_RECORDING_LOADED("floyddocks1")
|
|
AND GET_IS_WAYPOINT_RECORDING_LOADED("docksplayer1")
|
|
AND HAS_VEHICLE_RECORDING_BEEN_LOADED(1,"AWDock1")
|
|
AND HAS_VEHICLE_RECORDING_BEEN_LOADED(1,"AWDocks2")
|
|
iPreStreamStage++
|
|
ENDIF
|
|
//FORKLIFT AND TASKS
|
|
ELIF eStageToLoad = MISSION_STAGE_5
|
|
IF HAS_VEHICLE_RECORDING_BEEN_LOADED(1,"AWDocks3")
|
|
iPreStreamStage++
|
|
ENDIF
|
|
//FOLLOW floyd TO CRANE
|
|
ELIF eStageToLoad = MISSION_STAGE_6
|
|
iPreStreamStage++
|
|
//CRANE SECTION
|
|
ELIF eStageToLoad = MISSION_STAGE_7
|
|
iPreStreamStage++
|
|
//USE CAMERA
|
|
ELIF eStageToLoad = MISSION_STAGE_8
|
|
CLEANUP_LOADED_ANIM_ARRAY()
|
|
CLEANUP_LOADED_MODEL_ARRAY()
|
|
iPreStreamStage++
|
|
//DRIVE TO DOCKS
|
|
ELIF eStageToLoad = MISSION_STAGE_10
|
|
//CLEANUP_LOADED_CARREC_ARRAY()
|
|
iPreStreamStage++
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
CASE 3
|
|
|
|
RETURN TRUE
|
|
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
|
|
RETURN FALSE
|
|
|
|
ENDFUNC
|
|
|
|
|
|
// ======================================================================
|
|
// Controls
|
|
// ======================================================================
|
|
|
|
// PURPOSE: controls the display of objective blips (vehcile, ped or loc)
|
|
PROC CONTROL_OBJECTIVE_BLIP_DISPLAY(PED_INDEX target_ped, VEHICLE_INDEX target_veh, VECTOR target_coords)
|
|
IF target_veh <> NULL // adds vehicle blip and removes others
|
|
IF IS_VEHICLE_DRIVEABLE(target_veh)
|
|
IF NOT DOES_BLIP_EXIST(veh_blip)
|
|
veh_blip=CREATE_BLIP_FOR_VEHICLE(target_veh, FALSE)
|
|
TURN_ON_GPS_FOR_BLIP(veh_blip, sLocatesData)
|
|
//PRINTSTRING("veh obj blip")
|
|
////PRINTNL()
|
|
ENDIF
|
|
ENDIF
|
|
IF DOES_BLIP_EXIST(dest_blip)
|
|
REMOVE_BLIP(dest_blip)
|
|
ENDIF
|
|
IF DOES_BLIP_EXIST(ped_blip)
|
|
REMOVE_BLIP(ped_blip)
|
|
ENDIF
|
|
ELIF target_ped <> NULL //adds ped blip and removes others
|
|
IF NOT IS_PED_INJURED(target_ped)
|
|
IF NOT DOES_BLIP_EXIST(ped_blip)
|
|
ped_blip = CREATE_BLIP_FOR_PED(target_ped, FALSE)
|
|
TURN_ON_GPS_FOR_BLIP(ped_blip, sLocatesData)
|
|
//PRINTSTRING("ped obj blip")
|
|
////PRINTNL()
|
|
ENDIF
|
|
ENDIF
|
|
IF DOES_BLIP_EXIST(veh_blip)
|
|
REMOVE_BLIP(veh_blip)
|
|
ENDIF
|
|
IF DOES_BLIP_EXIST(dest_blip)
|
|
REMOVE_BLIP(dest_blip)
|
|
ENDIF
|
|
ELSE //adds location blip and removes others
|
|
IF NOT DOES_BLIP_EXIST(dest_blip)
|
|
dest_blip = CREATE_BLIP_FOR_COORD(target_coords, FALSE)
|
|
TURN_ON_GPS_FOR_BLIP(dest_blip, sLocatesData)
|
|
//PRINTSTRING("dest obj blip")
|
|
////PRINTNL()
|
|
ENDIF
|
|
IF DOES_BLIP_EXIST(veh_blip)
|
|
REMOVE_BLIP(veh_blip)
|
|
ENDIF
|
|
IF DOES_BLIP_EXIST(ped_blip)
|
|
REMOVE_BLIP(ped_blip)
|
|
ENDIF
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
PROC RESET_CREATE_DOCKS_STUFF()
|
|
bObjectsCreated[0] = FALSE
|
|
bObjectsCreated[1] = FALSE
|
|
bObjectsCreated[2] = FALSE
|
|
//bCreateCrane = TRUE
|
|
ENDPROC
|
|
|
|
//PURPOSE: this is used to load a specific mission stage, for both restart and j/p skips.
|
|
//Load mission stage - lets go!
|
|
PROC LOAD_MISSION_STAGE(MISSION_STAGE_ENUM eStageToLoad)
|
|
IF NOT bcleanup //first cleans up all existing mission assets
|
|
IF bSkipping = TRUE
|
|
CONTROL_FADE_OUT(500)
|
|
ENDIF
|
|
|
|
IF IS_PHONE_ONSCREEN()
|
|
HANG_UP_AND_PUT_AWAY_PHONE()
|
|
ENDIF
|
|
|
|
CLEAR_PLAYER_HAS_DAMAGED_AT_LEAST_ONE_NON_ANIMAL_PED(PLAYER_ID())
|
|
DISABLE_CHEAT(CHEAT_TYPE_ALL, TRUE) //disables all cheats.
|
|
MISSION_CLEANUP(TRUE)
|
|
//Assign model names
|
|
//model_trevor_vehicle = GET_PLAYER_VEH_MODEL(CHAR_TREVOR)
|
|
|
|
PRINTSTRING("LOAD_MISSION_STAGE - MISSION_STAGE_ENUM = ")//PRINTNL()
|
|
PRINTINT(ENUM_TO_INT(eStageToLoad))
|
|
|
|
CLEAR_PRINTS()
|
|
|
|
IF eStageToLoad != MISSION_STAGE_OPENING_CUTSCENE
|
|
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
|
|
CLEAR_PED_TASKS_IMMEDIATELY(PLAYER_PED_ID())
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ADD_SCENARIO_BLOCKING_AREA(<<18.380921,-2524.460205,10.000374>>,<<10.180921,-2534.460205,4.800374>>)
|
|
ADD_SCENARIO_BLOCKING_AREA(<<509.775757,-3161.031006,38.319389>> - <<87.250000,240.000000,43.000000>>, <<509.775757,-3161.031006,38.319389>> + <<87.250000,240.000000,43.000000>> )
|
|
|
|
ADD_NAVMESH_BLOCKING_OBJECT(<<1712.584,3304.912,41.960>>,<<13.000,13.600,3.700>>,15.578)
|
|
ADD_SCENARIO_BLOCKING_AREA(<<18.380921,-2524.460205,10.000374>>,<<10.180921,-2534.460205,4.800374>>)
|
|
|
|
ADD_NAVMESH_BLOCKING_OBJECT(<<-107,-2415.304,5.381>>,<<16.4,15.3,1.6>>,-1.619)
|
|
ADD_NAVMESH_BLOCKING_OBJECT(<<-53.081,-2415.703,5.119>>,<<16.4,15.3,1.6>>,1.584)
|
|
ADD_SCENARIO_BLOCKING_AREA(<<-73.987930,-2415.800781,8.000994>> -<<43.250000,8.000000,3.250000>>,<<-73.987930,-2415.800781,8.000994>>+<<43.250000,8.000000,3.250000>>)
|
|
|
|
CLEAR_AREA(vStageStart,1000,TRUE,TRUE)
|
|
CLEAR_AREA(vDocks,1000,TRUE,TRUE)
|
|
|
|
|
|
SET_PLAYER_WANTED_LEVEL(PLAYER_ID(),0)
|
|
PRINTSTRING("MISSION STAGE PRE-LOAD CLEANUP")//PRINTNL()
|
|
|
|
bMercPatrolCreated[0] = FALSE
|
|
bMercPatrolCreated[1] = FALSE
|
|
bMercPatrolCreated[2] = FALSE
|
|
iSetupProgress = 0
|
|
i_current_event = 0
|
|
iSecurityTimer = 0
|
|
balarmtriggered = FALSE
|
|
bLockForklift = FALSE
|
|
bContainerSetUpForDrive = FALSE
|
|
bIsJumpingDirectlyToStage = TRUE
|
|
e_section_stage = SECTION_STAGE_SETUP
|
|
|
|
INT iCounter
|
|
|
|
FOR iCounter = 0 TO iNumberOfDockSetPieces -1
|
|
bTriggerSetPiece[iCounter] = FALSE
|
|
ENDFOR
|
|
|
|
bRunFailChecks = FALSE
|
|
bCrate1Attached = FALSE
|
|
bCrate0Attached = FALSE
|
|
bForceNoGrab = FALSE
|
|
bIsJumpingDirectlyToStage = TRUE
|
|
DISABLE_TAXI_HAILING(TRUE)
|
|
SET_PLAYER_CAN_CHANGE_CLOTHES_ON_MISSION(FALSE)
|
|
//bCreateCrane = TRUE
|
|
bcleanup = TRUE
|
|
ENDIF
|
|
|
|
SWITCH iSetupProgress
|
|
|
|
CASE 0 //request shit and set the player to the correct model
|
|
|
|
INITALISE_ARRAYS()
|
|
SET_UP_DOCKS_RADIO()
|
|
|
|
IF eStageToLoad = MISSION_STAGE_OPENING_CUTSCENE
|
|
IF SET_CURRENT_SELECTOR_PED(SELECTOR_PED_TREVOR)
|
|
iSetupProgress++
|
|
ENDIF
|
|
//DRIVE WITH FLOYD TO DOCKS
|
|
ELIF eStageToLoad = MISSION_STAGE_1
|
|
IF SET_CURRENT_SELECTOR_PED(SELECTOR_PED_TREVOR)
|
|
WHILE NOT SETUP_MISSION_REQUIREMENT_WITH_LOCATION(REQ_FLOYD, vfloydStart, ffloydStart )
|
|
OR NOT SETUP_MISSION_REQUIREMENT_WITH_LOCATION(REQ_WADE, vWadeStart, fWadeStart )
|
|
OR NOT SETUP_MISSION_REQUIREMENT_WITH_LOCATION(REQ_TREVORS_TRUCK, << -1155.02, -1522.81, 3.3397 >> ,38.40)
|
|
OR NOT SETUP_MISSION_REQUIREMENT(REQ_SECURITY)
|
|
WAIT(0)
|
|
ENDWHILE
|
|
IF IS_REPLAY_BEING_SET_UP()
|
|
END_REPLAY_SETUP()
|
|
RESET_CREATE_DOCKS_STUFF()
|
|
iSetupProgress++
|
|
ELSE
|
|
SET_PLAYER_START_POSITION(eStageToLoad)
|
|
//LOAD_SCENE(<< -1154.6117, -1520.0699, 3.3456 >>)
|
|
RESET_CREATE_DOCKS_STUFF()
|
|
iSetupProgress++
|
|
ENDIF
|
|
ENDIF
|
|
ELIF eStageToLoad = MISSION_STAGE_2
|
|
IF SET_CURRENT_SELECTOR_PED(SELECTOR_PED_TREVOR)
|
|
WHILE NOT SETUP_MISSION_REQUIREMENT(REQ_SECURITY)
|
|
OR NOT SETUP_MISSION_REQUIREMENT_WITH_LOCATION(REQ_TREVORS_TRUCK,<<21.3604, -2534.8997, 5.0505>>, 55.3357)
|
|
OR NOT SETUP_MISSION_REQUIREMENT_WITH_LOCATION(REQ_FLOYD, vfloydStart, ffloydStart)
|
|
OR NOT SETUP_MISSION_REQUIREMENT_WITH_LOCATION(REQ_WADE, vWadeStart, fWadeStart )
|
|
WAIT(0)
|
|
ENDWHILE
|
|
ADD_MODEL_REQUEST_TO_ARRAY(S_M_Y_BlackOps_01)
|
|
ADD_MODEL_REQUEST_TO_ARRAY(S_M_M_DOCKWORK_01)
|
|
ADD_MODEL_REQUEST_TO_ARRAY(GET_NPC_PED_MODEL(CHAR_WADE))
|
|
ADD_MODEL_REQUEST_TO_ARRAY(GET_NPC_PED_MODEL(CHAR_FLOYD))
|
|
ADD_MODEL_REQUEST_TO_ARRAY(BIFF)
|
|
ADD_MODEL_REQUEST_TO_ARRAY(FORKLIFT)
|
|
REQUEST_ANIM_DICT("misslsdhs")
|
|
RESET_CREATE_DOCKS_STUFF()
|
|
// SET_VEHICLE_POPULATION_BUDGET(2)
|
|
// SET_PED_POPULATION_BUDGET(2)
|
|
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
IF NOT IS_PED_INJURED(pedWade)
|
|
IF IS_VEHICLE_DRIVEABLE(vehMission)
|
|
IF IS_VEHICLE_SEAT_FREE(vehMission,VS_BACK_LEFT)
|
|
SET_PED_INTO_VEHICLE(pedWade,vehMission,VS_BACK_LEFT)
|
|
ENDIF
|
|
IF IS_VEHICLE_SEAT_FREE(vehMission,VS_FRONT_RIGHT)
|
|
SET_PED_INTO_VEHICLE(pedFloyd,vehMission,VS_FRONT_RIGHT)
|
|
ENDIF
|
|
SET_VEHICLE_ENGINE_ON(vehMission,TRUE,TRUE)
|
|
CLEAR_AREA(<< 12.2127, -2531.0344, 5.0509 >>,100,TRUE,TRUE,TRUE)
|
|
SET_PED_NON_CREATION_AREA(<< 12.2127, -2531.0344, 5.0509 >> - << 10, 10, 10 >>, << 12.2127, -2531.0344, 5.0509 >> + << 10, 10, 10 >>)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
IF IS_REPLAY_BEING_SET_UP()
|
|
END_REPLAY_SETUP(vehMission)
|
|
RESET_CREATE_DOCKS_STUFF()
|
|
iSetupProgress++
|
|
ELSE
|
|
SET_PLAYER_START_POSITION(eStageToLoad)
|
|
IF IS_VEHICLE_DRIVEABLE(vehMission)
|
|
IF IS_VEHICLE_SEAT_FREE(vehMission,VS_DRIVER)
|
|
SET_PED_INTO_VEHICLE(PLAYER_PED_ID(),vehMission,VS_DRIVER)
|
|
ENDIF
|
|
ENDIF
|
|
LOAD_SCENE(<< 21.3604, -2534.8997, 5.0505 >>)
|
|
RESET_CREATE_DOCKS_STUFF()
|
|
iSetupProgress++
|
|
ENDIF
|
|
|
|
|
|
ENDIF
|
|
ELIF eStageToLoad = MISSION_STAGE_4
|
|
IF SET_CURRENT_SELECTOR_PED(SELECTOR_PED_TREVOR)
|
|
REQUEST_VEHICLE_RECORDING(1,"AWDocks1")
|
|
REQUEST_WAYPOINT_RECORDING("floyddocks1")
|
|
REQUEST_WAYPOINT_RECORDING("docksplayer1")
|
|
REQUEST_VEHICLE_RECORDING(1,"AWDock1")
|
|
REQUEST_VEHICLE_RECORDING(1,"AWDocks2")
|
|
|
|
ADD_MODEL_REQUEST_TO_ARRAY(S_M_Y_BlackOps_01)
|
|
ADD_MODEL_REQUEST_TO_ARRAY(S_M_M_DOCKWORK_01)
|
|
ADD_MODEL_REQUEST_TO_ARRAY(GET_NPC_PED_MODEL(CHAR_FLOYD))
|
|
ADD_MODEL_REQUEST_TO_ARRAY(BIFF)
|
|
ADD_MODEL_REQUEST_TO_ARRAY(FORKLIFT)
|
|
RESET_CREATE_DOCKS_STUFF()
|
|
// SET_VEHICLE_POPULATION_BUDGET(2)
|
|
// SET_PED_POPULATION_BUDGET(2)
|
|
IF IS_REPLAY_BEING_SET_UP()
|
|
END_REPLAY_SETUP()
|
|
iSetupProgress++
|
|
ELSE
|
|
SET_PLAYER_START_POSITION(eStageToLoad)
|
|
iSetupProgress++
|
|
ENDIF
|
|
ENDIF
|
|
//FORKLIFT AND TASKS
|
|
ELIF eStageToLoad = MISSION_STAGE_5
|
|
IF SET_CURRENT_SELECTOR_PED(SELECTOR_PED_TREVOR)
|
|
WHILE NOT SETUP_MISSION_REQUIREMENT_WITH_LOCATION(REQ_CONTAINERS_FOR_HANDLER_SECTION_START,<<0,0,0>>)
|
|
WAIT(0)
|
|
ENDWHILE
|
|
REQUEST_VEHICLE_RECORDING(1,"AWDock1")
|
|
REQUEST_VEHICLE_RECORDING(1,"AWDocks2")
|
|
REQUEST_VEHICLE_RECORDING(1,"AWDocks3")
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_13@start_idle")
|
|
|
|
ADD_MODEL_REQUEST_TO_ARRAY(S_M_Y_BlackOps_01)
|
|
ADD_MODEL_REQUEST_TO_ARRAY(S_M_M_DOCKWORK_01)
|
|
ADD_MODEL_REQUEST_TO_ARRAY(GET_NPC_PED_MODEL(CHAR_FLOYD))
|
|
ADD_MODEL_REQUEST_TO_ARRAY(BIFF)
|
|
ADD_MODEL_REQUEST_TO_ARRAY(FORKLIFT)
|
|
RESET_CREATE_DOCKS_STUFF()
|
|
// SET_VEHICLE_POPULATION_BUDGET(2)
|
|
// SET_PED_POPULATION_BUDGET(2)
|
|
s_sp_blackwater_with_dockworker[0].i_event = 8
|
|
IF IS_REPLAY_BEING_SET_UP()
|
|
END_REPLAY_SETUP()
|
|
iSetupProgress++
|
|
ELSE
|
|
SET_PLAYER_START_POSITION(eStageToLoad)
|
|
iSetupProgress++
|
|
ENDIF
|
|
ENDIF
|
|
//FOLLOW floyd TO CRANE
|
|
|
|
ELIF eStageToLoad = MISSION_STAGE_6
|
|
IF SET_CURRENT_SELECTOR_PED(SELECTOR_PED_TREVOR)
|
|
WHILE NOT SETUP_MISSION_REQUIREMENT_WITH_LOCATION(REQ_CONTAINERS_FOR_HANDLER_SECTION_FINAL,<<0,0,0>>)
|
|
WAIT(0)
|
|
ENDWHILE
|
|
REQUEST_VEHICLE_RECORDING(1,"AWDock1")
|
|
REQUEST_VEHICLE_RECORDING(1,"AWDocks2")
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_13@start_idle")
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_14")
|
|
START_AUDIO_SCENE("DH_1_HANDLER_START")
|
|
|
|
ADD_MODEL_REQUEST_TO_ARRAY(S_M_Y_BlackOps_01)
|
|
ADD_MODEL_REQUEST_TO_ARRAY(S_M_M_DOCKWORK_01)
|
|
ADD_MODEL_REQUEST_TO_ARRAY(GET_NPC_PED_MODEL(CHAR_FLOYD))
|
|
ADD_MODEL_REQUEST_TO_ARRAY(BIFF)
|
|
ADD_MODEL_REQUEST_TO_ARRAY(FORKLIFT)
|
|
ADD_MODEL_REQUEST_TO_ARRAY(PROP_CONTR_03B_LD)
|
|
|
|
RESET_CREATE_DOCKS_STUFF()
|
|
// SET_VEHICLE_POPULATION_BUDGET(2)
|
|
// SET_PED_POPULATION_BUDGET(2)
|
|
s_sp_blackwater_with_dockworker[0].i_event = 8
|
|
iFloydHauler = 0
|
|
vSpreaderPosition = <<-53.02, -2416.04, 14.75>>
|
|
IF IS_REPLAY_BEING_SET_UP()
|
|
END_REPLAY_SETUP()
|
|
iSetupProgress++
|
|
ELSE
|
|
SET_PLAYER_START_POSITION(eStageToLoad)
|
|
iSetupProgress++
|
|
ENDIF
|
|
ENDIF
|
|
//CRANE SECTION
|
|
ELIF eStageToLoad = MISSION_STAGE_7
|
|
IF SET_CURRENT_SELECTOR_PED(SELECTOR_PED_TREVOR)
|
|
WHILE NOT SETUP_MISSION_REQUIREMENT_WITH_LOCATION(REQ_CONTAINERS_FOR_HANDLER_SECTION_FINAL,<<0,0,0>>)
|
|
WAIT(0)
|
|
ENDWHILE
|
|
REQUEST_VEHICLE_RECORDING(2,"AWDocks1")
|
|
REQUEST_VEHICLE_RECORDING(1,"AWDock1")
|
|
REQUEST_VEHICLE_RECORDING(1,"AWDocks2")
|
|
REQUEST_ANIM_DICT("missheistdockssetup1trevor_crane")
|
|
|
|
ADD_MODEL_REQUEST_TO_ARRAY(S_M_Y_BlackOps_01)
|
|
ADD_MODEL_REQUEST_TO_ARRAY(S_M_M_DOCKWORK_01)
|
|
ADD_MODEL_REQUEST_TO_ARRAY(GET_NPC_PED_MODEL(CHAR_FLOYD))
|
|
ADD_MODEL_REQUEST_TO_ARRAY(BIFF)
|
|
ADD_MODEL_REQUEST_TO_ARRAY(FORKLIFT)
|
|
ADD_MODEL_REQUEST_TO_ARRAY(HAULER)
|
|
ADD_MODEL_REQUEST_TO_ARRAY(DOCKTRAILER)
|
|
RESET_CREATE_DOCKS_STUFF()
|
|
// SET_VEHICLE_POPULATION_BUDGET(2)
|
|
// SET_PED_POPULATION_BUDGET(2)
|
|
s_sp_blackwater_with_dockworker[0].i_event = 8
|
|
vSpreaderPosition = <<-53.02, -2416.04, 14.75>>
|
|
IF IS_REPLAY_BEING_SET_UP()
|
|
END_REPLAY_SETUP()
|
|
iSetupProgress++
|
|
ELSE
|
|
SET_PLAYER_START_POSITION(eStageToLoad)
|
|
iSetupProgress++
|
|
ENDIF
|
|
ENDIF
|
|
//USE CAMERA
|
|
ELIF eStageToLoad = MISSION_STAGE_8
|
|
IF SET_CURRENT_SELECTOR_PED(SELECTOR_PED_TREVOR)
|
|
FREEZE_ENTITY_POSITION(PLAYER_PED_ID(),TRUE)
|
|
WHILE NOT SETUP_MISSION_REQUIREMENT_WITH_LOCATION(REQ_CONTAINERS_FOR_HANDLER_SECTION_FINAL,<<0,0,0>>)
|
|
WAIT(0)
|
|
ENDWHILE
|
|
REQUEST_VEHICLE_RECORDING(1,"AWDock1")
|
|
REQUEST_VEHICLE_RECORDING(1,"AWDocks2")
|
|
|
|
ADD_MODEL_REQUEST_TO_ARRAY(S_M_Y_BlackOps_01)
|
|
ADD_MODEL_REQUEST_TO_ARRAY(S_M_M_DOCKWORK_01)
|
|
ADD_MODEL_REQUEST_TO_ARRAY(GET_NPC_PED_MODEL(CHAR_FLOYD))
|
|
ADD_MODEL_REQUEST_TO_ARRAY(HAULER)
|
|
ADD_MODEL_REQUEST_TO_ARRAY(DOCKTRAILER)
|
|
RESET_CREATE_DOCKS_STUFF()
|
|
// SET_VEHICLE_POPULATION_BUDGET(2)
|
|
// SET_PED_POPULATION_BUDGET(2)
|
|
s_sp_blackwater_with_dockworker[0].i_event = 8
|
|
|
|
IF IS_REPLAY_BEING_SET_UP()
|
|
END_REPLAY_SETUP()
|
|
iSetupProgress++
|
|
ELSE
|
|
SET_PLAYER_START_POSITION(eStageToLoad)
|
|
iSetupProgress++
|
|
ENDIF
|
|
ENDIF
|
|
//DRIVE TO OTHER DOCKS
|
|
ELIF eStageToLoad = MISSION_STAGE_10
|
|
IF SET_CURRENT_SELECTOR_PED(SELECTOR_PED_TREVOR)
|
|
WHILE NOT SETUP_MISSION_REQUIREMENT_WITH_LOCATION(REQ_CONTAINERS_FOR_HANDLER_SECTION_FINAL,<<0,0,0>>)
|
|
WAIT(0)
|
|
ENDWHILE
|
|
REQUEST_VEHICLE_RECORDING(1,"AWDock1")
|
|
REQUEST_VEHICLE_RECORDING(1,"AWDocks2")
|
|
ADD_MODEL_REQUEST_TO_ARRAY(S_M_Y_BlackOps_01)
|
|
ADD_MODEL_REQUEST_TO_ARRAY(S_M_M_DOCKWORK_01)
|
|
ADD_MODEL_REQUEST_TO_ARRAY(GET_NPC_PED_MODEL(CHAR_FLOYD))
|
|
ADD_MODEL_REQUEST_TO_ARRAY(BIFF)
|
|
ADD_MODEL_REQUEST_TO_ARRAY(FORKLIFT)
|
|
ADD_MODEL_REQUEST_TO_ARRAY(BIFF)
|
|
ADD_MODEL_REQUEST_TO_ARRAY(HAULER)
|
|
ADD_MODEL_REQUEST_TO_ARRAY(DOCKTRAILER)
|
|
RESET_CREATE_DOCKS_STUFF()
|
|
s_sp_blackwater_with_dockworker[0].i_event = 8
|
|
|
|
IF IS_REPLAY_BEING_SET_UP()
|
|
END_REPLAY_SETUP()
|
|
iSetupProgress++
|
|
ELSE
|
|
SET_PLAYER_START_POSITION(eStageToLoad)
|
|
LOAD_SCENE(<<-120.9023, -2411.2688, 5.0007>>)
|
|
iSetupProgress++
|
|
ENDIF
|
|
ENDIF
|
|
//DRIVE TO FLOYDS
|
|
ELIF eStageToLoad = MISSION_STAGE_11
|
|
IF SET_CURRENT_SELECTOR_PED(SELECTOR_PED_TREVOR)
|
|
WHILE NOT SETUP_MISSION_REQUIREMENT_WITH_LOCATION(REQ_CONTAINERS_FOR_HANDLER_SECTION_FINAL,<<0,0,0>>)
|
|
WAIT(0)
|
|
ENDWHILE
|
|
WHILE NOT SETUP_MISSION_REQUIREMENT(REQ_HAULER_WITH_TRAILER_FINAL_STAGE)
|
|
WAIT(0)
|
|
ENDWHILE
|
|
|
|
WHILE NOT SETUP_MISSION_REQUIREMENT(REQ_GUARDS_AND_FLOYD)
|
|
WAIT(0)
|
|
ENDWHILE
|
|
PRINTSTRING("!!!JUMPING TO DRIVE TO FLOYDS 1")PRINTNL()
|
|
ADD_MODEL_REQUEST_TO_ARRAY(S_M_Y_BlackOps_01)
|
|
ADD_MODEL_REQUEST_TO_ARRAY(S_M_M_DOCKWORK_01)
|
|
ADD_MODEL_REQUEST_TO_ARRAY(GET_NPC_PED_MODEL(CHAR_FLOYD))
|
|
ADD_MODEL_REQUEST_TO_ARRAY(BIFF)
|
|
ADD_MODEL_REQUEST_TO_ARRAY(HAULER)
|
|
ADD_MODEL_REQUEST_TO_ARRAY(DOCKTRAILER)
|
|
RESET_CREATE_DOCKS_STUFF()
|
|
s_sp_blackwater_with_dockworker[0].i_event = 8
|
|
IF IS_REPLAY_BEING_SET_UP()
|
|
END_REPLAY_SETUP()
|
|
iSetupProgress++
|
|
ELSE
|
|
SET_PLAYER_START_POSITION(eStageToLoad)
|
|
iSetupProgress++
|
|
ENDIF
|
|
ENDIF
|
|
//PASSED MISSION
|
|
ELIF eStageToLoad = MISSION_STAGE_PASSED
|
|
IF IS_REPLAY_BEING_SET_UP()
|
|
END_REPLAY_SETUP()
|
|
iSetupProgress++
|
|
ELSE
|
|
LOAD_SCENE(<<-1153.4308, -1517.1697, 9.6327>>)
|
|
SET_PLAYER_START_POSITION(eStageToLoad)
|
|
iSetupProgress++
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
CASE 1 // load shit that takes one frame and you only want to call once, create items
|
|
//IF ARE_REQUESTED_ANIMS_LOADED()
|
|
IF ARE_REQUESTED_MODELS_LOADED()
|
|
IF ARE_REQUESTED_CARRECS_LOADED("AWDocks1")
|
|
IF eStageToLoad = MISSION_STAGE_OPENING_CUTSCENE
|
|
iSetupProgress++
|
|
//DRIVE WITH floyd TO DOCKS
|
|
ELIF eStageToLoad = MISSION_STAGE_1
|
|
IF SET_CURRENT_SELECTOR_PED(SELECTOR_PED_TREVOR)
|
|
MANAGE_PLAYER_OUTFIT()
|
|
IF HAVE_ALL_STREAMING_REQUESTS_COMPLETED(pedFloyd)
|
|
AND HAVE_ALL_STREAMING_REQUESTS_COMPLETED(pedWade)
|
|
AND HAVE_ALL_STREAMING_REQUESTS_COMPLETED(PLAYER_PED_ID())
|
|
iSetupProgress++
|
|
ENDIF
|
|
ENDIF
|
|
//PLAYER PARKS UP AND GETS CHANGED
|
|
ELIF eStageToLoad = MISSION_STAGE_2
|
|
IF NOT DOES_ENTITY_EXIST(pedFloyd)
|
|
SPAWN_BUDDY(pedFloyd, GET_NPC_PED_MODEL(CHAR_FLOYD), vfloydStart, ffloydStart,TRUE,WEAPONTYPE_UNARMED,TRUE,"FLOYD",3)
|
|
ELSE
|
|
IF NOT DOES_ENTITY_EXIST(pedWade)
|
|
SPAWN_BUDDY(pedWade, GET_NPC_PED_MODEL(CHAR_WADE), vWadeStart, fWadeStart,TRUE,WEAPONTYPE_UNARMED,TRUE,"WADE",4)
|
|
ELSE
|
|
IF NOT DOES_ENTITY_EXIST(vehMission)
|
|
SETUP_MISSION_REQUIREMENT_WITH_LOCATION(REQ_TREVORS_TRUCK,vDocks ,55.2078)
|
|
ELSE
|
|
IF CREATE_THE_DOCKS_STUFF()
|
|
IF NOT DOES_ENTITY_EXIST(objClipboard[0])
|
|
objClipboard[0] = CREATE_OBJECT(P_CS_CLIPBOARD,vDocks)
|
|
ELSE
|
|
IF NOT DOES_ENTITY_EXIST(objPencil[0])
|
|
objPencil[0] = CREATE_OBJECT(PROP_PENCIL_01,vDocks)
|
|
MANAGE_PLAYER_OUTFIT()
|
|
ELSE
|
|
IF DOES_ENTITY_EXIST(pedSecurity)
|
|
IF NOT IS_PED_INJURED(pedSecurity)
|
|
REQUEST_ANIM_DICT("misslsdhsclipboard@base")
|
|
IF HAS_ANIM_DICT_LOADED("misslsdhsclipboard@base")
|
|
AND HAS_ANIM_DICT_LOADED("misslsdhs")
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
AND NOT IS_PED_INJURED(pedWade)
|
|
|
|
IF HAVE_ALL_STREAMING_REQUESTS_COMPLETED(pedFloyd)
|
|
AND HAVE_ALL_STREAMING_REQUESTS_COMPLETED(pedWade)
|
|
AND HAVE_ALL_STREAMING_REQUESTS_COMPLETED(PLAYER_PED_ID())
|
|
CLEAR_ALL_PED_PROPS(pedSecurity)
|
|
ATTACH_ENTITY_TO_ENTITY(objPencil[0],pedSecurity,GET_PED_BONE_INDEX(pedSecurity, BONETAG_PH_R_HAND),<<0,0,0>>,<<0,0,0>>,TRUE,TRUE)
|
|
ATTACH_ENTITY_TO_ENTITY(objClipboard[0],pedSecurity,GET_PED_BONE_INDEX(pedSecurity, BONETAG_PH_L_HAND),<<0,0,0>>,<<0,0,0>>,TRUE,TRUE,TRUE)
|
|
SET_ENTITY_NO_COLLISION_ENTITY(objClipboard[0],pedSecurity,TRUE)
|
|
TASK_PLAY_ANIM(pedSecurity,"misslsdhsclipboard@base", "base",INSTANT_BLEND_IN,NORMAL_BLEND_OUT,-1,AF_LOOPING)
|
|
ADD_PED_FOR_DIALOGUE(sSpeech, 1, pedSecurity, "GATEGUARD")
|
|
SET_PED_CAN_EVASIVE_DIVE(pedSecurity,FALSE)
|
|
FORCE_PED_AI_AND_ANIMATION_UPDATE(pedSecurity)
|
|
iSetupProgress++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
//FOLLOW floyd AROUND THE DOCKS
|
|
ELIF eStageToLoad = MISSION_STAGE_4
|
|
IF GET_IS_WAYPOINT_RECORDING_LOADED("floyddocks1")
|
|
AND GET_IS_WAYPOINT_RECORDING_LOADED("docksplayer1")
|
|
AND HAS_VEHICLE_RECORDING_BEEN_LOADED(1,"AWDocks2")
|
|
AND HAS_VEHICLE_RECORDING_BEEN_LOADED(1,"AWDock1")
|
|
IF NOT DOES_ENTITY_EXIST(pedFloyd)
|
|
SPAWN_BUDDY(pedFloyd, GET_NPC_PED_MODEL(CHAR_FLOYD), << -63.91, -2523.12, 5.0110 >>, 58.62,TRUE,WEAPONTYPE_UNARMED,TRUE,"FLOYD",3)
|
|
ELSE
|
|
IF NOT DOES_ENTITY_EXIST(vehMission)
|
|
WHILE NOT SETUP_MISSION_REQUIREMENT_WITH_LOCATION(REQ_TREVORS_TRUCK,vParkUpHere ,56)
|
|
WAIT(0)
|
|
ENDWHILE
|
|
ELSE
|
|
IF CREATE_THE_DOCKS_STUFF()
|
|
IF IS_VEHICLE_DRIVEABLE(vehMission)
|
|
SET_VEHICLE_IS_CONSIDERED_BY_PLAYER(vehMission,FALSE)
|
|
ENDIF
|
|
iSetupProgress++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
//FORKLIFT AND TASKS
|
|
ELIF eStageToLoad = MISSION_STAGE_5
|
|
IF HAS_VEHICLE_RECORDING_BEEN_LOADED(1,"AWDock1")
|
|
AND HAS_VEHICLE_RECORDING_BEEN_LOADED(1,"AWDocks2")
|
|
AND HAS_VEHICLE_RECORDING_BEEN_LOADED(1,"AWDocks3")
|
|
IF NOT DOES_ENTITY_EXIST(pedFloyd)
|
|
SPAWN_BUDDY(pedFloyd, GET_NPC_PED_MODEL(CHAR_FLOYD), << -58.7087, -2524.6753, 5.0110 >>, 191.0631,TRUE,WEAPONTYPE_UNARMED,TRUE,"FLOYD",3)
|
|
ELSE
|
|
IF NOT DOES_ENTITY_EXIST(vehMission)
|
|
WHILE NOT SETUP_MISSION_REQUIREMENT_WITH_LOCATION(REQ_TREVORS_TRUCK,vParkUpHere ,56)
|
|
WAIT(0)
|
|
ENDWHILE
|
|
ELSE
|
|
IF NOT DOES_ENTITY_EXIST(vehHandler)
|
|
SPAWN_VEHICLE(vehHandler,HANDLER,<<-129.77, -2418.28, 6.24>>,183.0850,-1,1.0)
|
|
SET_VEHICLE_COLOUR_COMBINATION(vehHandler,0)
|
|
SET_VEHICLE_PROVIDES_COVER(vehHandler,FALSE)
|
|
ELSE
|
|
IF CREATE_THE_DOCKS_STUFF()
|
|
|
|
IF NOT DOES_ENTITY_EXIST(s_sp_forklift_supervisorA[0].ped)
|
|
REQUEST_MODEL(s_sp_forklift_supervisorA[0].model)
|
|
IF HAS_MODEL_LOADED(s_sp_forklift_supervisorA[0].model)
|
|
s_sp_forklift_supervisorA[0].ped = CREATE_SETPIECE_PED(s_sp_forklift_supervisorA[0].model,s_sp_forklift_supervisorA[0].v_spawn_position, s_sp_forklift_supervisorA[0].f_start_heading, rel_group_buddies, 200, 0)
|
|
ENDIF
|
|
ELSE
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_9@start_idle")
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_9@start_idle")
|
|
REQUEST_MODEL(P_CS_CLIPBOARD)
|
|
IF HAS_MODEL_LOADED(P_CS_CLIPBOARD)
|
|
IF NOT DOES_ENTITY_EXIST(objClipboard[1])
|
|
objClipboard[1] = CREATE_OBJECT(P_CS_CLIPBOARD,<<-131.08, -2423.25, 8.00>>)
|
|
ELSE
|
|
REQUEST_MODEL(PROP_PENCIL_01)
|
|
IF HAS_MODEL_LOADED(PROP_PENCIL_01)
|
|
IF NOT DOES_ENTITY_EXIST(objPencil[1])
|
|
objPencil[1] = CREATE_OBJECT(PROP_PENCIL_01,<<-131.08, -2423.25, 8.00>>)
|
|
ELSE
|
|
IF DOES_ENTITY_EXIST(s_sp_forklift_supervisorA[0].ped)
|
|
IF NOT IS_ENTITY_ATTACHED(objPencil[1])
|
|
IF NOT IS_PED_INJURED(s_sp_forklift_supervisorA[0].ped)
|
|
ATTACH_ENTITY_TO_ENTITY(objPencil[1],s_sp_forklift_supervisorA[0].ped,GET_PED_BONE_INDEX(s_sp_forklift_supervisorA[0].ped, BONETAG_PH_R_HAND),<<0,0,0>>,<<0,0,0>>,TRUE)
|
|
ENDIF
|
|
ELSE
|
|
IF NOT IS_ENTITY_ATTACHED(objClipboard[1])
|
|
IF NOT IS_PED_INJURED(s_sp_forklift_supervisorA[0].ped)
|
|
ATTACH_ENTITY_TO_ENTITY(objClipboard[1],s_sp_forklift_supervisorA[0].ped,GET_PED_BONE_INDEX(s_sp_forklift_supervisorA[0].ped, BONETAG_PH_L_HAND),<<0,0,0>>,<<0,0,0>>,TRUE)
|
|
ENDIF
|
|
ELSE
|
|
IF IS_VEHICLE_DRIVEABLE(vehMission)
|
|
SET_VEHICLE_IS_CONSIDERED_BY_PLAYER(vehMission,FALSE)
|
|
ENDIF
|
|
iSetupProgress++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
//FOLLOW floyd TO CRANE
|
|
ELIF eStageToLoad = MISSION_STAGE_6
|
|
IF HAS_VEHICLE_RECORDING_BEEN_LOADED(1,"AWDock1")
|
|
AND HAS_VEHICLE_RECORDING_BEEN_LOADED(1,"AWDocks2")
|
|
AND HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_14")
|
|
IF NOT DOES_ENTITY_EXIST(pedFloyd)
|
|
SPAWN_BUDDY(pedFloyd, GET_NPC_PED_MODEL(CHAR_FLOYD), <<-129.77, -2418.28, 6.24>>, 191.0631,TRUE,WEAPONTYPE_UNARMED,TRUE,"FLOYD",3)
|
|
ELSE
|
|
IF NOT DOES_ENTITY_EXIST(vehMission)
|
|
WHILE NOT SETUP_MISSION_REQUIREMENT_WITH_LOCATION(REQ_TREVORS_TRUCK,vParkUpHere ,56)
|
|
WAIT(0)
|
|
ENDWHILE
|
|
ELSE
|
|
IF NOT DOES_ENTITY_EXIST(vehHandler)
|
|
SPAWN_VEHICLE(vehHandler,HANDLER,<<-88.8838, -2451.5679, 5.0175>>, 317.2729,-1,1.0)
|
|
SET_VEHICLE_COLOUR_COMBINATION(vehHandler,0)
|
|
SET_VEHICLE_PROVIDES_COVER(vehHandler,FALSE)
|
|
ELSE
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
IF NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehHandler)
|
|
IF IS_VEHICLE_SEAT_FREE(vehHandler)
|
|
SET_PED_INTO_VEHICLE(PLAYER_PED_ID(),vehHandler)
|
|
ENDIF
|
|
ELSE
|
|
IF CREATE_THE_DOCKS_STUFF()
|
|
iSetupProgress++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
//CRANE SECTION
|
|
ELIF eStageToLoad = MISSION_STAGE_7
|
|
IF HAS_VEHICLE_RECORDING_BEEN_LOADED(1,"AWDock1")
|
|
AND HAS_VEHICLE_RECORDING_BEEN_LOADED(1,"AWDocks2")
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1trevor_crane")
|
|
IF NOT DOES_ENTITY_EXIST(pedFloyd)
|
|
SPAWN_BUDDY(pedFloyd, GET_NPC_PED_MODEL(CHAR_FLOYD), <<-120.65, -2422.97, 5.00>>, -38.16,TRUE,WEAPONTYPE_UNARMED,TRUE,"FLOYD",3)
|
|
ELSE
|
|
IF NOT DOES_ENTITY_EXIST(vehMission)
|
|
WHILE NOT SETUP_MISSION_REQUIREMENT_WITH_LOCATION(REQ_TREVORS_TRUCK,vParkUpHere ,56)
|
|
WAIT(0)
|
|
ENDWHILE
|
|
ELSE
|
|
IF CREATE_THE_DOCKS_STUFF()
|
|
iSetupProgress++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
//USE CAMERA
|
|
ELIF eStageToLoad = MISSION_STAGE_8
|
|
IF HAS_VEHICLE_RECORDING_BEEN_LOADED(1,"AWDock1")
|
|
AND HAS_VEHICLE_RECORDING_BEEN_LOADED(1,"AWDocks2")
|
|
IF NOT DOES_ENTITY_EXIST(pedFloyd)
|
|
SPAWN_BUDDY(pedFloyd, GET_NPC_PED_MODEL(CHAR_FLOYD), << -145.1769, -2472.3149, 5.0310 >>, ffloydStart,TRUE,WEAPONTYPE_UNARMED,TRUE,"FLOYD",3)
|
|
ELSE
|
|
IF NOT DOES_ENTITY_EXIST(vehFloydTruck)
|
|
SPAWN_VEHICLE(vehFloydTruck,HAULER,<< -117.9839, -2416.6272, 5.0003 >>,91.3366)
|
|
ELSE
|
|
IF NOT DOES_ENTITY_EXIST(vehTrailer2)
|
|
IF IS_VEHICLE_DRIVEABLE(vehFloydTruck)
|
|
SET_VEHICLE_COLOURS(vehFloydTruck,0,0)
|
|
SPAWN_VEHICLE(vehTrailer2,DOCKTRAILER,GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(vehFloydTruck, <<-0.3, -9.5, -0.25>>), GET_ENTITY_HEADING(vehFloydTruck))
|
|
SET_VEHICLE_EXTRA(vehTrailer2,1,FALSE)
|
|
ENDIF
|
|
ELSE
|
|
IF IS_VEHICLE_DRIVEABLE(vehFloydTruck)
|
|
IF IS_VEHICLE_DRIVEABLE(vehTrailer2)
|
|
IF NOT IS_VEHICLE_ATTACHED_TO_TRAILER(vehFloydTruck)
|
|
ATTACH_VEHICLE_TO_TRAILER(vehFloydTruck,vehTrailer2)
|
|
ELSE
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
IF IS_VEHICLE_DRIVEABLE(vehFloydTruck)
|
|
IF IS_VEHICLE_SEAT_FREE(vehFloydTruck,VS_FRONT_RIGHT)
|
|
SET_PED_INTO_VEHICLE(pedFloyd,vehFloydTruck,VS_FRONT_RIGHT)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
//IF CREATE_CRANE()
|
|
IF CREATE_THE_DOCKS_STUFF()
|
|
iSetupProgress++
|
|
ENDIF
|
|
FREEZE_ENTITY_POSITION(PLAYER_PED_ID(),FALSE)
|
|
//ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
//CREATE_THE_DOCKS_STUFF()
|
|
|
|
ENDIF
|
|
//DRIVE TO OTHER DOCKS
|
|
ELIF eStageToLoad = MISSION_STAGE_10
|
|
IF HAS_VEHICLE_RECORDING_BEEN_LOADED(1,"AWDock1")
|
|
AND HAS_VEHICLE_RECORDING_BEEN_LOADED(1,"AWDocks2")
|
|
IF NOT DOES_ENTITY_EXIST(pedFloyd)
|
|
SPAWN_BUDDY(pedFloyd, GET_NPC_PED_MODEL(CHAR_FLOYD), << -145.1769, -2472.3149, 5.0310 >>, ffloydStart,TRUE,WEAPONTYPE_UNARMED,TRUE,"FLOYD",3)
|
|
ELSE
|
|
IF NOT DOES_ENTITY_EXIST(vehFloydTruck)
|
|
SPAWN_VEHICLE(vehFloydTruck,HAULER,<<-116.3106, -2415.3901, 5.0005>>, 88.7066)
|
|
ELSE
|
|
IF NOT DOES_ENTITY_EXIST(vehTrailer2)
|
|
IF IS_VEHICLE_DRIVEABLE(vehFloydTruck)
|
|
SET_VEHICLE_COLOURS(vehFloydTruck,0,0)
|
|
SPAWN_VEHICLE(vehTrailer2,DOCKTRAILER,GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(vehFloydTruck, <<-0.3, -9.5, -0.25>>), GET_ENTITY_HEADING(vehFloydTruck))
|
|
SET_VEHICLE_EXTRA(vehTrailer2,1,FALSE)
|
|
ENDIF
|
|
ELSE
|
|
IF IS_VEHICLE_DRIVEABLE(vehFloydTruck)
|
|
IF IS_VEHICLE_DRIVEABLE(vehTrailer2)
|
|
IF NOT IS_VEHICLE_ATTACHED_TO_TRAILER(vehFloydTruck)
|
|
ATTACH_VEHICLE_TO_TRAILER(vehFloydTruck,vehTrailer2)
|
|
ELSE
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
IF IS_VEHICLE_SEAT_FREE(vehFloydTruck,VS_FRONT_RIGHT)
|
|
SET_PED_INTO_VEHICLE(pedFloyd,vehFloydTruck,VS_FRONT_RIGHT)
|
|
ENDIF
|
|
// IF IS_VEHICLE_SEAT_FREE(vehFloydTruck,VS_DRIVER)
|
|
// SET_PED_INTO_VEHICLE(PLAYER_PED_ID(),vehFloydTruck,VS_DRIVER)
|
|
// ENDIF
|
|
//IF CREATE_CRANE()
|
|
IF CREATE_THE_DOCKS_STUFF()
|
|
REQUEST_IPL("pcranecont")
|
|
iSetupProgress++
|
|
ENDIF
|
|
//ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
//DRIVE HOME
|
|
ELIF eStageToLoad = MISSION_STAGE_11
|
|
IF NOT DOES_ENTITY_EXIST(vehFinal)
|
|
SPAWN_VEHICLE(vehFinal,TIPTRUCK, << 465.8751, -3037.0837, 5.0686 >>, 126.3433,-1,1)
|
|
ELSE
|
|
PRINTSTRING("!!!JUMPING TO DRIVE TO FLOYDS 2")PRINTNL()
|
|
iSetupProgress++
|
|
ENDIF
|
|
//BLANK STAGE
|
|
//PASSED MISSION
|
|
ELIF eStageToLoad = MISSION_STAGE_PASSED
|
|
IF IS_REPLAY_BEING_SET_UP()
|
|
END_REPLAY_SETUP()
|
|
iSetupProgress++
|
|
ELSE
|
|
SET_PLAYER_START_POSITION(eStageToLoad)
|
|
iSetupProgress++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
//ENDIF
|
|
BREAK
|
|
|
|
CASE 2 //Things that might take more than one frame and you don't mind calling multiple times and set player starting position
|
|
|
|
IF eStageToLoad > MISSION_STAGE_OPENING_CUTSCENE
|
|
MANAGE_PLAYER_OUTFIT()
|
|
ENDIF
|
|
|
|
IF eStageToLoad > MISSION_STAGE_2
|
|
REGISTER_PED_TO_ACTIVATE_AUTOMATIC_DOOR(AUTODOOR_DOCKS_BACK_GATE_IN,PLAYER_PED_ID())
|
|
REGISTER_PED_TO_ACTIVATE_AUTOMATIC_DOOR(AUTODOOR_DOCKS_BACK_GATE_OUT,PLAYER_PED_ID())
|
|
//LOCK GATE
|
|
UNREGISTER_PED_TO_ACTIVATE_AUTOMATIC_DOOR(AUTODOOR_DOCKS_FRONT_GATE_OUT,PLAYER_PED_ID())
|
|
ENDIF
|
|
|
|
IF eStageToLoad <> MISSION_STAGE_1 OR eStageToLoad <> MISSION_STAGE_OPENING_CUTSCENE
|
|
iprogress = 0
|
|
IF NOT Is_Replay_In_Progress()
|
|
SET_PLAYER_START_POSITION(eStageToLoad)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
SET_GAMEPLAY_CAM_RELATIVE_HEADING()
|
|
SET_GAMEPLAY_CAM_RELATIVE_PITCH()
|
|
|
|
SET_PLAYER_CONTROL(PLAYER_ID(), TRUE)
|
|
|
|
IF eStageToLoad = MISSION_STAGE_OPENING_CUTSCENE
|
|
iprogress = 0
|
|
eMissionStage = MISSION_STAGE_OPENING_CUTSCENE
|
|
RESET_MISSION_STAGE_INTS_SKIP()
|
|
ELIF eStageToLoad = MISSION_STAGE_1
|
|
iprogress = 0
|
|
eMissionStage = MISSION_STAGE_1
|
|
IF bskipping = TRUE
|
|
|
|
ENDIF
|
|
REQUEST_IPL("Talklaugh_Pipe")
|
|
RESET_MISSION_STAGE_INTS_SKIP()
|
|
ELIF eStageToLoad = MISSION_STAGE_2
|
|
eMissionStage = MISSION_STAGE_2
|
|
REQUEST_IPL("Talklaugh_Pipe")
|
|
RESET_MISSION_STAGE_INTS_SKIP()
|
|
ELIF eStageToLoad = MISSION_STAGE_4
|
|
IF NOT DOES_ENTITY_EXIST(pedFloyd)
|
|
FORCE_PED_MOTION_STATE(pedFloyd, MS_ON_FOOT_WALK, FALSE, FAUS_CUTSCENE_EXIT)
|
|
ENDIF
|
|
|
|
eMissionStage = MISSION_STAGE_4
|
|
RESET_MISSION_STAGE_INTS_SKIP()
|
|
ELIF eStageToLoad = MISSION_STAGE_5
|
|
CLEANUP_LOADED_MODEL_ARRAY()
|
|
REQUEST_IPL("Talklaugh_Pipe")
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
IF IS_VEHICLE_SEAT_FREE(vehHandler)
|
|
SET_PED_INTO_VEHICLE(PLAYER_PED_ID(),vehHandler)
|
|
ENDIF
|
|
ENDIF
|
|
eMissionStage = MISSION_STAGE_5
|
|
RESET_MISSION_STAGE_INTS_SKIP()
|
|
ELIF eStageToLoad = MISSION_STAGE_6
|
|
REQUEST_IPL("Talklaugh_Pipe")
|
|
eMissionStage = MISSION_STAGE_6
|
|
RESET_MISSION_STAGE_INTS_SKIP()
|
|
ELIF eStageToLoad = MISSION_STAGE_7
|
|
REQUEST_IPL("Talklaugh_Pipe")
|
|
eMissionStage = MISSION_STAGE_7
|
|
RESET_MISSION_STAGE_INTS_SKIP()
|
|
ELIF eStageToLoad = MISSION_STAGE_8
|
|
REQUEST_IPL("Talklaugh_Pipe")
|
|
FREEZE_ENTITY_POSITION(PLAYER_PED_ID(),TRUE)
|
|
eMissionStage = MISSION_STAGE_8
|
|
STOP_GAMEPLAY_HINT()
|
|
RENDER_SCRIPT_CAMS(FALSE, FALSE)
|
|
SETTIMERA(0)
|
|
RESET_MISSION_STAGE_INTS_SKIP()
|
|
ELIF eStageToLoad = MISSION_STAGE_10
|
|
REQUEST_IPL("Talklaugh_Pipe")
|
|
//CLEANUP_LOADED_MODEL_ARRAY()
|
|
eMissionStage = MISSION_STAGE_10
|
|
RESET_MISSION_STAGE_INTS_SKIP()
|
|
ELIF eStageToLoad = MISSION_STAGE_11
|
|
REQUEST_IPL("Talklaugh_Pipe")
|
|
PRINTSTRING("!!!JUMPING TO DRIVE TO FLOYDS 3")PRINTNL()
|
|
CLEANUP_LOADED_MODEL_ARRAY()
|
|
CLEANUP_LOADED_ANIM_ARRAY()
|
|
eMissionStage = MISSION_STAGE_11
|
|
RESET_MISSION_STAGE_INTS_SKIP()
|
|
ELIF eStageToLoad = MISSION_STAGE_PASSED
|
|
PRINTSTRING("!!!JUMPING TO ")PRINTNL()
|
|
CLEANUP_LOADED_MODEL_ARRAY()
|
|
CLEANUP_LOADED_ANIM_ARRAY()
|
|
eMissionStage = MISSION_STAGE_PASSED
|
|
RESET_MISSION_STAGE_INTS_SKIP()
|
|
ENDIF
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
ENDPROC
|
|
|
|
|
|
|
|
// ======================================================================
|
|
// MISSION STAGES AND CUTSCENES AS PROCEDURES
|
|
// ======================================================================
|
|
//PURPOSE: Requests and creates any assets etc that are initally required for the mission stage then holds in the load mission stage loop until complete
|
|
PROC MISSION_SETUP()
|
|
|
|
ADD_SCENARIO_BLOCKING_AREA(<<509.775757,-3161.031006,38.319389>> - <<87.250000,240.000000,43.000000>>, <<509.775757,-3161.031006,38.319389>> + <<87.250000,240.000000,43.000000>> )
|
|
|
|
ADD_NAVMESH_BLOCKING_OBJECT(<<-107,-2415.304,5.381>>,<<16.4,15.3,1.6>>,-1.619)
|
|
ADD_NAVMESH_BLOCKING_OBJECT(<<-53.081,-2415.703,5.119>>,<<16.4,15.3,1.6>>,1.584)
|
|
ADD_SCENARIO_BLOCKING_AREA(<<-73.987930,-2415.800781,8.000994>> -<<43.250000,8.000000,3.250000>>,<<-73.987930,-2415.800781,8.000994>>+<<43.250000,8.000000,3.250000>>)
|
|
SET_ALL_SHOPS_TEMPORARILY_UNAVAILABLE(TRUE)
|
|
|
|
PRINTSTRING("DOCKS HEIST - MISSION_SETUP")//PRINTNL()
|
|
SET_PLAYER_CAN_CHANGE_CLOTHES_ON_MISSION(FALSE)
|
|
//INFORM_MISSION_STATS_OF_MISSION_START_DOCKS_HEIST_SETUP()
|
|
// Loads the mission text
|
|
REQUEST_ADDITIONAL_TEXT("DOCKH1", MISSION_TEXT_SLOT)
|
|
//1045747
|
|
//REQUEST_ADDITIONAL_TEXT("D1AUD", MISSION_DIALOGUE_TEXT_SLOT)
|
|
WHILE NOT HAS_ADDITIONAL_TEXT_LOADED(MISSION_TEXT_SLOT)
|
|
//OR NOT HAS_ADDITIONAL_TEXT_LOADED(MISSION_DIALOGUE_TEXT_SLOT)
|
|
WAIT(0)
|
|
ENDWHILE
|
|
|
|
DISABLE_CHEAT(CHEAT_TYPE_ALL, TRUE) //disables all cheats.
|
|
|
|
SET_UP_DOCKS_RADIO()
|
|
|
|
REGISTER_SCRIPT_WITH_AUDIO()
|
|
|
|
//DISABLE_VEHICLE_GEN_ON_MISSION(TRUE)
|
|
//DELETE_VEHICLE_GEN_VEHICLES_IN_AREA(<<1187,-1398,4.3>>, 10)
|
|
|
|
REMOVE_RELATIONSHIP_GROUP(rel_group_buddies)
|
|
REMOVE_RELATIONSHIP_GROUP(rel_group_enemies)
|
|
ADD_RELATIONSHIP_GROUP("BUDDIES", rel_group_buddies)
|
|
ADD_RELATIONSHIP_GROUP("ENEMIES", rel_group_enemies)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE,rel_group_enemies,rel_group_buddies)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE,rel_group_enemies,RELGROUPHASH_PLAYER)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE,rel_group_buddies,rel_group_enemies)
|
|
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_LIKE,rel_group_buddies,RELGROUPHASH_PLAYER)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_LIKE,RELGROUPHASH_PLAYER,rel_group_buddies)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_HATE,rel_group_enemies,rel_group_buddies)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_LIKE,rel_group_enemies,rel_group_enemies)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_LIKE,rel_group_enemies,rel_group_enemies)
|
|
|
|
//SET_PED_RELATIONSHIP_GROUP_HASH(PLAYER_PED_ID() ,rel_group_buddies)
|
|
SET_GROUP_SEPARATION_RANGE(PLAYER_GROUP_ID(), 150.0)
|
|
|
|
//SET_MAX_WANTED_LEVEL(0)
|
|
SET_WANTED_LEVEL_MULTIPLIER(0.4)
|
|
DISABLE_TAXI_HAILING(TRUE)
|
|
|
|
SET_PED_CONFIG_FLAG(PLAYER_PED_ID(),PCF_WillFlyThroughWindscreen,FALSE)
|
|
|
|
SET_VEHICLE_MODEL_IS_SUPPRESSED(FORKLIFT,TRUE)
|
|
SET_VEHICLE_MODEL_IS_SUPPRESSED(BODHI2,TRUE)
|
|
SET_VEHICLE_MODEL_IS_SUPPRESSED(BIFF,TRUE)
|
|
SET_PED_MODEL_IS_SUPPRESSED(GET_NPC_PED_MODEL(CHAR_WADE),TRUE)
|
|
SET_PED_MODEL_IS_SUPPRESSED(GET_NPC_PED_MODEL(CHAR_FLOYD),TRUE)
|
|
bHasChanged = GET_PLAYER_HAS_CHANGE_CLOTHES_ON_MISSION(CHAR_TREVOR)
|
|
|
|
SETUP_PEDS_FOR_DIALOGUE()
|
|
|
|
IF Is_Replay_In_Progress()
|
|
//Load appropriate mission stage dependent on checkpoint
|
|
IF Get_Replay_Mid_Mission_Stage() > ENUM_TO_INT(MISSION_STAGE_SETUP) AND Get_Replay_Mid_Mission_Stage() < ENUM_TO_INT(MISSION_STAGE_PASSED)
|
|
iReplayStage = Get_Replay_Mid_Mission_Stage()
|
|
|
|
IF g_bShitskipAccepted = TRUE
|
|
iReplayStage = iReplayStage + 1
|
|
IF iReplayStage < ENUM_TO_INT(MISSION_STAGE_PASSED)
|
|
PRINTSTRING("******* Actual value - iReplayStage= ")PRINTINT(iReplayStage)PRINTNL()
|
|
IF iReplayStage = 1
|
|
//DRIVE
|
|
START_REPLAY_SETUP(<< 24.4835, -2536.4578, 5.0410 >>,55.2078)
|
|
eMissionStage = MISSION_STAGE_2
|
|
PRINTSTRING("******* iReplayStage = 2")//PRINTNL()
|
|
ELIF iReplayStage = 2
|
|
//PARK
|
|
START_REPLAY_SETUP(<< 24.4835, -2536.4578, 5.0410 >>,55.2078)
|
|
eMissionStage = MISSION_STAGE_2
|
|
PRINTSTRING("******* iReplayStage = 3")//PRINTNL()
|
|
ELIF iReplayStage = 3
|
|
//FOLLOW FLOYD
|
|
START_REPLAY_SETUP(<< -61.5066, -2525.5120, 5.0101 >>,56.9516)
|
|
eMissionStage = MISSION_STAGE_4
|
|
PRINTSTRING("******* iReplayStage = 4")//PRINTNL()
|
|
ELIF iReplayStage = 4
|
|
//FORKLIFTS
|
|
START_REPLAY_SETUP(<<-125.5439, -2421.8813, 5.0005>> ,49.0800)
|
|
eMissionStage = MISSION_STAGE_5
|
|
PRINTSTRING("******* iReplayStage = 5")//PRINTNL()
|
|
ELIF iReplayStage = 5
|
|
//GO TO CRANE
|
|
START_REPLAY_SETUP(<<-88.8838, -2451.5679, 5.0175>> ,317.2729)
|
|
eMissionStage = MISSION_STAGE_6
|
|
PRINTSTRING("******* iReplayStage = 6")//PRINTNL()
|
|
ELIF iReplayStage = 6
|
|
//USE CRANE
|
|
START_REPLAY_SETUP(<< -50.2985, -2403.9036, 5.0003 >> ,191.2160)
|
|
eMissionStage = MISSION_STAGE_7
|
|
PRINTSTRING("******* iReplayStage = 7")//PRINTNL()
|
|
ELIF iReplayStage = 7
|
|
//PHOTOGRAPH BOAT
|
|
START_REPLAY_SETUP(<< -114.5969, -2406.8113, 22.2282 >> ,359.8527)
|
|
eMissionStage = MISSION_STAGE_8
|
|
PRINTSTRING("******* iReplayStage = 8")//PRINTNL()
|
|
ELIF iReplayStage = 8
|
|
START_REPLAY_SETUP(<<-120.9023, -2411.2688, 5.0007>> ,195.5543)
|
|
//DRIVE TO OTHER DOCKS
|
|
eMissionStage = MISSION_STAGE_10
|
|
PRINTSTRING("******* iReplayStage = 10")//PRINTNL()
|
|
ELIF iReplayStage = 9
|
|
//DRIVE HOME
|
|
START_REPLAY_SETUP(<<479.0352, -3050.4910, 5.0937>> , 0.7722 )
|
|
eMissionStage = MISSION_STAGE_11
|
|
PRINTSTRING("******* iReplayStage = 10")//PRINTNL()
|
|
ELIF iReplayStage = 10
|
|
//DO_SCREEN_FADE_IN(DEFAULT_FADE_TIME_SHORT)
|
|
eMissionStage = MISSION_STAGE_PASSED
|
|
//PASSED
|
|
START_REPLAY_SETUP(<<-1153.4308, -1517.1697, 9.6327>>, 126.3936 )
|
|
eMissionStage = MISSION_STAGE_PASSED
|
|
PRINTSTRING("******* iReplayStage = MISSION_STAGE_PASSED")//PRINTNL()
|
|
ELIF iReplayStage = 11
|
|
//DO_SCREEN_FADE_IN(DEFAULT_FADE_TIME_SHORT)
|
|
eMissionStage = MISSION_STAGE_PASSED
|
|
//PASSED
|
|
START_REPLAY_SETUP(<<-1153.4308, -1517.1697, 9.6327>>, 126.3936 )
|
|
eMissionStage = MISSION_STAGE_PASSED
|
|
PRINTSTRING("******* iReplayStage = MISSION_STAGE_PASSED")//PRINTNL()
|
|
ELSE
|
|
SCRIPT_ASSERT("Docks Setup: Trying to replay a mission stage that doesn't exist!")
|
|
ENDIF
|
|
ELSE
|
|
DO_SCREEN_FADE_IN(DEFAULT_FADE_TIME_SHORT)
|
|
eMissionStage = MISSION_STAGE_PASSED
|
|
ENDIF
|
|
ELSE
|
|
//If the player chose to start from a checkpoint, jump to the last checkpoint reached.
|
|
//eMissionStage = INT_TO_ENUM(MISSION_STAGE_ENUM, (Get_Replay_Mid_Mission_Stage()+1))
|
|
IF iReplayStage = 0
|
|
//DRIVE
|
|
START_REPLAY_SETUP(<<-1156.4092, -1523.9283, 3.2957>>,323.2638)
|
|
eMissionStage = MISSION_STAGE_1
|
|
PRINTSTRING("******* iReplayStage = 1")//PRINTNL()
|
|
ELIF iReplayStage = 2
|
|
//PARK
|
|
START_REPLAY_SETUP(<< 24.4835, -2536.4578, 5.0410 >>,55.2078)
|
|
eMissionStage = MISSION_STAGE_2
|
|
PRINTSTRING("******* iReplayStage = 2")//PRINTNL()
|
|
ELIF iReplayStage = 3
|
|
//FOLLOW FLOYD
|
|
START_REPLAY_SETUP(<< -61.5066, -2525.5120, 5.0101 >>,56.9516)
|
|
eMissionStage = MISSION_STAGE_4
|
|
PRINTSTRING("******* iReplayStage = 3")//PRINTNL()
|
|
ELIF iReplayStage = 4
|
|
//FORKLIFTS
|
|
START_REPLAY_SETUP(<<-125.5439, -2421.8813, 5.0005>> ,49.0800)
|
|
eMissionStage = MISSION_STAGE_5
|
|
PRINTSTRING("******* iReplayStage = 4")//PRINTNL()
|
|
ELIF iReplayStage = 5
|
|
//GO TO CRANE
|
|
START_REPLAY_SETUP(<<-88.8838, -2451.5679, 5.0175>> ,317.2729)
|
|
eMissionStage = MISSION_STAGE_6
|
|
PRINTSTRING("******* iReplayStage = 5")//PRINTNL()
|
|
ELIF iReplayStage = 6
|
|
//USE CRANE
|
|
START_REPLAY_SETUP(<< -50.2985, -2403.9036, 5.0003 >> ,191.2160)
|
|
eMissionStage = MISSION_STAGE_7
|
|
PRINTSTRING("******* iReplayStage = 6")//PRINTNL()
|
|
ELIF iReplayStage = 7
|
|
//PHOTOGRAPH BOAT
|
|
START_REPLAY_SETUP(<< -114.5969, -2406.8113, 22.2282 >> ,359.8527)
|
|
eMissionStage = MISSION_STAGE_8
|
|
PRINTSTRING("******* iReplayStage = 7")//PRINTNL()
|
|
ELIF iReplayStage = 8
|
|
//DRIVE TO OTHER DOCKS
|
|
START_REPLAY_SETUP(<<-120.9023, -2411.2688, 5.0007>> ,195.5543)
|
|
eMissionStage = MISSION_STAGE_10
|
|
PRINTSTRING("******* iReplayStage = 8")//PRINTNL()
|
|
ELIF iReplayStage = 9
|
|
//DRIVE HOME
|
|
START_REPLAY_SETUP(<<479.0352, -3050.4910, 5.0937>> , 0.7722 )
|
|
eMissionStage = MISSION_STAGE_11
|
|
PRINTSTRING("******* iReplayStage =9")//PRINTNL()
|
|
ELSE
|
|
SCRIPT_ASSERT("Trevor2: Trying to replay a mission stage that doesn't exist!")
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ELSE
|
|
|
|
IF iReplayStage = 0
|
|
IF g_bShitskipAccepted = TRUE
|
|
eMissionStage = MISSION_STAGE_2
|
|
PRINTSTRING("******* jumping past the drive")PRINTNL()
|
|
ELSE
|
|
eMissionStage = MISSION_STAGE_1
|
|
PRINTSTRING("******* iReplayStage = 0")PRINTNL()
|
|
ENDIF
|
|
ELSE
|
|
eMissionStage = MISSION_STAGE_OPENING_CUTSCENE
|
|
ENDIF
|
|
|
|
ENDIF
|
|
//SET_PLAYER_START_POSITION(eMissionStage)
|
|
ELSE
|
|
PRINTSTRING("******* Here - 1")PRINTNL()
|
|
|
|
// Your mission is being played normally, not being replayed
|
|
eMissionStage = MISSION_STAGE_OPENING_CUTSCENE
|
|
ENDIF
|
|
|
|
IF eMissionStage != MISSION_STAGE_OPENING_CUTSCENE
|
|
PRINTSTRING("******* Here - 2")PRINTNL()
|
|
WHILE NOT bmissionstageloaded // continues requesting asserts/setup for particular stage until all are loaded
|
|
WAIT(0)
|
|
LOAD_MISSION_STAGE(eMissionStage)
|
|
ENDWHILE
|
|
ENDIF
|
|
|
|
bmissionstageloaded = FALSE
|
|
|
|
ENDPROC
|
|
|
|
FUNC BOOL MANAGE_GOD_TEXT_AND_DIALOGUE(STRING sGodText, STRING sDialogueBlock, STRING sDialogueRoot)
|
|
IF bDialogue = FALSE
|
|
IF bGodText = FALSE
|
|
IF NOT IS_STRING_NULL(sGodText)
|
|
IF NOT IS_THIS_PRINT_BEING_DISPLAYED(sGodText)
|
|
PRINT_GOD_TEXT(sGodText)
|
|
iGandDTimer = GET_GAME_TIMER()
|
|
bGodText = TRUE
|
|
ENDIF
|
|
ELSE
|
|
bGodText = TRUE
|
|
ENDIF
|
|
ELSE
|
|
//IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData)
|
|
IF NOT IS_STRING_NULL(sGodText)
|
|
IF MANAGE_MY_TIMER(iGandDTimer,4000)
|
|
IF NOT IS_THIS_PRINT_BEING_DISPLAYED(sGodText)
|
|
IF CREATE_CONVERSATION(sSpeech,sDialogueBlock, sDialogueRoot, CONV_PRIORITY_HIGH )
|
|
bDialogue = TRUE
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF CREATE_CONVERSATION(sSpeech,sDialogueBlock, sDialogueRoot, CONV_PRIORITY_HIGH)
|
|
bDialogue = TRUE
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
//ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
PROC MANAGE_DIALOGUE()
|
|
|
|
//PRINTSTRING("iMissionDialogue: ")PRINTINT(iMissionDialogue)
|
|
|
|
SWITCH iMissionDialogue
|
|
|
|
CASE 0
|
|
//PURPOSE: Drive to the Docks with floyd, trigger dialogue about the bridge
|
|
IF eMissionStage = MISSION_STAGE_1
|
|
IF IS_VEHICLE_DRIVEABLE(vehMission)
|
|
IF DOES_BLIP_EXIST(sLocatesData.LocationBlip)
|
|
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<352.884644,-2391.758301,8.183699>>, <<351.202393,-2238.528809,12.798820>>, 29.000000)
|
|
OR IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<369.152985,-2225.729980,9.336354>>, <<342.831940,-2223.622803,27.368328>>, 86.500000)
|
|
IF SETUP_PEDS_FOR_DIALOGUE()
|
|
IF CREATE_CONVERSATION(sSpeech,"D1AUD", "DS1_01a", CONV_PRIORITY_HIGH)
|
|
REPLAY_RECORD_BACK_FOR_TIME(2.0, 10.0, REPLAY_IMPORTANCE_HIGHEST)
|
|
iMissionDialogue ++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 1
|
|
//PURPOSE: Get to gate
|
|
|
|
IF eMissionStage = MISSION_STAGE_1
|
|
iMissionDialogue ++
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 2
|
|
//PURPOSE: Wade gets called off
|
|
IF eMissionStage = MISSION_STAGE_2
|
|
IF iProgress >= 4
|
|
iMissionDialogue++
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 3
|
|
|
|
iMissionDialogue ++
|
|
|
|
BREAK
|
|
|
|
CASE 4
|
|
|
|
iMissionDialogue ++
|
|
|
|
BREAK
|
|
|
|
CASE 5
|
|
iMissionDialogue ++
|
|
BREAK
|
|
|
|
CASE 6
|
|
|
|
iMissionDialogue ++
|
|
BREAK
|
|
|
|
CASE 7
|
|
//PURPOSE: Wander around the docks - That's the freighter I told you about.
|
|
iMissionDialogue ++
|
|
BREAK
|
|
|
|
CASE 8
|
|
//PURPOSE: Wander around the docks - You, you! I need drivers on these forklifts. We got crates to clear ASAP.
|
|
IF eMissionStage = MISSION_STAGE_4
|
|
IF bcutsceneplaying
|
|
IF iCutsceneStage > 0
|
|
IF SETUP_PEDS_FOR_DIALOGUE()
|
|
iMissionDialogue ++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
|
|
CASE 9
|
|
//PURPOSE: Forklifts, player gets into forklift
|
|
IF eMissionStage = MISSION_STAGE_5
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehHandler)
|
|
IF SETUP_PEDS_FOR_DIALOGUE()
|
|
iMissionDialogue ++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 10
|
|
//PURPOSE: Ok now let's clear the area up and see what we can find.
|
|
IF eMissionStage = MISSION_STAGE_5
|
|
iMissionDialogue ++
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 11
|
|
//PURPOSE: Drive to the crane
|
|
IF eMissionStage = MISSION_STAGE_6
|
|
//Add drive to crane god text.
|
|
IF SETUP_PEDS_FOR_DIALOGUE()
|
|
//IF MANAGE_GOD_TEXT_AND_DIALOGUE("","D1AUD","DS1_08a")
|
|
bDialogue = FALSE
|
|
bGodText = FALSE
|
|
iMissionDialogue ++
|
|
//ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 12
|
|
//PURPOSE: In Crane
|
|
IF eMissionStage = MISSION_STAGE_7
|
|
//Add crane god text
|
|
IF iProgress > 1
|
|
IF SETUP_PEDS_FOR_DIALOGUE()
|
|
IF DOES_ENTITY_EXIST(pedDockWorker[14])
|
|
IF NOT IS_PED_INJURED(pedDockWorker[14])
|
|
ADD_PED_FOR_DIALOGUE(sSpeech, 8, pedDockWorker[14], "SIGNALMAN")
|
|
ENDIF
|
|
ELSE
|
|
IF sSpeech.PedInfo[8].Index <> NULL
|
|
REMOVE_PED_FOR_DIALOGUE(sSpeech, 8)
|
|
ENDIF
|
|
ENDIF
|
|
iMissionDialogue ++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 13
|
|
//PURPOSE: Take Photos
|
|
IF eMissionStage = MISSION_STAGE_8
|
|
IF iProgress = 2
|
|
IF SETUP_PEDS_FOR_DIALOGUE()
|
|
IF NOT IS_THIS_PRINT_BEING_DISPLAYED("AW_TAKE_PHOTO")
|
|
IF SETUP_PEDS_FOR_DIALOGUE()
|
|
//IF CREATE_CONVERSATION(sSpeech,"D1AUD", "DS1_11", CONV_PRIORITY_HIGH)
|
|
iMissionDialogue ++
|
|
//ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 14
|
|
//PURPOSE: Take Photos - One taken
|
|
IF eMissionStage = MISSION_STAGE_8
|
|
IF iProgress = 4
|
|
IF SETUP_PEDS_FOR_DIALOGUE()
|
|
//KILL_ANY_CONVERSATION()
|
|
// IF CREATE_CONVERSATION(sSpeech,"D1AUD", "DS1_1", CONV_PRIORITY_HIGH)
|
|
iMissionDialogue ++
|
|
//ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 15
|
|
//PURPOSE: Take Photos - Two Taken
|
|
IF eMissionStage = MISSION_STAGE_8
|
|
|
|
IF iProgress = 5
|
|
IF SETUP_PEDS_FOR_DIALOGUE()
|
|
//KILL_ANY_CONVERSATION()
|
|
//CREATE_CONVERSATION(sSpeech,"D1AUD", "DS1_11c", CONV_PRIORITY_HIGH)
|
|
iMissionDialogue ++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 16
|
|
//PURPOSE: Photos Done Cutscene
|
|
iMissionDialogue ++
|
|
//Now handled within the cutscene
|
|
BREAK
|
|
|
|
CASE 17
|
|
//PURPOSE: Drive to other docks
|
|
IF eMissionStage = MISSION_STAGE_10
|
|
IF SETUP_PEDS_FOR_DIALOGUE()
|
|
//IF MANAGE_GOD_TEXT_AND_DIALOGUE("AW_TREVTRU","D1AUD","DS1_15")
|
|
//bDialogue = FALSE
|
|
//bGodText = FALSE
|
|
iMissionDialogue ++
|
|
//ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 18
|
|
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
|
|
ENDPROC
|
|
|
|
|
|
FUNC BOOL DO_PHONECALL()
|
|
IF NOT bPhoneCallStarted
|
|
IF PLAYER_CALL_CHAR_CELLPHONE( sSpeech, CHAR_RON, "D1AUD", "DS1_12", CONV_PRIORITY_VERY_HIGH)
|
|
DISABLE_HANGUP_FOR_THIS_CALL(TRUE)
|
|
bPhoneCallStarted = TRUE
|
|
SETTIMERA(0)
|
|
ENDIF
|
|
ELSE
|
|
IF HAS_CELLPHONE_CALL_FINISHED()
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
PROC CUTSCENE_SPY_ON_DOCKS()
|
|
|
|
SETTIMERA(0)
|
|
bcutsceneplaying = TRUE
|
|
HIDE_HUD_AND_RADAR_THIS_FRAME()
|
|
|
|
WHILE bcutsceneplaying //holds the script inside here until cutscene is complete
|
|
|
|
WAIT(0)
|
|
HIDE_HUD_AND_RADAR_THIS_FRAME()
|
|
|
|
//CONTROL_SPEECH()
|
|
|
|
#IF IS_DEBUG_BUILD // allows j/p skip to work even in cutscene
|
|
IF IS_KEYBOARD_KEY_JUST_PRESSED(KEY_J)OR IS_KEYBOARD_KEY_JUST_PRESSED(KEY_P)
|
|
bcutsceneplaying = FALSE
|
|
ENDIF
|
|
#ENDIF
|
|
|
|
IF icutsceneprog >1
|
|
IF IS_CUTSCENE_SKIP_BUTTON_JUST_PRESSED_WITH_DELAY() // controls the cutscene skip
|
|
OR HAS_CELLPHONE_CALL_FINISHED()
|
|
SETTIMERB(6001)
|
|
//CONTROL_FADE_OUT(500)
|
|
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
|
|
FREEZE_ENTITY_POSITION(PLAYER_PED_ID(),FALSE)
|
|
DETACH_ENTITY(PLAYER_PED_ID(),TRUE)
|
|
HANG_UP_AND_PUT_AWAY_PHONE(TRUE)
|
|
ENDIF
|
|
icutsceneprog = 6
|
|
ENDIF
|
|
ENDIF
|
|
|
|
SWITCH icutsceneprog
|
|
|
|
CASE 0
|
|
bContainerSetUpForDrive = FALSE
|
|
//CREATE_CRANE()
|
|
|
|
//Player Control
|
|
SET_PLAYER_CONTROL(PLAYER_ID(), FALSE)
|
|
CLEAR_PRINTS()
|
|
DISABLE_CELLPHONE(FALSE)
|
|
DESTROY_ALL_CAMS()
|
|
SET_SCRIPTS_SAFE_FOR_CUTSCENE(TRUE)
|
|
|
|
IF NOT IS_PED_INJURED(pedFloyd) AND IS_VEHICLE_DRIVEABLE(vehFloydTruck)
|
|
SET_PED_INTO_VEHICLE(pedFloyd,vehFloydTruck,VS_FRONT_RIGHT)
|
|
ENDIF
|
|
|
|
REQUEST_MODEL(BIFF)
|
|
|
|
IF IS_PLAYER_PLAYING(PLAYER_ID())
|
|
IF NOT IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
IF IS_ENTITY_ATTACHED_TO_ANY_VEHICLE(PLAYER_PED_ID())
|
|
DETACH_ENTITY(PLAYER_PED_ID())
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(vehFloydTruck) AND IS_VEHICLE_DRIVEABLE(vehTrailer2)
|
|
IF IS_VEHICLE_ATTACHED_TO_TRAILER(vehFloydTruck)
|
|
|
|
ELSE
|
|
ATTACH_VEHICLE_TO_TRAILER(vehFloydTruck,vehTrailer2)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(s_crane.obj_cabin)
|
|
IF IS_ENTITY_ATTACHED_TO_ENTITY(PLAYER_PED_ID(), s_crane.obj_cabin)
|
|
DETACH_ENTITY(PLAYER_PED_ID())
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
CLEAR_PED_TASKS_IMMEDIATELY(pedFloyd)
|
|
SET_ENTITY_COORDS(pedFloyd,<<-52.97, -2412.93, 5.00>>)
|
|
SET_ENTITY_HEADING(pedFloyd,91.63)
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
s_crane.f_crane_offset = MIN_CRANE_OFFSET
|
|
s_crane.f_crane_vel = 0.0
|
|
|
|
IF HAS_PED_GOT_WEAPON(PLAYER_PED_ID(),WEAPONTYPE_UNARMED)
|
|
AND NOT IS_PHONE_ONSCREEN()
|
|
SET_CURRENT_PED_WEAPON(PLAYER_PED_ID(),WEAPONTYPE_UNARMED,TRUE)
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(vehDocks[0])
|
|
DELETE_VEHICLE(vehDocks[0])
|
|
ENDIF
|
|
|
|
ADD_PED_FOR_DIALOGUE(sSpeech,0,NULL,"NERVOUSRON")
|
|
bInitStage = TRUE
|
|
SET_PLAYER_CONTROL(PLAYER_ID(), FALSE)
|
|
iMissionDialogue = 16
|
|
icutsceneprog ++
|
|
BREAK
|
|
|
|
CASE 1
|
|
IF TIMERB() > 1000
|
|
IF SETUP_PEDS_FOR_DIALOGUE()
|
|
KILL_ANY_CONVERSATION()
|
|
IF PLAYER_CALL_CHAR_CELLPHONE( sSpeech, CHAR_RON, "D1AUD", "DS1_12", CONV_PRIORITY_VERY_HIGH)
|
|
//DISABLE_HANGUP_FOR_THIS_CALL(TRUE)
|
|
bPhoneCallStarted = TRUE
|
|
//Camera
|
|
IF NOT DOES_CAM_EXIST(camMain)
|
|
camMain = CREATE_CAM("DEFAULT_SCRIPTED_CAMERA", TRUE)
|
|
ENDIF
|
|
//BEHIND PLAYER AND DOWN
|
|
SHAKE_CAM(camMain, "HAND_SHAKE", 0.01)
|
|
SET_CAM_PARAMS(camMain,
|
|
<< -112.6306, -2408.0786, 24.3142 >>, << -15.5866, -0.0846, 21.1613 >>,
|
|
47.4496,
|
|
0,
|
|
GRAPH_TYPE_LINEAR,
|
|
GRAPH_TYPE_LINEAR)
|
|
|
|
SET_CAM_PARAMS(camMain,
|
|
<< -112.6132, -2408.1243, 24.1435 >>, << -15.5866, -0.0846, 21.1613 >>,
|
|
46.4496,
|
|
8200,
|
|
GRAPH_TYPE_LINEAR,
|
|
GRAPH_TYPE_LINEAR)
|
|
|
|
RENDER_SCRIPT_CAMS(TRUE, FALSE)
|
|
|
|
|
|
SETTIMERB(0)
|
|
icutsceneprog ++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 2
|
|
IF HAS_MODEL_LOADED(BIFF)
|
|
|
|
IF TIMERB() > 7800
|
|
//ZOOM IN ON GUARD
|
|
SHAKE_CAM(camMain, "HAND_SHAKE", 0.01)
|
|
SET_CAM_PARAMS(camMain,
|
|
<< -103.4377, -2396.3796, 14.5640 >>, << -8.5924, -1.4284, 33.1103 >>,
|
|
16.0059,
|
|
0,
|
|
GRAPH_TYPE_LINEAR,
|
|
GRAPH_TYPE_LINEAR)
|
|
|
|
SET_CAM_PARAMS(camMain,
|
|
<< -109.5450, -2400.3953, 14.3838 >>, << -8.5924, -1.4284, 33.1103 >>,
|
|
15.0059,
|
|
9000,
|
|
GRAPH_TYPE_LINEAR,
|
|
GRAPH_TYPE_LINEAR)
|
|
|
|
SETTIMERB(0)
|
|
|
|
IF NOT DOES_ENTITY_EXIST(vehDocks[0])
|
|
SPAWN_VEHICLE(vehDocks[0],BIFF,<< -42.4866, -2397.1814, 5.0003 >>, 91.1803)
|
|
ENDIF
|
|
|
|
|
|
REQUEST_VEHICLE_RECORDING(1,"AWDocks8")
|
|
icutsceneprog ++
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 3
|
|
IF TIMERB() > 8200
|
|
//REAR PAN
|
|
SHAKE_CAM(camMain, "HAND_SHAKE", 0.05)
|
|
SET_CAM_PARAMS(camMain,
|
|
<< -165.5269, -2278.7788, 22.0802 >>, << -3.7631, 0.0397, -151.0943 >>,
|
|
11.2438,
|
|
0,
|
|
GRAPH_TYPE_LINEAR,
|
|
GRAPH_TYPE_LINEAR)
|
|
|
|
SET_CAM_PARAMS(camMain,
|
|
<< -180.5885, -2287.0940, 22.0683 >>, << -3.7631, 0.0397, -151.0943 >>,
|
|
11.0438,
|
|
15000,
|
|
GRAPH_TYPE_LINEAR,
|
|
GRAPH_TYPE_LINEAR)
|
|
SETTIMERB(0)
|
|
|
|
IF DOES_ENTITY_EXIST(vehDocks[0])
|
|
IF IS_VEHICLE_DRIVEABLE(vehDocks[0])
|
|
IF NOT IS_PED_INJURED(pedDockWorker[13])
|
|
SET_PED_INTO_VEHICLE(pedDockWorker[13],vehDocks[0])
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
icutsceneprog ++
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 4
|
|
IF TIMERB() > 10000
|
|
//PAN BEHIND CRANE LOOKING AT SHIP
|
|
SHAKE_CAM(camMain, "HAND_SHAKE", 0.01)
|
|
SET_CAM_PARAMS(camMain,
|
|
<< -74.0709, -2442.3132, 21.5670 >>, << -6.4020, -1.4284, 46.5438 >>,
|
|
16.0059,
|
|
0,
|
|
GRAPH_TYPE_LINEAR,
|
|
GRAPH_TYPE_LINEAR)
|
|
|
|
SET_CAM_PARAMS(camMain,
|
|
<< -65.6630, -2433.3894, 21.8708 >>, << -6.4020, -1.4284, 46.5438 >>,
|
|
16.4059,
|
|
24000,
|
|
GRAPH_TYPE_LINEAR,
|
|
GRAPH_TYPE_LINEAR)
|
|
SETTIMERB(0)
|
|
IF DOES_ENTITY_EXIST(vehDocks[0])
|
|
IF IS_VEHICLE_DRIVEABLE(vehDocks[0])
|
|
IF HAS_VEHICLE_RECORDING_BEEN_LOADED(1,"AWDocks8")
|
|
IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(vehDocks[0])
|
|
START_PLAYBACK_RECORDED_VEHICLE(vehDocks[0],1,"AWDocks8")
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
icutsceneprog ++
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 5
|
|
IF TIMERB() > 3000
|
|
IF HAS_CELLPHONE_CALL_FINISHED()
|
|
SET_ENTITY_COORDS(PLAYER_PED_ID(),<< -105.3935, -2404.4043, 4.9999 >> ,TRUE)
|
|
SET_ENTITY_HEADING(PLAYER_PED_ID(),58.9704)
|
|
//BEHIND PED LOOK AT FRONT OF SHIP
|
|
SHAKE_CAM(camMain, "HAND_SHAKE", 0.01)
|
|
SET_CAM_PARAMS(camMain,
|
|
<< -131.2179, -2396.0811, 8.8231 >>, << -3.1815, -1.4284, -137.3740 >>,
|
|
23.6303,
|
|
0,
|
|
GRAPH_TYPE_LINEAR,
|
|
GRAPH_TYPE_LINEAR)
|
|
|
|
SET_CAM_PARAMS(camMain,
|
|
<< -126.9600, -2392.1514, 8.6789 >>, << -3.1815, -1.4284, -137.3740 >>,
|
|
23.6303,
|
|
3500,
|
|
GRAPH_TYPE_LINEAR,
|
|
GRAPH_TYPE_LINEAR)
|
|
SETTIMERB(0)
|
|
icutsceneprog ++
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 6
|
|
|
|
IF TIMERB() > 3500
|
|
|
|
IF DOES_CAM_EXIST(camMain)
|
|
SET_CAM_ACTIVE(camMain,FALSE)
|
|
RENDER_SCRIPT_CAMS(FALSE,FALSE)
|
|
ENDIF
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(vehMission)
|
|
TASK_LEAVE_VEHICLE(PLAYER_PED_ID(),vehMission)
|
|
ENDIF
|
|
SET_PLAYER_CONTROL(PLAYER_ID(),TRUE)
|
|
SET_WIDESCREEN_BORDERS(FALSE,0)
|
|
SET_GAMEPLAY_CAM_RELATIVE_HEADING()
|
|
CONTROL_FADE_IN(500)
|
|
SET_PLAYER_CONTROL(PLAYER_ID(),TRUE)
|
|
CLEAR_PRINTS()
|
|
PRINTSTRING("quad cut end")
|
|
IF DOES_CAM_EXIST(camMain)
|
|
DESTROY_CAM(camMain)
|
|
ENDIF
|
|
icutsceneprog = 0
|
|
|
|
SET_WIDESCREEN_BORDERS(FALSE,0)
|
|
SET_GAMEPLAY_CAM_RELATIVE_HEADING(0.0)
|
|
SET_TIME_SCALE(1.0)
|
|
DISPLAY_RADAR(TRUE)
|
|
|
|
IF IS_PLAYER_PLAYING(PLAYER_ID())
|
|
SET_PLAYER_CONTROL (PLAYER_ID(), TRUE)
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(vehDocks[0])
|
|
DELETE_VEHICLE(vehDocks[0])
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(vehDocks[1])
|
|
DELETE_VEHICLE(vehDocks[1])
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(vehDocks[2])
|
|
DELETE_VEHICLE(vehDocks[2])
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(vehDocks[3])
|
|
DELETE_VEHICLE(vehDocks[3])
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(vehDocks[4])
|
|
DELETE_VEHICLE(vehDocks[4])
|
|
ENDIF
|
|
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(BIFF)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(FORKLIFT)
|
|
|
|
TASK_USE_MOBILE_PHONE(PLAYER_PED_ID(),FALSE)
|
|
|
|
SET_SCRIPTS_SAFE_FOR_CUTSCENE(FALSE)
|
|
DISPLAY_HUD(TRUE)
|
|
DISABLE_CELLPHONE(FALSE)
|
|
//SEND_TEXT_MESSAGE_TO_CURRENT_PLAYER (CHAR_RON, "TXT_PHOTO3", TXTMSG_UNLOCKED)
|
|
|
|
CLEAR_PRINTS()
|
|
KILL_ANY_CONVERSATION()
|
|
CLEAR_HELP()
|
|
|
|
HIDE_ACTIVE_PHONE(FALSE)
|
|
SET_SCRIPTS_SAFE_FOR_CUTSCENE(FALSE)
|
|
KILL_ANY_CONVERSATION()
|
|
brunfailchecks = FALSE
|
|
bcutsceneplaying = FALSE
|
|
|
|
ENDIF
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
ENDWHILE
|
|
|
|
ENDPROC
|
|
|
|
|
|
PROC CLEAR_UP_EVENTS_AFTER_WALK_AND_TALK()
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
CLEAR_PED_TASKS(pedFloyd)
|
|
CLEAR_PED_ALTERNATE_WALK_ANIM(pedFloyd)
|
|
CLEAR_PED_ALTERNATE_WALK_ANIM(PLAYER_PED_ID())
|
|
ENDIF
|
|
|
|
IF bSetPiece[SS_STATIC_GANTRY_GUYS] = TRUE
|
|
bSetPiece[SS_STATIC_GANTRY_GUYS] = FALSE
|
|
ENDIF
|
|
IF bSetPiece[SS_ARRIVE_AT_DOCKS] = TRUE
|
|
bSetPiece[SS_ARRIVE_AT_DOCKS] = FALSE
|
|
ENDIF
|
|
IF bSetPiece[SS_FLOYD_GRABS_PACKAGE] = TRUE
|
|
bSetPiece[SS_FLOYD_GRABS_PACKAGE] = FALSE
|
|
ENDIF
|
|
IF bSetPiece[SS_GANTRY_GUYS] = TRUE
|
|
bSetPiece[SS_GANTRY_GUYS] = FALSE
|
|
ENDIF
|
|
IF bSetPiece[SS_dock_workers_on_pipe] = TRUE
|
|
bSetPiece[SS_dock_workers_on_pipe] = FALSE
|
|
ENDIF
|
|
IF bSetPiece[Ss_dock_workers_talking] = TRUE
|
|
bSetPiece[Ss_dock_workers_talking] = FALSE
|
|
ENDIF
|
|
IF bSetPiece[SS_guys_around_car] = TRUE
|
|
bSetPiece[SS_guys_around_car] = FALSE
|
|
ENDIF
|
|
|
|
REPEAT COUNT_OF(s_sv_car_to_admire) iCount
|
|
CLEAN_UP_SETPIECE_VEHILCE(s_sv_car_to_admire[iCount],TRUE,FALSE)
|
|
ENDREPEAT
|
|
|
|
REPEAT COUNT_OF(s_sp_dock_workers_on_pipe) iCount
|
|
CLEAN_UP_SETPIECE_PED(s_sp_dock_workers_on_pipe[iCount],TRUE,FALSE)
|
|
ENDREPEAT
|
|
|
|
REPEAT COUNT_OF(s_sp_dock_workers_talking) iCount
|
|
CLEAN_UP_SETPIECE_PED(s_sp_dock_workers_talking[iCount],TRUE,FALSE)
|
|
ENDREPEAT
|
|
|
|
REPEAT COUNT_OF(s_sp_floyd_grabs_package) iCount
|
|
CLEAN_UP_SETPIECE_PED(s_sp_floyd_grabs_package[iCount],TRUE,FALSE)
|
|
ENDREPEAT
|
|
|
|
REPEAT COUNT_OF(s_sp_guys_around_car) iCount
|
|
CLEAN_UP_SETPIECE_PED(s_sp_guys_around_car[iCount],TRUE,FALSE)
|
|
ENDREPEAT
|
|
|
|
REPEAT COUNT_OF(s_sp_gantry_guys_dynamic) iCount
|
|
CLEAN_UP_SETPIECE_PED(s_sp_gantry_guys_dynamic[iCount],TRUE,FALSE)
|
|
ENDREPEAT
|
|
|
|
REPEAT COUNT_OF(s_sp_gantry_guys_static) iCount
|
|
CLEAN_UP_SETPIECE_PED(s_sp_gantry_guys_static[iCount],TRUE,FALSE)
|
|
ENDREPEAT
|
|
|
|
REMOVE_ANIM_DICT("missheistdockssetup1ig_2_p1@new_structure")
|
|
REMOVE_ANIM_DICT("missdocksshowoffcar@idle_a")
|
|
REMOVE_ANIM_DICT("missdocksshowoffcar@idle_b")
|
|
REMOVE_ANIM_DICT("missdocksshowoffcar@base")
|
|
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_9@main_action")
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_14")
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
SET_VEHICLE_IS_CONSIDERED_BY_PLAYER(vehHandler,FALSE)
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
INT ipedDockWorker13Timer
|
|
INT iAmbientDialogueTimerDock3
|
|
INT iAmbientDialogueTimerDock4
|
|
|
|
PROC MANAGE_DOCK_WORKER_AMBIENT_DIALOGUE()
|
|
|
|
//WELDER {dock 1 sees Floyd}
|
|
IF DOES_ENTITY_EXIST(s_sp_welder[0].ped)
|
|
IF NOT IS_PED_INJURED(s_sp_welder[0].ped)
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
IF MANAGE_MY_TIMER(iAmbientDialogueTimer, GET_RANDOM_INT_IN_RANGE(8000,10000))
|
|
IF GET_DISTANCE_BETWEEN_COORDS(GET_ENTITY_COORDS(pedFloyd),GET_ENTITY_COORDS(s_sp_welder[0].ped)) < 10
|
|
IF NOT IS_PED_INJURED(s_sp_welder[0].ped)
|
|
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(s_sp_welder[0].ped,"DH1_CRAA","DOCKWORKER1",SPEECH_PARAMS_FORCE_NORMAL)
|
|
iAmbientDialogueTimer = GET_GAME_TIMER()
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//PED ON PHONE - {dock 3 is on the phone} - 1
|
|
IF DOES_ENTITY_EXIST(pedDockWorker[5])
|
|
IF NOT IS_PED_INJURED(pedDockWorker[5])
|
|
IF GET_DISTANCE_BETWEEN_COORDS(GET_ENTITY_COORDS(PLAYER_PED_ID()),GET_ENTITY_COORDS(pedDockWorker[5])) < 10
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DH1_CUAA")
|
|
IF NOT IS_AMBIENT_SPEECH_PLAYING(pedDockWorker[5])
|
|
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(pedDockWorker[5],"DH1_CUAA","DS1DOCKW3",SPEECH_PARAMS_FORCE)
|
|
SET_LABEL_AS_TRIGGERED("DH1_CUAA",TRUE)
|
|
PRINTSTRING("DH1_CUAA")PRINTNL()
|
|
ENDIF
|
|
ELSE
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DH1_CUAB")
|
|
IF NOT IS_AMBIENT_SPEECH_PLAYING(pedDockWorker[5])
|
|
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(pedDockWorker[5],"DH1_CUAB","DS1DOCKW3",SPEECH_PARAMS_FORCE)
|
|
SET_LABEL_AS_TRIGGERED("DH1_CUAB",TRUE)
|
|
PRINTSTRING("DH1_CUAB")PRINTNL()
|
|
ENDIF
|
|
ELSE
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DH1_CUAC")
|
|
IF NOT IS_AMBIENT_SPEECH_PLAYING(pedDockWorker[5])
|
|
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(pedDockWorker[5],"DH1_CUAC","DS1DOCKW3",SPEECH_PARAMS_FORCE)
|
|
SET_LABEL_AS_TRIGGERED("DH1_CUAC",TRUE)
|
|
PRINTSTRING("DH1_CUAC")PRINTNL()
|
|
ENDIF
|
|
ELSE
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DH1_CUAD")
|
|
IF NOT IS_AMBIENT_SPEECH_PLAYING(pedDockWorker[5])
|
|
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(pedDockWorker[5],"DH1_CUAD","DS1DOCKW3",SPEECH_PARAMS_FORCE)
|
|
SET_LABEL_AS_TRIGGERED("DH1_CUAD",TRUE)
|
|
PRINTSTRING("DH1_CUAD")PRINTNL()
|
|
iAmbientDialogueTimerDock3 = GET_GAME_TIMER()
|
|
ENDIF
|
|
ELSE
|
|
IF MANAGE_MY_TIMER(iAmbientDialogueTimerDock3, GET_RANDOM_INT_IN_RANGE(8000,15000))
|
|
SET_LABEL_AS_TRIGGERED("DH1_CUAD",FALSE)
|
|
SET_LABEL_AS_TRIGGERED("DH1_CUAC",FALSE)
|
|
SET_LABEL_AS_TRIGGERED("DH1_CUAB",FALSE)
|
|
SET_LABEL_AS_TRIGGERED("DH1_CUAA",FALSE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//WORKING ON PIPE
|
|
IF DOES_ENTITY_EXIST(s_sp_dock_workers_on_pipe[0].ped)
|
|
IF NOT IS_PED_INJURED(s_sp_dock_workers_on_pipe[0].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_dock_workers_on_pipe[1].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_dock_workers_on_pipe[2].ped)
|
|
IF GET_DISTANCE_BETWEEN_COORDS(GET_ENTITY_COORDS(PLAYER_PED_ID()),GET_ENTITY_COORDS(s_sp_dock_workers_on_pipe[0].ped)) < 10
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DH1_CYAA")
|
|
IF NOT IS_AMBIENT_SPEECH_PLAYING(s_sp_dock_workers_on_pipe[0].ped)
|
|
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(s_sp_dock_workers_on_pipe[0].ped,"DH1_CYAA","DS1DOCKW4",SPEECH_PARAMS_FORCE)
|
|
SET_LABEL_AS_TRIGGERED("DH1_CYAA",TRUE)
|
|
PRINTSTRING("DH1_CYAA")PRINTNL()
|
|
ENDIF
|
|
ELSE
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DH1_CYAB")
|
|
IF NOT IS_AMBIENT_SPEECH_PLAYING(s_sp_dock_workers_on_pipe[0].ped)
|
|
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(s_sp_dock_workers_on_pipe[1].ped,"DH1_CYAB","DS1DOCKW5",SPEECH_PARAMS_FORCE)
|
|
SET_LABEL_AS_TRIGGERED("DH1_CYAB",TRUE)
|
|
PRINTSTRING("DH1_CYAB")PRINTNL()
|
|
ENDIF
|
|
ELSE
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DH1_CYAC")
|
|
IF NOT IS_AMBIENT_SPEECH_PLAYING(s_sp_dock_workers_on_pipe[1].ped)
|
|
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(s_sp_dock_workers_on_pipe[0].ped,"DH1_CYAC","DS1DOCKW4",SPEECH_PARAMS_FORCE)
|
|
SET_LABEL_AS_TRIGGERED("DH1_CYAC",TRUE)
|
|
PRINTSTRING("DH1_CYAC")PRINTNL()
|
|
ENDIF
|
|
ELSE
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DH1_CYAD")
|
|
IF NOT IS_AMBIENT_SPEECH_PLAYING(s_sp_dock_workers_on_pipe[0].ped)
|
|
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(s_sp_dock_workers_on_pipe[2].ped,"DH1_CYAD","DS1DOCKW6",SPEECH_PARAMS_FORCE)
|
|
SET_LABEL_AS_TRIGGERED("DH1_CYAD",TRUE)
|
|
PRINTSTRING("DH1_CYAD")PRINTNL()
|
|
ENDIF
|
|
ELSE
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DH1_CYAE")
|
|
IF NOT IS_AMBIENT_SPEECH_PLAYING(s_sp_dock_workers_on_pipe[2].ped)
|
|
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(s_sp_dock_workers_on_pipe[0].ped,"DH1_CYAE","DS1DOCKW4",SPEECH_PARAMS_FORCE)
|
|
SET_LABEL_AS_TRIGGERED("DH1_CYAE",TRUE)
|
|
PRINTSTRING("DH1_CYAE")PRINTNL()
|
|
|
|
ENDIF
|
|
ELSE
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DH1_CYAF")
|
|
IF NOT IS_AMBIENT_SPEECH_PLAYING(s_sp_dock_workers_on_pipe[0].ped)
|
|
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(s_sp_dock_workers_on_pipe[2].ped,"DH1_CYAF","DS1DOCKW6",SPEECH_PARAMS_FORCE)
|
|
SET_LABEL_AS_TRIGGERED("DH1_CYAF",TRUE)
|
|
PRINTSTRING("DH1_CYAF")PRINTNL()
|
|
|
|
ENDIF
|
|
ELSE
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DH1_CYAG")
|
|
IF NOT IS_AMBIENT_SPEECH_PLAYING(s_sp_dock_workers_on_pipe[2].ped)
|
|
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(s_sp_dock_workers_on_pipe[0].ped,"DH1_CYAG","DS1DOCKW4",SPEECH_PARAMS_FORCE)
|
|
SET_LABEL_AS_TRIGGERED("DH1_CYAG",TRUE)
|
|
PRINTSTRING("DH1_CYAG")PRINTNL()
|
|
|
|
ENDIF
|
|
ELSE
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DH1_CYAH")
|
|
IF NOT IS_AMBIENT_SPEECH_PLAYING(s_sp_dock_workers_on_pipe[0].ped)
|
|
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(s_sp_dock_workers_on_pipe[2].ped,"DH1_CYAH","DS1DOCKW6",SPEECH_PARAMS_FORCE)
|
|
SET_LABEL_AS_TRIGGERED("DH1_CYAH",TRUE)
|
|
PRINTSTRING("DH1_CYAH")PRINTNL()
|
|
|
|
ENDIF
|
|
ELSE
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DH1_CYAI")
|
|
IF NOT IS_AMBIENT_SPEECH_PLAYING(s_sp_dock_workers_on_pipe[2].ped)
|
|
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(s_sp_dock_workers_on_pipe[1].ped,"DH1_CYAI","DS1DOCKW5",SPEECH_PARAMS_FORCE)
|
|
SET_LABEL_AS_TRIGGERED("DH1_CYAI",TRUE)
|
|
PRINTSTRING("DH1_CYAI")PRINTNL()
|
|
|
|
ENDIF
|
|
ELSE
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DH1_CYAJ")
|
|
IF NOT IS_AMBIENT_SPEECH_PLAYING(s_sp_dock_workers_on_pipe[1].ped)
|
|
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(s_sp_dock_workers_on_pipe[0].ped,"DH1_CYAJ","DS1DOCKW4",SPEECH_PARAMS_FORCE)
|
|
SET_LABEL_AS_TRIGGERED("DH1_CYAJ",TRUE)
|
|
PRINTSTRING("DH1_CYAJ")PRINTNL()
|
|
iAmbientDialogueTimerDock4 = GET_GAME_TIMER()
|
|
ENDIF
|
|
ELSE
|
|
IF MANAGE_MY_TIMER(iAmbientDialogueTimerDock4, GET_RANDOM_INT_IN_RANGE(8000,15000))
|
|
SET_LABEL_AS_TRIGGERED("DH1_CYAJ",TRUE)
|
|
SET_LABEL_AS_TRIGGERED("DH1_CYAI",TRUE)
|
|
SET_LABEL_AS_TRIGGERED("DH1_CYAH",TRUE)
|
|
SET_LABEL_AS_TRIGGERED("DH1_CYAF",TRUE)
|
|
SET_LABEL_AS_TRIGGERED("DH1_CYAE",TRUE)
|
|
SET_LABEL_AS_TRIGGERED("DH1_CYAD",TRUE)
|
|
SET_LABEL_AS_TRIGGERED("DH1_CYAC",TRUE)
|
|
SET_LABEL_AS_TRIGGERED("DH1_CYAB",TRUE)
|
|
SET_LABEL_AS_TRIGGERED("DH1_CYAA",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//PED SMOKING - {dock4 sees Trevor}
|
|
IF DOES_ENTITY_EXIST(pedDockWorker[7])
|
|
IF NOT IS_PED_INJURED(pedDockWorker[7])
|
|
IF MANAGE_MY_TIMER(iAmbientDialogueTimer, GET_RANDOM_INT_IN_RANGE(8000,10000))
|
|
IF GET_DISTANCE_BETWEEN_COORDS(GET_ENTITY_COORDS(PLAYER_PED_ID()),GET_ENTITY_COORDS(pedDockWorker[7])) < 10
|
|
//TASK_TURN_PED_TO_FACE_ENTITY(pedDockWorker[7],PLAYER_PED_ID())
|
|
TASK_LOOK_AT_ENTITY(pedDockWorker[7],PLAYER_PED_ID(),5000)
|
|
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(pedDockWorker[7],"DH1_CZAA","DS1DOCKW4",SPEECH_PARAMS_FORCE)
|
|
iAmbientDialogueTimer = GET_GAME_TIMER()
|
|
PRINTSTRING("DH1_CZAA")PRINTNL()
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(s_sp_floyd_grabs_package[0].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_floyd_grabs_package[1].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_floyd_grabs_package[2].ped)
|
|
IF NOT IS_PED_INJURED(s_sp_floyd_grabs_package[0].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_floyd_grabs_package[1].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_floyd_grabs_package[2].ped)
|
|
IF GET_DISTANCE_BETWEEN_COORDS(GET_ENTITY_COORDS(PLAYER_PED_ID()),GET_ENTITY_COORDS(s_sp_floyd_grabs_package[0].ped)) < 10
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DH1_COAA")
|
|
IF NOT IS_AMBIENT_SPEECH_PLAYING(s_sp_floyd_grabs_package[0].ped)
|
|
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(s_sp_floyd_grabs_package[0].ped,"DH1_COAA","DS1DOCKWORKER1",SPEECH_PARAMS_FORCE)
|
|
SET_LABEL_AS_TRIGGERED("DH1_COAA",TRUE)
|
|
PRINTSTRING("DH1_COAA")PRINTNL()
|
|
ENDIF
|
|
ELSE
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DH1_COAB")
|
|
IF NOT IS_AMBIENT_SPEECH_PLAYING(s_sp_floyd_grabs_package[1].ped)
|
|
AND NOT IS_AMBIENT_SPEECH_PLAYING(s_sp_floyd_grabs_package[0].ped)
|
|
IF NOT IS_PED_INJURED(s_sp_floyd_grabs_package[1].ped)
|
|
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(s_sp_floyd_grabs_package[1].ped,"DH1_COAB","DS1DOCKW2",SPEECH_PARAMS_FORCE)
|
|
SET_LABEL_AS_TRIGGERED("DH1_COAB",TRUE)
|
|
PRINTSTRING("DH1_COAB")PRINTNL()
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DH1_COAC")
|
|
IF NOT IS_AMBIENT_SPEECH_PLAYING(s_sp_floyd_grabs_package[0].ped)
|
|
AND NOT IS_AMBIENT_SPEECH_PLAYING(s_sp_floyd_grabs_package[1].ped)
|
|
IF NOT IS_PED_INJURED(s_sp_floyd_grabs_package[0].ped)
|
|
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(s_sp_floyd_grabs_package[0].ped,"DH1_COAC","DS1DOCKWORKER1",SPEECH_PARAMS_FORCE)
|
|
SET_LABEL_AS_TRIGGERED("DH1_COAC",TRUE)
|
|
PRINTSTRING("DH1_COAC")PRINTNL()
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DH1_COAD")
|
|
IF NOT IS_AMBIENT_SPEECH_PLAYING(s_sp_floyd_grabs_package[1].ped)
|
|
AND NOT IS_AMBIENT_SPEECH_PLAYING(s_sp_floyd_grabs_package[0].ped)
|
|
IF NOT IS_PED_INJURED(s_sp_floyd_grabs_package[1].ped)
|
|
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(s_sp_floyd_grabs_package[1].ped,"DH1_COAD","DS1DOCKW2",SPEECH_PARAMS_FORCE)
|
|
ipedDockWorker13Timer = GET_GAME_TIMER()
|
|
SET_LABEL_AS_TRIGGERED("DH1_COAD",TRUE)
|
|
PRINTSTRING("DH1_COAD")PRINTNL()
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DH1_COAE")
|
|
IF NOT IS_AMBIENT_SPEECH_PLAYING(s_sp_floyd_grabs_package[0].ped)
|
|
AND NOT IS_AMBIENT_SPEECH_PLAYING(s_sp_floyd_grabs_package[1].ped)
|
|
IF NOT IS_PED_INJURED(s_sp_floyd_grabs_package[0].ped)
|
|
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(s_sp_floyd_grabs_package[0].ped,"DH1_COAE","DS1DOCKWORKER1",SPEECH_PARAMS_FORCE)
|
|
ipedDockWorker13Timer = GET_GAME_TIMER()
|
|
SET_LABEL_AS_TRIGGERED("DH1_COAE",TRUE)
|
|
PRINTSTRING("DH1_COAE")PRINTNL()
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DH1_COAF")
|
|
IF NOT IS_AMBIENT_SPEECH_PLAYING(s_sp_floyd_grabs_package[1].ped)
|
|
AND NOT IS_AMBIENT_SPEECH_PLAYING(s_sp_floyd_grabs_package[0].ped)
|
|
IF NOT IS_PED_INJURED(s_sp_floyd_grabs_package[1].ped)
|
|
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(s_sp_floyd_grabs_package[1].ped,"DH1_COAF","DS1DOCKW2",SPEECH_PARAMS_FORCE)
|
|
ipedDockWorker13Timer = GET_GAME_TIMER()
|
|
SET_LABEL_AS_TRIGGERED("DH1_COAF",TRUE)
|
|
PRINTSTRING("DH1_COAF")PRINTNL()
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF MANAGE_MY_TIMER(ipedDockWorker13Timer, 25000)
|
|
SET_LABEL_AS_TRIGGERED("DH1_COAA",FALSE)
|
|
SET_LABEL_AS_TRIGGERED("DH1_COAB",FALSE)
|
|
SET_LABEL_AS_TRIGGERED("DH1_COAC",FALSE)
|
|
SET_LABEL_AS_TRIGGERED("DH1_COAD",FALSE)
|
|
SET_LABEL_AS_TRIGGERED("DH1_COAE",FALSE)
|
|
SET_LABEL_AS_TRIGGERED("DH1_COAF",FALSE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
//PED IN LOADING AREA - {dock 3 sees T and F}
|
|
IF DOES_ENTITY_EXIST(pedDockWorker[13])
|
|
IF NOT IS_PED_INJURED(pedDockWorker[13])
|
|
IF eMissionStage = MISSION_STAGE_5
|
|
IF bCarryingContainer = TRUE
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
IF GET_DISTANCE_BETWEEN_COORDS(GET_ENTITY_COORDS(vehHandler),GET_ENTITY_COORDS(pedDockWorker[13])) < 15
|
|
IF GET_DISTANCE_BETWEEN_COORDS(GET_ENTITY_COORDS(PLAYER_PED_ID()),GET_ENTITY_COORDS(pedDockWorker[13])) < 8
|
|
IF MANAGE_MY_TIMER(iAmbientDialogueTimer, GET_RANDOM_INT_IN_RANGE(8000,12000))
|
|
IF NOT IS_PED_INJURED(pedDockWorker[13])
|
|
TASK_TURN_PED_TO_FACE_ENTITY(pedDockWorker[13],PLAYER_PED_ID())
|
|
TASK_LOOK_AT_ENTITY(pedDockWorker[13],PLAYER_PED_ID(),5000)
|
|
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(pedDockWorker[13],"DH1_AYAA","SUPERVISOR2",SPEECH_PARAMS_FORCE)
|
|
iAmbientDialogueTimer = GET_GAME_TIMER()
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
IF GET_DISTANCE_BETWEEN_COORDS(GET_ENTITY_COORDS(vehHandler),GET_ENTITY_COORDS(pedDockWorker[13])) < 15
|
|
IF GET_DISTANCE_BETWEEN_COORDS(GET_ENTITY_COORDS(PLAYER_PED_ID()),GET_ENTITY_COORDS(pedDockWorker[13])) < 12
|
|
IF MANAGE_MY_TIMER(iAmbientDialogueTimer, GET_RANDOM_INT_IN_RANGE(8000,12000))
|
|
IF NOT IS_PED_INJURED(pedDockWorker[13])
|
|
TASK_TURN_PED_TO_FACE_ENTITY(pedDockWorker[13],PLAYER_PED_ID())
|
|
TASK_LOOK_AT_ENTITY(pedDockWorker[13],PLAYER_PED_ID(),5000)
|
|
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(pedDockWorker[13],"DH1_AZAA","SUPERVISOR2",SPEECH_PARAMS_FORCE)
|
|
iAmbientDialogueTimer = GET_GAME_TIMER()
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
//NO LONGER ON PHONE
|
|
// IF DOES_ENTITY_EXIST(pedDockWorker[13])
|
|
// IF NOT IS_PED_INJURED(pedDockWorker[13])
|
|
// IF GET_DISTANCE_BETWEEN_COORDS(GET_ENTITY_COORDS(PLAYER_PED_ID()),GET_ENTITY_COORDS(pedDockWorker[13])) < 15
|
|
// IF NOT HAS_LABEL_BEEN_TRIGGERED("DH1_CVAA")
|
|
// IF NOT IS_AMBIENT_SPEECH_PLAYING(pedDockWorker[13])
|
|
// PLAY_PED_AMBIENT_SPEECH_WITH_VOICE_NATIVE(pedDockWorker[13],"DH1_CVAA","DS1DOCKW3","SPEECH_PARAMS_FORCE")
|
|
// SET_LABEL_AS_TRIGGERED("DH1_CVAA",TRUE)
|
|
// ENDIF
|
|
// ELSE
|
|
// IF NOT HAS_LABEL_BEEN_TRIGGERED("DH1_CVAB")
|
|
// IF NOT IS_AMBIENT_SPEECH_PLAYING(pedDockWorker[13])
|
|
// PLAY_PED_AMBIENT_SPEECH_WITH_VOICE_NATIVE(pedDockWorker[13],"DH1_CVAB","DS1DOCKW3","SPEECH_PARAMS_FORCE")
|
|
// SET_LABEL_AS_TRIGGERED("DH1_CVAB",TRUE)
|
|
// ENDIF
|
|
// ELSE
|
|
// IF NOT HAS_LABEL_BEEN_TRIGGERED("DH1_CVAC")
|
|
// IF NOT IS_AMBIENT_SPEECH_PLAYING(pedDockWorker[13])
|
|
// PLAY_PED_AMBIENT_SPEECH_WITH_VOICE_NATIVE(pedDockWorker[13],"DH1_CVAC","DS1DOCKW3","SPEECH_PARAMS_FORCE")
|
|
// SET_LABEL_AS_TRIGGERED("DH1_CVAC",TRUE)
|
|
// ENDIF
|
|
// ELSE
|
|
// IF NOT HAS_LABEL_BEEN_TRIGGERED("DH1_CVAD")
|
|
// IF NOT IS_AMBIENT_SPEECH_PLAYING(pedDockWorker[13])
|
|
// PLAY_PED_AMBIENT_SPEECH_WITH_VOICE_NATIVE(pedDockWorker[13],"DH1_CVAD","DS1DOCKW3","SPEECH_PARAMS_FORCE")
|
|
// ipedDockWorker13Timer = GET_GAME_TIMER()
|
|
// SET_LABEL_AS_TRIGGERED("DH1_CVAD",TRUE)
|
|
// ENDIF
|
|
// ELSE
|
|
// IF MANAGE_MY_TIMER(ipedDockWorker13Timer, 15000)
|
|
// SET_LABEL_AS_TRIGGERED("DH1_CVAA",FALSE)
|
|
// SET_LABEL_AS_TRIGGERED("DH1_CVAB",FALSE)
|
|
// SET_LABEL_AS_TRIGGERED("DH1_CVAC",FALSE)
|
|
// SET_LABEL_AS_TRIGGERED("DH1_CVAD",FALSE)
|
|
// ENDIF
|
|
// ENDIF
|
|
// ENDIF
|
|
// ENDIF
|
|
// ENDIF
|
|
// ENDIF
|
|
// ENDIF
|
|
// ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
|
|
ENDPROC
|
|
|
|
PROC IS_PED_IN_DOCKS_AREA()
|
|
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<85.606041,-2512.530273,4.390195>>, <<-78.482826,-2401.053223,18.251068>>, 76.000000)
|
|
OR IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<15.037971,-2537.353271,4.401426>>, <<-230.935333,-2374.307129,21.569214>>, 76.000000)
|
|
OR IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<65.696030,-2539.073730,4.405972>>, <<12.275644,-2502.675293,18.257154>>, 22.750000)
|
|
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
PROC SET_CUTSCENE_PED_COMPONENT_VARIATIONS(STRING strCutsceneName)
|
|
INT iNameHash = GET_HASH_KEY(strCutsceneName)
|
|
|
|
IF CAN_REQUEST_ASSETS_FOR_CUTSCENE_ENTITY()
|
|
IF iNameHash = HASH("LSDH_INT")
|
|
SET_CUTSCENE_PED_COMPONENT_VARIATION_FROM_PED("Trevor", PLAYER_PED_ID())
|
|
|
|
IF NOT IS_PED_INJURED(g_sTriggerSceneAssets.ped[0])
|
|
SET_CUTSCENE_PED_COMPONENT_VARIATION_FROM_PED("Floyd", g_sTriggerSceneAssets.ped[0])
|
|
PRINTSTRING("SETTING g_sTriggerSceneAssets.ped[0] variations")PRINTNL()
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(g_sTriggerSceneAssets.ped[1])
|
|
SET_CUTSCENE_PED_COMPONENT_VARIATION_FROM_PED("Wade", g_sTriggerSceneAssets.ped[1])
|
|
PRINTSTRING("SETTING g_sTriggerSceneAssets.ped[1] variations")PRINTNL()
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(pedFloyd)
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
SET_CUTSCENE_PED_COMPONENT_VARIATION_FROM_PED("Floyd", pedFloyd)
|
|
PRINTSTRING("SETTING pedFloyd variations")PRINTNL()
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(pedWade)
|
|
IF NOT IS_PED_INJURED(pedWade)
|
|
SET_CUTSCENE_PED_COMPONENT_VARIATION_FROM_PED("Wade", pedWade)
|
|
PRINTSTRING("SETTING pedWade variations")PRINTNL()
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ENDIF
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
|
|
INT iTrevorComponentSwitch
|
|
PED_INDEX pedTrevor
|
|
ENTITY_INDEX entity_trevor
|
|
INT iLegText
|
|
INT iLegDraw
|
|
|
|
|
|
PROC MANAGE_TREVOR_COMPONENT_SWITCH()
|
|
|
|
PRINTSTRING("iTrevorComponentSwitch: ")PRINTINT(iTrevorComponentSwitch)PRINTNL()
|
|
|
|
SWITCH iTrevorComponentSwitch
|
|
|
|
CASE 0
|
|
IF IS_CUTSCENE_PLAYING()
|
|
IF NOT DOES_ENTITY_EXIST(pedTrevor)
|
|
entity_trevor = GET_ENTITY_INDEX_OF_CUTSCENE_ENTITY("Trevor")
|
|
IF DOES_ENTITY_EXIST(entity_trevor)
|
|
pedTrevor = GET_PED_INDEX_FROM_ENTITY_INDEX(entity_trevor)
|
|
ENDIF
|
|
ELSE
|
|
iTrevorComponentSwitch ++
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 1
|
|
iLegDraw = GET_PED_DRAWABLE_VARIATION(pedTrevor, PED_COMP_LEG)
|
|
iLegText = GET_PED_TEXTURE_VARIATION(pedTrevor, PED_COMP_LEG)
|
|
PRINTSTRING("Saving -iLegDraw:")PRINTINT(iLegDraw)PRINTNL()
|
|
PRINTSTRING("Saving -iLegText:")PRINTINT(iLegText)PRINTNL()
|
|
SET_PED_PRELOAD_VARIATION_DATA(pedTrevor,PED_COMP_LEG, 25, 0)
|
|
//SET_PED_PRELOAD_VARIATION_DATA(pedTrevor,PED_COMP_LEG, iLegDraw, iLegText)
|
|
iTrevorComponentSwitch ++
|
|
BREAK
|
|
|
|
CASE 2
|
|
IF GET_CUTSCENE_TIME() > 54435
|
|
IF HAS_PED_PRELOAD_VARIATION_DATA_FINISHED(pedTrevor)
|
|
SET_PED_COMPONENT_VARIATION(pedTrevor, PED_COMP_LEG, 25, 0)
|
|
SET_PED_PRELOAD_VARIATION_DATA(pedTrevor,PED_COMP_LEG, iLegDraw, iLegText)
|
|
iTrevorComponentSwitch ++
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 3
|
|
IF GET_CUTSCENE_TIME() > 76453
|
|
IF HAS_PED_PRELOAD_VARIATION_DATA_FINISHED(pedTrevor)
|
|
PRINTSTRING("Restoring -iLegDraw:")PRINTINT(iLegDraw)PRINTNL()
|
|
PRINTSTRING("Restoring -iLegText:")PRINTINT(iLegText)PRINTNL()
|
|
SET_PED_COMPONENT_VARIATION(pedTrevor, PED_COMP_LEG, iLegDraw, iLegText)
|
|
iTrevorComponentSwitch ++
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
ENDPROC
|
|
|
|
|
|
/// PURPOSE:
|
|
/// Play the into mocap
|
|
PROC OPENING_CUTSCENE()
|
|
|
|
bcutsceneplaying = TRUE
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
IF IS_CUTSCENE_ACTIVE()
|
|
IF IS_KEYBOARD_KEY_JUST_PRESSED(KEY_J)
|
|
STOP_CUTSCENE()
|
|
REMOVE_CUTSCENE()
|
|
WHILE IS_CUTSCENE_ACTIVE()
|
|
WAIT(0)
|
|
ENDWHILE
|
|
ENDIF
|
|
ENDIF
|
|
#ENDIF
|
|
|
|
#IF NOT IS_JAPANESE_BUILD
|
|
MANAGE_TREVOR_COMPONENT_SWITCH()
|
|
#ENDIF
|
|
|
|
IF GET_CURRENT_PLAYER_PED_ENUM() != CHAR_TREVOR
|
|
SET_CURRENT_SELECTOR_PED(SELECTOR_PED_TREVOR)
|
|
ENDIF
|
|
|
|
IF e_section_stage = SECTION_STAGE_SETUP
|
|
IF b_is_jumping_directly_to_stage
|
|
CONTROL_FADE_IN(500)
|
|
b_is_jumping_directly_to_stage = FALSE
|
|
ELSE
|
|
IF i_current_event = 0
|
|
|
|
PRINTSTRING("PLAYING OPENING CUTSCENE - 1")PRINTNL()
|
|
//SET_REPLAY_MID_MISSION_STAGE_WITH_NAME(0,"Opening Mocap")
|
|
bcutsceneplaying = TRUE
|
|
|
|
IF NOT IS_PED_INJURED(g_sTriggerSceneAssets.ped[0])
|
|
SET_ENTITY_AS_MISSION_ENTITY(g_sTriggerSceneAssets.ped[0],TRUE,TRUE)
|
|
pedFloyd = g_sTriggerSceneAssets.ped[0]
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(g_sTriggerSceneAssets.ped[1])
|
|
SET_ENTITY_AS_MISSION_ENTITY(g_sTriggerSceneAssets.ped[1],TRUE,TRUE)
|
|
pedWade = g_sTriggerSceneAssets.ped[1]
|
|
ENDIF
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(veh_pre_mission_car)
|
|
|
|
ENDIF
|
|
|
|
IF IS_REPEAT_PLAY_ACTIVE()
|
|
WHILE NOT SETUP_MISSION_REQUIREMENT_WITH_LOCATION(REQ_FLOYD, vfloydStart, ffloydStart )
|
|
OR NOT SETUP_MISSION_REQUIREMENT_WITH_LOCATION(REQ_WADE, vWadeStart, fWadeStart )
|
|
WAIT(0)
|
|
ENDWHILE
|
|
ENDIF
|
|
|
|
REQUEST_MODEL(GET_PLAYER_VEH_MODEL(CHAR_TREVOR, VEHICLE_TYPE_CAR))
|
|
PRINTSTRING("REQUEST_CUTSCENE(LSDH_INT)")PRINTNL()
|
|
//REMOVE_CUTSCENE()
|
|
REQUEST_CUTSCENE("LSDH_INT")
|
|
|
|
SET_PLAYER_HAS_CHANGE_CLOTHES_ON_MISSION(CHAR_TREVOR)
|
|
|
|
bClearCutscenArea = FALSE
|
|
i_current_event++
|
|
ELIF i_current_event = 1
|
|
//Bug 1839805 Need to check for CAN_REQUEST_ASSETS_FOR_CUTSCENE_ENTITY()returning true for repeat play.
|
|
IF NOT IS_REPEAT_PLAY_ACTIVE()
|
|
OR CAN_REQUEST_ASSETS_FOR_CUTSCENE_ENTITY()
|
|
PRINTSTRING("CAN_REQUEST_ASSETS_FOR_CUTSCENE_ENTITY() - TRUE")PRINTNL()
|
|
|
|
//Components
|
|
IF IS_REPEAT_PLAY_ACTIVE()
|
|
SET_PED_DEFAULT_COMPONENT_VARIATION(PLAYER_PED_ID())
|
|
ELSE
|
|
SET_CUTSCENE_PED_COMPONENT_VARIATION_FROM_PED("Trevor", PLAYER_PED_ID())
|
|
ENDIF
|
|
IF IS_REPEAT_PLAY_ACTIVE()
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
SET_CUTSCENE_PED_COMPONENT_VARIATION_FROM_PED("Floyd", pedFloyd)
|
|
PRINTSTRING("SETTING default Floyd variations")PRINTNL()
|
|
ENDIF
|
|
ELSE
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
SET_CUTSCENE_PED_COMPONENT_VARIATION_FROM_PED("Floyd", pedFloyd)
|
|
PRINTSTRING("SETTING g_sTriggerSceneAssets.ped[0] variations")PRINTNL()
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(pedWade)
|
|
SET_CUTSCENE_PED_COMPONENT_VARIATION_FROM_PED("Wade", pedWade)
|
|
PRINTSTRING("SETTING g_sTriggerSceneAssets.ped[1] variations")PRINTNL()
|
|
ENDIF
|
|
i_current_event++
|
|
ELSE
|
|
PRINTSTRING("CAN_REQUEST_ASSETS_FOR_CUTSCENE_ENTITY() - FALSE")PRINTNL()
|
|
ENDIF
|
|
ELIF i_current_event = 2
|
|
IF HAS_CUTSCENE_LOADED()
|
|
IF IS_SCREEN_FADED_OUT()
|
|
DO_SCREEN_FADE_IN(500)
|
|
ELSE
|
|
WAIT(0)
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
|
|
REGISTER_ENTITY_FOR_CUTSCENE(PLAYER_PED_ID(), "Trevor", CU_ANIMATE_EXISTING_SCRIPT_ENTITY)
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(pedWade)
|
|
REGISTER_ENTITY_FOR_CUTSCENE(pedWade, "Wade", CU_ANIMATE_EXISTING_SCRIPT_ENTITY)
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
REGISTER_ENTITY_FOR_CUTSCENE(pedFloyd, "Floyd", CU_ANIMATE_EXISTING_SCRIPT_ENTITY)
|
|
ENDIF
|
|
|
|
// IF IS_VEHICLE_DRIVEABLE(vehMission)
|
|
// REGISTER_ENTITY_FOR_CUTSCENE(vehMission, "Trevors_Lorry", CU_ANIMATE_EXISTING_SCRIPT_ENTITY, DUMMY_MODEL_FOR_SCRIPT, CEO_IS_CASCADE_SHADOW_FOCUS_ENTITY_DURING_EXIT)
|
|
// ENDIF
|
|
|
|
//1987148 - Turn off TV subtitles during the cutscene. NOTE: it should be fine to not reset this, as by default subtitles should be off and
|
|
//the TV/cinema scripts turn them back on when needed. Resetting it to TRUE could potentially cause more issues.
|
|
ENABLE_MOVIE_SUBTITLES(FALSE)
|
|
|
|
REPLAY_START_EVENT(REPLAY_IMPORTANCE_HIGHEST)
|
|
|
|
SET_CUTSCENE_FADE_VALUES(FALSE,FALSE,FALSE,FALSE)
|
|
START_CUTSCENE()
|
|
MISSION_FLOW_RELEASE_TRIGGER_SCENE_ASSETS(SP_HEIST_DOCKS_1)
|
|
PRINTSTRING("PLAYING OPENING CUTSCENE - 2")PRINTNL()
|
|
SET_SCRIPTS_SAFE_FOR_CUTSCENE(TRUE)
|
|
iTrevorComponentSwitch = 0
|
|
b_skipped_mocap = FALSE
|
|
e_section_stage = SECTION_STAGE_RUNNING
|
|
ELSE
|
|
PRINTSTRING("CUTSCENE LOADING")PRINTNL()
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF e_section_stage = SECTION_STAGE_RUNNING
|
|
IF NOT b_skipped_mocap
|
|
IF IS_CUTSCENE_SKIP_BUTTON_PRESSED()
|
|
//b_skipped_mocap = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_CUTSCENE_PLAYING()
|
|
IF bClearCutscenArea = FALSE
|
|
IF IS_REPEAT_PLAY_ACTIVE()
|
|
CONTROL_FADE_IN(500)
|
|
ENDIF
|
|
//Move the last vehicle somewhere if it's in the way.
|
|
veh_pre_mission_car = GET_PLAYERS_LAST_VEHICLE()
|
|
|
|
DISABLE_VEHICLE_GEN_ON_MISSION(TRUE)
|
|
DELETE_VEHICLE_GEN_VEHICLES_IN_AREA(<<1187,-1398,4.3>>, 10)
|
|
DELETE_VEHICLE_GEN_VEHICLE(VEHGEN_TREVOR_SAVEHOUSE_CITY)
|
|
RESOLVE_VEHICLES_INSIDE_ANGLED_AREA_WITH_SIZE_LIMIT(<<-1167.186768,-1506.043579,2.992951>>, <<-1146.530762,-1533.760376,6.597246>>, 9.000000,<<-1187.1825, -1491.1740, 3.3797>>, 304.3311,<<5,5,3>>)
|
|
//RESOLVE_VEHICLES_AT_MISSION_TRIGGER(<<-1161.9291, -1525.1603, 3.2477>>, 35.1845,FALSE)
|
|
//1396587
|
|
//RESOLVE_VEHICLES_INSIDE_ANGLED_AREA(<<-1167.186768,-1506.043579,2.992951>>, <<-1146.530762,-1533.760376,6.597246>>, 9.000000,<<-1187.1825, -1491.1740, 3.3797>>, 304.3311 )
|
|
|
|
CLEAR_AREA(<< -1154.6117, -1520.0699, 3.3456 >>, 200.0, TRUE)
|
|
DELETE_ALL_SCRIPT_CREATED_PLAYER_VEHICLES(CHAR_TREVOR)
|
|
STOP_GAMEPLAY_HINT(TRUE)
|
|
SET_GAMEPLAY_HINT_CAMERA_BLEND_TO_FOLLOW_PED_MEDIUM_VIEW_MODE(FALSE)
|
|
bClearCutscenArea = TRUE
|
|
ENDIF
|
|
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("TOD SWITCH")
|
|
IF GET_CUTSCENE_TIME() >= 111300
|
|
SET_CLOCK_TIME(6,00,00)
|
|
MANAGE_PLAYER_OUTFIT()
|
|
SET_LABEL_AS_TRIGGERED("TOD SWITCH",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF bClearCutscenArea = TRUE
|
|
PRINTSTRING("RUNNING OPENING CUTSCENE - 3")PRINTNL()
|
|
SETUP_MISSION_REQUIREMENT_WITH_LOCATION(REQ_TREVORS_TRUCK, << -1155.02, -1522.81, 3.3397 >> ,38.40 )
|
|
|
|
IF NOT DOES_ENTITY_EXIST(pedWade)
|
|
ENTITY_INDEX entity_wade = GET_ENTITY_INDEX_OF_REGISTERED_ENTITY("Wade")
|
|
IF DOES_ENTITY_EXIST(entity_wade)
|
|
pedWade = GET_PED_INDEX_FROM_ENTITY_INDEX(entity_wade)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT DOES_ENTITY_EXIST(pedFloyd)
|
|
ENTITY_INDEX entity_floyd = GET_ENTITY_INDEX_OF_REGISTERED_ENTITY("Floyd_Wades_Cousin")
|
|
IF DOES_ENTITY_EXIST(entity_floyd)
|
|
pedFloyd = GET_PED_INDEX_FROM_ENTITY_INDEX(entity_floyd)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("LSDH_INT CAMERA EXIT")
|
|
// IF CAN_SET_EXIT_STATE_FOR_CAMERA()
|
|
// PRINTSTRING("CAN_SET_EXIT_STATE_FOR_CAMERA")PRINTNL()
|
|
// SET_LABEL_AS_TRIGGERED("LSDH_INT - CAMERA EXIT",TRUE)
|
|
// ENDIF
|
|
ENDIF
|
|
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("LSDH_INT TREVOR EXIT")
|
|
IF CAN_SET_EXIT_STATE_FOR_REGISTERED_ENTITY("Trevor")
|
|
IF IS_SCREEN_FADED_OUT()
|
|
MANAGE_PLAYER_OUTFIT()
|
|
ENDIF
|
|
SET_PED_CONFIG_FLAG(PLAYER_PED_ID(),PCF_ForceDirectEntry,TRUE)
|
|
IF IS_VEHICLE_DRIVEABLE(vehMission)
|
|
TASK_ENTER_VEHICLE(PLAYER_PED_ID(),vehMission,DEFAULT_TIME_NEVER_WARP,VS_DRIVER,PEDMOVEBLENDRATIO_WALK,ECF_BLOCK_SEAT_SHUFFLING)
|
|
ENDIF
|
|
//FORCE_PED_MOTION_STATE(PLAYER_PED_ID(), MS_ON_FOOT_WALK, FALSE, FAUS_CUTSCENE_EXIT)
|
|
//SIMULATE_PLAYER_INPUT_GAIT(PLAYER_ID(), PEDMOVE_WALK, 1000, 115.3521, FALSE)
|
|
PRINTSTRING("CAN_SET_EXIT_STATE_FOR_REGISTERED_ENTITY(Trevor)")PRINTNL()
|
|
SET_LABEL_AS_TRIGGERED("LSDH_INT TREVOR EXIT",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF CAN_SET_EXIT_STATE_FOR_REGISTERED_ENTITY("Floyd")
|
|
IF DOES_ENTITY_EXIST(pedFloyd)
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
IF IS_SCREEN_FADED_OUT()
|
|
SET_PED_COMPONENT_VARIATION(pedFloyd, PED_COMP_HEAD, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedFloyd, PED_COMP_BERD, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedFloyd, PED_COMP_HAIR, 1, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedFloyd, PED_COMP_TORSO, 1, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedFloyd, PED_COMP_LEG, 1, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedFloyd, PED_COMP_HAND, 1, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedFloyd, PED_COMP_FEET, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedFloyd, PED_COMP_TEETH, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedFloyd, PED_COMP_SPECIAL, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedFloyd, PED_COMP_SPECIAL2, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedFloyd, PED_COMP_DECL, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedFloyd, PED_COMP_JBIB, 0, 0)
|
|
ENDIF
|
|
|
|
FORCE_PED_MOTION_STATE(pedFloyd, MS_ON_FOOT_WALK, TRUE, FAUS_CUTSCENE_EXIT)
|
|
PRINTSTRING("CAN_SET_EXIT_STATE_FOR_REGISTERED_ENTITY Floyd")PRINTNL()
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF CAN_SET_EXIT_STATE_FOR_REGISTERED_ENTITY("Wade")
|
|
IF DOES_ENTITY_EXIST(pedWade)
|
|
IF NOT IS_PED_INJURED(pedWade)
|
|
IF IS_SCREEN_FADED_OUT()
|
|
SET_PED_COMPONENT_VARIATION(pedWade, PED_COMP_HEAD, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedWade, PED_COMP_BERD, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedWade, PED_COMP_HAIR, 1, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedWade, PED_COMP_TORSO, 1, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedWade, PED_COMP_LEG, 1, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedWade, PED_COMP_HAND, 1, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedWade, PED_COMP_FEET, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedWade, PED_COMP_TEETH, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedWade, PED_COMP_SPECIAL, 1, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedWade, PED_COMP_SPECIAL2, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedWade, PED_COMP_DECL, 1, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedWade, PED_COMP_JBIB, 0, 0)
|
|
ENDIF
|
|
FORCE_PED_MOTION_STATE(pedWade, MS_ON_FOOT_WALK, TRUE, FAUS_CUTSCENE_EXIT)
|
|
PRINTSTRING("CAN_SET_EXIT_STATE_FOR_REGISTERED_ENTITY Wade")PRINTNL()
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF HAS_CUTSCENE_FINISHED()
|
|
AND bClearCutscenArea = TRUE
|
|
e_section_stage = SECTION_STAGE_CLEANUP
|
|
ENDIF
|
|
ENDIF
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
IF IS_CUTSCENE_ACTIVE()
|
|
IF IS_KEYBOARD_KEY_JUST_PRESSED(KEY_J)
|
|
STOP_CUTSCENE()
|
|
REMOVE_CUTSCENE()
|
|
WHILE IS_CUTSCENE_ACTIVE()
|
|
WAIT(0)
|
|
ENDWHILE
|
|
ENDIF
|
|
ENDIF
|
|
#ENDIF
|
|
|
|
ENDIF
|
|
|
|
IF e_section_stage = SECTION_STAGE_CLEANUP
|
|
|
|
|
|
IF b_skipped_mocap
|
|
REPLAY_CANCEL_EVENT()
|
|
//If the player skipped the mocap the peds need to be warped.
|
|
STOP_CUTSCENE()
|
|
//Make sure necessary assets get made.
|
|
IF NOT IS_SCREEN_FADING_OUT()
|
|
OR NOT IS_SCREEN_FADED_OUT()
|
|
CONTROL_FADE_OUT(500)
|
|
ENDIF
|
|
|
|
IF IS_SCREEN_FADING_OUT()
|
|
OR IS_SCREEN_FADED_OUT()
|
|
SET_GAMEPLAY_CAM_RELATIVE_HEADING()
|
|
SET_GAMEPLAY_CAM_RELATIVE_PITCH()
|
|
ENDIF
|
|
|
|
WHILE IS_CUTSCENE_ACTIVE()
|
|
WAIT(0)
|
|
ENDWHILE
|
|
|
|
//Make sure necessary assets get made.
|
|
WHILE NOT SETUP_MISSION_REQUIREMENT_WITH_LOCATION(REQ_FLOYD, vfloydStart, ffloydStart )
|
|
OR NOT SETUP_MISSION_REQUIREMENT_WITH_LOCATION(REQ_WADE, vWadeStart, fWadeStart )
|
|
OR NOT SETUP_MISSION_REQUIREMENT_WITH_LOCATION(REQ_TREVORS_TRUCK, << -1155.02, -1522.81, 3.3397 >> ,38.40 )
|
|
WAIT(0)
|
|
ENDWHILE
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(vehMission)
|
|
IF NOT IS_ENTITY_DEAD(PLAYER_PED_ID())
|
|
IF IS_VEHICLE_SEAT_FREE(vehMission)
|
|
SET_PED_INTO_VEHICLE(PLAYER_PED_ID(),vehMission)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT IS_ENTITY_DEAD(pedFloyd)
|
|
IF IS_VEHICLE_SEAT_FREE(vehMission,VS_FRONT_RIGHT)
|
|
SET_ENTITY_COORDS(pedFloyd,vfloydStart)
|
|
SET_ENTITY_HEADING(pedFloyd, ffloydStart)
|
|
SET_PED_INTO_VEHICLE(pedFloyd,vehMission,VS_FRONT_RIGHT)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT IS_ENTITY_DEAD(pedWade)
|
|
IF IS_VEHICLE_SEAT_FREE(vehMission,VS_BACK_LEFT)
|
|
SET_ENTITY_COORDS(pedWade, vfloydStart)
|
|
SET_PED_INTO_VEHICLE(pedWade,vehMission,VS_BACK_LEFT)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(vehMission)
|
|
//SET_VEHICLE_ON_GROUND_PROPERLY(vehMission)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT IS_ENTITY_DEAD(vehMission)
|
|
SET_VEHICLE_AUTOMATICALLY_ATTACHES(vehMission,FALSE)
|
|
SET_VEHICLE_DISABLE_TOWING(vehMission,TRUE)
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
REPLAY_STOP_EVENT()
|
|
|
|
//Setup buddy relationship groups etc.
|
|
INFORM_MISSION_STATS_SYSTEM_OF_INGAME_CUTSCENE_END()
|
|
SET_SCRIPTS_SAFE_FOR_CUTSCENE(FALSE)
|
|
SET_PLAYER_CONTROL(PLAYER_ID(),TRUE)
|
|
|
|
i_current_event = 0
|
|
PRINTSTRING("JUMPING TO STAGE 1")
|
|
eMissionStage = MISSION_STAGE_1
|
|
e_section_stage = SECTION_STAGE_SETUP
|
|
SET_PLAYER_CAN_CHANGE_CLOTHES_ON_MISSION(FALSE)
|
|
SET_VEHICLE_POPULATION_BUDGET(3)
|
|
SET_PED_POPULATION_BUDGET(3)
|
|
bcutsceneplaying = FALSE
|
|
ENDIF
|
|
|
|
IF e_section_stage = SECTION_STAGE_SKIP
|
|
STOP_CUTSCENE()
|
|
b_skipped_mocap = TRUE
|
|
e_section_stage = SECTION_STAGE_RUNNING
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
PROC MAKE_THE_SECURITY_GUARD_WHEN_NEAR_TO_THE_DOCKS()
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("CREATE DOCKS SECURITY")
|
|
IF GET_DISTANCE_BETWEEN_COORDS(GET_ENTITY_COORDS(PLAYER_PED_ID()),vDocks) < 100
|
|
SETUP_MISSION_REQUIREMENT(REQ_SECURITY)
|
|
REQUEST_ANIM_DICT("misslsdhs")
|
|
REQUEST_ANIM_DICT("misslsdhsclipboard@idle_a")
|
|
REQUEST_ANIM_DICT("misslsdhsclipboard@base")
|
|
REQUEST_MODEL(P_CS_Clipboard)
|
|
REQUEST_MODEL(PROP_PENCIL_01)
|
|
IF HAS_ANIM_DICT_LOADED("misslsdhs")
|
|
AND HAS_ANIM_DICT_LOADED("misslsdhsclipboard@idle_a")
|
|
AND HAS_ANIM_DICT_LOADED("misslsdhsclipboard@base")
|
|
AND HAS_MODEL_LOADED(P_CS_Clipboard)
|
|
AND HAS_MODEL_LOADED(PROP_PENCIL_01)
|
|
IF IS_VEHICLE_DRIVEABLE(vehMission)
|
|
IF NOT DOES_ENTITY_EXIST(objClipboard[0])
|
|
objClipboard[0] = CREATE_OBJECT(P_CS_CLIPBOARD,vDocks)
|
|
ELSE
|
|
IF NOT DOES_ENTITY_EXIST(objPencil[0])
|
|
objPencil[0] = CREATE_OBJECT(PROP_PENCIL_01,vDocks)
|
|
ELSE
|
|
IF DOES_ENTITY_EXIST(pedSecurity)
|
|
IF NOT IS_PED_INJURED(pedSecurity)
|
|
CLEAR_ALL_PED_PROPS(pedSecurity)
|
|
ATTACH_ENTITY_TO_ENTITY(objPencil[0],pedSecurity,GET_PED_BONE_INDEX(pedSecurity, BONETAG_PH_R_HAND),<<0,0,0>>,<<0,0,0>>,TRUE,TRUE)
|
|
ATTACH_ENTITY_TO_ENTITY(objClipboard[0],pedSecurity,GET_PED_BONE_INDEX(pedSecurity, BONETAG_PH_L_HAND),<<0,0,0>>,<<0,0,0>>,TRUE,TRUE,TRUE)
|
|
SET_ENTITY_NO_COLLISION_ENTITY(objClipboard[0],pedSecurity,TRUE)
|
|
TASK_PLAY_ANIM(pedSecurity,"misslsdhsclipboard@base", "base",INSTANT_BLEND_IN,INSTANT_BLEND_OUT,-1,AF_LOOPING |AF_USE_KINEMATIC_PHYSICS)
|
|
ADD_PED_FOR_DIALOGUE(sSpeech, 1, pedSecurity, "GATEGUARD")
|
|
SET_RAGDOLL_BLOCKING_FLAGS(pedSecurity,RBF_PLAYER_IMPACT)
|
|
SET_PED_CAN_EVASIVE_DIVE(pedSecurity,FALSE)
|
|
SET_LABEL_AS_TRIGGERED("CREATE DOCKS SECURITY",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
//PURPOSE: Drive to the Docks with floyd
|
|
PROC MISSION_STAGE_1_PROC()
|
|
|
|
CREATE_THE_DOCKS_STUFF()
|
|
MAKE_THE_SECURITY_GUARD_WHEN_NEAR_TO_THE_DOCKS()
|
|
|
|
SWITCH iProgress
|
|
CASE 0//Create objective specific items- print objective, add blips etc
|
|
IF SETUP_PEDS_FOR_DIALOGUE()
|
|
AND SETUP_MISSION_REQUIREMENT_WITH_LOCATION(REQ_FLOYD, vfloydStart, ffloydStart )
|
|
AND SETUP_MISSION_REQUIREMENT_WITH_LOCATION(REQ_WADE, vWadeStart, fWadeStart )
|
|
DISABLE_VEHICLE_GEN_ON_MISSION(TRUE)
|
|
bDialogue = FALSE
|
|
iMissionDialogue = 0
|
|
//SET_REPLAY_MID_MISSION_STAGE_WITH_NAME(1,"Drive to the docks")
|
|
SET_SCRIPTS_SAFE_FOR_CUTSCENE(FALSE)
|
|
bIsJumpingDirectlyToStage = FALSE
|
|
INITALISE_ARRAYS()
|
|
bWaveIn = FALSE
|
|
// SET_BIT (BitSet_CellphoneDisplay, g_BS_FORCE_CELLPHONE_CAM_AUTO_CONTINUE)
|
|
bDialogue = FALSE
|
|
bGodText = FALSE
|
|
SETTIMERA(0)
|
|
|
|
g_bDocksBackGatesIgnoreTrevorsUniform = TRUE
|
|
SET_LOCKED_UNSTREAMED_IN_DOOR_OF_TYPE(P_CUT_DOOR_02,<<-63.19, -2519.27, 7.79>>,TRUE,0,0,0)
|
|
|
|
REPLAY_RECORD_BACK_FOR_TIME(0.0, 10.0, REPLAY_IMPORTANCE_HIGHEST)
|
|
|
|
IF IS_SCREEN_FADED_OUT()
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("TOD SWITCH")
|
|
SET_CLOCK_TIME(6,00,00)
|
|
SET_LABEL_AS_TRIGGERED("TOD SWITCH",TRUE)
|
|
ENDIF
|
|
|
|
//LOAD_SCENE(<<-1156.5227, -1523.5519, 3.3044>>)
|
|
IF IS_VEHICLE_DRIVEABLE(vehMission)
|
|
// SET_ENTITY_COORDS(vehMission,<<-1155.32, -1522.79, 4.27>>)
|
|
// SET_ENTITY_HEADING(vehMission,38.40)
|
|
// SET_VEHICLE_ON_GROUND_PROPERLY(vehMission)
|
|
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
|
|
IF GET_FOLLOW_PED_CAM_VIEW_MODE() != CAM_VIEW_MODE_FIRST_PERSON
|
|
SET_ENTITY_COORDS(PLAYER_PED_ID(),<<-1156.5227, -1523.5519, 3.3044>>)
|
|
SET_ENTITY_HEADING(PLAYER_PED_ID(),306.1213)
|
|
ELSE
|
|
SET_ENTITY_COORDS(PLAYER_PED_ID(),<<-1156.8860, -1524.1942, 3.2833>>)
|
|
SET_ENTITY_HEADING(PLAYER_PED_ID(),313.4019)
|
|
SIMULATE_PLAYER_INPUT_GAIT(PLAYER_ID(), PEDMOVE_WALK, 100)
|
|
ENDIF
|
|
// IF NOT IS_PED_SITTING_IN_VEHICLE_SEAT(PLAYER_PED_ID(),vehMission,VS_DRIVER)
|
|
// SET_PED_INTO_VEHICLE(PLAYER_PED_ID(),vehMission,VS_DRIVER)
|
|
// ENDIF
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
IF NOT IS_PED_SITTING_IN_VEHICLE_SEAT(pedFloyd,vehMission,VS_FRONT_RIGHT)
|
|
SET_PED_INTO_VEHICLE(pedFloyd,vehMission,VS_FRONT_RIGHT)
|
|
ENDIF
|
|
ENDIF
|
|
IF NOT IS_PED_INJURED(pedWade)
|
|
IF NOT IS_PED_SITTING_IN_VEHICLE_SEAT(pedWade,vehMission,VS_BACK_LEFT)
|
|
SET_PED_INTO_VEHICLE(pedWade,vehMission,VS_BACK_LEFT)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
SET_GAMEPLAY_CAM_RELATIVE_HEADING()
|
|
SET_GAMEPLAY_CAM_RELATIVE_PITCH()
|
|
|
|
IF IS_THIS_TV_ON(TV_LOC_TREVOR_VENICE)
|
|
FORCE_STOP_TV(TV_LOC_TREVOR_VENICE)
|
|
ENDIF
|
|
|
|
ENDIF
|
|
iProgress = 99
|
|
ENDIF
|
|
BREAK
|
|
|
|
//CLEAR PRINTS CHECK ANIM REQUESTS AND SET UP SECURITY GUY
|
|
CASE 99
|
|
|
|
IF IS_SCREEN_FADED_OUT()
|
|
MANAGE_PLAYER_OUTFIT()
|
|
ENDIF
|
|
|
|
SET_BUILDING_STATE(BUILDINGNAME_ES_FLOYDS_APPARTMENT_RASPBERRY_JAM, BUILDINGSTATE_DESTROYED)
|
|
SET_BUILDING_STATE(BUILDINGNAME_ES_FLOYDS_APPARTMENT_RASPBERRY_JAM_CUTSCENE, BUILDINGSTATE_NORMAL)
|
|
ADD_SCENARIO_BLOCKING_AREA(<<18.380921,-2524.460205,10.000374>>,<<10.180921,-2534.460205,4.800374>>)
|
|
CLEAR_AREA(vDocks,40,TRUE)
|
|
|
|
//LOCK GATE
|
|
UNREGISTER_PED_TO_ACTIVATE_AUTOMATIC_DOOR(AUTODOOR_DOCKS_FRONT_GATE_OUT,PLAYER_PED_ID())
|
|
DOOR_SYSTEM_SET_HOLD_OPEN(g_sAutoDoorData[AUTODOOR_DOCKS_FRONT_GATE_OUT].doorID, FALSE)
|
|
DOOR_SYSTEM_SET_OPEN_RATIO(g_sAutoDoorData[AUTODOOR_DOCKS_FRONT_GATE_OUT].doorID, 0.0)
|
|
DOOR_SYSTEM_SET_DOOR_STATE(g_sAutoDoorData[AUTODOOR_DOCKS_FRONT_GATE_OUT].doorID,DOORSTATE_LOCKED)
|
|
|
|
INIT_STAGE()
|
|
DISABLE_VEHICLE_GEN_ON_MISSION(FALSE)
|
|
bGoToSpeach = FALSE
|
|
|
|
iProgress = 1
|
|
|
|
BREAK
|
|
|
|
//HAS THE PLAYER ARRIVED AT THE DOCKS
|
|
CASE 1
|
|
IF IS_SCREEN_FADED_OUT()
|
|
AND NOT IS_SCREEN_FADING_IN()
|
|
DO_SCREEN_FADE_IN(500)
|
|
ENDIF
|
|
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DH_1_DRIVE_START")
|
|
IF IS_VEHICLE_DRIVEABLE(vehMission)
|
|
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehMission)
|
|
START_AUDIO_SCENE("DH_1_DRIVE_START")
|
|
SET_LABEL_AS_TRIGGERED("DH_1_DRIVE_START",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DH_1_DRIVE_APPROACH_DOCKS")
|
|
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<352.884644,-2391.758301,8.183699>>, <<351.202393,-2238.528809,12.798820>>, 29.000000)
|
|
OR IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<369.152985,-2225.729980,9.336354>>, <<342.831940,-2223.622803,27.368328>>, 86.500000)
|
|
IF IS_AUDIO_SCENE_ACTIVE("DH_1_DRIVE_START")
|
|
STOP_AUDIO_SCENE("DH_1_DRIVE_START")
|
|
ELSE
|
|
START_AUDIO_SCENE("DH_1_DRIVE_APPROACH_DOCKS")
|
|
SET_LABEL_AS_TRIGGERED("DH_1_DRIVE_APPROACH_DOCKS",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("TURN OFF RAGDOLL")
|
|
IF NOT IS_PED_INJURED(pedWade)
|
|
IF IS_PED_SITTING_IN_VEHICLE_SEAT(pedWade,vehMission,VS_BACK_LEFT)
|
|
SET_RAGDOLL_BLOCKING_FLAGS(pedWade,RBF_NONE)
|
|
SET_PED_CAN_RAGDOLL(pedWade,TRUE)
|
|
SET_LABEL_AS_TRIGGERED("TURN OFF RAGDOLL",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_PLAYER_AT_LOCATION_WITH_BUDDIES_IN_VEHICLE(sLocatesData,vDocks,<<0.1,0.1,LOCATE_SIZE_HEIGHT>>,TRUE,pedFloyd,pedWade,NULL,vehMission,"AW_GO_DOCKS","AW_DONT_LEAVE_T","AW_DONT_LEAVE_W","","AW_PICK_UP_B","AW_YTREVTRU","AW_GETBACK_IN",FALSE,TRUE,TRUE)
|
|
|
|
REPLAY_RECORD_BACK_FOR_TIME(10.0, 10.0, REPLAY_IMPORTANCE_HIGHEST)
|
|
|
|
bGodText = FALSE
|
|
bGoToSpeach = FALSE
|
|
KILL_ANY_CONVERSATION()
|
|
iProgress++
|
|
ELSE
|
|
IF DOES_BLIP_EXIST(sLocatesData.LocationBlip)
|
|
|
|
IF HAS_LABEL_BEEN_TRIGGERED("DS1_01b")
|
|
SET_LABEL_AS_TRIGGERED("DS1_01b",FALSE)
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
SET_PED_CAN_RAGDOLL(pedFloyd,TRUE)
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(pedWade)
|
|
SET_PED_CAN_RAGDOLL(pedWade,TRUE)
|
|
ENDIF
|
|
|
|
IF IS_THIS_PRINT_BEING_DISPLAYED("AW_YTREVTRU")
|
|
CLEAR_PRINTS()
|
|
ENDIF
|
|
|
|
//DS1_00b
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData, IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF bGoToSpeach = FALSE
|
|
IF SETUP_PEDS_FOR_DIALOGUE()
|
|
IF GET_FAILS_COUNT_TOTAL_FOR_THIS_MISSION_SCRIPT() = 0
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_01", CONV_PRIORITY_MEDIUM)
|
|
bGoToSpeach = TRUE
|
|
ENDIF
|
|
ELSE
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_01", CONV_PRIORITY_MEDIUM)
|
|
bGoToSpeach = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<11.943290,-2544.413086,4.799920>>, <<23.731033,-2528.028809,8.649944>>, 22.250000)
|
|
OR IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<11.943290,-2544.413086,4.799920>>, <<23.731033,-2528.028809,8.649944>>, 22.250000)
|
|
OR IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(),<<10.628066,-2533.844971,7.540140>>, <<32.967224,-2550.335449,19.500061>>, 16.000000)
|
|
|
|
IF bWaveIn = FALSE
|
|
REQUEST_ANIM_DICT("misslsdhsclipboard@idle_a")
|
|
IF HAS_ANIM_DICT_LOADED("misslsdhsclipboard@idle_a")
|
|
IF NOT IS_PED_INJURED(pedSecurity)
|
|
OPEN_SEQUENCE_TASK(seqMain)
|
|
TASK_LOOK_AT_ENTITY(NULL,PLAYER_PED_ID(),-1)
|
|
//TASK_TURN_PED_TO_FACE_ENTITY(NULL,PLAYER_PED_ID())
|
|
TASK_PLAY_ANIM(NULL,"misslsdhs", "reaction_to_truck",NORMAL_BLEND_IN,NORMAL_BLEND_OUT,-1,AF_DEFAULT | AF_USE_KINEMATIC_PHYSICS)
|
|
TASK_PLAY_ANIM(NULL,"misslsdhs", "wave_truck",NORMAL_BLEND_IN,NORMAL_BLEND_OUT,-1,AF_DEFAULT | AF_USE_KINEMATIC_PHYSICS)
|
|
TASK_PLAY_ANIM(NULL,"misslsdhsclipboard@idle_a", "idle_a",NORMAL_BLEND_IN,NORMAL_BLEND_OUT,-1,AF_LOOPING | AF_USE_KINEMATIC_PHYSICS)
|
|
CLOSE_SEQUENCE_TASK(seqMain)
|
|
TASK_PERFORM_SEQUENCE(pedSecurity, seqMain)
|
|
bWaveIn = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BRING_VEHICLE_TO_HALT(vehMission,11.0,1)
|
|
bGodText = FALSE
|
|
REQUEST_IPL("Talklaugh_Pipe")
|
|
CLEAR_MISSION_LOCATE_STUFF(sLocatesData)
|
|
KILL_FACE_TO_FACE_CONVERSATION()
|
|
iProgress++
|
|
ENDIF
|
|
|
|
|
|
ELSE
|
|
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_01b")
|
|
IF GET_PLAYER_WANTED_LEVEL(PLAYER_ID()) > 0
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData, IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_01b", CONV_PRIORITY_MEDIUM)
|
|
SET_LABEL_AS_TRIGGERED("DS1_01b",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_00")
|
|
IF DOES_BLIP_EXIST(sLocatesData.vehicleBlip)
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData, IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_00", CONV_PRIORITY_MEDIUM)
|
|
SET_LABEL_AS_TRIGGERED("DS1_00",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//MANAGE PAUSE DIALOGUE
|
|
IF bGoToSpeach = TRUE
|
|
IF DOES_BLIP_EXIST(sLocatesData.LocationBlip)
|
|
IF IS_FACE_TO_FACE_CONVERSATION_PAUSED()
|
|
PAUSE_FACE_TO_FACE_CONVERSATION(FALSE)
|
|
CLEAR_PRINTS()
|
|
ENDIF
|
|
//Play conversation
|
|
ELSE
|
|
IF IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF NOT IS_FACE_TO_FACE_CONVERSATION_PAUSED()
|
|
PAUSE_FACE_TO_FACE_CONVERSATION(TRUE)
|
|
CLEAR_PRINTS()
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 2
|
|
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_02")
|
|
IF SETUP_PEDS_FOR_DIALOGUE()
|
|
KILL_FACE_TO_FACE_CONVERSATION()
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF CREATE_CONVERSATION(sSpeech,"D1AUD", "DS1_02", CONV_PRIORITY_HIGH)
|
|
REPLAY_RECORD_BACK_FOR_TIME(2.0, 10.0, REPLAY_IMPORTANCE_HIGHEST)
|
|
SET_LABEL_AS_TRIGGERED("DS1_02",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF IS_VEHICLE_DRIVEABLE(vehMission)
|
|
IF NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehMission)
|
|
IF IS_ENTITY_PLAYING_ANIM(PLAYER_PED_ID(),"misslsdhs", "reaction_from_truck_fds")
|
|
STOP_ANIM_TASK(PLAYER_PED_ID(),"misslsdhs", "reaction_from_truck_fds")
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// IF NOT IS_PED_INJURED(pedWade)
|
|
// OPEN_SEQUENCE_TASK(seqMain)
|
|
// TASK_PLAY_ANIM(NULL,"misslsdhs", "reaction_from_truck_rds",SLOW_BLEND_IN,SLOW_BLEND_OUT,-1,AF_DEFAULT)
|
|
// CLOSE_SEQUENCE_TASK(seqMain)
|
|
// TASK_PERFORM_SEQUENCE(pedWade, seqMain)
|
|
// ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
OPEN_SEQUENCE_TASK(seqMain)
|
|
TASK_PLAY_ANIM(NULL,"misslsdhs", "reaction_from_truck_fps",SLOW_BLEND_IN,SLOW_BLEND_OUT,-1,AF_DEFAULT)
|
|
CLOSE_SEQUENCE_TASK(seqMain)
|
|
TASK_PERFORM_SEQUENCE(pedFloyd, seqMain)
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
|
|
OPEN_SEQUENCE_TASK(seqMain)
|
|
TASK_PLAY_ANIM(NULL,"misslsdhs", "reaction_from_truck_fds",SLOW_BLEND_IN,SLOW_BLEND_OUT,-1,AF_DEFAULT|AF_SECONDARY|AF_UPPERBODY)
|
|
CLOSE_SEQUENCE_TASK(seqMain)
|
|
TASK_PERFORM_SEQUENCE(PLAYER_PED_ID(), seqMain)
|
|
ENDIF
|
|
|
|
bSetPiece[SS_dock_workers_on_pipe] = TRUE
|
|
bSetPiece[SS_guys_around_car] = TRUE
|
|
bSetPiece[SS_STATIC_GANTRY_GUYS] = TRUE
|
|
REMOVE_ANIM_DICT("misslsdhs")
|
|
REMOVE_ANIM_DICT("misslsdhsclipboard@idle_a")
|
|
REMOVE_ANIM_DICT("misslsdhsclipboard@base")
|
|
g_bDocksBackGatesIgnoreTrevorsUniform = FALSE
|
|
SET_PLAYER_CONTROL(PLAYER_ID(),TRUE)
|
|
iProgress++
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 3
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(vehMission)
|
|
IF NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehMission)
|
|
IF IS_ENTITY_PLAYING_ANIM(PLAYER_PED_ID(),"misslsdhs", "reaction_from_truck_fds")
|
|
STOP_ANIM_TASK(PLAYER_PED_ID(),"misslsdhs", "reaction_from_truck_fds")
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF PRE_STREAM_MISSION_STAGE()
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
CLEAR_ENTITY_LAST_DAMAGE_ENTITY(pedFloyd)
|
|
ENDIF
|
|
IF NOT IS_PED_INJURED(pedWade)
|
|
CLEAR_ENTITY_LAST_DAMAGE_ENTITY(pedWade)
|
|
ENDIF
|
|
RESET_MISSION_STAGE_VARIABLES()
|
|
CLEAR_PLAYER_HAS_DAMAGED_AT_LEAST_ONE_NON_ANIMAL_PED(PLAYER_ID())
|
|
ADVANCE_MISSION_STAGE()
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
ENDPROC
|
|
|
|
|
|
PROC MANAGE_GATE_SECURITY_GUY()
|
|
|
|
SWITCH iGateSecurityGuy
|
|
|
|
CASE 0
|
|
|
|
IF NOT IS_PED_INJURED(pedSecurity)
|
|
REQUEST_ANIM_DICT("misslsdhs")
|
|
REQUEST_ANIM_DICT("misslsdhsclipboard@idle_a")
|
|
iGateSecurityGuy ++
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
CASE 1
|
|
IF NOT IS_PED_INJURED(pedSecurity)
|
|
IF HAS_ANIM_DICT_LOADED("misslsdhsclipboard@idle_a")
|
|
AND HAS_ANIM_DICT_LOADED("misslsdhs")
|
|
IF GET_SCRIPT_TASK_STATUS(pedSecurity,SCRIPT_TASK_PERFORM_SEQUENCE) != PERFORMING_TASK
|
|
iSecurityTimer = GET_GAME_TIMER()
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 2
|
|
IF NOT IS_PED_INJURED(pedSecurity)
|
|
IF MANAGE_MY_TIMER(iSecurityTimer,1000)
|
|
IF IS_ENTITY_PLAYING_ANIM(pedSecurity,"misslsdhsclipboard@idle_a", "idle_a")
|
|
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<6.580805,-2543.854736,5.050115>>, <<19.957510,-2525.047852,6.009008>>, 20.000000)
|
|
REQUEST_ANIM_DICT("misslsdhs")
|
|
REQUEST_ANIM_DICT("misslsdhsclipboard@idle_a")
|
|
IF HAS_ANIM_DICT_LOADED("misslsdhs")
|
|
AND HAS_ANIM_DICT_LOADED("misslsdhsclipboard@idle_a")
|
|
IF NOT IS_PED_INJURED(pedSecurity)
|
|
OPEN_SEQUENCE_TASK(seqMain)
|
|
TASK_LOOK_AT_ENTITY(NULL,PLAYER_PED_ID(),-1)
|
|
TASK_PLAY_ANIM(NULL,"misslsdhs", "reaction_to_truck",NORMAL_BLEND_IN,SLOW_BLEND_OUT,-1,AF_DEFAULT | AF_USE_KINEMATIC_PHYSICS)
|
|
TASK_PLAY_ANIM(NULL,"misslsdhs", "wave_truck",NORMAL_BLEND_IN,SLOW_BLEND_OUT,-1,AF_DEFAULT | AF_USE_KINEMATIC_PHYSICS)
|
|
TASK_PLAY_ANIM(NULL,"misslsdhsclipboard@idle_a", "idle_a",NORMAL_BLEND_IN,SLOW_BLEND_OUT,-1,AF_LOOPING | AF_USE_KINEMATIC_PHYSICS)
|
|
CLOSE_SEQUENCE_TASK(seqMain)
|
|
TASK_PERFORM_SEQUENCE(pedSecurity, seqMain)
|
|
iGateSecurityGuy ++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
REQUEST_ANIM_DICT("misslsdhsclipboard@idle_a")
|
|
IF HAS_ANIM_DICT_LOADED("misslsdhsclipboard@idle_a")
|
|
IF NOT IS_PED_INJURED(pedSecurity)
|
|
OPEN_SEQUENCE_TASK(seqMain)
|
|
TASK_PLAY_ANIM(NULL,"misslsdhsclipboard@idle_a", "idle_a",NORMAL_BLEND_IN,SLOW_BLEND_OUT,-1,AF_LOOPING | AF_USE_KINEMATIC_PHYSICS)
|
|
CLOSE_SEQUENCE_TASK(seqMain)
|
|
TASK_PERFORM_SEQUENCE(pedSecurity, seqMain)
|
|
iGateSecurityGuy ++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
ENDPROC
|
|
|
|
INT iGetOutTimer
|
|
INT iWarningTimer
|
|
|
|
//PURPOSE: Player parks up and get's changed
|
|
PROC MISSION_STAGE_2_PROC()
|
|
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_02b")
|
|
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-39.359322,-2382.808838,4.250790>>, <<-130.746674,-2514.060303,14.204694>>, 83.000000)
|
|
OR IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-291.898834,-2400.596191,4.250148>>, <<-124.852646,-2449.263184,7.767045>>, 144.000000)
|
|
IF GET_RANDOM_BOOL()
|
|
IF CREATE_CONVERSATION(sSpeech,"D1AUD", "DS1_02b", CONV_PRIORITY_MEDIUM)
|
|
iWarningTimer = GET_GAME_TIMER()
|
|
SET_LABEL_AS_TRIGGERED("DS1_02b",TRUE)
|
|
ENDIF
|
|
ELSE
|
|
IF CREATE_CONVERSATION(sSpeech,"D1AUD", "DS1_38", CONV_PRIORITY_MEDIUM)
|
|
iWarningTimer = GET_GAME_TIMER()
|
|
SET_LABEL_AS_TRIGGERED("DS1_38",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF MANAGE_MY_TIMER(iWarningTimer,GET_RANDOM_INT_IN_RANGE(12000,22000))
|
|
SET_LABEL_AS_TRIGGERED("DS1_02b",FALSE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF iProgress > 2
|
|
IF MANAGE_MY_TIMER(iGetOutTimer,4000)
|
|
IF IS_VEHICLE_DRIVEABLE(vehMission)
|
|
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehMission)
|
|
SET_VEHICLE_IS_CONSIDERED_BY_PLAYER(vehMission, FALSE)
|
|
SET_PLAYER_CONTROL(PLAYER_ID(),TRUE)
|
|
TASK_LEAVE_VEHICLE(PLAYER_PED_ID(),vehMission)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
MANAGE_GATE_SECURITY_GUY()
|
|
CREATE_THE_DOCKS_STUFF()
|
|
|
|
IF iProgress > 4
|
|
IF DOES_ENTITY_EXIST(pedWade)
|
|
IF NOT IS_PED_INJURED(pedWade)
|
|
IF WOULD_ENTITY_BE_OCCLUDED(IG_WADE,GET_ENTITY_COORDS(pedWade))
|
|
OR NOT IS_ENTITY_ON_SCREEN(pedWade)
|
|
DELETE_PED(pedWade)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(IG_WADE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(vehMission)
|
|
IF NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehMission)
|
|
IF IS_ENTITY_PLAYING_ANIM(PLAYER_PED_ID(),"misslsdhs", "reaction_from_truck_fds")
|
|
STOP_ANIM_TASK(PLAYER_PED_ID(),"misslsdhs", "reaction_from_truck_fds")
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF iProgress > 1
|
|
DISABLE_CELLPHONE(TRUE)
|
|
SET_PED_MAX_MOVE_BLEND_RATIO(PLAYER_PED_ID(),0.5)
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DH_1_FOLLOW_FLOYD_START")
|
|
IF IS_AUDIO_SCENE_ACTIVE("DH_1_DRIVE_APPROACH_DOCKS")
|
|
STOP_AUDIO_SCENE("DH_1_DRIVE_APPROACH_DOCKS")
|
|
ELSE
|
|
START_AUDIO_SCENE("DH_1_FOLLOW_FLOYD_START")
|
|
SET_LABEL_AS_TRIGGERED("DH_1_FOLLOW_FLOYD_START",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//PRINTSTRING("s_sp_supervisor1[0].i_event")PRINTINT(s_sp_supervisor1[0].i_event)//PRINTNL()
|
|
|
|
SWITCH iProgress
|
|
|
|
CASE 0//Create objective specific items- print objective, add blips etc
|
|
IF SETUP_PEDS_FOR_DIALOGUE()
|
|
IF IS_SCREEN_FADED_OUT()
|
|
MANAGE_PLAYER_OUTFIT()
|
|
IF NOT HAVE_ALL_STREAMING_REQUESTS_COMPLETED(pedFloyd)
|
|
AND NOT HAVE_ALL_STREAMING_REQUESTS_COMPLETED(pedWade)
|
|
WAIT(0)
|
|
ENDIF
|
|
ENDIF
|
|
IF IS_SCREEN_FADED_OUT()
|
|
iGateSecurityGuy = 0
|
|
ENDIF
|
|
SET_REPLAY_MID_MISSION_STAGE_WITH_NAME(2,"Park up")
|
|
|
|
bSetPiece[SS_dock_workers_on_pipe] = TRUE
|
|
bSetPiece[SS_STATIC_GANTRY_GUYS] = TRUE
|
|
bSetPiece[SS_guys_around_car] = TRUE
|
|
bSetPiece[SS_GANTRY_GUYS] = TRUE
|
|
iMissionDialogue = 2
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_2_p1@new_structure")
|
|
REQUEST_IPL("pcranecont")
|
|
g_bDocksBackGatesIgnoreTrevorsUniform = FALSE
|
|
SET_LOCKED_UNSTREAMED_IN_DOOR_OF_TYPE(P_CUT_DOOR_02,<<-63.19, -2519.27, 7.79>>,TRUE,0,0,0)
|
|
|
|
bIsJumpingDirectlyToStage = FALSE
|
|
INIT_STAGE()
|
|
// SET_VEHICLE_POPULATION_BUDGET(2)
|
|
// SET_PED_POPULATION_BUDGET(2)
|
|
SET_ALL_RANDOM_PEDS_FLEE(PLAYER_ID(), TRUE)
|
|
IF bWaveIn = FALSE
|
|
REQUEST_ANIM_DICT("misslsdhsclipboard@idle_a")
|
|
REQUEST_ANIM_DICT("misslsdhs")
|
|
IF HAS_ANIM_DICT_LOADED("misslsdhsclipboard@idle_a")
|
|
AND HAS_ANIM_DICT_LOADED("misslsdhs")
|
|
IF NOT IS_PED_INJURED(pedSecurity)
|
|
OPEN_SEQUENCE_TASK(seqMain)
|
|
TASK_PLAY_ANIM(NULL,"misslsdhs", "wave_truck",REALLY_SLOW_BLEND_IN,SLOW_BLEND_OUT,-1,AF_DEFAULT| AF_USE_KINEMATIC_PHYSICS)
|
|
TASK_PLAY_ANIM(NULL,"misslsdhs", "reaction_to_truck",NORMAL_BLEND_IN,SLOW_BLEND_OUT,-1,AF_DEFAULT| AF_USE_KINEMATIC_PHYSICS)
|
|
TASK_PLAY_ANIM(NULL,"misslsdhsclipboard@idle_a", "idle_a",NORMAL_BLEND_IN,SLOW_BLEND_OUT,-1,AF_DEFAULT| AF_USE_KINEMATIC_PHYSICS)
|
|
CLOSE_SEQUENCE_TASK(seqMain)
|
|
TASK_PERFORM_SEQUENCE(pedSecurity, seqMain)
|
|
bWaveIn = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
iProgress++
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 1
|
|
|
|
IF IS_PLAYER_AT_LOCATION_WITH_BUDDIES_IN_VEHICLE(sLocatesData,vParkUpHere,<<0.001,0.001,LOCATE_SIZE_HEIGHT>>,TRUE,pedFloyd,pedWade,NULL,vehMission,"AW_GO_PARK","AW_DONT_LEAVE_T","AW_DONT_LEAVE_W","","AW_PICK_UP_B","AW_DOCK1","AW_GETBACK_IN",FALSE,FALSE)
|
|
bSetPiece[SS_ARRIVE_AT_DOCKS] = TRUE
|
|
bGodText = FALSE
|
|
bDialogue = FALSE
|
|
KILL_ANY_CONVERSATION()
|
|
REMOVE_BLIP(sLocatesData.LocationBlip)
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_2_p1@start_idle")
|
|
iGetOutTimer = GET_GAME_TIMER()
|
|
SET_PLAYER_CONTROL(PLAYER_ID(),FALSE,SPC_LEAVE_CAMERA_CONTROL_ON)
|
|
iProgress++
|
|
ELSE
|
|
IF DOES_BLIP_EXIST(sLocatesData.LocationBlip)
|
|
IF (IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-70.137924,-2523.794189,4.010104>>, <<-56.489647,-2533.662354,9.010103>>, 7.500000)
|
|
OR IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-60.260574,-2528.604736,4.010104>>, <<-55.287464,-2531.858643,9.010103>>, 11.500000))
|
|
AND CAN_PLAYER_START_CUTSCENE(TRUE,TRUE)
|
|
IF BRING_VEHICLE_TO_HALT_AND_DISABLE_VEH_CONTROLS(vehMission,5,-1)
|
|
bSetPiece[SS_ARRIVE_AT_DOCKS] = TRUE
|
|
bGodText = FALSE
|
|
bDialogue = FALSE
|
|
KILL_ANY_CONVERSATION()
|
|
REMOVE_BLIP(sLocatesData.LocationBlip)
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_2_p1@start_idle")
|
|
iGetOutTimer = GET_GAME_TIMER()
|
|
SET_PLAYER_CONTROL(PLAYER_ID(),FALSE,SPC_LEAVE_CAMERA_CONTROL_ON)
|
|
iProgress++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF bClearTasks = FALSE
|
|
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<1.572346,-2541.401611,4.841759>>, <<14.998902,-2521.360352,6.507655>>, 2.250000)
|
|
OR NOT IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
CLEAR_PED_TASKS(PLAYER_PED_ID())
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
CLEAR_PED_TASKS(pedFloyd)
|
|
ENDIF
|
|
IF NOT IS_PED_INJURED(pedWade)
|
|
CLEAR_PED_TASKS(pedWade)
|
|
ENDIF
|
|
bClearTasks = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 2
|
|
IF IS_VEHICLE_DRIVEABLE(vehMission)
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_2_p1@start_idle")
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_2_p1@start_idle")
|
|
IF SETUP_PEDS_FOR_DIALOGUE()
|
|
SET_LOCKED_UNSTREAMED_IN_DOOR_OF_TYPE(P_CUT_DOOR_02,<<-63.19, -2519.27, 7.79>>,FALSE,0,0,0)
|
|
IF IS_THIS_PRINT_BEING_DISPLAYED("AW_GO_PARK")
|
|
CLEAR_PRINTS()
|
|
ENDIF
|
|
KILL_FACE_TO_FACE_CONVERSATION()
|
|
|
|
IF NOT IS_PED_INJURED(pedWade)
|
|
SET_PED_CONFIG_FLAG(pedWade,PCF_DisablePedAvoidance,TRUE)
|
|
ENDIF
|
|
|
|
CLEAR_PED_TASKS(PLAYER_PED_ID())
|
|
SET_PED_CONFIG_FLAG(PLAYER_PED_ID(),PCF_AllowPlayerToInterruptVehicleEntryExit,TRUE)
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(vehMission)
|
|
SET_VEHICLE_IS_CONSIDERED_BY_PLAYER(vehMission, FALSE)
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(pedWade)
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
REMOVE_PED_FROM_GROUP(pedFloyd)
|
|
SET_PED_CAN_RAGDOLL(pedFloyd,FALSE)
|
|
OPEN_SEQUENCE_TASK(seqMain)
|
|
TASK_LEAVE_ANY_VEHICLE(NULL,1000)
|
|
TASK_LOOK_AT_ENTITY(NULL,pedWade,3000)
|
|
IF IS_VEHICLE_DRIVEABLE(vehMission)
|
|
IF NOT IS_VEHICLE_ROUGHLY_FACING_THIS_DIRECTION(vehMission,238.3604,60)
|
|
TASK_FOLLOW_NAV_MESH_TO_COORD(NULL,<<-62.05, -2524.82, 6.01>>,1.0,DEFAULT_TIME_BEFORE_WARP, 0.1, ENAV_DEFAULT | ENAV_NO_STOPPING)
|
|
ENDIF
|
|
ENDIF
|
|
TASK_FOLLOW_NAV_MESH_TO_COORD(NULL,v_ss_floyd[SS_ARRIVE_AT_DOCKS],1.0,DEFAULT_TIME_BEFORE_WARP, 0.1, ENAV_STOP_EXACTLY,f_ss_floyd[SS_ARRIVE_AT_DOCKS])
|
|
TASK_PLAY_ANIM(NULL,"missheistdockssetup1ig_2_p1@start_idle", "supervisor_exitdoor_startidle_floyd",NORMAL_BLEND_IN,NORMAL_BLEND_OUT,-1,AF_USE_KINEMATIC_PHYSICS| AF_LOOPING)
|
|
CLOSE_SEQUENCE_TASK(seqMain)
|
|
TASK_PERFORM_SEQUENCE(pedFloyd,seqMain)
|
|
CLEAR_SEQUENCE_TASK(seqMain)
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(pedWade)
|
|
REMOVE_PED_FROM_GROUP(pedWade)
|
|
SET_PED_CAN_RAGDOLL(pedWade,FALSE)
|
|
OPEN_SEQUENCE_TASK(seqMain)
|
|
TASK_LEAVE_ANY_VEHICLE(NULL)
|
|
TASK_LOOK_AT_ENTITY(NULL,pedFloyd,3000)
|
|
TASK_FOLLOW_NAV_MESH_TO_COORD(NULL,<<-58.30, -2525.55, 6.16>>,1.0,DEFAULT_TIME_BEFORE_WARP, 0.1, ENAV_DEFAULT | ENAV_NO_STOPPING )
|
|
TASK_FOLLOW_NAV_MESH_TO_COORD(NULL,v_ss_wade[SS_ARRIVE_AT_DOCKS],1.0,DEFAULT_TIME_BEFORE_WARP, 0.1, ENAV_STOP_EXACTLY,f_ss_wade[SS_ARRIVE_AT_DOCKS])
|
|
TASK_PLAY_ANIM(NULL,"missheistdockssetup1ig_2_p1@start_idle", "supervisor_exitdoor_startidle_wade",NORMAL_BLEND_IN,NORMAL_BLEND_OUT,-1,AF_USE_KINEMATIC_PHYSICS| AF_LOOPING)
|
|
CLOSE_SEQUENCE_TASK(seqMain)
|
|
TASK_PERFORM_SEQUENCE(pedWade,seqMain)
|
|
CLEAR_SEQUENCE_TASK(seqMain)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
SAFE_ADD_BLIP_PED(dest_blip,pedFloyd,TRUE)
|
|
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
TASK_LOOK_AT_ENTITY(PLAYER_PED_ID(),pedFloyd,-1)
|
|
ENDIF
|
|
|
|
iTimer = GET_GAME_TIMER()
|
|
iProgress++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 3
|
|
REPLAY_DISABLE_CAMERA_MOVEMENT_THIS_FRAME() //Fix for bug 2222054
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(vehMission)
|
|
IF NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehMission)
|
|
SET_PLAYER_CONTROL(PLAYER_ID(),TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_02a")
|
|
IF CREATE_CONVERSATION(sSpeech,"D1AUD", "DS1_02a", CONV_PRIORITY_MEDIUM)
|
|
REPLAY_RECORD_BACK_FOR_TIME(2.0, 7.0, REPLAY_IMPORTANCE_HIGHEST)
|
|
SET_LABEL_AS_TRIGGERED("DS1_02a",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(vehMission)
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
AND NOT IS_PED_INJURED(pedWade)
|
|
IF NOT IS_PED_IN_VEHICLE(pedFloyd,vehMission)
|
|
AND NOT IS_PED_IN_VEHICLE(pedWade,vehMission)
|
|
IF NOT IS_PED_INJURED(pedWade)
|
|
SET_RAGDOLL_BLOCKING_FLAGS(pedWade,RBF_PLAYER_IMPACT)
|
|
ENDIF
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
SET_RAGDOLL_BLOCKING_FLAGS(pedFloyd,RBF_PLAYER_IMPACT)
|
|
ENDIF
|
|
bGodText = FALSE
|
|
bDialogue = FALSE
|
|
SET_PED_CONFIG_FLAG(PLAYER_PED_ID(),PCF_AllowPlayerToInterruptVehicleEntryExit,FALSE)
|
|
iProgress++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
CASE 4
|
|
REPLAY_DISABLE_CAMERA_MOVEMENT_THIS_FRAME() //Fix for bug 2222054
|
|
|
|
DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_JUMP)
|
|
|
|
IF MANAGE_MY_TIMER(iTimer,4000)
|
|
PRINTSTRING("SLOWING PEDS DOWN")PRINTNL()
|
|
IF NOT IS_PED_INJURED(pedWade)
|
|
SET_PED_MAX_MOVE_BLEND_RATIO(pedWade,1.0)
|
|
ENDIF
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
SET_PED_MAX_MOVE_BLEND_RATIO(pedFloyd,1.0)
|
|
ENDIF
|
|
SET_PLAYER_CONTROL(PLAYER_ID(),TRUE)
|
|
ENDIF
|
|
|
|
IF s_sp_supervisor1[0].i_event > 3
|
|
IF IS_VEHICLE_DRIVEABLE(vehMission)
|
|
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehMission)
|
|
SET_VEHICLE_IS_CONSIDERED_BY_PLAYER(vehMission, FALSE)
|
|
SET_PLAYER_CONTROL(PLAYER_ID(),TRUE)
|
|
TASK_LEAVE_VEHICLE(PLAYER_PED_ID(),vehMission)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
SET_PLAYER_CONTROL(PLAYER_ID(),TRUE)
|
|
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
TASK_LOOK_AT_ENTITY(pedFloyd,PLAYER_PED_ID(),-1,SLF_WHILE_NOT_IN_FOV,SLF_LOOKAT_MEDIUM)
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(pedWade)
|
|
SET_PED_CONFIG_FLAG(pedWade,PCF_DisablePedAvoidance,FALSE)
|
|
ENDIF
|
|
|
|
REMOVE_ANIM_DICT("missheistdockssetup1ig_2_p1@start_idle")
|
|
SET_LOCKED_UNSTREAMED_IN_DOOR_OF_TYPE(P_CUT_DOOR_02,<<-63.19, -2519.27, 7.79>>,TRUE,0,0,0)
|
|
bSetPiece[Ss_dock_workers_talking] = TRUE
|
|
bSetPiece[SS_blackwater_with_dockworker] = TRUE
|
|
bSetPiece[SS_WELDER] = TRUE
|
|
bDialogue = FALSE
|
|
bClearText = FALSE
|
|
bGodText = FALSE
|
|
iProgress++
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
CASE 5
|
|
REPLAY_DISABLE_CAMERA_MOVEMENT_THIS_FRAME() //Fix for bug 2222054
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(vehMission)
|
|
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehMission)
|
|
SET_VEHICLE_IS_CONSIDERED_BY_PLAYER(vehMission, FALSE)
|
|
SET_PLAYER_CONTROL(PLAYER_ID(),TRUE)
|
|
TASK_LEAVE_VEHICLE(PLAYER_PED_ID(),vehMission)
|
|
ELSE
|
|
IF PRE_STREAM_MISSION_STAGE()
|
|
RESET_MISSION_STAGE_VARIABLES()
|
|
eMissionStage = MISSION_STAGE_4
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
ENDPROC
|
|
|
|
PROC MANAGE_RUBBER_BANDING(PED_INDEX ped, FLOAT fIdealDist, FLOAT fMinSpeed, FLOAT FMaxSpeed, FLOAT fCatchUp, STRING sWaypoint)
|
|
|
|
taskStatus = GET_SCRIPT_TASK_STATUS(ped, SCRIPT_TASK_FOLLOW_WAYPOINT_ROUTE)
|
|
|
|
|
|
IF NOT IS_PED_INJURED(ped)
|
|
IF taskStatus = PERFORMING_TASK
|
|
WAYPOINT_RECORDING_GET_CLOSEST_WAYPOINT(sWaypoint,GET_ENTITY_COORDS(ped),iWayTarget)
|
|
WAYPOINT_RECORDING_GET_CLOSEST_WAYPOINT(sWaypoint,GET_ENTITY_COORDS(PLAYER_PED_ID()),iWayPlayer)
|
|
|
|
WAYPOINT_RECORDING_GET_COORD(sWaypoint,iWayTarget,vDistTarget)
|
|
WAYPOINT_RECORDING_GET_COORD(sWaypoint,iWayPlayer,vDistPlayer)
|
|
|
|
fTargetDist = GET_DISTANCE_BETWEEN_COORDS(vDistTarget,GET_ENTITY_COORDS(ped))
|
|
fPlayerDist = GET_DISTANCE_BETWEEN_COORDS(vDistTarget,GET_ENTITY_COORDS(PLAYER_PED_ID()))
|
|
|
|
IF iWayPlayer > iWayTarget
|
|
OR fPlayerDist < fTargetDist
|
|
IF fThisSpeed < fCatchUp
|
|
IF IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_PED(ped)
|
|
fThisSpeed = fThisSpeed + 0.1
|
|
WAYPOINT_PLAYBACK_OVERRIDE_SPEED(ped,fThisSpeed)
|
|
ENDIF
|
|
ELSE
|
|
WAYPOINT_PLAYBACK_OVERRIDE_SPEED(ped,fThisSpeed)
|
|
ENDIF
|
|
ELSE
|
|
FLOAT fDist = GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(), ped)
|
|
IF fDist < fIdealDist
|
|
fSpeed = fMaxSpeed
|
|
ELSE
|
|
fSpeed = fMinSpeed
|
|
ENDIF
|
|
IF IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_PED(ped)
|
|
fThisSpeed = fSpeed
|
|
WAYPOINT_PLAYBACK_OVERRIDE_SPEED(ped,fSpeed)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
|
|
// remove mission text
|
|
PROC REMOVE_MISSION_TEXT(BOOL bClearSpeech = TRUE, BOOL bClearGodText = TRUE, BOOL bClearHelpText = TRUE)
|
|
IF bClearSpeech
|
|
KILL_ANY_CONVERSATION()
|
|
ENDIF
|
|
|
|
IF bClearGodText
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
OR bClearSpeech
|
|
CLEAR_PRINTS()
|
|
ENDIF
|
|
CLEAR_REMINDER_MESSAGE()
|
|
ENDIF
|
|
|
|
IF bClearHelpText
|
|
IF IS_HELP_MESSAGE_BEING_DISPLAYED()
|
|
CLEAR_HELP()
|
|
ENDIF
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
// do mission speech
|
|
FUNC BOOL DO_MISSION_SPEECH(STRING sStringSpeech, BOOL bSupercedeText = FALSE, INT iLine = 0, BOOL bFromSpecifiedLine = FALSE)
|
|
IF bSupercedeText OR NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData, IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF iLine = 0
|
|
RETURN CREATE_CONVERSATION(sSpeech,"D1AUD", sStringSpeech, CONV_PRIORITY_HIGH)
|
|
ELSE
|
|
TEXT_LABEL tLine
|
|
tLine = sStringSpeech
|
|
tLine+="_"
|
|
tLine+=iLine
|
|
IF NOT bFromSpecifiedLine
|
|
RETURN PLAY_SINGLE_LINE_FROM_CONVERSATION(sSpeech,"D1AUD", sStringSpeech, tLine, CONV_PRIORITY_HIGH)
|
|
ELSE
|
|
RETURN CREATE_CONVERSATION_FROM_SPECIFIC_LINE(sSpeech,"D1AUD", sStringSpeech, tLine, CONV_PRIORITY_HIGH)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
// restore banter
|
|
FUNC BOOL RESTORE_CONVO()
|
|
IF bSavedConvo
|
|
//IF DO_MISSION_SPEECH(tSavedBanterRoot, FALSE, 23, TRUE)
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
PRINTLN("@@@@@@@@@@@@@@@@@ RESTORE_CONVO() ROOT: ", tSavedBanterRoot, " LINE: ", tResumeBanterLabel, " @@@@@@@@@@@@@@@@")
|
|
CREATE_CONVERSATION_FROM_SPECIFIC_LINE(sSpeech,"D1AUD", tSavedBanterRoot, tResumeBanterLabel, CONV_PRIORITY_HIGH)
|
|
RETURN TRUE
|
|
ENDIF
|
|
ELSE
|
|
RETURN TRUE
|
|
ENDIF
|
|
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
PROC STORE_CONVO()
|
|
IF IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
TEXT_LABEL_23 tBanter = GET_CURRENTLY_PLAYING_STANDARD_CONVERSATION_ROOT()
|
|
bSavedConvo = TRUE
|
|
tSavedBanterRoot = tBanter
|
|
tResumeBanterLabel = GET_STANDARD_CONVERSATION_LABEL_FOR_FUTURE_RESUMPTION()
|
|
KILL_FACE_TO_FACE_CONVERSATION()
|
|
PRINTLN("@@@@@@@@@@@@@@@@@ STORE_CONVO() ROOT: ", tSavedBanterRoot, " LINE: ", tResumeBanterLabel, " @@@@@@@@@@@@@@@@")
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
|
|
// lamar follow pavement
|
|
PROC DO_FLOYD_WALK_AND_TALK()
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
TASK_FOLLOW_WAYPOINT_RECORDING(pedFloyd, "floyddocks1", 0, EWAYPOINT_DO_NOT_RESPOND_TO_COLLISION_EVENTS | EWAYPOINT_START_FROM_CLOSEST_POINT)
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
PROC DO_WALK_AND_TALK_DIALOGUE()
|
|
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("FLOYD SEEN BOAT")
|
|
IF IS_ENTITY_IN_ANGLED_AREA(pedFloyd, <<-101.658623,-2472.183105,4.021717>>, <<-98.129723,-2474.698730,8.271718>>, 2.250000)
|
|
SET_LABEL_AS_TRIGGERED("FLOYD SEEN BOAT",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
SWITCH iWalkAndTalk
|
|
|
|
CASE 0
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF SETUP_PEDS_FOR_DIALOGUE()
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData, IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF CREATE_CONVERSATION(sSpeech,"D1AUD","DS1_04", CONV_PRIORITY_HIGH)
|
|
REPLAY_RECORD_BACK_FOR_TIME(2.0, 10.0, REPLAY_IMPORTANCE_HIGHEST)
|
|
iWalkAndTalk ++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 1
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF CREATE_CONVERSATION(sSpeech,"D1AUD","DS1_05a", CONV_PRIORITY_HIGH)
|
|
iWalkAndTalk ++
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 2
|
|
//PURPOSE: Wander around the docks - Land and air is fucked
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_05b")
|
|
IF CREATE_CONVERSATION(sSpeech,"D1AUD","DS1_05b", CONV_PRIORITY_HIGH)
|
|
SET_LABEL_AS_TRIGGERED("DS1_05b",TRUE)
|
|
ENDIF
|
|
ELSE
|
|
iWalkAndTalk = 4
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 3
|
|
//SKIP FOR NOW
|
|
//PURPOSE: Wander around the docks - Whoa. Gotta keep your head on the swivel round here
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF CREATE_CONVERSATION(sSpeech,"D1AUD","DS1_05c", CONV_PRIORITY_HIGH)
|
|
iWalkAndTalk ++
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 4
|
|
//PURPOSE: Wander around the docks - That's the freighter I told you about.
|
|
IF HAS_LABEL_BEEN_TRIGGERED("FLOYD SEEN BOAT")
|
|
IF REQUEST_AMBIENT_AUDIO_BANK("CREAK_V1")
|
|
IF NOT IS_AUDIO_SCENE_ACTIVE("DH_1_FOLLOW_FLOYD_SEE_FREIGHTER")
|
|
START_AUDIO_SCENE("DH_1_FOLLOW_FLOYD_SEE_FREIGHTER")
|
|
ENDIF
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF CREATE_CONVERSATION(sSpeech,"D1AUD","DS1_06", CONV_PRIORITY_HIGH)
|
|
PLAY_SOUND_FROM_COORD(-1,"CREAK_01",<<-212.5920, -2375.6167, 16.3326>>,"DOCKS_HEIST_SETUP_SOUNDS")
|
|
iWalkAndTalk ++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
//Merryweather
|
|
CASE 5
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(sceneBlackWater1Id)
|
|
OR IS_SYNCHRONIZED_SCENE_RUNNING(sceneBlackWater2Id)
|
|
OR IS_SYNCHRONIZED_SCENE_RUNNING(sceneBlackWater3Id)
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF CREATE_CONVERSATION(sSpeech,"D1AUD","DS1_04b", CONV_PRIORITY_HIGH)
|
|
IF NOT IS_PED_INJURED(s_sp_blackwater_with_dockworker[0].ped)
|
|
TASK_LOOK_AT_ENTITY(pedFloyd, s_sp_blackwater_with_dockworker[0].ped,5000,SLF_WHILE_NOT_IN_FOV,SLF_LOOKAT_VERY_HIGH)
|
|
ENDIF
|
|
iWalkAndTalk ++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
INT iRandHurryUp
|
|
CONST_FLOAT FLOYD_PAUSE_DIST 7.0
|
|
CONST_FLOAT FLOYD_UNPAUSE_DIST 3.2
|
|
|
|
PROC MANAGE_WALK_AND_TALK()
|
|
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
|
|
SET_PED_CAN_PLAY_GESTURE_ANIMS(PLAYER_PED_ID(),false)
|
|
SET_PED_CAN_PLAY_GESTURE_ANIMS(pedFloyd,false)
|
|
|
|
IF GET_ENTITY_SPEED(PLAYER_PED_ID()) < 1.2
|
|
OR IS_PED_RUNNING(PLAYER_PED_ID())
|
|
CLEAR_PED_SECONDARY_TASK(PLAYER_PED_ID())
|
|
PRINTLN("CLEAR SECONDARY PLAYER ANIMS")//PRINTNL()
|
|
ENDIF
|
|
|
|
IF GET_ENTITY_SPEED(pedFloyd) < 0.1
|
|
//OR GET_SCRIPT_TASK_STATUS(pedFloyd, SCRIPT_TASK_FOLLOW_WAYPOINT_ROUTE) = FINISHED_TASK
|
|
PRINTLN("CLEAR SECONDARY FLOYD ANIMS")//PRINTNL()
|
|
CLEAR_PED_SECONDARY_TASK(pedFloyd)
|
|
ENDIF
|
|
|
|
// force walk
|
|
IF GET_GAME_TIMER() <= iStageStartTime + 1500
|
|
//SET_PED_MIN_MOVE_BLEND_RATIO(pedFloyd,PEDMOVE_WALK)
|
|
ENDIF
|
|
|
|
IF GET_GAME_TIMER() <= iStageStartTime + 1000
|
|
//SET_PED_MIN_MOVE_BLEND_RATIO(PLAYER_PED_ID() ,PEDMOVE_WALK)
|
|
ENDIF
|
|
|
|
IF bIncreaseFloydSpeed
|
|
fFloydWalkSpeed = fFloydWalkSpeed +@ 0.014
|
|
IF fFloydWalkSpeed > 1.08
|
|
fFloydWalkSpeed = 1.08
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT bFloydWalkPaused
|
|
IF NOT IS_ENTITY_AT_ENTITY(PLAYER_PED_ID(), pedFloyd, <<FLOYD_PAUSE_DIST, FLOYD_PAUSE_DIST, 4>>)
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_8")
|
|
REQUEST_ANIM_DICT("MissHeistDocksSetup1")
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_8")
|
|
AND HAS_ANIM_DICT_LOADED("MissHeistDocksSetup1")
|
|
CLEAR_SEQUENCE_TASK(seqMain)
|
|
OPEN_SEQUENCE_TASK(seqMain)
|
|
TASK_LOOK_AT_ENTITY(NULL, PLAYER_PED_ID(), -1,SLF_WHILE_NOT_IN_FOV)
|
|
TASK_TURN_PED_TO_FACE_ENTITY(NULL, PLAYER_PED_ID(), -1)
|
|
iRandHurryUp = GET_RANDOM_INT_IN_RANGE(0,5)
|
|
IF iRandHurryUp = 0
|
|
TASK_PLAY_ANIM(NULL,"MissHeistDocksSetup1","Beckon")
|
|
ELIF iRandHurryUp = 1
|
|
TASK_PLAY_ANIM(NULL,"missheistdockssetup1ig_8","are_you_coming")
|
|
ELIF iRandHurryUp = 2
|
|
TASK_PLAY_ANIM(NULL,"missheistdockssetup1ig_8","Are_You_Gonna_Hurt")
|
|
ELIF iRandHurryUp = 3
|
|
TASK_PLAY_ANIM(NULL,"missheistdockssetup1ig_8","its_over_here_if")
|
|
ELIF iRandHurryUp = 4
|
|
TASK_PLAY_ANIM(NULL,"missheistdockssetup1ig_8","this_dont_make_me")
|
|
ENDIF
|
|
CLOSE_SEQUENCE_TASK(seqMain)
|
|
TASK_PERFORM_SEQUENCE(pedFloyd, seqMain)
|
|
|
|
CLEAR_PED_SECONDARY_TASK(pedFloyd)
|
|
CLEAR_PED_SECONDARY_TASK(PLAYER_PED_ID())
|
|
|
|
TASK_CLEAR_LOOK_AT(PLAYER_PED_ID())
|
|
bKilledOnFootConversation = FALSE
|
|
bDoneHurrySpeech = FALSE
|
|
bSetAltAnim = FALSE
|
|
bFloydWalkPaused = TRUE
|
|
ENDIF
|
|
ELSE
|
|
DO_WALK_AND_TALK_DIALOGUE()
|
|
|
|
IF IS_ENTITY_AT_ENTITY(PLAYER_PED_ID(), pedFloyd, <<FLOYD_PAUSE_DIST, FLOYD_UNPAUSE_DIST, 4>>)
|
|
bIncreaseFloydSpeed = TRUE
|
|
ENDIF
|
|
|
|
IF GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(), pedFloyd) < 1
|
|
PRINTLN("CONSTRAINING MOVESPEED")//PRINTNL()
|
|
SET_PED_MOVE_RATE_OVERRIDE(PLAYER_PED_ID(), 0.91)
|
|
ELSE
|
|
SET_PED_MOVE_RATE_OVERRIDE(PLAYER_PED_ID(), 0.94)
|
|
ENDIF
|
|
|
|
IF bSavedConvo
|
|
IF RESTORE_CONVO()
|
|
bSavedConvo = FALSE
|
|
bSetAltAnim = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF bSetAltAnim = TRUE
|
|
// conversation anims
|
|
IF IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
TEXT_LABEL_23 tCurrentLabel = GET_CURRENTLY_PLAYING_STANDARD_CONVERSATION_LABEL()
|
|
//INT iLineNumber = GET_CURRENT_SCRIPTED_CONVERSATION_LINE()
|
|
|
|
PRINTSTRING("CURRENT LABEL: ")PRINTSTRING(tCurrentLabel)PRINTNL()
|
|
|
|
IF ARE_STRINGS_EQUAL(tCurrentLabel,"DS1_05a_1")
|
|
iLineMatch = 0
|
|
ELIF ARE_STRINGS_EQUAL(tCurrentLabel, "DS1_05a_3")
|
|
iLineMatch = 1
|
|
ELIF ARE_STRINGS_EQUAL(tCurrentLabel, "DS1_05b_1")
|
|
iLineMatch = 2
|
|
ELIF ARE_STRINGS_EQUAL(tCurrentLabel, "DS1_05b_13")
|
|
iLineMatch = 3
|
|
ELIF ARE_STRINGS_EQUAL(tCurrentLabel, "DS1_05b_11")
|
|
iLineMatch = 4
|
|
ELIF ARE_STRINGS_EQUAL(tCurrentLabel, "DS1_06_1")
|
|
iLineMatch = 5
|
|
ELIF ARE_STRINGS_EQUAL(tCurrentLabel, "DS1_06_8")
|
|
iLineMatch = 6
|
|
ELIF ARE_STRINGS_EQUAL(tCurrentLabel, "DS1_06_12")
|
|
iLineMatch = 7
|
|
ELIF ARE_STRINGS_EQUAL(tCurrentLabel, "DS1_06_15")
|
|
iLineMatch = 8
|
|
ENDIF
|
|
|
|
IF iLineMatch >= 0
|
|
IF NOT bDoneConversationAnim[iLineMatch]
|
|
STRING sTrevorLine
|
|
STRING sFloydLine
|
|
STRING sAnimDictionary
|
|
SWITCH iLineMatch
|
|
CASE 0
|
|
sTrevorLine = "you_ever_get_helicopters_trevor"
|
|
sFloydLine = "you_ever_get_helicopters_floyd"
|
|
sAnimDictionary = "missheistdockssetup1ig_2_p2"
|
|
BREAK
|
|
CASE 1
|
|
sTrevorLine = "now_this_is_restricted_trevor"
|
|
sFloydLine = "now_this_is_restricted_floyd"
|
|
sAnimDictionary = "missheistdockssetup1ig_2_p2"
|
|
BREAK
|
|
CASE 2
|
|
sTrevorLine = "how_is_a_man_trevor"
|
|
sFloydLine = "how_is_a_man_floyd"
|
|
sAnimDictionary = "missheistdockssetup1ig_2_p3"
|
|
BREAK
|
|
CASE 3
|
|
sTrevorLine = "i_just_said_they_trevor"
|
|
sFloydLine = "i_just_said_they_floyd"
|
|
sAnimDictionary = "missheistdockssetup1ig_2_p3"
|
|
BREAK
|
|
CASE 4
|
|
sTrevorLine = "maybe_ill_have_to_trevor"
|
|
sFloydLine = "maybe_ill_have_to_floyd"
|
|
sAnimDictionary = "missheistdockssetup1ig_2_p3"
|
|
BREAK
|
|
CASE 5
|
|
sTrevorLine = "thats_the_freighter_i_trevor"
|
|
sFloydLine = "thats_the_freighter_i_floyd"
|
|
sAnimDictionary = "missheistdockssetup1ig_7"
|
|
BREAK
|
|
CASE 6
|
|
sTrevorLine = "but_these_are_marked_trevor"
|
|
sFloydLine = "but_these_are_marked_floyd"
|
|
sAnimDictionary = "missheistdockssetup1ig_7"
|
|
BREAK
|
|
CASE 7
|
|
sTrevorLine = "the_government_stuff_is_floyd"
|
|
sFloydLine = "the_government_stuff_is_trevor"
|
|
sAnimDictionary = "missheistdockssetup1ig_7"
|
|
BREAK
|
|
CASE 8
|
|
sTrevorLine = "you_are_beginning_to_trevor"
|
|
sFloydLine = "you_are_beginning_to_floyd"
|
|
sAnimDictionary = "missheistdockssetup1ig_7"
|
|
BREAK
|
|
ENDSWITCH
|
|
IF bDoPlayerAnims
|
|
TASK_PLAY_ANIM(PLAYER_PED_ID(), sAnimDictionary, sTrevorLine, NORMAL_BLEND_IN, NORMAL_BLEND_OUT, -1, AF_UPPERBODY|AF_SECONDARY|AF_TAG_SYNC_IN|AF_TAG_SYNC_OUT|AF_TAG_SYNC_CONTINUOUS)
|
|
TASK_PLAY_ANIM(pedfloyd, sAnimDictionary, sFloydLine, NORMAL_BLEND_IN, NORMAL_BLEND_OUT, -1, AF_UPPERBODY|AF_SECONDARY|AF_TAG_SYNC_IN|AF_TAG_SYNC_OUT|AF_TAG_SYNC_CONTINUOUS)
|
|
ENDIF
|
|
bDoneConversationAnim[iLineMatch] = TRUE
|
|
REMOVE_ANIM_DICT(sAnimDictionary)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF NOT bKilledOnFootConversation
|
|
STORE_CONVO()
|
|
bKilledOnFootConversation = TRUE
|
|
ENDIF
|
|
|
|
IF NOT bDoneHurrySpeech
|
|
IF iProgress > 5
|
|
IF GET_GAME_TIMER() >= iNextFloydHurrySpeechTime
|
|
IF NOT IS_FACE_TO_FACE_CONVERSATION_PAUSED()
|
|
PAUSE_FACE_TO_FACE_CONVERSATION(TRUE)
|
|
ELSE
|
|
IF NOT IS_ANY_SPEECH_PLAYING(pedFloyd)
|
|
OR NOT IS_ANY_SPEECH_PLAYING(PLAYER_PED_ID())
|
|
PLAY_PED_AMBIENT_SPEECH_WITH_VOICE(pedFloyd,"DH1_CAAA","FLOYD",SPEECH_PARAMS_FORCE_SHOUTED)
|
|
PRINTSTRING("PLAY FLOYD HURRRY UP SPEECH")PRINTNL()
|
|
bDoneHurrySpeech = TRUE
|
|
iNextFloydHurrySpeechTime = GET_GAME_TIMER() + 10000
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF (IS_ENTITY_AT_ENTITY(PLAYER_PED_ID(), pedFloyd, <<FLOYD_UNPAUSE_DIST, FLOYD_UNPAUSE_DIST, 4>>))
|
|
TASK_LOOK_AT_ENTITY(pedFloyd, PLAYER_PED_ID(), -1,SLF_WHILE_NOT_IN_FOV)
|
|
TASK_LOOK_AT_ENTITY(PLAYER_PED_ID(), pedFloyd, -1,SLF_DEFAULT)
|
|
IF IS_FACE_TO_FACE_CONVERSATION_PAUSED()
|
|
PAUSE_FACE_TO_FACE_CONVERSATION(FALSE)
|
|
CLEAR_PRINTS()
|
|
ELSE
|
|
DO_FLOYD_WALK_AND_TALK()
|
|
bKilledOnFootConversation = FALSE
|
|
bSetAltAnim = TRUE
|
|
bFloydWalkPaused = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
VECTOR vHandlerRot
|
|
|
|
PROC MANAGE_FLOYD_ATTACHMENT()
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
IF NOT IS_VEHICLE_ON_ALL_WHEELS(vehHandler)
|
|
vHandlerRot = GET_ENTITY_ROTATION(vehHandler)
|
|
IF vHandlerRot.x > 80
|
|
OR vHandlerRot.x < -80
|
|
IF IS_ENTITY_ATTACHED_TO_ENTITY(pedFloyd,vehHandler)
|
|
DETACH_ENTITY(pedFloyd)
|
|
SET_LABEL_AS_TRIGGERED("HANDLER NOT SAFE",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
SET_LABEL_AS_TRIGGERED("HANDLER NOT SAFE",FALSE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
INT iFloydTimer
|
|
|
|
|
|
//PURPOSE: Trevor follows floyd around the docks to the Forklift area
|
|
PROC MISSION_STAGE_4_PROC()
|
|
|
|
IF NOT DOES_ENTITY_EXIST(vehHandler)
|
|
SPAWN_VEHICLE(vehHandler,HANDLER,<<-129.77, -2418.28, 6.24>>,183.0850,-1,1.0,FALSE)
|
|
SET_VEHICLE_IS_CONSIDERED_BY_PLAYER(vehHandler,FALSE)
|
|
SET_VEHICLE_COLOUR_COMBINATION(vehHandler,0)
|
|
SET_VEHICLE_AUTOMATICALLY_ATTACHES(vehHandler,FALSE)
|
|
FREEZE_ENTITY_POSITION(vehHandler,TRUE)
|
|
SET_VEHICLE_PROVIDES_COVER(vehHandler,FALSE)
|
|
ENDIF
|
|
|
|
IF bHitMarkToTriggerAudioSceneChange = FALSE
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
IF IS_ENTITY_IN_ANGLED_AREA(pedFloyd, <<-89.282677,-2481.734375,1.273084>>, <<-91.874001,-2485.461670,10.770866>>, 2.250000)
|
|
PRINTSTRING("DH_1_FOLLOW_FLOYD_SEE_FREIGHTER")PRINTNL()
|
|
STOP_AUDIO_SCENE("DH_1_FOLLOW_FLOYD_START")
|
|
START_AUDIO_SCENE("DH_1_FOLLOW_FLOYD_SEE_FREIGHTER")
|
|
bHitMarkToTriggerAudioSceneChange = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF iProgress > 6
|
|
AND iProgress < 12
|
|
IF NOT IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-127.401070,-2416.403564,4.500676>>, <<-127.351868,-2418.019287,7.250676>>, 1.750000)
|
|
SET_PED_MAX_MOVE_BLEND_RATIO(PLAYER_PED_ID(),1.0)
|
|
ELSE
|
|
IF iProgress < 10
|
|
SET_PED_MAX_MOVE_BLEND_RATIO(PLAYER_PED_ID(),0.0)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF iProgress > 0
|
|
AND iProgress < 7
|
|
DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_ENTER)
|
|
ENDIF
|
|
|
|
//VECTOR vTemp
|
|
CREATE_THE_DOCKS_STUFF()
|
|
MANAGE_FLOYD_ATTACHMENT()
|
|
|
|
IF DOES_ENTITY_EXIST(pedWade)
|
|
IF NOT IS_PED_INJURED(pedWade)
|
|
IF NOT IS_ENTITY_ON_SCREEN(pedWade)
|
|
DELETE_PED(pedWade)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(IG_WADE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT bLockForklift
|
|
IF DOES_ENTITY_EXIST(vehHandler)
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
AND IS_VEHICLE_DRIVEABLE(vehDocks[1])
|
|
SET_VEHICLE_DOORS_LOCKED(vehHandler,VEHICLELOCK_LOCKOUT_PLAYER_ONLY)
|
|
SET_VEHICLE_IS_CONSIDERED_BY_PLAYER(vehHandler,FALSE)
|
|
SET_VEHICLE_IS_CONSIDERED_BY_PLAYER(vehDocks[1],FALSE)
|
|
bLockForklift = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
IF IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_PED(pedFloyd)
|
|
DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_ENTER)
|
|
DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_ATTACK)
|
|
DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_AIM)
|
|
DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_ATTACK2)
|
|
DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_COVER)
|
|
SET_PED_STEALTH_MOVEMENT(PLAYER_PED_ID(), FALSE)
|
|
DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_JUMP)
|
|
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_SPRINT)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF iProgress > 4
|
|
AND iProgress < 7
|
|
MANAGE_WALK_AND_TALK()
|
|
ENDIF
|
|
|
|
IF iProgress > 2
|
|
IF bClearText = FALSE
|
|
IF IS_THIS_PRINT_BEING_DISPLAYED("AW_FLOW_FLO")
|
|
IF MANAGE_MY_TIMER(iDialogueTimer,5000)
|
|
CLEAR_PRINTS()
|
|
bClearText = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF iProgress < 7
|
|
REQUEST_CLIP_SET("ANIM_GROUP_GESTURE_MISS_DocksSetup1")
|
|
IF HAS_ANIM_SET_LOADED("ANIM_GROUP_GESTURE_MISS_DocksSetup1")
|
|
SET_PED_GESTURE_GROUP(PLAYER_PED_ID(), "ANIM_GROUP_GESTURE_MISS_DocksSetup1")
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
SET_PED_GESTURE_GROUP(pedFloyd, "ANIM_GROUP_GESTURE_MISS_DocksSetup1")
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
|
|
SWITCH iProgress
|
|
|
|
CASE 0//Create objective specific items- print objective, add blips etc
|
|
REPLAY_DISABLE_CAMERA_MOVEMENT_THIS_FRAME() //Fix for bug 2222054
|
|
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
IF IS_ENTITY_AT_ENTITY(PLAYER_PED_ID(),pedFloyd,<<15,15,15>>)
|
|
SET_PED_MOVE_RATE_OVERRIDE(PLAYER_PED_ID(),0.8)
|
|
ENDIF
|
|
ENDIF
|
|
IF SETUP_PEDS_FOR_DIALOGUE()
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(vehMission)
|
|
SET_VEHICLE_IS_CONSIDERED_BY_PLAYER(vehMission, FALSE)
|
|
ENDIF
|
|
|
|
SAFE_ADD_BLIP_PED(dest_blip,pedFloyd,TRUE)
|
|
|
|
REQUEST_WAYPOINT_RECORDING("floyddocks1")
|
|
REQUEST_VEHICLE_RECORDING(1,"AWDocks3")
|
|
REQUEST_VEHICLE_RECORDING(1,"AWDocks6")
|
|
|
|
bSetPiece[Ss_dock_workers_talking] = TRUE
|
|
bSetPiece[SS_blackwater_with_dockworker] = TRUE
|
|
bSetPiece[SS_GANTRY_GUYS] = TRUE
|
|
bSetPiece[SS_WELDER] = TRUE
|
|
|
|
bDoCatchUp = FALSE
|
|
bGodText = FALSE
|
|
bDialogue = FALSE
|
|
bLockForklift = FALSE
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_2_p1b")
|
|
|
|
REQUEST_WAYPOINT_RECORDING("floyddocks1")
|
|
REQUEST_IPL("pcranecont")
|
|
iMissionDialogue = 3
|
|
SET_REPLAY_MID_MISSION_STAGE_WITH_NAME(3,"Follow Floyd")
|
|
iWalkAndTalk = 0
|
|
DISABLE_CELLPHONE(TRUE)
|
|
iStageStartTime = GET_GAME_TIMER()
|
|
bTriggerSetPiece[6] = FALSE
|
|
bTriggerSetPiece[5] = FALSE
|
|
bIsJumpingDirectlyToStage = FALSE
|
|
bHitMarkToTriggerAudioSceneChange = FALSE
|
|
SET_ALL_RANDOM_PEDS_FLEE(PLAYER_ID(), TRUE)
|
|
SET_PED_PATH_CAN_USE_LADDERS(PLAYER_PED_ID(),FALSE)
|
|
|
|
IF IS_SCREEN_FADED_OUT()
|
|
MANAGE_PLAYER_OUTFIT()
|
|
ENDIF
|
|
iHandlerDialogueSwitch = 0
|
|
|
|
IF NOT IS_AUDIO_SCENE_ACTIVE("DH_1_FOLLOW_FLOYD_START")
|
|
START_AUDIO_SCENE("DH_1_FOLLOW_FLOYD_START")
|
|
ENDIF
|
|
|
|
iProgress++
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
CASE 1
|
|
REPLAY_DISABLE_CAMERA_MOVEMENT_THIS_FRAME() //Fix for bug 2222054
|
|
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
IF IS_ENTITY_AT_ENTITY(PLAYER_PED_ID(),pedFloyd,<<15,15,15>>)
|
|
SET_PED_MOVE_RATE_OVERRIDE(PLAYER_PED_ID(),0.8)
|
|
ENDIF
|
|
ENDIF
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
IF IS_ENTITY_AT_ENTITY(PLAYER_PED_ID(),pedFloyd,<<6,6,6>>)
|
|
IF HAS_VEHICLE_RECORDING_BEEN_LOADED(1,"AWDocks6")
|
|
IF bTooFar = FALSE
|
|
IF NOT IS_THIS_PRINT_BEING_DISPLAYED("AW_FLOW_FLO")
|
|
KILL_ANY_CONVERSATION()
|
|
PRINT_NOW("AW_FLOW_FLO",DEFAULT_GOD_TEXT_TIME,1)
|
|
ENDIF
|
|
bTooFar = TRUE
|
|
ENDIF
|
|
REMOVE_PED_FROM_GROUP(pedFloyd)
|
|
iDialogueTimer = GET_GAME_TIMER()
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_4@main_action")
|
|
INIT_STAGE()
|
|
iProgress++
|
|
ENDIF
|
|
ELSE
|
|
IF bTooFar = FALSE
|
|
iDialogueTimer = GET_GAME_TIMER()
|
|
IF NOT IS_THIS_PRINT_BEING_DISPLAYED("AW_FLOW_FLO")
|
|
KILL_ANY_CONVERSATION()
|
|
PRINT_NOW("AW_FLOW_FLO",DEFAULT_GOD_TEXT_TIME,1)
|
|
ENDIF
|
|
|
|
bTooFar = TRUE
|
|
ENDIF
|
|
// IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_36")
|
|
// IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
// IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
// IF CREATE_CONVERSATION(sSpeech,"D1AUD", "DS1_36", CONV_PRIORITY_MEDIUM) // {trevor wanders off}
|
|
// iDialogueTimer = GET_GAME_TIMER()
|
|
// SET_LABEL_AS_TRIGGERED("DS1_36", TRUE)
|
|
// ENDIF
|
|
// ENDIF
|
|
// ENDIF
|
|
// ELSE
|
|
// IF MANAGE_MY_TIMER(iDialogueTimer,GET_RANDOM_INT_IN_RANGE(10000,15000))
|
|
// SET_LABEL_AS_TRIGGERED("DS1_36", FALSE)
|
|
// ENDIF
|
|
// ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 2
|
|
REPLAY_DISABLE_CAMERA_MOVEMENT_THIS_FRAME() //Fix for bug 2222054
|
|
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_4@main_action")
|
|
IF GET_IS_WAYPOINT_RECORDING_LOADED("floyddocks1")
|
|
CLEAR_PED_TASKS(pedFloyd)
|
|
OPEN_SEQUENCE_TASK(seqMain)
|
|
TASK_FOLLOW_WAYPOINT_RECORDING(NULL, "floyddocks1", 0,EWAYPOINT_START_FROM_CLOSEST_POINT)//|EWAYPOINT_DO_NOT_RESPOND_TO_COLLISION_EVENTS)
|
|
CLOSE_SEQUENCE_TASK(seqMain)
|
|
TASK_PERFORM_SEQUENCE(pedFloyd,seqMain)
|
|
CLEAR_SEQUENCE_TASK(seqMain)
|
|
|
|
bSetAltAnim = TRUE
|
|
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
TASK_CLEAR_LOOK_AT(PLAYER_PED_ID())
|
|
ENDIF
|
|
SET_PED_CAN_RAGDOLL_FROM_PLAYER_IMPACT(pedFloyd,FALSE)
|
|
iProgress++
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 3
|
|
IF IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_PED(pedFloyd)
|
|
iProgress++
|
|
ENDIF
|
|
BREAK
|
|
|
|
|
|
CASE 4
|
|
IF SETUP_MISSION_REQUIREMENT(REQ_CRANE_CONTAINERS)
|
|
iProgress++
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 5
|
|
|
|
IF GET_IS_WAYPOINT_RECORDING_LOADED("floyddocks1")
|
|
AND HAS_VEHICLE_RECORDING_BEEN_LOADED(1,"AWDocks3")
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
IF GET_IS_WAYPOINT_RECORDING_LOADED("floyddocks1")
|
|
REMOVE_PED_FROM_GROUP(pedFloyd)
|
|
SET_PED_CAN_RAGDOLL_FROM_PLAYER_IMPACT(pedFloyd,FALSE)
|
|
bSetPiece[SS_FORKLIFT_SUPERVISOR_A] = TRUE
|
|
iProgress++
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
REQUEST_WAYPOINT_RECORDING("floyddocks1")
|
|
REQUEST_VEHICLE_RECORDING(1,"AWDocks3")
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
CASE 6
|
|
IF bSetPiece[SS_blackwater_with_dockworker] = FALSE
|
|
IF IS_ENTITY_AT_COORD(PLAYER_PED_ID(),<< -102.1558, -2475.9209, 5.0203 >>,<<3,3,3>>)
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_9@main_action")
|
|
bSetPiece[SS_blackwater_with_dockworker] = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
IF IS_ENTITY_AT_COORD(PLAYER_PED_ID(), <<-121.87, -2425.34, 6.00>>,<<5,5,5>>)
|
|
AND IS_ENTITY_AT_COORD(pedFloyd, <<-121.87, -2425.34, 6.00>>,<<5,5,5>>)
|
|
bDoCatchUp = FALSE
|
|
KILL_ANY_CONVERSATION()
|
|
CLEAR_UP_EVENTS_AFTER_WALK_AND_TALK()
|
|
IF NOT IS_PED_INJURED(s_sp_forklift_supervisorA[0].ped)
|
|
OPEN_SEQUENCE_TASK(seqMain)
|
|
TASK_FOLLOW_NAV_MESH_TO_COORD(NULL, <<-123.5851, -2422.3521, 5.0013>>,1.0,DEFAULT_TIME_BEFORE_WARP,DEFAULT_NAVMESH_RADIUS,ENAV_SUPPRESS_EXACT_STOP)
|
|
TASK_LOOK_AT_ENTITY(NULL,s_sp_forklift_supervisorA[0].ped,6000,SLF_WHILE_NOT_IN_FOV)
|
|
CLOSE_SEQUENCE_TASK(seqMain)
|
|
TASK_PERFORM_SEQUENCE(pedFloyd,seqMain)
|
|
CLEAR_SEQUENCE_TASK(seqMain)
|
|
ENDIF
|
|
|
|
CLEAR_PRINTS()
|
|
iProgress ++
|
|
ELSE
|
|
IF IS_ENTITY_AT_COORD(PLAYER_PED_ID(), <<-121.87, -2425.34, 6.00>>,<<10,10,10>>)
|
|
AND IS_ENTITY_AT_COORD(pedFloyd, <<-121.87, -2425.34, 6.00>>,<<5,5,5>>)
|
|
AND NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
KILL_ANY_CONVERSATION()
|
|
CLEAR_UP_EVENTS_AFTER_WALK_AND_TALK()
|
|
IF NOT IS_PED_INJURED(s_sp_forklift_supervisorA[0].ped)
|
|
OPEN_SEQUENCE_TASK(seqMain)
|
|
TASK_FOLLOW_NAV_MESH_TO_COORD(NULL,<<-123.5851, -2422.3521, 5.0013>>,1.0,DEFAULT_TIME_BEFORE_WARP,DEFAULT_NAVMESH_RADIUS,ENAV_SUPPRESS_EXACT_STOP)
|
|
TASK_LOOK_AT_ENTITY(NULL,s_sp_forklift_supervisorA[0].ped,6000)
|
|
CLOSE_SEQUENCE_TASK(seqMain)
|
|
TASK_PERFORM_SEQUENCE(pedFloyd,seqMain)
|
|
CLEAR_SEQUENCE_TASK(seqMain)
|
|
ENDIF
|
|
CLEAR_PRINTS()
|
|
|
|
iProgress ++
|
|
ELSE
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("ANIMATEFLOYD")
|
|
REQUEST_ANIM_DICT("MissHeistDocksSetup1")
|
|
IF NOT HAS_ANIM_DICT_LOADED("MissHeistDocksSetup1")
|
|
IF IS_ENTITY_AT_COORD(pedFloyd, <<-121.87, -2425.34, 6.00>>,<<5,5,5>>)
|
|
AND NOT IS_ENTITY_AT_COORD(PLAYER_PED_ID(),<<-121.87, -2425.34, 6.00>>,<<5,5,5>>)
|
|
CLEAR_SEQUENCE_TASK(seqMain)
|
|
OPEN_SEQUENCE_TASK(seqMain)
|
|
TASK_LOOK_AT_ENTITY(NULL, PLAYER_PED_ID(), -1,SLF_WHILE_NOT_IN_FOV)
|
|
TASK_PLAY_ANIM(NULL,"MissHeistDocksSetup1","Beckon")
|
|
TASK_TURN_PED_TO_FACE_ENTITY(NULL, PLAYER_PED_ID(), -1)
|
|
TASK_PLAY_ANIM(NULL,"amb@dockworker@stand@idle_a", "idle_a",NORMAL_BLEND_IN,NORMAL_BLEND_OUT,-1,AF_LOOPING)
|
|
CLOSE_SEQUENCE_TASK(seqMain)
|
|
TASK_PERFORM_SEQUENCE(pedFloyd, seqMain)
|
|
SET_LABEL_AS_TRIGGERED("ANIMATEFLOYD",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF IS_ENTITY_AT_COORD(PLAYER_PED_ID(), <<-121.87, -2425.34, 6.00>>,<<5,5,5>>)
|
|
CLEAR_PED_TASKS(pedFloyd)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
|
|
|
|
CASE 7
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_9@main_action")
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_9@start_idle")
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_9@main_action")
|
|
AND HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_9@start_idle")
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
IF NOT IS_PED_INJURED(s_sp_forklift_supervisorA[0].ped)
|
|
OPEN_SEQUENCE_TASK(seqMain)
|
|
TASK_LOOK_AT_ENTITY(NULL,pedFloyd,6000)
|
|
TASK_PLAY_ANIM(NULL, "missheistdockssetup1ig_9@main_action", "forklift_supervise_mainaction_supervisor",NORMAL_BLEND_IN,NORMAL_BLEND_OUT,-1)
|
|
TASK_PLAY_ANIM(NULL, "missheistdockssetup1ig_9@start_idle", "forklift_supervise_idlea_supervisor",NORMAL_BLEND_IN,NORMAL_BLEND_OUT,-1,AF_LOOPING | AF_USE_KINEMATIC_PHYSICS,0,FALSE,AIK_NONE)
|
|
CLOSE_SEQUENCE_TASK(seqMain)
|
|
TASK_PERFORM_SEQUENCE(s_sp_forklift_supervisorA[0].ped,seqMain)
|
|
CLEAR_SEQUENCE_TASK(seqMain)
|
|
|
|
SET_RAGDOLL_BLOCKING_FLAGS(s_sp_forklift_supervisorA[0].ped,RBF_PLAYER_IMPACT)
|
|
REMOVE_ANIM_DICT("missheistdockssetup1ig_9@main_action")
|
|
REMOVE_ANIM_DICT("missheistdockssetup1ig_9@start_idle")
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(vehDocks[1])
|
|
IF IS_VEHICLE_DRIVEABLE(vehDocks[1])
|
|
IF NOT IS_ENTITY_ON_SCREEN(vehDocks[1])
|
|
DELETE_VEHICLE(vehDocks[1])
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(pedDockWorker[12])
|
|
IF NOT IS_PED_INJURED(pedDockWorker[12])
|
|
IF NOT IS_ENTITY_ON_SCREEN(pedDockWorker[12])
|
|
DELETE_PED(pedDockWorker[12])
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
SET_VEHICLE_DOORS_LOCKED(vehHandler,VEHICLELOCK_UNLOCKED)
|
|
SET_VEHICLE_IS_CONSIDERED_BY_PLAYER(vehHandler,FALSE)
|
|
ENDIF
|
|
|
|
IF DOES_BLIP_EXIST(dest_blip)
|
|
REMOVE_BLIP(dest_blip)
|
|
ENDIF
|
|
|
|
REMOVE_ANIM_SET("ANIM_GROUP_GESTURE_MISS_DocksSetup1")
|
|
// DISABLE_CELLPHONE(FALSE)
|
|
SET_PED_PATH_CAN_USE_LADDERS(PLAYER_PED_ID(),TRUE)
|
|
iProgress ++
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 8
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_05e")
|
|
IF SETUP_PEDS_FOR_DIALOGUE()
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_05e", CONV_PRIORITY_MEDIUM)
|
|
REPLAY_RECORD_BACK_FOR_TIME(2.0, 10.0, REPLAY_IMPORTANCE_HIGHEST)
|
|
SET_LABEL_AS_TRIGGERED("DS1_05e",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
iFloydTimer = GET_GAME_TIMER()
|
|
iProgress ++
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 9
|
|
IF MANAGE_MY_TIMER(iFloydTimer,2000)
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("TASK FLOYD")
|
|
SET_PED_STEERS_AROUND_VEHICLES(pedFloyd,FALSE)
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
OPEN_SEQUENCE_TASK(seqMain)
|
|
TASK_GO_STRAIGHT_TO_COORD(NULL, << -127.37, -2417.29, 5.54 >>,1.0,DEFAULT_TIME_BEFORE_WARP,88.64)
|
|
CLOSE_SEQUENCE_TASK(seqMain)
|
|
TASK_PERFORM_SEQUENCE(pedFloyd,seqMain)
|
|
CLEAR_SEQUENCE_TASK(seqMain)
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_14")
|
|
SET_LABEL_AS_TRIGGERED("TASK FLOYD",TRUE)
|
|
ENDIF
|
|
ELSE
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_14")
|
|
IF IS_PED_READY_FOR_ANIM(pedFloyd, << -127.37, -2417.29, 5.94 >>, 97.5,<<0.2,0.2,2>>)
|
|
sceneHandlerA1 = CREATE_SYNCHRONIZED_SCENE(<<0,0,0>>, <<0,0,0>>)
|
|
TASK_SYNCHRONIZED_SCENE (pedFloyd, sceneHandlerA1, "missheistdockssetup1ig_14", "floyd_climb_up", NORMAL_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT,NORMAL_BLEND_IN )
|
|
SET_ENTITY_NO_COLLISION_ENTITY(pedFloyd,vehHandler,FALSE)
|
|
ATTACH_SYNCHRONIZED_SCENE_TO_ENTITY(sceneHandlerA1,vehHandler,-1)
|
|
SET_PED_STEERS_AROUND_VEHICLES(pedFloyd,FALSE)
|
|
iProgress ++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 10
|
|
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(sceneHandlerA1)
|
|
IF GET_SYNCHRONIZED_SCENE_PHASE(sceneHandlerA1) > 0.5
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
SET_VEHICLE_DOORS_LOCKED(vehHandler,VEHICLELOCK_UNLOCKED)
|
|
SET_VEHICLE_IS_CONSIDERED_BY_PLAYER(vehHandler,TRUE)
|
|
ENDIF
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
SAFE_ADD_BLIP_VEHICLE(veh_blip,vehHandler,TRUE)
|
|
ENDIF
|
|
iProgress ++
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
|
|
CASE 11
|
|
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(sceneHandlerA1)
|
|
IF GET_SYNCHRONIZED_SCENE_PHASE(sceneHandlerA1) >= 1
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
SET_VEHICLE_DOORS_LOCKED(vehHandler,VEHICLELOCK_UNLOCKED)
|
|
ENDIF
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
SAFE_ADD_BLIP_VEHICLE(veh_blip,vehHandler,TRUE)
|
|
ENDIF
|
|
IF PRE_STREAM_MISSION_STAGE()
|
|
SAFE_REMOVE_BLIP(dest_blip)
|
|
RESET_MISSION_STAGE_VARIABLES()
|
|
ADVANCE_MISSION_STAGE()
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
ENDPROC
|
|
|
|
PROC MANAGE_FLOYD_ACTIVITY()
|
|
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("HANDLER NOT SAFE")
|
|
|
|
SWITCH iFloydHauler
|
|
|
|
//REQUESTS
|
|
CASE 0
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_14")
|
|
IF eMissionStage = MISSION_STAGE_6
|
|
iFloydHauler = 6
|
|
ELSE
|
|
iFloydHauler ++
|
|
ENDIF
|
|
BREAK
|
|
|
|
//LETS GET GOING
|
|
CASE 1
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_14")
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
sceneHandlerA1 = CREATE_SYNCHRONIZED_SCENE(<<0,0,0>>, <<0,0,0>>)
|
|
TASK_SYNCHRONIZED_SCENE (pedFloyd, sceneHandlerA1, "missheistdockssetup1ig_14", "floyd_lets_get_going", NORMAL_BLEND_IN, NORMAL_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
ATTACH_SYNCHRONIZED_SCENE_TO_ENTITY(sceneHandlerA1,vehHandler,-1)
|
|
SET_ENTITY_NO_COLLISION_ENTITY(pedFloyd,vehHandler,TRUE)
|
|
iFloydHauler ++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
//GET TO THE CONTAINERS
|
|
CASE 2
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_14")
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(sceneHandlerA1)
|
|
IF GET_SYNCHRONIZED_SCENE_PHASE(sceneHandlerA1) = 1
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
sceneHandlerA1 = CREATE_SYNCHRONIZED_SCENE(<<0,0,0>>, <<0,0,0>>)
|
|
TASK_SYNCHRONIZED_SCENE (pedFloyd, sceneHandlerA1, "missheistdockssetup1ig_14", "floyd_get_to_the_containers", NORMAL_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
ATTACH_SYNCHRONIZED_SCENE_TO_ENTITY(sceneHandlerA1,vehHandler,-1)
|
|
SET_ENTITY_NO_COLLISION_ENTITY(pedFloyd,vehHandler,TRUE)
|
|
iFloydHauler ++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
//GENERAL IDLE
|
|
CASE 3
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_14")
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(sceneHandlerA1)
|
|
IF GET_SYNCHRONIZED_SCENE_PHASE(sceneHandlerA1) = 1
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
sceneHandlerA1 = CREATE_SYNCHRONIZED_SCENE(<<0,0,0>>, <<0,0,0>>)
|
|
TASK_SYNCHRONIZED_SCENE (pedFloyd, sceneHandlerA1, "missheistdockssetup1ig_14", "floyd_idle_base", NORMAL_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
ATTACH_SYNCHRONIZED_SCENE_TO_ENTITY(sceneHandlerA1,vehHandler,-1)
|
|
SET_ENTITY_NO_COLLISION_ENTITY(pedFloyd,vehHandler,TRUE)
|
|
SET_SYNCHRONIZED_SCENE_LOOPED(sceneHandlerA1,TRUE)
|
|
iFloydHauler ++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
//SPECIFIC EVENTS
|
|
CASE 4
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
IF eMissionStage != MISSION_STAGE_6
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
IF DOES_ENTITY_EXIST(objHandlerContainer[0])
|
|
AND DOES_ENTITY_EXIST(objHandlerContainer[1])
|
|
IF GET_DISTANCE_BETWEEN_ENTITIES(vehHandler,objHandlerContainer[0]) < 8
|
|
OR GET_DISTANCE_BETWEEN_ENTITIES(vehHandler,objHandlerContainer[1]) < 8
|
|
IF NOT IS_ANY_ENTITY_ATTACHED_TO_HANDLER_FRAME(vehHandler)
|
|
sceneHandlerA1 = CREATE_SYNCHRONIZED_SCENE(<<0,0,0>>, <<0,0,0>>)
|
|
TASK_SYNCHRONIZED_SCENE (pedFloyd, sceneHandlerA1, "missheistdockssetup1ig_14", "floyd_ok_now_grab_the_container", NORMAL_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
ATTACH_SYNCHRONIZED_SCENE_TO_ENTITY(sceneHandlerA1,vehHandler,-1)
|
|
SET_ENTITY_NO_COLLISION_ENTITY(pedFloyd,vehHandler,TRUE)
|
|
iFloydHauler = 3
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
IF DOES_ENTITY_EXIST(objHandlerContainer[0])
|
|
AND DOES_ENTITY_EXIST(objHandlerContainer[1])
|
|
IF IS_ANY_ENTITY_ATTACHED_TO_HANDLER_FRAME(vehHandler)
|
|
IF GET_DISTANCE_BETWEEN_COORDS(GET_ENTITY_COORDS(vehHandler),<<-97.1716, -2459.1846, 5.0204>>) > 10
|
|
sceneHandlerA1 = CREATE_SYNCHRONIZED_SCENE(<<0,0,0>>, <<0,0,0>>)
|
|
TASK_SYNCHRONIZED_SCENE (pedFloyd, sceneHandlerA1, "missheistdockssetup1ig_14", "floyd_take_this_to_the_loading_area", NORMAL_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
ATTACH_SYNCHRONIZED_SCENE_TO_ENTITY(sceneHandlerA1,vehHandler,-1)
|
|
SET_ENTITY_NO_COLLISION_ENTITY(pedFloyd,vehHandler,TRUE)
|
|
iFloydHauler = 3
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
IF DOES_ENTITY_EXIST(objHandlerContainer[0])
|
|
AND DOES_ENTITY_EXIST(objHandlerContainer[1])
|
|
IF NOT IS_ANY_ENTITY_ATTACHED_TO_HANDLER_FRAME(vehHandler)
|
|
IF IS_ENTITY_IN_ANGLED_AREA(objHandlerContainer[0], <<-92.523666,-2461.800049,8.267201>>, <<-103.638123,-2453.989258,4.520514>>, 14.7500000)
|
|
OR IS_ENTITY_IN_ANGLED_AREA(objHandlerContainer[1], <<-92.523666,-2461.800049,8.267201>>, <<-103.638123,-2453.989258,4.520514>>, 14.7500000)
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("GOOD WORK")
|
|
sceneHandlerA1 = CREATE_SYNCHRONIZED_SCENE(<<0,0,0>>, <<0,0,0>>)
|
|
TASK_SYNCHRONIZED_SCENE (pedFloyd, sceneHandlerA1, "missheistdockssetup1ig_14", "floyd_good_work", NORMAL_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
ATTACH_SYNCHRONIZED_SCENE_TO_ENTITY(sceneHandlerA1,vehHandler,-1)
|
|
SET_ENTITY_NO_COLLISION_ENTITY(pedFloyd,vehHandler,TRUE)
|
|
SET_LABEL_AS_TRIGGERED("GOOD WORK",TRUE)
|
|
iFloydHauler = 3
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
IF DOES_ENTITY_EXIST(objHandlerContainer[0])
|
|
AND DOES_ENTITY_EXIST(objHandlerContainer[1])
|
|
IF NOT IS_ANY_ENTITY_ATTACHED_TO_HANDLER_FRAME(vehHandler)
|
|
IF IS_ENTITY_IN_ANGLED_AREA(objHandlerContainer[0], <<-92.523666,-2461.800049,8.267201>>, <<-103.638123,-2453.989258,4.520514>>, 14.7500000)
|
|
AND IS_ENTITY_IN_ANGLED_AREA(objHandlerContainer[1], <<-92.523666,-2461.800049,8.267201>>, <<-103.638123,-2453.989258,4.520514>>, 14.7500000)
|
|
IF HAS_LABEL_BEEN_TRIGGERED("GOOD WORK")
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("TASK COMPLETE")
|
|
sceneHandlerA1 = CREATE_SYNCHRONIZED_SCENE(<<0,0,0>>, <<0,0,0>>)
|
|
TASK_SYNCHRONIZED_SCENE (pedFloyd, sceneHandlerA1, "missheistdockssetup1ig_14", "floyd_task_complete", NORMAL_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
ATTACH_SYNCHRONIZED_SCENE_TO_ENTITY(sceneHandlerA1,vehHandler,-1)
|
|
SET_ENTITY_NO_COLLISION_ENTITY(pedFloyd,vehHandler,TRUE)
|
|
SET_LABEL_AS_TRIGGERED("TASK COMPLETE",TRUE)
|
|
iFloydHauler = 3
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF iProgress > 2
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
sceneHandlerA1 = CREATE_SYNCHRONIZED_SCENE(<<0,0,0>>, <<0,0,0>>)
|
|
TASK_SYNCHRONIZED_SCENE (pedFloyd, sceneHandlerA1, "missheistdockssetup1ig_14", "floyd_climb_down", NORMAL_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
ATTACH_SYNCHRONIZED_SCENE_TO_ENTITY(sceneHandlerA1,vehHandler,-1)
|
|
SET_ENTITY_NO_COLLISION_ENTITY(pedFloyd,vehHandler,TRUE)
|
|
iFloydHauler = 5
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
//ONCE FLOYD HAS LEFT THE HANDLER
|
|
CASE 5
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_14")
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(sceneHandlerA1)
|
|
IF GET_SYNCHRONIZED_SCENE_PHASE(sceneHandlerA1) = 1
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
SET_RAGDOLL_BLOCKING_FLAGS(pedFloyd,RBF_PLAYER_IMPACT)
|
|
ENDIF
|
|
OPEN_SEQUENCE_TASK(seqMain)
|
|
TASK_FOLLOW_NAV_MESH_TO_COORD(NULL,<<-120.65, -2422.97, 6.00>>,1.0,DEFAULT_TIME_NEVER_WARP,DEFAULT_NAVMESH_RADIUS,ENAV_DEFAULT,-38.16)
|
|
TASK_LOOK_AT_ENTITY(NULL,PLAYER_PED_ID(),-1)
|
|
TASK_START_SCENARIO_IN_PLACE(NULL,"WORLD_HUMAN_STAND_IMPATIENT",0,TRUE)
|
|
SET_ENTITY_NO_COLLISION_ENTITY(pedFloyd,vehHandler,TRUE)
|
|
CLOSE_SEQUENCE_TASK(seqMain)
|
|
TASK_PERFORM_SEQUENCE(pedFloyd, seqMain)
|
|
iFloydHauler = 7
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
//SPECIAL CASE IF THE PLAYER SKIPS
|
|
CASE 6
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_14")
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
sceneHandlerA1 = CREATE_SYNCHRONIZED_SCENE(<<0,0,0>>, <<0,0,0>>)
|
|
TASK_SYNCHRONIZED_SCENE (pedFloyd, sceneHandlerA1, "missheistdockssetup1ig_14", "floyd_idle_base", NORMAL_BLEND_IN, NORMAL_BLEND_OUT )
|
|
ATTACH_SYNCHRONIZED_SCENE_TO_ENTITY(sceneHandlerA1,vehHandler,-1)
|
|
SET_ENTITY_NO_COLLISION_ENTITY(pedFloyd,vehHandler,TRUE)
|
|
SET_SYNCHRONIZED_SCENE_LOOPED(sceneHandlerA1,TRUE)
|
|
SET_LABEL_AS_TRIGGERED("TASK COMPLETE",TRUE)
|
|
SET_LABEL_AS_TRIGGERED("GOOD WORK",TRUE)
|
|
iFloydHauler = 4
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
INT iHandlerHelpTimer
|
|
|
|
PROC MANAGE_HANDLER_ATTACHMENTS()
|
|
//
|
|
// [HD_HELP1:DOCKH1]
|
|
// Position the handler's frame over a container using ~INPUT_SCRIPT_LEFT_AXIS_Y~.
|
|
//
|
|
// [HD_HELP1B:DOCKH1]
|
|
// Press ~INPUT_CONTEXT~ to pick up the container.
|
|
//
|
|
// [HD_HELP2:DOCKH1]
|
|
// Press ~INPUT_CONTEXT~ to release the container.
|
|
//
|
|
//[HD_HELP3:DOCKH1]
|
|
//Use ~INPUT_SCRIPT_LEFT_AXIS_Y~ to move the handler frame.
|
|
|
|
SET_VEHICLE_LIGHTS(vehHandler,FORCE_VEHICLE_LIGHTS_OFF)
|
|
//PRINTSTRING("SCRIPTS COMPILED?")
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
IF DOES_ENTITY_EXIST(objHandlerContainer[0])
|
|
AND DOES_ENTITY_EXIST(objHandlerContainer[1])
|
|
IF NOT IS_ANY_ENTITY_ATTACHED_TO_HANDLER_FRAME(vehHandler)
|
|
IF IS_HANDLER_FRAME_LINED_UP_WITH_CONTAINER(vehHandler,objHandlerContainer[0])
|
|
OR IS_HANDLER_FRAME_LINED_UP_WITH_CONTAINER(vehHandler,objHandlerContainer[1])
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("HD_HELP1B")
|
|
IF IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("HD_HELP1")
|
|
CLEAR_HELP()
|
|
ELSE
|
|
iHandlerHelpTimer = GET_GAME_TIMER()
|
|
PRINT_HELP_FOREVER("HD_HELP1B")
|
|
SET_LABEL_AS_TRIGGERED("HD_HELP1B",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF HAS_LABEL_BEEN_TRIGGERED("HD_HELP1B")
|
|
IF MANAGE_MY_TIMER(iHandlerHelpTimer,3000)
|
|
IF IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("HD_HELP1B")
|
|
CLEAR_HELP()
|
|
SET_LABEL_AS_TRIGGERED("HD_HELP1B",FALSE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//"Container_Release"
|
|
IF HAS_LABEL_BEEN_TRIGGERED("PICKED UP A CONTAINER")
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
IF NOT IS_ANY_ENTITY_ATTACHED_TO_HANDLER_FRAME(vehHandler)
|
|
//PRINTSTRING("DROPPED SOMETHING")PRINTNL()
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("Container_Release_audio")
|
|
PRINTSTRING("PLAYING RELEASE AUDIO")PRINTNL()
|
|
PLAY_SOUND_FROM_ENTITY(-1,"Container_Release",vehHandler,"CONTAINER_LIFTER_SOUNDS")
|
|
//DETACH_CONTAINER_FROM_HANDLER_FRAME(vehHandler)
|
|
iReleaseTimer = GET_GAME_TIMER()
|
|
SET_LABEL_AS_TRIGGERED("CONTAINER LAND",FALSE)
|
|
SET_LABEL_AS_TRIGGERED("Container_Release_audio",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF IS_ANY_ENTITY_ATTACHED_TO_HANDLER_FRAME(vehHandler)
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("PICKED UP A CONTAINER")
|
|
SET_LABEL_AS_TRIGGERED("PICKED UP A CONTAINER",TRUE)
|
|
PRINTSTRING("PICKED UP A CONTAINER")PRINTNL()
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//"Container_Land"\
|
|
IF HAS_LABEL_BEEN_TRIGGERED("PICKED UP A CONTAINER")
|
|
IF MANAGE_MY_TIMER(iReleaseTimer,20)
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("CONTAINER LAND")
|
|
IF NOT IS_ANY_ENTITY_ATTACHED_TO_HANDLER_FRAME(vehHandler)
|
|
IF HAS_ENTITY_COLLIDED_WITH_ANYTHING(objHandlerContainer[0])
|
|
OR HAS_ENTITY_COLLIDED_WITH_ANYTHING(objHandlerContainer[1])
|
|
IF REQUEST_SCRIPT_AUDIO_BANK("Container_Lifter")
|
|
PRINTSTRING("PLAYING Container_Land SOUND")PRINTNL()
|
|
PLAY_SOUND_FROM_ENTITY(-1,"Container_Land",vehHandler,"CONTAINER_LIFTER_SOUNDS")
|
|
ENDIF
|
|
SET_LABEL_AS_TRIGGERED("CONTAINER LAND",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT IS_ANY_ENTITY_ATTACHED_TO_HANDLER_FRAME(vehHandler)
|
|
IF MANAGE_MY_TIMER(iReleaseTimer,1000)
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
IF DOES_ENTITY_EXIST(objHandlerContainer[0])
|
|
AND DOES_ENTITY_EXIST(objHandlerContainer[1])
|
|
IF NOT IS_ANY_ENTITY_ATTACHED_TO_HANDLER_FRAME(vehHandler)
|
|
IF IS_CONTROL_JUST_PRESSED(PLAYER_CONTROL,INPUT_CONTEXT)
|
|
IF IS_HANDLER_FRAME_LINED_UP_WITH_CONTAINER(vehHandler,objHandlerContainer[0])
|
|
IF REQUEST_SCRIPT_AUDIO_BANK("Container_Lifter")
|
|
PRINTSTRING("PLAYING ATTACH SOUND")PRINTNL()
|
|
PLAY_SOUND_FROM_ENTITY(-1,"Container_Attach",vehHandler,"CONTAINER_LIFTER_SOUNDS")
|
|
ENDIF
|
|
ATTACH_CONTAINER_TO_HANDLER_FRAME_WHEN_LINED_UP(vehHandler,objHandlerContainer[0])
|
|
PRINTSTRING("ATTACHING")PRINTNL()
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("PICKED UP A CONTAINER")
|
|
SET_LABEL_AS_TRIGGERED("PICKED UP A CONTAINER",TRUE)
|
|
ENDIF
|
|
SET_LABEL_AS_TRIGGERED("Container_Release_audio",FALSE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT IS_ANY_ENTITY_ATTACHED_TO_HANDLER_FRAME(vehHandler)
|
|
IF IS_CONTROL_JUST_PRESSED(PLAYER_CONTROL,INPUT_CONTEXT)
|
|
IF IS_HANDLER_FRAME_LINED_UP_WITH_CONTAINER(vehHandler,objHandlerContainer[1])
|
|
IF REQUEST_SCRIPT_AUDIO_BANK("Container_Lifter")
|
|
PRINTSTRING("PLAYING ATTACH SOUND")PRINTNL()
|
|
PLAY_SOUND_FROM_ENTITY(-1,"Container_Attach",vehHandler,"CONTAINER_LIFTER_SOUNDS")
|
|
ENDIF
|
|
ATTACH_CONTAINER_TO_HANDLER_FRAME_WHEN_LINED_UP(vehHandler,objHandlerContainer[1])
|
|
PRINTSTRING("ATTACHING")PRINTNL()
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("PICKED UP A CONTAINER")
|
|
SET_LABEL_AS_TRIGGERED("PICKED UP A CONTAINER",TRUE)
|
|
ENDIF
|
|
SET_LABEL_AS_TRIGGERED("Container_Release_audio",FALSE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("HD_HELP1B")
|
|
CLEAR_HELP()
|
|
ENDIF
|
|
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
|
|
FLOAT fHandlerHealth
|
|
INT iHandlerDamageTimer
|
|
BOOL bDropContainerObjective = FALSE
|
|
|
|
PROC MANAGE_HANDLER_DIALOGUE()
|
|
//GET_CURRENTLY_PLAYING_STANDARD_CONVERSATION_ROOT()
|
|
//GET_CURRENTLY_PLAYING_STANDARD_CONVERSATION_LABEL()
|
|
|
|
SWITCH iHandlerDialogueSwitch
|
|
|
|
CASE 0
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
|
|
//If the player damages the handler - wreckless
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
IF GET_ENTITY_SPEED(vehHandler) > 30.0 AND HAS_ENTITY_COLLIDED_WITH_ANYTHING(vehHandler)
|
|
OR fHandlerHealth > GET_ENTITY_HEALTH(vehHandler)+GET_VEHICLE_ENGINE_HEALTH(vehHandler)
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_07hb")
|
|
|
|
INTERRUPT_CONVERSATION(pedFloyd,"DH1_DXAA","FLOYD")
|
|
iHandlerDamageTimer = GET_GAME_TIMER()
|
|
SET_LABEL_AS_TRIGGERED("DS1_07hb",TRUE)
|
|
//KILL_FACE_TO_FACE_CONVERSATION_DO_NOT_FINISH_LAST_LINE()
|
|
// IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
// IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_07hb", CONV_PRIORITY_MEDIUM)
|
|
// iHandlerDamageTimer = GET_GAME_TIMER()
|
|
// SET_LABEL_AS_TRIGGERED("DS1_07hb",TRUE)
|
|
// ENDIF
|
|
// ENDIF
|
|
ELSE
|
|
IF MANAGE_MY_TIMER(iHandlerDamageTimer,12000)
|
|
SET_LABEL_AS_TRIGGERED("DS1_07hb",FALSE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
fHandlerHealth = GET_ENTITY_HEALTH(vehHandler)+GET_VEHICLE_ENGINE_HEALTH(vehHandler)
|
|
|
|
//Player damages a crate
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_41b")
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
IF NOT IS_ANY_ENTITY_ATTACHED_TO_HANDLER_FRAME(vehHandler)
|
|
IF GET_ENTITY_SPEED(objHandlerContainer[0]) > 4.0
|
|
OR GET_ENTITY_SPEED(objHandlerContainer[1]) > 4.0
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_41b", CONV_PRIORITY_MEDIUM)
|
|
iDamagedContainer = GET_GAME_TIMER()
|
|
SET_LABEL_AS_TRIGGERED("DS1_41b",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF MANAGE_MY_TIMER(iDamagedContainer,7000)
|
|
SET_LABEL_AS_TRIGGERED("DS1_41b",FALSE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
|
|
//If the player is near to the containers - Floyd sees them
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_sees")
|
|
IF DOES_ENTITY_EXIST(objHandlerContainer[0])
|
|
AND DOES_ENTITY_EXIST(objHandlerContainer[1])
|
|
IF GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(),objHandlerContainer[0]) < 15
|
|
OR GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(),objHandlerContainer[1]) < 15
|
|
KILL_FACE_TO_FACE_CONVERSATION()
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_sees", CONV_PRIORITY_MEDIUM)
|
|
SET_LABEL_AS_TRIGGERED("DS1_sees",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//If the player is near the containers tells them to line up with them
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_line")
|
|
IF DOES_ENTITY_EXIST(objHandlerContainer[0])
|
|
AND DOES_ENTITY_EXIST(objHandlerContainer[1])
|
|
IF GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(),objHandlerContainer[0]) < 4
|
|
OR GET_DISTANCE_BETWEEN_ENTITIES(PLAYER_PED_ID(),objHandlerContainer[1]) < 4
|
|
KILL_FACE_TO_FACE_CONVERSATION()
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_line", CONV_PRIORITY_MEDIUM)
|
|
SET_LABEL_AS_TRIGGERED("DS1_line",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//handler in place, Floyd says to attach the crate
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_attach")
|
|
IF DOES_ENTITY_EXIST(objHandlerContainer[0])
|
|
AND DOES_ENTITY_EXIST(objHandlerContainer[1])
|
|
IF NOT IS_ANY_ENTITY_ATTACHED_TO_HANDLER_FRAME(vehHandler)
|
|
IF NOT IS_ENTITY_IN_ANGLED_AREA(objHandlerContainer[0], <<-92.523666,-2461.800049,8.267201>>, <<-103.638123,-2453.989258,4.520514>>, 14.7500000)
|
|
IF IS_HANDLER_FRAME_LINED_UP_WITH_CONTAINER(vehHandler,objHandlerContainer[0])
|
|
IF NOT IS_ANY_ENTITY_ATTACHED_TO_HANDLER_FRAME(vehHandler)
|
|
KILL_FACE_TO_FACE_CONVERSATION()
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_attach", CONV_PRIORITY_MEDIUM)
|
|
SET_LABEL_AS_TRIGGERED("DS1_attach",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
IF NOT IS_ENTITY_IN_ANGLED_AREA(objHandlerContainer[1], <<-92.523666,-2461.800049,8.267201>>, <<-103.638123,-2453.989258,4.520514>>, 14.7500000)
|
|
IF IS_HANDLER_FRAME_LINED_UP_WITH_CONTAINER(vehHandler,objHandlerContainer[1])
|
|
IF NOT IS_ANY_ENTITY_ATTACHED_TO_HANDLER_FRAME(vehHandler)
|
|
KILL_FACE_TO_FACE_CONVERSATION()
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_attach", CONV_PRIORITY_MEDIUM)
|
|
SET_LABEL_AS_TRIGGERED("DS1_attach",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF HAS_LABEL_BEEN_TRIGGERED("DS1_08")
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_attach2")
|
|
IF DOES_ENTITY_EXIST(objHandlerContainer[0])
|
|
AND DOES_ENTITY_EXIST(objHandlerContainer[1])
|
|
IF NOT IS_ANY_ENTITY_ATTACHED_TO_HANDLER_FRAME(vehHandler)
|
|
IF NOT IS_ENTITY_IN_ANGLED_AREA(objHandlerContainer[0], <<-92.523666,-2461.800049,8.267201>>, <<-103.638123,-2453.989258,4.520514>>, 14.7500000)
|
|
IF IS_HANDLER_FRAME_LINED_UP_WITH_CONTAINER(vehHandler,objHandlerContainer[0])
|
|
IF NOT IS_ANY_ENTITY_ATTACHED_TO_HANDLER_FRAME(vehHandler)
|
|
KILL_FACE_TO_FACE_CONVERSATION()
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_attach", CONV_PRIORITY_MEDIUM)
|
|
SET_LABEL_AS_TRIGGERED("DS1_attach2",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
IF NOT IS_ENTITY_IN_ANGLED_AREA(objHandlerContainer[1], <<-92.523666,-2461.800049,8.267201>>, <<-103.638123,-2453.989258,4.520514>>, 14.7500000)
|
|
IF IS_HANDLER_FRAME_LINED_UP_WITH_CONTAINER(vehHandler,objHandlerContainer[1])
|
|
IF NOT IS_ANY_ENTITY_ATTACHED_TO_HANDLER_FRAME(vehHandler)
|
|
KILL_FACE_TO_FACE_CONVERSATION()
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_attach", CONV_PRIORITY_MEDIUM)
|
|
SET_LABEL_AS_TRIGGERED("DS1_attach2",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//picked up the container
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_dockf")
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehHandler)
|
|
IF IS_ANY_ENTITY_ATTACHED_TO_HANDLER_FRAME(vehHandler)
|
|
KILL_FACE_TO_FACE_CONVERSATION()
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_dockf", CONV_PRIORITY_MEDIUM)
|
|
SET_LABEL_AS_TRIGGERED("DS1_dockf",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//Random chat while going to container
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_13")
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_13", CONV_PRIORITY_MEDIUM)
|
|
SET_LABEL_AS_TRIGGERED("DS1_13",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF HAS_LABEL_BEEN_TRIGGERED("DS1_attach2")
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_13b")
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_13b", CONV_PRIORITY_MEDIUM)
|
|
REPLAY_RECORD_BACK_FOR_TIME(3.0, 5.0, REPLAY_IMPORTANCE_HIGHEST)
|
|
SET_LABEL_AS_TRIGGERED("DS1_13b",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//Random chat after picking up the first container
|
|
IF HAS_LABEL_BEEN_TRIGGERED("DS1_dockf")
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_13c")
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_13c", CONV_PRIORITY_MEDIUM)
|
|
SET_LABEL_AS_TRIGGERED("DS1_13c",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
//First container in place
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_08")
|
|
IF IS_ENTITY_IN_ANGLED_AREA(objHandlerContainer[0], <<-92.523666,-2461.800049,8.267201>>, <<-103.638123,-2453.989258,4.520514>>, 14.7500000)
|
|
OR IS_ENTITY_IN_ANGLED_AREA(objHandlerContainer[1], <<-92.523666,-2461.800049,8.267201>>, <<-103.638123,-2453.989258,4.520514>>, 14.7500000)
|
|
KILL_FACE_TO_FACE_CONVERSATION()
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_Drop", CONV_PRIORITY_MEDIUM)
|
|
SET_LABEL_AS_TRIGGERED("DS1_08",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_13d")
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_13d", CONV_PRIORITY_MEDIUM)
|
|
SET_LABEL_AS_TRIGGERED("DS1_13d",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
|
|
BREAK
|
|
|
|
|
|
ENDSWITCH
|
|
|
|
|
|
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_07hb")
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_07hb", CONV_PRIORITY_MEDIUM)
|
|
SET_LABEL_AS_TRIGGERED("DS1_07hb",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
|
|
|
|
PROC MANAGE_HANDLER_SECTION()
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
IF IS_ANY_ENTITY_ATTACHED_TO_HANDLER_FRAME(vehHandler)
|
|
bCarryingContainer = TRUE
|
|
ELSE
|
|
bCarryingContainer = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
MANAGE_HANDLER_ATTACHMENTS()
|
|
|
|
IF iHandlerSection > 1
|
|
MANAGE_HANDLER_DIALOGUE()
|
|
ENDIF
|
|
|
|
PRINTSTRING("iHandler:")PRINTINT(iHandlerSection)//PRINTNL()
|
|
|
|
SWITCH iHandlerSection
|
|
|
|
CASE 0
|
|
REQUEST_SCRIPT_AUDIO_BANK("Container_Lifter")
|
|
SET_LABEL_AS_TRIGGERED("HD_HELP1",FALSE)
|
|
iHandlerSection ++
|
|
BREAK
|
|
|
|
CASE 1
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehHandler)
|
|
|
|
IF HAS_LABEL_BEEN_TRIGGERED("DS1_07hc")
|
|
SET_LABEL_AS_TRIGGERED("DS1_07hc",FALSE)
|
|
ENDIF
|
|
|
|
IF IS_THIS_PRINT_BEING_DISPLAYED("AW_BACK_IN_HAND")
|
|
CLEAR_PRINTS()
|
|
ENDIF
|
|
IF DOES_BLIP_EXIST(veh_blip)
|
|
SAFE_REMOVE_BLIP(veh_blip)
|
|
ENDIF
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("HD_HELP1")
|
|
PRINT_HELP_FOREVER("HD_HELP1")
|
|
SET_LABEL_AS_TRIGGERED("HD_HELP1",TRUE)
|
|
ENDIF
|
|
IF NOT IS_ANY_ENTITY_ATTACHED_TO_HANDLER_FRAME(vehHandler)
|
|
IF DOES_ENTITY_EXIST(objHandlerContainer[0])
|
|
IF NOT IS_ENTITY_IN_ANGLED_AREA(objHandlerContainer[0], <<-92.523666,-2461.800049,8.267201>>, <<-103.638123,-2453.989258,4.520514>>, 14.7500000)
|
|
SAFE_ADD_BLIP_LOCATION(blipHandlerContainers[0],GET_ENTITY_COORDS(objHandlerContainer[0]))
|
|
SET_BLIP_COLOUR(blipHandlerContainers[0],BLIP_COLOUR_GREEN)
|
|
SET_BLIP_NAME_FROM_TEXT_FILE(blipHandlerContainers[0],"CONT_LABEL")
|
|
//SET_BLIP_SCALE(blipHandlerContainers[0],0.5)
|
|
ELSE
|
|
SAFE_REMOVE_BLIP(blipHandlerContainers[0])
|
|
ENDIF
|
|
ENDIF
|
|
IF DOES_ENTITY_EXIST(objHandlerContainer[1])
|
|
IF NOT IS_ENTITY_IN_ANGLED_AREA(objHandlerContainer[1], <<-92.523666,-2461.800049,8.267201>>, <<-103.638123,-2453.989258,4.520514>>, 14.7500000)
|
|
SAFE_ADD_BLIP_LOCATION(blipHandlerContainers[1],GET_ENTITY_COORDS(objHandlerContainer[1]))
|
|
SET_BLIP_COLOUR(blipHandlerContainers[1],BLIP_COLOUR_GREEN)
|
|
SET_BLIP_NAME_FROM_TEXT_FILE(blipHandlerContainers[1],"CONT_LABEL")
|
|
//SET_BLIP_SCALE(blipHandlerContainers[1],0.5)
|
|
ELSE
|
|
// IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_08")
|
|
// KILL_FACE_TO_FACE_CONVERSATION()
|
|
// IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
// IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_08", CONV_PRIORITY_MEDIUM)
|
|
// SET_LABEL_AS_TRIGGERED("DS1_08",TRUE)
|
|
// ENDIF
|
|
// ENDIF
|
|
// ENDIF
|
|
SAFE_REMOVE_BLIP(blipHandlerContainers[1])
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
bToggleObjective = FALSE
|
|
iHandlerSection ++
|
|
ELSE
|
|
IF bToggleObjective = FALSE
|
|
IF NOT IS_THIS_PRINT_BEING_DISPLAYED("AW_BACK_IN_HAND")
|
|
SAFE_REMOVE_BLIP(blipHandlerContainers[0])
|
|
SAFE_REMOVE_BLIP(blipHandlerContainers[1])
|
|
SAFE_REMOVE_BLIP(blipHaulerLoadingArea)
|
|
SAFE_ADD_BLIP_VEHICLE(veh_blip,vehHandler,TRUE)
|
|
KILL_FACE_TO_FACE_CONVERSATION()
|
|
IF IS_HELP_MESSAGE_BEING_DISPLAYED()
|
|
CLEAR_HELP()
|
|
ENDIF
|
|
CLEAR_PRINTS()
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_DIALOGUE_IF_SUBTITLES_OFF)
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("AW_BACK_IN_HAND")
|
|
PRINT("AW_BACK_IN_HAND",DEFAULT_GOD_TEXT_TIME,0)
|
|
SET_LABEL_AS_TRIGGERED("AW_BACK_IN_HAND",TRUE)
|
|
ENDIF
|
|
bToggleObjective = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF HAS_LABEL_BEEN_TRIGGERED("AW_BACK_IN_HAND")
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_07hc")
|
|
KILL_FACE_TO_FACE_CONVERSATION()
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_07hc", CONV_PRIORITY_MEDIUM)
|
|
SET_LABEL_AS_TRIGGERED("DS1_07hc",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 2
|
|
|
|
IF NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehHandler)
|
|
iHandlerSection = 1
|
|
ENDIF
|
|
|
|
|
|
IF NOT IS_ANY_ENTITY_ATTACHED_TO_HANDLER_FRAME(vehHandler)
|
|
IF IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("HD_HELP2")
|
|
CLEAR_HELP()
|
|
ENDIF
|
|
ENDIF
|
|
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
IF NOT IS_ANY_ENTITY_ATTACHED_TO_HANDLER_FRAME(vehHandler)
|
|
IF DOES_ENTITY_EXIST(objHandlerContainer[0])
|
|
IF NOT IS_ENTITY_IN_ANGLED_AREA(objHandlerContainer[0], <<-92.523666,-2461.800049,8.267201>>, <<-103.638123,-2453.989258,4.520514>>, 14.7500000)
|
|
IF NOT DOES_BLIP_EXIST(blipHandlerContainers[0])
|
|
SAFE_ADD_BLIP_LOCATION(blipHandlerContainers[0],GET_ENTITY_COORDS(objHandlerContainer[0]))
|
|
SET_BLIP_COLOUR(blipHandlerContainers[0],BLIP_COLOUR_GREEN)
|
|
SET_BLIP_NAME_FROM_TEXT_FILE(blipHandlerContainers[0],"CONT_LABEL")
|
|
ENDIF
|
|
ELSE
|
|
SET_LABEL_AS_TRIGGERED("1st CONTAINER IN",TRUE)
|
|
SAFE_REMOVE_BLIP(blipHandlerContainers[0])
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(objHandlerContainer[1])
|
|
IF NOT IS_ENTITY_IN_ANGLED_AREA(objHandlerContainer[1], <<-92.523666,-2461.800049,8.267201>>, <<-103.638123,-2453.989258,4.520514>>, 14.7500000)
|
|
IF NOT DOES_BLIP_EXIST(blipHandlerContainers[1])
|
|
SAFE_ADD_BLIP_LOCATION(blipHandlerContainers[1],GET_ENTITY_COORDS(objHandlerContainer[1]))
|
|
SET_BLIP_COLOUR(blipHandlerContainers[1],BLIP_COLOUR_GREEN)
|
|
SET_BLIP_NAME_FROM_TEXT_FILE(blipHandlerContainers[1],"CONT_LABEL")
|
|
ENDIF
|
|
ELSE
|
|
SET_LABEL_AS_TRIGGERED("2nd CONTAINER IN",TRUE)
|
|
SAFE_REMOVE_BLIP(blipHandlerContainers[1])
|
|
//REPLAY_RECORD_BACK_FOR_TIME(1)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DOES_BLIP_EXIST(blipHaulerLoadingArea)
|
|
SAFE_REMOVE_BLIP(blipHaulerLoadingArea)
|
|
ENDIF
|
|
|
|
IF GET_DISTANCE_BETWEEN_ENTITIES(vehHandler,objHandlerContainer[0]) < 30
|
|
OR GET_DISTANCE_BETWEEN_ENTITIES(vehHandler,objHandlerContainer[1]) < 30
|
|
IF bHelpText = FALSE
|
|
IF NOT IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("HD_HELP1")
|
|
PRINT_HELP("HD_HELP1")
|
|
SET_LABEL_AS_TRIGGERED("HD_HELP1",TRUE)
|
|
bHelpText = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
//CLEAR_PRINTS()
|
|
//TAKE THE CRATE TO THE LOADING AREA
|
|
//KILL_FACE_TO_FACE_CONVERSATION()
|
|
SAFE_REMOVE_BLIP(blipHandlerContainers[0])
|
|
SAFE_REMOVE_BLIP(blipHandlerContainers[1])
|
|
SAFE_REMOVE_BLIP(blipHandlerContainers[2])
|
|
SAFE_ADD_BLIP_LOCATION(blipHaulerLoadingArea,vForkLiftLoadingArea)
|
|
bGodText = FALSE
|
|
bDropContainerObjective = FALSE
|
|
iHandlerSection ++
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 3
|
|
IF IS_ANY_ENTITY_ATTACHED_TO_HANDLER_FRAME(vehHandler)
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData, IAT_IGNORE_DIALOGUE_IF_SUBTITLES_OFF)
|
|
IF bGodText = FALSE
|
|
//Only do this god text once
|
|
IF HAS_LABEL_BEEN_TRIGGERED("AW_HAND_GOTC")
|
|
PRINT("AW_HAND_GOTC",DEFAULT_GOD_TEXT_TIME,0)
|
|
bGodText = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehHandler)
|
|
iHandlerSection = 1
|
|
ENDIF
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
IF NOT IS_ANY_ENTITY_ATTACHED_TO_HANDLER_FRAME(vehHandler)
|
|
IF NOT IS_ENTITY_IN_ANGLED_AREA(objHandlerContainer[0], <<-92.523666,-2461.800049,8.267201>>, <<-103.638123,-2453.989258,4.520514>>, 14.7500000)
|
|
AND NOT IS_ENTITY_IN_ANGLED_AREA(objHandlerContainer[1], <<-92.523666,-2461.800049,8.267201>>, <<-103.638123,-2453.989258,4.520514>>, 14.7500000)
|
|
CLEAR_PRINTS()
|
|
//DRIVE TO THE CRATES
|
|
SAFE_REMOVE_BLIP(blipHaulerLoadingArea)
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("AW_HAND_TASK")
|
|
PRINT("AW_HAND_TASK",DEFAULT_GOD_TEXT_TIME,0)
|
|
SET_LABEL_AS_TRIGGERED("AW_HAND_TASK",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
IF IS_THIS_PRINT_BEING_DISPLAYED("AW_HAND_GOTC")
|
|
CLEAR_PRINTS()
|
|
ENDIF
|
|
IF IS_THIS_PRINT_BEING_DISPLAYED("AW_HAND_DROP")
|
|
CLEAR_PRINTS()
|
|
ENDIF
|
|
IF IS_HELP_MESSAGE_BEING_DISPLAYED()
|
|
CLEAR_HELP()
|
|
ENDIF
|
|
iHandlerSection = 2
|
|
ELSE
|
|
IF IS_ANY_ENTITY_ATTACHED_TO_HANDLER_FRAME(vehHandler)
|
|
IF bDropContainerObjective = FALSE
|
|
IF IS_ENTITY_ATTACHED_TO_HANDLER_FRAME(vehHandler,objHandlerContainer[0])
|
|
AND IS_ENTITY_IN_ANGLED_AREA(objHandlerContainer[0], <<-93.626404,-2450.864014,28.266687>>, <<-102.872566,-2464.122803,3.520514>>, 16.250000)
|
|
//SET THE CRATE DOWN IN THIS AREA
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("AW_HAND_DROP")
|
|
CLEAR_PRINTS()
|
|
PRINT("AW_HAND_DROP",DEFAULT_GOD_TEXT_TIME,0)
|
|
SET_LABEL_AS_TRIGGERED("AW_HAND_DROP",TRUE)
|
|
ENDIF
|
|
PRINT_HELP("HD_HELP2")
|
|
bDropContainerObjective = TRUE
|
|
ENDIF
|
|
IF IS_ENTITY_ATTACHED_TO_HANDLER_FRAME(vehHandler,objHandlerContainer[1])
|
|
AND IS_ENTITY_IN_ANGLED_AREA(objHandlerContainer[1], <<-93.626404,-2450.864014,28.266687>>, <<-102.872566,-2464.122803,3.520514>>, 16.250000)
|
|
//SET THE CRATE DOWN IN THIS AREA
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("AW_HAND_DROP")
|
|
CLEAR_PRINTS()
|
|
PRINT("AW_HAND_DROP",DEFAULT_GOD_TEXT_TIME,0)
|
|
SET_LABEL_AS_TRIGGERED("AW_HAND_DROP",TRUE)
|
|
ENDIF
|
|
PRINT_HELP("HD_HELP2")
|
|
bDropContainerObjective = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
ENDPROC
|
|
|
|
INT iMWShoutTimer
|
|
|
|
PROC MERRYWEATHER_WITH_DOCK_WORKER()
|
|
/*
|
|
| o ) | / \ / _| |// | | |/ \_ _| __| o \ | | | | |_ _| U | | \ / \ / _| |// | | |/ \| o \ |// __| o Y _|
|
|
| o \ |_| o ( (_| (| V V | o | || _|| / | V V | || || | | o | o | (_| (| V V ( o ) / (| _|| |_ \
|
|
|___/___|_n_|\__|_|\\\_n_/|_n_|_||___|_|\\ \_n_/|_||_||_n_| |__/ \_/ \__|_|\\\_n_/ \_/|_|\\_|\\___|_|\\__/*/
|
|
|
|
IF s_sp_blackwater_with_dockworker[0].i_event > 0
|
|
AND s_sp_blackwater_with_dockworker[0].i_event < 5
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("MERRYWEATHER SHOUT")
|
|
IF GET_RANDOM_BOOL()
|
|
IF NOT IS_PED_DEAD_OR_DYING(s_sp_blackwater_with_dockworker[1].ped)
|
|
PLAY_PED_AMBIENT_SPEECH(s_sp_blackwater_with_dockworker[1].ped,"GENERIC_INSULT_HIGH")
|
|
SET_LABEL_AS_TRIGGERED("MERRYWEATHER SHOUT",TRUE)
|
|
iMWShoutTimer = GET_GAME_TIMER()
|
|
ENDIF
|
|
ELSE
|
|
IF NOT IS_PED_DEAD_OR_DYING(s_sp_blackwater_with_dockworker[2].ped)
|
|
PLAY_PED_AMBIENT_SPEECH(s_sp_blackwater_with_dockworker[2].ped,"GENERIC_INSULT_HIGH")
|
|
SET_LABEL_AS_TRIGGERED("MERRYWEATHER SHOUT",TRUE)
|
|
iMWShoutTimer = GET_GAME_TIMER()
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF MANAGE_MY_TIMER(iMWShoutTimer,GET_RANDOM_INT_IN_RANGE(7000,14000))
|
|
SET_LABEL_AS_TRIGGERED("MERRYWEATHER SHOUT",FALSE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//BREAK OUT IF MESSED WITH
|
|
IF s_sp_blackwater_with_dockworker[0].i_event < 7
|
|
IF DOES_ENTITY_EXIST(s_sp_blackwater_with_dockworker[0].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_blackwater_with_dockworker[1].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_blackwater_with_dockworker[2].ped)
|
|
IF NOT IS_PED_INJURED(s_sp_blackwater_with_dockworker[0].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_blackwater_with_dockworker[1].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_blackwater_with_dockworker[2].ped)
|
|
IF IS_ENTITY_TOUCHING_ENTITY(PLAYER_PED_ID(),s_sp_blackwater_with_dockworker[0].ped)
|
|
OR IS_ENTITY_TOUCHING_ENTITY(PLAYER_PED_ID(),s_sp_blackwater_with_dockworker[0].ped)
|
|
OR IS_ENTITY_TOUCHING_ENTITY(PLAYER_PED_ID(),s_sp_blackwater_with_dockworker[0].ped)
|
|
STOP_SYNCHRONIZED_ENTITY_ANIM(s_sp_blackwater_with_dockworker[0].ped,SLOW_BLEND_OUT,TRUE)
|
|
TASK_SMART_FLEE_COORD(s_sp_blackwater_with_dockworker[0].ped, << -294.5143, -2497.9805, 5.0015 >>,100,-1)
|
|
STOP_SYNCHRONIZED_ENTITY_ANIM(s_sp_blackwater_with_dockworker[1].ped,SLOW_BLEND_OUT,TRUE)
|
|
TASK_COMBAT_PED(s_sp_blackwater_with_dockworker[1].ped,PLAYER_PED_ID())
|
|
STOP_SYNCHRONIZED_ENTITY_ANIM(s_sp_blackwater_with_dockworker[2].ped,SLOW_BLEND_OUT,TRUE)
|
|
TASK_COMBAT_PED(s_sp_blackwater_with_dockworker[2].ped,PLAYER_PED_ID())
|
|
s_sp_blackwater_with_dockworker[0].i_event = 7
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF bSetPiece[SS_blackwater_with_dockworker]
|
|
|
|
MANAGE_SPEECH_FOR_AMBIENT_SET_PIECE(AMBSP_BLACKWATER_WITH_DOCK_WORKER)
|
|
|
|
IF NOT DOES_ENTITY_EXIST(s_sp_blackwater_with_dockworker[0].ped)
|
|
IF eMissionStage > MISSION_STAGE_1
|
|
AND eMissionStage < MISSION_STAGE_5
|
|
REQUEST_MODEL(s_sp_blackwater_with_dockworker[0].model)
|
|
REQUEST_MODEL(s_sp_blackwater_with_dockworker[1].model)
|
|
REQUEST_MODEL(s_sp_blackwater_with_dockworker[2].model)
|
|
|
|
IF HAS_MODEL_LOADED(s_sp_blackwater_with_dockworker[0].model)
|
|
AND HAS_MODEL_LOADED(s_sp_blackwater_with_dockworker[1].model)
|
|
AND HAS_MODEL_LOADED(s_sp_blackwater_with_dockworker[2].model)
|
|
s_sp_blackwater_with_dockworker[0].ped = CREATE_SETPIECE_PED(s_sp_blackwater_with_dockworker[0].model,<< -294.5143, -2497.9805, 5.0015 >>, 87.3385, rel_group_buddies, 200, 0)
|
|
SET_ENTITY_SHOULD_FREEZE_WAITING_ON_COLLISION(s_sp_blackwater_with_dockworker[0].ped,TRUE)
|
|
SET_PED_CAPSULE(s_sp_blackwater_with_dockworker[0].ped,0.4)
|
|
s_sp_blackwater_with_dockworker[1].ped = CREATE_SETPIECE_PED(s_sp_blackwater_with_dockworker[1].model,<< -295.4659, -2496.8794, 5.0015 >>, 349.2262, rel_group_buddies, 200, 0)
|
|
SET_ENTITY_SHOULD_FREEZE_WAITING_ON_COLLISION(s_sp_blackwater_with_dockworker[1].ped,TRUE)
|
|
s_sp_blackwater_with_dockworker[2].ped = CREATE_SETPIECE_PED(s_sp_blackwater_with_dockworker[2].model,<< -294.3614, -2495.9116, 5.0015 >>, 181.5108, rel_group_buddies, 200, 0)
|
|
SET_ENTITY_SHOULD_FREEZE_WAITING_ON_COLLISION(s_sp_blackwater_with_dockworker[2].ped,TRUE)
|
|
INITIALISE_SETPIECE_GROUP(s_sp_blackwater_with_dockworker, "Blackwater with dockworker")
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
//All the enemies are triggered off the same locate, so do outside the loop.
|
|
IF bSetPiece[SS_blackwater_with_dockworker]
|
|
|
|
//PRINTSTRING("_sp_blackwater_with_dockworker[0].i_event: ")PRINTINT(s_sp_blackwater_with_dockworker[0].i_event)PRINTNL()
|
|
|
|
IF s_sp_blackwater_with_dockworker[0].i_event > 3
|
|
REPLAY_DISABLE_CAMERA_MOVEMENT_THIS_FRAME() //Fix for bug 2221950
|
|
ENDIF
|
|
|
|
SWITCH s_sp_blackwater_with_dockworker[0].i_event
|
|
//GET PEDS INTO POSITION
|
|
|
|
CASE 0
|
|
IF GET_DISTANCE_BETWEEN_COORDS(GET_ENTITY_COORDS(PLAYER_PED_ID()),S_sd_blackwater_with_dockworker.v_scene_pos) < 60
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_13@start_idle")
|
|
INIT_SYNCH_SCENE_AUDIO_WITH_POSITION("LSDHS_IG_13", S_sd_blackwater_with_dockworker.v_scene_pos)
|
|
s_sp_blackwater_with_dockworker[0].i_event ++
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 1
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_13@start_idle")
|
|
IF PREPARE_SYNCHRONIZED_AUDIO_EVENT("LSDHS_IG_13", 0)
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_13@start_idle")
|
|
IF GET_DISTANCE_BETWEEN_COORDS(GET_ENTITY_COORDS(PLAYER_PED_ID()),S_sd_blackwater_with_dockworker.v_scene_pos) < 60
|
|
IF DOES_ENTITY_EXIST(s_sp_blackwater_with_dockworker[0].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_blackwater_with_dockworker[1].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_blackwater_with_dockworker[2].ped)
|
|
IF NOT IS_PED_INJURED(s_sp_blackwater_with_dockworker[0].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_blackwater_with_dockworker[1].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_blackwater_with_dockworker[2].ped)
|
|
|
|
//CLEARING UP PREVIOUS SCENES ONCE WE GET HERE
|
|
IF NOT IS_PED_INJURED(s_sp_dock_workers_on_pipe[0].ped)
|
|
CLEAR_PED_TASKS(s_sp_dock_workers_on_pipe[0].ped)
|
|
SET_PED_AS_NO_LONGER_NEEDED(s_sp_dock_workers_on_pipe[0].ped)
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(s_sp_dock_workers_on_pipe[1].ped)
|
|
CLEAR_PED_TASKS(s_sp_dock_workers_on_pipe[1].ped)
|
|
SET_PED_AS_NO_LONGER_NEEDED(s_sp_dock_workers_on_pipe[1].ped)
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(s_sp_dock_workers_on_pipe[2].ped)
|
|
CLEAR_PED_TASKS(s_sp_dock_workers_on_pipe[2].ped)
|
|
SET_PED_AS_NO_LONGER_NEEDED(s_sp_dock_workers_on_pipe[2].ped)
|
|
ENDIF
|
|
|
|
REMOVE_ANIM_DICT("missheistdockssetup1ig_10@idle_a")
|
|
REMOVE_ANIM_DICT("missheistdockssetup1ig_10@idle_b")
|
|
REMOVE_ANIM_DICT("missheistdockssetup1ig_10@idle_c")
|
|
REMOVE_ANIM_DICT( "missheistdockssetup1ig_10@idle_d")
|
|
|
|
IF NOT IS_PED_INJURED(s_sp_dock_workers_talking[0].ped)
|
|
CLEAR_PED_TASKS(s_sp_dock_workers_talking[0].ped)
|
|
SET_PED_AS_NO_LONGER_NEEDED(s_sp_dock_workers_talking[0].ped)
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(s_sp_dock_workers_talking[1].ped)
|
|
CLEAR_PED_TASKS(s_sp_dock_workers_talking[1].ped)
|
|
SET_PED_AS_NO_LONGER_NEEDED(s_sp_dock_workers_talking[1].ped)
|
|
ENDIF
|
|
|
|
REMOVE_ANIM_DICT("missheistdockssetup1ig_5@base")
|
|
|
|
sceneBlackWater1Id = CREATE_SYNCHRONIZED_SCENE(S_sd_blackwater_with_dockworker.v_scene_pos,S_sd_blackwater_with_dockworker.v_scene_rot)
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_blackwater_with_dockworker[0].ped,sceneBlackWater1Id, "missheistdockssetup1ig_13@start_idle", "guard_beatup_startidle_dockworker", REALLY_SLOW_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_blackwater_with_dockworker[1].ped, sceneBlackWater1Id,"missheistdockssetup1ig_13@start_idle", "guard_beatup_startidle_guard1", REALLY_SLOW_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_blackwater_with_dockworker[2].ped, sceneBlackWater1Id,"missheistdockssetup1ig_13@start_idle", "guard_beatup_startidle_guard2", REALLY_SLOW_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
SET_SYNCHRONIZED_SCENE_LOOPED(sceneBlackWater1Id,TRUE)
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_13@main_action")
|
|
s_sp_blackwater_with_dockworker[0].i_event ++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
//START THE ACTION - WHEN THE PLAYER APPROACHES GET COORDS FOR CONDITION
|
|
CASE 2
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_13@main_action")
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_13@main_action")
|
|
|
|
IF VDIST(GET_ENTITY_COORDS(PLAYER_PED_ID()),S_sd_blackwater_with_dockworker.v_scene_pos) < 50
|
|
IF DOES_ENTITY_EXIST(s_sp_blackwater_with_dockworker[0].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_blackwater_with_dockworker[1].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_blackwater_with_dockworker[2].ped)
|
|
|
|
IF NOT IS_PED_INJURED(s_sp_blackwater_with_dockworker[0].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_blackwater_with_dockworker[1].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_blackwater_with_dockworker[2].ped)
|
|
IF IS_ENTITY_ON_SCREEN(s_sp_blackwater_with_dockworker[0].ped)
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(sceneBlackWater1Id)
|
|
|
|
IF GET_SYNCHRONIZED_SCENE_PHASE(sceneBlackWater1Id) > 0.99
|
|
|
|
sceneBlackWater2Id = CREATE_SYNCHRONIZED_SCENE(S_sd_blackwater_with_dockworker.v_scene_pos,S_sd_blackwater_with_dockworker.v_scene_rot)
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_blackwater_with_dockworker[0].ped,sceneBlackWater2Id, "missheistdockssetup1ig_13@main_action", "guard_beatup_mainaction_dockworker", REALLY_SLOW_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_blackwater_with_dockworker[1].ped, sceneBlackWater2Id, "missheistdockssetup1ig_13@main_action", "guard_beatup_mainaction_guard1", REALLY_SLOW_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_blackwater_with_dockworker[2].ped, sceneBlackWater2Id, "missheistdockssetup1ig_13@main_action", "guard_beatup_mainaction_guard2", REALLY_SLOW_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
SET_SYNCHRONIZED_SCENE_LOOPED(sceneBlackWater2Id,FALSE)
|
|
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_13@start_idle")
|
|
REMOVE_ANIM_DICT("missheistdockssetup1ig_13@start_idle")
|
|
ENDIF
|
|
|
|
PLAY_SYNCHRONIZED_AUDIO_EVENT(sceneBlackWater2Id)
|
|
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_13@kick_idle")
|
|
|
|
//s_sp_blackwater_with_dockworker[0].i_event ++
|
|
s_sp_blackwater_with_dockworker[0].i_event = 4
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
//BEGIN KICKING
|
|
CASE 3
|
|
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_13@kick_idle")
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_13@kick_idle")
|
|
IF DOES_ENTITY_EXIST(s_sp_blackwater_with_dockworker[0].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_blackwater_with_dockworker[1].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_blackwater_with_dockworker[2].ped)
|
|
IF NOT IS_PED_INJURED(s_sp_blackwater_with_dockworker[0].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_blackwater_with_dockworker[1].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_blackwater_with_dockworker[2].ped)
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(sceneBlackWater2Id)
|
|
IF GET_SYNCHRONIZED_SCENE_PHASE(sceneBlackWater2Id) >= 1
|
|
sceneBlackWater3Id = CREATE_SYNCHRONIZED_SCENE(S_sd_blackwater_with_dockworker.v_scene_pos,S_sd_blackwater_with_dockworker.v_scene_rot)
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_blackwater_with_dockworker[0].ped,sceneBlackWater3Id, "missheistdockssetup1ig_13@kick_idle", "guard_beatup_kickidle_dockworker", REALLY_SLOW_BLEND_IN, INSTANT_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_blackwater_with_dockworker[1].ped, sceneBlackWater3Id,"missheistdockssetup1ig_13@kick_idle", "guard_beatup_kickidle_guard1", REALLY_SLOW_BLEND_IN, INSTANT_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_blackwater_with_dockworker[2].ped, sceneBlackWater3Id, "missheistdockssetup1ig_13@kick_idle", "guard_beatup_kickidle_guard2", REALLY_SLOW_BLEND_IN, INSTANT_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
SET_SYNCHRONIZED_SCENE_LOOPED(sceneBlackWater3Id,FALSE)
|
|
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_13@main_action")
|
|
REMOVE_ANIM_DICT( "missheistdockssetup1ig_13@main_action")
|
|
ENDIF
|
|
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_13@exit")
|
|
s_sp_blackwater_with_dockworker[0].i_event ++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
//EXIT BEATUP
|
|
CASE 4
|
|
|
|
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_13@exit")
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_13@exit")
|
|
IF DOES_ENTITY_EXIST(s_sp_blackwater_with_dockworker[0].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_blackwater_with_dockworker[1].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_blackwater_with_dockworker[2].ped)
|
|
IF NOT IS_PED_INJURED(s_sp_blackwater_with_dockworker[0].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_blackwater_with_dockworker[1].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_blackwater_with_dockworker[2].ped)
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(sceneBlackWater2Id)
|
|
//IF IS_SYNCHRONIZED_SCENE_RUNNING(sceneBlackWater3Id)
|
|
//IF GET_SYNCHRONIZED_SCENE_PHASE(sceneBlackWater3Id) > 0.99
|
|
IF GET_SYNCHRONIZED_SCENE_PHASE(sceneBlackWater2Id) > 0.99
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_13@kick_idle")
|
|
REMOVE_ANIM_DICT("missheistdockssetup1ig_13@kick_idle")
|
|
ENDIF
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_13@main_action")
|
|
REMOVE_ANIM_DICT( "missheistdockssetup1ig_13@main_action")
|
|
ENDIF
|
|
sceneBlackWater4Id = CREATE_SYNCHRONIZED_SCENE(S_sd_blackwater_with_dockworker.v_scene_pos,S_sd_blackwater_with_dockworker.v_scene_rot)
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_blackwater_with_dockworker[0].ped,sceneBlackWater4Id, "missheistdockssetup1ig_13@exit", "guard_beatup_exit_dockworker", REALLY_SLOW_BLEND_IN, INSTANT_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_blackwater_with_dockworker[1].ped, sceneBlackWater4Id,"missheistdockssetup1ig_13@exit", "guard_beatup_exit_guard1", REALLY_SLOW_BLEND_IN, SLOW_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_blackwater_with_dockworker[2].ped, sceneBlackWater4Id, "missheistdockssetup1ig_13@exit", "guard_beatup_exit_guard2", REALLY_SLOW_BLEND_IN, SLOW_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
SET_SYNCHRONIZED_SCENE_LOOPED(sceneBlackWater4Id,FALSE)
|
|
|
|
s_sp_blackwater_with_dockworker[0].i_event ++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
//FINISH UP - CLEAR TASKS ECT
|
|
CASE 5
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_13@exit")
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_13@exit")
|
|
IF DOES_ENTITY_EXIST(s_sp_blackwater_with_dockworker[0].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_blackwater_with_dockworker[1].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_blackwater_with_dockworker[2].ped)
|
|
IF NOT IS_PED_INJURED(s_sp_blackwater_with_dockworker[0].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_blackwater_with_dockworker[1].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_blackwater_with_dockworker[2].ped)
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(sceneBlackWater4Id)
|
|
IF GET_SYNCHRONIZED_SCENE_PHASE(sceneBlackWater4Id) > 0.99
|
|
|
|
sceneBlackWater5Id = CREATE_SYNCHRONIZED_SCENE(S_sd_blackwater_with_dockworker.v_scene_pos,S_sd_blackwater_with_dockworker.v_scene_rot)
|
|
TASK_SYNCHRONIZED_SCENE (s_sp_blackwater_with_dockworker[0].ped,sceneBlackWater5Id, "missheistdockssetup1ig_13@exit", "GUARD_Beatup_RollIdle_DockWorker", REALLY_SLOW_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
SET_SYNCHRONIZED_SCENE_LOOPED(sceneBlackWater5Id,TRUE)
|
|
//CLEAR_PED_TASKS(s_sp_blackwater_with_dockworker[1].ped)
|
|
STOP_SYNCHRONIZED_ENTITY_ANIM(s_sp_blackwater_with_dockworker[1].ped,SLOW_BLEND_OUT,TRUE)
|
|
STOP_SYNCHRONIZED_ENTITY_ANIM(s_sp_blackwater_with_dockworker[2].ped,SLOW_BLEND_OUT,TRUE)
|
|
|
|
OPEN_SEQUENCE_TASK(seqMain)
|
|
TASK_LOOK_AT_ENTITY(NULL,PLAYER_PED_ID(),4000)
|
|
TASK_PAUSE(NULL,1000)
|
|
TASK_FOLLOW_NAV_MESH_TO_COORD(NULL, <<-116.1250, -2386.3333, 5.0000>>, PEDMOVE_WALK, DEFAULT_TIME_NEVER_WARP)
|
|
TASK_WANDER_STANDARD(NULL)
|
|
CLOSE_SEQUENCE_TASK(seqMain)
|
|
TASK_PERFORM_SEQUENCE(s_sp_blackwater_with_dockworker[1].ped,seqMain)
|
|
CLEAR_SEQUENCE_TASK(seqMain)
|
|
IF NOT IS_PED_INJURED(s_sp_blackwater_with_dockworker[1].ped)
|
|
SET_PED_CONFIG_FLAG(s_sp_blackwater_with_dockworker[1].ped,PCF_KeepRelationshipGroupAfterCleanUp,TRUE)
|
|
ENDIF
|
|
SET_PED_KEEP_TASK(s_sp_blackwater_with_dockworker[1].ped,TRUE)
|
|
SET_PED_AS_NO_LONGER_NEEDED(s_sp_blackwater_with_dockworker[1].ped)
|
|
|
|
|
|
|
|
//CLEAR_PED_TASKS(s_sp_blackwater_with_dockworker[2].ped)
|
|
OPEN_SEQUENCE_TASK(seqMain)
|
|
TASK_FOLLOW_NAV_MESH_TO_COORD(NULL, <<-68.8121, -2431.8848, 5.0005>>, PEDMOVE_WALK, DEFAULT_TIME_NEVER_WARP)
|
|
TASK_WANDER_STANDARD(NULL)
|
|
CLOSE_SEQUENCE_TASK(seqMain)
|
|
TASK_PERFORM_SEQUENCE(s_sp_blackwater_with_dockworker[2].ped,seqMain)
|
|
CLEAR_SEQUENCE_TASK(seqMain)
|
|
IF NOT IS_PED_INJURED(s_sp_blackwater_with_dockworker[2].ped)
|
|
SET_PED_CONFIG_FLAG(s_sp_blackwater_with_dockworker[2].ped,PCF_KeepRelationshipGroupAfterCleanUp,TRUE)
|
|
ENDIF
|
|
SET_PED_KEEP_TASK(s_sp_blackwater_with_dockworker[2].ped,TRUE)
|
|
SET_PED_AS_NO_LONGER_NEEDED(s_sp_blackwater_with_dockworker[2].ped)
|
|
|
|
|
|
s_sp_blackwater_with_dockworker[0].i_event ++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 6
|
|
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_13@exit")
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_13@exit")
|
|
IF DOES_ENTITY_EXIST(s_sp_blackwater_with_dockworker[0].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_blackwater_with_dockworker[1].ped)
|
|
AND DOES_ENTITY_EXIST(s_sp_blackwater_with_dockworker[2].ped)
|
|
IF NOT IS_PED_INJURED(s_sp_blackwater_with_dockworker[0].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_blackwater_with_dockworker[1].ped)
|
|
AND NOT IS_PED_INJURED(s_sp_blackwater_with_dockworker[2].ped)
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(sceneBlackWater5Id)
|
|
IF GET_SYNCHRONIZED_SCENE_PHASE(sceneBlackWater5Id) > 0.99
|
|
STOP_SYNCHRONIZED_ENTITY_ANIM(s_sp_blackwater_with_dockworker[0].ped,SLOW_BLEND_OUT,TRUE)
|
|
CLEAR_PED_TASKS(s_sp_blackwater_with_dockworker[0].ped)
|
|
SET_PED_AS_NO_LONGER_NEEDED(s_sp_blackwater_with_dockworker[0].ped)
|
|
s_sp_blackwater_with_dockworker[0].i_event ++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
//
|
|
BREAK
|
|
|
|
CASE 7
|
|
REMOVE_ANIM_DICT("missheistdockssetup1ig_13@exit")
|
|
s_sp_blackwater_with_dockworker[0].i_event ++
|
|
bSetPiece[SS_blackwater_with_dockworker] = FALSE
|
|
|
|
IF DOES_ENTITY_EXIST(s_sp_blackwater_with_dockworker[0].ped)
|
|
SET_PED_AS_NO_LONGER_NEEDED(s_sp_blackwater_with_dockworker[0].ped)
|
|
ENDIF
|
|
IF DOES_ENTITY_EXIST(s_sp_blackwater_with_dockworker[1].ped)
|
|
SET_PED_AS_NO_LONGER_NEEDED(s_sp_blackwater_with_dockworker[1].ped)
|
|
ENDIF
|
|
IF DOES_ENTITY_EXIST(s_sp_blackwater_with_dockworker[2].ped)
|
|
SET_PED_AS_NO_LONGER_NEEDED(s_sp_blackwater_with_dockworker[2].ped)
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
ELSE
|
|
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
INT iSafetyTimer
|
|
BOOL bGetSafeTimer
|
|
|
|
//IS_ANY_ENTITY_ATTACHED_TO_FORKLIFT_FORKS
|
|
//DETACH_PALLET_FROM_FORKLIFT_FORKS.
|
|
//IS_ENTITY_ATTACHED_TO_FORKLIFT_FORKS
|
|
//PURPOSE: Trevor gets in the handler and does the tasks
|
|
PROC MISSION_STAGE_5_PROC()
|
|
|
|
IF NOT IS_ENTITY_DEAD(vehHandler)
|
|
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehHandler)
|
|
SET_AMBIENT_VEHICLE_RANGE_MULTIPLIER_THIS_FRAME(2.0)
|
|
SET_AMBIENT_PED_RANGE_MULTIPLIER_THIS_FRAME(2.0)
|
|
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)
|
|
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DH_1_HANDLER_START")
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehHandler)
|
|
IF IS_AUDIO_SCENE_ACTIVE("DH_1_FOLLOW_FLOYD_SEE_FREIGHTER")
|
|
STOP_AUDIO_SCENE("DH_1_FOLLOW_FLOYD_SEE_FREIGHTER")
|
|
ELSE
|
|
START_AUDIO_SCENE("DH_1_HANDLER_START")
|
|
SET_LABEL_AS_TRIGGERED("DH_1_HANDLER_START",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(s_sp_blackwater_with_dockworker[0].ped)
|
|
IF NOT IS_PED_INJURED(s_sp_blackwater_with_dockworker[0].ped)
|
|
IF VDIST(GET_ENTITY_COORDS(s_sp_blackwater_with_dockworker[0].ped),GET_ENTITY_COORDS(PLAYER_PED_ID())) > 5
|
|
IF NOT IS_ENTITY_ON_SCREEN(s_sp_blackwater_with_dockworker[0].ped)
|
|
DELETE_PED(s_sp_blackwater_with_dockworker[0].ped)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF s_sp_blackwater_with_dockworker[0].i_event < 6
|
|
IF DOES_ENTITY_EXIST(s_sp_blackwater_with_dockworker[1].ped)
|
|
IF NOT IS_PED_INJURED(s_sp_blackwater_with_dockworker[1].ped)
|
|
IF VDIST(GET_ENTITY_COORDS(s_sp_blackwater_with_dockworker[1].ped),GET_ENTITY_COORDS(PLAYER_PED_ID())) > 5
|
|
IF NOT IS_ENTITY_ON_SCREEN(s_sp_blackwater_with_dockworker[1].ped)
|
|
DELETE_PED(s_sp_blackwater_with_dockworker[1].ped)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(s_sp_blackwater_with_dockworker[2].ped)
|
|
IF NOT IS_PED_INJURED(s_sp_blackwater_with_dockworker[2].ped)
|
|
IF VDIST(GET_ENTITY_COORDS(s_sp_blackwater_with_dockworker[2].ped),GET_ENTITY_COORDS(PLAYER_PED_ID())) > 5
|
|
IF NOT IS_ENTITY_ON_SCREEN(s_sp_blackwater_with_dockworker[2].ped)
|
|
DELETE_PED(s_sp_blackwater_with_dockworker[2].ped)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("SET UP PHYSICS FOR 0")
|
|
IF DOES_ENTITY_EXIST(objHandlerContainer[0])
|
|
IF DOES_ENTITY_HAVE_PHYSICS(objHandlerContainer[0])
|
|
SET_OBJECT_PHYSICS_PARAMS(objHandlerContainer[0],15000,-1,<<0,0,0>>,<<0,0,0>>)
|
|
SET_LABEL_AS_TRIGGERED("SET UP PHYSICS FOR 0",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("SET UP PHYSICS FOR 1")
|
|
IF DOES_ENTITY_EXIST(objHandlerContainer[1])
|
|
IF DOES_ENTITY_HAVE_PHYSICS(objHandlerContainer[1])
|
|
SET_OBJECT_PHYSICS_PARAMS(objHandlerContainer[1],15000,-1,<<0,0,0>>,<<0,0,0>>)
|
|
SET_LABEL_AS_TRIGGERED("SET UP PHYSICS FOR 1",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
MANAGE_FLOYD_ATTACHMENT()
|
|
CREATE_THE_DOCKS_STUFF()
|
|
SETUP_MISSION_REQUIREMENT_WITH_LOCATION(REQ_CONTAINERS_FOR_HANDLER_SECTION_START,<<0,0,0>>)
|
|
|
|
IF DOES_ENTITY_EXIST(objHandlerContainer[0])
|
|
AND DOES_ENTITY_EXIST(objHandlerContainer[1])
|
|
MANAGE_FLOYD_ACTIVITY()
|
|
ELSE
|
|
CREATE_THE_DOCKS_STUFF()
|
|
ENDIF
|
|
|
|
IF iProgress > 0
|
|
IF bIsJumpingDirectlyToStage = TRUE
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(sceneHandlerA1)
|
|
INIT_STAGE()
|
|
bIsJumpingDirectlyToStage = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
SWITCH iProgress
|
|
|
|
CASE 0//Create objective specific items- print objective, add blips etc
|
|
IF SETUP_PEDS_FOR_DIALOGUE()
|
|
|
|
IF IS_SCREEN_FADED_OUT()
|
|
MANAGE_PLAYER_OUTFIT()
|
|
ENDIF
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
IF NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehHandler)
|
|
SAFE_ADD_BLIP_VEHICLE(veh_blip,vehHandler,TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
SET_REPLAY_MID_MISSION_STAGE_WITH_NAME(4,"Handler Work")
|
|
bGodText = FALSE
|
|
iFloydHauler = 0
|
|
iMissionDialogue = 9
|
|
bGetSafeTimer = FALSE
|
|
|
|
|
|
IF DOES_ENTITY_EXIST(vehHandler)
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
SET_VEHICLE_IS_CONSIDERED_BY_PLAYER(vehHandler,TRUE)
|
|
FREEZE_ENTITY_POSITION(vehHandler,FALSE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
REMOVE_PED_FROM_GROUP(pedFloyd)
|
|
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedFloyd, TRUE)
|
|
ENDIF
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(vehMission)
|
|
SET_VEHICLE_IS_CONSIDERED_BY_PLAYER(vehMission, FALSE)
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(pedDockWorker[12])
|
|
IF NOT IS_PED_INJURED(pedDockWorker[12])
|
|
DELETE_PED(pedDockWorker[12])
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(pedDockWorker[7])
|
|
IF NOT IS_PED_INJURED(pedDockWorker[7])
|
|
TASK_START_SCENARIO_IN_PLACE(pedDockWorker[7],"WORLD_HUMAN_AA_SMOKE")
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(pedDockWorker[13])
|
|
IF NOT IS_PED_INJURED(pedDockWorker[13])
|
|
TASK_START_SCENARIO_IN_PLACE(pedDockWorker[13],"WORLD_HUMAN_CLIPBOARD")
|
|
ENDIF
|
|
ENDIF
|
|
|
|
SET_PED_COMBAT_ATTRIBUTES(PLAYER_PED_ID(),CA_DO_DRIVEBYS,FALSE)
|
|
|
|
REQUEST_IPL("pcranecont")
|
|
SET_ALL_RANDOM_PEDS_FLEE(PLAYER_ID(), TRUE)
|
|
|
|
IF NOT IS_ENTITY_DEAD(vehHandler)
|
|
IF NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehHandler)
|
|
IF bIsJumpingDirectlyToStage = FALSE
|
|
IF bDialogue = FALSE
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_07h", CONV_PRIORITY_MEDIUM)
|
|
iHandlerSection = 0
|
|
bDialogue = FALSE
|
|
iProgress++
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("AW_HAND_TASK")
|
|
PRINT("AW_HAND_TASK",DEFAULT_GOD_TEXT_TIME,0)
|
|
SET_LABEL_AS_TRIGGERED("AW_HAND_TASK",TRUE)
|
|
ENDIF
|
|
iHandlerSection = 0
|
|
bDialogue = FALSE
|
|
iProgress++
|
|
ENDIF
|
|
ELSE
|
|
iHandlerSection = 0
|
|
bDialogue = FALSE
|
|
iProgress++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
CASE 1
|
|
|
|
IF NOT IS_ENTITY_DEAD(vehHandler)
|
|
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehHandler)
|
|
IF IS_THIS_PRINT_BEING_DISPLAYED("AW_GETIN_HAND")
|
|
CLEAR_PRINTS()
|
|
ENDIF
|
|
IF DOES_BLIP_EXIST(veh_blip)
|
|
REMOVE_BLIP(veh_blip)
|
|
ENDIF
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_07ha", CONV_PRIORITY_MEDIUM)
|
|
REPLAY_RECORD_BACK_FOR_TIME(2.0, 10.0, REPLAY_IMPORTANCE_HIGHEST)
|
|
INFORM_MISSION_STATS_SYSTEM_OF_TIME_WINDOW_OPEN(DH1_FORKLIFT_TIME)
|
|
bToggleObjective = FALSE
|
|
bGodText = FALSE
|
|
bHelpText = FALSE
|
|
bInitialGodText = FALSE
|
|
iProgress++
|
|
ENDIF
|
|
ELSE
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF bGodText = FALSE
|
|
PRINT_GOD_TEXT("AW_GETIN_HAND")
|
|
bGodText = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF bGodText = TRUE
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_Act")
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_Act", CONV_PRIORITY_MEDIUM)
|
|
SET_LABEL_AS_TRIGGERED("DS1_Act", TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
|
|
BREAK
|
|
|
|
CASE 2
|
|
MANAGE_HANDLER_SECTION()
|
|
|
|
IF bInitialGodText = FALSE
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehHandler)
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
PRINT_GOD_TEXT("AW_HAND_TASK")
|
|
bInitialGodText = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
IF bCarryingContainer = FALSE
|
|
IF IS_ENTITY_IN_ANGLED_AREA(objHandlerContainer[0], <<-92.523666,-2461.800049,8.267201>>, <<-103.638123,-2453.989258,4.520514>>, 14.7500000)
|
|
AND IS_ENTITY_IN_ANGLED_AREA(objHandlerContainer[1], <<-92.523666,-2461.800049,8.267201>>, <<-103.638123,-2453.989258,4.520514>>, 14.7500000)
|
|
IF bGetSafeTimer = FALSE
|
|
iSafetyTimer = GET_GAME_TIMER()
|
|
bGetSafeTimer = TRUE
|
|
ENDIF
|
|
IF bGetSafeTimer = TRUE
|
|
IF HAS_LABEL_BEEN_TRIGGERED("CONTAINER LAND")
|
|
OR MANAGE_MY_TIMER(iSafetyTimer,1000)
|
|
IF IS_HELP_MESSAGE_BEING_DISPLAYED()
|
|
CLEAR_HELP()
|
|
ENDIF
|
|
CLEAN_OBJECTIVE_BLIP_DISPLAY()
|
|
SAFE_REMOVE_BLIP(blipHaulerLoadingArea)
|
|
INFORM_MISSION_STATS_SYSTEM_OF_TIME_WINDOW_CLOSED()
|
|
iStaggerTimer = GET_GAME_TIMER()
|
|
KILL_FACE_TO_FACE_CONVERSATION()
|
|
iProgress++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 3
|
|
IF MANAGE_MY_TIMER(iStaggerTimer,2000)
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_08a", CONV_PRIORITY_MEDIUM)
|
|
IF NOT IS_PED_INJURED(pedDockWorker[14])
|
|
OPEN_SEQUENCE_TASK(seqMain)
|
|
TASK_FOLLOW_NAV_MESH_TO_COORD(NULL, << -57.3390, -2448.3562, 6.2399 >>,1.0)
|
|
TASK_ACHIEVE_HEADING(NULL,144.9673)
|
|
TASK_STAND_STILL(NULL,2000)
|
|
TASK_TURN_PED_TO_FACE_ENTITY(NULL,PLAYER_PED_ID())
|
|
TASK_START_SCENARIO_IN_PLACE(NULL,"WORLD_HUMAN_AA_COFFEE",0,TRUE)
|
|
CLOSE_SEQUENCE_TASK(seqMain)
|
|
TASK_PERFORM_SEQUENCE(pedDockWorker[14], seqMain)
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(pedSecurity)
|
|
SET_PED_AS_NO_LONGER_NEEDED(pedSecurity)
|
|
ENDIF
|
|
|
|
REPLAY_RECORD_BACK_FOR_TIME(5.0, 10.0, REPLAY_IMPORTANCE_HIGHEST)
|
|
|
|
iProgress++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 4
|
|
IF PRE_STREAM_MISSION_STAGE()
|
|
bIsJumpingDirectlyToStage = FALSE
|
|
REMOVE_ANIM_DICT("missheistdockssetup1ig_12@idle_a")
|
|
SAFE_REMOVE_BLIP(blipHandlerContainers[0])
|
|
SAFE_REMOVE_BLIP(blipHandlerContainers[1])
|
|
SAFE_REMOVE_BLIP(blipHandlerContainers[2])
|
|
|
|
RESET_MISSION_STAGE_VARIABLES()
|
|
ADVANCE_MISSION_STAGE()
|
|
ENDIF
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Play the crane mocap
|
|
FUNC BOOL RUN_CRANE_CUTSCENE()
|
|
|
|
bcutsceneplaying = TRUE
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
IF IS_CUTSCENE_ACTIVE()
|
|
IF IS_KEYBOARD_KEY_JUST_PRESSED(KEY_J)
|
|
STOP_CUTSCENE()
|
|
REMOVE_CUTSCENE()
|
|
WHILE IS_CUTSCENE_ACTIVE()
|
|
WAIT(0)
|
|
ENDWHILE
|
|
ENDIF
|
|
ENDIF
|
|
#ENDIF
|
|
|
|
IF e_section_stage = SECTION_STAGE_SETUP
|
|
IF b_is_jumping_directly_to_stage
|
|
CONTROL_FADE_IN(500)
|
|
b_is_jumping_directly_to_stage = FALSE
|
|
ELSE
|
|
IF i_current_event = 0
|
|
PRINTSTRING("PLAYING CRANE CUTSCNE- 1")//PRINTNL()
|
|
bcutsceneplaying = TRUE
|
|
REQUEST_CUTSCENE("LSDHS_MCS_1")
|
|
REQUEST_MODEL(PROP_PENCIL_01)
|
|
REQUEST_MODEL(P_CS_CLIPBOARD)
|
|
i_current_event++
|
|
ELIF i_current_event = 1
|
|
|
|
IF HAS_CUTSCENE_LOADED()
|
|
IF IS_SCREEN_FADED_OUT()
|
|
DO_SCREEN_FADE_IN(500)
|
|
ELSE
|
|
WAIT(0)
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
|
|
REGISTER_ENTITY_FOR_CUTSCENE(PLAYER_PED_ID(), "Trevor", CU_ANIMATE_EXISTING_SCRIPT_ENTITY)
|
|
ENDIF
|
|
|
|
SET_CUTSCENE_FADE_VALUES(FALSE,FALSE,FALSE,FALSE)
|
|
|
|
//START_CUTSCENE()
|
|
|
|
//Wait a couple of frames before clearing/warping stuff, so the cutscene is active first.
|
|
WAIT(0)
|
|
|
|
PRINTSTRING("RUNNING CRANE CUTSCENE - 3")//PRINTNL()
|
|
SET_SCRIPTS_SAFE_FOR_CUTSCENE(TRUE)
|
|
|
|
b_skipped_mocap = FALSE
|
|
i_current_event = 0
|
|
e_section_stage = SECTION_STAGE_RUNNING
|
|
ELSE
|
|
PRINTSTRING("CUTSCENE LOADING")//PRINTNL()
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF e_section_stage = SECTION_STAGE_RUNNING
|
|
IF NOT b_skipped_mocap
|
|
IF IS_CUTSCENE_SKIP_BUTTON_PRESSED()
|
|
b_skipped_mocap = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
PRINTSTRING("RUNNING CRANE CUTSCENE - 3")//PRINTNL()
|
|
|
|
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
|
|
IF CAN_SET_EXIT_STATE_FOR_REGISTERED_ENTITY("Trevor")
|
|
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
SET_ENTITY_COORDS(pedFloyd,<<-114.33, -2426.18, 6.00>>)
|
|
SET_ENTITY_HEADING(pedFloyd,-4.84)
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(pedDockWorker[12])
|
|
DELETE_PED(pedDockWorker[12])
|
|
ENDIF
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
SET_ENTITY_COORDS(vehHandler,<< -166.8165, -2460.6479, 5.2973 >>)
|
|
ENDIF
|
|
|
|
IF NOT DOES_CAM_EXIST(cam_interp)
|
|
cam_interp = CREATE_CAM("DEFAULT_SCRIPTED_CAMERA", TRUE)
|
|
SET_CAM_PARAMS(cam_interp,<< -63.5991, -2390.1675, 23.4720 >>, << -20.2428, 0.0000, -154.0613 >>,45.0193)
|
|
RENDER_SCRIPT_CAMS(TRUE,FALSE)
|
|
SET_CAM_ACTIVE(cam_interp,TRUE)
|
|
ENDIF
|
|
|
|
SET_ENTITY_VISIBLE(PLAYER_PED_ID(),FALSE)
|
|
REMOVE_IPL("pcranecont")
|
|
SWITCH_CRANE_VISIBILITY(TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF HAS_CUTSCENE_FINISHED()
|
|
e_section_stage = SECTION_STAGE_CLEANUP
|
|
ENDIF
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
IF IS_CUTSCENE_ACTIVE()
|
|
IF IS_KEYBOARD_KEY_JUST_PRESSED(KEY_J)
|
|
STOP_CUTSCENE()
|
|
REMOVE_CUTSCENE()
|
|
WHILE IS_CUTSCENE_ACTIVE()
|
|
WAIT(0)
|
|
ENDWHILE
|
|
ENDIF
|
|
ENDIF
|
|
#ENDIF
|
|
|
|
ENDIF
|
|
|
|
IF e_section_stage = SECTION_STAGE_CLEANUP
|
|
|
|
IF b_skipped_mocap
|
|
//If the player skipped the mocap the peds need to be warped.
|
|
WHILE IS_CUTSCENE_ACTIVE()
|
|
WAIT(0)
|
|
ENDWHILE
|
|
ENDIF
|
|
|
|
//Setup buddy relationship groups etc.
|
|
INFORM_MISSION_STATS_SYSTEM_OF_INGAME_CUTSCENE_END()
|
|
SET_SCRIPTS_SAFE_FOR_CUTSCENE(FALSE)
|
|
SET_PLAYER_CONTROL(PLAYER_ID(),TRUE)
|
|
i_current_event = 0
|
|
RETURN TRUE
|
|
bcutsceneplaying = FALSE
|
|
ENDIF
|
|
|
|
IF e_section_stage = SECTION_STAGE_SKIP
|
|
CONTROL_FADE_OUT(500)
|
|
STOP_CUTSCENE()
|
|
b_skipped_mocap = TRUE
|
|
e_section_stage = SECTION_STAGE_RUNNING
|
|
ENDIF
|
|
|
|
RETURN FALSE
|
|
|
|
ENDFUNC
|
|
|
|
/*
|
|
As discussed we want to wait until the get off has finished playing.
|
|
|
|
If you can query this anim
|
|
"get_off_Bottom_Front_Stand"
|
|
|
|
The get in animation should be played around phase 0.6.
|
|
That phase is quite aggressive so you might need to push it a bit further back.
|
|
Give me a shout when you are doing this so I can take a look.
|
|
*/
|
|
|
|
//PURPOSE: Trevor follows floyd to the Crane
|
|
STRING sGodText
|
|
|
|
PROC MISSION_STAGE_6_PROC()
|
|
|
|
MANAGE_floyd_ACTIVITY()
|
|
CREATE_THE_DOCKS_STUFF()
|
|
MANAGE_FLOYD_ATTACHMENT()
|
|
|
|
IF iProgress > 0
|
|
AND iProgress < 8
|
|
REQUEST_WAYPOINT_RECORDING("cranassist")
|
|
IF GET_IS_WAYPOINT_RECORDING_LOADED("cranassist")
|
|
USE_WAYPOINT_RECORDING_AS_ASSISTED_MOVEMENT_ROUTE("cranassist",TRUE,1,0.5)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//Set the ped on the crane variation
|
|
IF DOES_ENTITY_EXIST(pedDockWorker[14])
|
|
AND NOT bPedDockCraneVariation
|
|
PRINTLN("PED DOCK VARIATION SET!")
|
|
SET_PED_COMPONENT_VARIATION(pedDockWorker[14], INT_TO_ENUM(PED_COMPONENT,0), 0, 1, 0) //(head)
|
|
SET_PED_COMPONENT_VARIATION(pedDockWorker[14], INT_TO_ENUM(PED_COMPONENT,3), 0, 0, 0) //(uppr)
|
|
SET_PED_COMPONENT_VARIATION(pedDockWorker[14], INT_TO_ENUM(PED_COMPONENT,4), 0, 1, 0) //(lowr)
|
|
SET_PED_COMPONENT_VARIATION(pedDockWorker[14], INT_TO_ENUM(PED_COMPONENT,8), 1, 0, 0) //(accs)
|
|
bPedDockCraneVariation = TRUE
|
|
ENDIF
|
|
|
|
|
|
IF iProgress < 5
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("GOT TO CABIN EARLY")
|
|
IF NOT IS_PED_CLIMBING(PLAYER_PED_ID())
|
|
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-51.946228,-2414.439209,20.533628>>, <<-51.964249,-2413.213867,22.335625>>, 1.750000)
|
|
iProgress = 5
|
|
SET_LABEL_AS_TRIGGERED("GOT TO CABIN EARLY",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
SWITCH iProgress
|
|
|
|
CASE 0//Create objective specific items- print objective, add blips etc
|
|
|
|
IF SETUP_PEDS_FOR_DIALOGUE()
|
|
|
|
s_crane.f_crane_offset = 0.297
|
|
s_crane.f_crane_vel = 0.0
|
|
vSpreaderPosition = <<-53.02, -2416.04, 14.75>>
|
|
WHILE NOT SETUP_MISSION_REQUIREMENT(REQ_CRANE)
|
|
WAIT(0)
|
|
REPLAY_CHECK_FOR_EVENT_THIS_FRAME("M_ThePortOfLSHeistSetup")
|
|
ENDWHILE
|
|
|
|
IF bIsJumpingDirectlyToStage = TRUE
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
sceneHandlerA1 = CREATE_SYNCHRONIZED_SCENE(<<0,0,0>>, <<0,0,0>>)
|
|
TASK_SYNCHRONIZED_SCENE (pedFloyd, sceneHandlerA1, "missheistdockssetup1ig_14", "floyd_lets_get_going", NORMAL_BLEND_IN, NORMAL_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS,RBF_PLAYER_IMPACT )
|
|
ATTACH_SYNCHRONIZED_SCENE_TO_ENTITY(sceneHandlerA1,vehHandler,-1)
|
|
SET_ENTITY_NO_COLLISION_ENTITY(pedFloyd,vehHandler,TRUE)
|
|
iFloydHauler = 4
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
SWITCH_CRANE_VISIBILITY(TRUE)
|
|
iMissionDialogue = 11
|
|
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedFloyd, TRUE)
|
|
//CLEAR_PED_TASKS(pedFloyd)
|
|
ENDIF
|
|
|
|
REMOVE_CUTSCENE()
|
|
|
|
SET_REPLAY_MID_MISSION_STAGE_WITH_NAME(5,"Follow Floyd to crane")
|
|
IF IS_SCREEN_FADED_OUT()
|
|
WHILE NOT SETUP_MISSION_REQUIREMENT(REQ_CRANE_CONTAINERS)
|
|
WAIT(0)
|
|
REPLAY_CHECK_FOR_EVENT_THIS_FRAME("M_ThePortOfLSHeistSetup")
|
|
ENDWHILE
|
|
MANAGE_PLAYER_OUTFIT()
|
|
ENDIF
|
|
|
|
REMOVE_IPL("pcranecont")
|
|
SET_ALL_RANDOM_PEDS_FLEE(PLAYER_ID(), TRUE)
|
|
|
|
IF DOES_ENTITY_EXIST(pedDockWorker[12])
|
|
DELETE_PED(pedDockWorker[12])
|
|
ENDIF
|
|
|
|
SET_PED_COMBAT_ATTRIBUTES(PLAYER_PED_ID(),CA_DO_DRIVEBYS,FALSE)
|
|
|
|
sGodText = "AW_CLIMB_CRA"
|
|
iProgress++
|
|
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 1
|
|
INIT_STAGE()
|
|
iProgress++
|
|
BREAK
|
|
|
|
CASE 2
|
|
|
|
IF IS_PLAYER_AT_LOCATION_ANY_MEANS(sLocatesData,<<-49.8470, -2404.4475, 5.0006>>,<<0.1,0.1,LOCATE_SIZE_HEIGHT>>,TRUE,"AW_DRIVE_TO_CRA")
|
|
|
|
ELSE
|
|
IF DOES_BLIP_EXIST(sLocatesData.LocationBlip)
|
|
SET_BLIP_ROUTE(sLocatesData.LocationBlip,FALSE)
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehHandler)
|
|
CLEAR_MISSION_LOCATE_STUFF(sLocatesData)
|
|
REPLAY_RECORD_BACK_FOR_TIME(3.0, 3.0, REPLAY_IMPORTANCE_HIGHEST)
|
|
iProgress = 3
|
|
ENDIF
|
|
|
|
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-36.008926,-2398.947754,5.000000>>, <<-65.415092,-2398.950684,15.036324>>, 35.000000)
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehHandler)
|
|
SET_PLAYER_CONTROL(PLAYER_ID(),FALSE)
|
|
REPLAY_RECORD_BACK_FOR_TIME(3.0, 3.0, REPLAY_IMPORTANCE_HIGHEST)
|
|
iProgress++
|
|
ELSE
|
|
REPLAY_RECORD_BACK_FOR_TIME(3.0, 3.0, REPLAY_IMPORTANCE_HIGHEST)
|
|
CLEAR_MISSION_LOCATE_STUFF(sLocatesData)
|
|
iProgress = 3
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
CASE 3
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehHandler)
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
IF iFloydHauler = 5
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(sceneHandlerA1)
|
|
IF GET_SYNCHRONIZED_SCENE_PHASE(sceneHandlerA1) > 0.6
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
TASK_LEAVE_VEHICLE(PLAYER_PED_ID(),vehHandler)
|
|
SET_ENTITY_NO_COLLISION_ENTITY(pedFloyd,vehHandler,TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
CLEAR_MISSION_LOCATE_STUFF(sLocatesData)
|
|
SET_VEHICLE_IS_CONSIDERED_BY_PLAYER(vehHandler,FALSE)
|
|
SET_PLAYER_CONTROL(PLAYER_ID(),TRUE)
|
|
iProgress++
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
|
|
CASE 4
|
|
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DH_1_CLIMB_UP_CRANE")
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
IF NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehHandler)
|
|
IF IS_AUDIO_SCENE_ACTIVE("DH_1_HANDLER_START")
|
|
STOP_AUDIO_SCENE("DH_1_HANDLER_START")
|
|
ELSE
|
|
START_AUDIO_SCENE("DH_1_CLIMB_UP_CRANE")
|
|
SET_LABEL_AS_TRIGGERED("DH_1_CLIMB_UP_CRANE",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehHandler)
|
|
sGodText = ""
|
|
iProgress--
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
IF iFloydHauler = 5
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(sceneHandlerA1)
|
|
IF GET_SYNCHRONIZED_SCENE_PHASE(sceneHandlerA1) > 0.6
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehHandler)
|
|
TASK_LEAVE_VEHICLE(PLAYER_PED_ID(),vehHandler)
|
|
ENDIF
|
|
SET_ENTITY_NO_COLLISION_ENTITY(pedFloyd,vehHandler,TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehHandler)
|
|
IF IS_PLAYER_AT_LOCATION_ON_FOOT(sLocatesData,<<-49.8470, -2404.4475, 5.0006>>,<<0.1,0.1,LOCATE_SIZE_HEIGHT>>,TRUE,sGodText)
|
|
iProgress++
|
|
ELSE
|
|
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-48.895756,-2405.313965,4.250962>>, <<-50.765312,-2405.310059,7.750961>>, 2.500000)
|
|
OR IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-48.721390,-2405.790039,7.760520>>, <<-50.121132,-2405.803711,9.510519>>, 1.000000)
|
|
CLEAR_MISSION_LOCATE_STUFF(sLocatesData)
|
|
iProgress++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
//I've been waiting on a crane driver for over an hour
|
|
CASE 5
|
|
|
|
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-53.425056,-2407.837402,14.789022>>, <<-49.817219,-2407.882324,17.539022>>, 1.250000)
|
|
IF NOT IS_PED_CLIMBING(PLAYER_PED_ID())
|
|
SET_PED_MAX_MOVE_BLEND_RATIO(PLAYER_PED_ID(),1.0)
|
|
ENDIF
|
|
ELSE
|
|
SET_PED_MAX_MOVE_BLEND_RATIO(PLAYER_PED_ID(),2.0)
|
|
ENDIF
|
|
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_MCS1_P2")
|
|
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-51.256855,-2406.551514,18.558769>>, <<-50.185169,-2406.576416,20.952829>>, 1.500000)
|
|
IF CREATE_CONVERSATION(sSpeech,"D1AUD","DS1_MCS1_P2", CONV_PRIORITY_HIGH)
|
|
TASK_LOOK_AT_ENTITY(pedDockWorker[14],PLAYER_PED_ID(),-1,SLF_WHILE_NOT_IN_FOV,SLF_LOOKAT_HIGH)
|
|
REPLAY_RECORD_BACK_FOR_TIME(5.0, 8.0, REPLAY_IMPORTANCE_HIGHEST)
|
|
SET_LABEL_AS_TRIGGERED("DS1_MCS1_P2",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData, IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF NOT IS_PED_CLIMBING(PLAYER_PED_ID())
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_getin")
|
|
IF CREATE_CONVERSATION(sSpeech,"D1AUD","DS1_getin", CONV_PRIORITY_HIGH)
|
|
SET_LABEL_AS_TRIGGERED("DS1_getin",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DOES_BLIP_EXIST(sLocatesData.LocationBlip)
|
|
SET_GPS_ACTIVE(FALSE)
|
|
ENDIF
|
|
|
|
IF IS_PLAYER_AT_LOCATION_ON_FOOT(sLocatesData,<<-52.2530, -2413.9524, 20.5856>>,<<0.100000,0.100000,LOCATE_SIZE_HEIGHT>>,TRUE,"")
|
|
|
|
ELSE
|
|
IF NOT IS_PED_CLIMBING(PLAYER_PED_ID())
|
|
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-51.946228,-2414.439209,20.533628>>, <<-51.964249,-2413.213867,22.335625>>, 1.750000)
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehHandler)
|
|
SET_PLAYER_CONTROL(PLAYER_ID(),FALSE)
|
|
ENDIF
|
|
ENDIF
|
|
IF DOES_BLIP_EXIST(dest_blip)
|
|
REMOVE_BLIP(dest_blip)
|
|
ENDIF
|
|
REQUEST_ANIM_DICT("missheistdockssetup1trevor_crane")
|
|
REMOVE_BLIP(sLocatesData.LocationBlip)
|
|
iProgress++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
//P_Dock_RTG_LD_Cab
|
|
//s_crane.obj_cabin
|
|
//missheistdockssetup1ig
|
|
|
|
CASE 6
|
|
REQUEST_ANIM_DICT("missheistdockssetup1trevor_crane")
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1trevor_crane")
|
|
IF NOT DOES_CAM_EXIST(camMain)
|
|
camMain = CREATE_CAM("DEFAULT_ANIMATED_CAMERA", TRUE)
|
|
ENDIF
|
|
|
|
RELEASE_NAMED_SCRIPT_AUDIO_BANK("Container_Lifter")
|
|
RELEASE_NAMED_SCRIPT_AUDIO_BANK("Creak_V1")
|
|
|
|
SET_SCRIPTS_SAFE_FOR_CUTSCENE(TRUE)
|
|
|
|
PLAY_CAM_ANIM(camMain, "get_in_cam", "missheistdockssetup1trevor_crane",<< -53.139, -2415.768, 22.604 >>,<< 0.000, 0.000, -178.200 >>)
|
|
SET_CAM_ACTIVE(camMain,TRUE)
|
|
RENDER_SCRIPT_CAMS(TRUE,FALSE)
|
|
|
|
ssCraneAnims = CREATE_SYNCHRONIZED_SCENE(<< -0.100, -0.100, -0.350 >>,<< 0.000, 0.000, 0.000 >>)
|
|
ATTACH_SYNCHRONIZED_SCENE_TO_ENTITY(ssCraneAnims,s_crane.obj_cabin,-1)
|
|
TASK_SYNCHRONIZED_SCENE (PLAYER_PED_ID(), ssCraneAnims, "missheistdockssetup1trevor_crane", "get_in", INSTANT_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_NONE,RBF_NONE )
|
|
SET_SYNCHRONIZED_SCENE_HOLD_LAST_FRAME(ssCraneAnims,TRUE)
|
|
|
|
|
|
iProgress++
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 7
|
|
DISABLE_ON_FOOT_FIRST_PERSON_VIEW_THIS_UPDATE()
|
|
|
|
SETUP_MISSION_REQUIREMENT(REQ_CRANE_CONTAINERS)
|
|
REQUEST_ANIM_DICT("missheistdockssetup1trevor_crane")
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1trevor_crane")
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(ssCraneAnims)
|
|
IF GET_SYNCHRONIZED_SCENE_PHASE(ssCraneAnims) = 1
|
|
SET_SCRIPTS_SAFE_FOR_CUTSCENE(FALSE)
|
|
ssCraneAnims = CREATE_SYNCHRONIZED_SCENE(<< -0.100, -0.100, -0.350 >>,<< 0.000, 0.000, 0.000 >>)
|
|
ATTACH_SYNCHRONIZED_SCENE_TO_ENTITY(ssCraneAnims,s_crane.obj_cabin,-1)
|
|
TASK_SYNCHRONIZED_SCENE (PLAYER_PED_ID(), ssCraneAnims, "missheistdockssetup1trevor_crane", "idle", NORMAL_BLEND_IN, NORMAL_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS | SYNCED_SCENE_DONT_INTERRUPT )
|
|
SET_SYNCHRONIZED_SCENE_HOLD_LAST_FRAME(ssCraneAnims,FALSE)
|
|
SET_SYNCHRONIZED_SCENE_LOOPED(ssCraneAnims,TRUE)
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData, IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF NOT IS_PED_CLIMBING(PLAYER_PED_ID())
|
|
IF CREATE_CONVERSATION(sSpeech,"D1AUD","DS1_climbin", CONV_PRIORITY_HIGH)
|
|
SET_LABEL_AS_TRIGGERED("DS1_climbin",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
iProgress++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 8
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
SET_ENTITY_COORDS(vehHandler,<< -166.8165, -2460.6479, 5.2973 >>)
|
|
DELETE_VEHICLE(vehHandler)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(HANDLER)
|
|
ENDIF
|
|
REMOVE_WAYPOINT_RECORDING("cranassist")
|
|
|
|
iProgress++
|
|
BREAK
|
|
|
|
|
|
CASE 9
|
|
|
|
IF PRE_STREAM_MISSION_STAGE()
|
|
RESET_MISSION_STAGE_VARIABLES()
|
|
ADVANCE_MISSION_STAGE()
|
|
ENDIF
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
ENDPROC
|
|
|
|
PROC CUTSCENE_FINISHED_CRANE()
|
|
|
|
SETTIMERA(0)
|
|
bcutsceneplaying = TRUE
|
|
HIDE_HUD_AND_RADAR_THIS_FRAME()
|
|
|
|
WHILE bcutsceneplaying //holds the script inside here until cutscene is complete
|
|
|
|
WAIT(0)
|
|
HIDE_HUD_AND_RADAR_THIS_FRAME()
|
|
|
|
//CONTROL_SPEECH()
|
|
|
|
// #IF IS_DEBUG_BUILD // allows j/p skip to work even in cutscene
|
|
// IF IS_KEYBOARD_KEY_JUST_PRESSED(KEY_J)OR IS_KEYBOARD_KEY_JUST_PRESSED(KEY_P)
|
|
// bcutsceneplaying = FALSE
|
|
// ENDIF
|
|
// #ENDIF
|
|
|
|
// IF IS_CUTSCENE_SKIP_BUTTON_JUST_PRESSED_WITH_DELAY() AND icutsceneprog >1 // controls the cutscene skip
|
|
// SETTIMERB(6001)
|
|
// CONTROL_FADE_OUT(500)
|
|
// IF NOT IS_PED_INJURED(PLAYER_PED_ID())
|
|
// SET_ENTITY_VISIBLE(PLAYER_PED_ID(),TRUE)
|
|
// IF NOT IS_ENTITY_ATTACHED(PLAYER_PED_ID())
|
|
// FREEZE_ENTITY_POSITION(PLAYER_PED_ID(),FALSE)
|
|
// ENDIF
|
|
// ENDIF
|
|
// icutsceneprog = 3
|
|
// ENDIF
|
|
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_10j")
|
|
IF CREATE_CONVERSATION(sSpeech,"D1AUD","DS1_10j", CONV_PRIORITY_HIGH)
|
|
SET_LABEL_AS_TRIGGERED("DS1_10j",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//PRINTSTRING("icutsceneprog:")PRINTINT(icutsceneprog)PRINTNL()
|
|
|
|
SWITCH icutsceneprog
|
|
|
|
CASE 0
|
|
REQUEST_ANIM_DICT("missheistdockssetup1trevor_crane")
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1trevor_crane")
|
|
CLEAR_TIMECYCLE_MODIFIER()
|
|
bContainerSetUpForDrive = FALSE
|
|
//CREATE_CRANE()
|
|
IF NOT IS_PED_INJURED(pedDockWorker[13])
|
|
CLEAR_ALL_PED_PROPS(pedDockWorker[13])
|
|
ENDIF
|
|
|
|
INT i
|
|
|
|
REPEAT COUNT_OF(s_containers) i
|
|
IF DOES_ENTITY_EXIST( s_containers[i].obj_main )
|
|
AND NOT IS_ENTITY_DEAD( s_containers[i].obj_main )
|
|
IF IS_ENTITY_ATTACHED( s_containers[i].obj_main )
|
|
DETACH_ENTITY( s_containers[i].obj_main )
|
|
SET_ENTITY_COORDS(s_containers[i].obj_main, <<-110.211067, -2416.435303, 6.472473>>)
|
|
SET_ENTITY_ROTATION(s_containers[i].obj_main, <<-0.051485, 0.000001, 91.338051>>)
|
|
IF DOES_ENTITY_EXIST(vehTrailer2)
|
|
AND NOT IS_ENTITY_DEAD(vehTrailer2)
|
|
ATTACH_ENTITY_TO_ENTITY(s_containers[i].obj_main,vehTrailer2,0,GET_OFFSET_FROM_ENTITY_GIVEN_WORLD_COORDS(vehTrailer2, <<-110.211067, -2416.435303, 6.472473>>),<<0,0,0>>,TRUE,FALSE,TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
//Player Control
|
|
SET_PLAYER_CONTROL(PLAYER_ID(), FALSE)
|
|
CLEAR_PRINTS()
|
|
CLEAR_HELP(TRUE)
|
|
DISABLE_CELLPHONE(FALSE)
|
|
DESTROY_ALL_CAMS()
|
|
|
|
RENDER_SCRIPT_CAMS(FALSE,FALSE)
|
|
SET_SCRIPTS_SAFE_FOR_CUTSCENE(TRUE)
|
|
|
|
s_crane.f_crane_offset = 0.297
|
|
s_crane.f_crane_vel = 0.0
|
|
|
|
bInitStage = TRUE
|
|
INIT_STAGE()
|
|
SET_PLAYER_CONTROL(PLAYER_ID(), FALSE)
|
|
KILL_ANY_CONVERSATION()
|
|
REMOVE_PED_FOR_DIALOGUE(sSpeech,8)
|
|
ADD_PED_FOR_DIALOGUE(sSpeech,8,pedDockWorker[13],"SIGNALMAN")
|
|
|
|
IF DOES_ENTITY_EXIST(pedDockWorker[14])
|
|
DELETE_PED(pedDockWorker[14])
|
|
ENDIF
|
|
|
|
IF NOT DOES_CAM_EXIST(camMain)
|
|
camMain = CREATE_CAM("DEFAULT_ANIMATED_CAMERA", TRUE)
|
|
ENDIF
|
|
|
|
SET_ENTITY_COORDS_NO_OFFSET(s_crane.obj_main, <<-110.2902, -2415.7900, 5.0000>>)
|
|
|
|
PLAY_CAM_ANIM(camMain, "get_out_cam", "missheistdockssetup1trevor_crane",<< -108.078, -2413.115, 20.586 >>,<< 0.000, 0.000, 180.000 >>)
|
|
SET_CAM_ACTIVE(camMain,TRUE)
|
|
RENDER_SCRIPT_CAMS(TRUE,FALSE)
|
|
SET_SCRIPTS_SAFE_FOR_CUTSCENE(TRUE)
|
|
|
|
ssCraneAnims = CREATE_SYNCHRONIZED_SCENE(<< -0.100, -0.10, -0.350 >>,<< 0.000, 0.000, 0.000 >>)
|
|
SET_SYNCHRONIZED_SCENE_HOLD_LAST_FRAME(ssCraneAnims,TRUE)
|
|
SET_SYNCHRONIZED_SCENE_LOOPED(ssCraneAnims,FALSE)
|
|
ATTACH_SYNCHRONIZED_SCENE_TO_ENTITY(ssCraneAnims,s_crane.obj_cabin,-1)
|
|
TASK_SYNCHRONIZED_SCENE (PLAYER_PED_ID(), ssCraneAnims, "missheistdockssetup1trevor_crane", "get_out", NORMAL_BLEND_IN, SLOW_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS | SYNCED_SCENE_DONT_INTERRUPT)
|
|
|
|
SET_AUDIO_FLAG("MobileRadioInGame", FALSE)
|
|
|
|
REPLAY_START_EVENT(REPLAY_IMPORTANCE_HIGHEST)
|
|
|
|
icutsceneprog ++
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 1
|
|
IF HAS_ANIM_DICT_LOADED("misslsdhs")
|
|
IF NOT IS_PED_INJURED(pedDockWorker[13])
|
|
OPEN_SEQUENCE_TASK(seqMain)
|
|
TASK_LOOK_AT_ENTITY(NULL,PLAYER_PED_ID(),-1)
|
|
TASK_PLAY_ANIM(NULL,"misslsdhs", "reaction_to_truck",NORMAL_BLEND_IN,SLOW_BLEND_OUT,-1,AF_DEFAULT | AF_USE_KINEMATIC_PHYSICS)
|
|
TASK_PLAY_ANIM(NULL,"misslsdhs", "wave_truck",NORMAL_BLEND_IN,SLOW_BLEND_OUT,-1,AF_DEFAULT | AF_USE_KINEMATIC_PHYSICS)
|
|
TASK_START_SCENARIO_IN_PLACE(NULL,"WORLD_HUMAN_CLIPBOARD")
|
|
CLOSE_SEQUENCE_TASK(seqMain)
|
|
TASK_PERFORM_SEQUENCE(pedDockWorker[13], seqMain)
|
|
ENDIF
|
|
|
|
SET_ENTITY_VISIBLE(PLAYER_PED_ID(),TRUE)
|
|
IF NOT IS_ENTITY_ATTACHED(PLAYER_PED_ID())
|
|
FREEZE_ENTITY_POSITION(PLAYER_PED_ID(),FALSE)
|
|
ENDIF
|
|
|
|
SET_ENTITY_COLLISION(s_crane.obj_cabin,TRUE)
|
|
SET_FOLLOW_PED_CAM_VIEW_MODE(cCam)
|
|
icutsceneprog ++
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 2
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(ssCraneAnims)
|
|
IF GET_SYNCHRONIZED_SCENE_PHASE(ssCraneAnims) > 0.95
|
|
//STOP_SYNCHRONIZED_ENTITY_ANIM(PLAYER_PED_ID(),NORMAL_BLEND_OUT,TRUE)
|
|
IF GET_CAM_VIEW_MODE_FOR_CONTEXT(CAM_VIEW_MODE_CONTEXT_ON_FOOT) = CAM_VIEW_MODE_FIRST_PERSON
|
|
TASK_TURN_PED_TO_FACE_COORD(PLAYER_PED_ID(), <<-105.3195, -2603.9893, 5.0007>>)
|
|
ELSE
|
|
CLEAR_PED_TASKS(PLAYER_PED_ID())
|
|
ENDIF
|
|
//TASK_ACHIEVE_HEADING(PLAYER_PED_ID(),179.9661)
|
|
SET_PLAYER_CONTROL(PLAYER_ID(),TRUE)
|
|
SET_WIDESCREEN_BORDERS(FALSE,0)
|
|
SET_GAMEPLAY_CAM_RELATIVE_HEADING(-90.000)
|
|
SET_GAMEPLAY_CAM_RELATIVE_PITCH()
|
|
CONTROL_FADE_IN(500)
|
|
CLEAR_PRINTS()
|
|
|
|
RENDER_SCRIPT_CAMS(FALSE, TRUE,1000)
|
|
// IF DOES_CAM_EXIST(camMain)
|
|
// DESTROY_CAM(camMain)
|
|
// ENDIF
|
|
|
|
SET_WIDESCREEN_BORDERS(FALSE,0)
|
|
//SET_GAMEPLAY_CAM_RELATIVE_HEADING(0.0)
|
|
SET_TIME_SCALE(1.0)
|
|
DISPLAY_RADAR(TRUE)
|
|
|
|
REMOVE_ANIM_DICT("misslsdhs")
|
|
|
|
SET_SCRIPTS_SAFE_FOR_CUTSCENE(FALSE)
|
|
DISPLAY_HUD(TRUE)
|
|
DISABLE_CELLPHONE(FALSE)
|
|
|
|
CLEAR_HELP()
|
|
KILL_ANY_CONVERSATION()
|
|
|
|
REPLAY_STOP_EVENT()
|
|
|
|
HIDE_ACTIVE_PHONE(FALSE)
|
|
SET_SCRIPTS_SAFE_FOR_CUTSCENE(FALSE)
|
|
icutsceneprog = 0
|
|
brunfailchecks = FALSE
|
|
bcutsceneplaying = FALSE
|
|
//ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
ENDWHILE
|
|
|
|
ENDPROC
|
|
|
|
|
|
//PURPOSE: Trevor uses the crane
|
|
PROC MISSION_STAGE_7_PROC()
|
|
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DH_1_USE_CRANE")
|
|
IF IS_AUDIO_SCENE_ACTIVE("DH_1_CLIMB_UP_CRANE")
|
|
STOP_AUDIO_SCENE("DH_1_CLIMB_UP_CRANE")
|
|
ELSE
|
|
START_AUDIO_SCENE("DH_1_USE_CRANE")
|
|
SET_LABEL_AS_TRIGGERED("DH_1_USE_CRANE",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
SET_MAP_CRANE_VISIBLE(FALSE)
|
|
CREATE_THE_DOCKS_STUFF()
|
|
|
|
REPLAY_DISABLE_CAMERA_MOVEMENT_THIS_FRAME() //Fix for bug 2170341
|
|
|
|
SWITCH iProgress
|
|
|
|
CASE 0
|
|
|
|
SETUP_PC_CONTROLS()
|
|
|
|
cCam = GET_CAM_VIEW_MODE_FOR_CONTEXT(CAM_VIEW_MODE_CONTEXT_ON_FOOT)
|
|
IF bIsJumpingDirectlyToStage
|
|
s_crane.f_crane_offset = 0.297
|
|
s_crane.f_crane_vel = 0.0
|
|
v_crane_pos = << -53.6982, -2415.7900, 5.0500 >> //<< -53.267, -2415.863, 5.066 >>
|
|
vSpreaderPosition = <<-53.02, -2416.04, 14.75>>
|
|
SET_LABEL_AS_TRIGGERED("DS1_10",FALSE)
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
SET_ENTITY_COORDS(vehHandler,<< -166.8165, -2460.6479, 5.2973 >>)
|
|
DELETE_VEHICLE(vehHandler)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(HANDLER)
|
|
ENDIF
|
|
|
|
WHILE NOT SETUP_MISSION_REQUIREMENT(REQ_CRANE)
|
|
OR NOT SETUP_MISSION_REQUIREMENT(REQ_HAULER_WITH_TRAILER)
|
|
OR NOT SETUP_MISSION_REQUIREMENT(REQ_CRANE_CONTAINERS)
|
|
WAIT(0)
|
|
REPLAY_CHECK_FOR_EVENT_THIS_FRAME("M_ThePortOfLSHeistSetup")
|
|
ENDWHILE
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(vehFirstHauler)
|
|
AND IS_VEHICLE_DRIVEABLE(vehTrailer1)
|
|
ATTACH_VEHICLE_TO_TRAILER(vehFirstHauler,vehTrailer1)
|
|
FREEZE_ENTITY_POSITION(vehFirstHauler,TRUE)
|
|
FREEZE_ENTITY_POSITION(vehTrailer1,TRUE)
|
|
SET_VEHICLE_EXTRA(vehTrailer1,1,TRUE)
|
|
SET_VEHICLE_STRONG(vehTrailer1, TRUE)
|
|
SET_VEHICLE_HAS_STRONG_AXLES(vehTrailer1, TRUE)
|
|
ENDIF
|
|
|
|
IF IS_SCREEN_FADED_OUT()
|
|
MANAGE_PLAYER_OUTFIT()
|
|
ENDIF
|
|
|
|
IF SETUP_PEDS_FOR_DIALOGUE()
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
SET_ENTITY_COORDS(pedFloyd,<<-114.33, -2426.18, 6.00>>)
|
|
SET_ENTITY_HEADING(pedFloyd,-4.84)
|
|
ENDIF
|
|
|
|
Blip_player = GET_MAIN_PLAYER_BLIP_ID()
|
|
IF DOES_BLIP_EXIST(Blip_player)
|
|
SET_BLIP_ALPHA(Blip_player,0)
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(pedDockWorker[12])
|
|
DELETE_PED(pedDockWorker[12])
|
|
ENDIF
|
|
|
|
g_bDocksBackGatesIgnoreTrevorsUniform = FALSE
|
|
iMissionDialogue = 12
|
|
iCraneHelp = 0
|
|
|
|
REMOVE_IPL("pcranecont")
|
|
SWITCH_CRANE_VISIBILITY(TRUE)
|
|
SET_REPLAY_MID_MISSION_STAGE_WITH_NAME(6,"Use Crane")
|
|
SET_ALL_RANDOM_PEDS_FLEE(PLAYER_ID(), TRUE)
|
|
SET_USER_RADIO_CONTROL_ENABLED(FALSE)
|
|
CASCADE_SHADOWS_ENABLE_FREEZER( false)
|
|
iProgress++
|
|
ENDIF
|
|
ELSE
|
|
SET_LABEL_AS_TRIGGERED("DS1_10",TRUE)
|
|
SET_REPLAY_MID_MISSION_STAGE_WITH_NAME(6,"Use Crane")
|
|
SETUP_PEDS_FOR_DIALOGUE()
|
|
|
|
RENDER_SCRIPT_CAMS(FALSE,FALSE)
|
|
DESTROY_CAM(camMain)
|
|
|
|
MANAGE_CRANE(TRUE)
|
|
bCreateFirstHauler = FALSE
|
|
bTrailerAttachements = FALSE
|
|
iCraneHelp = 0
|
|
SET_ALL_RANDOM_PEDS_FLEE(PLAYER_ID(), TRUE)
|
|
SET_USER_RADIO_CONTROL_ENABLED(FALSE)
|
|
CASCADE_SHADOWS_ENABLE_FREEZER( false)
|
|
iProgress++
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 1//Create objective specific items- print objective, add blips etc
|
|
|
|
IF NOT bIsJumpingDirectlyToStage
|
|
MANAGE_CRANE(TRUE)
|
|
IF INITIALISE_CRANE()
|
|
//MANAGE_CRANE(TRUE)
|
|
IF NOT IS_PED_INJURED(pedDockWorker[13])
|
|
SET_ENTITY_COORDS(pedDockWorker[13],<<-116.91, -2401.23, 6.00>>)
|
|
SET_ENTITY_HEADING(pedDockWorker[13],163.87)
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(s_sp_forklift_supervisorA[0].ped)
|
|
IF DOES_ENTITY_EXIST(objPencil[1])
|
|
DELETE_OBJECT(objPencil[1])
|
|
ENDIF
|
|
IF DOES_ENTITY_EXIST(objClipboard[1])
|
|
DELETE_OBJECT(objClipboard[1])
|
|
ENDIF
|
|
TASK_WANDER_IN_AREA(s_sp_forklift_supervisorA[0].ped,<<-149.3773, -2482.7092, 5.0189>>,15)
|
|
ENDIF
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(vehHandler)
|
|
SET_ENTITY_COORDS(vehHandler,<< -166.8165, -2460.6479, 5.2973 >>)
|
|
DELETE_VEHICLE(vehHandler)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(HANDLER)
|
|
ELSE
|
|
DELETE_VEHICLE(vehHandler)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(HANDLER)
|
|
ENDIF
|
|
|
|
PRINTSTRING("PASSING THROUGH HERE - 2")//PRINTNL()
|
|
iProgress++
|
|
ENDIF
|
|
ELSE
|
|
IF INITIALISE_CRANE()
|
|
IF IS_VEHICLE_DRIVEABLE(vehFirstHauler) AND IS_VEHICLE_DRIVEABLE(vehTrailer1)
|
|
IF NOT IS_VEHICLE_ATTACHED_TO_TRAILER(vehFirstHauler)
|
|
SET_VEHICLE_EXTRA(vehTrailer1,1,TRUE)
|
|
ATTACH_VEHICLE_TO_TRAILER(vehFirstHauler,vehTrailer1)
|
|
SET_ENTITY_PROOFS(vehTrailer1,FALSE,FALSE,FALSE,TRUE,FALSE)
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(pedDockWorker[11]) AND IS_VEHICLE_DRIVEABLE(vehDocks[0])
|
|
IF NOT IS_PLAYBACK_GOING_ON_FOR_VEHICLE(vehDocks[0])
|
|
IF IS_PED_IN_VEHICLE(pedDockWorker[11],vehDocks[0])
|
|
START_PLAYBACK_RECORDED_VEHICLE(vehDocks[0],1,"AWDock1")
|
|
SET_PLAYBACK_SPEED(vehDocks[0],0.8)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(vehFirstHauler) AND DOES_ENTITY_EXIST(vehTrailer1)
|
|
IF NOT IS_PED_INJURED(pedDockWorker[13])
|
|
SET_ENTITY_COORDS(pedDockWorker[13],<<-116.91, -2401.23, 6.00>>)
|
|
SET_ENTITY_HEADING(pedDockWorker[13],163.87)
|
|
ENDIF
|
|
|
|
FREEZE_ENTITY_POSITION(vehFirstHauler,TRUE)
|
|
FREEZE_ENTITY_POSITION(vehTrailer1,TRUE)
|
|
iProgress++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
CASE 2
|
|
MANAGE_CRANE(TRUE)
|
|
IF bIsJumpingDirectlyToStage = FALSE
|
|
PRINTSTRING("PASSING THROUGH HERE - 2")//PRINTNL()
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(s_crane.obj_main)
|
|
bIsJumpingDirectlyToStage = FALSE
|
|
REQUEST_ANIM_DICT("misslsdhs")
|
|
s_crane.b_container_attached = FALSE
|
|
INIT_STAGE()
|
|
IF DOES_CAM_EXIST(cam_interp)
|
|
PRINTSTRING("INTERPING")//PRINTNL()
|
|
SET_CAM_ACTIVE_WITH_INTERP(cam_cutscene,cam_interp,2000)
|
|
ENDIF
|
|
SET_AUDIO_FLAG("MobileRadioInGame", TRUE)
|
|
SET_RADIO_TO_STATION_NAME("RADIO_04_PUNK")
|
|
INFORM_MISSION_STATS_SYSTEM_OF_TIME_WINDOW_OPEN(DH1_CRANE_TIME)
|
|
HANG_UP_AND_PUT_AWAY_PHONE()
|
|
CASCADE_SHADOWS_SET_CASCADE_BOUNDS_SCALE(0.2)
|
|
iProgress++
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 3
|
|
DISABLE_CELLPHONE_THIS_FRAME_ONLY()
|
|
DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_VEH_RADIO_WHEEL)
|
|
IF NOT bIsJumpingDirectlyToStage
|
|
IF NOT bCreateFirstHauler
|
|
IF SETUP_MISSION_REQUIREMENT(REQ_HAULER_WITH_TRAILER)
|
|
bCreateFirstHauler = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT bTrailerAttachements
|
|
IF IS_VEHICLE_DRIVEABLE(vehFirstHauler)
|
|
IF IS_VEHICLE_DRIVEABLE(vehTrailer1)
|
|
IF NOT IS_VEHICLE_ATTACHED_TO_TRAILER(vehFirstHauler)
|
|
ATTACH_VEHICLE_TO_TRAILER(vehFirstHauler,vehTrailer1)
|
|
FREEZE_ENTITY_POSITION(vehFirstHauler,TRUE)
|
|
FREEZE_ENTITY_POSITION(vehTrailer1,TRUE)
|
|
SET_VEHICLE_EXTRA(vehTrailer1,1,TRUE)
|
|
bTrailerAttachements = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ALLOW_ALTERNATIVE_SCRIPT_CONTROLS_LAYOUT(PLAYER_CONTROL)
|
|
ALLOW_ALTERNATIVE_SCRIPT_CONTROLS_LAYOUT(FRONTEND_CONTROL)
|
|
|
|
//SET_PLAYER_CONTROL(PLAYER_ID(),FALSE)
|
|
MANAGE_CRANE()
|
|
MANAGE_CRANE_HELP()
|
|
IF bCraneSectionComplete
|
|
IF NOT IS_PED_INJURED(pedDockWorker[13])
|
|
IF HAS_LABEL_BEEN_TRIGGERED("CLAMP SOUND")
|
|
PRINTSTRING("STOPPEDSOUND")PRINTNL()
|
|
STOP_SOUND(iCraneSound)
|
|
SET_LABEL_AS_TRIGGERED("CLAMP SOUND",FALSE)
|
|
ENDIF
|
|
INFORM_MISSION_STATS_SYSTEM_OF_TIME_WINDOW_CLOSED()
|
|
REMOVE_PED_FOR_DIALOGUE(sSpeech,8)
|
|
ADD_PED_FOR_DIALOGUE(sSpeech,8,pedDockWorker[13],"SIGNALMAN")
|
|
iProgress++
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 4
|
|
CUTSCENE_FINISHED_CRANE()
|
|
IF b_is_audio_scene_active
|
|
STOP_AUDIO_SCENE("CAR_THEFT_EXPORT_CARS_CRANE_SECTION_SCENE")
|
|
b_is_audio_scene_active = FALSE
|
|
ENDIF
|
|
CASCADE_SHADOWS_INIT_SESSION()
|
|
CASCADE_SHADOWS_ENABLE_FREEZER(TRUE)
|
|
CASCADE_SHADOWS_INIT_SESSION()
|
|
|
|
CLEANUP_PC_CONTROLS()
|
|
|
|
iProgress++
|
|
BREAK
|
|
|
|
CASE 5
|
|
Blip_player = GET_MAIN_PLAYER_BLIP_ID()
|
|
IF DOES_BLIP_EXIST(Blip_player)
|
|
SET_BLIP_ALPHA(Blip_player,100)
|
|
ENDIF
|
|
|
|
SAFE_REMOVE_BLIP(blipCrane)
|
|
SAFE_REMOVE_BLIP(blip_current_destination)
|
|
STOP_GAMEPLAY_HINT()
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(vehFloydTruck)
|
|
FREEZE_ENTITY_POSITION(vehFloydTruck,TRUE)
|
|
SET_VEHICLE_IS_CONSIDERED_BY_PLAYER(vehFloydTruck,FALSE)
|
|
ENDIF
|
|
IF IS_VEHICLE_DRIVEABLE(vehTrailer2)
|
|
FREEZE_ENTITY_POSITION(vehTrailer2,TRUE)
|
|
ENDIF
|
|
|
|
IF DOES_BLIP_EXIST(dest_blip)
|
|
REMOVE_BLIP(dest_blip)
|
|
ENDIF
|
|
IF DOES_BLIP_EXIST(container0_blip)
|
|
REMOVE_BLIP(container0_blip)
|
|
ENDIF
|
|
IF DOES_BLIP_EXIST(container1_blip)
|
|
REMOVE_BLIP(container1_blip)
|
|
ENDIF
|
|
|
|
SET_PLAYER_CONTROL(PLAYER_ID(),TRUE)
|
|
REMOVE_ANIM_DICT("missheistdockssetup1trevor_crane")
|
|
SETTIMERA(0)
|
|
SET_AUDIO_FLAG("MobileRadioInGame", FALSE)
|
|
SET_USER_RADIO_CONTROL_ENABLED(TRUE)
|
|
iProgress++
|
|
BREAK
|
|
|
|
CASE 6
|
|
IF PRE_STREAM_MISSION_STAGE()
|
|
REMOVE_ANIM_DICT("map_objects")
|
|
CLEAN_OBJECTIVE_BLIP_DISPLAY()
|
|
RESET_MISSION_STAGE_VARIABLES()
|
|
ADVANCE_MISSION_STAGE()
|
|
ENDIF
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
ENDPROC
|
|
|
|
FUNC BOOL IS_ENTITY_IN_CAMERA_PHONE_FRAME(PED_INDEX PedIndex, FLOAT fThisXTolerance = 0.23, FLOAT fThisYTolerance = 0.47)
|
|
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
|
|
IF DOES_ENTITY_EXIST(PedIndex)
|
|
IF NOT IS_ENTITY_DEAD(PedIndex)
|
|
IF IS_ENTITY_ON_SCREEN(PedIndex)
|
|
IF IS_SPHERE_VISIBLE(GET_ENTITY_COORDS(PedIndex), 0.001)
|
|
FLOAT fXPosition, fYPosition
|
|
|
|
GET_SCREEN_COORD_FROM_WORLD_COORD(GET_ENTITY_COORDS(PedIndex), fXPosition, fYPosition)
|
|
|
|
IF (fXPosition > 0.5 - fThisXTolerance) AND (fXPosition < 0.5 + fThisXTolerance)
|
|
AND (fYPosition > 0.5 - fThisYTolerance) AND (fYPosition < 0.5 + fThisYTolerance)
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
BOOL bTakePhotoStat
|
|
BOOL bPerfectSurveillance = TRUE
|
|
BOOL bAtNeedToFreeze = FALSE
|
|
INT iTextMessageDelay
|
|
//camera section
|
|
PROC MISSION_STAGE_8_PROC()
|
|
|
|
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-108.585716,-2429.462158,26.250675>>, <<-108.808174,-2400.434082,16.000675>>, 13.000000)
|
|
SET_PED_CAPSULE(PLAYER_PED_ID(),0.25)
|
|
ENDIF
|
|
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DH_1_TAKE_PHOTOS")
|
|
IF IS_AUDIO_SCENE_ACTIVE("DH_1_USE_CRANE")
|
|
STOP_AUDIO_SCENE("DH_1_USE_CRANE")
|
|
ELSE
|
|
START_AUDIO_SCENE("DH_1_TAKE_PHOTOS")
|
|
REPLAY_RECORD_BACK_FOR_TIME(4.0, 10.0, REPLAY_IMPORTANCE_HIGHEST)
|
|
SET_LABEL_AS_TRIGGERED("DH_1_TAKE_PHOTOS",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF iProgress > 0
|
|
IF NOT bTakePhotoStat
|
|
IF HAS_CELLPHONE_CAM_JUST_TAKEN_PIC()
|
|
INFORM_MISSION_STATS_OF_INCREMENT(DH1_PHOTOS_TAKEN)
|
|
bTakePhotoStat = TRUE
|
|
ENDIF
|
|
ELSE
|
|
IF NOT HAS_CELLPHONE_CAM_JUST_TAKEN_PIC()
|
|
bTakePhotoStat = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
SET_MAP_CRANE_VISIBLE(FALSE)
|
|
|
|
IF iProgress > 2 AND iProgress != 66
|
|
MANAGE_PHONE_HELP()
|
|
//MANAGE_HELP_TEXT_UPDATE()
|
|
ENDIF
|
|
|
|
IF bAtNeedToFreeze = TRUE
|
|
DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_JUMP)
|
|
DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_COVER)
|
|
SET_PED_MAX_MOVE_BLEND_RATIO(PLAYER_PED_ID(),0)
|
|
ELSE
|
|
IF NOT IS_ENTITY_IN_WATER(PLAYER_PED_ID())
|
|
SET_PED_MAX_MOVE_BLEND_RATIO(PLAYER_PED_ID(),1)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF iProgress > 2
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("START SKIP FADE")
|
|
IF bIsJumpingDirectlyToStage = TRUE
|
|
IF NOT IS_ENTITY_IN_AIR(PLAYER_PED_ID())
|
|
iJumpTimer = GET_GAME_TIMER()
|
|
SET_LABEL_AS_TRIGGERED("START SKIP FADE",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF IS_SCREEN_FADED_OUT()
|
|
OR NOT IS_SCREEN_FADING_IN()
|
|
IF MANAGE_MY_TIMER(iJumpTimer,800)
|
|
INIT_STAGE()
|
|
bIsJumpingDirectlyToStage = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
SWITCH iProgress
|
|
|
|
CASE 0
|
|
|
|
|
|
|
|
ASSISTED_MOVEMENT_REQUEST_ROUTE("pols_1")
|
|
ASSISTED_MOVEMENT_REQUEST_ROUTE("pols_2")
|
|
ASSISTED_MOVEMENT_REQUEST_ROUTE("pols_3")
|
|
ASSISTED_MOVEMENT_REQUEST_ROUTE("pols_4")
|
|
ASSISTED_MOVEMENT_REQUEST_ROUTE("pols_5")
|
|
ASSISTED_MOVEMENT_REQUEST_ROUTE("pols_6")
|
|
ASSISTED_MOVEMENT_REQUEST_ROUTE("pols_7")
|
|
ASSISTED_MOVEMENT_REQUEST_ROUTE("pols_8")
|
|
|
|
bAtNeedToFreeze = FALSE
|
|
bPerfectSurveillance = TRUE
|
|
|
|
REPOSITION_LANDSCAPE_PHONE_FOR_LONG_SUBTITLES (TRUE)
|
|
bTakePhotoStat = FALSE
|
|
v_crane_pos = <<-110.2902, -2415.7900, 5.0500>>
|
|
vSpreaderPosition = <<-109.87, -2415.71, 14.67>>
|
|
IF bIsJumpingDirectlyToStage = TRUE
|
|
DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_JUMP)
|
|
DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_COVER)
|
|
IF SETUP_MISSION_REQUIREMENT(REQ_CRANE)
|
|
SET_REPLAY_MID_MISSION_STAGE_WITH_NAME(7,"Photograph Boat")
|
|
SET_ALL_RANDOM_PEDS_FLEE(PLAYER_ID(), TRUE)
|
|
iProgress++
|
|
ENDIF
|
|
ELSE
|
|
g_bDocksBackGatesIgnoreTrevorsUniform = FALSE
|
|
SET_REPLAY_MID_MISSION_STAGE_WITH_NAME(7,"Photograph Boat")
|
|
SET_ALL_RANDOM_PEDS_FLEE(PLAYER_ID(), TRUE)
|
|
iProgress++
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 1 //Create objective specific items- print objective, add blips etc
|
|
v_crane_pos = <<-110.2902, -2415.7900, 5.0500>>
|
|
|
|
IF bIsJumpingDirectlyToStage = TRUE
|
|
DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_JUMP)
|
|
DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_COVER)
|
|
ENDIF
|
|
|
|
IF IS_RADAR_HIDDEN()
|
|
DISPLAY_RADAR(TRUE)
|
|
ENDIF
|
|
|
|
IF IS_SCREEN_FADED_OUT()
|
|
MANAGE_PLAYER_OUTFIT()
|
|
ENDIF
|
|
|
|
CLEAR_CONTACT_PICTURE_MESSAGE(CHAR_RON)
|
|
|
|
IF INITIALISE_CRANE(FALSE)
|
|
IF IS_VEHICLE_DRIVEABLE(vehFloydTruck) AND IS_VEHICLE_DRIVEABLE(vehTrailer2)
|
|
IF SETUP_PEDS_FOR_DIALOGUE()
|
|
ATTACH_VEHICLE_TO_TRAILER(vehFloydTruck,vehTrailer2)
|
|
IF IS_SCREEN_FADED_OUT()
|
|
IF NOT IS_ENTITY_AT_COORD(PLAYER_PED_ID(),<< -114.5969, -2406.8113, 22.2282 >>,<<2,2,2>>)
|
|
SET_ENTITY_COORDS(PLAYER_PED_ID(),<< -114.5969, -2406.8113, 22.2282 >>,TRUE)
|
|
SET_ENTITY_HEADING(PLAYER_PED_ID(),359.8527)
|
|
SET_PED_STEALTH_MOVEMENT(PLAYER_PED_ID(),FALSE)
|
|
ENDIF
|
|
ENDIF
|
|
IF DOES_ENTITY_EXIST(s_containers[1].obj_main)
|
|
DELETE_OBJECT(s_containers[1].obj_main)
|
|
ENDIF
|
|
IF DOES_ENTITY_EXIST(s_containers[1].obj_left_door)
|
|
DELETE_OBJECT(s_containers[1].obj_left_door)
|
|
ENDIF
|
|
IF DOES_ENTITY_EXIST(s_containers[1].obj_right_door)
|
|
DELETE_OBJECT(s_containers[1].obj_right_door)
|
|
ENDIF
|
|
IF DOES_ENTITY_EXIST(s_containers[0].obj_main)
|
|
DELETE_OBJECT(s_containers[0].obj_main)
|
|
ENDIF
|
|
IF DOES_ENTITY_EXIST(s_containers[0].obj_left_door)
|
|
DELETE_OBJECT(s_containers[0].obj_left_door)
|
|
ENDIF
|
|
IF DOES_ENTITY_EXIST(s_containers[0].obj_right_door)
|
|
DELETE_OBJECT(s_containers[0].obj_right_door)
|
|
ENDIF
|
|
SET_VEHICLE_EXTRA(vehTrailer2,1,FALSE)
|
|
// SET_GAMEPLAY_CAM_RELATIVE_HEADING()
|
|
SET_ENTITY_SHOULD_FREEZE_WAITING_ON_COLLISION(PLAYER_PED_ID(),TRUE)
|
|
|
|
DETACH_ENTITY(PLAYER_PED_ID(),TRUE)
|
|
SET_PLAYER_CONTROL(PLAYER_ID(),TRUE)
|
|
|
|
IF NOT IS_PHONE_ONSCREEN()
|
|
SET_CURRENT_PED_WEAPON(PLAYER_PED_ID(),WEAPONTYPE_UNARMED,TRUE)
|
|
ENDIF
|
|
SETTIMERA(0)
|
|
|
|
iMissionDialogue = 13
|
|
iPhotosTaken = 0
|
|
iHelp = 0
|
|
IF DOES_ENTITY_EXIST(s_crane.obj_cabin)
|
|
SET_ENTITY_COLLISION(s_crane.obj_cabin,TRUE)
|
|
ENDIF
|
|
|
|
IF DOES_BLIP_EXIST(dest_blip)
|
|
REMOVE_BLIP(dest_blip)
|
|
ENDIF
|
|
|
|
IF DOES_BLIP_EXIST(container0_blip)
|
|
REMOVE_BLIP(container0_blip)
|
|
ENDIF
|
|
|
|
IF DOES_BLIP_EXIST(container1_blip)
|
|
REMOVE_BLIP(container1_blip)
|
|
ENDIF
|
|
|
|
iProgress++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
CASE 2
|
|
IF bIsJumpingDirectlyToStage = TRUE
|
|
DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_JUMP)
|
|
DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_COVER)
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(vehFloydTruck)
|
|
IF DOES_ENTITY_EXIST(vehTrailer2)
|
|
IF IS_VEHICLE_DRIVEABLE(vehFloydTruck) AND IS_VEHICLE_DRIVEABLE(vehTrailer2)
|
|
ATTACH_VEHICLE_TO_TRAILER(vehFloydTruck,vehTrailer2)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(vehFloydTruck)
|
|
IF IS_VEHICLE_DRIVEABLE(vehFloydTruck)
|
|
SET_VEHICLE_ON_GROUND_PROPERLY(vehFloydTruck)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(vehTrailer2)
|
|
IF IS_VEHICLE_DRIVEABLE(vehTrailer2)
|
|
SET_VEHICLE_ON_GROUND_PROPERLY(vehTrailer2)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//SET_BIT (BitSet_CellphoneDisplay, g_BS_FORCE_CELLPHONE_CAM_AUTO_CONTINUE)
|
|
//INHIBIT_CELLPHONE_CAMERA_FUNCTIONS_FOR_DOCKS_SETUP(TRUE)
|
|
BYPASS_CELLPHONE_CAMERA_DEFAULT_SAVE_ROUTINE(TRUE)
|
|
FREEZE_ENTITY_POSITION(PLAYER_PED_ID(),FALSE)
|
|
SET_PLAYER_CONTROL(PLAYER_ID(),TRUE)
|
|
SET_SCRIPTS_SAFE_FOR_CUTSCENE(FALSE)
|
|
DISABLE_CELLPHONE(FALSE)
|
|
UNLOCK_MINIMAP_ANGLE()
|
|
IF bIsJumpingDirectlyToStage = FALSE
|
|
INIT_STAGE()
|
|
ENDIF
|
|
|
|
iProgress = 66
|
|
BREAK
|
|
|
|
CASE 66
|
|
IF bIsJumpingDirectlyToStage = TRUE
|
|
DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_JUMP)
|
|
DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_COVER)
|
|
ENDIF
|
|
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DH1_START")
|
|
TRIGGER_MUSIC_EVENT("DH1_START")
|
|
SET_LABEL_AS_TRIGGERED("DH1_START",TRUE)
|
|
ENDIF
|
|
|
|
IF IS_SCREEN_FADED_IN()
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_SNAP")
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_SNAP", CONV_PRIORITY_HIGH)
|
|
SET_LABEL_AS_TRIGGERED("DS1_SNAP",TRUE)
|
|
ENDIF
|
|
ELSE
|
|
IF bIsJumpingDirectlyToStage = FALSE
|
|
IF DOES_ENTITY_EXIST(s_crane.obj_main)
|
|
IF IS_PLAYER_AT_LOCATION_ON_FOOT(sLocatesData,<<-114.5757, -2407.0234, 22.4000>>,<<0.500000,0.500000,LOCATE_SIZE_HEIGHT>>,TRUE,"AW_VANTAGE")
|
|
IF DOES_BLIP_EXIST(dest_blip)
|
|
REMOVE_BLIP(dest_blip)
|
|
ENDIF
|
|
REMOVE_BLIP(sLocatesData.LocationBlip)
|
|
IF IS_THIS_PRINT_BEING_DISPLAYED("AW_VANTAGE")
|
|
CLEAR_PRINTS()
|
|
ENDIF
|
|
bAtNeedToFreeze = TRUE
|
|
iProgress = 3
|
|
ELSE
|
|
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-114.597664,-2406.989258,22.045231>>, <<-112.793289,-2407.079346,24.337223>>, 1.750000)
|
|
IF DOES_BLIP_EXIST(dest_blip)
|
|
REMOVE_BLIP(dest_blip)
|
|
ENDIF
|
|
REMOVE_BLIP(sLocatesData.LocationBlip)
|
|
IF IS_THIS_PRINT_BEING_DISPLAYED("AW_VANTAGE")
|
|
CLEAR_PRINTS()
|
|
ENDIF
|
|
bAtNeedToFreeze = TRUE
|
|
iProgress = 3
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF DOES_BLIP_EXIST(dest_blip)
|
|
REMOVE_BLIP(dest_blip)
|
|
ENDIF
|
|
REMOVE_BLIP(sLocatesData.LocationBlip)
|
|
IF IS_THIS_PRINT_BEING_DISPLAYED("AW_VANTAGE")
|
|
CLEAR_PRINTS()
|
|
ENDIF
|
|
iProgress = 3
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 3 //photo one
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("AW_TAKE_PHOTO")
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
PRINT_GOD_TEXT("AW_TAKE_PHOTO")
|
|
SET_LABEL_AS_TRIGGERED("AW_TAKE_PHOTO",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_BIT_SET(BitSet_CellphoneDisplay, g_BS_PICTURE_TAKE_BUTTON_PRESSED)
|
|
IF IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("PHOTO_H1A")
|
|
CLEAR_HELP()
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT WOULD_ENTITY_BE_OCCLUDED(S_M_M_DOCKWORK_01,<< -84.0127, -2365.9124, 16.5003 >>)
|
|
AND IS_POINT_VISIBLE(<< -84.0127, -2365.9124, 16.5003 >>,0.2,200)
|
|
IF HAS_CELLPHONE_CAM_JUST_TAKEN_PIC()
|
|
IF NOT IS_CELLPHONE_CAMERA_IN_SELFIE_MODE()
|
|
CLEAR_HELP()
|
|
#IF IS_DEBUG_BUILD
|
|
PRINTSTRING("Photo is taken - 1")PRINTNL()
|
|
#ENDIF
|
|
SET_PLAYER_CONTROL(PLAYER_ID(),FALSE)
|
|
iCameraTimer = GET_GAME_TIMER()
|
|
iPhotosTaken = 1
|
|
iProgress = 99
|
|
ENDIF
|
|
IF iProgress != 99
|
|
IF bPerfectSurveillance
|
|
bPerfectSurveillance = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
#IF IS_DEBUG_BUILD
|
|
PRINTSTRING("PHOTO NOT READY")PRINTNL()
|
|
#ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 99
|
|
REPLAY_PREVENT_RECORDING_AND_UI_THIS_FRAME()
|
|
IF NOT HAS_CELLPHONE_CAM_JUST_TAKEN_PIC()
|
|
IF NOT IS_PED_INJURED(pedMerc[0])
|
|
REQUEST_PED_VISIBILITY_TRACKING(pedMerc[0])
|
|
ENDIF
|
|
IF NOT IS_PED_INJURED(pedMerc[1])
|
|
REQUEST_PED_VISIBILITY_TRACKING(pedMerc[1])
|
|
ENDIF
|
|
IF NOT IS_PED_INJURED(pedMerc[2])
|
|
REQUEST_PED_VISIBILITY_TRACKING(pedMerc[2])
|
|
ENDIF
|
|
IF NOT IS_PED_INJURED(pedMerc[3])
|
|
REQUEST_PED_VISIBILITY_TRACKING(pedMerc[3])
|
|
ENDIF
|
|
iProgress = 4
|
|
ENDIF
|
|
BREAK
|
|
|
|
|
|
CASE 4 //photo two
|
|
REPLAY_PREVENT_RECORDING_AND_UI_THIS_FRAME()
|
|
IF NOT IS_PLAYER_CONTROL_ON(PLAYER_ID())
|
|
SET_PLAYER_CONTROL(PLAYER_ID(),TRUE)
|
|
ENDIF
|
|
IF IS_BIT_SET(BitSet_CellphoneDisplay, g_BS_PICTURE_TAKE_BUTTON_PRESSED)
|
|
IF IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("PHOTO_H2A")
|
|
CLEAR_HELP()
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(pedMerc[0])
|
|
AND NOT IS_PED_INJURED(pedMerc[1])
|
|
AND NOT IS_PED_INJURED(pedMerc[2])
|
|
AND NOT IS_PED_INJURED(pedMerc[3])
|
|
PRINTSTRING("HERE-2")PRINTNL()
|
|
IF IS_TRACKED_PED_VISIBLE(pedMerc[0])
|
|
OR IS_TRACKED_PED_VISIBLE(pedMerc[1])
|
|
OR IS_TRACKED_PED_VISIBLE(pedMerc[2])
|
|
OR IS_TRACKED_PED_VISIBLE(pedMerc[3])
|
|
IF IS_ENTITY_IN_CAMERA_PHONE_FRAME(pedMerc[0],fXTolerance,fYTolerance)
|
|
OR IS_ENTITY_IN_CAMERA_PHONE_FRAME(pedMerc[1],fXTolerance,fYTolerance)
|
|
OR IS_ENTITY_IN_CAMERA_PHONE_FRAME(pedMerc[2],fXTolerance,fYTolerance)
|
|
OR IS_ENTITY_IN_CAMERA_PHONE_FRAME(pedMerc[3],fXTolerance,fYTolerance)
|
|
IF HAS_CELLPHONE_CAM_JUST_TAKEN_PIC()
|
|
IF NOT IS_CELLPHONE_CAMERA_IN_SELFIE_MODE()
|
|
CLEAR_HELP()
|
|
#IF IS_DEBUG_BUILD
|
|
PRINTSTRING("Photo is taken - 2")PRINTNL()
|
|
#ENDIF
|
|
SET_PLAYER_CONTROL(PLAYER_ID(),FALSE)
|
|
iPhotosTaken = 2
|
|
iCameraTimer = GET_GAME_TIMER()
|
|
iProgress = 98
|
|
ENDIF
|
|
IF iProgress != 98
|
|
IF bPerfectSurveillance
|
|
bPerfectSurveillance = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 98
|
|
REPLAY_PREVENT_RECORDING_AND_UI_THIS_FRAME()
|
|
IF NOT HAS_CELLPHONE_CAM_JUST_TAKEN_PIC()
|
|
iProgress = 5
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 5 //photo three
|
|
REPLAY_PREVENT_RECORDING_AND_UI_THIS_FRAME()
|
|
//REMOVE SPECIFIC OBJECTIVES
|
|
IF NOT IS_PLAYER_CONTROL_ON(PLAYER_ID())
|
|
SET_PLAYER_CONTROL(PLAYER_ID(),TRUE)
|
|
ENDIF
|
|
IF IS_BIT_SET(BitSet_CellphoneDisplay, g_BS_PICTURE_TAKE_BUTTON_PRESSED)
|
|
IF IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("PHOTO_H2A")
|
|
CLEAR_HELP()
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT WOULD_ENTITY_BE_OCCLUDED(S_M_M_DOCKWORK_01,<< -220.3576, -2365.8496, 28.6856 >>)
|
|
IF HAS_CELLPHONE_CAM_JUST_TAKEN_PIC() AND MANAGE_MY_TIMER(iCameraTimer,2200)
|
|
IF NOT IS_CELLPHONE_CAMERA_IN_SELFIE_MODE()
|
|
IF IS_CELLPHONE_CAMERA_INHIBITED_FOR_DOCKS_SETUP()
|
|
INHIBIT_CELLPHONE_CAMERA_FUNCTIONS_FOR_DOCKS_SETUP(FALSE)
|
|
ENDIF
|
|
ENABLE_PICTURE_MESSAGE_SENDING_AND_HELP(TRUE)
|
|
PRINT_GOD_TEXT("PHOTO_OB1")
|
|
iPhotosTaken = 3
|
|
#IF IS_DEBUG_BUILD
|
|
PRINTSTRING("Photo is taken - 3")PRINTNL()
|
|
#ENDIF
|
|
iProgress++
|
|
SETTIMERA(0)
|
|
ENDIF
|
|
IF iProgress != 6
|
|
IF bPerfectSurveillance
|
|
bPerfectSurveillance = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
#IF IS_DEBUG_BUILD
|
|
PRINTSTRING("PHOTO NOT READY")PRINTNL()
|
|
#ENDIF
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
|
|
CASE 6
|
|
REPLAY_PREVENT_RECORDING_AND_UI_THIS_FRAME()
|
|
IF IS_CONTACTS_LIST_ON_SCREEN()
|
|
IF IS_PHONE_ONSCREEN()
|
|
INFORM_STAT_SYSTEM_OF_BOOL_STAT_HAPPENED(DH1_PERFECT_SURVEILLANCE)
|
|
FORCE_SELECTION_OF_THIS_CONTACT_ONLY(CHAR_RON)
|
|
iProgress++
|
|
ENDIF
|
|
SET_PLAYER_CONTROL(PLAYER_ID(),TRUE)
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 7 //send the photos
|
|
IF HAS_CONTACT_RECEIVED_PICTURE_MESSAGE(CHAR_RON)
|
|
|
|
REPLAY_RECORD_BACK_FOR_TIME(4.0, 10.0, REPLAY_IMPORTANCE_HIGHEST)
|
|
|
|
bAtNeedToFreeze = FALSE
|
|
iProgress++
|
|
ENABLE_PICTURE_MESSAGE_SENDING_AND_HELP(FALSE)
|
|
SETTIMERA(0)
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 8 //delay to show sending
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DH_1_PHONE_RON")
|
|
IF IS_AUDIO_SCENE_ACTIVE("DH_1_TAKE_PHOTOS")
|
|
STOP_AUDIO_SCENE("DH_1_TAKE_PHOTOS")
|
|
ELSE
|
|
START_AUDIO_SCENE("DH_1_PHONE_RON")
|
|
SET_LABEL_AS_TRIGGERED("DH_1_PHONE_RON",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
IF TIMERA() > 2000
|
|
bcutsceneplaying = FALSE
|
|
BYPASS_CELLPHONE_CAMERA_DEFAULT_SAVE_ROUTINE(FALSE)
|
|
SETTIMERA(0)
|
|
iTextMessageDelay = GET_GAME_TIMER()
|
|
iProgress++
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 9
|
|
IF TIMERA() > 2000
|
|
//CUTSCENE_SPY_ON_DOCKS()
|
|
iProgress++
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 10
|
|
IF PRE_STREAM_MISSION_STAGE()
|
|
IF IS_VEHICLE_DRIVEABLE(vehFloydTruck)
|
|
SET_VEHICLE_IS_CONSIDERED_BY_PLAYER(vehFloydTruck,TRUE)
|
|
ENDIF
|
|
TRIGGER_MUSIC_EVENT("DH1_STOP")
|
|
REPOSITION_LANDSCAPE_PHONE_FOR_LONG_SUBTITLES (FALSE)
|
|
RESET_MISSION_STAGE_VARIABLES()
|
|
eMissionStage = MISSION_STAGE_10
|
|
ENDIF
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Run the Merryweather cutscene
|
|
PROC RUN_MERRY_WEATHER_CUTSCENE()
|
|
|
|
bcutsceneplaying = TRUE
|
|
|
|
|
|
|
|
|
|
WHILE bcutsceneplaying
|
|
|
|
WAIT(0)
|
|
REPLAY_CHECK_FOR_EVENT_THIS_FRAME("M_ThePortOfLSHeistSetup")
|
|
|
|
DOOR_SYSTEM_SET_OPEN_RATIO(g_sAutoDoorData[AUTODOOR_MIL_DOCKS_GATE_IN].doorID, 1.0)
|
|
DOOR_SYSTEM_SET_DOOR_STATE(g_sAutoDoorData[AUTODOOR_MIL_DOCKS_GATE_IN].doorID,DOORSTATE_FORCE_OPEN_THIS_FRAME)
|
|
|
|
IF NOT DOES_ENTITY_EXIST(vanByDocks)
|
|
SETUP_MISSION_REQUIREMENT(REQ_CAR_TO_DRIVE_FINAL_STAGE)
|
|
ENDIF
|
|
|
|
IF e_section_stage = SECTION_STAGE_SETUP
|
|
IF b_is_jumping_directly_to_stage
|
|
b_is_jumping_directly_to_stage = FALSE
|
|
ELSE
|
|
IF i_current_event = 0
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_13@kick_idle")
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_9@main_action")
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_9@main_action")
|
|
AND HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_9@main_action")
|
|
bcutsceneplaying = TRUE
|
|
bClearCutscenArea = FALSE
|
|
REQUEST_CUTSCENE("LSDHS_MCS_2")
|
|
IF IS_VEHICLE_DRIVEABLE(vehFloydTruck)
|
|
SET_VEH_RADIO_STATION(vehFloydTruck, "OFF")
|
|
ENDIF
|
|
i_current_event++
|
|
ENDIF
|
|
ELIF i_current_event = 1
|
|
IF HAS_CUTSCENE_LOADED()
|
|
IF IS_SCREEN_FADED_OUT()
|
|
DO_SCREEN_FADE_IN(500)
|
|
ELSE
|
|
WAIT(0)
|
|
ENDIF
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(vehFloydTruck)
|
|
REGISTER_ENTITY_FOR_CUTSCENE(vehFloydTruck, "Trevors_Lorry", CU_ANIMATE_EXISTING_SCRIPT_ENTITY)
|
|
SET_VEHICLE_DOOR_CONTROL(vehFloydTruck,SC_DOOR_FRONT_LEFT,DT_DOOR_INTACT,0)
|
|
SET_VEHICLE_DOOR_CONTROL(vehFloydTruck,SC_DOOR_FRONT_RIGHT,DT_DOOR_INTACT,0)
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
REGISTER_ENTITY_FOR_CUTSCENE(pedFloyd, "Floyd", CU_ANIMATE_EXISTING_SCRIPT_ENTITY)
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(pedMerc[4])
|
|
REGISTER_ENTITY_FOR_CUTSCENE(pedMerc[4], "Guard_kick_Floyd_back", CU_ANIMATE_EXISTING_SCRIPT_ENTITY)
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(pedMerc[5])
|
|
REGISTER_ENTITY_FOR_CUTSCENE(pedMerc[5], "Office_guard", CU_ANIMATE_EXISTING_SCRIPT_ENTITY)
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(pedMerc[6])
|
|
REGISTER_ENTITY_FOR_CUTSCENE(pedMerc[6], "Guard_with_gun", CU_ANIMATE_EXISTING_SCRIPT_ENTITY)
|
|
ENDIF
|
|
|
|
START_CUTSCENE()
|
|
|
|
REPLAY_START_EVENT(REPLAY_IMPORTANCE_HIGHEST)
|
|
|
|
SET_SCRIPTS_SAFE_FOR_CUTSCENE(TRUE)
|
|
|
|
b_skipped_mocap = FALSE
|
|
i_current_event = 0
|
|
e_section_stage = SECTION_STAGE_RUNNING
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF e_section_stage = SECTION_STAGE_RUNNING
|
|
IF bClearCutscenArea = TRUE
|
|
IF NOT b_skipped_mocap
|
|
IF IS_CUTSCENE_SKIP_BUTTON_PRESSED()
|
|
#IF IS_DEBUG_BUILD
|
|
e_section_stage = SECTION_STAGE_SKIP
|
|
#ENDIF
|
|
PRINTSTRING("J SKIPPED")//PRINTNL()
|
|
b_skipped_mocap = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_CUTSCENE_PLAYING()
|
|
IF bClearCutscenArea = FALSE
|
|
IF IS_VEHICLE_DRIVEABLE(vehTrailer2)
|
|
SET_VEHICLE_ON_GROUND_PROPERLY(vehTrailer2)
|
|
ENDIF
|
|
CLEAR_AREA(<< 476.4661, -3040.6094, 6.0984 >>,100,TRUE,TRUE)
|
|
bClearCutscenArea = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DAMAGE FLOYD")
|
|
ENTITY_INDEX entityFloyd
|
|
PED_INDEX cutsceneFloyd
|
|
entityFloyd = GET_ENTITY_INDEX_OF_CUTSCENE_ENTITY("Floyd", CS_FLOYD)
|
|
IF DOES_ENTITY_EXIST(entityFloyd)
|
|
cutsceneFloyd = GET_PED_INDEX_FROM_ENTITY_INDEX(entityFloyd)
|
|
ENDIF
|
|
IF NOT IS_PED_INJURED(cutsceneFloyd)
|
|
IF HAS_ANIM_EVENT_FIRED(entityFloyd,GET_HASH_KEY("Floyd_Beaten"))
|
|
IF DOES_ENTITY_EXIST(entityFloyd)
|
|
AND NOT IS_ENTITY_DEAD(entityFloyd)
|
|
APPLY_PED_DAMAGE_DECAL(GET_PED_INDEX_FROM_ENTITY_INDEX(entityFloyd), PDZ_HEAD, 0.426, 0.755, 218.157, 1.0, 1.0, 3, TRUE, "bruise")
|
|
PRINTSTRING("DAMAGE FLOYD")PRINTNL()
|
|
SET_LABEL_AS_TRIGGERED("DAMAGE FLOYD", TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF CAN_SET_EXIT_STATE_FOR_CAMERA()
|
|
SET_GAMEPLAY_CAM_RELATIVE_HEADING()
|
|
SET_GAMEPLAY_CAM_RELATIVE_PITCH()
|
|
ENDIF
|
|
|
|
IF CAN_SET_EXIT_STATE_FOR_REGISTERED_ENTITY("Trevor")
|
|
GIVE_WEAPON_TO_PED(PLAYER_PED_ID(),WEAPONTYPE_BRIEFCASE_02,-1,TRUE)
|
|
//SET_CURRENT_PED_WEAPON(PLAYER_PED_ID(),WEAPONTYPE_UNARMED,TRUE)
|
|
FORCE_PED_MOTION_STATE(PLAYER_PED_ID(), MS_ON_FOOT_RUN, TRUE, FAUS_CUTSCENE_EXIT)
|
|
IF GET_FOLLOW_PED_CAM_VIEW_MODE() != CAM_VIEW_MODE_FIRST_PERSON
|
|
SIMULATE_PLAYER_INPUT_GAIT(PLAYER_ID(), PEDMOVE_RUN, 3000, 1.2757, FALSE)
|
|
ELSE
|
|
SIMULATE_PLAYER_INPUT_GAIT(PLAYER_ID(), PEDMOVE_SPRINT, 3000, 1.2757, FALSE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
|
|
IF CAN_SET_EXIT_STATE_FOR_REGISTERED_ENTITY("Floyd")
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
IF DOES_ENTITY_EXIST(pedFloyd)
|
|
AND DOES_ENTITY_EXIST(pedMerc[4])
|
|
AND DOES_ENTITY_EXIST(pedMerc[5])
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
AND NOT IS_PED_INJURED(pedMerc[4])
|
|
AND NOT IS_PED_INJURED(pedMerc[5])
|
|
IF NOT IS_SYNCHRONIZED_SCENE_RUNNING(sceneBlackAbuse)
|
|
SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedFloyd,TRUE)
|
|
REMOVE_PED_FROM_GROUP(pedFloyd)
|
|
sceneBlackAbuse = CREATE_SYNCHRONIZED_SCENE(<< 478.596, -3116.911, 5.069 >>,<< -0.000, -0.000, 53.446 >>)
|
|
TASK_SYNCHRONIZED_SCENE (pedFloyd,sceneBlackAbuse, "missheistdockssetup1ig_13@kick_idle", "guard_beatup_kickidle_dockworker", REALLY_SLOW_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS|SYNCED_SCENE_DONT_INTERRUPT,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (pedMerc[4], sceneBlackAbuse,"missheistdockssetup1ig_13@kick_idle", "guard_beatup_kickidle_guard1", REALLY_SLOW_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS|SYNCED_SCENE_DONT_INTERRUPT,RBF_PLAYER_IMPACT )
|
|
TASK_SYNCHRONIZED_SCENE (pedMerc[5], sceneBlackAbuse, "missheistdockssetup1ig_13@kick_idle", "guard_beatup_kickidle_guard2", REALLY_SLOW_BLEND_IN, NORMAL_BLEND_OUT,SYNCED_SCENE_USE_PHYSICS|SYNCED_SCENE_DONT_INTERRUPT,RBF_PLAYER_IMPACT )
|
|
SET_SYNCHRONIZED_SCENE_LOOPED(sceneBlackAbuse,TRUE)
|
|
SET_PED_KEEP_TASK(pedFloyd,TRUE)
|
|
SET_PED_KEEP_TASK(pedMerc[4],TRUE)
|
|
SET_PED_KEEP_TASK(pedMerc[5],TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF HAS_CUTSCENE_FINISHED()
|
|
AND bClearCutscenArea = TRUE
|
|
IF DOES_ENTITY_EXIST(pedMerc[6])
|
|
IF NOT IS_PED_INJURED(pedMerc[6])
|
|
SET_ENTITY_COORDS(pedMerc[6],<<481.60, -3119.79, 6.07>>)
|
|
SET_ENTITY_HEADING(pedMerc[6],51.57)
|
|
TASK_START_SCENARIO_IN_PLACE(pedMerc[6],"WORLD_HUMAN_GUARD_STAND")
|
|
ENDIF
|
|
ENDIF
|
|
e_section_stage = SECTION_STAGE_CLEANUP
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF e_section_stage = SECTION_STAGE_CLEANUP
|
|
|
|
IF b_skipped_mocap
|
|
REPLAY_CANCEL_EVENT()
|
|
STOP_CUTSCENE()
|
|
//If the player skipped the mocap the peds need to be warped.
|
|
WHILE IS_CUTSCENE_ACTIVE()
|
|
WAIT(0)
|
|
ENDWHILE
|
|
ENDIF
|
|
|
|
REPLAY_STOP_EVENT()
|
|
|
|
//Setup buddy relationship groups etc.
|
|
SET_SCRIPTS_SAFE_FOR_CUTSCENE(FALSE)
|
|
SET_PLAYER_CONTROL(PLAYER_ID(),TRUE)
|
|
|
|
REMOVE_CUTSCENE()
|
|
|
|
i_current_event = 0
|
|
e_section_stage = SECTION_STAGE_SETUP
|
|
bcutsceneplaying = FALSE
|
|
ENDIF
|
|
|
|
IF e_section_stage = SECTION_STAGE_SKIP
|
|
STOP_CUTSCENE()
|
|
b_skipped_mocap = TRUE
|
|
e_section_stage = SECTION_STAGE_RUNNING
|
|
ENDIF
|
|
ENDWHILE
|
|
ENDPROC
|
|
|
|
PROC CLEANUP_THE_CRANE()
|
|
|
|
INT i
|
|
|
|
REPEAT 8 i
|
|
IF DOES_ROPE_EXIST(s_crane.ropes[i])
|
|
DELETE_ROPE(s_crane.ropes[i])
|
|
ENDIF
|
|
bAddedRopes = FALSE
|
|
ENDREPEAT
|
|
|
|
IF DOES_ENTITY_EXIST(s_crane.obj_main)
|
|
DELETE_OBJECT(s_crane.obj_main)
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(s_crane.obj_cabin)
|
|
DELETE_OBJECT(s_crane.obj_cabin)
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(s_crane.obj_spreader)
|
|
DELETE_OBJECT(s_crane.obj_spreader)
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(s_crane.obj_lift)
|
|
DELETE_OBJECT(s_crane.obj_lift)
|
|
ENDIF
|
|
|
|
REPEAT COUNT_OF(s_crane.obj_wheels) i
|
|
REMOVE_OBJECT(s_crane.obj_wheels[i], TRUE)
|
|
ENDREPEAT
|
|
|
|
IF DOES_ENTITY_EXIST(s_crane.obj_helper)
|
|
DELETE_OBJECT(s_crane.obj_helper)
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(s_crane.obj_boom_cable)
|
|
DELETE_OBJECT(s_crane.obj_boom_cable)
|
|
ENDIF
|
|
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(model_spreader)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(model_cabin)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(model_container)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(model_wheel_left)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(model_wheel_right)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(model_boom)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(model_left_door)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(model_right_door)
|
|
|
|
ENDPROC
|
|
|
|
PROC MANAGE_MERRYWEATHER_RESPONSE()
|
|
IF IS_VEHICLE_DRIVEABLE(vehFloydTruck)
|
|
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehFloydTruck)
|
|
IF bRestrictedSupressed = FALSE
|
|
SUPPRESS_RESTRICTED_AREA_WANTED_LEVEL(AC_MILITARY_DOCKS,TRUE)
|
|
FOR iCount = 0 To (iTotalMerc -1)
|
|
IF NOT IS_PED_INJURED(pedMerc[iCount])
|
|
SET_PED_RELATIONSHIP_GROUP_HASH(pedMerc[iCount] ,rel_group_buddies)
|
|
ENDIF
|
|
ENDFOR
|
|
bRestrictedSupressed = TRUE
|
|
ENDIF
|
|
ELSE
|
|
IF bRestrictedSupressed = TRUE
|
|
SUPPRESS_RESTRICTED_AREA_WANTED_LEVEL(AC_MILITARY_DOCKS,FALSE)
|
|
RELEASE_SUPPRESSED_RESTRICTED_AREA_WANTED_LEVEL(AC_MILITARY_DOCKS,FALSE)
|
|
FOR iCount = 0 To (iTotalMerc -1)
|
|
IF NOT IS_PED_INJURED(pedMerc[iCount])
|
|
SET_PED_RELATIONSHIP_GROUP_HASH(pedMerc[iCount] ,rel_group_enemies)
|
|
ENDIF
|
|
ENDFOR
|
|
bRestrictedSupressed = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF bRestrictedSupressed = TRUE
|
|
SUPPRESS_RESTRICTED_AREA_WANTED_LEVEL(AC_MILITARY_DOCKS,FALSE)
|
|
RELEASE_SUPPRESSED_RESTRICTED_AREA_WANTED_LEVEL(AC_MILITARY_DOCKS,FALSE)
|
|
FOR iCount = 0 To (iTotalMerc -1)
|
|
IF NOT IS_PED_INJURED(pedMerc[iCount])
|
|
SET_PED_RELATIONSHIP_GROUP_HASH(pedMerc[iCount] ,rel_group_enemies)
|
|
ENDIF
|
|
ENDFOR
|
|
bRestrictedSupressed = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
PROC MANAGE_MERRYWEATHER_RESPONSE_TO_PLAYER()
|
|
|
|
SWITCH iMerryWeatherResponse
|
|
CASE 0
|
|
IF IS_VEHICLE_DRIVEABLE(vehFloydTruck)
|
|
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehFloydTruck)
|
|
|
|
ELSE
|
|
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<485.275024,-3108.497559,5.069427>>, <<485.774292,-3285.950684,17.068666>>, 52.000000)
|
|
iMerryWeatherResponse = 1
|
|
ELSE
|
|
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<471.226837,-3083.325684,3.819052>>, <<497.850739,-3085.000488,16.605831>>, 63.750000)
|
|
FOR iCount = 0 To (iTotalMerc -1)
|
|
IF NOT IS_PED_INJURED(pedMerc[iCount])
|
|
IF HAS_PED_RECEIVED_EVENT(pedMerc[iCount],EVENT_SHOT_FIRED)
|
|
OR IS_PED_SHOOTING_IN_AREA(PLAYER_PED_ID(), GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(pedMerc[iCount],<<-15,-15,-15>>),GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(pedMerc[iCount],<<15,15,15>>), FALSE)
|
|
OR IS_SNIPER_BULLET_IN_AREA(GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(pedMerc[iCount],<<-2,-2,-1>>),GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(pedMerc[iCount],<<2,2,1>>))
|
|
OR HAS_PED_RECEIVED_EVENT(pedMerc[iCount],EVENT_SHOT_FIRED_BULLET_IMPACT)
|
|
OR HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(pedMerc[iCount],PLAYER_PED_ID())
|
|
OR HAS_PED_RECEIVED_EVENT(pedMerc[iCount],EVENT_SHOCKING_EXPLOSION)
|
|
OR IS_PROJECTILE_TYPE_IN_ANGLED_AREA(<<471.610931,-3121.303711,13.559713>>, <<484.699463,-3121.514160,4.570057>>, 12.750000,WEAPONTYPE_GRENADE)
|
|
OR IS_PROJECTILE_TYPE_IN_ANGLED_AREA(<<471.610931,-3121.303711,13.559713>>, <<484.699463,-3121.514160,4.570057>>, 12.750000,WEAPONTYPE_SMOKEGRENADE)
|
|
OR ((IS_PLAYER_TARGETTING_ENTITY(PLAYER_ID(), pedMerc[iCount]) OR IS_PLAYER_FREE_AIMING_AT_ENTITY(PLAYER_ID(), pedMerc[iCount])) AND IS_ENTITY_AT_ENTITY(PLAYER_PED_ID(), pedMerc[iCount], << 10, 10, 10 >>))
|
|
iMerryWeatherResponse = 1
|
|
ENDIF
|
|
ENDIF
|
|
ENDFOR
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<471.226837,-3083.325684,3.819052>>, <<497.850739,-3085.000488,16.605831>>, 63.750000)
|
|
FOR iCount = 0 To (iTotalMerc -1)
|
|
IF NOT IS_PED_INJURED(pedMerc[iCount])
|
|
IF HAS_PED_RECEIVED_EVENT(pedMerc[iCount],EVENT_SHOT_FIRED)
|
|
OR IS_PED_SHOOTING_IN_AREA(PLAYER_PED_ID(), GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(pedMerc[iCount],<<-15,-15,-15>>),GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(pedMerc[iCount],<<15,15,15>>), FALSE)
|
|
OR IS_SNIPER_BULLET_IN_AREA(GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(pedMerc[iCount],<<-2,-2,-1>>),GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(pedMerc[iCount],<<2,2,1>>))
|
|
OR HAS_PED_RECEIVED_EVENT(pedMerc[iCount],EVENT_SHOT_FIRED_BULLET_IMPACT)
|
|
OR HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(pedMerc[iCount],PLAYER_PED_ID())
|
|
OR HAS_PED_RECEIVED_EVENT(pedMerc[iCount],EVENT_SHOCKING_EXPLOSION)
|
|
OR IS_PROJECTILE_TYPE_IN_ANGLED_AREA(<<471.610931,-3121.303711,13.559713>>, <<484.699463,-3121.514160,4.570057>>, 12.750000,WEAPONTYPE_GRENADE)
|
|
OR IS_PROJECTILE_TYPE_IN_ANGLED_AREA(<<471.610931,-3121.303711,13.559713>>, <<484.699463,-3121.514160,4.570057>>, 12.750000,WEAPONTYPE_SMOKEGRENADE)
|
|
OR ((IS_PLAYER_TARGETTING_ENTITY(PLAYER_ID(), pedMerc[iCount]) OR IS_PLAYER_FREE_AIMING_AT_ENTITY(PLAYER_ID(), pedMerc[iCount])) AND IS_ENTITY_AT_ENTITY(PLAYER_PED_ID(), pedMerc[iCount], << 10, 10, 10 >>))
|
|
iMerryWeatherResponse = 1
|
|
ENDIF
|
|
ENDIF
|
|
ENDFOR
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 1
|
|
FOR iCount = 0 To (iTotalMerc -1)
|
|
IF NOT IS_PED_INJURED(pedMerc[iCount])
|
|
SET_PED_RELATIONSHIP_GROUP_HASH(pedMerc[iCount] ,rel_group_enemies)
|
|
TASK_COMBAT_PED(pedMerc[iCount],PLAYER_PED_ID())
|
|
ENDIF
|
|
|
|
IF NOT HAS_SOUND_FINISHED(soundBeating)
|
|
STOP_SOUND(soundBeating)
|
|
RELEASE_SOUND_ID(soundBeating)
|
|
ENDIF
|
|
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE,rel_group_enemies,rel_group_buddies)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE,rel_group_enemies,RELGROUPHASH_PLAYER)
|
|
SET_RELATIONSHIP_BETWEEN_GROUPS(ACQUAINTANCE_TYPE_PED_IGNORE,rel_group_buddies,rel_group_enemies)
|
|
SET_PLAYER_WANTED_LEVEL(PLAYER_ID(),3)
|
|
iFailTimer = GET_GAME_TIMER()
|
|
iMerryWeatherResponse = 2
|
|
ENDFOR
|
|
BREAK
|
|
|
|
CASE 2
|
|
IF NOT IS_SYNCHRONIZED_SCENE_RUNNING(sceneBlackAbuse2)
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_13@exit")
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_13@exit")
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(sceneBlackAbuse)
|
|
IF GET_SYNCHRONIZED_SCENE_PHASE(sceneBlackAbuse) > 0.99
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_13@kick_idle")
|
|
REMOVE_ANIM_DICT("missheistdockssetup1ig_13@kick_idle")
|
|
ENDIF
|
|
sceneBlackAbuse2 = CREATE_SYNCHRONIZED_SCENE(<< 478.596, -3116.911, 5.069 >>,<< -0.000, -0.000, 53.446 >>)
|
|
TASK_SYNCHRONIZED_SCENE(pedFloyd, sceneBlackAbuse2, "missheistdockssetup1ig_13@exit", "guard_beatup_exit_dockworker", REALLY_SLOW_BLEND_IN, REALLY_SLOW_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS|SYNCED_SCENE_DONT_INTERRUPT, RBF_PLAYER_IMPACT)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF eMissionStage = MISSION_STAGE_10
|
|
OR (eMissionStage = MISSION_STAGE_11 AND VDIST2(GET_ENTITY_COORDS(PLAYER_PED_ID()), <<478.596, -3116.911, 5.069>>) < 40000.0)
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_38", CONV_PRIORITY_HIGH)
|
|
IF MANAGE_MY_TIMER(iFailTimer,7000)
|
|
reason_for_fail = COVER_BLOWN
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
ENDPROC
|
|
|
|
PROC MANAGE_CRANE_CLEANUP()
|
|
IF GET_DISTANCE_BETWEEN_COORDS(<<-119.67, -2415.13, 6.00>>,GET_ENTITY_COORDS(PLAYER_PED_ID())) > 100
|
|
IF DOES_ENTITY_EXIST(s_crane.obj_main)
|
|
IF NOT IS_ENTITY_ON_SCREEN(s_crane.obj_main)
|
|
DELETE_OBJECT(s_crane.obj_main)
|
|
DELETE_OBJECT(s_crane.obj_cabin)
|
|
DELETE_OBJECT(s_crane.obj_spreader)
|
|
DELETE_OBJECT(s_crane.obj_helper)
|
|
DELETE_OBJECT(s_crane.obj_wheels[0])
|
|
DELETE_OBJECT(s_crane.obj_wheels[1])
|
|
DELETE_OBJECT(s_crane.obj_wheels[2])
|
|
DELETE_OBJECT(s_crane.obj_wheels[3])
|
|
DELETE_OBJECT(s_crane.obj_wheels[4])
|
|
DELETE_OBJECT(s_crane.obj_wheels[5])
|
|
DELETE_OBJECT(s_crane.obj_wheels[6])
|
|
DELETE_OBJECT(s_crane.obj_wheels[7])
|
|
DELETE_OBJECT(s_containers[0].obj_main)
|
|
DELETE_OBJECT(s_containers[0].obj_left_door)
|
|
DELETE_OBJECT(s_containers[0].obj_right_door)
|
|
DELETE_OBJECT(s_containers[1].obj_main)
|
|
DELETE_OBJECT(s_containers[1].obj_left_door)
|
|
DELETE_OBJECT(s_containers[1].obj_right_door)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(model_crane)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(model_spreader)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(model_cabin)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(model_container)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(model_wheel_left)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(model_wheel_right)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(model_boom)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(model_left_door)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(model_right_door)
|
|
REMOVE_ANIM_DICT("missheistdockssetup1ig_12@idle_a")
|
|
REQUEST_IPL("pcranecont")
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
PROC MANAGE_DOCKWORKER_PROPS()
|
|
IF NOT IS_PED_INJURED(pedDockWorker[15])
|
|
IF IS_PED_IN_COMBAT(pedDockWorker[15],PLAYER_PED_ID())
|
|
OR IS_PED_RAGDOLL(pedDockWorker[15])
|
|
IF IS_ENTITY_ATTACHED_TO_ANY_PED(objPencil[3])
|
|
DETACH_ENTITY(objPencil[3])
|
|
ENDIF
|
|
IF IS_ENTITY_ATTACHED_TO_ANY_PED(objClipboard[3])
|
|
DETACH_ENTITY(objClipboard[3])
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(pedSecurity)
|
|
IF IS_PED_IN_COMBAT(pedSecurity,PLAYER_PED_ID())
|
|
OR IS_PED_RAGDOLL(pedSecurity)
|
|
IF IS_ENTITY_ATTACHED_TO_ANY_PED(objPencil[0])
|
|
DETACH_ENTITY(objPencil[0])
|
|
ENDIF
|
|
IF IS_ENTITY_ATTACHED_TO_ANY_PED(objClipboard[0])
|
|
DETACH_ENTITY(objClipboard[0])
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(pedDockWorker[16])
|
|
IF IS_PED_IN_COMBAT(pedDockWorker[16],PLAYER_PED_ID())
|
|
OR IS_PED_RAGDOLL(pedDockWorker[16])
|
|
IF IS_ENTITY_ATTACHED_TO_ANY_PED(objPencil[2])
|
|
DETACH_ENTITY(objPencil[2])
|
|
ENDIF
|
|
IF IS_ENTITY_ATTACHED_TO_ANY_PED(objClipboard[2])
|
|
DETACH_ENTITY(objClipboard[2])
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
INT iFloydPain
|
|
INT iPainTimer
|
|
|
|
PROC MANAGE_FLOYD_PAIN()
|
|
|
|
SWITCH iFloydPain
|
|
|
|
CASE 0
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
iPainTimer = GET_GAME_TIMER()
|
|
PLAY_PAIN(pedFloyd, AUD_DAMAGE_REASON_SCREAM_PANIC_SHORT)
|
|
iFloydPain ++
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 1
|
|
IF NOT IS_PED_INJURED(pedMerc[4])
|
|
IF MANAGE_MY_TIMER(iPainTimer,GET_RANDOM_INT_IN_RANGE(9000,24000))
|
|
iPainTimer = GET_GAME_TIMER()
|
|
IF GET_RANDOM_BOOL()
|
|
PLAY_PED_AMBIENT_SPEECH(pedMerc[4],"GENERIC_INSULT_HIGH",SPEECH_PARAMS_SHOUTED_CLEAR)
|
|
ELSE
|
|
IF NOT IS_PED_INJURED(pedMerc[5])
|
|
PLAY_PED_AMBIENT_SPEECH(pedMerc[5],"GENERIC_INSULT_HIGH",SPEECH_PARAMS_SHOUTED_CLEAR)
|
|
ENDIF
|
|
ENDIF
|
|
iFloydPain ++
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 2
|
|
IF MANAGE_MY_TIMER(iPainTimer,GET_RANDOM_INT_IN_RANGE(2000,6000))
|
|
iFloydPain = 0
|
|
ENDIF
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
ENDPROC
|
|
|
|
INT iAllowResponseTimer
|
|
VECTOR vPlayerPosition
|
|
BOOL bLeftDocks
|
|
INT iSafeTimer
|
|
|
|
//PURPOSE: Manage michael driving to other docks
|
|
PROC MISSION_STAGE_10_PROC()
|
|
|
|
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-108.585716,-2429.462158,26.250675>>, <<-108.808174,-2400.434082,16.000675>>, 13.000000)
|
|
SET_PED_CAPSULE(PLAYER_PED_ID(),0.25)
|
|
ENDIF
|
|
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("TEXT FROM RON")
|
|
IF MANAGE_MY_TIMER(iTextMessageDelay,5000)
|
|
SEND_TEXT_MESSAGE_TO_CURRENT_PLAYER (CHAR_RON, "TXT_PHOTO_R", TXTMSG_UNLOCKED)
|
|
SET_LABEL_AS_TRIGGERED("TEXT FROM RON",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
MANAGE_CRANE_CLEANUP()
|
|
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DH_1_GET_TO_TRUCK")
|
|
IF IS_AUDIO_SCENE_ACTIVE("DH_1_PHONE_RON")
|
|
STOP_AUDIO_SCENE("DH_1_PHONE_RON")
|
|
ELSE
|
|
START_AUDIO_SCENE("DH_1_GET_TO_TRUCK")
|
|
SET_LABEL_AS_TRIGGERED("DH_1_GET_TO_TRUCK",TRUE)
|
|
ENDIF
|
|
ELSE
|
|
IF IS_VEHICLE_DRIVEABLE(vehFloydTruck)
|
|
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(),vehFloydTruck)
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DH_1_DRIVE_TO_DOCKS")
|
|
IF IS_AUDIO_SCENE_ACTIVE("DH_1_GET_TO_TRUCK")
|
|
STOP_AUDIO_SCENE("DH_1_GET_TO_TRUCK")
|
|
ELSE
|
|
START_AUDIO_SCENE("DH_1_DRIVE_TO_DOCKS")
|
|
SET_LABEL_AS_TRIGGERED("DH_1_DRIVE_TO_DOCKS",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-207.146667,-2515.569336,4.152911>>, <<-187.418167,-2515.733154,13.297941>>, 43.000000)
|
|
LOCK_AUTOMATIC_DOOR_OPEN(AUTODOOR_DOCKS_BACK_GATE_OUT,TRUE,FALSE)
|
|
SET_SCRIPT_UPDATE_DOOR_AUDIO(g_sAutoDoorData[AUTODOOR_DOCKS_BACK_GATE_OUT].doorID,TRUE)
|
|
ELSE
|
|
FORCE_AUTOMATIC_DOOR_SLIDE_OPEN(AUTODOOR_DOCKS_BACK_GATE_OUT,FALSE)
|
|
ENDIF
|
|
|
|
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<20.904465,-2527.153320,4.268342>>, <<9.272564,-2544.315674,11.300495>>, 46.250000)
|
|
LOCK_AUTOMATIC_DOOR_OPEN(AUTODOOR_DOCKS_FRONT_GATE_OUT,TRUE,FALSE)
|
|
SET_SCRIPT_UPDATE_DOOR_AUDIO(g_sAutoDoorData[AUTODOOR_DOCKS_FRONT_GATE_OUT].doorID,TRUE)
|
|
ELSE
|
|
FORCE_AUTOMATIC_DOOR_SLIDE_OPEN(AUTODOOR_DOCKS_FRONT_GATE_OUT,FALSE)
|
|
ENDIF
|
|
|
|
CREATE_THE_DOCKS_STUFF()
|
|
|
|
IF NOT bLeftDocks
|
|
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-183.039520,-2523.408203,13.262724>>, <<-208.735977,-2522.902832,4.504209>>, 12.750000)
|
|
bLeftDocks = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF bLeftDocks
|
|
IF GET_DISTANCE_BETWEEN_COORDS(<<5.0966, -2528.8704, 5.0503>>,GET_ENTITY_COORDS(PLAYER_PED_ID())) > 300
|
|
SAFE_CLEANUP_PED(pedMerc[0],S_M_Y_BLACKOPS_01)
|
|
SAFE_CLEANUP_PED(pedMerc[1],S_M_Y_BLACKOPS_01)
|
|
SAFE_CLEANUP_PED(pedMerc[2],S_M_Y_BLACKOPS_01)
|
|
SAFE_CLEANUP_PED(pedMerc[3],S_M_Y_BLACKOPS_01)
|
|
SAFE_CLEANUP_PED(pedMerc[7],S_M_Y_BLACKOPS_01)
|
|
SAFE_CLEANUP_PED(pedMerc[8],S_M_Y_BLACKOPS_01)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF GET_DISTANCE_BETWEEN_COORDS(<<485.0831, -3051.7222, 5.2262>>,GET_ENTITY_COORDS(PLAYER_PED_ID())) < 100
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("REQ_MERRYWEATHER_GUARDS_AT_OTHER_DOCKS")
|
|
IF SETUP_MISSION_REQUIREMENT(REQ_MERRYWEATHER_GUARDS_AT_OTHER_DOCKS)
|
|
SET_LABEL_AS_TRIGGERED("REQ_MERRYWEATHER_GUARDS_AT_OTHER_DOCKS",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF iProgress < 6
|
|
OR iProgress = 98
|
|
OR iProgress = 99
|
|
DOOR_SYSTEM_SET_OPEN_RATIO(g_sAutoDoorData[AUTODOOR_MIL_DOCKS_GATE_IN].doorID, 1.0)
|
|
DOOR_SYSTEM_SET_DOOR_STATE(g_sAutoDoorData[AUTODOOR_MIL_DOCKS_GATE_IN].doorID,DOORSTATE_FORCE_OPEN_THIS_FRAME)
|
|
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<497.518677,-3065.054443,3.576474>>, <<471.410797,-3065.453857,35.069195>>, 100.000000)
|
|
MANAGE_MERRYWEATHER_RESPONSE_TO_PLAYER()
|
|
MANAGE_MERRYWEATHER_RESPONSE()
|
|
ENDIF
|
|
ENDIF
|
|
|
|
SWITCH iProgress
|
|
|
|
CASE 0//Create objective specific items- print objective, add blips etc
|
|
|
|
IF IS_SCREEN_FADED_OUT()
|
|
MANAGE_PLAYER_OUTFIT()
|
|
ENDIF
|
|
|
|
s_crane.f_crane_offset = MIN_CRANE_OFFSET
|
|
s_crane.f_crane_vel = 0.0
|
|
|
|
IF DOES_ENTITY_EXIST(vehHandler)
|
|
DELETE_VEHICLE(vehHandler)
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(pedDockWorker[17])
|
|
DELETE_PED(pedDockWorker[17])
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(pedDockWorker[18])
|
|
DELETE_PED(pedDockWorker[18])
|
|
ENDIF
|
|
|
|
IF SETUP_PEDS_FOR_DIALOGUE()
|
|
IF IS_VEHICLE_DRIVEABLE(vehFloydTruck) AND IS_VEHICLE_DRIVEABLE(vehTrailer2)
|
|
IF NOT IS_VEHICLE_ATTACHED_TO_TRAILER(vehFloydTruck)
|
|
ATTACH_VEHICLE_TO_TRAILER(vehFloydTruck,vehTrailer2)
|
|
ENDIF
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(vehFloydTruck) AND IS_VEHICLE_DRIVEABLE(vehTrailer2)
|
|
|
|
IF NOT IS_SCREEN_FADED_OUT()
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
CLEAR_PED_TASKS_IMMEDIATELY(pedFloyd)
|
|
// SET_ENTITY_COORDS(pedFloyd, <<-118.3164, -2412.3242, 5.0000>>)
|
|
// SET_ENTITY_HEADING(pedFloyd, 330.0682)
|
|
// IF NOT IS_PED_INJURED(pedFloyd)
|
|
// IF IS_VEHICLE_DRIVEABLE(vehFloydTruck)
|
|
// IF IS_VEHICLE_SEAT_FREE(vehFloydTruck,VS_FRONT_RIGHT)
|
|
// SET_PED_INTO_VEHICLE(pedFloyd,vehFloydTruck,VS_FRONT_RIGHT)
|
|
// ENDIF
|
|
// ENDIF
|
|
// ENDIF
|
|
SET_ENTITY_COORDS(pedFloyd, <<-120.1837, -2418.3833, 5.0014>>)
|
|
SET_ENTITY_HEADING(pedFloyd, 2.0550)
|
|
SET_ENTITY_SHOULD_FREEZE_WAITING_ON_COLLISION(pedFloyd,TRUE)
|
|
OPEN_SEQUENCE_TASK(seqMain)
|
|
TASK_LEAVE_ANY_VEHICLE(NULL)
|
|
TASK_FOLLOW_NAV_MESH_TO_COORD(NULL, <<-118.3164, -2412.3242, 5.0000>>,1)
|
|
TASK_START_SCENARIO_AT_POSITION(NULL,"WORLD_HUMAN_STAND_IMPATIENT",<<-118.3164, -2412.3242, 5.0000>>,330.0682)
|
|
CLOSE_SEQUENCE_TASK(seqMain)
|
|
TASK_PERFORM_SEQUENCE(pedFloyd, seqMain)
|
|
|
|
ENDIF
|
|
ENDIF
|
|
|
|
SET_VEHICLE_EXTRA(vehTrailer2,1,FALSE)
|
|
|
|
IF NOT IS_PED_INJURED(pedDockWorker[13])
|
|
TASK_WANDER_STANDARD(pedDockWorker[13])
|
|
SET_PED_AS_NO_LONGER_NEEDED(pedDockWorker[13])
|
|
ENDIF
|
|
|
|
REMOVE_ANIM_DICT("missheistdockssetup1ig_12@idle_a")
|
|
REMOVE_ANIM_DICT("oddjobs@towingpleadingidle_a")
|
|
|
|
SET_VEHICLE_IS_CONSIDERED_BY_PLAYER(vehFloydTruck,TRUE)
|
|
REQUEST_MODEL(TIPTRUCK)
|
|
iMissionDialogue = 17
|
|
iFloydPain = 0
|
|
|
|
bRestrictedSupressed = FALSE
|
|
IF IS_HELP_MESSAGE_BEING_DISPLAYED()
|
|
CLEAR_HELP()
|
|
ENDIF
|
|
SET_REPLAY_MID_MISSION_STAGE_WITH_NAME(8,"Drive to the other docks")
|
|
SET_ALL_RANDOM_PEDS_FLEE(PLAYER_ID(), TRUE)
|
|
CLEAR_AREA(<< 476.4661, -3040.6094, 6.0984 >>,100,FALSE)
|
|
SET_PED_NON_CREATION_AREA(<<682.4604, -2936.8667, 2.9499>>,<<260.5602, -3529.1248, -17.7944>>)
|
|
|
|
SET_PED_COMBAT_ATTRIBUTES(PLAYER_PED_ID(),CA_DO_DRIVEBYS,TRUE)
|
|
CREATE_FORCED_OBJECT(<<479.2571, -3115.5513, 5.0701>>,50,PROP_GATE_DOCKS_LD,TRUE)
|
|
|
|
REGISTER_PED_TO_ACTIVATE_AUTOMATIC_DOOR(AUTODOOR_MIL_DOCKS_GATE_IN,PLAYER_PED_ID())
|
|
//DOOR_SYSTEM_SET_OPEN_RATIO(g_sAutoDoorData[AUTODOOR_MIL_DOCKS_GATE_IN].doorID, 1.0)
|
|
//DOOR_SYSTEM_SET_HOLD_OPEN(g_sAutoDoorData[AUTODOOR_MIL_DOCKS_GATE_IN].doorID, TRUE)
|
|
|
|
IF bIsJumpingDirectlyToStage = TRUE
|
|
v_crane_pos = <<-110.2902, -2415.7900, 5.0500>>
|
|
vSpreaderPosition = <<-109.87, -2415.71, 14.67>>
|
|
IF SETUP_MISSION_REQUIREMENT(REQ_CRANE)
|
|
bLeftDocks = FALSE
|
|
iProgress++
|
|
ENDIF
|
|
ELSE
|
|
bLeftDocks = FALSE
|
|
iProgress++
|
|
ENDIF
|
|
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 1
|
|
IF bContainerSetUpForDrive = FALSE
|
|
IF IS_VEHICLE_DRIVEABLE(vehTrailer2)
|
|
//HAD TO TURN OFF COLLISION
|
|
IF IS_SCREEN_FADED_OUT()
|
|
IF IS_VEHICLE_DRIVEABLE(vehFloydTruck)
|
|
SET_ENTITY_COORDS(vehFloydTruck,<< -117.1943, -2415.8176, 5.0001 >>)
|
|
SET_ENTITY_HEADING(vehFloydTruck,89.5928)
|
|
ENDIF
|
|
|
|
SET_GAMEPLAY_CAM_RELATIVE_HEADING(0)
|
|
SET_GAMEPLAY_CAM_RELATIVE_PITCH(0)
|
|
|
|
IF DOES_ENTITY_EXIST(s_containers[1].obj_main)
|
|
DELETE_OBJECT(s_containers[1].obj_main)
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(s_containers[0].obj_main)
|
|
DELETE_OBJECT(s_containers[0].obj_main)
|
|
ENDIF
|
|
|
|
SET_ENTITY_COORDS(PLAYER_PED_ID(),<<-118.3399, -2410.1582, 5.0013>>)
|
|
SET_ENTITY_HEADING(PLAYER_PED_ID(),145.9175)
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(vehFloydTruck)
|
|
IF NOT IS_VEHICLE_ATTACHED_TO_TRAILER(vehFloydTruck)
|
|
ATTACH_VEHICLE_TO_TRAILER(vehFloydTruck,vehTrailer2)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
IF IS_VEHICLE_DRIVEABLE(vehFloydTruck)
|
|
IF IS_VEHICLE_SEAT_FREE(vehFloydTruck,VS_FRONT_RIGHT)
|
|
SET_PED_INTO_VEHICLE(pedFloyd,vehFloydTruck,VS_FRONT_RIGHT)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(s_containers[1].obj_main)
|
|
DELETE_OBJECT(s_containers[1].obj_main)
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(s_containers[0].obj_main)
|
|
DELETE_OBJECT(s_containers[0].obj_main)
|
|
ENDIF
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(vehFloydTruck) AND IS_VEHICLE_DRIVEABLE(vehTrailer2)
|
|
FREEZE_ENTITY_POSITION(vehFloydTruck,FALSE)
|
|
FREEZE_ENTITY_POSITION(vehTrailer2,FALSE)
|
|
ENDIF
|
|
|
|
SET_VEHICLE_EXTRA(vehTrailer2,1,FALSE)
|
|
|
|
REQUEST_ANIM_DICT("misslsdhsclipboard@idle_a")
|
|
REQUEST_ANIM_DICT("misslsdhsclipboard@base")
|
|
REQUEST_ANIM_DICT("amb@code_human_police_crowd_control@idle_a")
|
|
REQUEST_ANIM_DICT("misslsdhs")
|
|
REQUEST_MODEL(P_CS_Clipboard)
|
|
REQUEST_MODEL(PROP_PENCIL_01)
|
|
REQUEST_MODEL(TIPTRUCK)
|
|
REQUEST_MODEL(prop_barrier_work06a)
|
|
bContainerSetUpForDrive = TRUE
|
|
ENDIF
|
|
ELSE
|
|
IF IS_VEHICLE_DRIVEABLE(vehFloydTruck) AND IS_VEHICLE_DRIVEABLE(vehTrailer2)
|
|
IF IS_VEHICLE_ATTACHED_TO_TRAILER(vehFloydTruck)
|
|
IF IS_VEHICLE_DRIVEABLE(vehFloydTruck) AND IS_VEHICLE_DRIVEABLE(vehTrailer2)
|
|
FREEZE_ENTITY_POSITION(vehFloydTruck,FALSE)
|
|
FREEZE_ENTITY_POSITION(vehTrailer2,FALSE)
|
|
ENDIF
|
|
|
|
INIT_STAGE()
|
|
|
|
createDockWorker(21)
|
|
REQUEST_ANIM_DICT("misslsdhsclipboard@idle_a")
|
|
REQUEST_ANIM_DICT("misslsdhsclipboard@base")
|
|
REQUEST_ANIM_DICT("amb@code_human_police_crowd_control@idle_a")
|
|
REQUEST_ANIM_DICT("misslsdhs")
|
|
REQUEST_MODEL(P_CS_Clipboard)
|
|
REQUEST_MODEL(PROP_PENCIL_01)
|
|
REQUEST_MODEL(TIPTRUCK)
|
|
REQUEST_MODEL(prop_barrier_work06a)
|
|
|
|
iProgress = 99
|
|
ELSE
|
|
ATTACH_VEHICLE_TO_TRAILER(vehFloydTruck,vehTrailer2)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
|
|
//CLEAR PRINTS CHECK ANIM REQUESTS AND SET UP SECURITY GUY
|
|
|
|
CASE 99
|
|
REQUEST_MODEL(TIPTRUCK)
|
|
IF HAS_ANIM_DICT_LOADED("misslsdhs")
|
|
AND HAS_ANIM_DICT_LOADED("misslsdhsclipboard@idle_a")
|
|
AND HAS_ANIM_DICT_LOADED("misslsdhsclipboard@base")
|
|
AND HAS_ANIM_DICT_LOADED("amb@code_human_police_crowd_control@idle_a")
|
|
AND HAS_MODEL_LOADED(P_CS_Clipboard)
|
|
AND HAS_MODEL_LOADED(PROP_PENCIL_01)
|
|
AND HAS_MODEL_LOADED(TIPTRUCK)
|
|
AND HAS_MODEL_LOADED(prop_barrier_work06a)
|
|
IF NOT DOES_ENTITY_EXIST(objClipboard[2])
|
|
objClipboard[2] = CREATE_OBJECT(P_CS_CLIPBOARD,<< -128.2126, -2568.8252, 5.0010 >>)
|
|
ELSE
|
|
IF NOT DOES_ENTITY_EXIST(objPencil[2])
|
|
objPencil[2] = CREATE_OBJECT(PROP_PENCIL_01,<< -128.2126, -2568.8252, 5.0010 >>)
|
|
ELSE
|
|
IF NOT DOES_ENTITY_EXIST(objClipboard[3])
|
|
objClipboard[3] = CREATE_OBJECT(P_CS_CLIPBOARD,vDocks)
|
|
ELSE
|
|
IF NOT DOES_ENTITY_EXIST(objPencil[3])
|
|
objPencil[3] = CREATE_OBJECT(PROP_PENCIL_01,vDocks)
|
|
ELSE
|
|
IF DOES_ENTITY_EXIST(pedDockWorker[15])
|
|
IF NOT IS_PED_INJURED(pedDockWorker[15])
|
|
CLEAR_ALL_PED_PROPS(pedDockWorker[15])
|
|
ATTACH_ENTITY_TO_ENTITY(objPencil[3],pedDockWorker[15],GET_PED_BONE_INDEX(pedDockWorker[15], BONETAG_PH_R_HAND),<<0,0,0>>,<<0,0,0>>,TRUE)
|
|
ATTACH_ENTITY_TO_ENTITY(objClipboard[3],pedDockWorker[15],GET_PED_BONE_INDEX(pedDockWorker[15], BONETAG_PH_L_HAND),<<0,0,0>>,<<0,0,0>>,TRUE)
|
|
TASK_PLAY_ANIM(pedDockWorker[15],"misslsdhsclipboard@base", "base",INSTANT_BLEND_IN,INSTANT_BLEND_OUT,-1,AF_LOOPING)
|
|
ADD_PED_FOR_DIALOGUE(sSpeech, 5, pedDockWorker[15], "GATEGUARD")
|
|
SET_PED_CAN_EVASIVE_DIVE(pedDockWorker[15],FALSE)
|
|
SET_PED_KEEP_TASK(pedDockWorker[15],TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//BLOCKING
|
|
IF HAS_MODEL_LOADED(TIPTRUCK)
|
|
IF NOT DOES_ENTITY_EXIST(vehBlocking)
|
|
SPAWN_VEHICLE(vehBlocking,TIPTRUCK, << 491.91, -3051.15, 5.77 >>, 6.20,-1,1,FALSE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF HAS_MODEL_LOADED(prop_barrier_work06a)
|
|
IF NOT DOES_ENTITY_EXIST(ObjdockProps[0])
|
|
ObjdockProps[0] = CREATE_OBJECT_NO_OFFSET(prop_barrier_work06a,<<488.82, -3048.82, 5.11>>)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF HAS_MODEL_LOADED(prop_barrier_work06a)
|
|
IF NOT DOES_ENTITY_EXIST(ObjdockProps[1])
|
|
ObjdockProps[1] = CREATE_OBJECT_NO_OFFSET(prop_barrier_work06a,<<494.70, -3049.03, 5.11>>)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(pedDockWorker[16])
|
|
IF NOT IS_PED_INJURED(pedDockWorker[16])
|
|
CLEAR_ALL_PED_PROPS(pedDockWorker[16])
|
|
ATTACH_ENTITY_TO_ENTITY(objPencil[2],pedDockWorker[16],GET_PED_BONE_INDEX(pedDockWorker[16], BONETAG_PH_R_HAND),<<0,0,0>>,<<0,0,0>>,TRUE)
|
|
ATTACH_ENTITY_TO_ENTITY(objClipboard[2],pedDockWorker[16],GET_PED_BONE_INDEX(pedDockWorker[16], BONETAG_PH_L_HAND),<<0,0,0>>,<<0,0,0>>,TRUE)
|
|
TASK_PLAY_ANIM(pedDockWorker[16],"misslsdhsclipboard@base", "base",INSTANT_BLEND_IN,INSTANT_BLEND_OUT,-1,AF_LOOPING)
|
|
ADD_PED_FOR_DIALOGUE(sSpeech, 6, pedDockWorker[16], "GATEGUARD")
|
|
SET_PED_CAN_EVASIVE_DIVE(pedDockWorker[16],FALSE)
|
|
SET_PED_KEEP_TASK(pedDockWorker[16],TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(pedDockWorker[21])
|
|
IF NOT IS_PED_INJURED(pedDockWorker[21])
|
|
OPEN_SEQUENCE_TASK(seqMain)
|
|
TASK_LOOK_AT_ENTITY(NULL,pedDockWorker[16],-1)
|
|
TASK_PLAY_ANIM(NULL,"amb@code_human_police_crowd_control@idle_a", "idle_a",NORMAL_BLEND_IN,NORMAL_BLEND_OUT,-1,AF_DEFAULT)
|
|
TASK_PAUSE(NULL,GET_RANDOM_INT_IN_RANGE(1000,3000))
|
|
TASK_PLAY_ANIM(NULL,"amb@code_human_police_crowd_control@idle_a", "idle_b",NORMAL_BLEND_IN,NORMAL_BLEND_OUT,-1,AF_DEFAULT)
|
|
TASK_PLAY_ANIM(NULL,"amb@code_human_police_crowd_control@idle_a", "idle_c",NORMAL_BLEND_IN,NORMAL_BLEND_OUT,-1,AF_DEFAULT)
|
|
TASK_PAUSE(NULL,GET_RANDOM_INT_IN_RANGE(500,1000))
|
|
TASK_PLAY_ANIM(NULL,"amb@code_human_police_crowd_control@idle_a", "idle_a",NORMAL_BLEND_IN,NORMAL_BLEND_OUT,-1,AF_DEFAULT)
|
|
TASK_PLAY_ANIM(NULL,"amb@code_human_police_crowd_control@idle_a", "idle_c",NORMAL_BLEND_IN,NORMAL_BLEND_OUT,-1,AF_DEFAULT)
|
|
TASK_PLAY_ANIM(NULL,"amb@code_human_police_crowd_control@idle_a", "idle_b",NORMAL_BLEND_IN,NORMAL_BLEND_OUT,-1,AF_DEFAULT)
|
|
SET_SEQUENCE_TO_REPEAT(seqMain,REPEAT_FOREVER)
|
|
CLOSE_SEQUENCE_TASK(seqMain)
|
|
|
|
TASK_PERFORM_SEQUENCE(pedDockWorker[21], seqMain)
|
|
SET_PED_KEEP_TASK(pedDockWorker[21],TRUE)
|
|
SET_PED_CAN_EVASIVE_DIVE(pedDockWorker[21],FALSE)
|
|
ENDIF
|
|
ENDIF
|
|
IF bIsJumpingDirectlyToStage
|
|
iProgress = 3
|
|
ELSE
|
|
iProgress = 2
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 2
|
|
|
|
vPlayerPosition = GET_ENTITY_COORDS(PLAYER_PED_ID())
|
|
PRINTSTRING("Z - ")PRINTFLOAT(vPlayerPosition.z)
|
|
IF vPlayerPosition.z > 6.1
|
|
IF IS_PLAYER_AT_LOCATION_ANY_MEANS(sLocatesData,<<-106.4769, -2404.5315, 5.0013>>,<<0.1,0.1,LOCATE_SIZE_HEIGHT>>,TRUE,"DESCRA")
|
|
|
|
ELSE
|
|
IF vPlayerPosition.z < 6.1
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_37")
|
|
IF NOT IS_SCREEN_FADED_OUT()
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF CREATE_CONVERSATION(sSpeech,"D1AUD", "DS1_37", CONV_PRIORITY_HIGH) // {floyd yells to trevor from truck}
|
|
REPLAY_RECORD_BACK_FOR_TIME(4.0, 8.0, REPLAY_IMPORTANCE_HIGHEST)
|
|
SET_LABEL_AS_TRIGGERED("DS1_37", TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
SET_LABEL_AS_TRIGGERED("DS1_37", TRUE)
|
|
ENDIF
|
|
ELSE
|
|
ASSISTED_MOVEMENT_REMOVE_ROUTE("pols_1")
|
|
ASSISTED_MOVEMENT_REMOVE_ROUTE("pols_2")
|
|
ASSISTED_MOVEMENT_REMOVE_ROUTE("pols_3")
|
|
ASSISTED_MOVEMENT_REMOVE_ROUTE("pols_4")
|
|
ASSISTED_MOVEMENT_REMOVE_ROUTE("pols_5")
|
|
ASSISTED_MOVEMENT_REMOVE_ROUTE("pols_6")
|
|
ASSISTED_MOVEMENT_REMOVE_ROUTE("pols_7")
|
|
ASSISTED_MOVEMENT_REMOVE_ROUTE("pols_8")
|
|
CLEAR_MISSION_LOCATE_STUFF(sLocatesData)
|
|
iSafeTimer = GET_GAME_TIMER()
|
|
iProgress = 98
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF vPlayerPosition.z < 6.1
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_37")
|
|
IF NOT IS_SCREEN_FADED_OUT()
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF CREATE_CONVERSATION(sSpeech,"D1AUD", "DS1_37", CONV_PRIORITY_HIGH) // {floyd yells to trevor from truck}
|
|
SET_LABEL_AS_TRIGGERED("DS1_37", TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
SET_LABEL_AS_TRIGGERED("DS1_37", TRUE)
|
|
ENDIF
|
|
ELSE
|
|
ASSISTED_MOVEMENT_REMOVE_ROUTE("pols_1")
|
|
ASSISTED_MOVEMENT_REMOVE_ROUTE("pols_2")
|
|
ASSISTED_MOVEMENT_REMOVE_ROUTE("pols_3")
|
|
ASSISTED_MOVEMENT_REMOVE_ROUTE("pols_4")
|
|
ASSISTED_MOVEMENT_REMOVE_ROUTE("pols_5")
|
|
ASSISTED_MOVEMENT_REMOVE_ROUTE("pols_6")
|
|
ASSISTED_MOVEMENT_REMOVE_ROUTE("pols_7")
|
|
ASSISTED_MOVEMENT_REMOVE_ROUTE("pols_8")
|
|
CLEAR_MISSION_LOCATE_STUFF(sLocatesData)
|
|
iSafeTimer = GET_GAME_TIMER()
|
|
iProgress = 98
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 98
|
|
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
IF IS_VEHICLE_DRIVEABLE(vehFloydTruck)
|
|
IF NOT IS_PED_IN_VEHICLE(pedFloyd,vehFloydTruck)
|
|
IF GET_SCRIPT_TASK_STATUS(pedFloyd,SCRIPT_TASK_ENTER_VEHICLE)<> PERFORMING_TASK
|
|
TASK_ENTER_VEHICLE(pedFloyd,vehFloydTruck,DEFAULT_TIME_BEFORE_WARP, VS_FRONT_RIGHT,PEDMOVEBLENDRATIO_WALK,ECF_BLOCK_SEAT_SHUFFLING)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF MANAGE_MY_TIMER(iSafeTimer,5000)
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
IF IS_VEHICLE_DRIVEABLE(vehFloydTruck)
|
|
IF IS_PED_GETTING_INTO_A_VEHICLE(pedFloyd)
|
|
OR IS_PED_IN_VEHICLE(pedFloyd,vehFloydTruck)
|
|
CLEAR_MISSION_LOCATE_STUFF(sLocatesData)
|
|
bGoToSpeach = FALSE
|
|
iStageStartTime = GET_GAME_TIMER()
|
|
iProgress = 3
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_37b")
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF CREATE_CONVERSATION(sSpeech,"D1AUD", "DS1_37b", CONV_PRIORITY_HIGH) // {floyd yells to trevor from truck}
|
|
SET_LABEL_AS_TRIGGERED("DS1_37b", TRUE)
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
IF IS_VEHICLE_DRIVEABLE(vehFloydTruck)
|
|
CLEAR_PED_TASKS(pedFloyd)
|
|
TASK_ENTER_VEHICLE(pedFloyd,vehFloydTruck,DEFAULT_TIME_BEFORE_WARP, VS_FRONT_RIGHT,PEDMOVEBLENDRATIO_WALK,ECF_BLOCK_SEAT_SHUFFLING)
|
|
ENDIF
|
|
ENDIF
|
|
iStageStartTime = GET_GAME_TIMER()
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
IF IS_VEHICLE_DRIVEABLE(vehFloydTruck)
|
|
IF IS_PED_GETTING_INTO_A_VEHICLE(pedFloyd)
|
|
OR IS_PED_IN_VEHICLE(pedFloyd,vehFloydTruck)
|
|
CLEAR_MISSION_LOCATE_STUFF(sLocatesData)
|
|
bGoToSpeach = FALSE
|
|
iStageStartTime = GET_GAME_TIMER()
|
|
iProgress = 3
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 3
|
|
|
|
IF NOT IS_PED_INJURED(pedFloyd)
|
|
IF IS_VEHICLE_DRIVEABLE(vehFloydTruck)
|
|
IF NOT IS_PED_IN_VEHICLE(pedFloyd,vehFloydTruck)
|
|
IF GET_SCRIPT_TASK_STATUS(pedFloyd,SCRIPT_TASK_ENTER_VEHICLE)<> PERFORMING_TASK
|
|
TASK_ENTER_VEHICLE(pedFloyd,vehFloydTruck,DEFAULT_TIME_BEFORE_WARP, VS_FRONT_RIGHT,PEDMOVEBLENDRATIO_WALK,ECF_BLOCK_SEAT_SHUFFLING)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("GET IN BIG RIG")
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData,IAT_IGNORE_DIALOGUE_IF_SUBTITLES_OFF)
|
|
PRINT_GOD_TEXT("AW_TREVTRU")
|
|
SET_LABEL_AS_TRIGGERED("GET IN BIG RIG", TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_VEHICLE_ATTACHED_TO_TRAILER(vehFloydTruck)
|
|
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<471.729736,-3121.691895,4.570057>>, <<484.070709,-3121.885742,11.820057>>, 11.250000)
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = COVER_BLOWN
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
ELSE
|
|
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<483.672943,-3107.970459,4.570056>>, <<474.004242,-3108.686523,12.070057>>, 12.750000)
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = COVER_BLOWN
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
ENDIF
|
|
|
|
FLOAT vDistA
|
|
FLOAT vDistB
|
|
//TEXT_LABEL Conversation
|
|
PED_INDEX pedTemp
|
|
IF IS_VEHICLE_DRIVEABLE(vehFloydTruck)
|
|
IF IS_VEHICLE_ATTACHED_TO_TRAILER(vehFloydTruck)
|
|
IF IS_PLAYER_AT_LOCATION_WITH_BUDDY_IN_VEHICLE(sLocatesData,<< 476.4661, -3040.6094, 5.0913>>,<<0.1,0.1,LOCATE_SIZE_HEIGHT>>,FALSE,pedFloyd,vehFloydTruck,"AW_DRI_SUB","AW_DONT_LEAVE_T","","AW_GETBACK_INT",FALSE,FALSE)
|
|
|
|
ELSE
|
|
IF DOES_BLIP_EXIST(sLocatesData.LocationBlip)
|
|
IF IS_ENTITY_AT_COORD(PLAYER_PED_ID(),<< 476.4661, -3040.6094, 6.0984 >>,<<7,7,7>>)
|
|
REQUEST_ANIM_DICT("misslsdhsclipboard@idle_a")
|
|
IF HAS_ANIM_DICT_LOADED("misslsdhsclipboard@idle_a")
|
|
KILL_FACE_TO_FACE_CONVERSATION()
|
|
IF NOT IS_PED_INJURED(pedDockWorker[15])
|
|
vDistA = GET_DISTANCE_BETWEEN_ENTITIES(pedDockWorker[15],vehFloydTruck)
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(pedDockWorker[16])
|
|
vDistB = GET_DISTANCE_BETWEEN_ENTITIES(pedDockWorker[16],vehFloydTruck)
|
|
ENDIF
|
|
|
|
IF vDistA < vDistB
|
|
pedTemp = pedDockWorker[15]
|
|
ELSE
|
|
pedTemp = pedDockWorker[16]
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(pedTemp)
|
|
OPEN_SEQUENCE_TASK(seqMain)
|
|
TASK_PLAY_ANIM(NULL,"misslsdhsclipboard@idle_a", "idle_a",NORMAL_BLEND_IN,NORMAL_BLEND_OUT,-1,AF_LOOPING)
|
|
CLOSE_SEQUENCE_TASK(seqMain)
|
|
TASK_PERFORM_SEQUENCE(pedTemp, seqMain)
|
|
ENDIF
|
|
|
|
REMOVE_CUTSCENE()
|
|
REQUEST_CUTSCENE("LSDHS_MCS_2")
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_13@kick_idle")
|
|
CLEAR_MISSION_LOCATE_STUFF(sLocatesData)
|
|
iProgress++
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_37c")
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData, IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_37c", CONV_PRIORITY_MEDIUM)
|
|
REPLAY_RECORD_BACK_FOR_TIME(8.0, 10.0, REPLAY_IMPORTANCE_HIGHEST)
|
|
SET_LABEL_AS_TRIGGERED("DS1_37c",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF bGoToSpeach = FALSE
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData, IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_16", CONV_PRIORITY_MEDIUM)
|
|
bGoToSpeach = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_39")
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData, IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_39", CONV_PRIORITY_MEDIUM)
|
|
SET_LABEL_AS_TRIGGERED("DS1_39",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_IN_VEHICLE(PLAYER_PED_ID(), vehFloydTruck)
|
|
IF NOT DOES_BLIP_EXIST(sLocatesData.vehicleBlip)
|
|
sLocatesData.vehicleBlip = ADD_BLIP_FOR_ENTITY(vehFloydTruck)
|
|
SET_BLIP_COLOUR(sLocatesData.vehicleBlip,BLIP_COLOUR_BLUE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF bGoToSpeach = TRUE
|
|
//MANAGE PAUSE DIALOGUE
|
|
IF DOES_BLIP_EXIST(sLocatesData.LocationBlip)
|
|
IF IS_FACE_TO_FACE_CONVERSATION_PAUSED()
|
|
CLEAR_PRINTS()
|
|
PAUSE_FACE_TO_FACE_CONVERSATION(FALSE)
|
|
ENDIF
|
|
//Play conversation
|
|
ELSE
|
|
IF NOT IS_FACE_TO_FACE_CONVERSATION_PAUSED()
|
|
IF IS_THIS_PRINT_BEING_DISPLAYED("AW_GETBACK_INT")
|
|
CLEAR_PRINTS()
|
|
ENDIF
|
|
PAUSE_FACE_TO_FACE_CONVERSATION(TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF MANAGE_MY_TIMER(iStageStartTime,3000)
|
|
IF DOES_BLIP_EXIST(sLocatesData.LocationBlip)
|
|
OR DOES_BLIP_EXIST(sLocatesData.vehicleBlip)
|
|
CLEAR_MISSION_LOCATE_STUFF(sLocatesData)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 4
|
|
PRINTLN("@@@@@@@ CAN_REQUEST_ASSETS_FOR_CUTSCENE_ENTITY() @@@@@@@@@@@")
|
|
IF CAN_REQUEST_ASSETS_FOR_CUTSCENE_ENTITY()
|
|
PRINTLN("@@@@@@@ SET_CUTSCENE_PED_COMPONENT_VARIATION_FROM_PED @@@@@@@@@@@")
|
|
SET_CUTSCENE_PED_COMPONENT_VARIATION_FROM_PED("Floyd", pedFloyd)
|
|
ENDIF
|
|
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_17")
|
|
IF CREATE_CONVERSATION(sSpeech,"D1AUD","DS1_17", CONV_PRIORITY_HIGH)
|
|
SET_LABEL_AS_TRIGGERED("DS1_17",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_VEHICLE_ATTACHED_TO_TRAILER(vehFloydTruck)
|
|
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<471.729736,-3121.691895,4.570057>>, <<484.070709,-3121.885742,11.820057>>, 11.250000)
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = COVER_BLOWN
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
ELSE
|
|
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<483.672943,-3107.970459,4.570056>>, <<474.004242,-3108.686523,12.070057>>, 12.750000)
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = COVER_BLOWN
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
ENDIF
|
|
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(vehFloydTruck)
|
|
IF IS_VEHICLE_ATTACHED_TO_TRAILER(vehFloydTruck)
|
|
IF IS_VEHICLE_DRIVEABLE(vehTrailer2)
|
|
IF NOT IS_ENTITY_IN_ANGLED_AREA(vehTrailer2, <<478.711945,-3105.557373,4.570057>>, <<479.165710,-3123.542236,10.820057>>, 6.500000)
|
|
//IF IS_PLAYER_AT_LOCATION_WITH_BUDDY_IN_VEHICLE(sLocatesData,<< 478.8654, -3107.2019, 6.0984 >>,<<5,5,5>>,FALSE,pedFloyd,vehFloydTruck,"AW_DRI_SUB2","AW_DONT_LEAVE_T","AW_DOCK1","AW_GETBACK_INT",FALSE,FALSE)
|
|
IF IS_PLAYER_AT_LOCATION_WITH_BUDDY_IN_VEHICLE(sLocatesData,<< 478.8654, -3107.2019, 5.0690 >>,<<5,5,LOCATE_SIZE_HEIGHT>>,TRUE,pedFloyd,vehFloydTruck,"","AW_DONT_LEAVE_T","AW_DOCK1","AW_GETBACK_INT",FALSE,FALSE)
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("HALT")
|
|
IF IS_VEHICLE_DRIVEABLE(vehFloydTruck)
|
|
PLAY_SOUND_FROM_ENTITY(-1, "Truck_Stop", vehFloydTruck, "DOCKS_HEIST_SETUP_SOUNDS")
|
|
SET_LABEL_AS_TRIGGERED("HALT",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
IF BRING_VEHICLE_TO_HALT_AND_DISABLE_VEH_CONTROLS(vehFloydTruck,6.0,1)
|
|
|
|
REPLAY_RECORD_BACK_FOR_TIME(6.0, 0.0)
|
|
|
|
bDoneWithTruck = TRUE
|
|
KILL_ANY_CONVERSATION()
|
|
SET_PLAYER_CONTROL(PLAYER_ID(),FALSE)
|
|
REQUEST_CUTSCENE("LSDHS_MCS_2")
|
|
bIgnoreTheseFails = TRUE
|
|
e_section_stage = SECTION_STAGE_SETUP
|
|
i_current_event = 0
|
|
iProgress++
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
eFailedStage = eMissionStage
|
|
reason_for_fail = COVER_BLOWN
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ELSE
|
|
IF DOES_BLIP_EXIST(sLocatesData.LocationBlip)
|
|
OR DOES_BLIP_EXIST(sLocatesData.vehicleBlip)
|
|
CLEAR_MISSION_LOCATE_STUFF(sLocatesData)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
CASE 5
|
|
IF NOT IS_SCRIPTED_CONVERSATION_ONGOING()
|
|
IF IS_AUDIO_SCENE_ACTIVE("DH_1_DRIVE_TO_DOCKS")
|
|
STOP_AUDIO_SCENE("DH_1_DRIVE_TO_DOCKS")
|
|
ENDIF
|
|
RUN_MERRY_WEATHER_CUTSCENE()
|
|
REQUEST_ANIM_DICT("missheistdockssetup1ig_9@main_action")
|
|
REQUEST_ANIM_DICT("misslsdhsclipboard@idle_a")
|
|
iAllowResponseTimer = GET_GAME_TIMER()
|
|
iProgress++
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 6
|
|
IF NOT DOES_ENTITY_EXIST(vanByDocks)
|
|
SETUP_MISSION_REQUIREMENT(REQ_CAR_TO_DRIVE_FINAL_STAGE)
|
|
ELSE
|
|
IF NOT IS_CUTSCENE_ACTIVE()
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1ig_9@main_action")
|
|
|
|
//FIX FOR CLEANING UP UNUSED ASSETS
|
|
IF DOES_ENTITY_EXIST(vehMission)
|
|
DELETE_VEHICLE(vehMission)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(GET_PLAYER_VEH_MODEL(CHAR_TREVOR) )
|
|
ELSE
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(GET_PLAYER_VEH_MODEL(CHAR_TREVOR) )
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(pedWade)
|
|
DELETE_PED(pedWade)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(GET_NPC_PED_MODEL(CHAR_WADE))
|
|
ELSE
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(GET_NPC_PED_MODEL(CHAR_WADE))
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(s_sp_floyd_grabs_package[0].obj_prop)
|
|
DELETE_OBJECT(s_sp_floyd_grabs_package[0].obj_prop)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(prop_cs_package_01)
|
|
ELSE
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(prop_cs_package_01)
|
|
ENDIF
|
|
|
|
REMOVE_ANIM_DICT("missheistdockssetup1ig_4@start_idle")
|
|
REMOVE_ANIM_DICT("missheistdockssetup1ig_12@base")
|
|
REMOVE_ANIM_DICT("missheistdockssetup1ig_4@main_action")
|
|
REMOVE_ANIM_DICT("missheistdockssetup1ig_12@idle_a")
|
|
REMOVE_ANIM_DICT("missheistdockssetup1ig_13@start_idle")
|
|
REMOVE_ANIM_DICT("missheistdockssetup1ig_3@talk")
|
|
REMOVE_ANIM_DICT("missheistdockssetup1ig_3@base")
|
|
REMOVE_ANIM_DICT("missheistdockssetup1ig_13@main_action")
|
|
REMOVE_ANIM_DICT("missheistdockssetup1ig_5@base")
|
|
REMOVE_ANIM_DICT("missheistdockssetup1ig_7")
|
|
REMOVE_ANIM_DICT("misslsdhsclipboard@idle_a")
|
|
REMOVE_ANIM_DICT("missheistdockssetup1ig_12@idle_c")
|
|
|
|
CLEANUP_THE_CRANE()
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(vehFloydTruck)
|
|
SET_VEHICLE_IS_CONSIDERED_BY_PLAYER(vehFloydTruck,FALSE)
|
|
ENDIF
|
|
|
|
UNREGISTER_PED_TO_ACTIVATE_AUTOMATIC_DOOR(AUTODOOR_MIL_DOCKS_GATE_IN,PLAYER_PED_ID())
|
|
//DOOR_SYSTEM_SET_HOLD_OPEN(g_sAutoDoorData[AUTODOOR_MIL_DOCKS_GATE_IN].doorID, FALSE)
|
|
DOOR_SYSTEM_SET_OPEN_RATIO(g_sAutoDoorData[AUTODOOR_MIL_DOCKS_GATE_IN].doorID, 0.0)
|
|
DOOR_SYSTEM_SET_DOOR_STATE(g_sAutoDoorData[AUTODOOR_MIL_DOCKS_GATE_IN].doorID,DOORSTATE_LOCKED)
|
|
|
|
iProgress++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 7
|
|
|
|
IF MANAGE_MY_TIMER(iAllowResponseTimer,3000)
|
|
MANAGE_MERRYWEATHER_RESPONSE_TO_PLAYER()
|
|
ENDIF
|
|
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_SOF")
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData, IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_SOF", CONV_PRIORITY_MEDIUM)
|
|
SET_LABEL_AS_TRIGGERED("DS1_SOF",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_PLAYER_AT_ANGLED_AREA_ANY_MEANS(sLocatesData,<<476.6509, -3048.0332, 5.0939>>,<<522.403198,-3048.688477,4.068941>>, <<465.621979,-3048.312012,21.168930>>, 8.000000,FALSE,"LEAVE_RESTA")
|
|
REPLAY_RECORD_BACK_FOR_TIME(10.0, 5.0, REPLAY_IMPORTANCE_HIGHEST)
|
|
CLEAR_MISSION_LOCATE_STUFF(sLocatesData)
|
|
iProgress++
|
|
ELSE
|
|
IF DOES_BLIP_EXIST(sLocatesData.LocationBlip)
|
|
REMOVE_BLIP(sLocatesData.LocationBlip)
|
|
ENDIF
|
|
IF VDIST(<<476.6509, -3048.0332, 5.0939>>,GET_ENTITY_COORDS(PLAYER_PED_ID())) > 100
|
|
IF DOES_BLIP_EXIST(sLocatesData.LocationBlip)
|
|
REMOVE_BLIP(sLocatesData.LocationBlip)
|
|
ENDIF
|
|
CLEAR_MISSION_LOCATE_STUFF(sLocatesData)
|
|
iProgress++
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 8
|
|
|
|
SUPPRESS_RESTRICTED_AREA_WANTED_LEVEL(AC_MILITARY_DOCKS,FALSE)
|
|
RELEASE_SUPPRESSED_RESTRICTED_AREA_WANTED_LEVEL(AC_MILITARY_DOCKS,FALSE)
|
|
RESET_MISSION_STAGE_VARIABLES()
|
|
ADVANCE_MISSION_STAGE()
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
ENDPROC
|
|
|
|
INT iTimeBeforePhoneCall
|
|
INT iTimeInVehicle
|
|
BOOL bGotInVehicle
|
|
BOOL bDoPhoneCall
|
|
|
|
|
|
//PURPOSE: Drive home
|
|
PROC MISSION_STAGE_11_PROC()
|
|
|
|
CAM_VIEW_MODE_CONTEXT activeViewModeContext
|
|
CAM_VIEW_MODE activeViewMode
|
|
|
|
//Disable changing camera when near to drop off
|
|
IF GET_DISTANCE_BETWEEN_COORDS(GET_ENTITY_COORDS(PLAYER_PED_ID()),<< -1147.4010, -1522.5767, 9.4130 >>) < 30
|
|
DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_NEXT_CAMERA)
|
|
ENDIF
|
|
|
|
IF iProgress > 0
|
|
IF bDoPhoneCall = FALSE
|
|
IF IS_PED_SITTING_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
IF bGotInVehicle = FALSE
|
|
bGotInVehicle = TRUE
|
|
SET_WANTED_LEVEL_MULTIPLIER(0.2)
|
|
iTimeInVehicle = GET_GAME_TIMER()
|
|
ENDIF
|
|
ELSE
|
|
IF bGotInVehicle = FALSE
|
|
bGotInVehicle = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF MANAGE_MY_TIMER(iTimeBeforePhoneCall,60000)
|
|
OR MANAGE_MY_TIMER(iTimeInVehicle,7500) AND IS_PED_SITTING_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
IF GET_PLAYER_WANTED_LEVEL(PLAYER_ID()) = 0
|
|
IF SETUP_PEDS_FOR_DIALOGUE()
|
|
IF CHAR_CALL_PLAYER_CELLPHONE( sSpeech, CHAR_RON, "D1AUD", "DS1_12", CONV_PRIORITY_VERY_HIGH)
|
|
bDoPhoneCall = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-1150.458984,-1521.551270,9.632723>>, <<-1153.754761,-1516.601074,12.382723>>, 22.250000)
|
|
SET_PED_MAX_MOVE_BLEND_RATIO(PLAYER_PED_ID(),0.8)
|
|
ENDIF
|
|
|
|
MANAGE_MERRYWEATHER_RESPONSE_TO_PLAYER()
|
|
|
|
SWITCH iProgress
|
|
|
|
CASE 0//Create objective specific items- print objective, add blips etc
|
|
|
|
IF IS_SCREEN_FADED_OUT()
|
|
MANAGE_PLAYER_OUTFIT()
|
|
ENDIF
|
|
|
|
WHILE NOT SETUP_MISSION_REQUIREMENT(REQ_CAR_TO_DRIVE_FINAL_STAGE)
|
|
WAIT(0)
|
|
ENDWHILE
|
|
|
|
REQUEST_MODEL(TIPTRUCK)
|
|
DISABLE_TAXI_HAILING(FALSE)
|
|
SET_REPLAY_MID_MISSION_STAGE_WITH_NAME(9,"Drive home",TRUE)
|
|
|
|
SUPPRESS_RESTRICTED_AREA_WANTED_LEVEL(AC_MILITARY_DOCKS,FALSE)
|
|
RELEASE_SUPPRESSED_RESTRICTED_AREA_WANTED_LEVEL(AC_MILITARY_DOCKS,FALSE)
|
|
|
|
SET_BUILDING_STATE(BUILDINGNAME_ES_FLOYDS_APPARTMENT_SHIT, BUILDINGSTATE_DESTROYED) // Trodden mess in the apartment.
|
|
SET_BUILDING_STATE(BUILDINGNAME_ES_FLOYDS_APPARTMENT_SHIT_SOFA, BUILDINGSTATE_DESTROYED) // Mess on the sofa
|
|
SET_BUILDING_STATE(BUILDINGNAME_ES_FLOYDS_APPARTMENT_PICTURE, BUILDINGSTATE_DESTROYED)
|
|
|
|
bDialogue = FALSE
|
|
soundBeating = GET_SOUND_ID()
|
|
INIT_STAGE()
|
|
SET_ALL_RANDOM_PEDS_FLEE(PLAYER_ID(), TRUE)
|
|
RELEASE_AMBIENT_AUDIO_BANK()
|
|
iTimeBeforePhoneCall = GET_GAME_TIMER()
|
|
bDoPhoneCall = FALSE
|
|
|
|
ADD_PED_FOR_DIALOGUE(sSpeech, 2, PLAYER_PED_ID(), "TREVOR")
|
|
ADD_PED_FOR_DIALOGUE(sSpeech,0,NULL,"NERVOUSRON")
|
|
|
|
iProgress++
|
|
BREAK
|
|
|
|
CASE 1
|
|
|
|
iProgress++
|
|
BREAK
|
|
|
|
CASE 2
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("Floyd_Beating")
|
|
IF REQUEST_AMBIENT_AUDIO_BANK("SCRIPT\\PORT_OF_LS_01_FLOYD_BEATING")
|
|
PLAY_SOUND_FROM_COORD(soundBeating,"Floyd_Beating",<<479, -3106, 8>>,"DOCKS_HEIST_SETUP_SOUNDS")
|
|
SET_LABEL_AS_TRIGGERED("Floyd_Beating",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF HAS_MODEL_LOADED(TIPTRUCK)
|
|
IF NOT DOES_ENTITY_EXIST(vehFinal)
|
|
SPAWN_VEHICLE(vehFinal,TIPTRUCK, << 465.8751, -3037.0837, 5.0686 >>, 126.3433,-1,1)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//Request the end cutscene and planning board section once the player gets close enough to Floyd's.
|
|
IF NOT IS_ENTITY_DEAD(PLAYER_PED_ID())
|
|
IF NOT bBoardCutsceneRequested
|
|
IF VDIST2(GET_ENTITY_COORDS(PLAYER_PED_ID()), << -1147.4010, -1522.5767, 9.4130 >>) < 5625 //75^2
|
|
// Pre-load the cutscene in the heist controller for our arrival.
|
|
SET_MISSION_FLOW_FLAG_STATE(FLOWFLAG_HEIST_DOCKS_PRIME_BOARD_TRANSITION, TRUE)
|
|
bBoardCutsceneRequested = TRUE
|
|
ENDIF
|
|
ELSE
|
|
IF VDIST2(GET_ENTITY_COORDS(PLAYER_PED_ID()), << -1147.4010, -1522.5767, 9.4130 >>) > 6400 //80^2
|
|
// Remove cutscene if player then drives further away from Floyd's place
|
|
SET_MISSION_FLOW_FLAG_STATE(FLOWFLAG_HEIST_JEWEL_PRIME_BOARD_TRANSITION, FALSE)
|
|
bBoardCutsceneRequested = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
//B* 1694464: Make player walk up the stairs so the streaming has time to load the interior
|
|
IF GET_DISTANCE_BETWEEN_COORDS(GET_ENTITY_COORDS(PLAYER_PED_ID()),<< -1147.4010, -1522.5767, 9.4130 >>) < 30
|
|
SET_PED_MAX_MOVE_BLEND_RATIO(PLAYER_PED_ID(), PEDMOVE_WALK)
|
|
ELSE
|
|
SET_PED_MAX_MOVE_BLEND_RATIO(PLAYER_PED_ID(), PEDMOVE_SPRINT)
|
|
ENDIF
|
|
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("Pin interior")
|
|
IF GET_DISTANCE_BETWEEN_COORDS(GET_ENTITY_COORDS(PLAYER_PED_ID()),<< -1147.4010, -1522.5767, 9.4130 >>) < 100
|
|
interior_living_room = get_interior_at_coords(<< -1158.3411, -1520.8929, 9.6345 >>)
|
|
REQUEST_ANIM_DICT("missheistdockssetup1leadinoutlsdhs_mcs_3")
|
|
IF is_valid_interior(interior_living_room)
|
|
pin_interior_in_memory(interior_living_room)
|
|
SET_LABEL_AS_TRIGGERED("Pin interior",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF GET_DISTANCE_BETWEEN_COORDS(GET_ENTITY_COORDS(PLAYER_PED_ID()),<< -1147.4010, -1522.5767, 9.4130 >>) < 100
|
|
IF NOT DOES_ENTITY_EXIST(pedWade)
|
|
SETUP_MISSION_REQUIREMENT_WITH_LOCATION(REQ_WADE, vWadeStart, fWadeStart)
|
|
ELSE
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("wade_sit_couch")
|
|
REQUEST_ANIM_DICT("missheistdockssetup1leadinoutlsdhs_mcs_3")
|
|
REQUEST_WAYPOINT_RECORDING("d1leadin")
|
|
IF NOT IS_PED_INJURED(pedWade)
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1leadinoutlsdhs_mcs_3")
|
|
AND GET_IS_WAYPOINT_RECORDING_LOADED("d1leadin")
|
|
|
|
SET_PED_COMPONENT_VARIATION(pedWade, PED_COMP_HEAD, 0, 1)
|
|
SET_PED_COMPONENT_VARIATION(pedWade, PED_COMP_BERD, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedWade, PED_COMP_HAIR, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedWade, PED_COMP_TORSO, 1, 1)
|
|
SET_PED_COMPONENT_VARIATION(pedWade, PED_COMP_LEG, 1, 1)
|
|
SET_PED_COMPONENT_VARIATION(pedWade, PED_COMP_HAND, 1, 1)
|
|
SET_PED_COMPONENT_VARIATION(pedWade, PED_COMP_FEET, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedWade, PED_COMP_TEETH, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedWade, PED_COMP_SPECIAL, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedWade, PED_COMP_SPECIAL2, 0, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedWade, PED_COMP_DECL, 1, 0)
|
|
SET_PED_COMPONENT_VARIATION(pedWade, PED_COMP_JBIB, 0, 0)
|
|
|
|
USE_WAYPOINT_RECORDING_AS_ASSISTED_MOVEMENT_ROUTE("d1leadin",TRUE)
|
|
ssWadeOnCouch = CREATE_SYNCHRONIZED_SCENE(<< -1158.595, -1519.261, 9.608 >>,<< 0.000, 0.000, -51.000 >>)
|
|
TASK_SYNCHRONIZED_SCENE(pedWade, ssWadeOnCouch, "missheistdockssetup1leadinoutlsdhs_mcs_3", "wade_sit_couch", INSTANT_BLEND_IN, INSTANT_BLEND_OUT, SYNCED_SCENE_DONT_INTERRUPT)
|
|
SET_SYNCHRONIZED_SCENE_LOOPED(ssWadeOnCouch,TRUE)
|
|
SET_PED_KEEP_TASK(pedWade, TRUE)
|
|
SET_LABEL_AS_TRIGGERED("wade_sit_couch",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
IF GET_DISTANCE_BETWEEN_COORDS(GET_ENTITY_COORDS(PLAYER_PED_ID()),<< -1147.4010, -1522.5767, 9.4130 >>) > 120
|
|
IF DOES_ENTITY_EXIST(pedWade)
|
|
DELETE_PED(pedWade)
|
|
SET_LABEL_AS_TRIGGERED("wade_sit_couch",FALSE)
|
|
ENDIF
|
|
REMOVE_ANIM_DICT("missheistdockssetup1leadinoutlsdhs_mcs_3")
|
|
IF interior_living_room != NULL
|
|
UNPIN_INTERIOR(interior_living_room)
|
|
SET_LABEL_AS_TRIGGERED("Pin interior",FALSE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_PLAYER_AT_LOCATION_ANY_MEANS(sLocatesData,<<-1156.1887, -1519.6130, 9.6327>>,<<0.1,0.1,LOCATE_SIZE_HEIGHT>>,TRUE,"AW_RETURN_HOME",TRUE)
|
|
IF NOT HAS_SOUND_FINISHED(soundBeating)
|
|
STOP_SOUND(soundBeating)
|
|
RELEASE_SOUND_ID(soundBeating)
|
|
ENDIF
|
|
REQUEST_ANIM_DICT("missheistdockssetup1leadinoutlsdhs_mcs_3")
|
|
iProgress++
|
|
ELSE
|
|
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<-1153.995117,-1518.853638,9.632723>>, <<-1155.095581,-1517.376221,12.382723>>, 2.250000)
|
|
IF NOT HAS_SOUND_FINISHED(soundBeating)
|
|
STOP_SOUND(soundBeating)
|
|
RELEASE_SOUND_ID(soundBeating)
|
|
ENDIF
|
|
REQUEST_ANIM_DICT("missheistdockssetup1leadinoutlsdhs_mcs_3")
|
|
iProgress++
|
|
ENDIF
|
|
|
|
//Play dialogue on entering the door in first person
|
|
activeViewModeContext = GET_CAM_ACTIVE_VIEW_MODE_CONTEXT()
|
|
|
|
IF activeViewModeContext = CAM_VIEW_MODE_CONTEXT_ON_FOOT
|
|
activeViewMode = GET_CAM_VIEW_MODE_FOR_CONTEXT(activeViewModeContext)
|
|
IF activeViewMode = CAM_VIEW_MODE_FIRST_PERSON
|
|
//On player entering the door in first person play dialogue line
|
|
IF IS_ENTITY_IN_ANGLED_AREA( PLAYER_PED_ID(), <<-1149.637939,-1522.367432,9.382867>>, <<-1151.353516,-1519.901245,12.382729>>, 1.500000)
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_MCS3LI")
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData, IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF PLAY_SINGLE_LINE_FROM_CONVERSATION(sSpeech, "D1AUD", "DS1_MCS3LI", "DS1_MCS3LI_3", CONV_PRIORITY_MEDIUM)
|
|
PRINTLN("FIRST PERSON CONVERSATION TRIGGERED!")
|
|
SET_LABEL_AS_TRIGGERED("DS1_MCS3LI",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 3
|
|
activeViewModeContext = GET_CAM_ACTIVE_VIEW_MODE_CONTEXT()
|
|
|
|
IF activeViewModeContext = CAM_VIEW_MODE_CONTEXT_ON_FOOT
|
|
activeViewMode = GET_CAM_VIEW_MODE_FOR_CONTEXT(activeViewModeContext)
|
|
IF activeViewMode != CAM_VIEW_MODE_FIRST_PERSON
|
|
//If third person progress as usual
|
|
REQUEST_ANIM_DICT("missheistdockssetup1leadinoutlsdhs_mcs_3")
|
|
IF HAS_ANIM_DICT_LOADED("missheistdockssetup1leadinoutlsdhs_mcs_3")
|
|
IF NOT IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID(),TRUE)
|
|
SET_PLAYER_CONTROL(PLAYER_ID(),FALSE)
|
|
OPEN_SEQUENCE_TASK(seqMain)
|
|
TASK_SWAP_WEAPON(NULL, TRUE)
|
|
TASK_FOLLOW_NAV_MESH_TO_COORD(NULL,<<-1155.5874, -1518.9718, 9.6327>>,PEDMOVE_WALK,DEFAULT_TIME_BEFORE_WARP,DEFAULT_NAVMESH_RADIUS,ENAV_NO_STOPPING)
|
|
TASK_PLAY_ANIM(NULL,"missheistdockssetup1leadinoutlsdhs_mcs_3", "trevor_react",SLOW_BLEND_IN,SLOW_BLEND_OUT)
|
|
CLOSE_SEQUENCE_TASK(seqMain)
|
|
TASK_PERFORM_SEQUENCE(PLAYER_PED_ID(), seqMain)
|
|
ENDIF
|
|
SETTIMERB(0)
|
|
iProgress++
|
|
ENDIF
|
|
ELSE
|
|
//Have Trevor stop after entering trigger
|
|
SET_PLAYER_CONTROL(PLAYER_ID(), FALSE)
|
|
//When first person mode progress stage immediately
|
|
SETTIMERB(1500)
|
|
iProgress++
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 4
|
|
IF TIMERB() > 420
|
|
IF NOT IS_PHONE_ONSCREEN()
|
|
SET_CURRENT_PED_WEAPON(PLAYER_PED_ID(),WEAPONTYPE_UNARMED,TRUE)
|
|
ENDIF
|
|
IF TIMERB() > 1500
|
|
activeViewModeContext = GET_CAM_ACTIVE_VIEW_MODE_CONTEXT()
|
|
|
|
IF activeViewModeContext = CAM_VIEW_MODE_CONTEXT_ON_FOOT
|
|
activeViewMode = GET_CAM_VIEW_MODE_FOR_CONTEXT(activeViewModeContext)
|
|
IF activeViewMode != CAM_VIEW_MODE_FIRST_PERSON
|
|
//Standard progression when third person
|
|
IF NOT HAS_LABEL_BEEN_TRIGGERED("DS1_MCS3LI")
|
|
IF NOT IS_ANY_TEXT_BEING_DISPLAYED(sLocatesData, IAT_IGNORE_GOD_TEXT_IF_SUBTITLES_OFF)
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF CREATE_CONVERSATION(sSpeech, "D1AUD", "DS1_MCS3LI", CONV_PRIORITY_MEDIUM)
|
|
SET_LABEL_AS_TRIGGERED("DS1_MCS3LI",TRUE)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF DOES_ENTITY_EXIST(pedWade)
|
|
IF NOT IS_PED_INJURED(pedWade)
|
|
g_sTriggerSceneAssets.ped[0] = pedWade
|
|
ENDIF
|
|
ENDIF
|
|
RESET_MISSION_STAGE_VARIABLES()
|
|
ADVANCE_MISSION_STAGE()
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
//When in first person trigger immediately on hitting cut-scene location
|
|
IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF DOES_ENTITY_EXIST(pedWade)
|
|
IF NOT IS_PED_INJURED(pedWade)
|
|
g_sTriggerSceneAssets.ped[0] = pedWade
|
|
ENDIF
|
|
ENDIF
|
|
RESET_MISSION_STAGE_VARIABLES()
|
|
ADVANCE_MISSION_STAGE()
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
ENDPROC
|
|
|
|
|
|
PROC MANAGE_PED_BLIPS()
|
|
//Enemy blips
|
|
REPEAT iTotalMerc iThisCounter
|
|
IF SAFE_DEATH_CHECK_PED(pedMerc[iThisCounter])
|
|
// SAFE_REMOVE_BLIP(blipMerc[iThisCounter])
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
//Worker blips
|
|
REPEAT iTotalDockWorker iThisCounter
|
|
IF SAFE_DEATH_CHECK_PED(pedDockWorker[iThisCounter])
|
|
SAFE_REMOVE_BLIP(blipDockWorker[iThisCounter])
|
|
ENDIF
|
|
ENDREPEAT
|
|
ENDPROC
|
|
|
|
|
|
|
|
PROC MANAGE_CRANE_SOUNDS()
|
|
|
|
SWITCH iManagePickerAudio
|
|
|
|
CASE 0
|
|
IF REQUEST_AMBIENT_AUDIO_BANK("Crane")
|
|
AND REQUEST_AMBIENT_AUDIO_BANK("Crane_Stress")
|
|
AND REQUEST_AMBIENT_AUDIO_BANK("Crane_Impact_Sweeteners")
|
|
//PRINTSTRING("strain audio prepped")PRINTNL()
|
|
iManagePickerAudio ++
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 1
|
|
IF DOES_ENTITY_EXIST(s_crane.obj_spreader)
|
|
IF DOES_ENTITY_EXIST(s_Containers[0].obj_Main)
|
|
AND DOES_ENTITY_EXIST(s_Containers[1].obj_Main)
|
|
IF NOT IS_ENTITY_ATTACHED_TO_ENTITY(s_Containers[0].obj_Main,s_crane.obj_spreader)
|
|
AND NOT IS_ENTITY_ATTACHED_TO_ENTITY(s_Containers[1].obj_Main,s_crane.obj_spreader)
|
|
PLAY_SOUND_FROM_ENTITY(iCraneStrain, "Strain_No_Container", s_crane.obj_spreader, "CRANE_SOUNDS")
|
|
iManagePickerAudio ++
|
|
//PRINTSTRING("strain audio")PRINTNL()
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
CASE 2
|
|
IF DOES_ENTITY_EXIST(s_crane.obj_spreader)
|
|
IF DOES_ENTITY_EXIST(s_Containers[0].obj_Main)
|
|
AND DOES_ENTITY_EXIST(s_Containers[1].obj_Main)
|
|
IF IS_ENTITY_ATTACHED_TO_ENTITY(s_Containers[0].obj_Main,s_crane.obj_spreader)
|
|
OR IS_ENTITY_ATTACHED_TO_ENTITY(s_Containers[1].obj_Main,s_crane.obj_spreader)
|
|
iManagePickerAudio ++
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 3
|
|
IF DOES_ENTITY_EXIST(s_crane.obj_spreader)
|
|
IF DOES_ENTITY_EXIST(s_Containers[0].obj_Main)
|
|
AND DOES_ENTITY_EXIST(s_Containers[1].obj_Main)
|
|
IF NOT IS_ENTITY_ATTACHED_TO_ENTITY(s_Containers[0].obj_Main,s_crane.obj_spreader)
|
|
AND NOT IS_ENTITY_ATTACHED_TO_ENTITY(s_Containers[1].obj_Main,s_crane.obj_spreader)
|
|
PLAY_SOUND_FROM_ENTITY(iCraneStrain, "Strain_No_Container", s_crane.obj_spreader, "CRANE_SOUNDS")
|
|
iManagePickerAudio = 1
|
|
//PRINTSTRING("strain audio")PRINTNL()
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
ENDPROC
|
|
|
|
|
|
|
|
// ================================== START OF MAIN SCRIPT =================================
|
|
SCRIPT
|
|
//SET_PROFILING_OF_THIS_SCRIPT(TRUE)
|
|
SET_MISSION_FLAG (TRUE)
|
|
// death arrest check
|
|
IF HAS_FORCE_CLEANUP_OCCURRED()
|
|
Mission_Flow_Mission_Force_Cleanup()
|
|
SET_MISSION_FLOW_FLAG_STATE(FLOWFLAG_HEIST_DOCKS_PRIME_BOARD_TRANSITION, FALSE)
|
|
b_is_jumping_directly_to_stage = FALSE //If the mission is in the middle of a debug skip cleanup (e.g. waiting for a cutscene to finish) Force cleanup could break.
|
|
MISSION_CLEANUP()
|
|
TERMINATE_THIS_THREAD() //Just in case.
|
|
ENDIF
|
|
|
|
//set up the Widgets.
|
|
// #IF IS_DEBUG_BUILD
|
|
// wgDOCKSSETUP = START_WIDGET_GROUP("DOCKS SETUP CRANE")
|
|
// // Widgets for the Main Mission Controlers
|
|
// START_WIDGET_GROUP(" Main Mission Controlers")
|
|
// ADD_WIDGET_INT_SLIDER("eMissionStage", ieMissionStageTemp, 0, 99, 1)
|
|
// ADD_WIDGET_INT_SLIDER("iSetupProgress", iSetupProgress, 0, 99, 1)
|
|
// ADD_WIDGET_INT_SLIDER("iProgress", iProgress, 0, 99, 1)
|
|
// //ADD_WIDGET_INT_SLIDER("icutsceneprog", icutsceneprog, 0, 99, 1)
|
|
// ADD_WIDGET_INT_SLIDER("iSpeechTextProgress", iSpeechProgress, 0, 99, 1)
|
|
// //ADD_WIDGET_INT_SLIDER("iBuddyProgress", iBuddyProgress, 0, 99, 1)
|
|
// //ADD_WIDGET_INT_SLIDER("ienemyAIprog", ienemyAIprog, 0, 99, 1)
|
|
// STOP_WIDGET_GROUP()
|
|
// START_NEW_WIDGET_COMBO()
|
|
// ADD_TO_WIDGET_COMBO("SETUP")
|
|
// ADD_TO_WIDGET_COMBO("MISSION_STAGE_1_PROC")
|
|
// ADD_TO_WIDGET_COMBO("MISSION_STAGE_2_PROC")
|
|
// ADD_TO_WIDGET_COMBO("MISSION_STAGE_3_PROC")
|
|
// ADD_TO_WIDGET_COMBO("MISSION_STAGE_4_PROC")
|
|
// ADD_TO_WIDGET_COMBO("MISSION_STAGE_5_PROC")
|
|
// ADD_TO_WIDGET_COMBO("MISSION_STAGE_6_PROC")
|
|
// ADD_TO_WIDGET_COMBO("MISSION_STAGE_7_PROC")
|
|
// ADD_TO_WIDGET_COMBO("MISSION_STAGE_8_PROC")
|
|
// ADD_TO_WIDGET_COMBO("MISSION_STAGE_9_PROC")
|
|
// ADD_TO_WIDGET_COMBO("MISSION_STAGE_10_PROC")
|
|
// ADD_TO_WIDGET_COMBO("MISSION_STAGE_11_PROC")
|
|
// ADD_TO_WIDGET_COMBO("MISSION_STAGE_12_PROC")
|
|
// ADD_TO_WIDGET_COMBO("END_CUT")
|
|
// ADD_TO_WIDGET_COMBO("PASSED")
|
|
// ADD_TO_WIDGET_COMBO("FAIL")
|
|
// STOP_WIDGET_COMBO("Mission Skip",iWidgetMissionSkip)
|
|
// ADD_WIDGET_BOOL("Jump to point in mission",bJumpToMissionJump)
|
|
// ADD_WIDGET_BOOL("bmissionstageloaded",bmissionstageloaded)
|
|
// //ADD_WIDGET_BOOL("Override attachments", b_override_crane_attach)
|
|
// //ADD_WIDGET_BOOL("View spreader attachments", b_debug_view_attachments)
|
|
//
|
|
// //ADD_WIDGET_VECTOR_SLIDER("vAttachOffset",vAttachOffset,-10.0,10.0,0.001)
|
|
// //ADD_WIDGET_BOOL("bAttachPallet", bAttachPallet)
|
|
// //ADD_WIDGET_BOOL("Create Crane",bCreateCrane)
|
|
// ADD_WIDGET_VECTOR_SLIDER("Crane",v_crane_pos,-4000.0,4000.0,0.001)
|
|
// ADD_WIDGET_VECTOR_SLIDER("Cabin", s_crane.v_cabin_attach_offset, -100.0, 100.0, 0.001)
|
|
// ADD_WIDGET_VECTOR_SLIDER("Lift", s_crane.v_lift_attach_offset, -100.0, 100.0, 0.001)
|
|
// ADD_WIDGET_VECTOR_SLIDER("Spreader", s_crane.v_spreader_attach_offset, -100.0, 100.0, 0.001)
|
|
//// ADD_WIDGET_VECTOR_SLIDER("Wheel -1 0", s_crane.v_wheel_offsets[0], -100.0, 100.0, 0.001)
|
|
//// ADD_WIDGET_VECTOR_SLIDER("Wheel -1 1", s_crane.v_wheel_offsets[1], -100.0, 100.0, 0.001)
|
|
//// ADD_WIDGET_VECTOR_SLIDER("Wheel -2 2", s_crane.v_wheel_offsets[2], -100.0, 100.0, 0.001)
|
|
//// ADD_WIDGET_VECTOR_SLIDER("Wheel -2 3", s_crane.v_wheel_offsets[3], -100.0, 100.0, 0.001)
|
|
//// ADD_WIDGET_VECTOR_SLIDER("Wheel -3 4", s_crane.v_wheel_offsets[0], -100.0, 100.0, 0.001)
|
|
//// ADD_WIDGET_VECTOR_SLIDER("Wheel -3 5", s_crane.v_wheel_offsets[1], -100.0, 100.0, 0.001)
|
|
//// ADD_WIDGET_VECTOR_SLIDER("Wheel -4 6", s_crane.v_wheel_offsets[2], -100.0, 100.0, 0.001)
|
|
//// ADD_WIDGET_VECTOR_SLIDER("Wheel -4 7", s_crane.v_wheel_offsets[3], -100.0, 100.0, 0.001)
|
|
// //Attachment offsets
|
|
// ADD_WIDGET_VECTOR_SLIDER("vRopeTop1", vRopeTop1, -100.0, 100.0, 0.001)
|
|
// ADD_WIDGET_VECTOR_SLIDER("vRopeBottom1", vRopeBottom1, -100.0, 100.0, 0.001)
|
|
// ADD_WIDGET_VECTOR_SLIDER("vRopeTop2", vRopeTop2, -100.0, 100.0, 0.001)
|
|
// ADD_WIDGET_VECTOR_SLIDER("vRopeBottom2", vRopeBottom2, -100.0, 100.0, 0.001)
|
|
// ADD_WIDGET_VECTOR_SLIDER("vRopeTop3", vRopeTop3, -100.0, 100.0, 0.001)
|
|
// ADD_WIDGET_VECTOR_SLIDER("vRopeBottom3", vRopeBottom3, -100.0, 100.0, 0.001)
|
|
// ADD_WIDGET_VECTOR_SLIDER("vRopeTop4", vRopeTop4, -100.0, 100.0, 0.001)
|
|
// ADD_WIDGET_VECTOR_SLIDER("vRopeBottom4", vRopeBottom4, -100.0, 100.0, 0.001)
|
|
// ADD_WIDGET_VECTOR_SLIDER("vRopeTop5", vRopeTop5, -100.0, 100.0, 0.001)
|
|
// ADD_WIDGET_VECTOR_SLIDER("vRopeBottom5", vRopeBottom5, -100.0, 100.0, 0.001)
|
|
// ADD_WIDGET_VECTOR_SLIDER("vRopeTop6", vRopeTop6, -100.0, 100.0, 0.001)
|
|
// ADD_WIDGET_VECTOR_SLIDER("vRopeBottom6", vRopeBottom6, -100.0, 100.0, 0.001)
|
|
// ADD_WIDGET_VECTOR_SLIDER("vRopeTop7", vRopeTop7, -100.0, 100.0, 0.001)
|
|
// ADD_WIDGET_VECTOR_SLIDER("vRopeBottom7", vRopeBottom7, -100.0, 100.0, 0.001)
|
|
// ADD_WIDGET_VECTOR_SLIDER("vRopeTop8", vRopeTop8, -100.0, 100.0, 0.001)
|
|
// ADD_WIDGET_VECTOR_SLIDER("vRopeBottom8", vRopeBottom8, -100.0, 100.0, 0.001)
|
|
// // - Other offsets
|
|
// //ADD_WIDGET_VECTOR_SLIDER("Wheel offset", v_debug_wheel_offset, -100.0, 100.0, 0.001)
|
|
// //ADD_WIDGET_VECTOR_SLIDER("Wheel rotation", v_debug_wheel_rotation, -180.0, 180.0, 0.001)
|
|
// ADD_WIDGET_FLOAT_SLIDER("MAX_CABIN_Y",MAX_CABIN_Y,-100,100,0.1)
|
|
// ADD_WIDGET_FLOAT_SLIDER("MIN_CABIN_Y",MIN_CABIN_Y,-100,100,0.1)
|
|
// ADD_WIDGET_FLOAT_SLIDER("MAX_SPREADER_Z",MAX_SPREADER_Z,-100,100,0.1)
|
|
// ADD_WIDGET_FLOAT_SLIDER("MIN_SPREADER_Z",MIN_SPREADER_Z,-100,100,0.1)
|
|
// ADD_WIDGET_FLOAT_SLIDER("MAX_CRANE_OFFSET",MAX_CRANE_OFFSET,-100,100,0.1)
|
|
// ADD_WIDGET_FLOAT_SLIDER("MIN_CRANE_OFFSET",MIN_CRANE_OFFSET,-100,100,0.1)
|
|
//
|
|
// ADD_WIDGET_FLOAT_SLIDER("MAX_CABIN_VEL",MAX_CABIN_VEL,-100,100,0.1)
|
|
// ADD_WIDGET_FLOAT_SLIDER("MAX SPREADER_VEL",MAX_SPREADER_VEL,-100,100,0.1)
|
|
// ADD_WIDGET_FLOAT_SLIDER("MAX CRANE_VEL",MAX_CRANE_VEL,-100,100,0.1)
|
|
//
|
|
// ADD_WIDGET_FLOAT_SLIDER("CABIN_ACCEL",CABIN_ACCEL,-100,100,0.1)
|
|
// ADD_WIDGET_FLOAT_SLIDER("SPREADER_ACCEL",SPREADER_ACCEL,-100,100,0.1)
|
|
// ADD_WIDGET_FLOAT_SLIDER("CRANE_ACCEL",CRANE_ACCEL,-100,100,0.1)
|
|
//
|
|
// ADD_WIDGET_VECTOR_SLIDER(" v_spreader_attach_start", v_spreader_attach_start, -100.0, 100.0, 0.001)
|
|
// ADD_WIDGET_VECTOR_SLIDER(" v_spreader_attach_end", v_spreader_attach_end, -100.0, 100.0, 0.001)
|
|
// ADD_WIDGET_VECTOR_SLIDER(" v_spreader_point_end", v_spreader_point_end, -100.0, 100.0, 0.001)
|
|
// ADD_WIDGET_VECTOR_SLIDER(" v_cabin_attach_start", v_cabin_attach_start, -100.0, 100.0, 0.001)
|
|
// ADD_WIDGET_VECTOR_SLIDER(" v_cabin_point_start", v_cabin_point_start, -100.0, 100.0, 0.001)
|
|
// ADD_WIDGET_VECTOR_SLIDER(" v_cabin_attach_end", v_cabin_attach_end, -100.0, 100.0, 0.001)
|
|
// ADD_WIDGET_VECTOR_SLIDER(" v_cabin_point_end", v_cabin_point_end, -100.0, 100.0, 0.001)
|
|
//
|
|
//
|
|
// ADD_WIDGET_VECTOR_SLIDER(" v_attach_to_cam_value", v_attach_to_cam_value, -100.0, 100.0, 0.001)
|
|
// ADD_WIDGET_VECTOR_SLIDER(" v_crane_attach_cam_rot", v_crane_attach_cam_rot, -100.0, 100.0, 0.001)
|
|
// ADD_WIDGET_FLOAT_SLIDER("f_crane_cam_fov",f_crane_cam_fov,-100,100,0.1)
|
|
// ADD_WIDGET_FLOAT_SLIDER("f_crane_attach_cam_fov",f_crane_attach_cam_fov,-100,100,0.1)
|
|
// STOP_WIDGET_GROUP()
|
|
// SET_LOCATES_HEADER_WIDGET_GROUP(wgDOCKSSETUP )
|
|
// #ENDIF
|
|
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
//SET_CURRENT_WIDGET_GROUP(wgThisMissionsWidget)
|
|
wgDOCKSSETUP = START_WIDGET_GROUP("DOCKS SETUP")
|
|
// Widgets for the Main Mission Controlers
|
|
START_WIDGET_GROUP(" Main Mission Controlers")
|
|
ADD_WIDGET_INT_SLIDER("eMissionStage", ieMissionStageTemp, 0, 99, 1)
|
|
ADD_WIDGET_INT_SLIDER("iSetupProgress", iSetupProgress, 0, 99, 1)
|
|
ADD_WIDGET_INT_SLIDER("iProgress", iProgress, 0, 99, 1)
|
|
ADD_WIDGET_INT_READ_ONLY("iHandlerSection",iHandlerSection)
|
|
ADD_WIDGET_INT_SLIDER("iMapAngle",iMapAngle,-360, 360, 1)
|
|
ADD_WIDGET_INT_SLIDER("iOverheadMapAngle",iOverheadMapAngle,-360, 360, 1)
|
|
ADD_WIDGET_FLOAT_SLIDER("fXTolerance",fXTolerance,-100,100,0.01)
|
|
ADD_WIDGET_FLOAT_SLIDER("fYTolerance",fYTolerance,-100,100,0.01)
|
|
ADD_WIDGET_VECTOR_SLIDER("vAttach1",vAttach1,-10,10,0.01)
|
|
ADD_WIDGET_VECTOR_SLIDER("vAttach2",vAttach2,-10,10,0.01)
|
|
ADD_WIDGET_VECTOR_SLIDER("vAttachRot",vAttachRot,-360,360,0.01)
|
|
ADD_WIDGET_FLOAT_SLIDER("MAX_CABIN_Y",MAX_CABIN_Y,-100,100,0.1)
|
|
ADD_WIDGET_FLOAT_SLIDER("MIN_CABIN_Y",MIN_CABIN_Y,-100,100,0.1)
|
|
ADD_WIDGET_FLOAT_SLIDER("MAX_SPREADER_Z",MAX_SPREADER_Z,-100,100,0.1)
|
|
ADD_WIDGET_FLOAT_SLIDER("MIN_SPREADER_Z",MIN_SPREADER_Z,-100,100,0.1)
|
|
ADD_WIDGET_BOOL("b1",b1)
|
|
ADD_WIDGET_BOOL("b2",b2)
|
|
ADD_WIDGET_BOOL("b3",b3)
|
|
ADD_WIDGET_BOOL("b4",b4)
|
|
ADD_WIDGET_FLOAT_SLIDER("fVal1",fVal1,0,10,0.1)
|
|
ADD_WIDGET_FLOAT_SLIDER("fVal2",fVal2,0,10,0.1)
|
|
ADD_WIDGET_FLOAT_SLIDER("fVal3",fVal3,0,10,0.1)
|
|
ADD_WIDGET_FLOAT_SLIDER("fVal4",fVal4,0,10,0.1)
|
|
|
|
ADD_WIDGET_FLOAT_SLIDER("fFallOff",fFallOff,-1000,1000,0.1)
|
|
ADD_WIDGET_FLOAT_SLIDER("fIntensity",fIntensity,-1000,1000,0.1)
|
|
ADD_WIDGET_FLOAT_SLIDER("fInnerAngle",fInnerAngle,-1000,1000,0.1)
|
|
ADD_WIDGET_FLOAT_SLIDER("fOuterAngle", fOuterAngle,-1000,1000,0.1)
|
|
ADD_WIDGET_FLOAT_SLIDER("fExposure",fExposure,-1000,1000,0.1)
|
|
|
|
ADD_WIDGET_FLOAT_SLIDER("fIdealDistance",fIdealDistance,-10,10,00.01)
|
|
ADD_WIDGET_FLOAT_SLIDER("fMinDistance",fMinDistance,-10,10,00.01)
|
|
ADD_WIDGET_FLOAT_SLIDER("fMaxDistance",fMaxDistance,-10,10,00.01)
|
|
ADD_WIDGET_FLOAT_SLIDER("fTargerMaxCatchUp",fTargerMaxCatchUp,-10,10,00.01)
|
|
ADD_WIDGET_FLOAT_SLIDER("fThisValue",fThisValue,-1000,1000,0.1)
|
|
ADD_WIDGET_INT_SLIDER("iSpeechTextProgress", iSpeechProgress, 0, 99, 1)
|
|
|
|
ADD_WIDGET_VECTOR_SLIDER("Crane - v_crane_pos",v_crane_pos,-4000.0,4000.0,0.001)
|
|
ADD_WIDGET_FLOAT_SLIDER("Crane - s_crane.f_crane_offset",s_crane.f_crane_offset,-4000.0,4000.0,0.001)
|
|
ADD_WIDGET_INT_SLIDER("iCraneHelp", iCraneHelp, 0, 99, 1)
|
|
STOP_WIDGET_GROUP()
|
|
START_NEW_WIDGET_COMBO()
|
|
ADD_TO_WIDGET_COMBO("SETUP")
|
|
ADD_TO_WIDGET_COMBO("MISSION_STAGE_1_PROC")
|
|
ADD_TO_WIDGET_COMBO("MISSION_STAGE_2_PROC")
|
|
ADD_TO_WIDGET_COMBO("MISSION_STAGE_3_PROC")
|
|
ADD_TO_WIDGET_COMBO("MISSION_STAGE_4_PROC")
|
|
ADD_TO_WIDGET_COMBO("MISSION_STAGE_5_PROC")
|
|
ADD_TO_WIDGET_COMBO("MISSION_STAGE_6_PROC")
|
|
ADD_TO_WIDGET_COMBO("MISSION_STAGE_7_PROC")
|
|
ADD_TO_WIDGET_COMBO("MISSION_STAGE_8_PROC")
|
|
ADD_TO_WIDGET_COMBO("MISSION_STAGE_9_PROC")
|
|
ADD_TO_WIDGET_COMBO("MISSION_STAGE_10_PROC")
|
|
ADD_TO_WIDGET_COMBO("MISSION_STAGE_11_PROC")
|
|
ADD_TO_WIDGET_COMBO("MISSION_STAGE_12_PROC")
|
|
ADD_TO_WIDGET_COMBO("END_CUT")
|
|
ADD_TO_WIDGET_COMBO("PASSED")
|
|
ADD_TO_WIDGET_COMBO("FAIL")
|
|
STOP_WIDGET_COMBO("Mission Skip",iWidgetMissionSkip)
|
|
ADD_WIDGET_BOOL("Jump to point in mission",bJumpToMissionJump)
|
|
ADD_WIDGET_BOOL("bmissionstageloaded",bmissionstageloaded)
|
|
STOP_WIDGET_GROUP()
|
|
SET_LOCATES_HEADER_WIDGET_GROUP(wgDOCKSSETUP)
|
|
#ENDIF
|
|
|
|
// Mission Loop: Loops forever until mission is passed or failed
|
|
WHILE TRUE
|
|
|
|
WAIT(0)
|
|
|
|
REPLAY_CHECK_FOR_EVENT_THIS_FRAME("M_ThePortOfLSHeistSetup")
|
|
|
|
// Blocking replay camera movement when iBlockReplayCameraTimer is set B*2226188
|
|
IF iBlockReplayCameraTimer > GET_GAME_TIMER()
|
|
REPLAY_DISABLE_CAMERA_MOVEMENT_THIS_FRAME()
|
|
ENDIF
|
|
|
|
IF brunfailchecks // controls fail checks
|
|
FAIL_CHECKS()
|
|
ENDIF
|
|
|
|
IF balarmtriggered
|
|
IF HAS_SOUND_FINISHED(iAlarmID)
|
|
PLAY_SOUND_FRONTEND(iAlarmID,"Generic_Alarm_Electronic_01")
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF eMissionStage = MISSION_STAGE_10
|
|
IF iprogress > 5
|
|
IF iprogress != 99
|
|
OR iprogress != 98
|
|
MANAGE_FLOYD_PAIN()
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF eMissionStage = MISSION_STAGE_11
|
|
MANAGE_FLOYD_PAIN()
|
|
ENDIF
|
|
|
|
IF eMissionStage > MISSION_STAGE_5
|
|
SET_GLOBAL_MIN_BIRD_FLIGHT_HEIGHT(25.3383)
|
|
ENDIF
|
|
|
|
//MANAGE_PED_BLIPS()
|
|
//Always run dock ambience after stage
|
|
IF eMissionStage < MISSION_STAGE_10
|
|
MANAGE_DOCKS_AMBIENCE()
|
|
MANAGE_DOCK_WORKER_AMBIENT_DIALOGUE()
|
|
ENDIF
|
|
|
|
IF eMissionStage > MISSION_STAGE_5
|
|
AND eMissionStage < MISSION_STAGE_10
|
|
MANAGE_CRANE_SOUNDS()
|
|
ENDIF
|
|
|
|
// controls the dialog
|
|
MANAGE_DIALOGUE()
|
|
|
|
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
|
|
IF eMissionStage > MISSION_STAGE_SETUP
|
|
AND eMissionStage < MISSION_STAGE_5
|
|
//SCRIPT_ASSERT("MANAGING SETPIECES")
|
|
IF GET_DISTANCE_BETWEEN_COORDS(GET_ENTITY_COORDS(PLAYER_PED_ID()),vDocks) < 200
|
|
MANAGE_DOCK_SETPIECES(GET_ENTITY_COORDS(PLAYER_PED_ID()))
|
|
ENDIF
|
|
ELSE
|
|
IF eMissionStage > MISSION_STAGE_SETUP
|
|
IF eMissionStage > MISSION_STAGE_4
|
|
AND s_sp_blackwater_with_dockworker[0].i_event > 7
|
|
IF bSetPiece[SS_STATIC_GANTRY_GUYS] = TRUE
|
|
bSetPiece[SS_STATIC_GANTRY_GUYS] = FALSE
|
|
ENDIF
|
|
|
|
IF bSetPiece[SS_ARRIVE_AT_DOCKS] = TRUE
|
|
bSetPiece[SS_ARRIVE_AT_DOCKS] = FALSE
|
|
ENDIF
|
|
|
|
IF bSetPiece[SS_FLOYD_GRABS_PACKAGE] = TRUE
|
|
bSetPiece[SS_FLOYD_GRABS_PACKAGE] = FALSE
|
|
ENDIF
|
|
|
|
IF bSetPiece[SS_GANTRY_GUYS] = TRUE
|
|
bSetPiece[SS_GANTRY_GUYS] = FALSE
|
|
ENDIF
|
|
|
|
IF bSetPiece[SS_dock_workers_on_pipe] = TRUE
|
|
bSetPiece[SS_dock_workers_on_pipe] = FALSE
|
|
ENDIF
|
|
|
|
IF bSetPiece[Ss_dock_workers_talking] = TRUE
|
|
bSetPiece[Ss_dock_workers_talking] = FALSE
|
|
ENDIF
|
|
|
|
IF bSetPiece[SS_guys_around_car] = TRUE
|
|
bSetPiece[SS_guys_around_car] = FALSE
|
|
ENDIF
|
|
|
|
REPEAT COUNT_OF(s_sv_car_to_admire) iCount
|
|
IF DOES_ENTITY_EXIST(s_sv_car_to_admire[iCount].veh)
|
|
CLEAN_UP_SETPIECE_VEHILCE(s_sv_car_to_admire[iCount],TRUE,FALSE)
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
REPEAT COUNT_OF(s_sp_dock_workers_on_pipe) iCount
|
|
IF DOES_ENTITY_EXIST(s_sp_dock_workers_on_pipe[iCount].ped)
|
|
CLEAN_UP_SETPIECE_PED(s_sp_dock_workers_on_pipe[iCount],TRUE,FALSE)
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
REPEAT COUNT_OF(s_sp_dock_workers_talking) iCount
|
|
IF DOES_ENTITY_EXIST(s_sp_dock_workers_talking[iCount].ped)
|
|
CLEAN_UP_SETPIECE_PED(s_sp_dock_workers_talking[iCount],TRUE,FALSE)
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
REPEAT COUNT_OF(s_sp_floyd_grabs_package) iCount
|
|
IF DOES_ENTITY_EXIST(s_sp_floyd_grabs_package[iCount].ped)
|
|
CLEAN_UP_SETPIECE_PED(s_sp_floyd_grabs_package[iCount],TRUE,FALSE)
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
REPEAT COUNT_OF(s_sp_guys_around_car) iCount
|
|
IF DOES_ENTITY_EXIST(s_sp_guys_around_car[iCount].ped)
|
|
CLEAN_UP_SETPIECE_PED(s_sp_guys_around_car[iCount],TRUE,FALSE)
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
REPEAT COUNT_OF(s_sp_gantry_guys_dynamic) iCount
|
|
IF DOES_ENTITY_EXIST(s_sp_gantry_guys_dynamic[iCount].ped)
|
|
CLEAN_UP_SETPIECE_PED(s_sp_gantry_guys_dynamic[iCount],TRUE,FALSE)
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
REPEAT COUNT_OF(s_sp_gantry_guys_static) iCount
|
|
IF DOES_ENTITY_EXIST(s_sp_gantry_guys_static[iCount].ped)
|
|
CLEAN_UP_SETPIECE_PED(s_sp_gantry_guys_static[iCount],TRUE,FALSE)
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
REMOVE_ANIM_DICT("missheistdockssetup1ig_2_p1@new_structure")
|
|
REMOVE_ANIM_DICT("missdocksshowoffcar@idle_a")
|
|
REMOVE_ANIM_DICT("missdocksshowoffcar@idle_b")
|
|
REMOVE_ANIM_DICT("missdocksshowoffcar@base")
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// preloads and then creates assets for the next stage.
|
|
PRE_STREAM_MISSION_STAGE()
|
|
|
|
MANAGE_DOCKWORKER_PROPS()
|
|
|
|
//do't do the locates header J skips.
|
|
#IF IS_DEBUG_BUILD
|
|
DONT_DO_J_SKIP(sLocatesData)
|
|
#ENDIF
|
|
|
|
IF eMissionStage < MISSION_STAGE_4
|
|
IF g_bDocksBackGatesIgnoreTrevorsUniform = FALSE
|
|
g_bDocksBackGatesIgnoreTrevorsUniform = TRUE
|
|
ENDIF
|
|
ELSE
|
|
IF g_bDocksBackGatesIgnoreTrevorsUniform = TRUE
|
|
REGISTER_PED_TO_ACTIVATE_AUTOMATIC_DOOR(AUTODOOR_DOCKS_BACK_GATE_IN,PLAYER_PED_ID())
|
|
REGISTER_PED_TO_ACTIVATE_AUTOMATIC_DOOR(AUTODOOR_DOCKS_BACK_GATE_OUT,PLAYER_PED_ID())
|
|
g_bDocksBackGatesIgnoreTrevorsUniform = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF eMissionStage > MISSION_STAGE_8
|
|
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<497.625580,-3113.236328,4.570056>>, <<471.186218,-3113.169922,15.352262>>, 13.250000)
|
|
DISABLE_CONTROL_ACTION(PLAYER_CONTROL,INPUT_JUMP)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF eMissionStage > MISSION_STAGE_1
|
|
AND eMissionStage < MISSION_STAGE_10
|
|
DISABLE_COMBAT_CONTROLS_THIS_FRAME()
|
|
ENDIF
|
|
|
|
IF eMissionStage >= MISSION_STAGE_4
|
|
MERRYWEATHER_WITH_DOCK_WORKER()
|
|
ENDIF
|
|
|
|
// main mission switch
|
|
SWITCH eMissionStage
|
|
CASE MISSION_STAGE_SETUP //controls the loading of assets needed for the appropriate stage
|
|
MISSION_SETUP()
|
|
BREAK
|
|
CASE MISSION_STAGE_OPENING_CUTSCENE //plays the opening cutscene
|
|
OPENING_CUTSCENE()
|
|
BREAK
|
|
CASE MISSION_STAGE_1 //DRIVE
|
|
MISSION_STAGE_1_PROC()
|
|
BREAK
|
|
CASE MISSION_STAGE_2 //PARK
|
|
MISSION_STAGE_2_PROC()
|
|
BREAK
|
|
CASE MISSION_STAGE_4 //FOLLOW FLOYD
|
|
MISSION_STAGE_4_PROC()
|
|
BREAK
|
|
CASE MISSION_STAGE_5 //HANDLER WORK
|
|
MISSION_STAGE_5_PROC()
|
|
BREAK
|
|
CASE MISSION_STAGE_6 // FOLLOW TO CRANE
|
|
MISSION_STAGE_6_PROC()
|
|
BREAK
|
|
CASE MISSION_STAGE_7 //CRANE
|
|
MISSION_STAGE_7_PROC()
|
|
BREAK
|
|
CASE MISSION_STAGE_8 //CAMERA
|
|
MISSION_STAGE_8_PROC()
|
|
BREAK
|
|
CASE MISSION_STAGE_10 //DRIVE TO OTHER DOCKS
|
|
MISSION_STAGE_10_PROC()
|
|
BREAK
|
|
CASE MISSION_STAGE_11 //DRIVE BACK TO FLOYD'S APARTMENT
|
|
MISSION_STAGE_11_PROC()
|
|
BREAK
|
|
CASE MISSION_STAGE_PASSED //mission completed
|
|
MISSION_PASSED()
|
|
BREAK
|
|
CASE MISSION_STAGE_FAIL //mission failed
|
|
MISSION_FAILED()
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
|
|
// debug controls
|
|
#IF IS_DEBUG_BUILD
|
|
//Tells us where the mission stage is at.
|
|
Where_are_we()
|
|
|
|
// Checks if the keyboard key S has been pressed and if sets the current mission state to complete
|
|
IF IS_KEYBOARD_KEY_PRESSED (KEY_S)
|
|
PRINT_GOD_TEXT("AW_PASSED")
|
|
eMissionStage = MISSION_STAGE_PASSED
|
|
ENDIF
|
|
|
|
// Checks if the keyboard key F has been pressed and if so sets the current mission state to failed
|
|
IF IS_KEYBOARD_KEY_PRESSED (KEY_F)
|
|
//PRINT_GOD_TEXT("AW_FAILED")
|
|
reason_for_fail = GENERIC
|
|
eMissionStage = MISSION_STAGE_FAIL
|
|
ENDIF
|
|
|
|
//launch the mission skip menu
|
|
IF LAUNCH_MISSION_STAGE_MENU(SkipMenuStruct, iReturnStage, ENUM_TO_INT(eMissionStage), FALSE, "",TRUE,TRUE)
|
|
|
|
SET_GAMEPLAY_CAM_RELATIVE_PITCH(-90)
|
|
bcleanup = FALSE
|
|
iprogress = 99
|
|
bskipping = TRUE
|
|
|
|
IF iReturnStage < 1
|
|
iReturnStage = 1
|
|
ENDIF
|
|
|
|
IF iReturnStage > ENUM_TO_INT(MISSION_STAGE_PASSED) OR iReturnStage > ENUM_TO_INT(MISSION_STAGE_10)
|
|
iReturnStage = ENUM_TO_INT(MISSION_STAGE_PASSED)
|
|
ENDIF
|
|
|
|
IF iReturnStage = 1
|
|
SET_PLAYER_START_POSITION(eMissionStage)
|
|
ENDIF
|
|
|
|
IF iReturnStage > 11
|
|
MISSION_PASSED()
|
|
ENDIF
|
|
|
|
eMissionStage = INT_TO_ENUM(MISSION_STAGE_ENUM, iReturnStage)
|
|
ENDIF
|
|
|
|
WHILE bskipping = TRUE //Load new stage if skipping
|
|
IF iReturnStage > ENUM_TO_INT(MISSION_STAGE_11)
|
|
CONTROL_FADE_IN(500)
|
|
bskipping = FALSE
|
|
ELSE
|
|
WAIT(0)
|
|
LOAD_MISSION_STAGE(eMissionStage)
|
|
ENDIF
|
|
ENDWHILE
|
|
|
|
//For the widget thing
|
|
ieMissionStageTemp = ENUM_TO_INT(eMissionStage)
|
|
#ENDIF
|
|
ENDWHILE
|
|
ENDSCRIPT
|