320 lines
9.6 KiB
XML
Executable File
320 lines
9.6 KiB
XML
Executable File
// Includes
|
||
USING "rage_builtins.sch"
|
||
USING "globals.sch"
|
||
USING "commands_object.sch"
|
||
USING "commands_interiors.sch"
|
||
USING "commands_misc.sch"
|
||
USING "script_debug.sch"
|
||
|
||
CONST_INT NUMBER_OF_ARMOUR_PICKUPS(45)
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
|
||
/// PURPOSE: Returns location name of armour pickup
|
||
FUNC STRING GET_ARMOUR_LOCATION_NAME(INT iIndex)
|
||
|
||
SWITCH iIndex
|
||
CASE 0 RETURN "01: Tower scaffold at docks" BREAK
|
||
CASE 1 RETURN "02: Behind Bin at housing blocks" BREAK
|
||
CASE 2 RETURN "03: St. Fiacre teaching hospital" BREAK
|
||
CASE 3 RETURN "04: Junkyard" BREAK
|
||
CASE 4 RETURN "05: Maze Bank" BREAK
|
||
CASE 5 RETURN "06: Museum" BREAK
|
||
CASE 6 RETURN "07: Office block parking garage" BREAK
|
||
CASE 7 RETURN "08: The Pink Cage motel swimming pool" BREAK
|
||
CASE 8 RETURN "09: Construction site near freeway" BREAK
|
||
CASE 9 RETURN "10: End of pier walkway" BREAK
|
||
|
||
CASE 10 RETURN "11: Conveyor belt at Airport" BREAK
|
||
CASE 11 RETURN "12: House on the beach" BREAK
|
||
CASE 12 RETURN "13: Recess under rockface" BREAK
|
||
CASE 13 RETURN "14: Sewage works near air base" BREAK
|
||
CASE 14 RETURN "15: Entrance to tunnel through hillside" BREAK
|
||
CASE 15 RETURN "16: Barn near cow field " BREAK
|
||
CASE 16 RETURN "17: Hippy Camp" BREAK
|
||
CASE 17 RETURN "18: Dam" BREAK
|
||
CASE 18 RETURN "19: Train station beside refinery" BREAK
|
||
CASE 19 RETURN "20: Storage tank in the hills" BREAK
|
||
CASE 20 RETURN "21: Building top" BREAK
|
||
|
||
CASE 21 RETURN "22: Gas station" BREAK
|
||
CASE 22 RETURN "23: Vineyard restaurant" BREAK
|
||
CASE 23 RETURN "24: Below Radio Tower" BREAK
|
||
CASE 24 RETURN "25: Fishery" BREAK
|
||
CASE 25 RETURN "26: Police Stations. A - Paleto Bay (dumpsters)" BREAK
|
||
CASE 26 RETURN "27: Police Stations. B - Sandy Shores" BREAK
|
||
CASE 27 RETURN "28: Police Stations. C - Vinewood" BREAK
|
||
CASE 28 RETURN "29: Police Stations. D - Downtown" BREAK
|
||
CASE 29 RETURN "30: Police Stations. E - Vespucci PD" BREAK
|
||
|
||
CASE 30 RETURN "31: Police Stations. F - Davis Sheriff’s station" BREAK
|
||
CASE 31 RETURN "32: Police Stations. G - LS Airport" BREAK
|
||
CASE 32 RETURN "33: Vinewood Hills - Portaloos" BREAK
|
||
CASE 33 RETURN "34: Vinewood Hills - Construction scaffolding" BREAK
|
||
CASE 34 RETURN "35: Vinewood Hills - Generator" BREAK
|
||
CASE 35 RETURN "36: Vinewood Hills - Forest River" BREAK
|
||
CASE 36 RETURN "38: Back of meth lab" BREAK
|
||
CASE 37 RETURN "39: Grove street porch" BREAK
|
||
CASE 38 RETURN "41: Trailer storage area" BREAK
|
||
|
||
CASE 39 RETURN "42: Office desk" BREAK
|
||
CASE 40 RETURN "43: Hobo underpass" BREAK
|
||
CASE 41 RETURN "44: In hole near shootout" BREAK
|
||
CASE 42 RETURN "45: Construction site next to cabin" BREAK
|
||
CASE 43 RETURN "46: Galilee boat house" BREAK
|
||
CASE 44 RETURN "47: Altruist Camp Church" BREAK
|
||
ENDSWITCH
|
||
|
||
|
||
RETURN "Invalid Location Index"
|
||
ENDFUNC
|
||
#ENDIF
|
||
|
||
/// PURPOSE: Returns coords of armour pickup
|
||
FUNC VECTOR GET_ARMOUR_PICKUP_COORDS(INT iIndex, BOOL bForChop=FALSE)
|
||
|
||
// If any of these have a bForChop vector set, Chop will lead the player to the bForChop vector then orientate himself towards the actual pickup vector.
|
||
// Small alterations are fine but if you move a pickup more than 1-2 metres away from its current position you must update the bForChop vector too or else we'll have Chop leading the player to nothing.
|
||
// The bForChop vector must be on a section of navmesh that is connected to the main navmesh. See Kev E if unsure.
|
||
SWITCH iIndex
|
||
|
||
CASE 0 RETURN << 473.1829, -2643.1838, 4.7209 >> BREAK
|
||
CASE 1
|
||
IF bForChop = TRUE
|
||
RETURN << 291.41, -2090.78, 16.29 >>
|
||
ELSE
|
||
RETURN <<289.2062, -2091.2209, 16.0234>>
|
||
ENDIF
|
||
BREAK
|
||
CASE 2
|
||
IF bForChop = TRUE
|
||
RETURN << 1173.83923, -1499.78076, 33.84875 >>
|
||
ELSE
|
||
RETURN << 1173.5656, -1495.7628, 34.1121 >>
|
||
ENDIF
|
||
BREAK
|
||
CASE 3
|
||
IF bForChop = TRUE
|
||
RETURN << -461.71393, -1699.20190, 17.85122 >>
|
||
ELSE
|
||
RETURN << -462, -1701, 18.8 >>
|
||
ENDIF
|
||
BREAK
|
||
CASE 4 RETURN << -1384.6276, -521.0416, 30.0840 >> BREAK
|
||
CASE 5 RETURN << -521.5692, -601.7532, 29.4482 >> BREAK
|
||
CASE 6 RETURN << -664.5000, 165.4552, 58.3821 >> BREAK
|
||
CASE 7 RETURN << 329.3609, -190.5986, 53.2262 >> BREAK
|
||
CASE 8
|
||
IF bForChop = TRUE
|
||
RETURN << -477.44, -1052.99, 39.81 >>
|
||
ELSE
|
||
RETURN << -478.7744, -1051.0792, 40.93 >>
|
||
ENDIF
|
||
BREAK
|
||
CASE 9 RETURN << -1268.0712, -1917.4076, 4.8583 >> BREAK
|
||
CASE 10 RETURN << -1221.9080, -2771.7622, 13.0545 >> BREAK
|
||
CASE 11 RETURN << -3088.6682, 652.9629, 0.989 >> BREAK
|
||
CASE 12
|
||
IF bForChop = TRUE
|
||
RETURN <<-629.3048, 2036.0667, 157.3307>>
|
||
ELSE
|
||
RETURN << -627.2166, 2035.0320, 157.5585 >>
|
||
ENDIF
|
||
BREAK
|
||
CASE 13
|
||
IF bForChop = TRUE
|
||
RETURN << -2071.90259, 3411.50415, 30.36414 >>
|
||
ELSE
|
||
RETURN << -2048.4832, 3406.1624, 31.1504 >>
|
||
ENDIF
|
||
BREAK
|
||
CASE 14 RETURN << -424.0321, 4012.7671, 80.4744 >> BREAK
|
||
CASE 15 RETURN << 1983.1, 5174.5, 47.6 >> BREAK
|
||
CASE 16
|
||
IF bForChop = TRUE
|
||
RETURN << 2341.1, 2576.0, 45.7 >>
|
||
ELSE
|
||
RETURN << 2340.17, 2573.89, 45.77 >>
|
||
ENDIF
|
||
BREAK
|
||
CASE 17
|
||
IF bForChop = TRUE
|
||
RETURN << 1663.90039, -25.91945, 172.77475 >>
|
||
ELSE
|
||
RETURN << 1663.9600, -24.1101, 172.7747 >>
|
||
ENDIF
|
||
BREAK
|
||
CASE 18
|
||
IF bForChop = TRUE
|
||
RETURN << 2614.45068, 1695.12708, 26.59907 >>
|
||
ELSE
|
||
RETURN << 2617.7290, 1693.4167, 30.8743 >>
|
||
ENDIF
|
||
BREAK
|
||
CASE 19
|
||
IF bForChop = TRUE
|
||
RETURN << -187.31, 1545.16, 314.07 >>
|
||
ELSE
|
||
RETURN << -187.0338, 1555.6766, 321.2431 >>
|
||
ENDIF
|
||
BREAK
|
||
CASE 20
|
||
IF bForChop = TRUE
|
||
RETURN << 859.50250, 2426.03955, 53.18517 >>
|
||
ELSE
|
||
RETURN << 868.7573, 2423.5361, 60.8942 >>
|
||
ENDIF
|
||
BREAK
|
||
CASE 21
|
||
IF bForChop = TRUE
|
||
RETURN << -1822.07507, 805.78137, 137.72650 >>
|
||
ELSE
|
||
RETURN << -1822.9667, 803.8147, 138.2005 >>
|
||
ENDIF
|
||
BREAK
|
||
CASE 22
|
||
IF bForChop = TRUE
|
||
RETURN << -1852.92212, 2054.41968, 139.98405 >>
|
||
ELSE
|
||
RETURN << -1851.6283, 2053.8359, 139.9841 >>
|
||
ENDIF
|
||
BREAK
|
||
CASE 23
|
||
IF bForChop = TRUE
|
||
RETURN << -1075.51489, 4898.49658, 213.27675 >>
|
||
ELSE
|
||
RETURN << -1070.6506, 4898.9336, 213.2752 >>
|
||
ENDIF
|
||
BREAK
|
||
CASE 24
|
||
IF bForChop = TRUE
|
||
RETURN << 1301.56, 4306.60, 36.39 >>
|
||
ELSE
|
||
RETURN << 1300.1, 4308.1, 37.3 >>
|
||
ENDIF
|
||
BREAK
|
||
CASE 25 //police stations start here
|
||
IF bForChop = TRUE
|
||
RETURN << -436.44, 5983.50, 30.49 >>
|
||
ELSE
|
||
RETURN << -437.94, 5985.04, 31.29 >>
|
||
ENDIF
|
||
BREAK
|
||
CASE 26
|
||
IF bForChop = TRUE
|
||
RETURN << 1840.5687, 3693.7703, 33.2668 >>
|
||
ELSE
|
||
RETURN << 1838.5770, 3692.0281, 33.6172 >>
|
||
ENDIF
|
||
BREAK
|
||
CASE 27 RETURN << 533.1, -23.8, 70.6 >> BREAK
|
||
CASE 28
|
||
IF bForChop = TRUE
|
||
RETURN << 445.83, -986.48, 29.69 >>
|
||
ELSE
|
||
RETURN << 446.4, -988.5, 29.770 >>
|
||
ENDIF
|
||
BREAK
|
||
CASE 29 RETURN << -1119.4977, -847.3371, 18.6886 >> BREAK
|
||
|
||
CASE 30 RETURN << 391.2, -1603.9, 28.380 >> BREAK
|
||
CASE 31 RETURN << -890.8, -2386.2, 13.4 >> BREAK
|
||
CASE 32
|
||
IF bForChop = TRUE
|
||
RETURN <<282.75, 953.05, 209.95>>
|
||
ELSE
|
||
RETURN <<284.7, 954.2, 210.1514>>
|
||
ENDIF
|
||
BREAK
|
||
CASE 33 RETURN <<-2003.1145, 544.7549, 114.5077>> BREAK
|
||
CASE 34
|
||
IF bForChop = TRUE
|
||
RETURN <<-397.57858, 1127.35315, 321.72913>>
|
||
ELSE
|
||
RETURN <<-386.8739, 1142.4197, 321.5892>>
|
||
ENDIF
|
||
BREAK
|
||
CASE 35 RETURN <<-1521.8113, 1560.2010, 106.9392>> BREAK
|
||
|
||
CASE 36 RETURN <<1391.9453, 3616.6548, 37.9259>> BREAK //<<1391.3459, 3619.9265, 39.0259>> is on table but it breaks
|
||
CASE 37
|
||
IF bForChop = TRUE
|
||
RETURN <<45.37, -1911.45, 20.79>>
|
||
ELSE
|
||
RETURN <<40.5177, -1910.7271, 20.9706>>
|
||
ENDIF
|
||
BREAK
|
||
|
||
CASE 38
|
||
IF bForChop = TRUE
|
||
RETURN <<68.14, 3749.36, 38.73>>
|
||
ELSE
|
||
RETURN <<70.3786, 3755.6055, 38.7487>>
|
||
ENDIF
|
||
BREAK
|
||
//CASE 39 RETURN <<117.6710, -754.2290, 258.1322>> BREAK
|
||
CASE 39 RETURN <<119.45, -755.29, 258.15>> BREAK
|
||
CASE 40
|
||
IF bForChop = TRUE
|
||
RETURN <<156.35, -1192.10, 28.37>>
|
||
ELSE
|
||
RETURN <<160.4134, -1191.7, 28.87>>
|
||
ENDIF
|
||
BREAK
|
||
CASE 41 RETURN <<23.9296, -633.9206, 6.5084>> BREAK
|
||
CASE 42
|
||
IF bForChop = TRUE
|
||
RETURN <<31.67, 6542.78, 30.44>>
|
||
ELSE
|
||
RETURN <<30.9162, 6546.7910, 30.4058>>
|
||
ENDIF
|
||
BREAK
|
||
CASE 43
|
||
IF bForChop
|
||
RETURN << 1333.0566, 4381.2778, 43.3703 >>
|
||
ELSE
|
||
RETURN << 1331.3549, 4392.8872, 44.0120 >>
|
||
ENDIF
|
||
BREAK
|
||
CASE 44
|
||
IF bForChop = TRUE
|
||
RETURN << -1147.31, 4939.27, 221.27 >>
|
||
ELSE
|
||
RETURN << -1149.3918, 4938.7710, 221.3682 >>
|
||
ENDIF
|
||
BREAK
|
||
ENDSWITCH
|
||
|
||
SCRIPT_ASSERT("Invalid index passed to GET_ARMOUR_PICKUP_COORDS")
|
||
RETURN <<0,0,0>>
|
||
ENDFUNC
|
||
|
||
/// PURPOSE:
|
||
/// Gets the interior name for the pickup
|
||
FUNC STRING GET_ARMOUR_PICKUP_ROOM_NAME(INT iIndex)
|
||
SWITCH iIndex
|
||
CASE 28 RETURN "PH_LOBBY_ROOM" BREAK
|
||
CASE 39 RETURN "V_FIB03_atr_off2" BREAK
|
||
CASE 41 RETURN "GtaMloRoomTun2" BREAK
|
||
DEFAULT
|
||
RETURN ""
|
||
BREAK
|
||
ENDSWITCH
|
||
|
||
RETURN ""
|
||
ENDFUNC
|
||
|
||
/// PURPOSE:
|
||
/// Returns TRUE if Chop can reach the armour pickup
|
||
FUNC BOOL CAN_CHOP_REACH_ARMOUR(INT index)
|
||
SWITCH (index)
|
||
CASE 33 FALLTHRU // Navigation nightmare
|
||
CASE 39 FALLTHRU // In office highrise
|
||
CASE 41 FALLTHRU // Bottom of construction site
|
||
RETURN FALSE
|
||
BREAK
|
||
ENDSWITCH
|
||
|
||
RETURN TRUE
|
||
ENDFUNC
|