185 lines
8.2 KiB
Scheme
Executable File
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
|