Files
gtav-src/script/dev_ng/singleplayer/scripts/Minigames/Assassinations/Assassination_MissionData.sch
T
2025-09-29 00:52:08 +02:00

185 lines
8.2 KiB
Scheme
Executable File

// Assassination_MissionData.sch
CONST_INT NUM_ASSASSINATION_MISSIONS 5
/// PURPOSE: This enum is important because you can change the
/// ordering of this to change the order in which missions get played.
ENUM ASSASSINATION_MISSIONS
ASSASSINATION_Hotel = 0,
ASSASSINATION_Multi,
ASSASSINATION_Vice,
ASSASSINATION_Bus,
ASSASSINATION_Construction
ENDENUM
ENUM ASS_SCENE_TYPE
ASS_SCENE_TYPE_PAY_PHONE,
ASS_SCENE_TYPE_FREE_COORD
ENDENUM
ENUM eAssassinPackage_WeaponOutfit
eASM_WeaponOutfit_INVALID = -1,
eASM_BulletProofVest = BIT0
ENDENUM
ENUM eAssassinMissionFlags
ASM_MOVING_MISSION = BIT0 // Setting this flag makes the launcher skip distance checks for terminating the mission.
ENDENUM
STRUCT sAssassinMissionData
ASS_SCENE_TYPE eSceneType // Are we doing a pay phone cut-scene or a free-roam cut-scene?
VECTOR vPackageLoc // The location of the package, where player gets guns/equipment
VECTOR vPackageRotation // Rotation value for package
VECTOR vCutsceneCoord // The location of the payphone, where the player gets all his data and launches the mission.
VECTOR vCamCoord1 // The location of the first camera cut
VECTOR vCamRot1 // The rotation of the first camera cut
VECTOR vCamCoord2 // The location of the second camera cut
VECTOR vCamRot2 // The rotation of the second camera cut
STRING missionFilename // The script to launch to start the mission
FLOAT fBaseReward // The minimum reward the player can get for completing the mission without doing any of the special criteria.
FLOAT fBonusReward // The money to be awarded if the player gets the bonus.
VECTOR vCutscenePlayer // The position where the player will be during the package cutscene shot
VECTOR vSafeCarPosition // The position to reposition the player's vehicle when starting mission.
FLOAT fSafeCarHeading // The heading used in repositioning the car
eAssassinPackage_WeaponOutfit eGiveEquipment // If this is set, the player gets this weapon and/or outfit when he picks up the package.
VECTOR vPlayerPosition
FLOAT fPlayerHeading
BOOL bCreatePed
// Internal data
BLIP_INDEX genericBlip
ENDSTRUCT
FUNC VECTOR ASSASSINATION_GetMissionLocation(ASSASSINATION_MISSIONS mission)
SWITCH mission
CASE ASSASSINATION_Hotel
RETURN << -1704.4268, -1077.3157, 12.1111>>
CASE ASSASSINATION_Multi
RETURN << -700.4290, -916.7467, 18.2143 >>
CASE ASSASSINATION_Vice
RETURN << 214.1641, -852.8006, 29.3929 >>
CASE ASSASSINATION_Bus
RETURN << -21.9871, -107.4823, 55.9970 >>
CASE ASSASSINATION_Construction
RETURN << 806.1469, -1070.2103, 27.3361 >>
ENDSWITCH
RETURN <<0, 0, 0>>
ENDFUNC
// This function is invoked by the controller thread to get the mission we're going to launch next
FUNC sAssassinMissionData ASSASSINATION_GetMissionData(INT iRankAttempting)
sAssassinMissionData dataTemp
IF (iRankAttempting = ENUM_TO_INT(ASSASSINATION_Hotel))
dataTemp.eSceneType = ASS_SCENE_TYPE_FREE_COORD
dataTemp.vPackageLoc = <<0, 0, 0>>
dataTemp.vPackageRotation = <<0, 0, 0>>
dataTemp.vCutsceneCoord = ASSASSINATION_GetMissionLocation(ASSASSINATION_Hotel)
dataTemp.missionFilename = "Assassin_Valet"
dataTemp.fBaseReward = 7000.0
dataTemp.fBonusReward = 2000.0
dataTemp.eGiveEquipment = eASM_WeaponOutfit_INVALID
dataTemp.vCutscenePlayer = << -1700.0151, -1066.3350, 12.1440 >>
dataTemp.vSafeCarPosition = << -1691.5642, -1066.5138, 12.0760 >>
dataTemp.fSafeCarHeading = 35.4714
dataTemp.vCamCoord1 = <<-1700.4670, -1066.6720, 13.8795>>
dataTemp.vCamRot1 = <<-4.8332, -0.0000, -177.1283>>
dataTemp.vCamCoord2 = <<-1700.4670, -1066.6720, 13.8795>>
dataTemp.vCamRot2 = <<-4.8332, -0.0000, -177.1283>>
dataTemp.vPlayerPosition = <<-1700.0983, -1067.9395, 12.1547>>
dataTemp.fPlayerHeading = 162.4559
dataTemp.bCreatePed = TRUE
ELIF (iRankAttempting = ENUM_TO_INT(ASSASSINATION_Multi))
dataTemp.eSceneType = ASS_SCENE_TYPE_PAY_PHONE
dataTemp.vPackageLoc = << -699.3992, -917.5043, 18.2143 >>
dataTemp.vPackageRotation = <<0, 0, 0>>
dataTemp.vCutsceneCoord = ASSASSINATION_GetMissionLocation(ASSASSINATION_Multi)
dataTemp.missionFilename = "Assassin_Multi"
dataTemp.fBaseReward = 5000.0
dataTemp.fBonusReward = 2000.0
dataTemp.eGiveEquipment = eASM_WeaponOutfit_INVALID
dataTemp.vCutscenePlayer = << -700.1855, -917.9558, 18.2143 >>
dataTemp.vSafeCarPosition = << -699.9455, -921.7786, 18.0144 >>
dataTemp.fSafeCarHeading = 78.0874
dataTemp.vCamCoord1 = << -697.8064, -921.4629, 20.5104 >>
dataTemp.vCamRot1 = << -13.5249, -0.0000, 30.6033 >>
dataTemp.vCamCoord2 = << -702.4851, -921.2747, 21.1235 >>
dataTemp.vCamRot2 = << -22.5196, 0.0000, -43.0435 >>
dataTemp.vPlayerPosition = <<0, 0, 0>>
dataTemp.fPlayerHeading = 0
dataTemp.bCreatePed = FALSE
ELIF (iRankAttempting = ENUM_TO_INT(ASSASSINATION_Vice))
dataTemp.eSceneType = ASS_SCENE_TYPE_PAY_PHONE
dataTemp.vPackageLoc = << 215.1206, -853.3143, 29.3684 >>
dataTemp.vPackageRotation = <<0, 0, 87.1787>>
dataTemp.vCutsceneCoord = ASSASSINATION_GetMissionLocation(ASSASSINATION_Vice)
dataTemp.missionFilename = "Assassin_Hooker"
dataTemp.fBaseReward = 3000.0
dataTemp.fBonusReward = 2000.0
dataTemp.eGiveEquipment = eASM_WeaponOutfit_INVALID
dataTemp.vCutscenePlayer = << 213.7994, -853.9389, 29.3929 >>
dataTemp.vSafeCarPosition = << 205.2641, -847.2667, 29.4903 >>
dataTemp.fSafeCarHeading = 140.1039
dataTemp.vCamCoord1 = << 216.7391, -856.0031, 32.7127 >>
dataTemp.vCamRot1 = << -25.1365, 0.0000, 41.3912 >>
dataTemp.vCamCoord2 = << 210.4668, -851.3092, 32.1099 >>
dataTemp.vCamRot2 = << -16.3326, 0.0000, -127.0114 >>
dataTemp.vPlayerPosition = <<213.8733, -853.8161, 29.3922>>
dataTemp.fPlayerHeading = 344.0112
dataTemp.bCreatePed = FALSE
ELIF (iRankAttempting = ENUM_TO_INT(ASSASSINATION_Bus))
dataTemp.eSceneType = ASS_SCENE_TYPE_PAY_PHONE
dataTemp.vPackageLoc = << -22.5499, -107.3546, 56.0161 >>
dataTemp.vPackageRotation = <<0, 0, 269.7924>>
dataTemp.vCutsceneCoord = ASSASSINATION_GetMissionLocation(ASSASSINATION_Bus)
dataTemp.missionFilename = "Assassin_Bus"
dataTemp.fBaseReward = 5000.0
dataTemp.fBonusReward = 2000.0
dataTemp.eGiveEquipment = eASM_WeaponOutfit_INVALID
dataTemp.vCutscenePlayer = << -22.3125, -108.9183, 56.0068 >>
dataTemp.vSafeCarPosition = << -17.2677, -118.5915, 55.8734 >>
dataTemp.fSafeCarHeading = 1.4374
dataTemp.vCamCoord1 = << -26.1094, -108.0298, 59.0520 >>
dataTemp.vCamRot1 = << -21.2059, -0.0000, -109.0176 >>
dataTemp.vCamCoord2 = << -20.1189, -111.9639, 59.4377 >>
dataTemp.vCamRot2 = << -27.0037, 0.0000, 29.4640 >>
dataTemp.vPlayerPosition = <<0, 0, 0>>
dataTemp.fPlayerHeading = 0
dataTemp.bCreatePed = FALSE
ELIF (iRankAttempting = ENUM_TO_INT(ASSASSINATION_Construction))
dataTemp.eSceneType = ASS_SCENE_TYPE_PAY_PHONE
dataTemp.vPackageLoc = << 806.1469, -1070.2103, 27.3361 >>
dataTemp.vPackageRotation = <<0, 0, 90>>
dataTemp.vCutsceneCoord = ASSASSINATION_GetMissionLocation(ASSASSINATION_Construction)
dataTemp.missionFilename = "Assassin_Construction"
dataTemp.fBaseReward = 8000.0
dataTemp.fBonusReward = 2000.0
dataTemp.eGiveEquipment = eASM_BulletProofVest
dataTemp.vCutscenePlayer = << 804.9559, -1070.4604, 27.3361 >>
dataTemp.vSafeCarPosition = << 799.8408, -1079.1416, 27.3210 >>
dataTemp.fSafeCarHeading = 69.6524
dataTemp.vCamCoord1 = << 801.8048, -1068.0675, 30.3496 >>
dataTemp.vCamRot1 = << -20.8953, -0.0000, -132.9451 >>
dataTemp.vCamCoord2 = << 805.8168, -1074.4961, 28.9803 >>
dataTemp.vCamRot2 = << -1.5585, -0.0000, 6.9143 >>
dataTemp.vPlayerPosition = <<804.8776, -1070.5231, 27.3416>>
dataTemp.fPlayerHeading = 287.8741
dataTemp.bCreatePed = FALSE
ENDIF
RETURN dataTemp
ENDFUNC
// This function is invoked by the controller thread to get the mission we're going to launch next
PROC ASSASSINATION_CleanMissionData(sAssassinMissionData & dataStruct)
REMOVE_BLIP(dataStruct.genericBlip)
dataStruct.vCutsceneCoord = <<0,0,0>>
dataStruct.missionFilename = ""
dataStruct.eGiveEquipment = eASM_WeaponOutfit_INVALID
ENDPROC