diff --git a/README.md b/README.md index 7ec79d4..9c05683 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,18 @@ -# Stand Lua RScript +## Stand 自用脚本 😋 -Stand 自用脚本 😋 +#### RScript.lua +常用功能 -- **RScript.lua** -常用功能 +#### RS_Collectibles.lua + +收藏品相关功能 -- **RScript2.lua** -非常用功能 diff --git a/RS_Collectibles.lua b/RS_Collectibles.lua new file mode 100644 index 0000000..5a233fc --- /dev/null +++ b/RS_Collectibles.lua @@ -0,0 +1,1232 @@ +-------------------------------- +-- Author: Rostal +-------------------------------- + +util.require_natives("3274a", "init") + +local SCRIPT_VERSION = "2024/8/25" + +local SUPPORT_GAME_VERSION = "1.69-3274" + + + +local Tunables = { + COLLECTABLES_TRICK_OR_TREAT = 32084, + COLLECTABLES_SNOWMEN = 33228, + VC_PEYOTE_ENABLE = 26683, + FLOW_TIMINGS_TREASURE_HUNT_EMAIL_TIMER = 31033, + BOUNTYHUNTERHATCHETEMAILTIMER = 23766, + BOUNTYHUNTERHATCHETEMAILTIMER2 = 23767, + BOUNTYHUNTERHATCHETEMAILTIMER3 = 23768, +} + +local PackedStats = { + -- IS_COLLECTABLE_COLLECTED + ACTION_FIGURE_0 = 26811, + PLAYING_CARD_0 = 26911, + SIGNAL_JAMMER_0 = 28099, + MOVIE_PROPS_0 = 30230, + HIDDEN_CACHE_0 = 30297, + TREASURE_CHESTS_0 = 30307, + RADIO_STATIONS_0 = 30310, + SHIPWRECKED_0 = 31734, + BURIED_STASH_0 = 25522, + TRICK_OR_TREAT_0 = 34252, + TRICK_OR_TREAT_10 = 34512, + LD_ORGANICS_0 = 34262, + SKYDIVES_0 = 34362, + SNOW_MEN_0 = 36630, + DEAD_DROP_0 = 36628, + _LS_POSTERS_TAGGED_0 = 42252, + _LS_SPRAY_CAN = 51189, + + + RDR_BOUNTY_HUNTER_NUMBER_OF_BOUNTIES_COMPLETED = 7315, + REVOLVER_TREASURE_HUNT_PROGRESS = 18981, + + -- GET_DAILY_COLLECTABLE_STAT_VALUE + POSTER_TAGGING_0 = 51546, +} + +local Coords = { + -- 手办 100 + figures = { + v3(-2557.405, 2315.502, 33.742), + v3(2487.128, 3759.327, 42.317), + v3(457.198, 5573.861, 780.184), + v3(-1280.407, 2549.743, 17.534), + v3(-107.722, -856.981, 38.261), + v3(-1050.513, -522.612, 36.634), + v3(693.306, 1200.583, 344.524), + v3(2500.654, -389.482, 94.245), + v3(483.4, -3110.621, 6.627), + v3(-2169.277, 5192.986, 16.295), + v3(177.674, 6394.054, 31.376), + v3(2416.942, 4994.557, 45.239), + v3(1702.9, 3291, 48.72), + v3(-600.813, 2088.011, 132.336), + v3(-3019.793, 41.9486, 10.2924), + v3(-485.4648, -54.441, 38.9945), + v3(-1350.785, -1547.089, 4.675), + v3(379.535, -1509.398, 29.34), + v3(2548.713, 385.386, 108.423), + v3(-769.346, 877.307, 203.424), + v3(-1513.54, 1517.184, 111.305), + v3(-1023.899, 190.912, 61.282), + v3(1136.355, -666.404, 57.044), + v3(3799.76, 4473.048, 6.032), + v3(1243.588, -2572.136, 42.603), + v3(219.811, 97.162, 96.336), + v3(-1545.826, -449.397, 40.318), + v3(-928.683, -2938.691, 13.059), + v3(-1647.926, -1094.716, 12.736), + v3(-2185.939, 4249.814, 48.803), + v3(-262.339, 4729.229, 137.329), + v3(-311.701, 6315.024, 31.978), + v3(3306.444, 5194.742, 17.432), + v3(1389.886, 3608.834, 35.06), + v3(852.846, 2166.327, 52.717), + v3(-1501.96, 814.071, 181.433), + v3(2634.972, 2931.061, 44.608), + v3(660.57, 549.947, 129.157), + v3(-710.626, -905.881, 19.015), + v3(1207.701, -1479.537, 35.166), + v3(-90.151, 939.849, 232.515), + v3(-180.059, -631.866, 48.534), + v3(-299.634, 2847.173, 55.485), + v3(621.365, -409.254, -1.308), + v3(-988.92, -102.669, 40.157), + v3(63.999, 3683.868, 39.763), + v3(-688.668, 5829.006, 16.775), + v3(1540.435, 6323.453, 23.519), + v3(2725.806, 4142.14, 43.293), + v3(1297.977, 4306.744, 37.897), + v3(1189.579, 2641.222, 38.413), + v3(-440.796, 1596.48, 358.648), + v3(-2237.557, 249.282, 175.352), + v3(-1211.932, -959.965, 0.393), + v3(153.845, -3077.341, 6.744), + v3(-66.231, -1451.825, 31.164), + v3(987.982, -136.863, 73.454), + v3(-507.032, 393.905, 96.411), + v3(172.1275, -564.1393, 22.145), + v3(1497.202, -2133.147, 76.302), + v3(-2958.706, 386.41, 14.434), + v3(1413.963, 1162.483, 114.351), + v3(-1648.058, 3018.313, 31.25), + v3(-1120.2, 4977.292, 185.445), + v3(1310.683, 6545.917, 4.798), + v3(1714.573, 4790.844, 41.539), + v3(1886.644, 3913.758, 32.039), + v3(543.476, 3074.79, 40.324), + v3(1408.045, 2157.34, 97.575), + v3(-3243.858, 996.179, 12.486), + v3(-1905.566, -709.6311, 8.766), + v3(-1462.089, 182.089, 54.953), + v3(86.997, 812.619, 211.062), + v3(-886.554, -2096.579, 8.699), + v3(367.684, -2113.475, 16.274), + v3(679.009, -1522.824, 8.834), + v3(1667.377, 0.119, 165.118), + v3(-293.486, -342.485, 9.481), + v3(462.664, -765.675, 26.358), + v3(-57.784, 1939.74, 189.655), + v3(2618.411, 1692.395, 31.9462), + v3(-1894.554, 2043.517, 140.9093), + v3(2221.858, 5612.785, 54.0631), + v3(-551.3712, 5330.728, 73.9861), + v3(-2171.406, 3441.188, 32.175), + v3(1848.131, 2700.702, 63.008), + v3(-1719.602, -232.886, 54.4441), + v3(-55.3785, -2519.755, 7.2875), + v3(874.8454, -2163.998, 32.3688), + v3(-43.6983, -1747.961, 29.2778), + v3(173.324, -1208.43, 29.6564), + v3(2936.323, 4620.483, 48.767), + v3(3514.655, 3754.687, 34.4766), + v3(656.9, -1046.931, 21.5745), + v3(-141.1536, 234.8366, 99.0008), + v3(-1806.68, 427.6159, 131.765), + v3(-908.9565, -1148.917, 2.3868), + v3(387.9323, 2570.408, 43.299), + v3(2399.505, 3062.746, 53.4703), + v3(2394.721, 3062.689, 51.2379), + }, + -- 信号干扰器 50 + jammers = { + v3(1006.372, -2881.68, 30.422), + v3(-980.242, -2637.703, 88.528), + v3(-688.195, -1399.329, 23.331), + v3(1120.696, -1539.165, 54.871), + v3(2455.134, -382.585, 112.635), + v3(793.878, -717.299, 48.083), + v3(-168.3, -590.153, 210.936), + v3(-1298.343, -435.8369, 108.129), + v3(-2276.484, 335.0941, 195.723), + v3(-667.25, 228.545, 154.051), + v3(682.561, 567.5302, 153.895), + v3(2722.561, 1538.103, 85.202), + v3(758.539, 1273.687, 445.181), + v3(-3079.258, 768.5189, 31.569), + v3(-2359.338, 3246.831, 104.188), + v3(1693.732, 2656.602, 60.84), + v3(3555.018, 3684.98, 61.27), + v3(1869.022, 3714.435, 117.068), + v3(2902.552, 4324.699, 101.106), + v3(-508.6141, 4426.661, 87.511), + v3(-104.417, 6227.278, 63.696), + v3(1607.501, 6437.315, 32.162), + v3(2792.933, 5993.922, 366.867), + v3(1720.613, 4822.467, 59.7), + v3(-1661.01, -1126.742, 29.773), + v3(-1873.49, 2058.357, 154.407), + v3(2122.46, 1750.886, 138.114), + v3(-417.424, 1153.143, 339.128), + v3(3303.901, 5169.792, 28.735), + v3(-1005.848, 4852.147, 302.025), + v3(-306.627, 2824.859, 69.512), + v3(1660.663, -28.07, 179.137), + v3(754.647, 2584.067, 133.904), + v3(-279.9081, -1915.608, 54.173), + v3(-260.4421, -2411.807, 126.019), + v3(552.132, -2221.853, 73), + v3(394.3919, -1402.144, 76.267), + v3(1609.791, -2243.767, 130.187), + v3(234.2919, 220.771, 168.981), + v3(-1237.121, -850.4969, 82.98), + v3(-1272.732, 317.9532, 90.352), + v3(0.088, -1002.404, 96.32), + v3(470.5569, -105.049, 135.908), + v3(-548.5471, -197.9911, 82.813), + v3(2581.047, 461.9421, 115.095), + v3(720.14, 4097.634, 38.075), + v3(1242.471, 1876.068, 92.242), + v3(2752.113, 3472.779, 67.911), + v3(-2191.856, 4292.408, 55.013), + v3(450.475, 5581.514, 794.0683), + }, + -- 纸牌 54 + cards = { + v3(1992.183, 3046.28, 47.125), + v3(120.38, -1297.669, 28.705), + v3(79.293, 3704.578, 40.945), + v3(2937.738, 5325.846, 100.176), + v3(727.153, 4189.818, 40.476), + v3(-103.14, 369.008, 112.267), + v3(99.959, 6619.539, 32.314), + v3(-282.6689, 6226.274, 31.3554), + v3(1707.556, 4921.021, 41.865), + v3(-1581.86, 5204.295, 3.9093), + v3(10.8264, -1101.157, 29.613), + v3(1690.043, 3589.014, 35.5883), + v3(1159.144, -316.5876, 69.5134), + v3(2341.807, 2571.737, 47.6079), + v3(-3048.193, 585.2986, 7.7708), + v3(-3149.707, 1115.83, 20.7216), + v3(-1840.641, -1235.319, 13.2937), + v3(810.6056, -2978.741, 5.8116), + v3(202.2747, -1645.225, 29.7679), + v3(253.2056, 215.9778, 106.2848), + v3(-1166.183, -233.9277, 38.262), + v3(729.9886, 2514.713, 73.1663), + v3(188.1851, 3076.332, 43.0447), + v3(3687.914, 4569.073, 24.9397), + v3(1876.975, 6410.034, 46.5982), + v3(2121.146, 4784.687, 40.8114), + v3(900.0845, 3558.156, 33.6258), + v3(2695.272, 4324.496, 45.6516), + v3(-1829.428, 798.4049, 138.0583), + v3(-1203.725, -1558.866, 4.1736), + v3(-73.2829, -2005.476, 18.2561), + v3(-1154.201, -527.2959, 31.7117), + v3(990.0786, -1800.391, 31.3781), + v3(827.5513, -2158.744, 29.417), + v3(-1512.08, -103.625, 54.2027), + v3(-970.7493, 104.3396, 55.0431), + v3(-428.6815, 1213.905, 325.9329), + v3(-167.8387, -297.1122, 39.0353), + v3(2747.322, 3465.12, 55.6336), + v3(-1103.659, 2714.689, 19.4539), + v3(549.4841, -189.3053, 54.4369), + v3(-1287.689, -1118.818, 6.3057), + v3(1131.428, -982.0297, 46.6521), + v3(-1028.083, -2746.936, 13.3589), + v3(-538.5779, -1278.542, 26.3437), + v3(1326.449, -1651.263, 52.0964), + v3(183.3252, -685.2661, 42.607), + v3(1487.846, 1129.2, 114.3005), + v3(-2305.538, 3387.973, 31.0201), + v3(-522.632, 4193.459, 193.7517), + v3(-748.9897, 5599.534, 41.5794), + v3(-288.0628, 2545.21, 74.4223), + v3(2565.326, 296.8703, 108.7367), + v3(-408.2484, 585.783, 124.378), + }, + -- 电影道具 7 + movie_prop = { + v3(94.202, -1294.965, 29.067), + v3(-1010.051, -502.175, 36.493), + v3(2517.254, 3789.326, 53.698), + v3(-2349.036, 3270.785, 32.968), + v3(1165.416, 247.5531, -50.73), + v3(-41.795, 2873.231, 59.625), + v3(-1169.573, 4926.988, 223.7279), + }, + -- 南瓜 200 + lanterns = { + v3(-189.701, -763.3126, 29.454), + v3(-233.321, -909.614, 31.3158), + v3(-553.5505, -815.0607, 29.6916), + v3(-728.8868, -678.7939, 29.315), + v3(-1185.507, -566.7111, 27.3348), + v3(-1339.806, -409.658, 35.373), + v3(-1536.558, -423.9365, 34.597), + v3(-1580.622, -952.5058, 12.0174), + v3(-1976.58, -532.485, 10.826), + v3(-1884.625, -366.126, 48.354), + v3(-1289.285, -1115.446, 6.0404), + v3(-1503.121, -936.5198, 9.1563), + v3(-1334.734, -1280.177, 3.836), + v3(-1183.44, -1559.434, 3.3591), + v3(-971.0191, -1093.48, 1.1503), + v3(-840.8212, -1207.88, 5.6051), + v3(-296.9001, -1334.173, 30.2995), + v3(-225.556, -1500.448, 31.131), + v3(-121.627, -1489.878, 32.821), + v3(-195.651, -1607.897, 33.0368), + v3(-160.142, -1681.59, 35.964), + v3(-81.4956, -1642.043, 28.3083), + v3(-20.704, -1856.823, 24.016), + v3(23.953, -1897.309, 21.969), + v3(151.071, -1865.461, 23.205), + v3(177.9339, -1927.648, 20.0126), + v3(224.824, -2036.894, 17.38), + v3(325.4174, -1946.595, 23.7789), + v3(386.328, -1880.668, 25.035), + v3(321.5227, -1758.72, 28.3096), + v3(496.8552, -1819.122, 27.501), + v3(430.3069, -1724.543, 28.6064), + v3(413.243, -1487.521, 29.152), + v3(376.6, -2067.951, 20.369), + v3(297.152, -2096.86, 16.667), + v3(1257.384, -1762.429, 48.662), + v3(1310.985, -1698.068, 56.836), + v3(1203.222, -1672.258, 41.356), + v3(1296.15, -1619.214, 53.224), + v3(1231.962, -1590.563, 52.769), + v3(1152.695, -1531.528, 34.3815), + v3(1184.524, -1464.062, 33.823), + v3(1320.342, -1557.638, 50.2518), + v3(1435.174, -1491.414, 62.625), + v3(806.0478, -1073.288, 27.924), + v3(847.3984, -1021.431, 26.536), + v3(477.993, -976.005, 26.982), + v3(387.744, -973.043, 28.437), + v3(359.719, -1072.742, 28.545), + v3(262.8465, -1026.979, 28.2158), + v3(244.76, -1073.888, 28.287), + v3(1209.887, -1388.977, 34.3769), + v3(1142.299, -981.9567, 45.1429), + v3(73.529, -1026.593, 28.475), + v3(68.017, -960.636, 28.807), + v3(-16.947, -979.452, 28.503), + v3(-1205.765, -1135.791, 6.8417), + v3(-1124.566, -1089.562, 1.549), + v3(-1075.785, -1027.721, 3.548), + v3(-961.535, -940.509, 1.149), + v3(-1028.67, -920.2025, 4.0462), + v3(-1150.722, -990.091, 1.149), + v3(-1726.561, -192.421, 57.511), + v3(-62.999, -1450.793, 31.1237), + v3(-1548.042, -90.522, 53.933), + v3(-1465.655, -31.124, 53.696), + v3(-1475.253, 63.768, 52.328), + v3(-1565.532, 40.189, 57.883), + v3(-1650.799, 150.181, 61.167), + v3(-1538.653, 130.704, 56.37), + v3(-1179.64, 292.144, 68.497), + v3(-1023.641, 358.387, 70.36), + v3(-1131.724, 390.5965, 69.8053), + v3(-1214.895, 461.5896, 90.8536), + v3(-1499.284, 523.861, 117.271), + v3(-1290.108, 648.5641, 140.4938), + v3(-1123.263, 575.838, 103.394), + v3(-1025.834, 505.1749, 80.6515), + v3(-969.444, 434.741, 79.57), + v3(-864.8736, 389.6919, 86.4873), + v3(-819.564, 266.954, 85.392), + v3(-597.9922, 278.1837, 81.1112), + v3(-571.93, 401.957, 99.665), + v3(-585.74, 494.794, 106.106), + v3(-718.91, 490.583, 108.388), + v3(-884.518, 519.033, 91.441), + v3(-937.445, 591.477, 100.499), + v3(-702.494, 589.252, 140.929), + v3(-888.666, 699.998, 149.6837), + v3(-1019.008, 718.9766, 162.9962), + v3(-1163.977, 729.633, 154.61), + v3(-578.299, 734.835, 183.03), + v3(-549.275, 826.159, 196.508), + v3(-493.592, 739.668, 162.035), + v3(-447.063, 685.288, 151.955), + v3(-344.611, 624.076, 170.355), + v3(-247.952, 622.206, 186.809), + v3(-137.8688, 592.7097, 203.5206), + v3(-178.251, 502.183, 135.827), + v3(-353.838, 467.898, 111.6), + v3(-370.018, 343.79, 108.946), + v3(-250.332, 397.556, 110.251), + v3(-85.666, 424.562, 112.224), + v3(-822.3367, 813.652, 199.8532), + v3(-1313.372, 451.3146, 99.9888), + v3(-1686.279, -290.491, 50.892), + v3(82.5397, -91.9352, 59.5567), + v3(124.799, 66.057, 78.74), + v3(12.9173, -8.399, 69.1162), + v3(-176.8698, 86.8545, 69.2855), + v3(-438.5465, -67.3735, 42.0095), + v3(-375.576, 44.577, 53.428), + v3(-569.9086, 168.254, 65.5663), + v3(1775.932, 3740.67, 33.6562), + v3(1915.427, 3825.728, 31.443), + v3(2002.334, 3780.291, 31.179), + v3(1923.412, 3916.096, 31.5573), + v3(1759.466, 3870.604, 33.7011), + v3(1661.887, 3822.058, 34.473), + v3(1419.643, 3668.236, 38.7334), + v3(439.621, 3571.637, 32.237), + v3(247.488, 3167.516, 41.885), + v3(197.3604, 3030.443, 42.8867), + v3(-286.359, 2838.471, 53.973), + v3(-325.2867, 2816.483, 58.4498), + v3(-461.6427, 2859.427, 33.7354), + v3(-37.136, 2869.897, 58.625), + v3(470.221, 2607.623, 43.481), + v3(563.666, 2599.943, 42.113), + v3(733.646, 2524.984, 72.34), + v3(721.333, 2331.018, 50.754), + v3(789.176, 2180.511, 51.652), + v3(843.259, 2113.888, 51.267), + v3(1531.942, 1729.31, 108.9177), + v3(2588.599, 3167.521, 50.371), + v3(2618.848, 3280.744, 54.249), + v3(2985.01, 3482.104, 70.4419), + v3(1356.303, 1147.111, 112.759), + v3(1533.893, 2219.883, 76.2135), + v3(-148.0881, 287.3474, 95.804), + v3(1989.794, 3054.594, 46.213), + v3(2166.818, 3381.051, 45.46), + v3(2180.096, 3497.361, 44.4592), + v3(2418.844, 4021.485, 35.802), + v3(346.24, 441.64, 146.706), + v3(325.772, 536.228, 152.811), + v3(216.718, 621.505, 186.634), + v3(167.685, 487.5329, 142.1009), + v3(57.1598, 451.9345, 145.9096), + v3(8.554, 542.77, 174.827), + v3(-148.985, 996.5, 235.885), + v3(-2006.675, 445.9337, 102.021), + v3(-1975.162, 629.493, 121.535), + v3(-1812.335, 342.8018, 87.9612), + v3(-1963.542, 246.943, 85.567), + v3(-340.031, 6165.106, 30.663), + v3(-404.723, 6316.063, 27.943), + v3(-305.281, 6329.808, 31.4893), + v3(-245.486, 6413.258, 30.261), + v3(-110.0724, 6460.96, 30.6408), + v3(-48.2033, 6580.343, 31.1805), + v3(56.455, 6643.994, 31.28), + v3(-103.7947, 6315.484, 30.5812), + v3(2232.981, 5611.867, 53.9195), + v3(1856.438, 3683.872, 33.2675), + v3(3312.502, 5176.144, 18.6196), + v3(1662.391, 4775.14, 41.006), + v3(1724.588, 4643.431, 42.8755), + v3(1968.356, 4622.632, 40.083), + v3(1309.106, 4362.913, 40.5463), + v3(722.405, 4186.963, 39.886), + v3(92.067, 3743.533, 38.623), + v3(33.199, 3668.209, 38.715), + v3(-267.7338, 2628.924, 60.8669), + v3(-263.6633, 2197.269, 129.4037), + v3(749.868, 224.827, 86.426), + v3(133.2061, -567.3676, 42.8161), + v3(-1874.804, 2030.164, 138.7318), + v3(-1114.113, 2689.189, 17.5833), + v3(-3184.543, 1293.391, 13.5473), + v3(-3205.871, 1151.494, 8.6673), + v3(-3233.165, 933.7818, 16.1599), + v3(-2997.617, 695.5018, 24.7621), + v3(-3036.497, 491.4613, 5.7679), + v3(-3087.551, 220.9675, 13.0732), + v3(-769.6445, 5514.033, 33.8517), + v3(1706.973, 6425.33, 31.7671), + v3(2452.608, 4964.704, 45.581), + v3(2638.939, 4245.413, 43.7446), + v3(964.9565, -545.2515, 58.3475), + v3(961.9368, -596.4669, 58.9027), + v3(997.1859, -728.1738, 56.8192), + v3(1207.301, -621.1257, 65.4421), + v3(1371.074, -555.7357, 73.6891), + v3(1323.79, -583.4503, 72.2514), + v3(1261.874, -428.6422, 68.8054), + v3(1011.482, -424.2754, 63.9561), + v3(-2553.464, 1914.783, 168.0181), + v3(3688.297, 4563.858, 24.1865), + v3(-1523.871, 852.2529, 180.5948) + }, + -- 拉玛有机坊产品 100 + ld_product = { + v3(-1002.254, 130.075, 55.519), + v3(-1504.595, -36.351, 54.707), + v3(-1677.41, -443.6646, 39.8968), + v3(-842.328, -345.95, 38.501), + v3(-430.64, 288.196, 86.174), + v3(1575.068, -1732.029, 87.9448), + v3(-2038.497, 539.83, 109.752), + v3(-2973.772, 20.3182, 7.4278), + v3(-3235.982, 1104.414, 2.602), + v3(-2630.007, 1874.927, 160.251), + v3(-1875.84, 2027.968, 139.838), + v3(-1596.847, 3054.303, 33.12), + v3(1740.868, 3327.709, 41.211), + v3(1323.174, 3008.294, 44.09), + v3(1766.628, 3916.891, 34.821), + v3(2704.12, 3521.006, 61.773), + v3(3608.93, 3625.699, 40.827), + v3(2141.796, 4790.276, 40.7243), + v3(439.911, 6455.761, 36.068), + v3(1444.224, 6331.349, 23.806), + v3(-581.923, 5368.024, 70.294), + v3(497.611, 5606.312, 795.85), + v3(1384.78, 4288.897, 36.391), + v3(712.585, 4111.207, 31.65), + v3(325.916, 4429.151, 64.688), + v3(-214.4409, 3601.96, 61.6145), + v3(66.001, 3760.242, 39.943), + v3(98.651, 3601.149, 39.752), + v3(-1147.729, 4949.988, 221.278), + v3(-2511.306, 3613.96, 13.469), + v3(-1936.931, 3329.973, 33.215), + v3(2497.993, -429.74, 93.2676), + v3(3818.776, 4488.587, 4.532), + v3(96.5449, -255.7652, 47.0503), + v3(-1393.931, -1445.899, 4.308), + v3(-929.642, -746.513, 19.752), + v3(154.263, 1098.689, 231.338), + v3(2982.726, 6368.5, 2.311), + v3(-512.5049, -1626.817, 17.4995), + v3(-56.232, 80.423, 71.868), + v3(431.973, -2910.015, 6.734), + v3(664.98, 1284.782, 360.1198), + v3(-452.9, 1079.414, 327.803), + v3(-196.239, -2354.753, 9.478), + v3(248.439, 128.028, 103.099), + v3(2661.16, 1640.974, 24.654), + v3(1668.438, -26.473, 184.91), + v3(-37.931, 1937.999, 189.8), + v3(-1591.535, 801.656, 186.161), + v3(2193.213, 5593.691, 53.684), + v3(1641.563, 2656.195, 54.855), + v3(-1608.398, 5262.396, 3.966), + v3(-937.037, -1044.216, 0.436), + v3(-2200.313, 4237.116, 48.046), + v3(-1263.321, -367.5901, 44.5355), + v3(1018.407, 2457.103, 44.758), + v3(-3091.239, 660.393, 1.701), + v3(-193.708, 793.051, 197.758), + v3(987.808, -105.7523, 74.1212), + v3(-927.8402, -2934.034, 14.1399), + v3(-1640.297, -3165.138, 40.8515), + v3(-1011.272, -1491.967, 4.7604), + v3(343.7568, 946.6004, 204.4755), + v3(750.829, 196.948, 85.651), + v3(-331.626, 6285.987, 34.8), + v3(-311.981, -1626.432, 31.473), + v3(819.625, -796.649, 35.338), + v3(132.977, -576.783, 18.278), + v3(-1442.642, 567.622, 121.601), + v3(-363.567, 572.64, 127.044), + v3(-763.812, 705.641, 144.732), + v3(1902.373, 572.778, 176.627), + v3(-672.715, 59.853, 61.902), + v3(43.7134, 2791.532, 57.6598), + v3(1220.985, 1902.975, 78.0406), + v3(2517.942, 2615.929, 38.086), + v3(3455.177, 5510.634, 18.769), + v3(1500.862, -2513.839, 56.26), + v3(1467.102, 1096.74, 113.988), + v3(545.206, 2880.917, 42.441), + v3(2612.129, 2782.483, 34.102), + v3(-14.178, 6491.451, 37.251), + v3(-788.846, -2086.048, 9.164), + v3(981.079, -2583.384, 10.37), + v3(964.371, -1811.011, 31.146), + v3(511.737, -1335.028, 29.488), + v3(-69.0361, -1229.77, 29.3137), + v3(202.812, -1758.72, 33.229), + v3(-328.378, -1372.415, 41.193), + v3(-1635.991, -1031.127, 13.024), + v3(955.454, 73.628, 112.592), + v3(265.722, -1335.354, 36.17), + v3(-1033.097, -825.029, 19.049), + v3(-592.9804, -875.5658, 25.5693), + v3(-246.484, -786.507, 30.531), + v3(479.364, -574.451, 28.5), + v3(1098.204, -1528.952, 34.475), + v3(580.785, -2284.23, 6.491), + v3(-295.973, -308.098, 9.511), + v3(-117.05, -1025.36, 27.318), + }, + -- 雪人 25 + snowmens = { + v3(-375.47916, 6230.158, 31.490055), + v3(1560.3787, 6447.053, 23.9866), + v3(3301.7886, 5149.8853, 18.34274), + v3(1703.0568, 4671.928, 43.15301), + v3(-1414.4647, 5094.9272, 60.674263), + v3(1993.1008, 3829.6396, 32.167336), + v3(224.9161, 3107.3345, 42.18394), + v3(2360.0037, 2522.7166, 46.66731), + v3(1510.8555, 1725.0353, 109.89355), + v3(-48.96374, 1964.4028, 189.87181), + v3(-1516.2083, 2140.2168, 56.11924), + v3(-2826.2356, 1424.6211, 100.706116), + v3(-2957.531, 723.6389, 28.792404), + v3(-1946.0231, 594.93756, 119.79223), + v3(-455.12027, 1130.5625, 325.89175), + v3(-819.9067, 165.35524, 71.26295), + v3(221.46722, -107.01075, 69.763985), + v3(901.3996, -288.05026, 65.643715), + v3(-780.418, 877.2859, 203.18001), + v3(1275.6772, -642.3789, 68.208786), + v3(178.00232, -895.9712, 30.69326), + v3(-955.5352, -782.4186, 15.925326), + v3(-1100.889, -1401.0138, 5.215467), + v3(-247.92003, -1561.2175, 32.22973), + v3(1341.4302, -1583.5093, 54.135414), + }, + -- 仙人掌 76 + peyotes = { + v3(171.4769, -1925.586, 20.156), + v3(-234.541, -1516.663, 31.296), + v3(-213.5869, 6455.24, 30.329), + v3(327.064, 6430.808, 30.097), + v3(2268.018, 4597.53, 34.175), + v3(3102.362, 6034.412, 122.219), + v3(-35.2434, 2868.4, 58.4023), + v3(1733.005, 3850.126, 33.874), + v3(340.023, 3565.621, 32.491), + v3(-1858.733, 4806.635, 1.969), + v3(490.588, 5530.081, 777.292), + v3(-2792.443, 1432.48, 99.968), + v3(-2999.09, 769.195, 26.167), + v3(-855.473, 572.053, 95.69), + v3(1021.663, 2910.82, 39.645), + v3(-3078.123, 3202.819, 1.319), + v3(-1557.408, 2581.642, -0.078), + v3(2578.658, 5548.083, 59.436), + v3(2573.032, 1250.679, 42.545), + v3(-922.265, 4583.207, 230.673), + v3(2820.144, -759.318, 1.471), + v3(2385.41, 3335.046, 46.401), + v3(-1275.095, 1895.234, 101.362), + v3(1545.851, 1685.537, 108.875), + v3(727.608, -235.347, 65.276), + v3(-111.254, -413.31, 34.65), + v3(-1881.692, -607.578, 14.588), + v3(1071.716, -686.215, 56.692), + v3(2066.84, 1940.29, 81.791), + v3(1614.594, 6611.073, 14.617), + v3(-1179.712, 3854.412, 488.493), + v3(2940.191, 2745.018, 42.231), + v3(1288.918, -1059.638, 38.242), + v3(-1678.225, 357.721, 83.711), + v3(-778.6017, 117.243, 55.456), + v3(-794.2935, -727.5123, 26.418), + v3(330.147, 440.902, 144.37), + v3(-1314.857, -424.843, 34.462), + v3(224.4638, 49.089, 83.1668), + v3(1276.405, -1720.52, 53.795), + v3(-960.924, -2034.23, 8.524), + v3(-838.726, -1216.943, 5.902), + v3(2029.585, 498.1133, 163.1716), + v3(2764.432, -1600.286, 0.865), + v3(1498.68, -2722.499, 1.933), + v3(217.1979, -980.8727, 28.7917), + v3(686.64, -1109.484, 21.477), + v3(-220.848, 1006.557, 231.478), + v3(493.725, 1439.799, 350.758), + v3(-995.688, 6258.749, 1.433), + v3(-2871.632, 2605.268, -10.2517), + v3(56.2666, 7365.265, -5.357), + v3(-2861.12, 3900.557, -33.818), + v3(-1588.691, 5312.984, -5.1802), + v3(475.3864, 6946.059, -7.333), + v3(2453.258, 6692.051, -14.2188), + v3(4235.621, 4105.97, -31.4225), + v3(-138.1969, 4060.704, 26.1655), + v3(3395.229, 2252.51, -14.6511), + v3(2946.109, 812.0292, -11.0387), + v3(3194.644, -356.9405, -33.105), + v3(-1745.945, -1277.373, -19.8266), + v3(-3320.881, 1335.263, -17.2728), + v3(2183.961, -2714.103, -29.2357), + v3(-169.7448, -2890.406, -24.8927), + v3(-164.6574, -2309.281, -29.0637), + v3(618.835, -2192.552, -8.5744), + v3(649.5286, -3232.574, -16.81), + v3(-3078.018, -104.2799, -18.3237), + v3(-2205.006, -681.4622, -10.409), + v3(825.2657, -2790.566, -22.1959), + v3(3415.271, 5253.468, -12.1134), + v3(1219.192, 4119.479, 13.7925), + v3(-1014.588, -1707.169, -9.2745), + v3(1674.983, 5141.897, 149.6046), + v3(-21.0273, -1424.168, 29.7078), + }, + -- 媒体记忆棒 4 + media_sticks = { + v3(-2172.587, 1159.6364, -24.372166), + v3(2725.424, -382.7012, -48.97467), + v3(-1618.6365, -3010.6003, -75.205), + v3(955.64325, 49.459408, 112.55278) + }, + -- 沉船藏宝箱 + ship_wrecks = { + [0] = v3(-389.978, -2215.861, 0.565), + [1] = v3(-872.646, -3121.243, 2.533), + [2] = v3(-1969.555, -3073.933, 1.899), + [3] = v3(-1227.362, -1862.997, 1.071), + [4] = v3(-1684.489, -1077.488, 0.464), + [5] = v3(-2219.716, -438.266, 0.828), + [6] = v3(-3099.804, 494.968, 0.134), + [7] = v3(-3226.636, 1337.312, 0.634), + [8] = v3(-2879.233, 2247.547, 0.878), + [9] = v3(-1767.392, 2642.144, 0.089), + [10] = v3(-180.913, 3081.589, 19.814), + [11] = v3(-2198.02, 4606.557, 1.402), + [12] = v3(-1356.295, 5379.136, 0.351), + [13] = v3(-844.701, 6045.489, 1.201), + [14] = v3(126.747, 7095.39, 0.484), + [15] = v3(473.135, 6741.893, -0.009), + [16] = v3(1469.845, 6629.33, -0.152), + [17] = v3(2356.588, 6663.491, -0.172), + [18] = v3(3380.806, 5670.246, 0.898), + [19] = v3(3198.166, 5091.909, 0.464), + [20] = v3(3947.421, 4403.337, 0.275), + [21] = v3(3901.5327, 3323.1387, 0.5902), + [22] = v3(3646.8667, 3120.687, 0.4864), + [23] = v3(2891.847, 1790.7085, 1.4015), + [24] = v3(2779.8674, 1106.5143, -0.0319), + [25] = v3(2783.5151, 82.6473, -0.0161), + [26] = v3(2820.225, -759.2029, 1.4572), + [27] = v3(2772.996, -1606.0311, -0.1129), + [28] = v3(1818.4303, -2718.4414, 0.1797), + [29] = v3(987.383, -2681.047, -0.1296) + }, + -- 佩里科岛 藏宝箱 + treasure_chests = { + [0] = v3(4877.7646, -4781.151, 1.1379), + [1] = v3(4535.187, -4703.817, 1.1286), + [2] = v3(3900.6318, -4704.9194, 3.4813), + [3] = v3(4823.4844, -4323.176, 4.6816), + [4] = v3(5175.097, -4678.9375, 1.4205), + [5] = v3(5590.9507, -5216.8467, 13.351), + [6] = v3(5457.7954, -5860.7734, 19.0936), + [7] = v3(4855.598, -5561.794, 26.5093), + [8] = v3(4854.77, -5162.7295, 1.4387), + [9] = v3(4178.2944, -4357.763, 1.5826), + [10] = v3(4942.0825, -5168.135, -3.575), + [11] = v3(4560.804, -4356.775, -7.888), + [12] = v3(5598.9644, -5604.2393, -6.0489), + [13] = v3(5264.7236, -4920.671, -2.8715), + [14] = v3(4944.2183, -4293.736, -6.6942), + [15] = v3(4560.804, -4356.775, -7.888), + [16] = v3(3983.0261, -4540.1865, -6.1264), + [17] = v3(4414.676, -4651.4575, -5.083), + [18] = v3(4540.07, -4774.899, -3.9321), + [19] = v3(4777.6006, -5394.6265, -5.0127) + }, + -- 佩里科岛 地下藏匿品 + buried_stashes = { + [0] = v3(5579.7026, -5231.42, 14.2512), + [1] = v3(5481.595, -5855.187, 19.128), + [2] = v3(5549.2407, -5747.577, 10.427), + [3] = v3(5295.542, -5587.4307, 61.3964), + [4] = v3(5136.9844, -5524.6675, 52.7719), + [5] = v3(4794.91, -5546.516, 21.4945), + [6] = v3(4895.3125, -5335.3433, 9.0204), + [7] = v3(4994.968, -5136.416, 1.476), + [8] = v3(5323.654, -5276.0596, 33.0353), + [9] = v3(5362.1177, -5170.0854, 28.035), + [10] = v3(5164.5522, -4706.8384, 1.1632), + [11] = v3(4888.6104, -4789.4756, 1.4911), + [12] = v3(4735.3096, -4687.2236, 1.2879), + [13] = v3(4887.2036, -4630.111, 13.149), + [14] = v3(4796.803, -4317.4175, 4.3515), + [15] = v3(4522.936, -4649.638, 10.037), + [16] = v3(4408.228, -4470.875, 3.3683), + [17] = v3(4348.7827, -4311.3193, 1.3335), + [18] = v3(4235.67, -4552.0557, 4.0738), + [19] = v3(3901.899, -4720.187, 3.4537) + }, + -- 寻宝活动线索 3 + treasure_hunt_clues = { + v3(-1914.0333, 1388.7535, 218.3793 + 1.0), + v3(1994.701, 5079.219, 41.663 + 1.0), + v3(1923.548, 3985.898, 31.257 + 1.0) + }, + + -- 喷罐 + spray_can = { + [0] = { -95.608, -1447.339, 32.416 }, + [1] = { 391.1991, -2001.3088, 22.5562 }, + [2] = { -1374.996, -1429.135, 2.573 }, + [3] = { 717.014, -1231.728, 23.674 }, + [4] = { -941.5645, -800.6533, 14.9212 }, + [5] = { 294.442, -213.8255, 60.5704 }, + [6] = { 2341.6877, 2569.9302, 45.6776 }, + [7] = { 1480.3708, 6412.3506, 21.419 }, + [8] = { -427.2096, 5993.384, 30.4901 }, + [9] = { 2476.1272, 3798.8647, 39.7158 }, + [10] = { 1594.3569, 3596.774, 34.4348 }, + [11] = { -1130.8267, 2678.497, 17.3529 }, + [12] = { -2946.0388, 411.1234, 14.2788 }, + [13] = { 1166.3623, -1641.4274, 35.9563 }, + [14] = { -602.332, -1700.2163, 22.9448 }, + [15] = { 763.4998, -2547.4656, 9.1047 }, + [16] = { 47.9363, -829.5912, 30.099 }, + [17] = { 1009.5839, -331.524, 47.628 }, + [18] = { -1557.8066, -468.7536, 34.8082 }, + [19] = { -498.0171, 69.3924, 55.4961 }, + [20] = { 2564.824, 278.9633, 107.5174 }, + [21] = { 559.4123, 2674.9053, 41.1594 }, + [22] = { 79.2603, 3723.0315, 38.7456 }, + [23] = { 781.3615, 1280.2087, 359.2967 }, + [24] = { -1098.6643, 4948.5493, 217.3544 }, + [25] = { 1684.6514, 4834.936, 41.0174 }, + [26] = { 2666.449, 1483.2086, 23.6957 }, + [27] = { 158.3901, -2912.235, 6.2447 }, + [28] = { -1132.1085, -1972.0721, 12.1604 }, + [29] = { 361.8988, 328.2904, 102.8024 } + }, + -- 洛圣都涂鸦海报 + ls_tags = { + [0] = { -977.6928, -2639.573, 16.474 }, + [1] = { 819.4288, -2227.2385, 32.6184 }, + [2] = { 37.9683, -1469.2217, 32.235 }, + [3] = { -768.9666, -1321.6681, 7.1244 }, + [4] = { 1209.1267, -1505.5887, 36.4654 }, + [5] = { 845.3231, -1203.0039, 27.46 }, + [6] = { 188.2855, -1843.3844, 29.2995 }, + [7] = { 182.0389, -941.2879, 32.2661 }, + [8] = { -501.2574, -684.436, 35.186 }, + [9] = { -1636.3019, -1063.8951, 15.1266 }, + [10] = { 1165.2151, -314.1255, 71.217 }, + [11] = { 369.5584, -326.8165, 49.145 }, + [12] = { -942.4161, -343.455, 40.765 }, + [13] = { -2066, -345.2393, 15.761 }, + [14] = { -359.6902, 141.5108, 68.5588 }, + [15] = { 2581.005, 487.5057, 110.868 }, + [16] = { 760.227, 583.9885, 128.3567 }, + [17] = { -481.0848, 1112.5974, 322.24 }, + [18] = { -1834.4456, 788.6052, 140.539 }, + [19] = { -3195.2385, 1318.3502, 11.5263 }, + [20] = { -2557.941, 2302.0186, 34.956 }, + [21] = { -2219.9644, 4222.4917, 49.078 }, + [22] = { 2469.77, 4082.911, 39.8446 }, + [23] = { 575.3076, 2676.81, 43.712 }, + [24] = { 2741.5925, 3453.4548, 58.443 }, + [25] = { 1928.9758, 3736.5696, 34.514 }, + [26] = { 1723.0552, 4790.159, 43.9136 }, + [27] = { -756.7117, 5600.3823, 38.6646 }, + [28] = { 1.7607, 6410.2383, 33.779 }, + [29] = { 1411.0867, 3608.7688, 37.0159 } + }, +} + + + +local function tp(coords) + local ent = entities.get_user_vehicle_as_handle(false) + if ent == INVALID_GUID then ent = players.user_ped() end + ENTITY.SET_ENTITY_COORDS_NO_OFFSET(ent, coords.x, coords.y, coords.z, true, false, false) +end + +local function tunable_get_bool(offset) + return memory.read_int(memory.script_global(262145 + offset)) ~= 0 +end +local function tunable_set_int(offset, value) + memory.write_int(memory.script_global(262145 + offset), value) +end +local function tunable_set_bool(offset, bool) + memory.write_int(memory.script_global(262145 + offset), bool and 1 or 0) +end + +local function GET_PACKED_STAT_INT_CODE(statIndex) + return STATS.GET_PACKED_STAT_INT_CODE(statIndex, util.get_char_slot()) +end +local function GET_PACKED_STAT_BOOL_CODE(statIndex) + return STATS.GET_PACKED_STAT_BOOL_CODE(statIndex, util.get_char_slot()) +end + +local function SET_PACKED_STAT_INT_CODE(statIndex, value) + STATS.SET_PACKED_STAT_INT_CODE(statIndex, value, util.get_char_slot()) +end +local function SET_PACKED_STAT_BOOL_CODE(statIndex, value) + STATS.SET_PACKED_STAT_BOOL_CODE(statIndex, value, util.get_char_slot()) +end + + +local function ADD_MP_INDEX(stat, add_mp_index) + if add_mp_index == nil or add_mp_index then + return "MP" .. util.get_char_slot() .. "_" .. stat + end + return stat +end +local function STAT_GET_INT(stat, add_mp_index) + stat = ADD_MP_INDEX(stat, add_mp_index) + + local ptr = memory.alloc_int() + STATS.STAT_GET_INT(util.joaat(stat), ptr, -1) + return memory.read_int(ptr) +end + + +local function has_jammer(jam_id) + return GET_PACKED_STAT_BOOL_CODE(28099 + jam_id) +end +local function has_action_figure(fig_id) + if fig_id >= 98 then + for i = 0, 97 do + if not GET_PACKED_STAT_BOOL_CODE(26811 + i) then + return true + end + end + end + return GET_PACKED_STAT_BOOL_CODE(26811 + fig_id) +end +local function has_playing_card(card_id) + return GET_PACKED_STAT_BOOL_CODE(26911 + card_id) +end +local function has_movie_prop(movie_prop_id) + return GET_PACKED_STAT_BOOL_CODE(30230 + movie_prop_id) +end +local function has_lantern(lntrn_id) + local stat = 34252 + lntrn_id + if lntrn_id > 9 then + stat += 250 + end + return GET_PACKED_STAT_BOOL_CODE(stat) +end +local function has_ld_product(prod_id) + return GET_PACKED_STAT_BOOL_CODE(34262 + prod_id) +end +local function has_snowman(snowman_id) + return GET_PACKED_STAT_BOOL_CODE(36630 + snowman_id) +end +local function get_blaine_county_progress() + local stat_id = 28149 + for i = 1, 5 do + if not GET_PACKED_STAT_BOOL_CODE(stat_id + i) then + return i + end + end + return 6 +end + + + + + + +--------------------------------------------- +---------- Script Menu Start ---------- +--------------------------------------------- + +-- Check Game Version +local CURRENT_GAME_VERSION = menu.get_version().game +if SUPPORT_GAME_VERSION ~= CURRENT_GAME_VERSION then + local state_text = string.format( + "支持的游戏版本: %s\n当前游戏版本: %s", + SUPPORT_GAME_VERSION, CURRENT_GAME_VERSION) + util.toast(state_text) +end + + + +local Menu_Root = menu.my_root() + +menu.divider(Menu_Root, "RS Collectibles") + + +local Menus = { + Action_Figures = {}, + Playing_Cards = {}, + Signal_Jammers = {}, + Movie_Props = {}, + LD_Organics_Product = {}, + Lanterns = {}, + Snowmens = {}, +} + +local function generate_collectible_commands(menu_parent, menu_name, coords_tables, menu_tables, has_func) + menu.action(menu_parent, "刷新收集状态", {}, "", function() + for index, command in pairs(menu_tables) do + local name = menu_name .. " " .. index + if has_func(index - 1) then + name = name .. " [已收集]" + end + menu.set_menu_name(command, name) + end + end) + + for index, coords in pairs(coords_tables) do + local name = menu_name .. " " .. index + if has_func(index - 1) then + name = name .. " [已收集]" + end + + local menu_action = menu.action(menu_parent, name, {}, "", function() + tp(coords) + end) + + menu_tables[index] = menu_action + end +end + +local function generate_collectible_commands2(menu_parent, menu_name, coords_tables) + for index, coords in pairs(coords_tables) do + local name = menu_name .. " " .. index + + menu.action(menu_parent, name, {}, "", function() + tp(coords) + end) + end +end + + + + +local Action_Figures = menu.list(Menu_Root, "手办 100", {}, "") + +generate_collectible_commands(Action_Figures, "手办", Coords.figures, + Menus.Action_Figures, has_action_figure) + + + +local Playing_Cards = menu.list(Menu_Root, "纸牌 54", {}, "") + +generate_collectible_commands(Playing_Cards, "纸牌", Coords.cards, + Menus.Playing_Cards, has_playing_card) + + + +local Signal_Jammers = menu.list(Menu_Root, "信号干扰器 50", {}, "") + +menu.toggle_loop(Signal_Jammers, "自动摧毁信号干扰器", {}, "", function() + for _, ptr in pairs(entities.get_all_objects_as_pointers()) do + local model_hash = entities.get_model_hash(ptr) + if model_hash == -305186631 and memory.read_float(ptr + 0x280) > 0 then + util.yield(100) + memory.write_float(ptr + 0x280, 0) + end + end +end) +generate_collectible_commands(Signal_Jammers, "信号干扰器", Coords.jammers, + Menus.Signal_Jammers, has_jammer) + + + +local Movie_Props = menu.list(Menu_Root, "电影道具 7", {}, "") + +generate_collectible_commands(Movie_Props, "电影道具", Coords.movie_prop, + Menus.Movie_Props, has_movie_prop) + + + +local LD_Organics_Product = menu.list(Menu_Root, "拉玛有机坊产品 100", {}, "") + +generate_collectible_commands(LD_Organics_Product, "拉玛有机坊产品", Coords.ld_product, + Menus.LD_Organics_Product, has_ld_product) + + + +local Peyote_Plants = menu.list(Menu_Root, "仙人掌 76", {}, "") + +menu.toggle(Peyote_Plants, "启用 收集活动", {}, "", function(toggle) + tunable_set_bool(Tunables.VC_PEYOTE_ENABLE, toggle) +end, tunable_get_bool(Tunables.VC_PEYOTE_ENABLE)) +generate_collectible_commands2(Peyote_Plants, "仙人掌", Coords.peyotes) + + + +local Lanterns = menu.list(Menu_Root, "万圣节南瓜 200", {}, "") + +menu.toggle(Lanterns, "启用 收集活动", {}, "", function(toggle) + tunable_set_bool(Tunables.COLLECTABLES_TRICK_OR_TREAT, toggle) +end, tunable_get_bool(Tunables.COLLECTABLES_TRICK_OR_TREAT)) +generate_collectible_commands(Lanterns, "万圣节南瓜", Coords.lanterns, + Menus.Lanterns, has_lantern) + + + +local Snowmens = menu.list(Menu_Root, "雪人 25", {}, "") + +menu.toggle(Snowmens, "启用 收集活动", {}, "", function(toggle) + tunable_set_bool(Tunables.COLLECTABLES_SNOWMEN, toggle) +end, tunable_get_bool(Tunables.COLLECTABLES_SNOWMEN)) +menu.toggle_loop(Snowmens, "自动摧毁雪人", {}, "", function() + for _, ptr in pairs(entities.get_all_objects_as_pointers()) do + local model_hash = entities.get_model_hash(ptr) + if model_hash == -722815214 or model_hash == 265563368 or model_hash == -241831832 then + if memory.read_float(ptr + 0x280) > 0 then + util.yield(100) + memory.write_float(ptr + 0x280, 0) + end + end + end +end) +generate_collectible_commands(Snowmens, "雪人", Coords.snowmens, + Menus.Snowmens, has_snowman) + + + +local Media_Sticks = menu.list(Menu_Root, "媒体记忆棒 4", {}, "") + +generate_collectible_commands2(Media_Sticks, "媒体记忆棒", Coords.media_sticks) + + + +local Ship_Wrecks = menu.list(Menu_Root, "沉船藏宝箱 1 (每日)", {}, "") + +menu.action(Ship_Wrecks, "沉船藏宝箱 1", {}, "", function() + local location = STAT_GET_INT("DAILYCOLLECT_SHIPWRECKED0") + local coords = Coords.ship_wrecks[location] + if coords == nil then return end + tp(coords) +end) + + + +local Treasure_Chests = menu.list(Menu_Root, "佩里科岛 藏宝箱 2 (每日)", {}, "") + +for i = 0, 1 do + menu.action(Treasure_Chests, "藏宝箱 " .. i + 1, {}, "", function() + local location = STAT_GET_INT("DAILYCOLLECTABLES_TREASURE" .. i) + local coords = Coords.treasure_chests[location] + if coords == nil then return end + tp(coords) + end) +end + + + +local Buried_Stashes = menu.list(Menu_Root, "佩里科岛 地下藏匿品 2 (每日)", {}, "") + +for i = 0, 1 do + menu.action(Buried_Stashes, "地下藏匿品 " .. i + 1, {}, "", function() + local location = STAT_GET_INT("DAILYCOLLECT_BURIEDSTASH" .. i) + local coords = Coords.buried_stashes[location] + if coords == nil then return end + tp(coords) + end) +end + + + +local Treasure_Hunt = menu.list(Menu_Root, "寻宝活动", {}, "", function() + if GET_PACKED_STAT_INT_CODE(PackedStats.REVOLVER_TREASURE_HUNT_PROGRESS) >= 4 then + util.toast("你已完成寻宝活动") + end +end) + +menu.action(Treasure_Hunt, "立即接收寻宝活动邮件", {}, "", function() + tunable_set_int(Tunables.FLOW_TIMINGS_TREASURE_HUNT_EMAIL_TIMER, 0) +end) +menu.action(Treasure_Hunt, "起始线索", {}, "进入范围内才可以传送", function() + local hash = util.joaat("xm_prop_x17_note_paper_01a") + for _, ent_ptr in pairs(entities.get_all_objects_as_pointers()) do + local model_hash = entities.get_model_hash(ent_ptr) + if model_hash == hash then + local coords = entities.get_position(ent_ptr) + coords.z = coords.z + 1.0 + tp(coords) + end + end +end) +generate_collectible_commands2(Treasure_Hunt, "线索", Coords.treasure_hunt_clues) + + + +local Bounty_Hunt = menu.list(Menu_Root, "悬赏活动", {}, "", function() + if GET_PACKED_STAT_INT_CODE(PackedStats.RDR_BOUNTY_HUNTER_NUMBER_OF_BOUNTIES_COMPLETED) >= 6 then + util.toast("你已完成悬赏活动") + end +end) + +menu.action(Bounty_Hunt, "立即接收悬赏目标邮件", {}, "", function() + tunable_set_int(Tunables.BOUNTYHUNTERHATCHETEMAILTIMER, 0) + tunable_set_int(Tunables.BOUNTYHUNTERHATCHETEMAILTIMER2, 0) + tunable_set_int(Tunables.BOUNTYHUNTERHATCHETEMAILTIMER3, 0) +end) +menu.action(Bounty_Hunt, "悬赏目标 传送到我", {}, "进入范围内才可以传送", function() + local coords = ENTITY.GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(players.user_ped(), 0.0, 2.0, 0.0) + + local blip = HUD.GET_CLOSEST_BLIP_INFO_ID(458) + if HUD.DOES_BLIP_EXIST(blip) then + local ent = HUD.GET_BLIP_INFO_ID_ENTITY_INDEX(blip) + ENTITY.SET_ENTITY_COORDS_NO_OFFSET(ent, coords.x, coords.y, coords.z, true, false, false) + + TASK.CLEAR_PED_TASKS_IMMEDIATELY(ent) + + return + end + + for _, ent in pairs(entities.get_all_peds_as_handles()) do + if ENTITY.IS_ENTITY_A_MISSION_ENTITY(ent) and not entities.is_player_ped(ent) then + ENTITY.SET_ENTITY_COORDS_NO_OFFSET(ent, coords.x, coords.y, coords.z, true, false, false) + + TASK.CLEAR_PED_TASKS_IMMEDIATELY(ent) + end + end +end) + + + +local LS_Tags = menu.list(Menu_Root, "洛圣都涂鸦 5 (每日)", {}, "") + +menu.click_slider(LS_Tags, "传送到 喷罐", {}, "", 0, 29, 0, 1, function(value) + local coords = Coords.spray_can[value] + tp(v3(coords[1], coords[2], coords[3])) +end) + +menu.divider(LS_Tags, "海报") + +for i = 0, 4, 1 do + menu.action(LS_Tags, "海报 " .. i + 1, {}, "", function() + local location = GET_PACKED_STAT_INT_CODE(PackedStats.POSTER_TAGGING_0 + i) + local coords = Coords.ls_tags[location] + if coords == nil then return end + tp(v3(coords[1], coords[2], coords[3])) + end) +end + + + + + + + + +----------------------------------------- +---------- About Options ---------- +----------------------------------------- + +local About_Options = menu.list(Menu_Root, "关于", {}, "") + +menu.readonly(About_Options, "Author", "Rostal") +menu.hyperlink(About_Options, "Github", "https://github.com/TCRoid/Stand-Lua-RScript") +menu.readonly(About_Options, "Version", SCRIPT_VERSION) +menu.readonly(About_Options, "Support Game Version", SUPPORT_GAME_VERSION) diff --git a/RScript.lua b/RScript.lua index e057c1d..ff1cb74 100644 --- a/RScript.lua +++ b/RScript.lua @@ -4,2606 +4,252 @@ local SCRIPT_START_TIME = util.current_time_millis() -util.require_natives("3095a", "init") - -local SCRIPT_VERSION = "2023/12/23" - -local SUPPORT_GTAO = 1.68 - - - - - - --------------------------------------- ----------- File & Dir ---------- --------------------------------------- - --- Store -local STORE_DIR = filesystem.store_dir() .. "RScript\\" -if not filesystem.exists(STORE_DIR) then - filesystem.mkdir(STORE_DIR) -end - --- Resource -local RESOURCE_DIR = filesystem.resources_dir() .. "RScript\\" -Texture = { - file = { - crosshair = RESOURCE_DIR .. "crosshair.png", - }, -} -for _, file in pairs(Texture.file) do - if not filesystem.exists(file) then - util.toast("[RScript] 缺少文件: " .. file, TOAST_ALL) - util.toast("脚本已停止运行") - util.stop_script() - end -end - -Texture.crosshair = directx.create_texture(Texture.file.crosshair) - --- Lib -local SCRIPT_LIB_DIR = filesystem.scripts_dir() .. "lib\\RScript\\" -local REQUIRED_FILES = { - "Tables.lua", - "variables.lua", - "alternatives.lua", - "functions.lua", - "functions2.lua", - "utils.lua", - "EntityLib.lua", - "Menu\\Entity.lua", - "Menu\\Mission.lua", - "Menu\\Online.lua", - "Menu\\Assistant.lua", - "Menu\\Bodyguard.lua", - "Menu\\Dev.lua", -} -for _, file in pairs(REQUIRED_FILES) do - local file_path = SCRIPT_LIB_DIR .. file - if not filesystem.exists(file_path) then - util.toast("[RScript] 缺少文件: " .. file_path, TOAST_ALL) - util.toast("脚本已停止运行") - util.stop_script() - end -end - --- Require -require "RScript.Tables" -require "RScript.variables" -require "RScript.alternatives" -require "RScript.functions" -require "RScript.functions2" -require "RScript.utils" -require "RScript.EntityLib" - - - ------------------------------------ ----------- Setting ---------- ------------------------------------ - -Setting = {} - -local SETTING_FILE = STORE_DIR .. "setting.txt" - -if not filesystem.exists(SETTING_FILE) or not filesystem.is_regular_file(SETTING_FILE) then - -- Default Setting - Setting = { - ["Dev Mode"] = false, - ["Change Script Entry"] = false, - } - util.write_colons_file(SETTING_FILE, Setting) -else - Setting = util.read_colons_and_tabs_file(SETTING_FILE) -end - ----@param key string ----@return boolean|string -function getSetting(key) - local value = Setting[key] - - if value == nil then - Setting[key] = false - return false - end - if value == "false" then - return false - end - if value == "true" then - return true - end - return value -end - ----@param key string ----@param value boolean|string|number -function setSetting(key, value) - Setting[key] = value -end - -DEV_MODE = getSetting("Dev Mode") - - - --- Backend Loop -Loop_Handler = { - Main = {}, - Self = {}, - Tunables = { - Cooldown = {}, - SpecialCargo = {}, - VehicleCargo = {}, - Bunker = {}, - AirFreight = {}, - Biker = {}, - AcidLab = {}, - Payphone = {}, - }, - Entity = { - show_info = {}, - draw_line = {}, - draw_bounding_box = {}, - preview_ent = { - ent = 0, - clone_ent = 0, - has_cloned_ent = 0, - camera_distance = 2.0, - }, - lock_tp = {}, - }, -} - - --- Transition Finished -Transition_Handler = { - Self = {}, -} - -util.on_transition_finished(function() - if Transition_Handler.Self.refill_armour then - menu.trigger_commands("refillarmour") - end -end) - - - ---------------------------------------------- ----------- Script Menu Start ---------- ---------------------------------------------- - -if not SCRIPT_SILENT_START then - local GTAO = tonumber(NETWORK.GET_ONLINE_VERSION()) - if SUPPORT_GTAO ~= GTAO then - util.toast("支持的GTA线上版本: " .. SUPPORT_GTAO .. "\n当前GTA线上版本: " .. GTAO) - end -end - - - -Menu_Root = menu.my_root() - -if getSetting("Change Script Entry") then - Menu_Root = menu.attach_before(menu.ref_by_path("Stand>Settings"), - menu.list(menu.shadow_root(), "RScript", { "rscript" }, "")) - menu.action(Menu_Root, "停止脚本", {}, "", function() - menu.trigger_commands("stopluarscript") - end) - - menu.divider(menu.my_root(), "RScript") - menu.action(menu.my_root(), "转到脚本", {}, "", function() - menu.trigger_commands("rscript") - end) -end - -menu.divider(Menu_Root, "RScript") - - - ----------------------------------------- ----------- Self Options ---------- ----------------------------------------- - -local Self_Options = menu.list(Menu_Root, "自我选项", {}, "") - -local tSelf = {} - ---#region Health & Armour - -local Self_HealthArmour = menu.list(Self_Options, "生命与护甲选项", {}, "") - -tSelf.HealthArmour = { - defaultHealth = 328, - defaultArmour = 50, -} - -menu.toggle_loop(Self_HealthArmour, "信息显示 生命和护甲", {}, "信息显示位置", function() - local current_health = ENTITY.GET_ENTITY_HEALTH(players.user_ped()) - local max_health = PED.GET_PED_MAX_HEALTH(players.user_ped()) - local current_armour = PED.GET_PED_ARMOUR(players.user_ped()) - local max_armour = PLAYER.GET_PLAYER_MAX_ARMOUR(players.user()) - - local text = string.format("生命: %d/%d\n护甲: %d/%d", current_health, max_health, current_armour, max_armour) - util.draw_debug_text(text) -end) -menu.toggle(Self_HealthArmour, "切换战局自动补满护甲", {}, "", function(toggle) - Transition_Handler.Self.refill_armour = toggle -end) - -menu.divider(Self_HealthArmour, "") -menu.slider(Self_HealthArmour, "设置当前生命值", { "set_health" }, "", - 0, 100000, tSelf.HealthArmour.defaultHealth, 50, function(value) - SET_ENTITY_HEALTH(players.user_ped(), value) - end) -menu.slider(Self_HealthArmour, "设置当前护甲值", { "set_armour" }, "", - 0, 100000, tSelf.HealthArmour.defaultArmour, 50, function(value) - PED.SET_PED_ARMOUR(players.user_ped(), value) - end) - ---#endregion Health & Armour - ---#region Health Recharge - -local Self_HealthRecharge = menu.list(Self_Options, "生命恢复选项", {}, "") - -tSelf.HealthRecharge = { - maxPercent = 1.0, - multiplier = 20.0, -} - -menu.slider_float(Self_HealthRecharge, "恢复程度", { "self_recharge_percent" }, "", - 1, 100, tSelf.HealthRecharge.maxPercent * 100, 10, function(value) - tSelf.HealthRecharge.maxPercent = value * 0.01 - end) -menu.slider_float(Self_HealthRecharge, "恢复速度", { "self_recharge_multi" }, "", - 1, 10000, tSelf.HealthRecharge.multiplier * 100, 100, function(value) - tSelf.HealthRecharge.multiplier = value * 0.01 - end) - -menu.toggle_loop(Self_HealthRecharge, "设置生命恢复", { "fast_recharge" }, "", function() - if PLAYER.GET_PLAYER_HEALTH_RECHARGE_MAX_PERCENT(players.user()) ~= tSelf.HealthRecharge.maxPercent then - PLAYER.SET_PLAYER_HEALTH_RECHARGE_MAX_PERCENT(players.user(), tSelf.HealthRecharge.maxPercent) - end - PLAYER.SET_PLAYER_HEALTH_RECHARGE_MULTIPLIER(players.user(), tSelf.HealthRecharge.multiplier) -end, function() - PLAYER.SET_PLAYER_HEALTH_RECHARGE_MAX_PERCENT(players.user(), 0.5) - PLAYER.SET_PLAYER_HEALTH_RECHARGE_MULTIPLIER(players.user(), 1.0) -end) - ---#endregion Health Recharge - ---#region Wanted - -local Self_Wanted = menu.list(Self_Options, "通缉选项", {}, "") - -menu.toggle_loop(Self_Wanted, "禁止为玩家调度警察", { "no_dispatch_cops" }, "不会一直刷出新的警察,最好在被通缉前开启", - function() - PLAYER.SET_DISPATCH_COPS_FOR_PLAYER(players.user(), false) - end, function() - PLAYER.SET_DISPATCH_COPS_FOR_PLAYER(players.user(), true) - end) -menu.action(Self_Wanted, "强制进入躲避区域", {}, "警星开始闪烁,警察使用锥形视野搜寻", function() - PLAYER.FORCE_START_HIDDEN_EVASION(players.user()) -end) -menu.action(Self_Wanted, "移除当前载具通缉状态", {}, "", function() - local vehicle = entities.get_user_vehicle_as_handle() - if vehicle ~= INVALID_GUID then - VEHICLE.SET_VEHICLE_IS_WANTED(vehicle, false) - VEHICLE.SET_VEHICLE_INFLUENCES_WANTED_LEVEL(vehicle, false) - VEHICLE.SET_VEHICLE_HAS_BEEN_OWNED_BY_PLAYER(vehicle, true) - VEHICLE.SET_VEHICLE_IS_STOLEN(vehicle, false) - VEHICLE.SET_POLICE_FOCUS_WILL_TRACK_VEHICLE(vehicle, false) - end -end) - -menu.toggle_loop(Self_Wanted, "Low Wanted Level Multiplier", {}, - "Set multiplier to 0.0, default is 1.0", function() - PLAYER.SET_WANTED_LEVEL_MULTIPLIER(0.0) - end, function() - PLAYER.SET_WANTED_LEVEL_MULTIPLIER(1.0) - end) -menu.toggle_loop(Self_Wanted, "Low Wanted Level Difficulty", {}, - "Set difficulty to 0.0", function() - PLAYER.SET_WANTED_LEVEL_DIFFICULTY(players.user(), 0.0) - end, function() - PLAYER.RESET_WANTED_LEVEL_DIFFICULTY(players.user()) - end) -menu.toggle_loop(Self_Wanted, "Suppress Crime", {}, - "Can be use to disable all instances of a crime type on this frame.", function() - for i = 1, 50 do - PLAYER.SUPPRESS_CRIME_THIS_FRAME(players.user(), i) - end - end) - ---#endregion Wanted - ---#region Fall - -local Self_Fall = menu.list(Self_Options, "跌落选项", {}, "") - -tSelf.Fall = { - height = 8.0 -} - -menu.toggle_loop(Self_Fall, "禁止高处跌落直接死亡", {}, "如果血量过低仍然会直接摔死", - function() - PED.SET_DISABLE_HIGH_FALL_DEATH(players.user_ped(), true) - end, function() - PED.SET_DISABLE_HIGH_FALL_DEATH(players.user_ped(), false) - end) - -menu.slider_float(Self_Fall, "触发跌落动作高度", { "self_fall_distance" }, "", - 0, 10000, tSelf.Fall.height * 100, 100, function(value) - tSelf.Fall.height = value * 0.01 - end) -menu.toggle_loop(Self_Fall, "设置触发跌落动作高度", {}, "", function() - PLAYER.SET_PLAYER_FALL_DISTANCE_TO_TRIGGER_RAGDOLL_OVERRIDE(players.user(), tSelf.Fall.height) -end) - ---#endregion Fall - ---#region Options - -menu.toggle_loop(Self_Options, "警察无视", {}, "", function() - PLAYER.SET_POLICE_IGNORE_PLAYER(players.user(), true) -end, function() - PLAYER.SET_POLICE_IGNORE_PLAYER(players.user(), false) -end) -menu.toggle_loop(Self_Options, "所有人无视", {}, "", function() - PLAYER.SET_EVERYONE_IGNORE_PLAYER(players.user(), true) -end, function() - PLAYER.SET_EVERYONE_IGNORE_PLAYER(players.user(), false) -end) -menu.toggle_loop(Self_Options, "行动无声", {}, "", function() - PLAYER.SET_PLAYER_NOISE_MULTIPLIER(players.user(), 0.0) - PLAYER.SET_PLAYER_SNEAKING_NOISE_MULTIPLIER(players.user(), 0.0) -end) -menu.toggle_loop(Self_Options, "不会被帮派骚乱", {}, "", function() - PLAYER.SET_PLAYER_CAN_BE_HASSLED_BY_GANGS(players.user(), false) -end, function() - PLAYER.SET_PLAYER_CAN_BE_HASSLED_BY_GANGS(players.user(), true) -end) -menu.toggle_loop(Self_Options, "载具内不可被射击", {}, "在载具内不会受伤", function() - PED.SET_PED_CAN_BE_SHOT_IN_VEHICLE(players.user_ped(), false) -end, function() - PED.SET_PED_CAN_BE_SHOT_IN_VEHICLE(players.user_ped(), true) -end) -menu.toggle_loop(Self_Options, "禁用NPC伤害", { "no_ai_damage" }, "", function() - PED.SET_AI_WEAPON_DAMAGE_MODIFIER(0.0) - PED.SET_AI_MELEE_WEAPON_DAMAGE_MODIFIER(0.0) -end, function() - PED.RESET_AI_WEAPON_DAMAGE_MODIFIER() - PED.RESET_AI_MELEE_WEAPON_DAMAGE_MODIFIER() -end) -menu.toggle_loop(Self_Options, "只能被玩家伤害", {}, "不会被NPC伤害", function() - ENTITY.SET_ENTITY_ONLY_DAMAGED_BY_PLAYER(players.user_ped(), true) -end, function() - ENTITY.SET_ENTITY_ONLY_DAMAGED_BY_PLAYER(players.user_ped(), false) -end) -menu.toggle_loop(Self_Options, "禁止被爆头一枪击杀", {}, "", function() - PED.SET_PED_SUFFERS_CRITICAL_HITS(players.user_ped(), false) -end, function() - PED.SET_PED_SUFFERS_CRITICAL_HITS(players.user_ped(), true) -end) -menu.toggle_loop(Self_Options, "可以射击队友", {}, "", function() - PED.SET_CAN_ATTACK_FRIENDLY(players.user_ped(), true, false) -end, function() - PED.SET_CAN_ATTACK_FRIENDLY(players.user_ped(), false, false) -end) - -Loop_Handler.Self.defense_modifier = { - callback = function(value) - PLAYER.SET_PLAYER_WEAPON_DEFENSE_MODIFIER(players.user(), value) - PLAYER.SET_PLAYER_WEAPON_MINIGUN_DEFENSE_MODIFIER(players.user(), value) - PLAYER.SET_PLAYER_MELEE_WEAPON_DEFENSE_MODIFIER(players.user(), value) - PLAYER.SET_PLAYER_VEHICLE_DEFENSE_MODIFIER(players.user(), value) - PLAYER.SET_PLAYER_WEAPON_TAKEDOWN_DEFENSE_MODIFIER(players.user(), value) - end -} -menu.slider_float(Self_Options, "受伤倍数修改", { "defense_multiplier" }, "数值越低,受到的伤害就越低", - 10, 100, 100, 10, function(value) - value = value * 0.01 - - Loop_Handler.Self.defense_modifier.value = value - Loop_Handler.Self.defense_modifier.callback(value) - end) - ---#endregion Options - - - - ------------------------------------------- ----------- Weapon Options ---------- ------------------------------------------- - -local Weapon_Options = menu.list(Menu_Root, "武器选项", {}, "") - -local tWeapon = {} - ---#region Weapon Attributes - -local Weapon_Attributes = menu.list(Weapon_Options, "武器属性修改", {}, "修改武器属性,应用修改后会一直生效") - -local WeaponAttribute = { - BaseInfo = { - ["anim_reload_time"] = { offset = 0x134, type = "float" }, - ["vehicle_reload_time"] = { offset = 0x130, type = "float" }, - ["time_between_shots"] = { offset = 0x13c, type = "float" }, - ["alternate_wait_time"] = { offset = 0x150, type = "float" }, - ["reload_time_mp"] = { offset = 0x128, type = "float" }, - ["reload_time_sp"] = { offset = 0x12c, type = "float" }, - ["lock_on_range"] = { offset = 0x288, type = "float" }, - ["weapon_range"] = { offset = 0x28c, type = "float" }, - }, - RocketInfo = { - ["lifetime"] = { offset = 0x44, type = "float" }, - ["launch_speed"] = { offset = 0x58, type = "float" }, - ["forward_drag_coeff"] = { offset = 0x170, type = "float" }, - ["side_drag_coeff"] = { offset = 0x174, type = "float" }, - ["time_before_homing"] = { offset = 0x178, type = "float" }, - ["pitch_change_rate"] = { offset = 0x188, type = "float" }, - ["yaw_change_rate"] = { offset = 0x18c, type = "float" }, - ["roll_change_rate"] = { offset = 0x190, type = "float" }, - ["max_roll_angle_sin"] = { offset = 0x194, type = "float" }, - }, - HomingParam = { - ["should_use_homing_params_from_info"] = { offset = 0x0, type = "byte" }, - ["time_before_starting_homing"] = { offset = 0x4, type = "float" }, - ["time_before_homing_angle_break"] = { offset = 0x8, type = "float" }, - ["turn_rate_modifier"] = { offset = 0xc, type = "float" }, - ["pitch_yaw_roll_clamp"] = { offset = 0x10, type = "float" }, - ["default_homing_rocket_break_lock_angle"] = { offset = 0x14, type = "float" }, - ["default_homing_rocket_break_lock_angle_close"] = { offset = 0x18, type = "float" }, - ["default_homing_rocket_break_lock_close_distance"] = { offset = 0x1c, type = "float" }, - }, - Persets = { - ItemList = { - { - menu_name = "载具导弹 无限快速连发", - help_text = "", - weapon_type = 2, - data_list = { - { "time_between_shots", 0.2, true }, - { "alternate_wait_time", 0.2, true }, - { "reload_time_mp", 0, true }, - { "reload_time_sp", 0, true }, - } - }, - { - menu_name = "载具机枪 快速射击", - help_text = "", - weapon_type = 2, - data_list = { - { "time_between_shots", 0, true }, - { "alternate_wait_time", 0, true }, - { "reload_time_mp", 0, true }, - { "reload_time_sp", 0, true }, - } - }, - { - menu_name = "手持武器 通用设置", - help_text = "换弹动作速度+0.2, 载具内换弹时间=0, 射击间隔时间-0.02", - weapon_type = 1, - data_list = { - { "anim_reload_time", 0.2, false }, - { "vehicle_reload_time", 0, true }, - { "time_between_shots", -0.02, false }, - - } - }, - { - menu_name = "制导导弹 增强锁定能力", - help_text = "", - weapon_type = 3, - data_list = { - { "lifetime", 10.0, true }, - { "side_drag_coeff", 10.0, true }, - { "pitch_change_rate", 100.0, true }, - { "yaw_change_rate", 100.0, true }, - { "roll_change_rate", 100.0, true }, - { "should_use_homing_params_from_info", 1, true }, - { "time_before_starting_homing", 0.15, true }, - { "turn_rate_modifier", 100.0, true }, - { "pitch_yaw_roll_clamp", 8.5, true }, - { "default_homing_rocket_break_lock_angle", 0.2, true }, - { "default_homing_rocket_break_lock_angle_close", 0.6, true }, - { "default_homing_rocket_break_lock_close_distance", 20.0, true }, - } - }, - } - }, - Backups = {}, - Menus = {}, - Index = 0, -} - -function WeaponAttribute.CWeaponInfo() - local ped_ptr = entities.handle_to_pointer(players.user_ped()) - local weapon_manager = entities.get_weapon_manager(ped_ptr) - local m_weapon_info = weapon_manager + 0x20 - local m_vehicle_weapon_info = weapon_manager + 0x70 - - local CWeaponInfo = memory.read_long(m_weapon_info) - if CWeaponInfo ~= 0 and WEAPON.IS_PED_ARMED(players.user_ped(), 4) then - return CWeaponInfo - end - - local CVehicleWeaponInfo = memory.read_long(m_vehicle_weapon_info) - if CVehicleWeaponInfo ~= 0 then - return CVehicleWeaponInfo - end - - return 0 -end - -function WeaponAttribute.CAmmoInfo(CWeaponInfo) - if CWeaponInfo == 0 then return 0 end - if not WeaponAttribute.IsRocket(CWeaponInfo) then - return 0 - end - - return memory.read_long(CWeaponInfo + 0x60) -- m_ammo_info -end - -function WeaponAttribute.CHomingRocketParams(CAmmoInfo) - if CAmmoInfo == 0 then return 0 end - - return CAmmoInfo + 0x19c -- m_homing_rocket_params -end - -function WeaponAttribute.IsRocket(CWeaponInfo) - local m_damage_type = CWeaponInfo + 0x20 - local m_fire_type = CWeaponInfo + 0x54 - return memory.read_int(m_damage_type) == 5 and memory.read_int(m_fire_type) == 4 -end - -function WeaponAttribute.GetWeaponName(weaponHash) - local weaponName = get_weapon_name_by_hash(weaponHash) - if weaponName == "" then - weaponName = util.reverse_joaat(weaponHash) - weaponName = string.gsub(weaponName, "VEHICLE_WEAPON_", "") - end - if weaponName == "" then - weaponName = tostring(weaponHash) - end - - return weaponName -end - -function WeaponAttribute.GetAttributes(CWeaponInfo, weaponName) - local text = "武器: " .. weaponName - local attr_value = 0 - - for name, item in pairs(WeaponAttribute.BaseInfo) do - attr_value = memory.read_float(CWeaponInfo + item.offset) - - text = text .. "\n" .. name .. ": " .. attr_value - end - - local CAmmoInfo = WeaponAttribute.CAmmoInfo(CWeaponInfo) - if CAmmoInfo ~= 0 then - for name, item in pairs(WeaponAttribute.RocketInfo) do - attr_value = memory.read_float(CAmmoInfo + item.offset) - - text = text .. "\n" .. name .. ": " .. attr_value - end - end - - local CHomingRocketParams = WeaponAttribute.CHomingRocketParams(CAmmoInfo) - if CHomingRocketParams ~= 0 then - for name, item in pairs(WeaponAttribute.HomingParam) do - if item.type == "float" then - attr_value = memory.read_float(CHomingRocketParams + item.offset) - elseif item.type == "byte" then - attr_value = memory.read_byte(CHomingRocketParams + item.offset) - end - text = text .. "\n" .. name .. ": " .. attr_value - end - end - - return text -end - -function WeaponAttribute.SetAttribute(addr, value, Type, isAddition) - if addr == 0 then return end - - local get_value = memory.read_float - local set_value = memory.write_float - if Type == "byte" then - get_value = memory.read_byte - set_value = memory.write_byte - end - - local default_value = get_value(addr) - if default_value < -1 then return end - if default_value > 65536 then return end - - if isAddition then - value = default_value + value - end - - set_value(addr, value) -end - -function WeaponAttribute.StoreBackup(CWeaponInfo, weaponHash) - if WeaponAttribute.Backups[weaponHash] then return end - - local t = {} - local attr_value = 0 - - for name, item in pairs(WeaponAttribute.BaseInfo) do - local addr = CWeaponInfo + item.offset - - attr_value = memory.read_float(addr) - - t[name] = { value = attr_value, type = item.type, addr = addr } - end - - local CAmmoInfo = WeaponAttribute.CAmmoInfo(CWeaponInfo) - if CAmmoInfo ~= 0 then - for name, item in pairs(WeaponAttribute.RocketInfo) do - local addr = CAmmoInfo + item.offset - - attr_value = memory.read_float(addr) - - t[name] = { value = attr_value, type = item.type, addr = addr } - end - end - - local CHomingRocketParams = WeaponAttribute.CHomingRocketParams(CAmmoInfo) - if CHomingRocketParams ~= 0 then - for name, item in pairs(WeaponAttribute.HomingParam) do - local addr = CHomingRocketParams + item.offset - if item.type == "float" then - attr_value = memory.read_float(addr) - elseif item.type == "byte" then - attr_value = memory.read_byte(addr) - end - t[name] = { value = attr_value, type = item.type, addr = addr } - end - end - - WeaponAttribute.Backups[weaponHash] = t - - WeaponAttribute.GenerateMenu(CWeaponInfo, weaponHash) -end - -function WeaponAttribute.ClearListData() - for _, value in pairs(WeaponAttribute.Menus) do - if value then - return false - end - end - WeaponAttribute.Menus = {} - WeaponAttribute.Index = 0 -end - -function WeaponAttribute.GenerateMenu(CWeaponInfo, weaponHash) - if WeaponAttribute.Menus[weaponHash] then return end - local weapon_name = WeaponAttribute.GetWeaponName(weaponHash) - local menu_parent = Weapon_Attributes - - -- menu.list 存进表内 - local menu_list = menu.list(menu_parent, weapon_name, {}, "") - WeaponAttribute.Menus[weaponHash] = menu_list - - - menu.textslider_stateful(menu_list, "读取武器属性", {}, "", { - "仅通知", "通知并保存到日志" - }, function(value) - local text = WeaponAttribute.GetAttributes(CWeaponInfo, weapon_name) - - util.toast(text) - if value == 2 then - util.log("\n" .. text) - end - end) - menu.action(menu_list, "恢复默认属性", {}, "", function() - for key, item in pairs(WeaponAttribute.Backups[weaponHash]) do - if item.type == "float" then - memory.write_float(item.addr, item.value) - elseif item.type == "byte" then - memory.write_byte(item.addr, item.value) - end - end - util.toast("已恢复默认属性") - end) - menu.action(menu_list, "删除此条记录", {}, "会保存默认属性", function() - menu.delete(menu_list) - WeaponAttribute.Menus[weaponHash] = nil - WeaponAttribute.ClearListData() - end) - - menu.divider(menu_list, "属性列表") - - for name, item in pairs(WeaponAttribute.BaseInfo) do - local addr = CWeaponInfo + item.offset - local default_value = memory.read_float(addr) - menu.text_input(menu_list, name, - { "weapon_attr" .. WeaponAttribute.Index .. name }, - "", function(value, click_type) - if click_type ~= CLICK_SCRIPTED then - value = tonumber(value) - if value then - memory.write_float(addr, value) - end - end - end, default_value) - end - - local CAmmoInfo = WeaponAttribute.CAmmoInfo(CWeaponInfo) - if CAmmoInfo ~= 0 then - menu.divider(menu_list, "RocketInfo") - - for name, item in pairs(WeaponAttribute.RocketInfo) do - local addr = CAmmoInfo + item.offset - local default_value = memory.read_float(addr) - menu.text_input(menu_list, name, - { "weapon_attr" .. WeaponAttribute.Index .. name }, - "", function(value, click_type) - if click_type ~= CLICK_SCRIPTED then - value = tonumber(value) - if value then - memory.write_float(addr, value) - end - end - end, default_value) - end - end - - local CHomingRocketParams = WeaponAttribute.CHomingRocketParams(CAmmoInfo) - if CHomingRocketParams ~= 0 then - menu.divider(menu_list, "HomingRocketParams") - - for name, item in pairs(WeaponAttribute.HomingParam) do - local addr = CHomingRocketParams + item.offset - local default_value = 0 - if item.type == "float" then - default_value = memory.read_float(addr) - elseif item.type == "byte" then - default_value = memory.read_byte(addr) - end - menu.text_input(menu_list, name, - { "weapon_attr" .. WeaponAttribute.Index .. name }, - "", function(value, click_type) - if click_type ~= CLICK_SCRIPTED then - value = tonumber(value) - if value then - if item.type == "float" then - memory.write_float(addr, value) - elseif item.type == "byte" then - memory.write_byte(addr, value) - end - end - end - end, default_value) - end - end - - - -- Index - WeaponAttribute.Index = WeaponAttribute.Index + 1 -end - -function WeaponAttribute.Persets.Apply(CWeaponInfo, dataList) - if CWeaponInfo == 0 then return false end - local CAmmoInfo = WeaponAttribute.CAmmoInfo(CWeaponInfo) - local CHomingRocketParams = WeaponAttribute.CHomingRocketParams(CAmmoInfo) - - for _, item in pairs(dataList) do - local name = item[1] - local value = item[2] - local is_override = item[3] - - local info = WeaponAttribute.BaseInfo[name] - if info then - WeaponAttribute.SetAttribute(CWeaponInfo + info.offset, value, info.type, not is_override) - goto continue - end - - if CAmmoInfo == 0 then - goto continue - end - info = WeaponAttribute.RocketInfo[name] - if info then - WeaponAttribute.SetAttribute(CAmmoInfo + info.offset, value, info.type, not is_override) - goto continue - end - - if CHomingRocketParams == 0 then - goto continue - end - info = WeaponAttribute.HomingParam[name] - if info then - WeaponAttribute.SetAttribute(CHomingRocketParams + info.offset, value, info.type, not is_override) - goto continue - end - - ::continue:: - end -end - -menu.textslider_stateful(Weapon_Attributes, "读取当前武器属性", {}, "", { - "仅通知", "通知并保存到日志" -}, function(value) - local CWeaponInfo = WeaponAttribute.CWeaponInfo() - if CWeaponInfo ~= 0 then - local weaponHash = get_ped_current_weapon(players.user_ped()) - local weaponName = WeaponAttribute.GetWeaponName(weaponHash) - local text = WeaponAttribute.GetAttributes(CWeaponInfo, weaponName) - - util.toast(text) - if value == 2 then - util.log("\n" .. text) - end - else - util.toast("不支持近战武器") - end -end) - -menu.action(Weapon_Attributes, "编辑当前武器属性", {}, "", function() - local CWeaponInfo = WeaponAttribute.CWeaponInfo() - if CWeaponInfo ~= 0 then - local weapon_hash = get_ped_current_weapon(players.user_ped()) - WeaponAttribute.StoreBackup(CWeaponInfo, weapon_hash) - else - util.toast("不支持近战武器") - end -end) - -menu.divider(Weapon_Attributes, "预设属性") -for _, item in pairs(WeaponAttribute.Persets.ItemList) do - menu.action(Weapon_Attributes, item.menu_name, {}, item.help_text, function() - local CWeaponInfo = WeaponAttribute.CWeaponInfo() - if CWeaponInfo ~= 0 then - local weapon_hash, weapon_type = get_ped_current_weapon(players.user_ped()) - if item.weapon_type == 3 or weapon_type == item.weapon_type then - WeaponAttribute.StoreBackup(CWeaponInfo, weapon_hash) - if WeaponAttribute.Persets.Apply(CWeaponInfo, item.data_list) then - local weapon_name = WeaponAttribute.GetWeaponName(weapon_hash) - util.toast("武器: " .. weapon_name .. "\n预设属性修改完成") - end - end - end - end) -end - - -menu.divider(Weapon_Attributes, "保存的武器列表") - ---#endregion Weapon Attributes - ---#region Weapon Cam Gun - -local Weapon_CamGun = menu.list(Weapon_Options, "视野工具枪", {}, "玩家镜头中心的位置") - -local CamGun = { - select = 1, -} - -menu.toggle_loop(Weapon_CamGun, "开启[按住E键]", { "cam_gun" }, "", function() - Loop_Handler.draw_centred_point(true) - if PAD.IS_CONTROL_PRESSED(0, 51) then - if CamGun.select == 1 then - CamGun.Shoot() - elseif CamGun.select == 2 then - CamGun.Explosion() - elseif CamGun.select == 3 then - CamGun.Fire() - end - end -end, function() - Loop_Handler.draw_centred_point(false) -end) - -menu.list_select(Weapon_CamGun, "选择操作", { "cam_gun_select" }, "", { - { 1, "射击", { "shoot" }, "" }, - { 2, "爆炸", { "explosion" }, "" }, - { 3, "燃烧", { "fire" }, "" }, -}, 1, function(value) - CamGun.select = value -end) - -menu.divider(Weapon_CamGun, "设置") - ---#region Cam Gun Shoot - ----------------- --- Shoot ----------------- - -local CamGun_ShootSetting = menu.list(Weapon_CamGun, "射击", {}, "") - -CamGun.ShootSetting = { - shootMethod = 1, - delay = 100, - weaponSelect = 1, - weaponHash = "PLAYER_CURRENT_WEAPON", - vehicleWeaponHash = "VEHICLE_CURRENT_WEAPON", - isOwned = false, - damage = 1000, - speed = 2000, - perfectAccuracy = true, - createTraceVfx = true, - allowRumble = true, - startFromPlayer = false, - offset = v3(0, 0, 2.0), -} - -function CamGun.ShootPos(pos, action) - local user_ped = players.user_ped() - - local start_pos = v3.new() - if CamGun.ShootSetting.startFromPlayer then - local player_pos = ENTITY.GET_ENTITY_COORDS(user_ped) - start_pos = v3.add(player_pos, CamGun.ShootSetting.offset) - else - start_pos = v3.add(pos, CamGun.ShootSetting.offset) - end - - if action == "drawline" then - DRAW_LINE(start_pos, pos) - else - local weaponHash = CamGun.ShootSetting.weaponHash - if CamGun.ShootSetting.weaponSelect == 2 then - weaponHash = CamGun.ShootSetting.vehicleWeaponHash - end - - if weaponHash == "PLAYER_CURRENT_WEAPON" then - weaponHash = WEAPON.GET_SELECTED_PED_WEAPON(user_ped) - elseif weaponHash == "VEHICLE_CURRENT_WEAPON" then - local pWeapon = memory.alloc_int() - WEAPON.GET_CURRENT_PED_VEHICLE_WEAPON(user_ped, pWeapon) - weaponHash = memory.read_int(pWeapon) - end - if not WEAPON.HAS_WEAPON_ASSET_LOADED(weaponHash) then - request_weapon_asset(weaponHash) - end - - local owner = 0 - if CamGun.ShootSetting.isOwned then - owner = user_ped - end - - local ignoreEntity = entities.get_user_vehicle_as_handle(false) - if ignoreEntity == INVALID_GUID then - ignoreEntity = user_ped - end - - MISC.SHOOT_SINGLE_BULLET_BETWEEN_COORDS_IGNORE_ENTITY( - start_pos.x, start_pos.y, start_pos.z, - pos.x, pos.y, pos.z, - CamGun.ShootSetting.damage, - CamGun.ShootSetting.perfectAccuracy, - weaponHash, - owner, - CamGun.ShootSetting.createTraceVfx, - CamGun.ShootSetting.allowRumble, - CamGun.ShootSetting.speed, - ignoreEntity, - 0) - end -end - -function CamGun.Shoot() - local cam_pos - if CamGun.ShootSetting.shootMethod == 1 then - local result = get_raycast_result(1500, -1) - if result.didHit then - cam_pos = result.endCoords - end - elseif CamGun.ShootSetting.shootMethod == 2 then - cam_pos = get_offset_from_cam(1500) - end - - if cam_pos ~= nil then - CamGun.ShootPos(cam_pos) - util.yield(CamGun.ShootSetting.delay) - end -end - -menu.toggle_loop(CamGun_ShootSetting, "绘制射击连线", {}, "", function() - Loop_Handler.draw_centred_point(true) - - local cam_pos - if CamGun.ShootSetting.shootMethod == 1 then - local result = get_raycast_result(1500, -1) - if result.didHit then - cam_pos = result.endCoords - end - elseif CamGun.ShootSetting.shootMethod == 2 then - cam_pos = get_offset_from_cam(1500) - end - - if cam_pos ~= nil then - CamGun.ShootPos(cam_pos, "drawline") - end -end, function() - Loop_Handler.draw_centred_point(false) -end) - -menu.list_select(CamGun_ShootSetting, "射击方式", {}, "", { - { 1, "方式1", {}, "射击的坐标更加准确,只能向实体或地面射击" }, - { 2, "方式2", {}, "射击的坐标不是很准确,但可以向空中射击" } -}, 1, function(value) - CamGun.ShootSetting.shootMethod = value -end) -menu.slider(CamGun_ShootSetting, "循环延迟", { "cam_gun_shoot_delay" }, "单位: ms", 0, 5000, 100, 10, - function(value) - CamGun.ShootSetting.delay = value - end) - -local CamGun_ShootSetting_Weapon = menu.list(CamGun_ShootSetting, "武器", {}, "") - -menu.list_select(CamGun_ShootSetting_Weapon, "武器类型", {}, "", - { { 1, "手持武器" }, { 2, "载具武器" } }, 1, function(value) - CamGun.ShootSetting.weaponSelect = value - end) -local CamGun_ShootSetting_PlayerWeapon = rs_menu.all_weapons_without_melee(CamGun_ShootSetting_Weapon, "手持武器", - {}, "", function(hash) - CamGun.ShootSetting.weaponHash = hash - end, true) -rs_menu.current_weapon_action(CamGun_ShootSetting_PlayerWeapon, "玩家当前使用的武器", function() - CamGun.ShootSetting.weaponHash = "PLAYER_CURRENT_WEAPON" -end, true) - -local CamGun_ShootSetting_VehicleWeapon = rs_menu.vehicle_weapons(CamGun_ShootSetting_Weapon, "载具武器", {}, "", - function(hash) - CamGun.ShootSetting.vehicleWeaponHash = hash - end, true) -rs_menu.current_weapon_action(CamGun_ShootSetting_VehicleWeapon, "载具当前使用的武器", function() - CamGun.ShootSetting.vehicleWeaponHash = "VEHICLE_CURRENT_WEAPON" -end, true) - - -menu.toggle(CamGun_ShootSetting, "署名射击", {}, "以玩家名义", function(toggle) - CamGun.ShootSetting.isOwned = toggle -end) -menu.slider(CamGun_ShootSetting, "伤害", { "cam_gun_shoot_damage" }, "", 0, 10000, 1000, 100, - function(value) - CamGun.ShootSetting.damage = value - end) -menu.slider(CamGun_ShootSetting, "速度", { "cam_gun_shoot_speed" }, "", 0, 10000, 2000, 100, - function(value) - CamGun.ShootSetting.speed = value - end) - -menu.divider(CamGun_ShootSetting, "起始射击位置偏移") -menu.toggle(CamGun_ShootSetting, "从玩家位置起始射击", {}, - "如果关闭,则起始位置为目标位置+偏移\n如果开启,建议偏移Z>1.0", function(toggle) - CamGun.ShootSetting.startFromPlayer = toggle - end) -menu.slider_float(CamGun_ShootSetting, "X", { "cam_gun_shoot_x" }, "", -10000, 10000, 0, 10, - function(value) - CamGun.ShootSetting.offset.x = value * 0.01 - end) -menu.slider_float(CamGun_ShootSetting, "Y", { "cam_gun_shoot_y" }, "", -10000, 10000, 0, 10, - function(value) - CamGun.ShootSetting.offset.y = value * 0.01 - end) -menu.slider_float(CamGun_ShootSetting, "Z", { "cam_gun_shoot_z" }, "", -10000, 10000, 200, 10, - function(value) - CamGun.ShootSetting.offset.z = value * 0.01 - end) - ---#endregion Cam Gun Shoot - ---#region Cam Gun Explosion - ----------------- --- Explosion ----------------- - -local CamGun_ExplosionSetting = menu.list(Weapon_CamGun, "爆炸", {}, "") - -CamGun.ExplosionSetting = { - delay = 100, - explosionType = 2, - isOwned = false, - damage = 1000, - isAudible = true, - isInvisible = false, - cameraShake = 0, -} - -function CamGun.Explosion() - local result = get_raycast_result(1500, -1) - local cam_pos = result.endCoords - if result.didHit and cam_pos ~= nil then - if CamGun.ExplosionSetting.isOwned then - FIRE.ADD_OWNED_EXPLOSION(players.user_ped(), - cam_pos.x, cam_pos.y, cam_pos.z, - CamGun.ExplosionSetting.explosionType, - CamGun.ExplosionSetting.damage, - CamGun.ExplosionSetting.isAudible, - CamGun.ExplosionSetting.isInvisible, - CamGun.ExplosionSetting.cameraShake) - else - FIRE.ADD_EXPLOSION( - cam_pos.x, cam_pos.y, cam_pos.z, - CamGun.ExplosionSetting.explosionType, - CamGun.ExplosionSetting.damage, - CamGun.ExplosionSetting.isAudible, - CamGun.ExplosionSetting.isInvisible, - CamGun.ExplosionSetting.cameraShake, - false) - end - util.yield(CamGun.ExplosionSetting.delay) - end -end - -menu.slider(CamGun_ExplosionSetting, "循环延迟", { "cam_gun_explosion_delay" }, "单位: ms", 0, 5000, 100, 10, - function(value) - CamGun.ExplosionSetting.delay = value - end) -menu.list_select(CamGun_ExplosionSetting, "爆炸类型", {}, "", Misc_T.ExplosionType, 4, function(value) - CamGun.ExplosionSetting.explosionType = value -end) -menu.toggle(CamGun_ExplosionSetting, "署名爆炸", {}, "以玩家名义", function(toggle) - CamGun.ExplosionSetting.isOwned = toggle -end) -menu.slider(CamGun_ExplosionSetting, "伤害", { "cam_gun_explosion_damage" }, "", 0, 10000, 1000, 100, - function(value) - CamGun.ExplosionSetting.damage = value - end) -menu.toggle(CamGun_ExplosionSetting, "可听见", {}, "", function(toggle) - CamGun.ExplosionSetting.isAudible = toggle -end, true) -menu.toggle(CamGun_ExplosionSetting, "不可见", {}, "", function(toggle) - CamGun.ExplosionSetting.isInvisible = toggle -end) - ---#endregion Cam Gun Explosion - ---#region Cam Gun Fire - ----------------- --- Fire ----------------- - -local CamGun_FireSetting = menu.list(Weapon_CamGun, "燃烧", {}, "有火焰数量生成限制") - -CamGun.FireSetting = { - fireIds = {}, - maxChildren = 25, - isGasFire = false, -} - -function CamGun.Fire() - local result = get_raycast_result(1500, -1) - local cam_pos = result.endCoords - if result.didHit and cam_pos ~= nil then - local fire_id = FIRE.START_SCRIPT_FIRE( - cam_pos.x, cam_pos.y, cam_pos.z, - CamGun.FireSetting.maxChildren, - CamGun.FireSetting.isGasFire) - table.insert(CamGun.FireSetting.fireIds, fire_id) - end -end - -menu.slider(CamGun_FireSetting, "max Children", { "cam_gun_fire_maxChildren" }, - "The max amount of times a fire can spread to other objects.", 0, 25, 25, 1, function(value) - CamGun.FireSetting.maxChildren = value - end) -menu.toggle(CamGun_FireSetting, "is Gas Fire", {}, "Whether or not the fire is powered by gasoline.", function(toggle) - CamGun.FireSetting.isGasFire = toggle -end) -menu.action(CamGun_FireSetting, "移除生成的火焰", {}, "", function() - if next(CamGun.FireSetting.fireIds) ~= nil then - for k, v in pairs(CamGun.FireSetting.fireIds) do - FIRE.REMOVE_SCRIPT_FIRE(v) - end - CamGun.FireSetting.fireIds = {} - end -end) - ---#endregion Cam Gun Fire - ---#endregion Weapon Cam Gun - ---#region Options - -tWeapon.SpecialAmmo = { - specialTypeList = { - { 0, "无", { "none" }, "No Special Ammo" }, - { 1, "穿甲子弹", { "ap" }, "Armor Piercing Ammo" }, - { 2, "爆炸子弹", { "explosive" }, "Explosive Ammo" }, - { 3, "全金属外壳子弹", { "fmj" }, "Full Metal Jacket Ammo" }, - { 4, "中空子弹", { "hp" }, "Hollow Point Ammo" }, - { 5, "燃烧子弹", { "fire" }, "Incendiary Ammo" }, - { 6, "曳光子弹", { "tracer" }, "Tracer Ammo" } - } -} -menu.list_action(Weapon_Options, "武器特殊弹药类型", { "special_ammo" }, "对已经配备特殊弹药的武器无效", - tWeapon.SpecialAmmo.specialTypeList, function(value) - if not WEAPON.IS_PED_ARMED(players.user_ped(), 4) then - return - end - - local weapon_manager = entities.get_weapon_manager(entities.handle_to_pointer(players.user_ped())) - local m_weapon_info = weapon_manager + 0x20 - - local CWeaponInfo = memory.read_long(m_weapon_info) - if CWeaponInfo ~= 0 then - local CAmmoInfo = memory.read_long(CWeaponInfo + 0x60) - if CAmmoInfo ~= 0 then - local m_ammo_special_type = CAmmoInfo + 0x3c - memory.write_int(m_ammo_special_type, value) - - local weaponHash = get_ped_weapon(players.user_ped()) - local weaponName = get_weapon_name_by_hash(weaponHash) - util.toast("武器: " .. weaponName .. "\n弹药类型已修改") - end - end - end) - -menu.toggle_loop(Weapon_Options, "无限弹夹", { "inf_clip" }, "锁定弹夹,无需换弹", function() - WEAPON.SET_PED_INFINITE_AMMO_CLIP(players.user_ped(), true) -end, function() - WEAPON.SET_PED_INFINITE_AMMO_CLIP(players.user_ped(), false) -end) -menu.toggle_loop(Weapon_Options, "锁定最大弹药", { "lock_ammo" }, "射击时锁定当前武器为最大弹药", - function() - if PED.IS_PED_SHOOTING(players.user_ped()) then - local weaponHash = WEAPON.GET_SELECTED_PED_WEAPON(players.user_ped()) - if weaponHash ~= 0 then - -- WEAPON.SET_PED_AMMO(players.user_ped(), weaponHash, 9999) - WEAPON.ADD_AMMO_TO_PED(players.user_ped(), weaponHash, 9999) - end - end - end) -menu.toggle_loop(Weapon_Options, "无限载具武器弹药", { "inf_veh_ammo" }, "", function() - local vehicle = entities.get_user_vehicle_as_handle() - if vehicle ~= INVALID_GUID then - if VEHICLE.DOES_VEHICLE_HAVE_WEAPONS(vehicle) then - for i = 0, 3 do - local ammo = VEHICLE.GET_VEHICLE_WEAPON_RESTRICTED_AMMO(vehicle, i) - if ammo ~= -1 then - VEHICLE.SET_VEHICLE_WEAPON_RESTRICTED_AMMO(vehicle, i, -1) - end - end - end - end -end) -menu.toggle_loop(Weapon_Options, "翻滚时自动换弹夹", {}, "做翻滚动作时自动更换弹夹", function() - if TASK.GET_IS_TASK_ACTIVE(players.user_ped(), 4) and PAD.IS_CONTROL_PRESSED(2, 22) and - not PED.IS_PED_SHOOTING(players.user_ped()) then - --checking if player is rolling - util.yield(900) - WEAPON.REFILL_AMMO_INSTANTLY(players.user_ped()) - end -end) -menu.action(Weapon_Options, "移除黏弹和感应地雷", { "remove_projectiles" }, "用来清理扔错地方但又不能炸掉的投掷武器", - function() - local weaponHash = util.joaat("WEAPON_PROXMINE") - WEAPON.REMOVE_ALL_PROJECTILES_OF_TYPE(weaponHash, false) - weaponHash = util.joaat("WEAPON_STICKYBOMB") - WEAPON.REMOVE_ALL_PROJECTILES_OF_TYPE(weaponHash, false) - end) - -tWeapon.ReloadInVehicle = { - modified_addr = 0, - modified_default = 0, -} -menu.toggle_loop(Weapon_Options, "无载具内换弹时间", {}, "", function() - if WEAPON.IS_PED_ARMED(players.user_ped(), 4) then - local weapon_manager = entities.get_weapon_manager(entities.handle_to_pointer(players.user_ped())) - local weapon_info = memory.read_long(weapon_manager + 0x20) - if weapon_info ~= 0 then - local addr = weapon_info + 0x130 - - -- 更换了武器 - if addr ~= tWeapon.ReloadInVehicle.modified_addr then - -- 恢复上一个武器的属性 - if tWeapon.ReloadInVehicle.modified_addr ~= 0 then - memory.write_float(tWeapon.ReloadInVehicle.modified_addr, tWeapon.ReloadInVehicle.modified_default) - end - - -- 备份当前武器的属性 - tWeapon.ReloadInVehicle.modified_addr = addr - tWeapon.ReloadInVehicle.modified_default = memory.read_float(addr) - end - - -- 修改武器属性 - memory.write_float(addr, 0) - end - end -end, function() - -- 恢复上一个武器的属性 - if tWeapon.ReloadInVehicle.modified_addr ~= 0 then - memory.write_float(tWeapon.ReloadInVehicle.modified_addr, tWeapon.ReloadInVehicle.modified_default) - end -end) - ---#endregion Options - - - - -------------------------------------------- ----------- Vehicle Options ---------- -------------------------------------------- - -local Vehicle_Options = menu.list(Menu_Root, "载具选项", {}, "") - -local tVehicle = {} - ---#region Vehicle Upgrade - -local Vehicle_Upgrade = menu.list(Vehicle_Options, "载具升级强化", {}, "") - -tVehicle.Upgrade = { - performance = true, - turbo = true, - --- - bulletproof_tyre = true, - unbreakable_door = true, - unbreakable_light = true, - unbreak = true, - --- - max_health_multiplier = 1, - health_multiplier = 1, - damage_scale = 0.5, - no_driver_explosion_damage = true, - other_strong = true, -} - -function tVehicle.Upgrade.upgrade(vehicle) - -- 引擎、刹车、变速箱、防御 - if tVehicle.Upgrade.performance then - for _, mod_type in pairs({ 11, 12, 13, 16 }) do - local mod_num = VEHICLE.GET_NUM_VEHICLE_MODS(vehicle, mod_type) - VEHICLE.SET_VEHICLE_MOD(vehicle, mod_type, mod_num - 1, false) - end - end - - -- 涡轮增压 - if tVehicle.Upgrade.turbo then - VEHICLE.TOGGLE_VEHICLE_MOD(vehicle, 18, true) - end - - -- 防弹轮胎 - if tVehicle.Upgrade.bulletproof_tyre then - if VEHICLE.GET_VEHICLE_TYRES_CAN_BURST(vehicle) then - VEHICLE.SET_VEHICLE_TYRES_CAN_BURST(vehicle, false) - end - end - - -- 车门不可损坏 - if tVehicle.Upgrade.unbreakable_door then - for i = 0, 5 do - if VEHICLE.GET_IS_DOOR_VALID(vehicle, i) then - VEHICLE.SET_DOOR_ALLOWED_TO_BE_BROKEN_OFF(vehicle, i, false) - end - end - end - - -- 车灯不可损坏 - if tVehicle.Upgrade.unbreakable_light then - VEHICLE.SET_VEHICLE_HAS_UNBREAKABLE_LIGHTS(vehicle, true) - end - - -- 部件不可分离 - if tVehicle.Upgrade.unbreakable_light then - VEHICLE.SET_VEHICLE_CAN_BREAK(vehicle, false) - end - - -- 实体最大血量倍数 - if tVehicle.Upgrade.max_health_multiplier > 1 then - local max_health = ENTITY.GET_ENTITY_MAX_HEALTH(vehicle) * tVehicle.Upgrade.max_health_multiplier - ENTITY.SET_ENTITY_MAX_HEALTH(vehicle, max_health) - SET_ENTITY_HEALTH(vehicle, max_health) - end - - -- 载具血量倍数 - if tVehicle.Upgrade.health_multiplier > 1 then - local multiple_health = 1000 * tVehicle.Upgrade.health_multiplier - VEHICLE.SET_VEHICLE_ENGINE_HEALTH(vehicle, multiple_health) - VEHICLE.SET_VEHICLE_BODY_HEALTH(vehicle, multiple_health) - VEHICLE.SET_VEHICLE_PETROL_TANK_HEALTH(vehicle, multiple_health) - VEHICLE.SET_HELI_MAIN_ROTOR_HEALTH(vehicle, multiple_health) - VEHICLE.SET_HELI_TAIL_ROTOR_HEALTH(vehicle, multiple_health) - end - - -- 受到伤害倍数 - VEHICLE.SET_VEHICLE_DAMAGE_SCALE(vehicle, tVehicle.Upgrade.damage_scale) - VEHICLE.SET_VEHICLE_WEAPON_DAMAGE_SCALE(vehicle, tVehicle.Upgrade.damage_scale) - - -- 无视载具司机的爆炸 - if tVehicle.Upgrade.no_driver_explosion_damage then - VEHICLE.SET_VEHICLE_NO_EXPLOSION_DAMAGE_FROM_DRIVER(vehicle, true) - end - - -- 其它属性增强 - if tVehicle.Upgrade.other_strong then - VEHICLE.SET_VEHICLE_WHEELS_CAN_BREAK(vehicle, false) - - VEHICLE.SET_VEHICLE_CAN_ENGINE_MISSFIRE(vehicle, false) - VEHICLE.SET_VEHICLE_CAN_LEAK_OIL(vehicle, false) - VEHICLE.SET_VEHICLE_CAN_LEAK_PETROL(vehicle, false) - - VEHICLE.SET_DISABLE_VEHICLE_ENGINE_FIRES(vehicle, true) - VEHICLE.SET_DISABLE_VEHICLE_PETROL_TANK_FIRES(vehicle, true) - VEHICLE.SET_DISABLE_VEHICLE_PETROL_TANK_DAMAGE(vehicle, true) - - VEHICLE.SET_VEHICLE_STRONG(vehicle, true) - VEHICLE.SET_VEHICLE_HAS_STRONG_AXLES(vehicle, true) - - --Damage - VEHICLE.VEHICLE_SET_RAMP_AND_RAMMING_CARS_TAKE_DAMAGE(vehicle, false) - VEHICLE.SET_INCREASE_WHEEL_CRUSH_DAMAGE(vehicle, false) - VEHICLE.SET_DISABLE_DAMAGE_WITH_PICKED_UP_ENTITY(vehicle, 1) - VEHICLE.SET_VEHICLE_USES_MP_PLAYER_DAMAGE_MULTIPLIER(vehicle, 1) - VEHICLE.SET_FORCE_VEHICLE_ENGINE_DAMAGE_BY_BULLET(vehicle, false) - - --Explode - VEHICLE.SET_DISABLE_EXPLODE_FROM_BODY_DAMAGE_ON_COLLISION(vehicle, 1) - VEHICLE.SET_VEHICLE_EXPLODES_ON_HIGH_EXPLOSION_DAMAGE(vehicle, false) - VEHICLE.SET_VEHICLE_EXPLODES_ON_EXPLOSION_DAMAGE_AT_ZERO_BODY_HEALTH(vehicle, false) - - --Heli - VEHICLE.SET_HELI_TAIL_BOOM_CAN_BREAK_OFF(vehicle, false) - VEHICLE.SET_DISABLE_HELI_EXPLODE_FROM_BODY_DAMAGE(vehicle, 1) - - --MP Only - VEHICLE.SET_PLANE_RESIST_TO_EXPLOSION(vehicle, true) - VEHICLE.SET_HELI_RESIST_TO_EXPLOSION(vehicle, true) - - --Remove Check - VEHICLE.REMOVE_VEHICLE_UPSIDEDOWN_CHECK(vehicle) - VEHICLE.REMOVE_VEHICLE_STUCK_CHECK(vehicle) - end -end - -function tVehicle.Upgrade.remove(vehicle) - for i = 0, 5 do - if VEHICLE.GET_IS_DOOR_VALID(vehicle, i) then - VEHICLE.SET_DOOR_ALLOWED_TO_BE_BROKEN_OFF(vehicle, i, true) - end - end - VEHICLE.SET_VEHICLE_HAS_UNBREAKABLE_LIGHTS(vehicle, false) - VEHICLE.SET_VEHICLE_CAN_BREAK(vehicle, true) - - ENTITY.SET_ENTITY_MAX_HEALTH(vehicle, 1000) - SET_ENTITY_HEALTH(vehicle, 1000) - - VEHICLE.SET_VEHICLE_ENGINE_HEALTH(vehicle, 1000) - VEHICLE.SET_VEHICLE_BODY_HEALTH(vehicle, 1000) - VEHICLE.SET_VEHICLE_PETROL_TANK_HEALTH(vehicle, 1000) - VEHICLE.SET_HELI_MAIN_ROTOR_HEALTH(vehicle, 1000) - VEHICLE.SET_HELI_TAIL_ROTOR_HEALTH(vehicle, 1000) - - VEHICLE.SET_VEHICLE_DAMAGE_SCALE(vehicle, 1.0) - VEHICLE.SET_VEHICLE_WEAPON_DAMAGE_SCALE(vehicle, 1.0) - - VEHICLE.SET_VEHICLE_NO_EXPLOSION_DAMAGE_FROM_DRIVER(vehicle, false) - - VEHICLE.SET_VEHICLE_WHEELS_CAN_BREAK(vehicle, true) - - VEHICLE.SET_VEHICLE_CAN_ENGINE_MISSFIRE(vehicle, true) - VEHICLE.SET_VEHICLE_CAN_LEAK_OIL(vehicle, true) - VEHICLE.SET_VEHICLE_CAN_LEAK_PETROL(vehicle, true) - - VEHICLE.SET_DISABLE_VEHICLE_ENGINE_FIRES(vehicle, false) - VEHICLE.SET_DISABLE_VEHICLE_PETROL_TANK_FIRES(vehicle, false) - VEHICLE.SET_DISABLE_VEHICLE_PETROL_TANK_DAMAGE(vehicle, false) - - VEHICLE.SET_VEHICLE_STRONG(vehicle, false) - VEHICLE.SET_VEHICLE_HAS_STRONG_AXLES(vehicle, false) - - VEHICLE.VEHICLE_SET_RAMP_AND_RAMMING_CARS_TAKE_DAMAGE(vehicle, true) - VEHICLE.SET_INCREASE_WHEEL_CRUSH_DAMAGE(vehicle, true) - VEHICLE.SET_DISABLE_DAMAGE_WITH_PICKED_UP_ENTITY(vehicle, 0) - VEHICLE.SET_VEHICLE_USES_MP_PLAYER_DAMAGE_MULTIPLIER(vehicle, 0) - VEHICLE.SET_FORCE_VEHICLE_ENGINE_DAMAGE_BY_BULLET(vehicle, true) - - VEHICLE.SET_DISABLE_EXPLODE_FROM_BODY_DAMAGE_ON_COLLISION(vehicle, 0) - VEHICLE.SET_VEHICLE_EXPLODES_ON_HIGH_EXPLOSION_DAMAGE(vehicle, true) - VEHICLE.SET_VEHICLE_EXPLODES_ON_EXPLOSION_DAMAGE_AT_ZERO_BODY_HEALTH(vehicle, true) - - VEHICLE.SET_HELI_TAIL_BOOM_CAN_BREAK_OFF(vehicle, true) - VEHICLE.SET_DISABLE_HELI_EXPLODE_FROM_BODY_DAMAGE(vehicle, 0) - - VEHICLE.SET_PLANE_RESIST_TO_EXPLOSION(vehicle, false) - VEHICLE.SET_HELI_RESIST_TO_EXPLOSION(vehicle, false) -end - -menu.action(Vehicle_Upgrade, "升级强化载具", { "strong_veh" }, "升级强化当前或上一辆载具", - function() - local vehicle = entities.get_user_vehicle_as_handle() - if ENTITY.IS_ENTITY_A_VEHICLE(vehicle) then - tVehicle.Upgrade.upgrade(vehicle) - util.toast("载具升级强化完成!") - else - util.toast("请先进入载具:)") - end - end) -menu.toggle_loop(Vehicle_Upgrade, "自动升级强化载具", { "auto_strong_veh" }, - "自动升级强化正在进入驾驶位的载具", function() - local user_ped = players.user_ped() - if PED.IS_PED_GETTING_INTO_A_VEHICLE(user_ped) then - local veh = PED.GET_VEHICLE_PED_IS_TRYING_TO_ENTER(user_ped) - if ENTITY.IS_ENTITY_A_VEHICLE(veh) and PED.GET_SEAT_PED_IS_TRYING_TO_ENTER(user_ped) == -1 then - request_control(veh) - tVehicle.Upgrade.upgrade(veh) - - -- 通知 - local veh_name = get_vehicle_display_name(veh) - local text = "进入载具: " .. veh_name - if has_control_entity(veh) then - THEFEED_POST.TEXT(text .. "\n升级强化完成!") - else - THEFEED_POST.TEXT(text .. "\n升级强化未完成: 未能成功控制载具") - end - - util.yield(50) - end - end - end) - -menu.action(Vehicle_Upgrade, "弱化载具属性", {}, "弱化当前或上一辆载具的属性", function() - local vehicle = entities.get_user_vehicle_as_handle() - if ENTITY.IS_ENTITY_A_VEHICLE(vehicle) then - tVehicle.Upgrade.remove(vehicle) - util.toast("载具弱化完成!") - else - util.toast("请先进入载具:)") - end -end) - -menu.divider(Vehicle_Upgrade, "载具性能") -menu.toggle(Vehicle_Upgrade, "主要性能", {}, "引擎、刹车、变速箱、防御", function(toggle) - tVehicle.Upgrade.performance = toggle -end, true) -menu.toggle(Vehicle_Upgrade, "涡轮增压", {}, "", function(toggle) - tVehicle.Upgrade.turbo = toggle -end, true) - -menu.divider(Vehicle_Upgrade, "载具部件") -menu.toggle(Vehicle_Upgrade, "防弹轮胎", {}, "", function(toggle) - tVehicle.Upgrade.bulletproof_tyre = toggle -end, true) -menu.toggle(Vehicle_Upgrade, "车门不可损坏", {}, "全部车门", function(toggle) - tVehicle.Upgrade.unbreakable_door = toggle -end, true) -menu.toggle(Vehicle_Upgrade, "车灯不可损坏", {}, "", function(toggle) - tVehicle.Upgrade.unbreakable_light = toggle -end, true) -menu.toggle(Vehicle_Upgrade, "部件不可分离", {}, "", function(toggle) - tVehicle.Upgrade.unbreak = toggle -end, true) - -menu.divider(Vehicle_Upgrade, "载具生命") -menu.slider(Vehicle_Upgrade, "实体最大血量倍数", {}, "", - 1, 20, 1, 1, function(value) - tVehicle.Upgrade.max_health_multiplier = value - end) -menu.slider(Vehicle_Upgrade, "载具血量倍数", {}, - "引擎血量,车身外观血量,油箱血量,直升机主旋翼和尾旋翼血量\n载具血量 = 1000 * multiplier", - 1, 20, 1, 1, function(value) - tVehicle.Upgrade.health_multiplier = value - end) -menu.slider_float(Vehicle_Upgrade, "受到伤害倍数", {}, "数值越低,受到的伤害就越低", - 0, 100, 50, 10, function(value) - tVehicle.Upgrade.damage_scale = value * 0.01 - end) -menu.toggle(Vehicle_Upgrade, "无视载具司机的爆炸", {}, "司机投掷的炸弹不会对载具造成伤害", - function(toggle) - tVehicle.Upgrade.no_driver_explosion_damage = toggle - end, true) -menu.toggle(Vehicle_Upgrade, "其它属性增强", {}, "其它属性的提高,可以提高防炸性等", - function(toggle) - tVehicle.Upgrade.other_strong = toggle - end, true) - ---#endregion Vehicle Upgrade - ---#region Vehicle Weapon - -local Vehicle_Weapon = menu.list(Vehicle_Options, "载具武器", {}, "") - -local VehicleWeapon = { - delay = 500, - direction = { - [1] = true, -- front - [2] = false, -- rear - [3] = false, -- left - [4] = false, -- right - [5] = false, -- up - [6] = false, -- down - }, - launchNum = 3, - weaponHash = 4171469727, - isOwned = false, - damage = 1000, - speed = 2000, - createTraceVfx = true, - allowRumble = true, - perfectAccuracy = true, - startOffset = { - -- front - [1] = { x = 0.0, y = 1.0, z = 0.0 }, - -- rear - [2] = { x = 0.0, y = -1.0, z = 0.0 }, - -- left - [3] = { x = -1.0, y = 0.0, z = 0.0 }, - -- right - [4] = { x = 1.0, y = 0.0, z = 0.0 }, - -- up - [5] = { x = 0.0, y = 0.0, z = 2.5 }, - -- down - [6] = { x = 0.0, y = 0.0, z = -2.5 }, - }, - disableHorn = true, -} - -function VehicleWeapon.GetOffsets(vehicle, direction) - local min, max = v3.new(), v3.new() - MISC.GET_MODEL_DIMENSIONS(ENTITY.GET_ENTITY_MODEL(vehicle), min, max) - - local offset_z = get_middle_num(min.z, max.z) - local offsets = {} - local startOffset, end_offset - - if direction == 1 then - offsets[1] = v3.new(min.x, max.y, offset_z) - offsets[2] = v3.new(get_middle_num(min.x, max.x), max.y, offset_z) - offsets[3] = v3.new(max.x, max.y, offset_z) - -- front - end_offset = v3.new(0.0, 1.0, 0.0) - elseif direction == 2 then - offsets[1] = v3.new(min.x, min.y, offset_z) - offsets[2] = v3.new(get_middle_num(min.x, max.x), min.y, offset_z) - offsets[3] = v3.new(max.x, min.y, offset_z) - -- rear - end_offset = v3.new(0.0, -1.0, 0.0) - elseif direction == 3 then - offsets[1] = v3.new(min.x, max.y, offset_z) - offsets[2] = v3.new(min.x, get_middle_num(min.y, max.y), offset_z) - offsets[3] = v3.new(min.x, min.y, offset_z) - -- left - end_offset = v3.new(-1.0, 0.0, 0.0) - elseif direction == 4 then - offsets[1] = v3.new(max.x, max.y, offset_z) - offsets[2] = v3.new(max.x, get_middle_num(min.y, max.y), offset_z) - offsets[3] = v3.new(max.x, min.y, offset_z) - -- right - end_offset = v3.new(1.0, 0.0, 0.0) - elseif direction == 5 then - offsets[1] = v3.new(get_middle_num(min.x, max.x), max.y, offset_z) - offsets[2] = v3.new(get_middle_num(min.x, max.x), get_middle_num(min.y, max.y), offset_z) - offsets[3] = v3.new(get_middle_num(min.x, max.x), min.y, offset_z) - -- up - end_offset = v3.new(0.0, 0.0, 1.0) - elseif direction == 6 then - offsets[1] = v3.new(get_middle_num(min.x, max.x), max.y, offset_z) - offsets[2] = v3.new(get_middle_num(min.x, max.x), get_middle_num(min.y, max.y), offset_z) - offsets[3] = v3.new(get_middle_num(min.x, max.x), min.y, offset_z) - -- down - end_offset = v3.new(0.0, 0.0, -1.0) - end - - start_offset = v3.new(VehicleWeapon.startOffset[direction]) - end_offset:mul(500.0) -- distance - - local launchNum = VehicleWeapon.launchNum - if launchNum == 1 then - offsets[1] = nil - offsets[3] = nil - elseif launchNum == 2 then - offsets[2] = nil - end - - return start_offset, end_offset, offsets -end - -function VehicleWeapon.Shoot(vehicle) - local user_ped = players.user_ped() - - local weaponHash = VehicleWeapon.weaponHash - if weaponHash == "PLAYER_CURRENT_WEAPON" then - weaponHash = WEAPON.GET_SELECTED_PED_WEAPON(players.user_ped()) - elseif weaponHash == "VEHICLE_CURRENT_WEAPON" then - local ptr = memory.alloc_int() - WEAPON.GET_CURRENT_PED_VEHICLE_WEAPON(user_ped, ptr) - weaponHash = memory.read_int(ptr) - end - if not WEAPON.HAS_WEAPON_ASSET_LOADED(weaponHash) then - request_weapon_asset(weaponHash) - end - - local owner = 0 - if VehicleWeapon.isOwned then - owner = user_ped - end - - for dir, toggle in pairs(VehicleWeapon.direction) do - if toggle then - local start_offset, end_offset, offsets = VehicleWeapon.GetOffsets(vehicle, dir) - local start_pos, end_pos - for _, offset in pairs(offsets) do - if offset ~= nil then - offset:add(start_offset) - start_pos = ENTITY.GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(vehicle, offset.x, offset.y, offset.z) - - offset:add(end_offset) - end_pos = ENTITY.GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(vehicle, offset.x, offset.y, offset.z) - - MISC.SHOOT_SINGLE_BULLET_BETWEEN_COORDS_IGNORE_ENTITY( - start_pos.x, start_pos.y, start_pos.z, - end_pos.x, end_pos.y, end_pos.z, - VehicleWeapon.damage, - VehicleWeapon.perfectAccuracy, - weaponHash, - owner, - VehicleWeapon.createTraceVfx, - VehicleWeapon.allowRumble, - VehicleWeapon.speed, - vehicle, - 0) - end - end - end - end -end - -function VehicleWeapon.DrawLine(vehicle) - for dir, toggle in pairs(VehicleWeapon.direction) do - if toggle then - local start_offset, end_offset, offsets = VehicleWeapon.GetOffsets(vehicle, dir) - local start_pos, end_pos - for _, offset in pairs(offsets) do - if offset ~= nil then - offset:add(start_offset) - start_pos = ENTITY.GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(vehicle, offset.x, offset.y, offset.z) - - offset:add(end_offset) - end_pos = ENTITY.GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(vehicle, offset.x, offset.y, offset.z) - - DRAW_LINE(start_pos, end_pos) - end - end - end - end -end - -menu.toggle_loop(Vehicle_Weapon, "载具武器[E键射击]", { "veh_weapon" }, "", function() - local vehicle = entities.get_user_vehicle_as_handle(false) - if vehicle ~= INVALID_GUID and PAD.IS_CONTROL_PRESSED(0, 51) then - if VehicleWeapon.disableHorn then - AUDIO.SET_HORN_ENABLED(vehicle, false) - end - - VehicleWeapon.Shoot(vehicle) - util.yield(VehicleWeapon.delay) - end -end, function() - local vehicle = entities.get_user_vehicle_as_handle() - if vehicle ~= INVALID_GUID then - if VehicleWeapon.disableHorn then - AUDIO.SET_HORN_ENABLED(vehicle, true) - end - end -end) - -menu.toggle_loop(Vehicle_Weapon, "绘制射击连线", {}, "", function() - local vehicle = entities.get_user_vehicle_as_handle(false) - if vehicle ~= INVALID_GUID then - VehicleWeapon.DrawLine(vehicle) - end -end) - ----------------- --- Setting ----------------- - -menu.divider(Vehicle_Weapon, "设置") -menu.slider(Vehicle_Weapon, "循环延迟", { "veh_weapon_delay" }, "单位: ms", 0, 5000, 500, 10, - function(value) - VehicleWeapon.delay = value - end) - -local Vehicle_Weapon_Direction = menu.list(Vehicle_Weapon, "方向", {}, "") -for k, v in pairs({ "前", "后", "左", "右", "上", "下" }) do - menu.toggle(Vehicle_Weapon_Direction, v, {}, "", function(toggle) - VehicleWeapon.direction[k] = toggle - end, VehicleWeapon.direction[k]) -end - -local Vehicle_Weapon_Select = menu.list(Vehicle_Weapon, "武器", {}, "") -VehicleWeapon.Weapon_MenuReadonly = menu.readonly(Vehicle_Weapon_Select, "选择的武器", "VEHICLE_WEAPON_SPACE_ROCKET") - -local Vehicle_Weapon_SelectPlayer = rs_menu.all_weapons_without_melee(Vehicle_Weapon_Select, "手持武器", - {}, "", function(hash, name) - VehicleWeapon.weaponHash = hash - menu.set_value(VehicleWeapon.Weapon_MenuReadonly, name) - end, false) -rs_menu.current_weapon_action(Vehicle_Weapon_SelectPlayer, "玩家当前使用的武器", function() - VehicleWeapon.weaponHash = "PLAYER_CURRENT_WEAPON" - menu.set_value(VehicleWeapon.Weapon_MenuReadonly, "PLAYER_CURRENT_WEAPON") -end, false) - -local Vehicle_Weapon_SelectVehicle = rs_menu.vehicle_weapons(Vehicle_Weapon_Select, "载具武器", - {}, "", function(hash, model) - VehicleWeapon.weaponHash = hash - menu.set_value(VehicleWeapon.Weapon_MenuReadonly, model) - end, false) -rs_menu.current_weapon_action(Vehicle_Weapon_SelectVehicle, "载具当前使用的武器", function() - VehicleWeapon.weaponHash = "VEHICLE_CURRENT_WEAPON" - menu.set_value(VehicleWeapon.Weapon_MenuReadonly, "VEHICLE_CURRENT_WEAPON") -end, false) - - -menu.slider(Vehicle_Weapon, "发射数量", { "veh_weapon_launchNum" }, "", 1, 3, 3, 1, function(value) - VehicleWeapon.launchNum = value -end) -menu.toggle(Vehicle_Weapon, "署名射击", {}, "以玩家名义", function(toggle) - VehicleWeapon.isOwned = toggle -end) -menu.slider(Vehicle_Weapon, "伤害", { "veh_weapon_damage" }, "", 0, 10000, 1000, 100, - function(value) - VehicleWeapon.damage = value - end) -menu.slider(Vehicle_Weapon, "速度", { "veh_weapon_speed" }, "", 0, 10000, 2000, 100, - function(value) - VehicleWeapon.speed = value - end) - - -local Vehicle_Weapon_StartOffset = menu.list(Vehicle_Weapon, "起始射击位置偏移", {}, "") -for k, v in pairs({ "前", "后", "左", "右", "上", "下" }) do - local menu_list = menu.list(Vehicle_Weapon_StartOffset, v, {}, "") - - menu.slider_float(menu_list, "X", { "veh_weapon_dir" .. k .. "_x" }, "", - -10000, 10000, VehicleWeapon.startOffset[k].x * 100, 10, - function(value) - value = value * 0.01 - VehicleWeapon.startOffset[k].x = value - end) - menu.slider_float(menu_list, "Y", { "veh_weapon_dir" .. k .. "_y" }, "", - -10000, 10000, VehicleWeapon.startOffset[k].y * 100, 10, - function(value) - value = value * 0.01 - VehicleWeapon.startOffset[k].y = value - end) - menu.slider_float(menu_list, "Z", { "veh_weapon_dir" .. k .. "_z" }, "", - -10000, 10000, VehicleWeapon.startOffset[k].z * 100, 10, - function(value) - value = value * 0.01 - VehicleWeapon.startOffset[k].z = value - end) -end - -menu.toggle(Vehicle_Weapon, "禁用载具喇叭", {}, "", function(toggle) - VehicleWeapon.disableHorn = toggle -end, true) - ---#endregion Vehicle Weapon - ---#region Vehicle Window - -local Vehicle_Window = menu.list(Vehicle_Options, "载具车窗", {}, "") - -tVehicle.Window = { - toggles = {}, - toggleMenus = {}, - windowList = { - -- index, name - { 0, "前左车窗" }, -- SC_WINDOW_FRONT_LEFT = 0 - { 1, "前右车窗" }, -- SC_WINDOW_FRONT_RIGHT = 1 - { 2, "后左车窗" }, -- SC_WINDOW_REAR_LEFT = 2 - { 3, "后右车窗" }, -- SC_WINDOW_REAR_RIGHT = 3 - { 4, "中间左车窗" }, -- SC_WINDOW_MIDDLE_LEFT = 4 - { 5, "中间右车窗" }, -- SC_WINDOW_MIDDLE_RIGHT = 5 - { 6, "前挡风车窗" }, -- SC_WINDSCREEN_FRONT = 6 - { 7, "后挡风车窗" }, -- SC_WINDSCREEN_REAR = 7 - }, -} - -local Vehicle_Window_Select = menu.list(Vehicle_Window, "选择车窗", {}, "") - -menu.toggle(Vehicle_Window_Select, "全部开/关", {}, "", function(toggle) - for key, value in pairs(tVehicle.Window.toggleMenus) do - if menu.is_ref_valid(value) then - menu.set_value(value, toggle) - end - end -end, true) - -for _, item in pairs(tVehicle.Window.windowList) do - local index = item[1] - local name = item[2] - - tVehicle.Window.toggles[index] = true - tVehicle.Window.toggleMenus[index] = menu.toggle(Vehicle_Window_Select, name, {}, "", function(toggle) - tVehicle.Window.toggles[index] = toggle - end, true) -end - -menu.toggle_loop(Vehicle_Window, "修复车窗", { "fix_veh_window" }, "", function() - local vehicle = entities.get_user_vehicle_as_handle() - if vehicle ~= INVALID_GUID then - for index, toggle in pairs(tVehicle.Window.toggles) do - if toggle then - VEHICLE.FIX_VEHICLE_WINDOW(vehicle, index) - end - end - end -end) -menu.toggle_loop(Vehicle_Window, "摇上车窗", { "roll_up_veh_window" }, "", function() - local vehicle = entities.get_user_vehicle_as_handle() - if vehicle ~= INVALID_GUID then - for index, toggle in pairs(tVehicle.Window.toggles) do - if toggle then - VEHICLE.ROLL_UP_WINDOW(vehicle, index) - end - end - end -end) -menu.toggle_loop(Vehicle_Window, "摇下车窗", { "roll_down_veh_window" }, "", function() - local vehicle = entities.get_user_vehicle_as_handle() - if vehicle ~= INVALID_GUID then - for index, toggle in pairs(tVehicle.Window.toggles) do - if toggle then - VEHICLE.ROLL_DOWN_WINDOW(vehicle, index) - end - end - end -end) -menu.toggle_loop(Vehicle_Window, "粉碎车窗", { "smash_veh_window" }, "", function() - local vehicle = entities.get_user_vehicle_as_handle() - if vehicle ~= INVALID_GUID then - for index, toggle in pairs(tVehicle.Window.toggles) do - if toggle then - VEHICLE.SMASH_VEHICLE_WINDOW(vehicle, index) - end - end - end -end) - ---#endregion Vehicle Window - ---#region Vehicle Door - -local Vehicle_Door = menu.list(Vehicle_Options, "载具车门", {}, "") - -tVehicle.Door = { - toggles = {}, - toggleMenus = {}, - doorList = { - -- index, name - { 0, "左前门" }, -- VEH_EXT_DOOR_DSIDE_F = 0 - { 1, "右前门" }, -- VEH_EXT_DOOR_DSIDE_R = 1 - { 2, "左后门" }, -- VEH_EXT_DOOR_PSIDE_F = 2 - { 3, "右后门" }, -- VEH_EXT_DOOR_PSIDE_R = 3 - { 4, "引擎盖" }, -- VEH_EXT_BONNET = 4 - { 5, "后备箱" } -- VEH_EXT_BOOT = 5 - }, -} - -local Vehicle_Door_Select = menu.list(Vehicle_Door, "选择车门", {}, "") - -menu.toggle(Vehicle_Door_Select, "全部开/关", {}, "", function(toggle) - for key, value in pairs(tVehicle.Door.toggleMenus) do - if menu.is_ref_valid(value) then - menu.set_value(value, toggle) - end - end -end, true) - -for _, data in pairs(tVehicle.Door.doorList) do - local index = data[1] - local name = data[2] - - tVehicle.Door.toggles[index] = true - tVehicle.Door.toggleMenus[index] = menu.toggle(Vehicle_Door_Select, name, {}, "", function(toggle) - tVehicle.Door.toggles[index] = toggle - end, true) -end - -menu.toggle_loop(Vehicle_Door, "打开车门", { "open_veh_door" }, "", function() - local vehicle = entities.get_user_vehicle_as_handle() - if vehicle ~= INVALID_GUID then - for index, toggle in pairs(tVehicle.Door.toggles) do - if toggle then - VEHICLE.SET_VEHICLE_DOOR_OPEN(vehicle, index, false, false) - end - end - end -end) -menu.action(Vehicle_Door, "关闭车门", { "close_veh_door" }, "", function() - local vehicle = entities.get_user_vehicle_as_handle() - if vehicle ~= INVALID_GUID then - for index, toggle in pairs(tVehicle.Door.toggles) do - if toggle then - VEHICLE.SET_VEHICLE_DOOR_SHUT(vehicle, index, false) - end - end - end -end) -menu.toggle_loop(Vehicle_Door, "破坏车门", { "broken_veh_door" }, "", function() - local vehicle = entities.get_user_vehicle_as_handle() - if vehicle ~= INVALID_GUID then - for index, toggle in pairs(tVehicle.Door.toggles) do - if toggle then - VEHICLE.SET_VEHICLE_DOOR_BROKEN(vehicle, index, false) - end - end - end -end) -menu.toggle_loop(Vehicle_Door, "删除车门", { "delete_veh_door" }, "", function() - local vehicle = entities.get_user_vehicle_as_handle() - if vehicle ~= INVALID_GUID then - for index, toggle in pairs(tVehicle.Door.toggles) do - if toggle then - VEHICLE.SET_VEHICLE_DOOR_BROKEN(vehicle, index, true) - end - end - end -end) - - -menu.divider(Vehicle_Door, "锁门") - -tVehicle.DoorLock = { - ListItem = { - { 1, "解锁", {}, "" }, -- VEHICLELOCK_UNLOCKED - { 2, "上锁", {}, "" }, -- VEHICLELOCK_LOCKED - { 3, "Lock Out Player Only", {}, "" }, -- VEHICLELOCK_LOCKOUT_PLAYER_ONLY - { 4, "玩家锁定在里面", {}, "" }, -- VEHICLELOCK_LOCKED_PLAYER_INSIDE - { 5, "Locked Initially", {}, "" }, -- VEHICLELOCK_LOCKED_INITIALLY - { 6, "强制关闭车门", {}, "" }, -- VEHICLELOCK_FORCE_SHUT_DOORS - { 7, "上锁但可被破坏", {}, "可以破开车窗开门" }, -- VEHICLELOCK_LOCKED_BUT_CAN_BE_DAMAGED - { 8, "上锁但后备箱解锁", {}, "" }, -- VEHICLELOCK_LOCKED_BUT_BOOT_UNLOCKED - { 9, "Locked No Passagers", {}, "" }, -- VEHICLELOCK_LOCKED_NO_PASSENGERS - { 10, "不能进入", {}, "按F无上车动作" } -- VEHICLELOCK_CANNOT_ENTER - } -} -menu.list_action(Vehicle_Door, "设置锁门类型", {}, "", tVehicle.DoorLock.ListItem, function(value) - local vehicle = entities.get_user_vehicle_as_handle() - if vehicle ~= INVALID_GUID then - VEHICLE.SET_VEHICLE_DOORS_LOCKED(vehicle, value) - end -end) - -menu.toggle(Vehicle_Door, "对所有玩家锁门", {}, "", function(toggle) - local vehicle = entities.get_user_vehicle_as_handle() - if vehicle ~= INVALID_GUID then - VEHICLE.SET_VEHICLE_DOORS_LOCKED_FOR_ALL_PLAYERS(vehicle, toggle) - end -end) -menu.toggle(Vehicle_Door, "对所有团队锁门", {}, "", function(toggle) - local vehicle = entities.get_user_vehicle_as_handle() - if vehicle ~= INVALID_GUID then - VEHICLE.SET_VEHICLE_DOORS_LOCKED_FOR_ALL_TEAMS(vehicle, toggle) - end -end) - ---#endregion Vehicle Door - ---#region Vehicle Radio - -local Vehicle_Radio = menu.list(Vehicle_Options, "载具电台", {}, "") - -tVehicle.Radio = { - station_select = 1, -} - -menu.list_select(Vehicle_Radio, "选择电台", {}, "", Vehicle_T.RadioStation.ListItem, 1, function(value) - tVehicle.Radio.station_select = value -end) -menu.toggle_loop(Vehicle_Radio, "自动更改电台", { "auto_veh_radio" }, "自动更改正在进入驾驶位的载具的电台", - function() - if PED.IS_PED_GETTING_INTO_A_VEHICLE(players.user_ped()) then - local veh = PED.GET_VEHICLE_PED_IS_ENTERING(players.user_ped()) - if ENTITY.IS_ENTITY_A_VEHICLE(veh) and PED.GET_SEAT_PED_IS_TRYING_TO_ENTER(players.user_ped()) == -1 then - local stationName = Vehicle_RadioStation.LabelList[tVehicle.Radio.station_select] - AUDIO.SET_VEH_RADIO_STATION(veh, stationName) - AUDIO.SET_RADIO_TO_STATION_NAME(stationName) - end - end - end) -menu.toggle_loop(Vehicle_Radio, "禁用载具电台", {}, "当前或上一辆载具将无法选择更改电台", - function() - local vehicle = entities.get_user_vehicle_as_handle() - if vehicle ~= INVALID_GUID then - AUDIO.SET_VEHICLE_RADIO_ENABLED(vehicle, false) - end - end, function() - local vehicle = entities.get_user_vehicle_as_handle() - if vehicle ~= INVALID_GUID then - AUDIO.SET_VEHICLE_RADIO_ENABLED(vehicle, true) - end - end) -menu.toggle(Vehicle_Radio, "电台只播放音乐", {}, "", function(toggle) - for _, stationName in pairs(Vehicle_T.RadioStation.LabelList) do - AUDIO.SET_RADIO_STATION_MUSIC_ONLY(stationName, toggle) - end -end) - ---#endregion Vehicle Radio - ---#region Vehicle Info - -local Vehicle_Info = menu.list(Vehicle_Options, "载具信息显示", {}, "") - -tVehicle.Info = { - -- show setting -- - only_current_vehicle = true, - x = 0.26, - y = 0.80, - scale = 0.65, - color = Colors.white, - -- show info -- - vehicle_name = true, - entity_health = true, - engine_health = true, - body_health = false, - petrol_tank_health = false, - heli_health = false, -} - -menu.toggle_loop(Vehicle_Info, "显示载具信息", {}, "", function() - if tVehicle.Info.only_current_vehicle and not PED.IS_PED_IN_ANY_VEHICLE(players.user_ped(), false) then - return - end - - local veh = entities.get_user_vehicle_as_handle() - if veh ~= INVALID_GUID then - local text = "" - - if tVehicle.Info.vehicle_name then - text = text .. get_vehicle_display_name(veh) .. "\n" - end - if tVehicle.Info.entity_health then - text = text .. "实体血量: " .. - ENTITY.GET_ENTITY_HEALTH(veh) .. "/" .. ENTITY.GET_ENTITY_MAX_HEALTH(veh) .. "\n" - end - if tVehicle.Info.engine_health then - text = text .. "引擎血量: " .. math.ceil(VEHICLE.GET_VEHICLE_ENGINE_HEALTH(veh)) .. "\n" - end - if tVehicle.Info.body_health then - text = text .. "车身外观血量: " .. math.ceil(VEHICLE.GET_VEHICLE_BODY_HEALTH(veh)) .. "\n" - end - if tVehicle.Info.petrol_tank_health then - text = text .. "油箱血量: " .. math.ceil(VEHICLE.GET_VEHICLE_PETROL_TANK_HEALTH(veh)) .. "\n" - end - if tVehicle.Info.heli_health and VEHICLE.IS_THIS_MODEL_A_HELI(ENTITY.GET_ENTITY_MODEL(veh)) then - text = text .. "Heli Main Rotor Health: " .. math.ceil(VEHICLE.GET_HELI_MAIN_ROTOR_HEALTH(veh)) .. "\n" - text = text .. "Heli Tail Rotor Health: " .. math.ceil(VEHICLE.GET_HELI_TAIL_ROTOR_HEALTH(veh)) .. "\n" - text = text .. "Heli Boom Rotor Health: " .. math.ceil(VEHICLE.GET_HELI_TAIL_BOOM_HEALTH(veh)) .. "\n" - end - - directx.draw_text(tVehicle.Info.x, tVehicle.Info.y, - text, - ALIGN_TOP_LEFT, - tVehicle.Info.scale, - tVehicle.Info.color) - end -end) - -local Vehicle_Info_ShowSetting = menu.list(Vehicle_Info, "显示设置", {}, "") -menu.toggle(Vehicle_Info_ShowSetting, "只显示当前载具信息", {}, "", function(toggle) - tVehicle.Info.only_current_vehicle = toggle -end, true) -menu.slider_float(Vehicle_Info_ShowSetting, "位置X", { "veh_info_x" }, "", 0, 100, 26, 1, function(value) - tVehicle.Info.x = value * 0.01 -end) -menu.slider_float(Vehicle_Info_ShowSetting, "位置Y", { "veh_info_y" }, "", 0, 100, 80, 1, function(value) - tVehicle.Info.y = value * 0.01 -end) -menu.slider_float(Vehicle_Info_ShowSetting, "文字大小", { "veh_info_scale" }, "", - 0, 1000, 65, 1, function(value) - tVehicle.Info.scale = value * 0.01 - end) -menu.colour(Vehicle_Info_ShowSetting, "文字颜色", { "veh_info_colour" }, "", Colors.white, false, - function(colour) - tVehicle.Info.color = colour - end) - -menu.divider(Vehicle_Info, "显示的信息") -menu.toggle(Vehicle_Info, "载具名称", {}, "", function(toggle) - tVehicle.Info.vehicle_name = toggle -end, true) -menu.toggle(Vehicle_Info, "实体血量", {}, "", function(toggle) - tVehicle.Info.entity_health = toggle -end, true) -menu.toggle(Vehicle_Info, "引擎血量", {}, "", function(toggle) - tVehicle.Info.engine_health = toggle -end, true) -menu.toggle(Vehicle_Info, "车身外观血量", {}, "", function(toggle) - tVehicle.Info.body_health = toggle -end) -menu.toggle(Vehicle_Info, "油箱血量", {}, "", function(toggle) - tVehicle.Info.petrol_tank_health = toggle -end) -menu.toggle(Vehicle_Info, "直升机螺旋桨血量", {}, "", function(toggle) - tVehicle.Info.heli_health = toggle -end) - ---#endregion Vehicle Info - ---#region Options - -local veh_dirt_level = 0.0 -menu.click_slider_float(Vehicle_Options, "载具灰尘程度", { "veh_dirt_level" }, "载具全身灰尘程度", - 0, 1500, 0, 100, function(value) - veh_dirt_level = value * 0.01 - local vehicle = entities.get_user_vehicle_as_handle() - if vehicle ~= INVALID_GUID then - if VEHICLE.GET_VEHICLE_DIRT_LEVEL(vehicle) ~= veh_dirt_level then - VEHICLE.SET_VEHICLE_DIRT_LEVEL(vehicle, veh_dirt_level) - end - end - end) -menu.toggle_loop(Vehicle_Options, "锁定载具灰尘程度", {}, "", function() - local vehicle = entities.get_user_vehicle_as_handle() - if vehicle ~= INVALID_GUID then - if VEHICLE.GET_VEHICLE_DIRT_LEVEL(vehicle) ~= veh_dirt_level then - VEHICLE.SET_VEHICLE_DIRT_LEVEL(vehicle, veh_dirt_level) - end - end -end) -menu.toggle_loop(Vehicle_Options, "自动开启载具引擎", {}, "自动开启正在进入驾驶位的载具的引擎", - function() - if PED.IS_PED_GETTING_INTO_A_VEHICLE(players.user_ped()) then - local veh = PED.GET_VEHICLE_PED_IS_ENTERING(players.user_ped()) - if ENTITY.IS_ENTITY_A_VEHICLE(veh) and PED.GET_SEAT_PED_IS_TRYING_TO_ENTER(players.user_ped()) == -1 then - VEHICLE.SET_VEHICLE_ENGINE_HEALTH(veh, 1000) - VEHICLE.SET_VEHICLE_ENGINE_ON(veh, true, true, true) - end - end - end) -menu.toggle_loop(Vehicle_Options, "自动解锁载具车门", {}, "自动解锁正在进入的载具的车门", - function() - local vehicle = 0 - if PED.IS_PED_IN_ANY_VEHICLE(players.user_ped(), false) then - vehicle = PED.GET_VEHICLE_PED_IS_IN(players.user_ped(), false) - else - vehicle = PED.GET_VEHICLE_PED_IS_TRYING_TO_ENTER(players.user_ped()) - end - - if vehicle ~= 0 then - if request_control(vehicle) then - unlock_vehicle_doors(vehicle) - VEHICLE.SET_VEHICLE_IS_CONSIDERED_BY_PLAYER(vehicle, true) - VEHICLE.SET_VEHICLE_UNDRIVEABLE(vehicle, false) - ENTITY.FREEZE_ENTITY_POSITION(vehicle, false) - else - util.toast("请求控制失败,请重试") - end - end - end) -menu.toggle_loop(Vehicle_Options, "无限动能回收加速", {}, "", function() - local vehicle = entities.get_user_vehicle_as_handle() - if vehicle ~= INVALID_GUID then - if VEHICLE.GET_VEHICLE_HAS_KERS(vehicle) then - local vehicle_ptr = entities.handle_to_pointer(vehicle) - local kers_boost_max = memory.read_float(vehicle_ptr + 0x92c) - memory.write_float(vehicle_ptr + 0x930, kers_boost_max) -- m_kers_boost - end - end -end) -menu.toggle_loop(Vehicle_Options, "无限载具跳跃", {}, "然而落地后才能继续跳跃", function() - local vehicle = entities.get_user_vehicle_as_handle() - if vehicle ~= INVALID_GUID then - if VEHICLE.GET_CAR_HAS_JUMP(vehicle) then - local vehicle_ptr = entities.handle_to_pointer(vehicle) - memory.write_float(vehicle_ptr + 0x3a0, 5.0) -- m_jump_boost_charge - end - end -end) - ---#endregion Options +local SCRIPT_VERSION = "2024/9/1" +local SUPPORT_GAME_VERSION = "1.69-3274" ------------------------------------------ ----------- Entity Options ---------- +-- Required Files ------------------------------------------ -require "RScript.Menu.Entity" - - - - -------------------------------------------- ----------- Mission Options ---------- -------------------------------------------- - -require "RScript.Menu.Mission" - - +-- Store +STORE_DIR = filesystem.store_dir() .. "RScript\\" +if not filesystem.exists(STORE_DIR) then + filesystem.mkdir(STORE_DIR) +end +-- Resource +local RESOURCE_DIR = filesystem.resources_dir() .. "RScript\\" +Texture = { + file = { + crosshair = RESOURCE_DIR .. "crosshair.png", + }, +} +for _, file in pairs(Texture.file) do + if not filesystem.exists(file) then + util.toast("[RScript] 缺少文件: " .. file, TOAST_ALL) + -- util.toast("脚本已停止运行") + -- util.stop_script() + return false + end +end ------------------------------------------- ----------- Online Options ---------- ------------------------------------------- +Texture.crosshair = directx.create_texture(Texture.file.crosshair) -require "RScript.Menu.Online" +-- Lib +local SCRIPT_LIB_DIR = filesystem.scripts_dir() .. "lib\\RScript\\" +local REQUIRED_FILES = { + "tables.lua", + "alternatives.lua", + "functions.lua", + "functions2.lua", + "utils.lua", + "entity_libs.lua", + "variables.lua", + "tunables.lua", + "Menu\\Self.lua", + "Menu\\Weapon.lua", + "Menu\\Vehicle.lua", + "Menu\\Entity.lua", + "Menu\\Mission.lua", + "Menu\\Online.lua", + "Menu\\Assistant.lua", + "Menu\\Bodyguard.lua", + "Menu\\Clean.lua", + "Menu\\Other.lua", + "Menu\\Dev.lua", + "Menu\\Player.lua", +} +for _, file in pairs(REQUIRED_FILES) do + local file_path = SCRIPT_LIB_DIR .. file + if not filesystem.exists(file_path) then + util.toast("[RScript] 缺少文件: " .. file_path, TOAST_ALL) + -- util.toast("脚本已停止运行") + -- util.stop_script() + return false + end +end +-- Require +util.require_natives("3274a", "init") + +local LIB_MODULES = { + "RScript.tables", + "RScript.alternatives", + "RScript.functions", + "RScript.functions2", + "RScript.utils", + "RScript.entity_libs", + "RScript.variables", + "RScript.tunables", +} -------------------------------------------- ---------- Assistant Options --------- -------------------------------------------- +for _, lib_module in ipairs(LIB_MODULES) do + require(lib_module) +end -require "RScript.Menu.Assistant" ---------------------------------------------- ----------- Bodyguard Options ---------- ---------------------------------------------- +------------------------------------------ +-- Setting +------------------------------------------ -require "RScript.Menu.Bodyguard" +Setting = {} +local SETTING_FILE = STORE_DIR .. "setting.txt" +if not filesystem.exists(SETTING_FILE) or not filesystem.is_regular_file(SETTING_FILE) then + -- Default Setting + Setting = { + ["Dev Mode"] = false, + ["Change Script Entry"] = false, + } + util.write_colons_file(SETTING_FILE, Setting) +else + Setting = util.read_colons_and_tabs_file(SETTING_FILE) +end +--- @param key string +--- @return boolean|string +function getSetting(key) + local value = Setting[key] -------------------------------------------- ----------- Clean Options ------------ -------------------------------------------- + if value == nil then + Setting[key] = false + return false + end + if value == "false" then + return false + end + if value == "true" then + return true + end + return value +end -local Clear_Options = menu.list(Menu_Root, "清理选项", {}, "移除,清理等") +--- @param key string +--- @param value boolean|string|number +function setSetting(key, value) + Setting[key] = value +end -local tClear = {} +------------------------------------------ +-- Initialization +------------------------------------------ ---#region Clear Area +DEV_MODE = getSetting("Dev Mode") -local Clear_Area = menu.list(Clear_Options, "清理区域", {}, "无法清理任务实体") -tClear.Area = { - radius = 100, - broadcast = 0, +-- Backend Loop +LoopHandler = { + Main = {}, + Tunables = { + }, + Entity = { + show_info = {}, + draw_line = {}, + draw_bounding_box = {}, + preview_ent = { + ent = 0, + clone_ent = 0, + has_cloned_ent = 0, + camera_distance = 2.0, + }, + lock_tp = {}, + }, } -menu.toggle_loop(Clear_Area, "清理区域", { "cls_area" }, "清理区域内所有东西", function() - local coords = ENTITY.GET_ENTITY_COORDS(players.user_ped()) - MISC.CLEAR_AREA(coords.x, coords.y, coords.z, tClear.Area.radius, true, false, false, cls_broadcast) -end) -menu.toggle_loop(Clear_Area, "清理载具", { "cls_vehicles" }, "清理区域内所有载具", function() - local coords = ENTITY.GET_ENTITY_COORDS(players.user_ped()) - MISC.CLEAR_AREA_OF_VEHICLES(coords.x, coords.y, coords.z, tClear.Area.radius, false, false, false, false, - cls_broadcast, false, 0) -end) -menu.toggle_loop(Clear_Area, "清理行人", { "cls_peds" }, "清理区域内所有行人", function() - local coords = ENTITY.GET_ENTITY_COORDS(players.user_ped()) - MISC.CLEAR_AREA_OF_PEDS(coords.x, coords.y, coords.z, tClear.Area.radius, cls_broadcast) -end) -menu.toggle_loop(Clear_Area, "清理警察", { "cls_cops" }, "清理区域内所有警察", function() - local coords = ENTITY.GET_ENTITY_COORDS(players.user_ped()) - MISC.CLEAR_AREA_OF_COPS(coords.x, coords.y, coords.z, tClear.Area.radius, cls_broadcast) -end) -menu.toggle_loop(Clear_Area, "清理物体", { "cls_objects" }, "清理区域内所有物体", function() - local coords = ENTITY.GET_ENTITY_COORDS(players.user_ped()) - MISC.CLEAR_AREA_OF_OBJECTS(coords.x, coords.y, coords.z, tClear.Area.radius, cls_broadcast) -end) -menu.toggle_loop(Clear_Area, "清理投掷物", { "cls_projectiles" }, "清理区域内所有子弹、炮弹、投掷物等", - function() - local coords = ENTITY.GET_ENTITY_COORDS(players.user_ped()) - MISC.CLEAR_AREA_OF_PROJECTILES(coords.x, coords.y, coords.z, tClear.Area.radius, cls_broadcast) - end) - -menu.divider(Clear_Area, "设置") -menu.slider_float(Clear_Area, "范围半径", { "cls_radius" }, "", - 0, 100000, tClear.Area.radius * 100, 1000, function(value) - tClear.Area.radius = value * 0.01 - end) -menu.toggle(Clear_Area, "同步到其它玩家", { "cls_broadcast" }, "", function(toggle) - tClear.Area.broadcast = toggle and 1 or 0 - util.toast("清理区域 网络同步: " .. tostring(toggle and "开" or "关")) -end) - - ---#endregion Clear Area - ---#region Options - -menu.toggle_loop(Clear_Options, "移除爆炸和火焰", { "cls_fire" }, "范围: 30", function() - local pos = ENTITY.GET_ENTITY_COORDS(players.user_ped()) - FIRE.STOP_FIRE_IN_RANGE(pos.x, pos.y, pos.z, 30.0) - FIRE.STOP_ENTITY_FIRE(players.user_ped()) -end) -menu.toggle_loop(Clear_Options, "移除粒子效果", { "cls_ptfx" }, "范围: 30", function() - local pos = ENTITY.GET_ENTITY_COORDS(players.user_ped()) - GRAPHICS.REMOVE_PARTICLE_FX_IN_RANGE(pos.x, pos.y, pos.z, 30.0) - GRAPHICS.REMOVE_PARTICLE_FX_FROM_ENTITY(players.user_ped()) -end) -menu.toggle_loop(Clear_Options, "移除视觉效果", { "cls_graphics" }, "", function() - GRAPHICS.ANIMPOSTFX_STOP_ALL() - GRAPHICS.CLEAR_TIMECYCLE_MODIFIER() - --GRAPHICS.SET_TIMECYCLE_MODIFIER("DEFAULT") -end) -menu.toggle_loop(Clear_Options, "移除载具上的黏弹", {}, "", function() - local vehicle = entities.get_user_vehicle_as_handle() - if vehicle ~= INVALID_GUID then - NETWORK.REMOVE_ALL_STICKY_BOMBS_FROM_ENTITY(vehicle, 0) - end -end) -menu.toggle_loop(Clear_Options, "停止所有声音", {}, "", function() - for i = 0, 99 do - AUDIO.STOP_SOUND(i) - AUDIO.RELEASE_SOUND_ID(i) - end -end) - -menu.divider(Clear_Options, "") -menu.action(Clear_Options, "清理已死亡的任务载具", {}, "", function() - local num = 0 - for _, ent in pairs(entities.get_all_vehicles_as_handles()) do - if ENTITY.IS_ENTITY_A_MISSION_ENTITY(ent) and ENTITY.IS_ENTITY_DEAD(ent) then - entities.delete(ent) +function LoopHandler.drawCentredPoint(toggle) + LoopHandler.Main.drawCentredPoint = toggle +end - if not ENTITY.DOES_ENTITY_EXIST(num) then - num = num + 1 - end - end - end +function LoopHandler.Entity.clearToggles() + LoopHandler.Entity.draw_line.toggle = false + LoopHandler.Entity.show_info.toggle = false + LoopHandler.Entity.draw_bounding_box.toggle = false + LoopHandler.Entity.lock_tp.toggle = false + LoopHandler.Entity.preview_ent.toggle = false +end - if num > 0 then - util.toast("清理任务载具数量: " .. num) - end -end) -menu.action(Clear_Options, "清理已死亡的任务NPC", {}, "", function() - local num = 0 - for _, ent in pairs(entities.get_all_peds_as_handles()) do - if ENTITY.IS_ENTITY_A_MISSION_ENTITY(ent) and ENTITY.IS_ENTITY_DEAD(ent) then - entities.delete(ent) - - if not ENTITY.DOES_ENTITY_EXIST(num) then - num = num + 1 - end - end - end +-- Transition Finished +TransitionData = { + Self = {}, +} - if num > 0 then - util.toast("清理任务NPC数量: " .. num) +util.on_transition_finished(function() + if TransitionData.Self.refillArmour then + menu.trigger_commands("refillarmour") end end) -menu.action(Clear_Options, "中断当前动作", { "cls_task" }, "", function() - TASK.CLEAR_PED_TASKS_IMMEDIATELY(players.user_ped()) -end) - ---#endregion Options - ------------------------------------------ ----------- Other Options ---------- ------------------------------------------ +-- Check Game Version +local CURRENT_GAME_VERSION = menu.get_version().game +if SUPPORT_GAME_VERSION ~= CURRENT_GAME_VERSION then + local state_text = string.format( + "支持的游戏版本: %s\n当前游戏版本: %s\n不支持当前游戏版本, 部分功能可能无法使用!", + SUPPORT_GAME_VERSION, CURRENT_GAME_VERSION) + util.toast(state_text) +end -local Other_Options = menu.list(Menu_Root, "其它选项", {}, "") -Dev_Options = menu.list(Other_Options, "开发者选项", {}, "") -require "RScript.Menu.Dev" ---#region Snack Armour Editor +---------------------------------------------------------- +-- MENU START +---------------------------------------------------------- -local Snack_Armour_Editor = menu.list(Other_Options, "零食护甲编辑", {}, "") +Menu_Root = menu.my_root() -menu.action(Snack_Armour_Editor, "补满全部零食", {}, "", function() - STAT_SET_INT("NO_BOUGHT_YUM_SNACKS", 30) - STAT_SET_INT("NO_BOUGHT_HEALTH_SNACKS", 15) - STAT_SET_INT("NO_BOUGHT_EPIC_SNACKS", 5) - STAT_SET_INT("NUMBER_OF_ORANGE_BOUGHT", 10) - STAT_SET_INT("NUMBER_OF_BOURGE_BOUGHT", 10) - STAT_SET_INT("NUMBER_OF_CHAMP_BOUGHT", 5) - STAT_SET_INT("CIGARETTES_BOUGHT", 20) - STAT_SET_INT("NUMBER_OF_SPRUNK_BOUGHT", 10) - util.toast("完成!") -end) -menu.action(Snack_Armour_Editor, "补满全部护甲", {}, "", function() - STAT_SET_INT("MP_CHAR_ARMOUR_1_COUNT", 10) - STAT_SET_INT("MP_CHAR_ARMOUR_2_COUNT", 10) - STAT_SET_INT("MP_CHAR_ARMOUR_3_COUNT", 10) - STAT_SET_INT("MP_CHAR_ARMOUR_4_COUNT", 10) - STAT_SET_INT("MP_CHAR_ARMOUR_5_COUNT", 10) - util.toast("完成!") -end) -menu.action(Snack_Armour_Editor, "补满呼吸器", {}, "", function() - STAT_SET_INT("BREATHING_APPAR_BOUGHT", 20) - util.toast("完成!") -end) +if getSetting("Change Script Entry") then + Menu_Root = menu.attach_before(menu.ref_by_path("Stand>Settings"), + menu.list(menu.shadow_root(), "RScript", { "RScript" }, "")) -menu.divider(Snack_Armour_Editor, "零食") -menu.click_slider(Snack_Armour_Editor, "PQ豆", { "snack_yum" }, "+15 Health", 0, 999, 30, 1, function(value) - STAT_SET_INT("NO_BOUGHT_YUM_SNACKS", value) - util.toast("完成!") -end) -menu.click_slider(Snack_Armour_Editor, "宝力旺", { "snack_health" }, "+45 Health", 0, 999, 15, 1, - function(value) - STAT_SET_INT("NO_BOUGHT_HEALTH_SNACKS", value) - util.toast("完成!") - end) -menu.click_slider(Snack_Armour_Editor, "麦提来", { "snack_epic" }, "+30 Health", 0, 999, 5, 1, - function(value) - STAT_SET_INT("NO_BOUGHT_EPIC_SNACKS", value) - util.toast("完成!") - end) -menu.click_slider(Snack_Armour_Editor, "易可乐", { "snack_orange" }, "+36 Health", 0, 999, 10, 1, - function(value) - STAT_SET_INT("NUMBER_OF_ORANGE_BOUGHT", value) - util.toast("完成!") - end) -menu.click_slider(Snack_Armour_Editor, "尿汤啤", { "snack_bourge" }, "", 0, 999, 10, 1, function(value) - STAT_SET_INT("NUMBER_OF_BOURGE_BOUGHT", value) - util.toast("完成!") -end) -menu.click_slider(Snack_Armour_Editor, "蓝醉香槟", { "snack_champ" }, "", 0, 999, 5, 1, function(value) - STAT_SET_INT("NUMBER_OF_CHAMP_BOUGHT", value) - util.toast("完成!") -end) -menu.click_slider(Snack_Armour_Editor, "香烟", { "snack_cigarettes" }, "-5 Health", 0, 999, 20, 1, - function(value) - STAT_SET_INT("CIGARETTES_BOUGHT", value) - util.toast("完成!") + menu.action(Menu_Root, "停止脚本", {}, "", function() + menu.trigger_commands("stopluarscript") end) -menu.click_slider(Snack_Armour_Editor, "霜碧", { "snack_sprunk" }, "+36 Health", 0, 999, 10, 1, - function(value) - STAT_SET_INT("NUMBER_OF_SPRUNK_BOUGHT", value) - util.toast("完成!") + + menu.divider(menu.my_root(), "RScript") + menu.action(menu.my_root(), "转到脚本", {}, "", function() + menu.trigger_commands("RScript") end) +end ---#endregion +menu.divider(Menu_Root, "RScript") ---#region Options -local nophonespam = menu.ref_by_command_name("nophonespam") -menu.toggle_loop(Other_Options, "打字时禁用来电电话", {}, "避免在打字时有电话把输入框挤掉", - function() - if chat.is_open() then - if not menu.get_value(nophonespam) then - menu.set_value(nophonespam, true) - end - else - if menu.get_value(nophonespam) then - menu.set_value(nophonespam, false) - end - end - end, function() - menu.set_value(nophonespam, false) - end) -menu.toggle_loop(Other_Options, "跳到下一条对话", { "skip_talk" }, "快速跳过对话", function() - if AUDIO.IS_SCRIPTED_CONVERSATION_ONGOING() then - AUDIO.SKIP_TO_NEXT_SCRIPTED_CONVERSATION_LINE() - end -end) -menu.toggle_loop(Other_Options, "停止对话", { "stop_talk" }, "快速跳过对话", function() - if AUDIO.IS_SCRIPTED_CONVERSATION_ONGOING() then - AUDIO.STOP_SCRIPTED_CONVERSATION(false) - end -end) -menu.toggle_loop(Other_Options, "自动收集财物", { "auto_collect" }, "模拟鼠标左键点击,用于拿取目标财物时", function() - if TASK.GET_IS_TASK_ACTIVE(players.user_ped(), 135) then - PAD.SET_CONTROL_VALUE_NEXT_FRAME(0, 237, 1) - util.yield(30) - end -end) -menu.toggle_loop(Other_Options, "步行时第一/三人称快捷切换", { "foot_cam_view" }, "步行时第一人称视角和第三人称近距离视角快捷切换", function() - if CAM.IS_FOLLOW_PED_CAM_ACTIVE() then - if CAM.GET_FOLLOW_PED_CAM_VIEW_MODE() == 1 or CAM.GET_FOLLOW_PED_CAM_VIEW_MODE() == 2 then - CAM.SET_FOLLOW_PED_CAM_VIEW_MODE(4) - end - end -end) -menu.action(Other_Options, "清除帮助文本信息", { "cls_help_msg" }, "", function() - HUD.CLEAR_ALL_HELP_MESSAGES() -end) ---#endregion Options +local MENU_MODULES = { + "RScript.Menu.Self", + "RScript.Menu.Weapon", + "RScript.Menu.Vehicle", + "RScript.Menu.Entity", + "RScript.Menu.Mission", + "RScript.Menu.Online", + "RScript.Menu.Assistant", + "RScript.Menu.Bodyguard", + "RScript.Menu.Clean", + "RScript.Menu.Other", + "RScript.Menu.Dev", + "RScript.Menu.Player", +} + +for _, menu_module in ipairs(MENU_MODULES) do + require(menu_module) +end -------------------------------------------- ----------- Setting Options ---------- -------------------------------------------- +------------------------------------------ +-- Setting Options +------------------------------------------ local Setting_Options = menu.list(Menu_Root, "设置", {}, "") @@ -2611,8 +257,9 @@ menu.toggle(Setting_Options, "开发者模式", {}, "会多些通知", function( DEV_MODE = toggle setSetting("Dev Mode", toggle) end, getSetting("Dev Mode")) -menu.toggle(Setting_Options, "更改脚本入口位置", {}, "入口位置: Stand > 设置 上方\n下次启动脚本生效", - function(toggle) + +menu.toggle(Setting_Options, "更改脚本入口位置", {}, + "入口位置: Stand > 设置 上方\n下次启动脚本生效", function(toggle) setSetting("Change Script Entry", toggle) end, getSetting("Change Script Entry")) @@ -2620,22 +267,22 @@ menu.toggle(Setting_Options, "更改脚本入口位置", {}, "入口位置: Stan ------------------------------------------ ----------- About Options ---------- ------------------------------------------ +------------------------------------------ +-- About Options +------------------------------------------ local About_Options = menu.list(Menu_Root, "关于", {}, "") menu.readonly(About_Options, "Author", "Rostal") menu.hyperlink(About_Options, "Github", "https://github.com/TCRoid/Stand-Lua-RScript") menu.readonly(About_Options, "Version", SCRIPT_VERSION) -menu.readonly(About_Options, "Support GTAO Version", SUPPORT_GTAO) +menu.readonly(About_Options, "Support Game Version", SUPPORT_GAME_VERSION) menu.divider(About_Options, "Update") local About_LatestVersion = menu.readonly(About_Options, "Latest Version") menu.action(About_Options, "Check Update", {}, "Only check version", function() if not async_http.have_access() then - util.toast("本Lua被禁止联网") + util.toast("本 Lua 被限制禁止联网,请取消限制") return end menu.set_value(About_LatestVersion, "Checking...") @@ -2644,7 +291,7 @@ menu.action(About_Options, "Check Update", {}, "Only check version", function() if data == SCRIPT_VERSION then util.toast("当前为最新版本") else - util.toast("发现新版本?") + util.toast("疑似发现新版本?") end end, function() menu.set_value(About_LatestVersion, "") @@ -2655,191 +302,44 @@ end) - - - ----------------------------------------- ----------- Backend Loop ---------- ----------------------------------------- +------------------------------------------ +-- Backend Loop +------------------------------------------ util.create_tick_handler(function() ------------------------ -- Main ------------------------ - if Loop_Handler.Main.draw_centred_point then + if LoopHandler.Main.drawCentredPoint then draw_centred_point() end - ------------------------ - -- Self - ------------------------ - - if Loop_Handler.Self.defense_modifier.value and Loop_Handler.Self.defense_modifier.value ~= 1.0 then - Loop_Handler.Self.defense_modifier.callback(Loop_Handler.Self.defense_modifier.value) - end ------------------------ -- Tunables ------------------------ if IS_SCRIPT_RUNNING("tuneables_processing") then - local tunables = Loop_Handler.Tunables - - -------- Cooldown -------- - if tunables.Cooldown.SpecialCargo then - Globals.RemoveCooldown.SpecialCargo(true) - end - if tunables.Cooldown.VehicleCargo then - Globals.RemoveCooldown.VehicleCargo(true) - end - if tunables.Cooldown.AirFreightCargo then - Globals.RemoveCooldown.AirFreightCargo(true) - end - if tunables.Cooldown.PayphoneHitAndContract then - Globals.RemoveCooldown.PayphoneHitAndContract(true) - end - if tunables.Cooldown.CeoAbility then - Globals.RemoveCooldown.CeoAbility(true) - end - if tunables.Cooldown.CeoVehicle then - TUNABLE_SET_INT(Tunables.GB_CALL_VEHICLE_COOLDOWN, 0) - end - if tunables.Cooldown.OtherVehicle then - Globals.RemoveCooldown.OtherVehicle(true) - end - - -------- Special Cargo -------- - if tunables.SpecialCargo.Buy then - for global, value in pairs(tunables.SpecialCargo.Buy) do - if value then - GLOBAL_SET_INT(global, 1) - end - end - end - if tunables.SpecialCargo.Sell then - for global, value in pairs(tunables.SpecialCargo.Sell) do - if value then - GLOBAL_SET_INT(global, 1) - end - end - end - if tunables.SpecialCargo.Type_Refresh_Time and tunables.SpecialCargo.Type_Refresh_Time ~= 2880 then - TUNABLE_SET_INT(Tunables.EXEC_CONTRABAND_TYPE_REFRESH_TIME, tunables.SpecialCargo.Type_Refresh_Time) - end - if tunables.SpecialCargo.Special_Item_Chance and tunables.SpecialCargo.Special_Item_Chance ~= 0.1 then - TUNABLE_SET_FLOAT(Tunables.EXEC_CONTRABAND_SPECIAL_ITEM_CHANCE, tunables.SpecialCargo.Special_Item_Chance) - end - if tunables.SpecialCargo.NoWanted then - Globals.SpecialCargo.NoWanted(true) - end - - -------- Vehicle Cargo -------- - if tunables.VehicleCargo.NoWanted then - Globals.VehicleCargo.NoWanted(true) - end - if tunables.VehicleCargo.NoDamageReduction then - Globals.VehicleCargo.NoDamageReduction(true) - end - - -------- Bunker -------- - if tunables.Bunker.Resupply_Package_Value and tunables.Bunker.Resupply_Package_Value ~= 20 then - TUNABLE_SET_INT(Tunables.GR_RESUPPLY_PACKAGE_VALUE, tunables.Bunker.Resupply_Package_Value) - end - if tunables.Bunker.Resupply_Vehicle_Value and tunables.Bunker.Resupply_Vehicle_Value ~= 40 then - TUNABLE_SET_INT(Tunables.GR_RESUPPLY_VEHICLE_VALUE, tunables.Bunker.Resupply_Vehicle_Value) - end - if tunables.Bunker.Steal then - for global, value in pairs(tunables.Bunker.Steal) do - if value then - GLOBAL_SET_FLOAT(global, 0) - end - end - end - if tunables.Bunker.Sell then - for global, value in pairs(tunables.Bunker.Sell) do - if value then - GLOBAL_SET_FLOAT(global, 0) - end - end - end - - -------- Air Freight -------- - if tunables.AirFreight.Steal then - for global, value in pairs(tunables.AirFreight.Steal) do - if value then - GLOBAL_SET_FLOAT(global, 0) - end - end - end - if tunables.AirFreight.Sell then - for global, value in pairs(tunables.AirFreight.Sell) do - if value then - GLOBAL_SET_FLOAT(global, 0) - end - end - end - - -------- MC Factory -------- - if tunables.Biker.Resupply_Package_Value and tunables.Biker.Resupply_Package_Value ~= 20 then - TUNABLE_SET_INT(Tunables.BIKER_RESUPPLY_PACKAGE_VALUE, tunables.Biker.Resupply_Package_Value) - end - if tunables.Biker.Resupply_Vehicle_Value and tunables.Biker.Resupply_Vehicle_Value ~= 40 then - TUNABLE_SET_INT(Tunables.BIKER_RESUPPLY_VEHICLE_VALUE, tunables.Biker.Resupply_Vehicle_Value) - end - if tunables.Biker.Steal then - for global, value in pairs(tunables.Biker.Steal) do - if value then - GLOBAL_SET_FLOAT(global, 0) - end - end - end - if tunables.Biker.Sell then - for global, value in pairs(tunables.Biker.Sell) do - if value then - GLOBAL_SET_INT(global, 1) - end - end - end - if tunables.Biker.Contracts.MinPlayer then - Globals.Biker.Contracts.MinPlayer(true) - end + local tunables = LoopHandler.Tunables - -------- Acid Lab -------- - if tunables.AcidLab.Resupply_Crate_Value and tunables.AcidLab.Resupply_Crate_Value ~= 25 then - TUNABLE_SET_INT(Tunables.ACID_LAB_RESUPPLY_CRATE_VALUE, tunables.AcidLab.Resupply_Crate_Value) - end - - -------- Payphone -------- - if tunables.Payphone.Hit then - for global, value in pairs(tunables.Payphone.Hit) do - if value then - GLOBAL_SET_FLOAT(global, 0) - end - end - end - - -------- Misc -------- - if tunables.DisableBusinessRaid then - Globals.DisableBusinessRaid(true) - end if tunables.TurnSnow and tunables.TurnSnow ~= -1 then - TUNABLE_SET_INT(Tunables.TURN_SNOW_ON_OFF, tunables.TurnSnow) + Tunables.SetInt("TURN_SNOW_ON_OFF", tunables.TurnSnow) end - if tunables.AiHealth and tunables.AiHealth ~= 1.0 then - TUNABLE_SET_FLOAT(Tunables.AI_HEALTH, tunables.AiHealth) + if tunables.DisableStatCapCheck then + Tunables.SetInt("DISABLE_STAT_CAP_CHECK", 1) end - notify("tuneables_processing") end + ------------------------ -- Entity ------------------------ - local control_ent = Loop_Handler.Entity + local control_ent = LoopHandler.Entity -- 描绘实体连线 if control_ent.draw_line.toggle then @@ -2940,33 +440,24 @@ util.create_tick_handler(function() end end) -function Loop_Handler.draw_centred_point(toggle) - Loop_Handler.Main.draw_centred_point = toggle -end -function Loop_Handler.Entity.ClearToggles() - Loop_Handler.Entity.draw_line.toggle = false - Loop_Handler.Entity.show_info.toggle = false - Loop_Handler.Entity.draw_bounding_box.toggle = false - Loop_Handler.Entity.lock_tp.toggle = false - Loop_Handler.Entity.preview_ent.toggle = false -end ------------------------------------------------ ----------- Stop Script ---------- ------------------------------------------------ + + +------------------------------------------ +-- Stop Script +------------------------------------------ util.on_pre_stop(function() util.write_colons_file(SETTING_FILE, Setting) - - notify("本次脚本运行时长: " .. (util.current_time_millis() - SCRIPT_START_TIME) / 1000 .. " s") end) ---------------------------------------- ----------- END ---------- ---------------------------------------- + +---------------------------------------------------------- +-- END +---------------------------------------------------------- notify("脚本加载时间: " .. util.current_time_millis() - SCRIPT_START_TIME .. " ms") diff --git a/RScript2.lua b/RScript2.lua deleted file mode 100644 index d6fe410..0000000 --- a/RScript2.lua +++ /dev/null @@ -1,2212 +0,0 @@ --------------------------------- --- Author: Rostal --------------------------------- - -util.require_natives("3095a", "init") - -local SCRIPT_VERSION = "2023/12/23" - -local SUPPORT_GTAO = 1.68 - - - --------------------------------------- ----------- File & Dir ---------- --------------------------------------- - --- Lib -local SCRIPT_LIB_DIR = filesystem.scripts_dir() .. "lib\\RScript\\" -local REQUIRED_FILES = { - "Tables.lua", - "alternatives.lua", - "functions.lua", - "functions2.lua", - "libs2.lua", - "utils.lua", - "Menu\\Player.lua", -} -for _, file in pairs(REQUIRED_FILES) do - local file_path = SCRIPT_LIB_DIR .. file - if not filesystem.exists(file_path) then - util.toast("[RScript] 缺少文件: " .. file_path, TOAST_ALL) - util.toast("脚本已停止运行") - util.stop_script() - end -end - --- Require -require "RScript.Tables" -require "RScript.alternatives" -require "RScript.functions" -require "RScript.functions2" -require "RScript.libs2" -require "RScript.utils" - - - - - -local Tunables = { - XM22_GUN_VAN_SLOT_WEAPON_TYPE_0 = 34328, - - -- Contact Mission - CONTACT_MISSION_TIME_PERIOD_1 = 8529, - CONTACT_MISSION_CASH_TIME_PERIOD_1_PERCENTAGE = 8538, - CONTACT_MISSION_CASH_PLAYER_MULTIPLIER_1 = 8545, - CONTACT_MISSION_CASH_DIFFICULTY_MULTIPLIER_EASY = 8556, - CONTACT_MISSION_FAIL_CASH_TIME_PERIOD_2_DIVIDER = 8560, - CONTACT_MISSION_RP_TIME_PERIOD_1_PERCENTAGE = 8580, - CONTACT_MISSION_RP_DIFFICULTY_MULTIPLIER_EASY = 8591, - CONTACT_MISSION_FAIL_RP_TIME_PERIOD_2_DIVIDER = 8570, - - -- Health & Armour - MAX_HEALTH_MULTIPLIER = 107, - HEALTH_REGEN_RATE_MULTIPLIER = 109, - HEALTH_REGEN_MAX_MULTIPLIER = 110, - MAX_ARMOR_MULTIPLIER = 112, - - CasinoHeist = { - TargetWeighting = { - 29086, -- CH_VAULT_WEIGHTING_CASH - 29087, -- CH_VAULT_WEIGHTING_ART - 29088, -- CH_VAULT_WEIGHTING_GOLD - 29089, -- CH_VAULT_WEIGHTING_DIAMONDS - }, - }, - - PericoHeist = { - TargetWeighting = { - 30188, -- H4_TARGET_WEIGHTING_TEQUILA - 30189, -- H4_TARGET_WEIGHTING_PEARL_NECKLACE - 30190, -- H4_TARGET_WEIGHTING_BEARER_BONDS - 30191, -- H4_TARGET_WEIGHTING_PINK_DIAMOND - 30192, -- H4_TARGET_WEIGHTING_SAPPHIRE_PANTHER_STATUE - }, - }, -} - - -local Globals = { - GunVanSpawnPoint = 1948900, -} - - -local Loop_Handler = { - Tunables = { - ContactMission = {}, - }, -} - - - - - ---------------------------------------------- ----------- Script Menu Start ---------- ---------------------------------------------- - -if not SCRIPT_SILENT_START then - local GTAO = tonumber(NETWORK.GET_ONLINE_VERSION()) - if SUPPORT_GTAO ~= GTAO then - util.toast("支持的GTA线上版本: " .. SUPPORT_GTAO .. "\n当前GTA线上版本: " .. GTAO) - end -end - - - -Menu_Root = menu.my_root() - -menu.divider(Menu_Root, "RScript2") - - - - ----------------------------------------------- ----------- Nearby Ped Options ---------- ----------------------------------------------- - -local Nearby_Ped_Options = menu.list(Menu_Root, "附近NPC选项", {}, "") - ---#region Nearby Ped Options - -local NearbyPed = { - can_handler_run = false, - is_handler_runing = false, - - setting = { - radius = 60.0, - ped_select = 1, - time_delay = 1000, - exclude_ped_in_vehicle = true, - exclude_friendly = true, - exclude_mission = true, - exclude_dead = true, - }, - toggles = {}, - data = { - forward_degree = 30, - drop_money_amount = 100, - weapon_hash = 4130548542, - launch_height = 30.0, - force_field = { - strength = 1.0, - direction = 1, - ragdoll = true, - }, - }, - callback = {}, -} - -function NearbyPed.CheckPed(ped) - -- 排除 玩家 - if is_player_ped(ped) then - return false - end - -- 排除 载具内NPC - if NearbyPed.setting.exclude_ped_in_vehicle and PED.IS_PED_IN_ANY_VEHICLE(ped, false) then - return false - end - -- 排除 友好NPC - if NearbyPed.setting.exclude_friendly and is_friendly_ped(ped) then - return false - end - -- 排除 任务NPC - if NearbyPed.setting.exclude_mission and ENTITY.IS_ENTITY_A_MISSION_ENTITY(ped) then - return false - end - -- 排除 已死亡实体 - if NearbyPed.setting.exclude_dead and ENTITY.IS_ENTITY_DEAD(ped) then - return false - end - -- 敌对NPC - if NearbyPed.setting.ped_select == 2 and not is_hostile_ped(ped) then - return false - end - - return true -end - -function NearbyPed.GetPeds() - local peds = {} - local player_pos = ENTITY.GET_ENTITY_COORDS(players.user_ped()) - local radius = NearbyPed.setting.radius - - for k, ent in pairs(entities.get_all_peds_as_handles()) do - local ped = 0 - - local ent_pos = ENTITY.GET_ENTITY_COORDS(ent) - if radius <= 0 then - ped = ent - elseif v3.distance(player_pos, ent_pos) <= radius then - ped = ent - end - - if ped ~= 0 and NearbyPed.CheckPed(ped) then - table.insert(peds, ped) - end - end - return peds -end - -function NearbyPed.ToggleChanged(key, toggle) - NearbyPed.toggles[key] = toggle - - NearbyPed.TickHandler() -end - -function NearbyPed.TickHandler() - local is_all_false = true - for key, bool in pairs(NearbyPed.toggles) do - if bool then - is_all_false = false - break - end - end - if is_all_false then - NearbyPed.can_handler_run = false - else - if not NearbyPed.is_handler_running then - NearbyPed.can_handler_run = true - NearbyPed.ControlPeds() - end - end -end - -function NearbyPed.ControlPeds() - util.create_tick_handler(function() - if not NearbyPed.can_handler_run then - NearbyPed.is_handler_running = false - util.log("[RScript] Control Nearby Peds: Stop Tick Handler") - return false - end - - NearbyPed.is_handler_runing = true - - for _, ped in pairs(NearbyPed.GetPeds()) do - request_control(ped) - - for key, bool in pairs(NearbyPed.toggles) do - if bool then - if NearbyPed.callback[key] ~= nil then - NearbyPed.callback[key](ped) - end - end - end - end - - util.yield(NearbyPed.setting.time_delay) - end) -end - -menu.slider_float(Nearby_Ped_Options, "范围半径", { "radius_nearby_ped" }, - "若半径是0, 则为全部范围", 0, 100000, 6000, 1000, function(value) - NearbyPed.setting.radius = value * 0.01 - end) -menu.toggle_loop(Nearby_Ped_Options, "绘制范围", {}, "", function() - local coords = ENTITY.GET_ENTITY_COORDS(players.user_ped()) - DRAW_MARKER_SPHERE(coords, NearbyPed.setting.radius) -end) -menu.list_select(Nearby_Ped_Options, "NPC类型", {}, "", { - { "全部NPC", {}, "" }, - { "敌对NPC", {}, "" }, -}, 1, function(value) - NearbyPed.setting.ped_select = value -end) - - ---#region Nearby Ped Setting - -local Nearby_Ped_Setting = menu.list(Nearby_Ped_Options, "设置", {}, "") - -menu.slider(Nearby_Ped_Setting, "循环时间间隔", { "delay_nearby_ped" }, "单位: ms", - 0, 5000, 1000, 100, function(value) - NearbyPed.setting.time_delay = value - end) -menu.divider(Nearby_Ped_Setting, "排除") -menu.toggle(Nearby_Ped_Setting, "排除 载具内NPC", {}, "", function(toggle) - NearbyPed.setting.exclude_ped_in_vehicle = toggle -end, true) -menu.toggle(Nearby_Ped_Setting, "排除 友好NPC", {}, "", function(toggle) - NearbyPed.setting.exclude_friendly = toggle -end, true) -menu.toggle(Nearby_Ped_Setting, "排除 任务NPC", {}, "", function(toggle) - NearbyPed.setting.exclude_mission = toggle -end, true) -menu.toggle(Nearby_Ped_Setting, "排除 已死亡实体", {}, "", function(toggle) - NearbyPed.setting.exclude_dead = toggle -end, true) - ---#endregion Nearby Ped Setting - - - ---#region Nearby Ped Trolling - -local Nearby_Ped_Trolling = menu.list(Nearby_Ped_Options, "恶搞选项", {}, "") - --------------------- --- Delay Loop --------------------- - -menu.slider(Nearby_Ped_Trolling, "推进程度", { "nearby_ped_forward_degree" }, "", - 0, 1000, 30, 10, function(value) - NearbyPed.data.forward_speed = value - end) -menu.toggle(Nearby_Ped_Trolling, "设置向前推进", {}, "", function(toggle) - NearbyPed.ToggleChanged("force_forward", toggle) - - NearbyPed.callback["force_forward"] = function(ped) - ENTITY.SET_ENTITY_MAX_SPEED(ped, 99999) - local vector = ENTITY.GET_ENTITY_FORWARD_VECTOR(ped) - local force = Vector.mult(vector, NearbyPed.data.forward_degree) - ENTITY.APPLY_FORCE_TO_ENTITY(ped, - 1, - force.x, force.y, force.z, - 0.0, 0.0, 0.0, - 1, - false, true, true, true, true) - end -end) -menu.toggle(Nearby_Ped_Trolling, "丢弃武器", {}, "", function(toggle) - NearbyPed.ToggleChanged("drop_weapon", toggle) - - NearbyPed.callback["drop_weapon"] = function(ped) - WEAPON.SET_PED_DROPS_WEAPONS_WHEN_DEAD(ped) - WEAPON.SET_PED_AMMO_TO_DROP(ped, 9999) - WEAPON.SET_PED_DROPS_WEAPON(ped) - end -end) -menu.toggle(Nearby_Ped_Trolling, "爆头", {}, "", function(toggle) - NearbyPed.ToggleChanged("explode_head", toggle) - - NearbyPed.callback["explode_head"] = function(ped) - local weaponHash = util.joaat("WEAPON_APPISTOL") - PED.EXPLODE_PED_HEAD(ped, weaponHash) - end -end) -menu.toggle(Nearby_Ped_Trolling, "摔倒", {}, "", function(toggle) - NearbyPed.ToggleChanged("ragdoll", toggle) - - NearbyPed.callback["ragdoll"] = function(ped) - PED.SET_PED_TO_RAGDOLL(ped, 500, 500, 0, false, false, false) - end -end) -menu.toggle(Nearby_Ped_Trolling, "忽略临时事件", {}, "", function(toggle) - NearbyPed.ToggleChanged("block_temporary", toggle) - - NearbyPed.callback["block_temporary"] = function(ped) - PED.SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(ped, true) - TASK.TASK_SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(ped, true) - PED.SET_BLOCKING_OF_NON_TEMPORARY_EVENTS_FOR_AMBIENT_PEDS_THIS_FRAME(true) - end -end) -menu.toggle(Nearby_Ped_Trolling, "清除任务", {}, "", function(toggle) - NearbyPed.ToggleChanged("clear_task", toggle) - - NearbyPed.callback["clear_task"] = function(ped) - TASK.CLEAR_PED_TASKS(ped) - TASK.CLEAR_DEFAULT_PRIMARY_TASK(ped) - TASK.CLEAR_PED_SECONDARY_TASK(ped) - end -end) -menu.toggle(Nearby_Ped_Trolling, "立即清除任务", {}, "", function(toggle) - NearbyPed.ToggleChanged("clear_task_immediately", toggle) - - NearbyPed.callback["clear_task_immediately"] = function(ped) - TASK.CLEAR_PED_TASKS_IMMEDIATELY(ped) - end -end) - - --------------------- --- Once --------------------- - -menu.divider(Nearby_Ped_Trolling, "") - -menu.slider(Nearby_Ped_Trolling, "上天高度", { "nearby_ped_launch" }, "", - 0, 1000, 30, 10, function(value) - NearbyPed.data.launch_height = value - end) -menu.action(Nearby_Ped_Trolling, "发射上天", {}, "", function() - for k, ped in pairs(NearbyPed.GetPeds()) do - ENTITY.APPLY_FORCE_TO_ENTITY(ped, - 1, - 0.0, 0.0, NearbyPed.data.launch_height, - 0.0, 0.0, 0.0, - 0, - false, false, true, false, false) - end -end) -menu.action(Nearby_Ped_Trolling, "坠落爆炸", {}, "", function() - for k, ped in pairs(NearbyPed.GetPeds()) do - util.create_thread(function() - fall_entity_explosion(ped) - end) - end -end) - - --------------------- --- No Delay Loop --------------------- - -menu.divider(Nearby_Ped_Trolling, "力场") - -menu.slider_float(Nearby_Ped_Trolling, "强度", { "nearby_ped_forcefield_strength" }, "", - 100, 10000, 100, 100, function(value) - NearbyPed.data.force_field.strength = value * 0.01 - end) -menu.textslider_stateful(Nearby_Ped_Trolling, "方向", {}, "", { "推开", "拉进" }, function(value) - NearbyPed.data.force_field.direction = value -end) -menu.toggle(Nearby_Ped_Trolling, "摔倒", {}, "", function(toggle) - NearbyPed.data.force_field.ragdoll = toggle -end, true) -menu.toggle_loop(Nearby_Ped_Trolling, "开启力场", {}, "", function() - for k, ped in pairs(NearbyPed.GetPeds()) do - local force = ENTITY.GET_ENTITY_COORDS(ped) - v3.sub(force, ENTITY.GET_ENTITY_COORDS(players.user_ped())) - v3.normalise(force) - v3.mul(force, NearbyPed.data.force_field.strength) - - if NearbyPed.data.force_field.direction == 2 then - v3.mul(force, -1) - end - if NearbyPed.data.force_field.ragdoll then - PED.SET_PED_TO_RAGDOLL(ped, 500, 500, 0, false, false, false) - end - ENTITY.APPLY_FORCE_TO_ENTITY(ped, - 3, - force.x, force.y, force.z, - 0, 0, 0.5, - 0, - false, false, true, false, false) - end -end) - ---#endregion Nearby Ped Trolling - - - ---#region Nearby Ped Friendly - -local Nearby_Ped_Friendly = menu.list(Nearby_Ped_Options, "友好选项", {}, "") - --------------------- --- Delay Loop --------------------- - -menu.slider(Nearby_Ped_Friendly, "现金数量", { "nearby_ped_drop_money_amonut" }, "", - 0, 2000, 100, 100, function(value) - NearbyPed.data.drop_money_amount = value - end) -menu.toggle(Nearby_Ped_Friendly, "设置掉落现金", {}, "", function(toggle) - NearbyPed.ToggleChanged("drop_money", toggle) - - NearbyPed.callback["drop_money"] = function(ped) - PED.SET_PED_MONEY(ped, NearbyPed.data.drop_money_amount) - PED.SET_AMBIENT_PEDS_DROP_MONEY(true) - end -end) -menu.list_select(Nearby_Ped_Friendly, "武器", {}, "", RS_T.CommonWeapons, RS_T.CommonWeapons[1][1], function(value) - NearbyPed.data.weapon_hash = value -end) -menu.toggle(Nearby_Ped_Friendly, "给予武器", {}, "", function(toggle) - NearbyPed.ToggleChanged("give_weapon", toggle) - - NearbyPed.callback["give_weapon"] = function(ped) - WEAPON.GIVE_WEAPON_TO_PED(ped, NearbyPed.data.weapon_hash, -1, false, true) - WEAPON.SET_CURRENT_PED_WEAPON(ped, NearbyPed.data.weapon_hash, false) - end -end) - ---#endregion Nearby Ped Friendly - - - ---#region Nearby Ped Combat - -local Nearby_Ped_Combat = menu.list(Nearby_Ped_Options, "作战能力选项", {}, "") - -NearbyPed.Combat = { - health = 100, - investigate = 1, - weapon = 1, - ability = 1, - range = 1, - movement = 1, - target_loss_response = 1, - behavior = 1, -} - -menu.toggle_loop(Nearby_Ped_Combat, "设置作战能力", {}, "", function() - local combat_data = NearbyPed.Combat - - for k, ped in pairs(NearbyPed.GetPeds()) do - -- 生命值 - if combat_data.health >= 100 then - SET_ENTITY_HEALTH(ped, combat_data.health) - end - -- 侦查能力 - if combat_data.investigate > 1 then - if combat_data.investigate == 2 then - -- 弱化 - PED.SET_PED_SEEING_RANGE(ped, 0) - PED.SET_PED_HEARING_RANGE(ped, 0) - PED.SET_PED_ID_RANGE(ped, 0) - - PED.SET_PED_VISUAL_FIELD_PERIPHERAL_RANGE(ped, 0) - PED.SET_PED_VISUAL_FIELD_MIN_ANGLE(ped, 0) - PED.SET_PED_VISUAL_FIELD_MAX_ANGLE(ped, 0) - PED.SET_PED_VISUAL_FIELD_MIN_ELEVATION_ANGLE(ped, 0) - PED.SET_PED_VISUAL_FIELD_MAX_ELEVATION_ANGLE(ped, 0) - PED.SET_PED_VISUAL_FIELD_CENTER_ANGLE(ped, 0) - - PED.SET_PED_HIGHLY_PERCEPTIVE(ped, false) - - PED.SET_PED_COMBAT_ATTRIBUTES(ped, 14, false) -- CA_CAN_INVESTIGATE - PED.SET_PED_COMBAT_ATTRIBUTES(ped, 79, false) -- CA_WILL_GENERATE_DEAD_PED_SEEN_SCRIPT_EVENTS - PED.SET_PED_COMBAT_ATTRIBUTES(ped, 80, false) -- CA_USE_MAX_SENSE_RANGE_WHEN_RECEIVING_EVENTS - - PED.SET_COMBAT_FLOAT(ped, 14, 0) -- CCF_BULLET_IMPACT_DETECTION_RANGE - PED.SET_COMBAT_FLOAT(ped, 21, 0) -- CCF_MAX_DISTANCE_TO_HEAR_EVENTS - PED.SET_COMBAT_FLOAT(ped, 22, 0) -- CCF_MAX_DISTANCE_TO_HEAR_EVENTS_USING_LOS - - PED.SET_PED_CONFIG_FLAG(ped, 213, false) -- PCF_ListensToSoundEvents - PED.SET_PED_CONFIG_FLAG(ped, 294, true) -- PCF_DisableShockingEvents - PED.SET_PED_CONFIG_FLAG(ped, 315, false) -- PCF_CheckLoSForSoundEvents - else - -- 强化 - PED.SET_PED_SEEING_RANGE(ped, 500) - PED.SET_PED_HEARING_RANGE(ped, 500) - PED.SET_PED_ID_RANGE(ped, 500) - - PED.SET_PED_VISUAL_FIELD_PERIPHERAL_RANGE(ped, 100) - PED.SET_PED_VISUAL_FIELD_MIN_ANGLE(ped, 90) - PED.SET_PED_VISUAL_FIELD_MAX_ANGLE(ped, 90) - PED.SET_PED_VISUAL_FIELD_MIN_ELEVATION_ANGLE(ped, 90) - PED.SET_PED_VISUAL_FIELD_MAX_ELEVATION_ANGLE(ped, 90) - PED.SET_PED_VISUAL_FIELD_CENTER_ANGLE(ped, 90) - - PED.SET_PED_HIGHLY_PERCEPTIVE(ped, true) - - PED.SET_PED_COMBAT_ATTRIBUTES(ped, 14, true) -- CA_CAN_INVESTIGATE - PED.SET_PED_COMBAT_ATTRIBUTES(ped, 79, true) -- CA_WILL_GENERATE_DEAD_PED_SEEN_SCRIPT_EVENTS - PED.SET_PED_COMBAT_ATTRIBUTES(ped, 80, true) -- CA_USE_MAX_SENSE_RANGE_WHEN_RECEIVING_EVENTS - - PED.SET_COMBAT_FLOAT(ped, 14, 100) -- CCF_BULLET_IMPACT_DETECTION_RANGE - PED.SET_COMBAT_FLOAT(ped, 21, 100) -- CCF_MAX_DISTANCE_TO_HEAR_EVENTS - PED.SET_COMBAT_FLOAT(ped, 22, 100) -- CCF_MAX_DISTANCE_TO_HEAR_EVENTS_USING_LOS - - PED.SET_PED_CONFIG_FLAG(ped, 213, true) -- PCF_ListensToSoundEvents - PED.SET_PED_CONFIG_FLAG(ped, 294, false) -- PCF_DisableShockingEvents - PED.SET_PED_CONFIG_FLAG(ped, 315, true) -- PCF_CheckLoSForSoundEvents - end - end - -- 武器能力 - if combat_data.weapon > 1 then - if combat_data.weapon == 2 then - -- 弱化 - PED.SET_PED_ACCURACY(ped, 0) - PED.SET_PED_SHOOT_RATE(ped, 0) - PED.SET_PED_COMBAT_ATTRIBUTES(ped, 27, false) -- CA_PERFECT_ACCURACY - PED.SET_COMBAT_FLOAT(ped, 6, 0) -- CCF_WEAPON_ACCURACY - else - -- 强化 - PED.SET_PED_ACCURACY(ped, 100) - PED.SET_PED_SHOOT_RATE(ped, 1000) - PED.SET_PED_COMBAT_ATTRIBUTES(ped, 27, true) -- CA_PERFECT_ACCURACY - PED.SET_COMBAT_FLOAT(ped, 6, 1.0) -- CCF_WEAPON_ACCURACY - end - end - -- 作战技能 - if combat_data.ability > 1 then - PED.SET_PED_COMBAT_ABILITY(ped, combat_data.ability - 2) - end - -- 作战范围 - if combat_data.range > 1 then - PED.SET_PED_COMBAT_RANGE(ped, combat_data.range - 2) - end - -- 作战走位 - if combat_data.movement > 1 then - PED.SET_PED_COMBAT_MOVEMENT(ped, combat_data.movement - 2) - end - -- 失去目标时反应 - if combat_data.target_loss_response > 1 then - PED.SET_PED_TARGET_LOSS_RESPONSE(ped, combat_data.target_loss_response - 2) - end - -- 其它行为 - if NearbyPed.Combat.behavior == 2 then - PED.STOP_PED_WEAPON_FIRING_WHEN_DROPPED(ped) - PED.DISABLE_PED_INJURED_ON_GROUND_BEHAVIOUR(ped) - PED.REMOVE_PED_DEFENSIVE_AREA(ped, false) - end - end - - util.yield(NearbyPed.setting.time_delay) -end) - -menu.divider(Nearby_Ped_Combat, "设置") -menu.slider(Nearby_Ped_Combat, "生命值", { "nearby_ped_combat_health" }, "数值低于100则不进行修改", - 0, 10000, 100, 100, function(value) - NearbyPed.Combat.health = value - end) -menu.list_select(Nearby_Ped_Combat, "侦查能力", {}, - "视力、听力、识别、锥形视野、视野角度、高度警觉性 等等", { - { "无操作", {}, "" }, - { "弱化", {}, "" }, - { "强化", {}, "" }, - }, 1, function(value) - NearbyPed.Combat.investigate = value - end) -menu.list_select(Nearby_Ped_Combat, "武器能力", {}, - "精准度、射击频率", { - { "无操作", {}, "" }, - { "弱化", {}, "" }, - { "强化", {}, "" }, - }, 1, function(value) - NearbyPed.Combat.weapon = value - end) -menu.list_select(Nearby_Ped_Combat, "作战技能", {}, "", { - "无操作", "弱", "普通", "专业" -}, 1, function(value) - NearbyPed.Combat.ability = value -end) -menu.list_select(Nearby_Ped_Combat, "作战范围", {}, "", { - "无操作", "近", "中等", "远", "非常远" -}, 1, function(value) - NearbyPed.Combat.range = value -end) -menu.list_select(Nearby_Ped_Combat, "作战走位", {}, "", { - "无操作", "站立", "防卫", "会前进", "会后退" -}, 1, function(value) - NearbyPed.Combat.movement = value -end) -menu.list_select(Nearby_Ped_Combat, "失去目标时反应", {}, "", { - "无操作", "退出战斗", "从不失去目标", "寻找目标" -}, 1, function(value) - NearbyPed.Combat.target_loss_response = value -end) -menu.list_select(Nearby_Ped_Combat, "其它行为", {}, - "武器掉落时走火、受伤时在地面打滚、防卫区域", { - { "无操作", {}, "" }, - { "禁用", {}, "" }, - }, 1, function(value) - NearbyPed.Combat.behavior = value - end) - ---#endregion Nearby Ped Combat - - ---#endregion Nearby Ped Options - - - - --------------------------------------------------- ----------- Nearby Vehicle Options ---------- --------------------------------------------------- - -local Nearby_Vehicle_Options = menu.list(Menu_Root, "附近载具选项", {}, "") - ---#region Nearby Vehicle Options - -local NearbyVehicle = { - can_handler_run = false, - is_handler_runing = false, - - setting = { - radius = 60.0, - vehicle_select = 1, - time_delay = 1000, - exclude_player = true, - exclude_mission = true, - exclude_dead = true, - }, - toggles = {}, - data = { - forward_speed = 30, - max_speed = 0, - alpha = 0, - force_field = 1.0, - launch_height = 30.0, - }, - callback = {}, -} - -function NearbyVehicle.CheckVehicle(vehicle) - -- 排除 玩家载具 - if NearbyVehicle.setting.exclude_player and is_player_vehicle(vehicle) then - return false - end - -- 排除 任务载具 - if NearbyVehicle.setting.exclude_mission and ENTITY.IS_ENTITY_A_MISSION_ENTITY(vehicle) then - return false - end - -- 排除 已死亡实体 - if NearbyVehicle.setting.exclude_dead and ENTITY.IS_ENTITY_DEAD(vehicle) then - return false - end - -- NPC载具 - if NearbyVehicle.setting.vehicle_select == 2 then - local driver = VEHICLE.GET_PED_IN_VEHICLE_SEAT(vehicle, -1, false) - if not ENTITY.IS_ENTITY_A_PED(driver) then - return false - end - end - -- 敌对载具 - if NearbyVehicle.setting.vehicle_select == 3 and not is_hostile_entity(vehicle) then - return false - end - -- 空载具 - if NearbyVehicle.setting.vehicle_select == 4 and not VEHICLE.IS_VEHICLE_SEAT_FREE(vehicle, -1, false) then - return false - end - - return true -end - -function NearbyVehicle.GetVehicles() - local vehicles = {} - local player_pos = ENTITY.GET_ENTITY_COORDS(players.user_ped()) - local radius = NearbyVehicle.setting.radius - - for k, ent in pairs(entities.get_all_vehicles_as_handles()) do - local vehicle = 0 - - local ent_pos = ENTITY.GET_ENTITY_COORDS(ent) - if radius <= 0 then - vehicle = ent - elseif v3.distance(player_pos, ent_pos) <= radius then - vehicle = ent - end - - if vehicle ~= 0 and NearbyVehicle.CheckVehicle(vehicle) then - table.insert(vehicles, vehicle) - end - end - - return vehicles -end - -function NearbyVehicle.ToggleChanged(key, toggle) - NearbyVehicle.toggles[key] = toggle - - NearbyVehicle.TickHandler() -end - -function NearbyVehicle.SelectChanged(key, value) - if value == 1 then - NearbyVehicle.toggles[key] = false - else - NearbyVehicle.toggles[key] = true - end - - NearbyVehicle.TickHandler() -end - -function NearbyVehicle.TickHandler() - local is_all_false = true - for key, bool in pairs(NearbyVehicle.toggles) do - if bool then - is_all_false = false - break - end - end - if is_all_false then - NearbyVehicle.can_handler_run = false - else - if not NearbyVehicle.is_handler_running then - NearbyVehicle.can_handler_run = true - NearbyVehicle.ControlVehicles() - end - end -end - -function NearbyVehicle.ControlVehicles() - util.create_tick_handler(function() - if not NearbyVehicle.can_handler_run then - NearbyVehicle.is_handler_running = false - util.log("[RScript] Control Nearby Vehicles: Stop Tick Handler") - return false - end - - NearbyVehicle.is_handler_running = true - - for _, vehicle in pairs(NearbyVehicle.GetVehicles()) do - request_control(vehicle) - - for key, bool in pairs(NearbyVehicle.toggles) do - if bool then - if NearbyVehicle.callback[key] ~= nil then - NearbyVehicle.callback[key](vehicle) - end - end - end - end - - util.yield(NearbyVehicle.setting.time_delay) - end) -end - -menu.slider_float(Nearby_Vehicle_Options, "范围半径", { "radius_nearby_vehicle" }, - "若半径是0, 则为全部范围", 0, 100000, 6000, 1000, function(value) - NearbyVehicle.setting.radius = value * 0.01 - end) -menu.toggle_loop(Nearby_Vehicle_Options, "绘制范围", {}, "", function() - local coords = ENTITY.GET_ENTITY_COORDS(players.user_ped()) - DRAW_MARKER_SPHERE(coords, NearbyVehicle.setting.radius) -end) - -menu.list_select(Nearby_Vehicle_Options, "载具类型", {}, "", { - { "全部载具", {}, "" }, - { "NPC载具", {}, "有NPC作为司机驾驶的载具" }, - { "敌对载具", {}, "有敌对地图标记点或敌对NPC驾驶的载具" }, - { "空载具", {}, "无人驾驶的载具" }, -}, 1, function(value) - NearbyVehicle.setting.vehicle_select = value -end) - - ---#region Nearby Vehicle Setting - -local Nearby_Vehicle_Setting = menu.list(Nearby_Vehicle_Options, "设置", {}, "") - -menu.slider(Nearby_Vehicle_Setting, "循环时间间隔", { "delay_nearby_vehicle" }, "单位: ms", - 0, 5000, 1000, 100, function(value) - NearbyVehicle.setting.time_delay = value - end) -menu.divider(Nearby_Vehicle_Setting, "排除") -menu.toggle(Nearby_Vehicle_Setting, "排除 玩家载具", {}, "", function(toggle) - NearbyVehicle.setting.exclude_player = toggle -end, true) -menu.toggle(Nearby_Vehicle_Setting, "排除 任务载具", {}, "", function(toggle) - NearbyVehicle.setting.exclude_mission = toggle -end, true) -menu.toggle(Nearby_Vehicle_Setting, "排除 已死亡实体", {}, "", function(toggle) - NearbyVehicle.setting.exclude_dead = toggle -end, true) - ---#endregion Nearby Vehicle Setting - - - ---#region Nearby Vehicle Trolling - -local Nearby_Vehicle_Trolling = menu.list(Nearby_Vehicle_Options, "恶搞选项", {}, "") - ----------------------- --- Delay Loop ----------------------- - -menu.toggle(Nearby_Vehicle_Trolling, "移除无敌", {}, "", function(toggle) - NearbyVehicle.ToggleChanged("remove_godmode", toggle) - - NearbyVehicle.callback["remove_godmode"] = function(vehicle) - set_entity_godmode(vehicle, false) - end -end) -menu.list_select(Nearby_Vehicle_Trolling, "车门", {}, "", { - "无操作", "打开", "拆下", "删除" -}, 1, function(value) - NearbyVehicle.SelectChanged("door", value) - - if value == 2 then - NearbyVehicle.callback["door"] = function(vehicle) - for i = 0, 3 do - if VEHICLE.GET_IS_DOOR_VALID(vehicle, i) then - VEHICLE.SET_VEHICLE_DOOR_OPEN(vehicle, i, false, false) - end - end - end - elseif value == 3 then - NearbyVehicle.callback["door"] = function(vehicle) - for i = 0, 3 do - if VEHICLE.GET_IS_DOOR_VALID(vehicle, i) then - VEHICLE.SET_VEHICLE_DOOR_BROKEN(vehicle, i, false) - end - end - end - elseif value == 4 then - NearbyVehicle.callback["door"] = function(vehicle) - for i = 0, 3 do - if VEHICLE.GET_IS_DOOR_VALID(vehicle, i) then - VEHICLE.SET_VEHICLE_DOOR_BROKEN(vehicle, i, true) - end - end - end - end -end) -menu.list_select(Nearby_Vehicle_Trolling, "车窗", {}, "", { - "无操作", "删除", "破坏" -}, 1, function(value) - NearbyVehicle.SelectChanged("window", value) - - if value == 2 then - NearbyVehicle.callback["window"] = function(vehicle) - for i = 0, 7 do - VEHICLE.REMOVE_VEHICLE_WINDOW(vehicle, i) - end - end - elseif value == 3 then - NearbyVehicle.callback["window"] = function(vehicle) - for i = 0, 7 do - VEHICLE.SMASH_VEHICLE_WINDOW(vehicle, i) - end - end - end -end) -menu.toggle(Nearby_Vehicle_Trolling, "破坏引擎", {}, "", function(toggle) - NearbyVehicle.ToggleChanged("kill_engine", toggle) - - NearbyVehicle.callback["kill_engine"] = function(vehicle) - VEHICLE.SET_VEHICLE_ENGINE_HEALTH(vehicle, -4000) - end -end) -menu.toggle(Nearby_Vehicle_Trolling, "爆胎", {}, "", function(toggle) - NearbyVehicle.ToggleChanged("burst_tyre", toggle) - - NearbyVehicle.callback["burst_tyre"] = function(vehicle) - for i = 0, 5 do - if not VEHICLE.IS_VEHICLE_TYRE_BURST(vehicle, i, true) then - VEHICLE.SET_VEHICLE_TYRE_BURST(vehicle, i, true, 1000.0) - end - end - end -end) -menu.toggle(Nearby_Vehicle_Trolling, "布满灰尘", {}, "", function(toggle) - NearbyVehicle.ToggleChanged("full_dirt", toggle) - - NearbyVehicle.callback["full_dirt"] = function(vehicle) - VEHICLE.SET_VEHICLE_DIRT_LEVEL(vehicle, 15.0) - end -end) -menu.toggle(Nearby_Vehicle_Trolling, "分离车轮", {}, "", function(toggle) - NearbyVehicle.ToggleChanged("detach_wheel", toggle) - - NearbyVehicle.callback["detach_wheel"] = function(vehicle) - for i = 0, 5 do - entities.detach_wheel(vehicle, i) - end - end -end) -menu.toggle(Nearby_Vehicle_Trolling, "司机跳出载具", {}, "", function(toggle) - NearbyVehicle.ToggleChanged("leave_vehicle", toggle) - - NearbyVehicle.callback["leave_vehicle"] = function(vehicle) - local ped = VEHICLE.GET_PED_IN_VEHICLE_SEAT(vehicle, -1) - if ped ~= 0 and not TASK.GET_IS_TASK_ACTIVE(ped, 176) then - TASK.TASK_LEAVE_VEHICLE(ped, vehicle, 4160) - end - end -end) -menu.list_select(Nearby_Vehicle_Trolling, "爆炸", {}, "", { - "无操作", "匿名爆炸", "署名爆炸" -}, 1, function(value) - NearbyVehicle.SelectChanged("explosion", value) - - if value == 2 then - NearbyVehicle.callback["explosion"] = function(vehicle) - local pos = ENTITY.GET_ENTITY_COORDS(vehicle) - add_explosion(pos) - end - elseif value == 3 then - NearbyVehicle.callback["explosion"] = function(vehicle) - local pos = ENTITY.GET_ENTITY_COORDS(vehicle) - add_owned_explosion(players.user_ped(), pos) - end - end -end) - -menu.slider(Nearby_Vehicle_Trolling, "加速度", { "nearby_veh_forward_speed" }, "", - 0, 1000, 30, 10, function(value) - NearbyVehicle.data.forward_speed = value - end) -menu.toggle(Nearby_Vehicle_Trolling, "设置向前加速", {}, "", function(toggle) - NearbyVehicle.ToggleChanged("forward_speed", toggle) - - NearbyVehicle.callback["forward_speed"] = function(vehicle) - VEHICLE.SET_VEHICLE_FORWARD_SPEED(vehicle, NearbyVehicle.data.forward_speed) - end -end) - -menu.slider(Nearby_Vehicle_Trolling, "最大速度", { "nearby_veh_max_speed" }, "", - 0, 1000, 0, 10, function(value) - NearbyVehicle.data.max_speed = value - end) -menu.toggle(Nearby_Vehicle_Trolling, "设置实体最大速度", {}, "", function(toggle) - NearbyVehicle.ToggleChanged("max_speed", toggle) - - NearbyVehicle.callback["max_speed"] = function(vehicle) - ENTITY.SET_ENTITY_MAX_SPEED(vehicle, NearbyVehicle.data.max_speed) - end -end) - -menu.slider(Nearby_Vehicle_Trolling, "透明度", { "nearby_veh_alpha" }, - "Ranging from 0 to 255 but chnages occur after every 20 percent (after every 51).", 0, 255, 0, 5, function(value) - NearbyVehicle.data.alpha = value - end) -menu.toggle(Nearby_Vehicle_Trolling, "设置透明度", {}, "", function(toggle) - NearbyVehicle.ToggleChanged("alpha", toggle) - - NearbyVehicle.callback["alpha"] = function(vehicle) - ENTITY.SET_ENTITY_ALPHA(vehicle, NearbyVehicle.data.alpha, false) - end -end) - - ----------------------- --- No Delay Loop ----------------------- - -menu.divider(Nearby_Vehicle_Trolling, "") - -menu.toggle_loop(Nearby_Vehicle_Trolling, "强行停止", {}, "", function() - for k, vehicle in pairs(NearbyVehicle.GetVehicles()) do - VEHICLE.SET_VEHICLE_FORWARD_SPEED(vehicle, 0) - end -end) - -menu.slider_float(Nearby_Vehicle_Trolling, "力场强度", { "nearby_veh_forcefield" }, "", - 100, 10000, 100, 100, function(value) - NearbyVehicle.data.force_field = value * 0.01 - end) -menu.toggle_loop(Nearby_Vehicle_Trolling, "力场 (推开)", {}, "", function() - for k, vehicle in pairs(NearbyVehicle.GetVehicles()) do - local force = ENTITY.GET_ENTITY_COORDS(vehicle) - v3.sub(force, ENTITY.GET_ENTITY_COORDS(players.user_ped())) - v3.normalise(force) - v3.mul(force, NearbyVehicle.data.force_field) - ENTITY.APPLY_FORCE_TO_ENTITY(vehicle, - 3, - force.x, force.y, force.z, - 0, 0, 0.5, - 0, - false, false, true, false, false) - end -end) - - ----------------------- --- Once ----------------------- - -menu.divider(Nearby_Vehicle_Trolling, "") - -menu.action(Nearby_Vehicle_Trolling, "颠倒", {}, "", function() - for k, vehicle in pairs(NearbyVehicle.GetVehicles()) do - ENTITY.APPLY_FORCE_TO_ENTITY(vehicle, - 1, - 0.0, 0.0, 5.0, - 5.0, 0.0, 0.0, - 0, - false, true, true, true, true) - end -end) -menu.action(Nearby_Vehicle_Trolling, "随机喷漆", {}, "", function() - for k, vehicle in pairs(NearbyVehicle.GetVehicles()) do - local primary, secundary = get_random_colour(), get_random_colour() - VEHICLE.SET_VEHICLE_CUSTOM_PRIMARY_COLOUR(vehicle, primary.r, primary.g, primary.b) - VEHICLE.SET_VEHICLE_CUSTOM_SECONDARY_COLOUR(vehicle, secundary.r, secundary.g, secundary.b) - end -end) - -menu.slider(Nearby_Vehicle_Trolling, "上天高度", { "nearby_veh_launch" }, "", - 0, 1000, 30, 10, function(value) - NearbyVehicle.data.launch_height = value - end) -menu.action(Nearby_Vehicle_Trolling, "发射上天", {}, "", function() - for k, vehicle in pairs(NearbyVehicle.GetVehicles()) do - ENTITY.APPLY_FORCE_TO_ENTITY(vehicle, - 1, - 0.0, 0.0, NearbyVehicle.data.launch_height, - 0.0, 0.0, 0.0, - 0, - false, false, true, false, false) - end -end) - ---#endregion Nearby Vehicle Trolling - - - ---#region Nearby Vehicle Friendly - -local Nearby_Vehicle_Friendly = menu.list(Nearby_Vehicle_Options, "友好选项", {}, "") - ----------------------- --- Delay Loop ----------------------- - -menu.toggle(Nearby_Vehicle_Friendly, "给予无敌", {}, "", function(toggle) - NearbyVehicle.ToggleChanged("give_godmode", toggle) - - NearbyVehicle.callback["give_godmode"] = function(vehicle) - set_entity_godmode(vehicle, true) - end -end) -menu.toggle(Nearby_Vehicle_Friendly, "修复载具", {}, "", function(toggle) - NearbyVehicle.ToggleChanged("fix_vehicle", toggle) - - NearbyVehicle.callback["fix_vehicle"] = function(vehicle) - fix_vehicle(vehicle) - end -end) -menu.toggle(Nearby_Vehicle_Friendly, "修复引擎", {}, "", function(toggle) - NearbyVehicle.ToggleChanged("fix_engine", toggle) - - NearbyVehicle.callback["fix_engine"] = function(vehicle) - VEHICLE.SET_VEHICLE_ENGINE_HEALTH(vehicle, 1000) - end -end) -menu.toggle(Nearby_Vehicle_Friendly, "修复车胎", {}, "", function(toggle) - NearbyVehicle.ToggleChanged("fix_tyre", toggle) - - NearbyVehicle.callback["fix_tyre"] = function(vehicle) - for i = 0, 5 do - VEHICLE.SET_VEHICLE_TYRE_FIXED(vehicle, i) - end - end -end) -menu.toggle(Nearby_Vehicle_Friendly, "修复车窗", {}, "", function(toggle) - NearbyVehicle.ToggleChanged("fix_window", toggle) - - NearbyVehicle.callback["fix_window"] = function(vehicle) - for i = 0, 7 do - VEHICLE.FIX_VEHICLE_WINDOW(vehicle, i) - end - end -end) -menu.toggle(Nearby_Vehicle_Friendly, "清洁外观", {}, "", function(toggle) - NearbyVehicle.ToggleChanged("clean_dirt", toggle) - - NearbyVehicle.callback["clean_dirt"] = function(vehicle) - VEHICLE.SET_VEHICLE_DIRT_LEVEL(vehicle, 0.0) - end -end) -menu.toggle(Nearby_Vehicle_Friendly, "升级载具", {}, "", function(toggle) - NearbyVehicle.ToggleChanged("upgrade_vehicle", toggle) - - NearbyVehicle.callback["upgrade_vehicle"] = function(vehicle) - upgrade_vehicle(vehicle) - end -end) - ---#endregion Nearby Vehicle Friendly - - ---#endregion Nearby Vehicle Options - - - - - -------------------------------------------- ----------- Session Options ---------- -------------------------------------------- - -local Session_Options = menu.list(Menu_Root, "战局选项", {}, "") - ---#region Block Area Options - -local Block_Area_Options = menu.list(Session_Options, "阻挡区域", {}, "") - -local block_area_data = { - area_ListItem = { - { "改车王" }, - { "武器店" }, - { "带靶场的武器店" }, - { "理发店" }, - { "服装店" }, - { "纹身店" }, - { "商店" }, - }, - object_ListItem = { - { "UFO" }, - }, - object_ListData = { - -- hash, type - { 1241740398, "object" }, - }, - setting = { - area = 1, - obj = 1, - visible = true, - freeze = true, - no_collision = false, - }, -} - -local block_area_AreaData = { - -- { x, y, z } - { - -- radar_car_mod_shop 72 - { 1174.7074, 2644.4497, 36.7552 }, - { 113.2615, 6624.2803, 30.7871 }, - { -354.5272, -135.4011, 38.1850 }, - { 724.5240, -1089.0811, 21.1692 }, - { -1147.3138, -1992.4344, 12.1803 }, - }, - { - -- radar_gun_shop 110 - { 1697.9788, 3753.2002, 33.7053 }, - { -1111.2375, 2688.4626, 17.6131 }, - { 2569.6116, 302.5760, 107.7349 }, - { -325.8904, 6077.0264, 30.4548 }, - { 245.2711, -45.8126, 68.9410 }, - { 844.1248, -1025.5707, 27.1948 }, - { -1313.9485, -390.9637, 35.5920 }, - { -664.2178, -943.3646, 20.8292 }, - { -3165.2307, 1082.8551, 19.8438 }, - }, - { - -- radar_shootingrange_gunshop 313 - { 17.6804, -1114.2880, 28.7970 }, - { 811.8699, -2149.1016, 28.6363 }, - }, - { - -- radar_barber 71 - { 1933.1191, 3726.0791, 31.8444 }, - { -280.8165, 6231.7705, 30.6955 }, - { 1208.3335, -470.9170, 65.2080 }, - { -30.7448, -148.4921, 56.0765 }, - { -821.9946, -187.1776, 36.5689 }, - { 133.5702, -1710.9180, 28.2916 }, - { -1287.0822, -1116.5576, 5.9901 }, - }, - { - -- radar_clothes_store 73 - { 80.6650, -1391.6694, 28.3761 }, - { 419.5310, -807.5787, 28.4896 }, - { -818.6218, -1077.5330, 10.3282 }, - { -158.2199, -304.9663, 38.7350 }, - { 126.6853, -212.5027, 53.5578 }, - { -715.3598, -155.7742, 36.4105 }, - { -1199.8092, -776.6886, 16.3237 }, - { -1455.0045, -233.1862, 48.7936 }, - { -3168.9663, 1055.2869, 19.8632 }, - { 618.1857, 2752.5667, 41.0881 }, - { -1094.0487, 2704.1707, 18.0873 }, - { 1197.9722, 2704.2205, 37.1572 }, - { 1687.8812, 4820.5498, 41.0096 }, - { -0.2361, 6516.0454, 30.8684 }, - }, - { - -- radar_tattoo 75 - { -1153.9481, -1425.0186, 3.9544 }, - { 321.6098, 179.4165, 102.5865 }, - { 1322.4547, -1651.1252, 51.1885 }, - { -3169.4204, 1074.7272, 19.8343 }, - { 1861.6853, 3750.0798, 32.0318 }, - { -290.1603, 6199.0947, 30.4871 }, - }, - { - -- radar_crim_holdups 52 - { 1965.0542, 3740.5552, 31.3448 }, - { 1394.1692, 3599.8601, 34.0121 }, - { 2682.0034, 3282.5432, 54.2411 }, - { 1698.8085, 4929.1978, 41.0783 }, - { 1166.3920, 2703.5042, 37.1573 }, - { 544.2802, 2672.8113, 41.1566 }, - { 1731.2098, 6411.4033, 34.0372 }, - { 2559.2471, 385.5266, 107.6230 }, - { 376.6533, 323.6471, 102.5664 }, - { 1159.5421, -326.6986, 67.9230 }, - { 1141.3596, -980.8802, 45.4155 }, - { -1822.2866, 788.0060, 137.1859 }, - { -711.7210, -916.6965, 18.2145 }, - { -1491.0565, -383.5728, 39.1706 }, - { 29.0641, -1349.2128, 28.5036 }, - { -1226.4644, -902.5864, 11.2783 }, - { -53.1240, -1756.4054, 28.4210 }, - { -3240.3169, 1004.4334, 11.8307 }, - { -3038.9082, 589.5187, 6.9048 }, - { -2973.2617, 390.8184, 14.0433 }, - } -} - -menu.list_select(Block_Area_Options, "选择区域", {}, "", block_area_data.area_ListItem, 1, function(value) - block_area_data.setting.area = value -end) -menu.action(Block_Area_Options, "阻挡", {}, "", function() - local count = 0 - local hash = block_area_data.object_ListData[block_area_data.setting.obj][1] - local Type = block_area_data.object_ListData[block_area_data.setting.obj][2] - local ent = 0 - local area = block_area_AreaData[block_area_data.setting.area] - - request_model(hash) - for k, pos in pairs(area) do - if Type == "object" then - ent = entities.create_object(hash, v3.new(pos[1], pos[2], pos[3] + 1.0)) - end - - if ENTITY.DOES_ENTITY_EXIST(ent) then - ENTITY.FREEZE_ENTITY_POSITION(ent, block_area_data.setting.freeze) - ENTITY.SET_ENTITY_VISIBLE(ent, block_area_data.setting.visible, 0) - ENTITY.SET_ENTITY_AS_MISSION_ENTITY(ent, true, false) - ENTITY.SET_ENTITY_INVINCIBLE(ent, true) - ENTITY.SET_ENTITY_SHOULD_FREEZE_WAITING_ON_COLLISION(ent, true) - set_entity_networked(ent, false) - - if block_area_data.setting.no_collision then - ENTITY.SET_ENTITY_NO_COLLISION_ENTITY(ent, players.user_ped(), false) - ENTITY.SET_ENTITY_NO_COLLISION_ENTITY(players.user_ped(), ent, false) - end - - count = count + 1 - end - end - - STREAMING.SET_MODEL_AS_NO_LONGER_NEEDED(hash) - util.toast("阻挡完成!\n阻挡区域: " .. count .. " 个") -end) - - -menu.divider(Block_Area_Options, "设置") -menu.list_select(Block_Area_Options, "阻挡物体", {}, "", block_area_data.object_ListItem, 1, function(value) - block_area_data.setting.obj = value -end) -menu.toggle(Block_Area_Options, "冻结", {}, "", function(toggle) - block_area_data.setting.freeze = toggle -end, true) -menu.toggle(Block_Area_Options, "可见", {}, "", function(toggle) - block_area_data.setting.visible = toggle -end, true) -menu.toggle(Block_Area_Options, "与玩家自身没有碰撞", {}, "玩家自身可以穿过这些阻挡物", - function(toggle) - block_area_data.setting.no_collision = toggle - end) - - -menu.divider(Block_Area_Options, "特定阻挡") -menu.action(Block_Area_Options, "阻挡天基炮", {}, "会生成一个阻挡天基炮房间的铁门", function() - local hash = util.joaat("h4_prop_h4_garage_door_01a") - local coords = v3(335.9, 4833.9, -59.0) - - request_model(hash) - local ent = entities.create_object(hash, coords) - set_entity_networked(ent, false) - ENTITY.SET_ENTITY_HEADING(ent, 125.0) - ENTITY.FREEZE_ENTITY_POSITION(ent, true) - ENTITY.SET_ENTITY_AS_MISSION_ENTITY(ent, true, false) - - ENTITY.SET_ENTITY_NO_COLLISION_ENTITY(ent, players.user_ped(), false) - ENTITY.SET_ENTITY_NO_COLLISION_ENTITY(players.user_ped(), ent, false) - - STREAMING.SET_MODEL_AS_NO_LONGER_NEEDED(hash) - util.toast("完成!") -end) - ---#endregion Block Area Options - - ---#region Population Density - -local Population_Density = menu.list(Session_Options, "交通人口密度", {}, "") - -menu.action(Population_Density, "立刻充满行人", { "fill_ped_population" }, "", function() - PED.INSTANTLY_FILL_PED_POPULATION() -end) -menu.action(Population_Density, "立刻充满交通", { "fill_vehicle_population" }, "", function() - VEHICLE.INSTANTLY_FILL_VEHICLE_POPULATION() -end) - ------ -local Population_Density_Frame = menu.list(Population_Density, "设置交通人口密度", {}, "") -local population_density_frame = { - ped = 1.0, - random_vehicle = 1.0, - parked_vehicle = 1.0, -} - -menu.toggle_loop(Population_Density_Frame, "开启", {}, "", function() - PED.SET_PED_DENSITY_MULTIPLIER_THIS_FRAME(population_density_frame.ped) - VEHICLE.SET_RANDOM_VEHICLE_DENSITY_MULTIPLIER_THIS_FRAME(population_density_frame.random_vehicle) - VEHICLE.SET_PARKED_VEHICLE_DENSITY_MULTIPLIER_THIS_FRAME(population_density_frame.parked_vehicle) -end) -menu.slider_float(Population_Density_Frame, "Ped", { "population_density_frame_ped" }, "", - 0, 100, 100, 10, function(value) - population_density_frame.ped = value * 0.01 - end) -menu.slider_float(Population_Density_Frame, "Random Vehicle", { "population_density_frame_random_vehicle" }, "", - 0, 100, 100, 10, function(value) - population_density_frame.random_vehicle = value * 0.01 - end) -menu.slider_float(Population_Density_Frame, "Parked Vehicle", { "population_density_frame_parked_vehicle" }, "", - 0, 100, 100, 10, function(value) - population_density_frame.parked_vehicle = value * 0.01 - end) - - ------ -local Population_Density_Sphere = menu.list(Population_Density, "覆盖交通人口密度", {}, - "添加一个新的交通人口密度范围覆盖当前交通人口密度") - -local population_density_sphere = { - id = 0, - pedDensity = 1.0, - trafficDensity = 1.0, - localOnly = false, -} - -menu.toggle(Population_Density_Sphere, "覆盖范围", {}, "切换战局后会失效,需要重新操作", - function(toggle) - if toggle then - population_density_sphere.id = MISC.ADD_POP_MULTIPLIER_SPHERE(1.1, 1.1, 1.1, 15000.0, - population_density_sphere.pedDensity, population_density_sphere.trafficDensity, - population_density_sphere.localOnly, true) - MISC.CLEAR_AREA(1.1, 1.1, 1.1, 19999.9, true, false, false, true) - else - if MISC.DOES_POP_MULTIPLIER_SPHERE_EXIST(population_density_sphere.id) then - MISC.REMOVE_POP_MULTIPLIER_SPHERE(population_density_sphere.id, false) - end - end - end) -menu.divider(Population_Density_Sphere, "设置") -menu.slider_float(Population_Density_Sphere, "人口密度", { "population_density_sphere_pedDensity" }, "", - 0, 100, 100, 10, function(value) - population_density_sphere.pedDensity = value * 0.01 - end) -menu.slider_float(Population_Density_Sphere, "交通密度", { "population_density_sphere_trafficDensity" }, "", - 0, 100, 100, 10, function(value) - population_density_sphere.trafficDensity = value * 0.01 - end) -menu.toggle(Population_Density_Sphere, "仅本地有效", {}, "", function(toggle) - population_density_sphere.localOnly = toggle -end) - ---#endregion Population Density - - - - -------------------------------------------- ----------- Mission Options ---------- -------------------------------------------- - -local Mission_Options = menu.list(Menu_Root, "任务选项", {}, "") - ---#region Heist Cut Editor - -local Heist_Cut_Editor = menu.list(Mission_Options, "抢劫分红编辑", {}, "") - -local HeistCut = { - ListItem = { - { 1970744 + 831 + 56, "佩里科岛" }, - { 1963945 + 1497 + 736 + 92, "赌场抢劫" }, - { 1959865 + 812 + 50, "末日豪劫" }, - }, - NonHost = 2685249 + 6615, -} - -local cut_global_base = HeistCut.ListItem[1][1] -menu.list_select(Heist_Cut_Editor, "当前抢劫", {}, "", HeistCut.ListItem, cut_global_base, function(value) - cut_global_base = value -end) - -menu.click_slider(Heist_Cut_Editor, "玩家1 (房主)", { "cut1edit" }, "", 0, 300, 85, 5, function(value) - GLOBAL_SET_INT(cut_global_base + 1, value) -end) -menu.click_slider(Heist_Cut_Editor, "玩家2", { "cut2edit" }, "", 0, 300, 85, 5, function(value) - GLOBAL_SET_INT(cut_global_base + 2, value) -end) -menu.click_slider(Heist_Cut_Editor, "玩家3", { "cut3edit" }, "", 0, 300, 85, 5, function(value) - GLOBAL_SET_INT(cut_global_base + 3, value) -end) -menu.click_slider(Heist_Cut_Editor, "玩家4", { "cut4edit" }, "", 0, 300, 85, 5, function(value) - GLOBAL_SET_INT(cut_global_base + 4, value) -end) -menu.divider(Heist_Cut_Editor, "") -menu.click_slider(Heist_Cut_Editor, "自己 (非主机)", { "cutmyselfedit" }, "", 0, 300, 85, 5, function(value) - GLOBAL_SET_INT(HeistCut.NonHost, value) -end) - ---#endregion Heist Cut Editor - - ---#region Heist Prep Editor - -local Heist_Prep_Editor = menu.list(Mission_Options, "抢劫前置编辑", {}, "") - ----------------- --- 赌场抢劫 ----------------- -local Casion_Heist = menu.list(Heist_Prep_Editor, "赌场抢劫", {}, "") - -local casion_heist = { - optional = { - bitset0 = 0, - menu_input = nil, - menu_list = {}, - }, -} - -menu.divider(Casion_Heist, "第二面板") -local Casion_Heist_Optional = menu.list(Casion_Heist, "自定义可选任务", {}, "") - -menu.action(Casion_Heist_Optional, "读取 H3OPT_BITSET0", {}, "", function() - local value = STAT_GET_INT("H3OPT_BITSET0") - menu.set_value(casion_heist.optional.menu_input, value) - util.toast(value) -end) -casion_heist.optional.menu_input = menu.slider(Casion_Heist_Optional, "H3OPT_BITSET0", { "CH_H3OPT_BITSET0" }, "", - 0, 16777216, 0, 1, function(value) - casion_heist.optional.bitset0 = value - end) -menu.action(Casion_Heist_Optional, "解析 H3OPT_BITSET0", {}, "", function() - local value = casion_heist.optional.bitset0 - - for _, command in pairs(casion_heist.optional.menu_list) do - menu.set_value(command, false) - end - - for bit, bin in pairs(decimal_to_binary(value)) do - bit = bit - 1 - if bin == 1 then - local command = casion_heist.optional.menu_list[bit] - if command ~= nil and menu.is_ref_valid(command) then - menu.set_value(command, true) - end - end - end -end) -menu.action(Casion_Heist_Optional, "写入 H3OPT_BITSET0", {}, "", function() - STAT_SET_INT("H3OPT_BITSET0", casion_heist.optional.bitset0) - util.toast("已将 H3OPT_BITSET0 修改为: " .. casion_heist.optional.bitset0) -end) - -menu.divider(Casion_Heist_Optional, "任务列表") - -local Casion_Heist_Optional_Preps_ListData = { - { menu = "toggle", name = "Support Crew Selected [必选]", bit = 0, help_text = "" }, - { menu = "toggle", name = "巡逻路线", bit = 1, help_text = "" }, - { menu = "toggle", name = "杜根货物", bit = 2, help_text = "是否会显示对钩而已" }, - { menu = "toggle", name = "电钻", bit = 4, help_text = "" }, - { menu = "toggle", name = "枪手诱饵", bit = 6, help_text = "" }, - { menu = "toggle", name = "更换载具", bit = 7, help_text = "" }, - { menu = "divider", name = "隐迹潜踪" }, - { menu = "toggle", name = "潜入套装", bit = 3, help_text = "" }, - { menu = "toggle", name = "电磁脉冲设备", bit = 5, help_text = "" }, - { menu = "divider", name = "兵不厌诈" }, - { menu = "toggle", name = "进场: 除虫大师1", bit = 8, help_text = "" }, - { menu = "toggle", name = "进场: 除虫大师2", bit = 9, help_text = "" }, - { menu = "toggle", name = "进场: 维修工1", bit = 10, help_text = "" }, - { menu = "toggle", name = "进场: 维修工2", bit = 11, help_text = "" }, - { menu = "toggle", name = "进场: 古倍科技1", bit = 12, help_text = "" }, - { menu = "toggle", name = "进场: 古倍科技2", bit = 13, help_text = "" }, - { menu = "toggle", name = "进场: 名人1", bit = 14, help_text = "" }, - { menu = "toggle", name = "进场: 名人2", bit = 15, help_text = "" }, - { menu = "toggle", name = "离场: 国安局", bit = 16, help_text = "" }, - { menu = "toggle", name = "离场: 消防员", bit = 17, help_text = "" }, - { menu = "toggle", name = "离场: 豪赌客", bit = 18, help_text = "" }, - { menu = "divider", name = "气势汹汹" }, - { menu = "toggle", name = "镗床", bit = 19, help_text = "" }, - { menu = "toggle", name = "加固防弹衣", bit = 20, help_text = "" }, -} -for k, item in pairs(Casion_Heist_Optional_Preps_ListData) do - if item.menu == "toggle" then - local menu_toggle = menu.toggle(Casion_Heist_Optional, item.name, {}, item.help_text, - function(toggle, click_type) - if click_type ~= CLICK_SCRIPTED then - local value = casion_heist.optional.bitset0 - if toggle then - value = value + (1 << item.bit) - else - value = value - (1 << item.bit) - end - menu.set_value(casion_heist.optional.menu_input, value) - end - end) - - casion_heist.optional.menu_list[item.bit] = menu_toggle - else - menu.divider(Casion_Heist_Optional, item.name) - end -end - - ----------------- --- 末日豪劫 ----------------- -local Doomsday_Heist = menu.list(Heist_Prep_Editor, "末日豪劫", {}, "") - -local doomsday_heist = { - prep = { - gangops_fm = 0, - menu_input = nil, - menu_list = {}, - list_data = { - { menu = "divider", name = "末日一: 数据泄露" }, - { menu = "toggle", name = "医疗装备", bit = 0, help_text = "" }, - { menu = "toggle", name = "德罗索", bit = 1, help_text = "" }, - { menu = "toggle", name = "阿库拉", bit = 2, help_text = "" }, - { menu = "divider", name = "末日二: 博格丹危机" }, - { menu = "toggle", name = "钥匙卡", bit = 3, help_text = "" }, - { menu = "toggle", name = "ULP情报", bit = 4, help_text = "" }, - { menu = "toggle", name = "防暴车", bit = 5, help_text = "" }, - { menu = "toggle", name = "斯特龙伯格", bit = 6, help_text = "" }, - { menu = "toggle", name = "鱼雷电控单元", bit = 7, help_text = "" }, - { menu = "divider", name = "末日三: 末日将至" }, - { menu = "toggle", name = "标记资金", bit = 8, help_text = "" }, - { menu = "toggle", name = "侦察", bit = 9, help_text = "" }, - { menu = "toggle", name = "切尔诺伯格", bit = 10, help_text = "" }, - { menu = "toggle", name = "飞行路线", bit = 11, help_text = "" }, - { menu = "toggle", name = "试验场情报", bit = 12, help_text = "" }, - { menu = "toggle", name = "机载电脑", bit = 13, help_text = "" }, - }, - }, - - setup = { - gangops_flow = 0, - menu_input = nil, - menu_list = {}, - list_data = { - { menu = "divider", name = "末日一: 数据泄露" }, - { menu = "toggle", name = "亡命速递", bit = 0, help_text = "" }, - { menu = "toggle", name = "拦截信号", bit = 1, help_text = "" }, - { menu = "toggle", name = "服务器群组", bit = 2, help_text = "" }, - { menu = "divider", name = "末日二: 博格丹危机" }, - { menu = "toggle", name = "复仇者", bit = 4, help_text = "" }, - { menu = "toggle", name = "营救ULP", bit = 5, help_text = "" }, - { menu = "toggle", name = "抢救硬盘", bit = 6, help_text = "" }, - { menu = "toggle", name = "潜水艇侦察", bit = 7, help_text = "" }, - { menu = "divider", name = "末日三: 末日将至" }, - { menu = "toggle", name = "营救14号探员", bit = 9, help_text = "" }, - { menu = "toggle", name = "护送ULP探员", bit = 10, help_text = "" }, - { menu = "toggle", name = "巴拉杰", bit = 11, help_text = "" }, - { menu = "toggle", name = "可汗贾利", bit = 12, help_text = "" }, - { menu = "toggle", name = "空中防御", bit = 13, help_text = "" }, - }, - } -} - -local Doomsday_Heist_Preps = menu.list(Doomsday_Heist, "前置任务", {}, "") - -menu.action(Doomsday_Heist_Preps, "读取 GANGOPS_FM_MISSION_PROG", {}, "", function() - local value = STAT_GET_INT("GANGOPS_FM_MISSION_PROG") - menu.set_value(doomsday_heist.prep.menu_input, value) - util.toast(value) -end) -doomsday_heist.prep.menu_input = menu.slider(Doomsday_Heist_Preps, "GANGOPS_FM 值", { "doomsday_heist_gangops_fm" }, "", - 0, 16777216, 0, 1, function(value) - doomsday_heist.prep.gangops_fm = value - end) -menu.action(Doomsday_Heist_Preps, "解析当前 GANGOPS_FM 值", {}, "", function() - local value = doomsday_heist.prep.gangops_fm - - for _, command in pairs(doomsday_heist.prep.menu_list) do - menu.set_value(command, false) - end - - for bit, bin in pairs(decimal_to_binary(value)) do - bit = bit - 1 - if bin == 1 then - local command = doomsday_heist.prep.menu_list[bit] - if command ~= nil and menu.is_ref_valid(command) then - menu.set_value(command, true) - end - end - end -end) -menu.action(Doomsday_Heist_Preps, "写入 GANGOPS_FM_MISSION_PROG", {}, "", function() - STAT_SET_INT("GANGOPS_FM_MISSION_PROG", doomsday_heist.prep.gangops_fm) - util.toast("已将 GANGOPS_FM_MISSION_PROG 修改为: " .. doomsday_heist.prep.gangops_fm) -end) - --- 任务列表 -for k, item in pairs(doomsday_heist.prep.list_data) do - if item.menu == "toggle" then - local menu_toggle = menu.toggle(Doomsday_Heist_Preps, item.name, {}, item.help_text, function(toggle, click_type) - if click_type ~= CLICK_SCRIPTED then - local value = doomsday_heist.prep.gangops_fm - if toggle then - value = value + (1 << item.bit) - else - value = value - (1 << item.bit) - end - menu.set_value(doomsday_heist.prep.menu_input, value) - end - end) - - doomsday_heist.prep.menu_list[item.bit] = menu_toggle - else - menu.divider(Doomsday_Heist_Preps, item.name) - end -end - - -local Doomsday_Heist_Setups = menu.list(Doomsday_Heist, "准备任务", {}, "") - -menu.action(Doomsday_Heist_Setups, "读取 GANGOPS_FLOW_MISSION_PROG", {}, "", function() - local value = STAT_GET_INT("GANGOPS_FLOW_MISSION_PROG") - menu.set_value(doomsday_heist.setup.menu_input, value) - util.toast(value) -end) -doomsday_heist.setup.menu_input = menu.slider(Doomsday_Heist_Setups, "GANGOPS_FLOW 值", - { "doomsday_heist_gangops_flow" }, "", 0, 16777216, 0, 1, function(value) - doomsday_heist.setup.gangops_flow = value - end) -menu.action(Doomsday_Heist_Setups, "解析当前 GANGOPS_FM 值", {}, "", function() - local value = doomsday_heist.setup.gangops_flow - - for _, command in pairs(doomsday_heist.setup.menu_list) do - menu.set_value(command, false) - end - - for bit, bin in pairs(decimal_to_binary(value)) do - bit = bit - 1 - if bin == 1 then - local command = doomsday_heist.setup.menu_list[bit] - if command ~= nil and menu.is_ref_valid(command) then - menu.set_value(command, true) - end - end - end -end) -menu.action(Doomsday_Heist_Setups, "写入 GANGOPS_FLOW_MISSION_PROG", {}, "", function() - STAT_SET_INT("GANGOPS_FLOW_MISSION_PROG", doomsday_heist.setup.gangops_flow) - util.toast("已将 GANGOPS_FLOW_MISSION_PROG 修改为: " .. doomsday_heist.setup.gangops_flow) -end) - --- 任务列表 -for k, item in pairs(doomsday_heist.setup.list_data) do - if item.menu == "toggle" then - local menu_toggle = menu.toggle(Doomsday_Heist_Setups, item.name, {}, item.help_text, - function(toggle, click_type) - if click_type ~= CLICK_SCRIPTED then - local value = doomsday_heist.setup.gangops_flow - if toggle then - value = value + (1 << item.bit) - else - value = value - (1 << item.bit) - end - menu.set_value(doomsday_heist.setup.menu_input, value) - end - end) - - doomsday_heist.setup.menu_list[item.bit] = menu_toggle - else - menu.divider(Doomsday_Heist_Setups, item.name) - end -end - ---#endregion - - - - -------------------------------------------- ----------- Tunable Options ---------- -------------------------------------------- - -local Tunable_Options = menu.list(Menu_Root, "可调整项", {}, "") - -local tTunable = { - MaxHealthMulti = 1.0, - MaxArmourMulti = 1.0, - HealthRegenRateMulti = 1.0, - HealthRegenMaxMulti = 1.0, -} - ---#region Gun Van - -local Gun_Van = menu.list(Tunable_Options, "厢型车武器", {}, "") - -for i = 1, 10 do - local offset = Tunables.XM22_GUN_VAN_SLOT_WEAPON_TYPE_0 + i - local default = TUNABLE_GET_INT(offset) - menu.text_input(Gun_Van, "Weapon Slot " .. i, { "slot_" .. i .. "gun_van_weapon" }, "", function(value) - value = tonumber(value) - if value ~= nil and WEAPON.IS_WEAPON_VALID(value) then - TUNABLE_SET_INT(offset, value) - util.toast("完成") - end - end, default) -end - -menu.divider(Gun_Van, "") -rs_menu.all_weapons(Gun_Van, "全部武器", {}, "复制武器Hash", function(hash) - util.copy_to_clipboard(hash, true) -end) - -menu.action(Gun_Van, "附近生成厢型车", {}, "", function() - local coords = ENTITY.GET_ENTITY_COORDS(players.user_ped()) - -- local vector = ENTITY.GET_ENTITY_FORWARD_VECTOR(players.user_ped()) - -- local spawn_point = v3.new() - - -- if MISC.FIND_SPAWN_POINT_IN_DIRECTION(coords.x, coords.y, coords.z, - -- vector.x, vector.y, vector.z, - -- 25.0, - -- memory.addrof(spawn_point)) then - -- local Addr = memory.script_global(Globals.GunVanSpawnPoint) - -- if Addr ~= 0 then - -- memory.write_vector3(Addr, spawn_point) - -- util.toast("完成!") - -- end - -- end - - local bool, spawn_point, heading = get_closest_vehicle_node(coords, 1) - if bool then - local Addr = memory.script_global(Globals.GunVanSpawnPoint) - if Addr ~= 0 then - memory.write_vector3(Addr, spawn_point) - util.toast("完成!") - end - end -end) -menu.action(Gun_Van, "传送到厢型车", {}, "", function() - local Addr = memory.script_global(Globals.GunVanSpawnPoint) - if Addr ~= 0 then - local coords = memory.read_vector3(Addr) - if v3.toString(coords) == "0, 0, 0" then - return - end - teleport2(coords.x, coords.y, coords.z + 2.0) - end -end) - ---#endregion - - ---#region Contact Mission - -local Contact_Mission = menu.list(Tunable_Options, "联系人差事", {}, "关闭后切换战局恢复默认值") - -menu.toggle(Contact_Mission, "最大化任务时间", {}, "获取最大化收益", function(toggle) - Loop_Handler.Tunables.ContactMission.MaxMissionTime = toggle - Loop_Handler.Tunables.ContactMission.MaxMissionTime_Callback = function() - for i = 0, 8 do - TUNABLE_SET_INT(Tunables.CONTACT_MISSION_TIME_PERIOD_1 + i, 0) - end - end - Loop_Handler.Tunables.ContactMission.MaxMissionTime_Callback() -end) -menu.toggle(Contact_Mission, "最大化现金收益", {}, "游戏默认的最高倍率", function(toggle) - Loop_Handler.Tunables.ContactMission.MaxCashEarning = toggle - Loop_Handler.Tunables.ContactMission.MaxCashEarning_Callback = function() - for i = 0, 9 do - TUNABLE_SET_FLOAT(Tunables.CONTACT_MISSION_CASH_TIME_PERIOD_1_PERCENTAGE + i, 2.0) - end - for i = 0, 3 do - TUNABLE_SET_FLOAT(Tunables.CONTACT_MISSION_CASH_PLAYER_MULTIPLIER_1 + i, 1.3) - end - for i = 0, 2 do - TUNABLE_SET_FLOAT(Tunables.CONTACT_MISSION_CASH_DIFFICULTY_MULTIPLIER_EASY + i, 1.5) - end - for i = 0, 8 do - TUNABLE_SET_FLOAT(Tunables.CONTACT_MISSION_FAIL_CASH_TIME_PERIOD_2_DIVIDER + i, 3.5) - end - end - Loop_Handler.Tunables.ContactMission.MaxCashEarning_Callback() -end) -menu.toggle(Contact_Mission, "最大化经验收益", {}, "游戏默认的最高倍率", function(toggle) - Loop_Handler.Tunables.ContactMission.MaxRpEarning = toggle - Loop_Handler.Tunables.ContactMission.MaxRpEarning_Callback = function() - for i = 0, 9 do - TUNABLE_SET_FLOAT(Tunables.CONTACT_MISSION_RP_TIME_PERIOD_1_PERCENTAGE + i, 2.0) - end - for i = 0, 2 do - TUNABLE_SET_FLOAT(Tunables.CONTACT_MISSION_RP_DIFFICULTY_MULTIPLIER_EASY + i, 1.5) - end - for i = 0, 8 do - TUNABLE_SET_FLOAT(Tunables.CONTACT_MISSION_FAIL_RP_TIME_PERIOD_2_DIVIDER + i, 2.5) - end - end - Loop_Handler.Tunables.ContactMission.MaxRpEarning_Callback() -end) - ---#endregion Contact Mission - - ---#region Health Armour - -local Health_Armour = menu.list(Tunable_Options, "生命和护甲倍率", {}, "") - -menu.slider_float(Health_Armour, "最大生命值倍率", { "t_MaxHealthMulti" }, "", - 100, 2000, 100, 100, function(value) - tTunable.MaxHealthMulti = value * 0.01 - TUNABLE_SET_FLOAT(Tunables.MAX_HEALTH_MULTIPLIER, tTunable.MaxHealthMulti) - end) -menu.slider_float(Health_Armour, "最大护甲值倍率", { "t_MaxArmourMulti" }, "", - 100, 2000, 100, 100, function(value) - tTunable.MaxArmourMulti = value * 0.01 - TUNABLE_SET_FLOAT(Tunables.MAX_ARMOR_MULTIPLIER, tTunable.MaxArmourMulti) - end) -menu.slider_float(Health_Armour, "生命恢复速度倍率", { "t_HealthRegenRateMulti" }, "", - 100, 2000, 100, 100, function(value) - tTunable.HealthRegenRateMulti = value * 0.01 - TUNABLE_SET_FLOAT(Tunables.HEALTH_REGEN_RATE_MULTIPLIER, tTunable.HealthRegenRateMulti) - end) -menu.slider_float(Health_Armour, "生命恢复程度倍率", { "t_HealthRegenMaxMulti" }, "", - 100, 2000, 100, 100, function(value) - tTunable.HealthRegenMaxMulti = value * 0.01 - TUNABLE_SET_FLOAT(Tunables.HEALTH_REGEN_MAX_MULTIPLIER, tTunable.HealthRegenMaxMulti) - end) - ---#endregion Health Armour - - ---#region Heist Target Weighting - -local Heist_Target_Weight = menu.list(Tunable_Options, "抢劫主要目标概率", {}, "侦查任务开启前设置") - -menu.divider(Heist_Target_Weight, "佩里科岛抢劫") - -local PericoHeistTargets = { - { "西西米托龙舌兰", "tequila" }, - { "红宝石项链", "necklace" }, - { "不记名债券", "bonds" }, - { "粉钻", "diamond" }, - { "猎豹雕像", "statue" }, -} -for key, item in pairs(PericoHeistTargets) do - local offset = Tunables.PericoHeist.TargetWeighting[key] - local default_value = math.ceil(TUNABLE_GET_FLOAT(offset) * 100) - - menu.slider_float(Heist_Target_Weight, item[1], { "t_h4_target_weight" .. item[2] }, "", - 0, 100, default_value, 10, function(value) - TUNABLE_SET_FLOAT(offset, value * 0.01) - end) -end - -menu.divider(Heist_Target_Weight, "赌场抢劫") - -local CasinoHeistTargets = { - { "现金", "cash" }, - { "艺术品", "art" }, - { "黄金", "gold" }, - { "钻石", "diamond" }, -} -for key, item in pairs(CasinoHeistTargets) do - local offset = Tunables.CasinoHeist.TargetWeighting[key] - local default_value = math.ceil(TUNABLE_GET_FLOAT(offset) * 100) - - menu.slider_float(Heist_Target_Weight, item[1], { "t_ch_target_weight" .. item[2] }, "", - 0, 100, default_value, 10, function(value) - TUNABLE_SET_FLOAT(offset, value * 0.01) - end) -end - ---#endregion Heist Target Weighting - - - - ---------------------------------------- ----------- Stat Editor ---------- ---------------------------------------- - -local Stat_Editor = menu.list(Menu_Root, "Stat Editor", {}, "") - -local tStatEditor = {} - ---#region Stat Skill - -local Stat_Skill = menu.list(Stat_Editor, "属性技能", {}, "") - -tStatEditor.Skill = { - stat_select = 1, - value = 100, - - stat_list_item = { - { "体力", {}, "SCRIPT_INCREASE_STAM" }, - { "射击", {}, "SCRIPT_INCREASE_SHO" }, - { "力量", {}, "SCRIPT_INCREASE_STRN" }, - { "潜行", {}, "SCRIPT_INCREASE_STL" }, - { "飞行", {}, "SCRIPT_INCREASE_FLY" }, - { "驾驶", {}, "SCRIPT_INCREASE_DRIV" }, - { "肺活量", {}, "SCRIPT_INCREASE_LUNG" }, - }, -} - -menu.list_select(Stat_Skill, "选择属性", {}, "", tStatEditor.Skill.stat_list_item, 1, function(value) - tStatEditor.Skill.stat_select = value -end) - -menu.action(Stat_Skill, "读取", {}, "", function() - local stat = tStatEditor.Skill.stat_list_item[tStatEditor.Skill.stat_select][3] - local value = STAT_GET_INT(stat) - - menu.set_value(tStatEditor.Skill.readonly, value) -end) -tStatEditor.Skill.readonly = menu.readonly(Stat_Skill, "数值") - -menu.divider(Stat_Skill, "设置") -menu.slider(Stat_Skill, "数值", { "stat_skill_value" }, "", - 0, 100, 100, 1, function(value) - tStatEditor.Skill.value = value - end) -menu.action(Stat_Skill, "设置", {}, "", function() - local stat = tStatEditor.Skill.stat_list_item[tStatEditor.Skill.stat_select][3] - STAT_SET_INT(stat, tStatEditor.Skill.value) - - menu.trigger_commands("forcecloudsave") - util.toast("设置完成!\n请等待云保存完成!") -end) - ---#endregion Stat Skill - - ---#region Stat Commons - -local Stat_Commons = menu.list(Stat_Editor, "Some Stats", {}, "") - -tStatEditor.Commons = { - stat = "", - type = 1, - value = "", - - list_item = {}, - value_list = {}, -} - -tStatEditor.Commons.ListData = { - { name = "死亡总数", stat = "DEATHS", type = 1 }, - { name = "爆炸死亡数", stat = "DIED_IN_EXPLOSION", type = 1 }, - { name = "坠落死亡数", stat = "DIED_IN_FALL", type = 1 }, - { name = "火烧死亡数", stat = "DIED_IN_FIRE", type = 1 }, - { name = "撞死次数", stat = "DIED_IN_ROAD", type = 1 }, - { name = "溺水死亡数", stat = "DIED_IN_DROWNING", type = 1 }, - { name = "击杀警察数", stat = "KILLS_COP", type = 1 }, - { name = "击杀国安局人员数", stat = "KILLS_SWAT", type = 1 }, - { name = "被通缉次数", stat = "NO_TIMES_WANTED_LEVEL", type = 1 }, - { name = "已获得通缉星数", stat = "STARS_ATTAINED", type = 1 }, - { name = "消除的通缉星数", stat = "STARS_EVADED", type = 1 }, - { name = "最喜欢的摩托车", stat = "FAVOUTFITBIKETYPEALLTIME", type = 1 }, - { name = "驾驶陆上载具达到的最高速度", stat = "FASTEST_SPEED", type = 2 }, - { name = "驾驶过最快的陆上载具", stat = "TOP_SPEED_CAR", type = 1 }, -} - -for key, item in pairs(tStatEditor.Commons.ListData) do - table.insert(tStatEditor.Commons.list_item, { item.name }) - table.insert(tStatEditor.Commons.value_list, { item.stat, item.type }) -end - -menu.list_select(Stat_Commons, "选择 Stat", {}, "", tStatEditor.Commons.list_item, 1, function(value) - local item = tStatEditor.Commons.value_list[value] - tStatEditor.Commons.stat = item[1] - menu.set_value(tStatEditor.Commons.stat_readonly, item[1]) - menu.set_value(tStatEditor.Commons.stat_type, item[2]) -end) - -tStatEditor.Commons.stat_readonly = menu.readonly(Stat_Commons, "Stat") -tStatEditor.Commons.stat_type = menu.list_select(Stat_Commons, "类型", {}, "", { - { "int" }, { "float" }, { "string" }, { "bool" }, -}, 1, function(value) - tStatEditor.Commons.type = value -end) - -menu.action(Stat_Commons, "读取", {}, "", function() - local stat = tStatEditor.Commons.stat - local value = "" - - if stat == "" then - return - end - - if tStatEditor.Commons.type == 1 then - value = STAT_GET_INT(stat) - elseif tStatEditor.Commons.type == 2 then - value = STAT_GET_FLOAT(stat) - elseif tStatEditor.Commons.type == 3 then - value = STAT_GET_STRING(stat) - elseif tStatEditor.Commons.type == 4 then - value = STAT_GET_BOOL(stat) - end - - menu.set_value(tStatEditor.Commons.stat_readvalue, tostring(value)) -end) -tStatEditor.Commons.stat_readvalue = menu.readonly(Stat_Commons, "值") - -menu.divider(Stat_Commons, "设置") -menu.text_input(Stat_Commons, "值", { "some_stats_input" }, "注意格式\nbool: 需输入'true'或'false'", - function(value) - tStatEditor.Commons.value = value - end) -menu.action(Stat_Commons, "设置", {}, "", function() - local stat = tStatEditor.Commons.stat - local value = tStatEditor.Commons.value - local error = nil - - if stat == "" then - return - end - - if tStatEditor.Commons.type == 1 then - value = tonumber(value) - if value then - STAT_SET_INT(stat, value) - else - error = "格式错误!" - end - elseif tStatEditor.Commons.type == 2 then - value = tonumber(value) - if value then - STAT_SET_FLOAT(stat, value) - else - error = "格式错误!" - end - elseif tStatEditor.Commons.type == 3 then - STAT_SET_STRING(stat, tostring(value)) - elseif tStatEditor.Commons.type == 4 then - if value == "true" then - STAT_SET_BOOL(stat, true) - elseif value == "false" then - STAT_SET_BOOL(stat, false) - else - error = "格式错误!" - end - end - - if error then - util.toast("设置失败: " .. error) - else - util.toast("设置完成!\nStat: " .. ADD_MP_INDEX(stat) .. "\nValue: " .. tostring(value)) - end -end) - ---#endregion Stat Commons - - - - - - - - - - ------------------------------------------ ----------- About Options ---------- ------------------------------------------ - -local About_Options = menu.list(Menu_Root, "关于", {}, "") - -menu.readonly(About_Options, "Author", "Rostal") -menu.hyperlink(About_Options, "Github", "https://github.com/TCRoid/Stand-Lua-RScript") -menu.readonly(About_Options, "Version", SCRIPT_VERSION) -menu.readonly(About_Options, "Support GTAO Version", SUPPORT_GTAO) - - - - ------------------------------------------- ----------- Player Options ---------- ------------------------------------------- - -require "RScript.Menu.Player" - - - - - ----------------------------------------- ----------- Backend Loop ---------- ----------------------------------------- - -util.create_tick_handler(function() - ------------------------ - -- Tunables - ------------------------ - - if IS_SCRIPT_RUNNING("tuneables_processing") then - local tunables = Loop_Handler.Tunables - - -------- Contact Mission -------- - - if tunables.ContactMission.MaxMissionTime then - Loop_Handler.Tunables.ContactMission.MaxMissionTime_Callback() - end - if tunables.ContactMission.MaxCashEarning then - Loop_Handler.Tunables.ContactMission.MaxCashEarning_Callback() - end - if tunables.ContactMission.MaxRpEarning then - Loop_Handler.Tunables.ContactMission.MaxRpEarning_Callback() - end - - - -------- Health Armour -------- - - if tTunable.MaxHealthMulti ~= 1.0 then - TUNABLE_SET_FLOAT(Tunables.MAX_HEALTH_MULTIPLIER, tTunable.MaxHealthMulti) - end - if tTunable.MaxArmourMulti ~= 1.0 then - TUNABLE_SET_FLOAT(Tunables.MAX_ARMOR_MULTIPLIER, tTunable.MaxArmourMulti) - end - if tTunable.HealthRegenRateMulti ~= 1.0 then - TUNABLE_SET_FLOAT(Tunables.HEALTH_REGEN_RATE_MULTIPLIER, tTunable.HealthRegenRateMulti) - end - if tTunable.HealthRegenMaxMulti ~= 1.0 then - TUNABLE_SET_FLOAT(Tunables.HEALTH_REGEN_MAX_MULTIPLIER, tTunable.HealthRegenMaxMulti) - end - end -end) - - - - ---------------------------------------- ----------- END ---------- ---------------------------------------- diff --git a/Version.txt b/Version.txt index d1638a9..c26823d 100644 --- a/Version.txt +++ b/Version.txt @@ -1 +1 @@ -2023/12/23 \ No newline at end of file +2024/9/1 \ No newline at end of file diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 141898a..4bcd52e 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,3 +1,7 @@ +# 2024/9/1 + +- **Major Update** + # 2023/12/23 - 更新至游戏最新版本1.68-3095 diff --git a/lib/RScript/Menu/Assistant.lua b/lib/RScript/Menu/Assistant.lua index b347d26..b80e47e 100644 --- a/lib/RScript/Menu/Assistant.lua +++ b/lib/RScript/Menu/Assistant.lua @@ -1,6 +1,7 @@ -------------------------------------------- ---------- Assistant Options --------- -------------------------------------------- +------------------------------------------ +-- Assistant Options +------------------------------------------ + local Assistant_Options = menu.list(Menu_Root, "助手选项", {}, "") @@ -215,7 +216,7 @@ function cargobob_pickup.get_player_cargobob() if PED.IS_PED_IN_ANY_VEHICLE(ped, false) then local veh = PED.GET_VEHICLE_PED_IS_IN(ped, false) local hash = ENTITY.GET_ENTITY_MODEL(veh) - if is_in_table(cargobob_pickup.model_list, hash) then + if table.contains(cargobob_pickup.model_list, hash) then return veh end end @@ -323,3 +324,186 @@ menu.slider_float(Cargobob_Pickup, "Offset Z", { "cargobob_pickup_z" }, "", -100 end) --#endregion + + +--#region Attacked Response + +local Attacked_Response = menu.list(Assistant_Options, "玩家受到攻击时反应", {}, "") + +local AttackedResponse = { + reactionType = 1, + pedReactionType = 1, + vehicleReactionType = 1, +} + +function AttackedResponse.checkAttacker(attacker, isKiller) + if AttackedResponse.reactionType == 2 and isKiller ~= 1 then + return false + end + + if not ENTITY.DOES_ENTITY_EXIST(attacker) or ENTITY.IS_ENTITY_DEAD(attacker) then + return false + end + + return true +end + +function AttackedResponse.attackerReaction(attacker) + if ENTITY.IS_ENTITY_A_PED(attacker) then + AttackedResponse.pedReaction(attacker) + return + end + + if ENTITY.IS_ENTITY_A_VEHICLE(attacker) then + AttackedResponse.vehicleReaction(attacker) + return + end +end + +function AttackedResponse.pedReaction(attacker) + if is_player_ped(attacker) then + return + end + + local reactionType = AttackedResponse.pedReactionType + + -- 禁用 + if reactionType == 0 then + return + end + + -- 死亡 + if reactionType == 1 then + SET_ENTITY_HEALTH(attacker, 0) + return + end + -- 爆头击杀 + if reactionType == 2 then + shoot_ped_head(attacker, util.joaat("WEAPON_PISTOL"), players.user_ped()) + return + end + -- 署名爆炸 + if reactionType == 3 then + local pos = ENTITY.GET_ENTITY_COORDS(attacker) + add_owned_explosion(players.user_ped(), pos, 4) + return + end + -- 匿名爆炸 + if reactionType == 4 then + local pos = ENTITY.GET_ENTITY_COORDS(attacker) + add_explosion(pos, 4) + return + end + -- 燃烧 + if reactionType == 5 then + FIRE.START_ENTITY_FIRE(attacker) + return + end + -- 电击 + if reactionType == 6 then + shoot_ped_head(attacker, util.joaat("WEAPON_STUNGUN"), players.user_ped()) + return + end + -- 移除武器 + if reactionType == 7 then + WEAPON.REMOVE_ALL_PED_WEAPONS(attacker) + return + end +end + +function AttackedResponse.vehicleReaction(attacker) + local reactionType = AttackedResponse.vehicleReactionType + + -- 禁用 + if reactionType == 0 then + return + end + + notify("AttackedResponse.vehicleReaction") + + -- 破坏引擎 + if reactionType == 1 then + VEHICLE.SET_VEHICLE_ENGINE_HEALTH(attacker, -4000.0) + return + end + -- 爆胎 + if reactionType == 2 then + for i = 0, 7 do + VEHICLE.SET_VEHICLE_TYRE_BURST(attacker, i, true, 1000.0) + end + return + end + -- 卸下车轮 + if reactionType == 3 then + for i = 0, 7 do + entities.detach_wheel(attacker, i) + end + return + end +end + +local playerAttackedEventData = memory.alloc(13 * 8) + +menu.toggle_loop(Attacked_Response, "玩家受到攻击时反应", {}, "仅在线上模式可用并且需要关闭无敌", function() + local eventData = playerAttackedEventData + local eventGroup = 1 -- SCRIPT_EVENT_QUEUE_NETWORK + for eventIndex = 0, SCRIPT.GET_NUMBER_OF_EVENTS(eventGroup) - 1 do + local eventType = SCRIPT.GET_EVENT_AT_INDEX(eventGroup, eventIndex) + if eventType == 186 then -- CEventNetworkEntityDamage + if SCRIPT.GET_EVENT_DATA(eventGroup, eventIndex, eventData, 13) then + local Victim = memory.read_int(eventData) -- entity + local Attacker = memory.read_int(eventData + 1 * 8) -- entity + -- local Damage = memory.read_float(eventData + 2 * 8) -- float + -- local EnduranceDamage = memory.read_float(eventData + 3 * 8) -- float + -- local VictimIncapacitated = memory.read_int(eventData + 4 * 8) -- bool + local VictimDestroyed = memory.read_int(eventData + 5 * 8) -- bool + -- local WeaponHash = memory.read_int(eventData + 6 * 8) -- int + -- local VictimSpeed = memory.read_float(eventData + 7 * 8) -- float + -- local AttackerSpeed = memory.read_float(eventData + 8 * 8) -- float + -- local IsResponsibleForCollision = memory.read_int(eventData + 9 * 8) -- bool + -- local IsHeadShot = memory.read_int(eventData + 10 * 8) -- bool + -- local IsWithMeleeWeapon = memory.read_int(eventData + 11 * 8) -- bool + -- local HitMaterial = memory.read_int(eventData + 12 * 8) -- int + + if Victim == players.user_ped() and Attacker ~= players.user_ped() then + if AttackedResponse.checkAttacker(Attacker, VictimDestroyed) then + AttackedResponse.attackerReaction(Attacker) + end + end + end + end + end +end) + +menu.divider(Attacked_Response, "选项") + +menu.list_select(Attacked_Response, "反应对象", {}, "", { + { 1, "攻击者", {}, "" }, + { 2, "仅击杀者", {}, "" } +}, 1, function(value) + AttackedResponse.reactionType = value +end) + +menu.list_select(Attacked_Response, "对 NPC 的反应", {}, "", { + { 0, "禁用" }, + { 1, "死亡" }, + { 2, "爆头击杀" }, + { 3, "署名爆炸" }, + { 4, "匿名爆炸" }, + { 5, "燃烧" }, + { 6, "电击" }, + { 7, "移除武器" }, +}, 1, function(value) + AttackedResponse.pedReactionType = value +end) + +menu.list_select(Attacked_Response, "对 载具 的反应", {}, "", { + { 0, "禁用" }, + { 1, "破坏引擎" }, + { 2, "爆胎" }, + { 3, "卸下车轮" }, +}, 1, function(value) + AttackedResponse.vehicleReactionType = value +end) + +--#endregion diff --git a/lib/RScript/Menu/Bodyguard.lua b/lib/RScript/Menu/Bodyguard.lua index 8589bf1..0b72e56 100644 --- a/lib/RScript/Menu/Bodyguard.lua +++ b/lib/RScript/Menu/Bodyguard.lua @@ -1,9 +1,11 @@ ---------------------------------------------- ----------- Bodyguard Options ---------- ---------------------------------------------- +------------------------------------------ +-- Bodyguard Options +------------------------------------------ + local Bodyguard_Options = menu.list(Menu_Root, "保镖选项", {}, "") + local Bodyguard = { onTick = false, } @@ -119,10 +121,10 @@ function Bodyguard.SetPedAttribute(ped) PED.SET_PED_ID_RANGE(ped, 500.0) PED.SET_PED_VISUAL_FIELD_PERIPHERAL_RANGE(ped, 500.0) PED.SET_PED_HIGHLY_PERCEPTIVE(ped, true) - PED.SET_PED_VISUAL_FIELD_MIN_ANGLE(ped, 90.0) - PED.SET_PED_VISUAL_FIELD_MAX_ANGLE(ped, 90.0) - PED.SET_PED_VISUAL_FIELD_MIN_ELEVATION_ANGLE(ped, 90.0) - PED.SET_PED_VISUAL_FIELD_MAX_ELEVATION_ANGLE(ped, 90.0) + PED.SET_PED_VISUAL_FIELD_MIN_ANGLE(ped, -180.0) + PED.SET_PED_VISUAL_FIELD_MAX_ANGLE(ped, 180.0) + PED.SET_PED_VISUAL_FIELD_MIN_ELEVATION_ANGLE(ped, -180.0) + PED.SET_PED_VISUAL_FIELD_MAX_ELEVATION_ANGLE(ped, 180.0) PED.SET_PED_VISUAL_FIELD_CENTER_ANGLE(ped, 90.0) -- COMBAT PED.SET_PED_SHOOT_RATE(ped, 1000) @@ -160,8 +162,9 @@ function Bodyguard.SetPedAttribute(ped) -- COMBAT FLOAT PED.SET_COMBAT_FLOAT(ped, 6, 1.0) -- Weapon Accuracy PED.SET_COMBAT_FLOAT(ped, 7, 1.0) -- Fight Proficiency - PED.SET_COMBAT_FLOAT(ped, 9, 10.0) -- Heli Speed Modifier - PED.SET_COMBAT_FLOAT(ped, 10, 500.0) -- Heli Senses Range + PED.SET_COMBAT_FLOAT(ped, 9, 1.0) -- Heli Speed Modifier + PED.SET_COMBAT_FLOAT(ped, 10, 200.0) -- Heli Senses Range + PED.SET_COMBAT_FLOAT(ped, 26, 10.0) -- Homing Rocket Turn Rate Modifier PED.SET_COMBAT_FLOAT(ped, 29, Bodyguard.Setting.ped.weapon_damamge_modifier) -- Weapon Damamge Modifier -- FLEE ATTRIBUTES @@ -173,6 +176,7 @@ function Bodyguard.SetPedAttribute(ped) TASK.SET_PED_PATH_AVOID_FIRE(ped, false) TASK.SET_PED_PATH_MAY_ENTER_WATER(ped, true) -- CONFIG FLAG + PED.SET_PED_CONFIG_FLAG(ped, 32, false) -- Will Fly Through Windscreen PED.SET_PED_CONFIG_FLAG(ped, 42, true) -- Dont Influence Wanted Level PED.SET_PED_CONFIG_FLAG(ped, 107, true) -- Dont Activate Ragdoll From BulletImpact PED.SET_PED_CONFIG_FLAG(ped, 108, true) -- Dont Activate Ragdoll From Explosions @@ -206,13 +210,13 @@ function Bodyguard.TickHandler() keep_running_flag = true end end - for _, ped in pairs(Bodyguard.Heli.ped_list) do + for _, ped in pairs(Bodyguard.Heli.pedList) do if ENTITY.DOES_ENTITY_EXIST(ped) and not ENTITY.IS_ENTITY_DEAD(ped) then PED.SET_PED_NO_TIME_DELAY_BEFORE_SHOT(ped) keep_running_flag = true end end - for _, heli in pairs(Bodyguard.Heli.heli_list) do + for _, heli in pairs(Bodyguard.Heli.heliList) do local blip = HUD.GET_BLIP_FROM_ENTITY(heli) if ENTITY.DOES_ENTITY_EXIST(heli) and HUD.DOES_BLIP_EXIST(blip) then if not ENTITY.IS_ENTITY_DEAD(heli) then @@ -369,24 +373,50 @@ end) ------------------------- --- Bodyguard Heli ------------------------- +-------------------------------- +-- Bodyguard Heli +-------------------------------- local Bodyguard_Heli = menu.list(Bodyguard_Options, "保镖直升机", {}, "") +local BodyguardHeliModels = { + { model = "valkyrie", label = "Valkyrie", vehWeapons = nil }, + { model = "hunter", label = "Hunter", vehWeapons = { "VEHICLE_WEAPON_HUNTER_MISSILE", "VEHICLE_WEAPON_HUNTER_CANNON", "VEHICLE_WEAPON_HUNTER_BARRAGE" } }, + { model = "akula", label = "Akula", vehWeapons = { "VEHICLE_WEAPON_AKULA_MISSILE", "VEHICLE_WEAPON_AKULA_MINIGUN" }, }, + { model = "savage", label = "Savage", vehWeapons = { "VEHICLE_WEAPON_SPACE_ROCKET", "VEHICLE_WEAPON_PLAYER_SAVAGE" }, }, + { model = "annihilator2", label = "ANNIHLATOR2", vehWeapons = { "VEHICLE_WEAPON_ANNIHILATOR2_MISSILE", "VEHICLE_WEAPON_ANNIHILATOR2_MINI" }, }, + { model = "buzzard", label = "Buzzard", vehWeapons = { "VEHICLE_WEAPON_SPACE_ROCKET", "VEHICLE_WEAPON_PLAYER_BUZZARD" }, }, + { model = "polmav", label = "Polmav", vehWeapons = nil } +} + Bodyguard.Heli = { - heli_list = {}, -- 保镖 heli list - ped_list = {}, -- 保镖 ped list - - heli_models = { - { util.joaat("valkyrie"), "女武神" }, - { util.joaat("buzzard"), "秃鹰" }, - { util.joaat("hunter"), "猎杀者" }, - { util.joaat("polmav"), "警用小蛮牛" }, - }, + heliModel = "", + heliModelListItem = {}, + heliLabels = {}, + heliWeapons = {}, + + pedList = {}, + heliList = {}, + menuList = {}, + index = 0, } +function Bodyguard.Heli.Init() + for _, item in pairs(BodyguardHeliModels) do + local model_hash = util.joaat(item.model) + local label_text = util.get_label_text(item.label) + local list_item = { model_hash, label_text } + table.insert(Bodyguard.Heli.heliModelListItem, list_item) + + Bodyguard.Heli.heliWeapons[model_hash] = item.vehWeapons + Bodyguard.Heli.heliLabels[model_hash] = label_text + end + + Bodyguard.Heli.heliModel = Bodyguard.Heli.heliModelListItem[1][1] +end + +Bodyguard.Heli.Init() + function Bodyguard.Heli.AddBlipForHeli(heli) local blip = HUD.ADD_BLIP_FOR_ENTITY(heli) HUD.SET_BLIP_SPRITE(blip, 422) @@ -413,12 +443,21 @@ function Bodyguard.Heli.SetHeliAttribute(heli) VEHICLE.SET_HELI_BLADES_FULL_SPEED(heli) VEHICLE.SET_VEHICLE_SEARCHLIGHT(heli, true, true) strong_vehicle(heli) + -- UPGRADE + for _, mod_type in pairs({ 5, 11, 12, 13, 16 }) do + local mod_num = VEHICLE.GET_NUM_VEHICLE_MODS(heli, mod_type) + VEHICLE.SET_VEHICLE_MOD(heli, mod_type, mod_num - 1, false) + end + VEHICLE.TOGGLE_VEHICLE_MOD(heli, 18, true) entities.set_can_migrate(heli, false) end function Bodyguard.Heli.SetPedAttribute(ped) + Bodyguard.SetPedAttribute(ped) + PED.SET_PED_CAN_BE_SHOT_IN_VEHICLE(ped, false) + PED.SET_PED_CAN_BE_KNOCKED_OFF_VEHICLE(ped, 1) PED.SET_PED_CAN_BE_DRAGGED_OUT(ped, false) PED.SET_DRIVER_ABILITY(ped, 1.0) @@ -426,21 +465,91 @@ function Bodyguard.Heli.SetPedAttribute(ped) PED.SET_PED_COMBAT_ATTRIBUTES(ped, 3, false) -- Leave Vehicles end -function Bodyguard.Heli.ClearDeletedEntities() - for key, ent in pairs(Bodyguard.Heli.ped_list) do - if not ENTITY.DOES_ENTITY_EXIST(ent) then - table.remove(Bodyguard.Heli.ped_list, key) +function Bodyguard.Heli.GenerateMenu(menu_name, index, heli_data) + local heli = heli_data.heli + local pilot = heli_data.pilot + local members = heli_data.members + local heli_weapons = heli_data.heli_weapons + + + local menu_parent = Bodyguard_Heli + local menu_list = menu.list(menu_parent, menu_name, {}, "", function() + if not ENTITY.DOES_ENTITY_EXIST(heli) then + util.toast("保镖直升机已不存在") + return end - end - for key, ent in pairs(Bodyguard.Heli.heli_list) do - if not ENTITY.DOES_ENTITY_EXIST(ent) then - table.remove(Bodyguard.Heli.heli_list, key) + if ENTITY.IS_ENTITY_DEAD(heli) then + util.toast("保镖直升机已死亡") + return + end + end) + Bodyguard.Heli.menuList[index] = menu_list + + + local on_tick = menu.divider(menu_list, menu_name) + menu.on_tick_in_viewport(on_tick, function() + if ENTITY.DOES_ENTITY_EXIST(heli) and not ENTITY.IS_ENTITY_DEAD(heli) then + draw_line_to_entity(heli) + end + end) + + menu.action(menu_list, "传送到我", {}, "", function() + tp_entity_to_me(heli, math.random(-60, 60), math.random(-60, 60), 30) + end) + menu.textslider(menu_list, "无敌", {}, "", { "设置", "取消" }, function(value) + local toggle = true + if value == 2 then + toggle = false + end + + set_entity_godmode(heli, toggle) + set_entity_godmode(pilot, toggle) + for _, ped in pairs(members) do + set_entity_godmode(ped, toggle) end + end) + menu.action(menu_list, "恢复", {}, "", function() + SET_ENTITY_HEALTH(heli, ENTITY.GET_ENTITY_MAX_HEALTH(heli)) + fix_vehicle(heli) + + SET_ENTITY_HEALTH(pilot, ENTITY.GET_ENTITY_MAX_HEALTH(ped)) + clear_ped_body(pilot) + + for _, ped in pairs(members) do + SET_ENTITY_HEALTH(ped, ENTITY.GET_ENTITY_MAX_HEALTH(ped)) + clear_ped_body(ped) + end + end) + + if heli_weapons ~= nil then + local list_item = {} + for _, weapon_model in pairs(heli_weapons) do + table.insert(list_item, { util.joaat(weapon_model), weapon_model }) + end + menu.list_action(menu_list, "主驾驶载具武器", {}, "", list_item, function(value) + WEAPON.SET_CURRENT_PED_VEHICLE_WEAPON(pilot, value) + end) end + + menu.action(menu_list, "删除", {}, "", function() + if ENTITY.DOES_ENTITY_EXIST(heli) then + entities.delete(heli) + end + if ENTITY.DOES_ENTITY_EXIST(pilot) then + entities.delete(pilot) + end + for _, ped in pairs(members) do + if ENTITY.DOES_ENTITY_EXIST(ped) then + entities.delete(ped) + end + end + + menu.delete(menu_list) + end) end function Bodyguard.Heli.AllPeds(callback) - for _, ped in pairs(Bodyguard.Heli.ped_list) do + for _, ped in pairs(Bodyguard.Heli.pedList) do if ENTITY.DOES_ENTITY_EXIST(ped) and not ENTITY.IS_ENTITY_DEAD(ped) then callback(ped) end @@ -448,22 +557,20 @@ function Bodyguard.Heli.AllPeds(callback) end function Bodyguard.Heli.AllHelis(callback) - for _, heli in pairs(Bodyguard.Heli.heli_list) do + for _, heli in pairs(Bodyguard.Heli.heliList) do if ENTITY.DOES_ENTITY_EXIST(heli) and not ENTITY.IS_ENTITY_DEAD(heli) then callback(heli) end end end --- 保镖 heli hash -Bodyguard.Heli.heli_hash = Bodyguard.Heli.heli_models[1][1] - menu.list_select(Bodyguard_Heli, "直升机模型", {}, "", - Bodyguard.Heli.heli_models, Bodyguard.Heli.heli_hash, function(value) - Bodyguard.Heli.heli_hash = value + Bodyguard.Heli.heliModelListItem, Bodyguard.Heli.heliModel, function(value) + Bodyguard.Heli.heliModel = value end) + menu.action(Bodyguard_Heli, "生成保镖直升机", {}, "", function() - local heli_hash = Bodyguard.Heli.heli_hash + local heli_hash = Bodyguard.Heli.heliModel local ped_hash = util.joaat("s_m_y_blackops_01") local heading = user_heading() local coords = ENTITY.GET_ENTITY_COORDS(players.user_ped()) @@ -488,27 +595,41 @@ menu.action(Bodyguard_Heli, "生成保镖直升机", {}, "", function() PED.SET_PED_KEEP_TASK(pilot, true) Bodyguard.Group.SetPedRelationship(pilot) - Bodyguard.SetPedAttribute(pilot) Bodyguard.Heli.SetPedAttribute(pilot) - Bodyguard.Heli.ClearDeletedEntities() - table.insert(Bodyguard.Heli.heli_list, heli) - table.insert(Bodyguard.Heli.ped_list, pilot) + -- Pilot Vehicle Weapon + local heli_weapons = Bodyguard.Heli.heliWeapons[heli_hash] + if heli_weapons ~= nil then + WEAPON.SET_CURRENT_PED_VEHICLE_WEAPON(pilot, util.joaat(heli_weapons[1])) + end + + Bodyguard.Heli.index = Bodyguard.Heli.index + 1 + Bodyguard.Heli.heliList[Bodyguard.Heli.index] = heli + + table.insert(Bodyguard.Heli.pedList, pilot) - -- Other Memebers + -- Other Members + local members = {} local seats = VEHICLE.GET_VEHICLE_MODEL_NUMBER_OF_SEATS(heli_hash) - 2 for seat = 0, seats do local ped = create_ped(29, ped_hash, coords, heading) PED.SET_PED_INTO_VEHICLE(ped, heli, seat) Bodyguard.Group.SetPedRelationship(ped) - Bodyguard.SetPedAttribute(ped) Bodyguard.Heli.SetPedAttribute(ped) - table.insert(Bodyguard.Heli.ped_list, ped) + table.insert(Bodyguard.Heli.pedList, ped) + table.insert(members, ped) end + + -- Generate Menu + local menu_name = Bodyguard.Heli.index .. ". " .. Bodyguard.Heli.heliLabels[heli_hash] + local heli_data = { heli = heli, pilot = pilot, members = members, heli_weapons = heli_weapons } + Bodyguard.Heli.GenerateMenu(menu_name, Bodyguard.Heli.index, heli_data) + + Bodyguard.TickHandler() end) @@ -518,14 +639,19 @@ menu.divider(Bodyguard_Heli, "管理保镖直升机") -- All Heli ---------------- -local Bodyguard_Heli_All = menu.list(Bodyguard_Heli, "所有保镖直升机", {}, "") +local Bodyguard_Heli_All2 = menu.list(Bodyguard_Heli, "所有保镖直升机", {}, "") -menu.action(Bodyguard_Heli_All, "传送到我", {}, "", function() +menu.action(Bodyguard_Heli_All2, "传送到我", {}, "", function() Bodyguard.Heli.AllHelis(function(heli) - tp_entity_to_me(heli, math.random(-30, 30), math.random(-30, 30), 30) + tp_entity_to_me(heli, math.random(-60, 60), math.random(-60, 60), 30) end) end) -menu.toggle(Bodyguard_Heli_All, "无敌", {}, "", function(toggle) +menu.textslider(Bodyguard_Heli_All2, "无敌", {}, "", { "设置", "取消" }, function(value) + local toggle = true + if value == 2 then + toggle = false + end + Bodyguard.Heli.AllPeds(function(ped) set_entity_godmode(ped, toggle) end) @@ -533,7 +659,7 @@ menu.toggle(Bodyguard_Heli_All, "无敌", {}, "", function(toggle) set_entity_godmode(heli, toggle) end) end) -menu.action(Bodyguard_Heli_All, "恢复", {}, "恢复生命值,清理NPC血迹,修复载具", function() +menu.action(Bodyguard_Heli_All2, "恢复", {}, "恢复生命值,清理NPC血迹,修复载具", function() Bodyguard.Heli.AllPeds(function(ped) SET_ENTITY_HEALTH(ped, ENTITY.GET_ENTITY_MAX_HEALTH(ped)) clear_ped_body(ped) @@ -543,43 +669,50 @@ menu.action(Bodyguard_Heli_All, "恢复", {}, "恢复生命值,清理NPC血迹, fix_vehicle(heli) end) end) -menu.toggle(Bodyguard_Heli_All, "禁用直升机碰撞", {}, - "避免卡在墙里等情况,但可能会导致某些座位的NPC掉出载具", function(toggle) +menu.textslider(Bodyguard_Heli_All2, "禁用直升机碰撞", {}, + "避免卡在墙里等情况,但可能会导致某些座位的NPC掉出载具", { "设置", "取消" }, function(value) + local toggle = true + if value == 2 then + toggle = false + end + Bodyguard.Heli.AllHelis(function(heli) ENTITY.SET_ENTITY_COLLISION(heli, not toggle, true) end) end) -menu.divider(Bodyguard_Heli_All, "删除") -menu.action(Bodyguard_Heli_All, "删除已死亡", {}, "", function() - for key, ent in pairs(Bodyguard.Heli.ped_list) do +menu.divider(Bodyguard_Heli_All2, "删除") +menu.action(Bodyguard_Heli_All2, "删除已死亡", {}, "", function() + for key, ent in pairs(Bodyguard.Heli.pedList) do if ENTITY.DOES_ENTITY_EXIST(ent) and ENTITY.IS_ENTITY_DEAD(ent) then entities.delete(ent) - table.remove(Bodyguard.Heli.ped_list, key) + --table.remove(Bodyguard.Heli.pedList, key) end end - for key, ent in pairs(Bodyguard.Heli.heli_list) do + for key, ent in pairs(Bodyguard.Heli.heliList) do if ENTITY.DOES_ENTITY_EXIST(ent) and ENTITY.IS_ENTITY_DEAD(ent) then entities.delete(ent) - table.remove(Bodyguard.Heli.heli_list, key) + --table.remove(Bodyguard.Heli.heliList, key) end end end) -menu.action(Bodyguard_Heli_All, "删除全部", {}, "", function() - for _, ent in pairs(Bodyguard.Heli.ped_list) do +menu.action(Bodyguard_Heli_All2, "删除全部", {}, "", function() + for _, ent in pairs(Bodyguard.Heli.pedList) do if ENTITY.DOES_ENTITY_EXIST(ent) then entities.delete(ent) end end - for _, ent in pairs(Bodyguard.Heli.heli_list) do + for _, ent in pairs(Bodyguard.Heli.heliList) do if ENTITY.DOES_ENTITY_EXIST(ent) then entities.delete(ent) end end + Bodyguard.Heli.pedList = {} + Bodyguard.Heli.heliList = {} - Bodyguard.Heli.heli_list = {} - Bodyguard.Heli.ped_list = {} + rs_menu.delete_menu_list(Bodyguard.Heli.menuList) + Bodyguard.Heli.index = 0 end) @@ -587,6 +720,11 @@ end) + + + +-- + menu.divider(Bodyguard_Options, "默认设置") -------------------------------- @@ -628,6 +766,7 @@ end) -------------------------------- local Bodyguard_Heli_Setting = menu.list(Bodyguard_Options, "保镖直升机设置", {}, "") + menu.toggle(Bodyguard_Heli_Setting, "无敌", {}, "", function(toggle) Bodyguard.Setting.heli.godmode = toggle end) diff --git a/lib/RScript/Menu/Clean.lua b/lib/RScript/Menu/Clean.lua new file mode 100644 index 0000000..b2cae00 --- /dev/null +++ b/lib/RScript/Menu/Clean.lua @@ -0,0 +1,154 @@ +------------------------------------------ +-- Clean Options +------------------------------------------ + + +local Clean_Options = menu.list(Menu_Root, "清理选项", {}, "移除,清理等") + +local MenuClean = {} + + +--#region Clear Area + +local Clear_Area = menu.list(Clean_Options, "清理区域", {}, "无法清理任务实体") + +local ClearArea = { + radius = 100, + broadcast = 1, +} + +menu.toggle_loop(Clear_Area, "清理区域", { "clsArea" }, "清理区域内所有东西", function() + local coords = ENTITY.GET_ENTITY_COORDS(players.user_ped()) + MISC.CLEAR_AREA(coords.x, coords.y, coords.z, ClearArea.radius, true, false, false, ClearArea.broadcast) +end) +menu.toggle_loop(Clear_Area, "清理载具", { "clsVehicles" }, "清理区域内所有载具", function() + local coords = ENTITY.GET_ENTITY_COORDS(players.user_ped()) + MISC.CLEAR_AREA_OF_VEHICLES(coords.x, coords.y, coords.z, ClearArea.radius, false, false, false, false, + ClearArea.broadcast, false, 0) +end) +menu.toggle_loop(Clear_Area, "清理行人", { "clsPeds" }, "清理区域内所有行人", function() + local coords = ENTITY.GET_ENTITY_COORDS(players.user_ped()) + MISC.CLEAR_AREA_OF_PEDS(coords.x, coords.y, coords.z, ClearArea.radius, ClearArea.broadcast) +end) +menu.toggle_loop(Clear_Area, "清理警察", { "clsCops" }, "清理区域内所有警察", function() + local coords = ENTITY.GET_ENTITY_COORDS(players.user_ped()) + MISC.CLEAR_AREA_OF_COPS(coords.x, coords.y, coords.z, ClearArea.radius, ClearArea.broadcast) +end) +menu.toggle_loop(Clear_Area, "清理物体", { "clsObjects" }, "清理区域内所有物体", function() + local coords = ENTITY.GET_ENTITY_COORDS(players.user_ped()) + MISC.CLEAR_AREA_OF_OBJECTS(coords.x, coords.y, coords.z, ClearArea.radius, ClearArea.broadcast) +end) +menu.toggle_loop(Clear_Area, "清理投掷物", { "clsProjectiles" }, "清理区域内所有子弹、炮弹、投掷物等", + function() + local coords = ENTITY.GET_ENTITY_COORDS(players.user_ped()) + MISC.CLEAR_AREA_OF_PROJECTILES(coords.x, coords.y, coords.z, ClearArea.radius, ClearArea.broadcast) + end) + +menu.divider(Clear_Area, "设置") +menu.slider_float(Clear_Area, "范围半径", { "clsRadius" }, "", + 0, 100000, ClearArea.radius * 100, 1000, function(value) + ClearArea.radius = value * 0.01 + end) +menu.toggle(Clear_Area, "同步到其它玩家", { "clsBroadcast" }, "", function(toggle) + ClearArea.broadcast = toggle and 1 or 0 + util.toast("清理区域 网络同步: " .. tostring(toggle and "开" or "关")) +end, true) + + +--#endregion Clear Area + + + +menu.toggle_loop(Clean_Options, "移除爆炸和火焰", { "clsFire" }, "范围: 30", function() + local pos = ENTITY.GET_ENTITY_COORDS(players.user_ped()) + FIRE.STOP_FIRE_IN_RANGE(pos.x, pos.y, pos.z, 30.0) + FIRE.STOP_ENTITY_FIRE(players.user_ped()) +end) +menu.toggle_loop(Clean_Options, "移除粒子效果", { "clsPtfx" }, "范围: 30", function() + local pos = ENTITY.GET_ENTITY_COORDS(players.user_ped()) + GRAPHICS.REMOVE_PARTICLE_FX_IN_RANGE(pos.x, pos.y, pos.z, 30.0) + GRAPHICS.REMOVE_PARTICLE_FX_FROM_ENTITY(players.user_ped()) +end) +menu.toggle_loop(Clean_Options, "移除视觉效果", { "clsGraphics" }, "", function() + GRAPHICS.ANIMPOSTFX_STOP_ALL() + GRAPHICS.CLEAR_TIMECYCLE_MODIFIER() + --GRAPHICS.SET_TIMECYCLE_MODIFIER("DEFAULT") +end) +menu.toggle_loop(Clean_Options, "移除载具上的黏弹", {}, "", function() + local vehicle = entities.get_user_vehicle_as_handle() + if vehicle ~= INVALID_GUID then + NETWORK.REMOVE_ALL_STICKY_BOMBS_FROM_ENTITY(vehicle, 0) + end +end) +menu.toggle_loop(Clean_Options, "停止所有声音", {}, "", function() + for i = 0, 99 do + AUDIO.STOP_SOUND(i) + AUDIO.RELEASE_SOUND_ID(i) + end +end) + +menu.divider(Clean_Options, "") +menu.action(Clean_Options, "清理已死亡的任务载具", {}, "", function() + local num = 0 + for _, ent in pairs(entities.get_all_vehicles_as_handles()) do + if ENTITY.IS_ENTITY_A_MISSION_ENTITY(ent) and ENTITY.IS_ENTITY_DEAD(ent) then + entities.delete(ent) + + if not ENTITY.DOES_ENTITY_EXIST(num) then + num = num + 1 + end + end + end + + if num > 0 then + util.toast("清理任务载具数量: " .. num) + end +end) +menu.action(Clean_Options, "清理已死亡的任务NPC", {}, "", function() + local num = 0 + for _, ent in pairs(entities.get_all_peds_as_handles()) do + if ENTITY.IS_ENTITY_A_MISSION_ENTITY(ent) and ENTITY.IS_ENTITY_DEAD(ent) then + entities.delete(ent) + + if not ENTITY.DOES_ENTITY_EXIST(num) then + num = num + 1 + end + end + end + + if num > 0 then + util.toast("清理任务NPC数量: " .. num) + end +end) +menu.action(Clean_Options, "中断当前动作", { "clsTask" }, "", function() + TASK.CLEAR_PED_TASKS_IMMEDIATELY(players.user_ped()) +end) + + +menu.textslider(Clean_Options, "清理残留在本地的实体", {}, "切换战局也无法清理掉的本地实体", { + "载具", "NPC", "物体" +}, function(value) + local entity_list = {} + if value == 1 then + entity_list = entities.get_all_vehicles_as_handles() + elseif value == 2 then + entity_list = entities.get_all_peds_as_handles() + elseif value == 3 then + entity_list = entities.get_all_objects_as_handles() + end + + local num = 0 + for _, ent in pairs(entity_list) do + if GET_ENTITY_SCRIPT(ent) == "main_persistent" and NETWORK.NETWORK_GET_ENTITY_IS_LOCAL(ent) then + entities.delete(ent) + + if not ENTITY.DOES_ENTITY_EXIST(num) then + num = num + 1 + end + end + end + + if num > 0 then + util.toast("清理残留在本地的实体数量: " .. num) + end +end) diff --git a/lib/RScript/Menu/Dev.lua b/lib/RScript/Menu/Dev.lua index 1fa0654..f853408 100644 --- a/lib/RScript/Menu/Dev.lua +++ b/lib/RScript/Menu/Dev.lua @@ -1,8 +1,9 @@ ------------------------------------------ ------------- Dev Options ----------- +-- Dev Options ------------------------------------------ -menu.textslider_stateful(Dev_Options, "Copy My Coords & Heading", { "copymypos" }, "", { + +menu.textslider_stateful(Dev_Options, "Copy My Coords & Heading", { "copyMyPos" }, "", { "without key", "with key" }, function(value) local coords = ENTITY.GET_ENTITY_COORDS(players.user_ped()) @@ -24,7 +25,7 @@ menu.action(Dev_Options, "Get Network Time", {}, "", function() "\nAccurate Network Time: " .. NETWORK.GET_NETWORK_TIME_ACCURATE() .. "\nCloud Time: " .. NETWORK.GET_CLOUD_TIME_AS_INT()) end) -menu.action(Dev_Options, "Get Interior ID", { "getinteriorid" }, "", function() +menu.action(Dev_Options, "Get Interior ID", { "getInteriorId" }, "", function() if INTERIOR.IS_INTERIOR_SCENE() then local interior = INTERIOR.GET_INTERIOR_FROM_ENTITY(players.user_ped()) if INTERIOR.IS_VALID_INTERIOR(interior) then @@ -67,7 +68,7 @@ menu.toggle_loop(Dev_Options, "GET_IS_TASK_ACTIVE", { "show_active_task" }, "", end) -local eventGroup = 1 +local eventGroup = 1 -- SCRIPT_EVENT_QUEUE_NETWORK local eventData = memory.alloc(13 * 8) menu.toggle_loop(Dev_Options, "Event Network Entity Damage", {}, "", function() for eventIndex = 0, SCRIPT.GET_NUMBER_OF_EVENTS(eventGroup) - 1 do @@ -88,7 +89,7 @@ menu.toggle_loop(Dev_Options, "Event Network Entity Damage", {}, "", function() local IsWithMeleeWeapon = memory.read_int(eventData + 11 * 8) -- bool local HitMaterial = memory.read_int(eventData + 12 * 8) -- int - local text = "Victim: " .. Victim .. + local text = "\nVictim: " .. Victim .. "\nAttacker: " .. Attacker .. "\nDamage: " .. Damage .. "\nEndurance Damage: " .. EnduranceDamage .. @@ -101,7 +102,6 @@ menu.toggle_loop(Dev_Options, "Event Network Entity Damage", {}, "", function() "\nIs Head Shot: " .. IsHeadShot .. "\nIs With Melee Weapon: " .. IsWithMeleeWeapon .. "\nHit Material: " .. HitMaterial .. - "\nEvent Index: " .. eventNum .. "\n" @@ -115,7 +115,7 @@ end) menu.toggle_loop(Dev_Options, "Log Content Info", { "log_content_info" }, "", function() local content_id = NETWORK.UGC_GET_CONTENT_ID(0) if content_id ~= nil then - local text = "Content Name: " .. tostring(NETWORK.UGC_GET_CONTENT_NAME(0)) .. + local text = "\nContent Name: " .. tostring(NETWORK.UGC_GET_CONTENT_NAME(0)) .. "\nContent ID: " .. content_id .. "\nContent Path: " .. tostring(NETWORK.UGC_GET_CONTENT_PATH(0, 0)) .. "\nRoot Content ID: " .. tostring(NETWORK.UGC_GET_ROOT_CONTENT_ID(0)) .. @@ -142,7 +142,7 @@ menu.action(dev_map_blips, "获取地图所有标记点", {}, "相同的获取 map_blips.menu_list = {} local blip_list = {} - for i = 0, 866, 1 do + for i = 0, 999, 1 do local blip = HUD.GET_CLOSEST_BLIP_INFO_ID(i) if HUD.DOES_BLIP_EXIST(blip) then table.insert(blip_list, blip) @@ -189,33 +189,24 @@ menu.divider(dev_map_blips, "列表") menu.action(Dev_Options, "关闭电脑界面", { "shut_computer" }, "", function() local script_list = { - "appbunkerbusiness", "appsmuggler", "appbusinesshub", "appbikerbusiness", - "apparcadebusinesshub", "apphackertruck", "appfixersecurity", "appavengeroperations", - "appcovertops" + "apparcadebusiness", + "apparcadebusinesshub", + "appavengeroperations", + "appbailoffice", + "appbikerbusiness", + "appbunkerbusiness", + "appbusinesshub", + "appcovertops", + "appfixersecurity", + "apphackertruck", + "appimportexport", + "appinternet", + "appsecuroserv", + "appsmuggler", } for key, script in pairs(script_list) do if IS_SCRIPT_RUNNING(script) then - GLOBAL_SET_INT(Globals.IsUsingComputerScreen, 0) MISC.TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME(script) end end end) - -menu.action(Dev_Options, "结束自由模式任务", { "shut_task" }, "", function() - -- "SMHUD_TIMEREM" /* GXT: TIME REMAINING */ - - local data = { - { script = "gb_casino_heist", addr = 4280 + 1521 }, - { script = "fm_content_island_heist", addr = 13262 + 1460 }, - { script = "fm_content_payphone_hit", addr = 5639 + 724 }, - { script = "fm_content_security_contract", addr = 7095 + 1320 }, - { script = "gb_contraband_buy", addr = 601 + 189 }, - } - - for key, item in pairs(data) do - if IS_SCRIPT_RUNNING(item.script) then - LOCAL_SET_INT(item.script, item.addr, 0) - util.toast(item.script) - end - end -end) diff --git a/lib/RScript/Menu/Entity.lua b/lib/RScript/Menu/Entity.lua index f4e35c7..da436a0 100644 --- a/lib/RScript/Menu/Entity.lua +++ b/lib/RScript/Menu/Entity.lua @@ -1,7 +1,8 @@ ------------------------------------------ ----------- Entity Options ---------- +-- Entity Options ------------------------------------------ + local Entity_Options = menu.list(Menu_Root, "实体选项", {}, "") @@ -9,11 +10,11 @@ local Entity_Options = menu.list(Menu_Root, "实体选项", {}, "") local Entity_NPC_Options = menu.list(Entity_Options, "NPC选项", {}, "") -local tNPC = { +local EntityNPC = { ped_select = 1, } -function tNPC.checkPed(ped, pedTypeSelect) +function EntityNPC.checkPed(ped, pedTypeSelect) if is_player_ped(ped) then return false end @@ -35,34 +36,34 @@ end menu.divider(Entity_NPC_Options, "全部NPC") menu.list_select(Entity_NPC_Options, "NPC类型", {}, "", Misc_T.PedType, 1, function(value) - tNPC.ped_select = value + EntityNPC.ped_select = value end) -menu.action(Entity_NPC_Options, "删除", { "del_ped" }, "", function() +menu.action(Entity_NPC_Options, "删除", { "delPed" }, "", function() for _, ped in pairs(entities.get_all_peds_as_handles()) do - if tNPC.checkPed(ped, tNPC.ped_select) then + if EntityNPC.checkPed(ped, EntityNPC.ped_select) then entities.delete(ped) end end end) -menu.action(Entity_NPC_Options, "死亡", { "dead_ped" }, "", function() +menu.action(Entity_NPC_Options, "死亡", { "deadPed" }, "", function() for _, ped in pairs(entities.get_all_peds_as_handles()) do - if not ENTITY.IS_ENTITY_DEAD(ped) and tNPC.checkPed(ped, tNPC.ped_select) then + if not ENTITY.IS_ENTITY_DEAD(ped) and EntityNPC.checkPed(ped, EntityNPC.ped_select) then SET_ENTITY_HEALTH(ped, 0) end end end) -menu.action(Entity_NPC_Options, "爆头击杀", { "kill_ped" }, "", function() +menu.action(Entity_NPC_Options, "爆头击杀", { "killPed" }, "", function() local weaponHash = util.joaat("WEAPON_APPISTOL") for _, ped in pairs(entities.get_all_peds_as_handles()) do - if not ENTITY.IS_ENTITY_DEAD(ped) and tNPC.checkPed(ped, tNPC.ped_select) then + if not ENTITY.IS_ENTITY_DEAD(ped) and EntityNPC.checkPed(ped, EntityNPC.ped_select) then shoot_ped_head(ped, weaponHash, players.user_ped()) end end end) menu.divider(Entity_NPC_Options, "警察和特警") -menu.toggle_loop(Entity_NPC_Options, "删除", { "del_cop" }, "", function() +menu.toggle_loop(Entity_NPC_Options, "删除", { "delCops" }, "", function() for _, ped_ptr in pairs(entities.get_all_peds_as_pointers()) do local hash = entities.get_model_hash(ped_ptr) if hash == 1581098148 or hash == -1320879687 or hash == -1920001264 then @@ -70,7 +71,7 @@ menu.toggle_loop(Entity_NPC_Options, "删除", { "del_cop" }, "", function() end end end) -menu.toggle_loop(Entity_NPC_Options, "死亡", { "dead_cop" }, "", function() +menu.toggle_loop(Entity_NPC_Options, "死亡", { "deadCops" }, "", function() for _, ped_ptr in pairs(entities.get_all_peds_as_pointers()) do local hash = entities.get_model_hash(ped_ptr) if hash == 1581098148 or hash == -1320879687 or hash == -1920001264 then @@ -80,7 +81,7 @@ menu.toggle_loop(Entity_NPC_Options, "死亡", { "dead_cop" }, "", function() end) menu.divider(Entity_NPC_Options, "友方NPC") -menu.action(Entity_NPC_Options, "无敌强化", { "strong_friendly_ped" }, "", function() +menu.action(Entity_NPC_Options, "无敌强化", { "strongFriendlyPed" }, "", function() for _, ent in pairs(entities.get_all_peds_as_handles()) do if not ENTITY.IS_ENTITY_DEAD(ent) and not is_player_ped(ent) then local rel = PED.GET_RELATIONSHIP_BETWEEN_PEDS(ent, players.user_ped()) @@ -112,33 +113,34 @@ end) local NPC_Weak_Options = menu.list(Entity_Options, "弱化NPC选项", {}, "") -tNPC.Weak = { +EntityNPC.Weak = { ped_select = 1, time_delay = 2000, toggle = { health = false, weapon_damage = true, vehicle_weapon = false, + deaf_blind = false, }, } menu.list_select(NPC_Weak_Options, "NPC类型", {}, "", Misc_T.PedType, 1, function(value) - tNPC.Weak.ped_select = value + EntityNPC.Weak.ped_select = value end) -menu.toggle_loop(NPC_Weak_Options, "弱化", { "weak_ped" }, "", function() +menu.toggle_loop(NPC_Weak_Options, "弱化", { "WeakPed" }, "", function() local weak_health = 100 local weak_weapon_damage = 0.01 for _, ped in pairs(entities.get_all_peds_as_handles()) do - if not ENTITY.IS_ENTITY_DEAD(ped) and tNPC.checkPed(ped, tNPC.Weak.ped_select) then - if tNPC.Weak.toggle.health then + if not ENTITY.IS_ENTITY_DEAD(ped) and EntityNPC.checkPed(ped, EntityNPC.Weak.ped_select) then + if EntityNPC.Weak.toggle.health then if ENTITY.GET_ENTITY_HEALTH(ped) > weak_health then SET_ENTITY_HEALTH(ped, weak_health) end end - if tNPC.Weak.toggle.weapon_damage then + if EntityNPC.Weak.toggle.weapon_damage then PED.SET_COMBAT_FLOAT(ped, 29, weak_weapon_damage) -- WEAPON_DAMAGE_MODIFIER end @@ -150,7 +152,7 @@ menu.toggle_loop(NPC_Weak_Options, "弱化", { "weak_ped" }, "", function() PED.STOP_PED_WEAPON_FIRING_WHEN_DROPPED(ped) PED.DISABLE_PED_INJURED_ON_GROUND_BEHAVIOUR(ped) - if tNPC.Weak.toggle.vehicle_weapon then + if EntityNPC.Weak.toggle.vehicle_weapon then if PED.IS_PED_IN_ANY_VEHICLE(ped, false) then local ped_veh = PED.GET_VEHICLE_PED_IS_IN(ped, false) if VEHICLE.DOES_VEHICLE_HAVE_WEAPONS(ped_veh) then @@ -161,26 +163,44 @@ menu.toggle_loop(NPC_Weak_Options, "弱化", { "weak_ped" }, "", function() end end end + + if EntityNPC.Weak.toggle.deaf_blind then + PED.SET_PED_HIGHLY_PERCEPTIVE(ped, false) + PED.SET_PED_VISUAL_FIELD_PERIPHERAL_RANGE(ped, 0.0) + PED.SET_PED_SEEING_RANGE(ped, 0.0) + PED.SET_PED_HEARING_RANGE(ped, 0.0) + PED.SET_PED_ID_RANGE(ped, 0.0) + PED.SET_PED_VISUAL_FIELD_MIN_ANGLE(ped, 0.0) + PED.SET_PED_VISUAL_FIELD_MAX_ANGLE(ped, 0.0) + PED.SET_PED_VISUAL_FIELD_MIN_ELEVATION_ANGLE(ped, 0.0) + PED.SET_PED_VISUAL_FIELD_MAX_ELEVATION_ANGLE(ped, 0.0) + PED.SET_PED_VISUAL_FIELD_CENTER_ANGLE(ped, 0.0) + end end end - util.yield(tNPC.Weak.time_delay) + util.yield(EntityNPC.Weak.time_delay) end) menu.divider(NPC_Weak_Options, "设置") menu.toggle(NPC_Weak_Options, "弱化血量", {}, "修改血量为: 100", function(toggle) - tNPC.Weak.toggle.health = toggle + EntityNPC.Weak.toggle.health = toggle end) menu.toggle(NPC_Weak_Options, "弱化武器伤害", {}, "修改武器伤害为: 0.01", function(toggle) - tNPC.Weak.toggle.weapon_damage = toggle + EntityNPC.Weak.toggle.weapon_damage = toggle end, true) menu.toggle(NPC_Weak_Options, "禁用载具武器", {}, "", function(toggle) - tNPC.Weak.toggle.vehicle_weapon = toggle + EntityNPC.Weak.toggle.vehicle_weapon = toggle end) +menu.toggle(NPC_Weak_Options, "变成聋瞎", {}, "", function(toggle) + EntityNPC.Weak.toggle.deaf_blind = toggle +end) + + menu.slider(NPC_Weak_Options, "循环间隔", { "setting_weak_ped_time_delay" }, "单位: 毫秒", 0, 5000, 2000, 100, function(value) - tNPC.Weak.time_delay = value + EntityNPC.Weak.time_delay = value end) menu.divider(NPC_Weak_Options, "其它(默认设置)") @@ -197,25 +217,25 @@ menu.readonly(NPC_Weak_Options, "禁止受伤倒地时的行为", "是") local Entity_Hostile_Options = menu.list(Entity_Options, "敌对实体选项", {}, "") -menu.action(Entity_Hostile_Options, "爆炸敌对NPC", { "h_ped_explode" }, "", function() +menu.action(Entity_Hostile_Options, "爆炸敌对NPC", { "hPedExplode" }, "", function() explode_hostile_peds() end) -menu.action(Entity_Hostile_Options, "爆炸敌对载具", { "h_veh_explode" }, "", function() +menu.action(Entity_Hostile_Options, "爆炸敌对载具", { "hVehExplode" }, "", function() explode_hostile_vehicles() end) -menu.action(Entity_Hostile_Options, "爆炸敌对物体", { "h_obj_explode" }, "", function() +menu.action(Entity_Hostile_Options, "爆炸敌对物体", { "hObjExplode" }, "", function() explode_hostile_objects() end) menu.divider(Entity_Hostile_Options, "") -menu.action(Entity_Hostile_Options, "破坏敌对载具引擎", { "h_veh_kill_engine" }, "", function() +menu.action(Entity_Hostile_Options, "破坏敌对载具引擎", { "hVehKillEngine" }, "", function() for _, vehicle in pairs(entities.get_all_vehicles_as_handles()) do if is_hostile_entity(vehicle) then VEHICLE.SET_VEHICLE_ENGINE_HEALTH(vehicle, -4000.0) end end end) -menu.action(Entity_Hostile_Options, "杀死敌对物体", { "h_obj_kill" }, "", function() +menu.action(Entity_Hostile_Options, "杀死敌对物体", { "hObjKill" }, "", function() for _, object in pairs(entities.get_all_objects_as_handles()) do if is_hostile_entity(object) then SET_ENTITY_HEALTH(object, 0) @@ -230,12 +250,12 @@ end) local Entity_Vehicle_Options = menu.list(Entity_Options, "载具选项", {}, "") -local tEntityVehicle = { - exceptPlayer = true, +local EntityVehicle = { + exceptPlayer = false, } -function tEntityVehicle.checkVehicle(vehicle) - if tEntityVehicle.exceptPlayer and is_player_vehicle(vehicle) then +function EntityVehicle.checkVehicle(vehicle) + if EntityVehicle.exceptPlayer and is_player_vehicle(vehicle) then return false end @@ -244,37 +264,32 @@ end menu.divider(Entity_Vehicle_Options, "全部载具") -menu.action(Entity_Vehicle_Options, "解锁车门和打开引擎", { "unlock_vehs_door" }, "", function() +menu.action(Entity_Vehicle_Options, "解锁车门和打开引擎", { "unlockVehsDoor" }, "", function() for _, vehicle in pairs(entities.get_all_vehicles_as_handles()) do - if tEntityVehicle.checkVehicle(vehicle) then + if EntityVehicle.checkVehicle(vehicle) then unlock_vehicle_doors(vehicle) - VEHICLE.SET_VEHICLE_IS_CONSIDERED_BY_PLAYER(vehicle, true) VEHICLE.SET_VEHICLE_UNDRIVEABLE(vehicle, false) VEHICLE.SET_VEHICLE_ENGINE_ON(vehicle, true, true, false) - VEHICLE.SET_VEHICLE_IS_WANTED(vehicle, false) - VEHICLE.SET_VEHICLE_INFLUENCES_WANTED_LEVEL(vehicle, false) - VEHICLE.SET_VEHICLE_HAS_BEEN_OWNED_BY_PLAYER(vehicle, true) - VEHICLE.SET_VEHICLE_IS_STOLEN(vehicle, false) - VEHICLE.SET_POLICE_FOCUS_WILL_TRACK_VEHICLE(vehicle, false) + clear_vehicle_wanted(vehicle) ENTITY.FREEZE_ENTITY_POSITION(vehicle, false) end end end) -menu.action(Entity_Vehicle_Options, "打开左右车门和引擎", { "open_vehs_door" }, "", function() +menu.action(Entity_Vehicle_Options, "打开左右车门和引擎", { "openVehsDoor" }, "", function() for _, vehicle in pairs(entities.get_all_vehicles_as_handles()) do - if tEntityVehicle.checkVehicle(vehicle) then + if EntityVehicle.checkVehicle(vehicle) then VEHICLE.SET_VEHICLE_ENGINE_ON(vehicle, true, true, false) VEHICLE.SET_VEHICLE_DOOR_OPEN(vehicle, 0, false, false) VEHICLE.SET_VEHICLE_DOOR_OPEN(vehicle, 1, false, false) end end end) -menu.action(Entity_Vehicle_Options, "拆下左右车门和打开引擎", { "broken_vehs_door" }, "", function() +menu.action(Entity_Vehicle_Options, "拆下左右车门和打开引擎", { "brokenVehsDoor" }, "", function() for _, vehicle in pairs(entities.get_all_vehicles_as_handles()) do - if tEntityVehicle.checkVehicle(vehicle) then + if EntityVehicle.checkVehicle(vehicle) then VEHICLE.SET_VEHICLE_ENGINE_ON(vehicle, true, true, false) VEHICLE.SET_VEHICLE_DOOR_BROKEN(vehicle, 0, false) VEHICLE.SET_VEHICLE_DOOR_BROKEN(vehicle, 1, false) @@ -282,10 +297,28 @@ menu.action(Entity_Vehicle_Options, "拆下左右车门和打开引擎", { "brok end end) +menu.toggle_loop(Entity_Vehicle_Options, "按F解锁附近载具车门", { "fOpenVeh" }, "", function() + -- INPUT_ENTER 23 + if PAD.IS_CONTROL_PRESSED(0, 23) and not PED.IS_PED_IN_ANY_VEHICLE(players.user_ped(), false) then + for _, vehicle in pairs(entities.get_all_vehicles_as_handles()) do + if EntityVehicle.checkVehicle(vehicle) then + unlock_vehicle_doors(vehicle) + + VEHICLE.SET_VEHICLE_UNDRIVEABLE(vehicle, false) + VEHICLE.SET_VEHICLE_ENGINE_ON(vehicle, true, true, false) + + clear_vehicle_wanted(vehicle) + + ENTITY.FREEZE_ENTITY_POSITION(vehicle, false) + end + end + end +end) + menu.divider(Entity_Vehicle_Options, "设置") menu.toggle(Entity_Vehicle_Options, "排除 玩家载具", {}, "", function(toggle) - tEntityVehicle.exceptPlayer = toggle -end, true) + EntityVehicle.exceptPlayer = toggle +end, EntityVehicle.exceptPlayer) --#endregion @@ -294,17 +327,17 @@ end, true) local Entity_Pickup_Options = menu.list(Entity_Options, "拾取物选项", {}, "") -local tEntityPickup = { +local EntityPickup = { mission = true, } menu.toggle(Entity_Pickup_Options, "任务拾取物", {}, "", function(toggle) - tEntityPickup.mission = toggle + EntityPickup.mission = toggle end, true) -menu.action(Entity_Pickup_Options, "全部传送到我", {}, "", function() +menu.action(Entity_Pickup_Options, "全部传送到我", { "tpmePickups" }, "", function() for _, pickup in pairs(entities.get_all_pickups_as_handles()) do - if tEntityPickup.mission and not ENTITY.IS_ENTITY_A_MISSION_ENTITY(pickup) then + if EntityPickup.mission and not ENTITY.IS_ENTITY_A_MISSION_ENTITY(pickup) then goto continue end @@ -323,7 +356,8 @@ end) local Entity_Object_Options = menu.list(Entity_Options, "摄像头和门", {}, "") menu.divider(Entity_Object_Options, "摄像头") -local Cams = { + +local Cams = { 548760764, --prop_cctv_cam_01a -354221800, --prop_cctv_cam_01b -1159421424, --prop_cctv_cam_02a @@ -341,89 +375,78 @@ local Cams = { -247409812, --xm_prop_x17_server_farm_cctv_01 2135655372 --prop_cctv_pole_04 } -local Cams2 = { +local Cams2 = { 1919058329, --prop_cctv_cam_04b 1849991131 --prop_snow_cam_03a } -menu.action(Entity_Object_Options, "删除", { "del_cam" }, "", function() - for _, obj_ptr in pairs(entities.get_all_objects_as_pointers()) do - local hash = entities.get_model_hash(obj_ptr) - for i = 1, #Cams do - if hash == Cams[i] then - entities.delete(obj_ptr) - end + +menu.action(Entity_Object_Options, "删除", { "delCams" }, "", function() + for _, ent_ptr in pairs(entities.get_all_objects_as_pointers()) do + local model_hash = entities.get_model_hash(ent_ptr) + if table.contains(Cams, model_hash) then + entities.delete(ent_ptr) end end end) -menu.click_slider(Entity_Object_Options, "上下移动", { "move_cam" }, "易导致bug", +menu.click_slider(Entity_Object_Options, "上下移动", { "moveCams" }, "易导致bug", -30, 30, 0, 1, function(value) - for _, ent in pairs(entities.get_all_objects_as_handles()) do - local EntityModel = ENTITY.GET_ENTITY_MODEL(ent) - for i = 1, #Cams do - if EntityModel == Cams[i] then - set_entity_move(ent, 0.0, 0.0, value) - end + for _, ent_ptr in pairs(entities.get_all_objects_as_pointers()) do + local model_hash = entities.get_model_hash(ent_ptr) + if table.contains(Cams, model_hash) then + local ent = entities.pointer_to_handle(ent_ptr) + set_entity_move(ent, 0.0, 0.0, value) end end end) + + menu.divider(Entity_Object_Options, "佩里科岛的门(本地有效)") -local Perico_Doors = { + +local CayoPericoDoors = { -- 豪宅内 各种铁门 - -1052729812, -- h4_prop_h4_gate_l_01a - 1866987242, -- h4_prop_h4_gate_r_01a - -1360938964, -- h4_prop_h4_gate_02a - -2058786200, -- h4_prop_h4_gate_03a - -630812075, -- h4_prop_h4_gate_05a + -1052729812, -- h4_prop_h4_gate_l_01a + 1866987242, -- h4_prop_h4_gate_r_01a + -1360938964, -- h4_prop_h4_gate_02a + -2058786200, -- h4_prop_h4_gate_03a + -630812075, -- h4_prop_h4_gate_05a -- 豪宅内 电梯门 - -1240156945, -- v_ilev_garageliftdoor - -576022807, -- h4_prop_office_elevator_door_01 + -1240156945, -- v_ilev_garageliftdoor + -576022807, -- h4_prop_office_elevator_door_01 -- 豪宅大门 - -1574151574, -- h4_prop_h4_gate_r_03a - 1215477734, -- h4_prop_h4_gate_l_03a + -1574151574, -- h4_prop_h4_gate_r_03a + 1215477734, -- h4_prop_h4_gate_l_03a -- 豪宅外 铁门 - 227019171, -- prop_fnclink_02gate6_r - 1526539404, -- prop_fnclink_02gate6_l - 141297241, -- h4_prop_h4_garage_door_01a - -1156020871 -- prop_fnclink_03gate5 + 227019171, -- prop_fnclink_02gate6_r + 1526539404, -- prop_fnclink_02gate6_l + 141297241, -- h4_prop_h4_garage_door_01a + -1156020871 -- prop_fnclink_03gate5 } -local Perico_Doors2 = -607013269 -- h4_prop_h4_door_01a 豪宅内的库房门 - -menu.action(Entity_Object_Options, "删除门", { "delete_perico_door" }, "", function() - for _, ent in pairs(entities.get_all_objects_as_handles()) do - local EntityModel = ENTITY.GET_ENTITY_MODEL(ent) - for i = 1, #Perico_Doors do - if EntityModel == Perico_Doors[i] then - entities.delete(ent) - end +local CayoPericoDoors2 = -607013269 -- h4_prop_h4_door_01a 豪宅内的库房门 + +menu.action(Entity_Object_Options, "删除门", { "deletePericoDoors" }, "", function() + for _, ent_ptr in pairs(entities.get_all_objects_as_pointers()) do + local model_hash = entities.get_model_hash(ent_ptr) + if table.contains(CayoPericoDoors, model_hash) then + entities.delete(ent_ptr) end end end) menu.action(Entity_Object_Options, "开启无碰撞", {}, "可以直接穿过门,包括库房门", function() - for _, ent in pairs(entities.get_all_objects_as_handles()) do - local EntityModel = ENTITY.GET_ENTITY_MODEL(ent) - if EntityModel == Perico_Doors2 then + for _, ent_ptr in pairs(entities.get_all_objects_as_pointers()) do + local model_hash = entities.get_model_hash(ent_ptr) + if model_hash == CayoPericoDoors2 or table.contains(CayoPericoDoors, model_hash) then + local ent = entities.pointer_to_handle(ent_ptr) ENTITY.SET_ENTITY_COLLISION(ent, false, true) - else - for i = 1, #Perico_Doors do - if EntityModel == Perico_Doors[i] then - ENTITY.SET_ENTITY_COLLISION(ent, false, true) - end - end end end end) menu.action(Entity_Object_Options, "关闭无碰撞", {}, "", function() - for _, ent in pairs(entities.get_all_objects_as_handles()) do - local EntityModel = ENTITY.GET_ENTITY_MODEL(ent) - if EntityModel == Perico_Doors2 then + for _, ent_ptr in pairs(entities.get_all_objects_as_pointers()) do + local model_hash = entities.get_model_hash(ent_ptr) + if model_hash == CayoPericoDoors2 or table.contains(CayoPericoDoors, model_hash) then + local ent = entities.pointer_to_handle(ent_ptr) ENTITY.SET_ENTITY_COLLISION(ent, true, true) - else - for i = 1, #Perico_Doors do - if EntityModel == Perico_Doors[i] then - ENTITY.SET_ENTITY_COLLISION(ent, true, true) - end - end end end end) @@ -975,7 +998,7 @@ function Entity_Info.EntityInfo(entity) table.insert(entity_info.main, info) -- Entity Type - local entity_type = get_entity_type(entity) + local entity_type = get_entity_type_text(entity) info = { "Entity Type", entity_type } table.insert(entity_info.main, info) @@ -1044,7 +1067,7 @@ function Entity_Info.EntityInfo(entity) -- Script local entity_script = GET_ENTITY_SCRIPT(entity) - if entity_script ~= nil then + if entity_script ~= "" then info = { "Script", entity_script } table.insert(entity_info.main, info) end @@ -1117,7 +1140,7 @@ function Entity_Info.EntityInfo(entity) table.insert(entity_info.attached, info) -- Entity Type - info = { "Entity Type", get_entity_type(attached_entity) } + info = { "Entity Type", get_entity_type_text(attached_entity) } table.insert(entity_info.attached, info) end @@ -1415,7 +1438,7 @@ function Entity_Info.GetBaseInfo(entity) table.insert(base_info.entity, info) -- Entity Type - local entity_type = get_entity_type(entity) + local entity_type = get_entity_type_text(entity) info = { "Entity Type", entity_type } table.insert(base_info.entity, info) @@ -1484,7 +1507,7 @@ function Entity_Info.GetBaseInfo(entity) -- Script local entity_script = GET_ENTITY_SCRIPT(entity) - if entity_script ~= nil then + if entity_script ~= "" then info = { "Script", entity_script } table.insert(base_info.entity, info) end @@ -1528,7 +1551,7 @@ function Entity_Info.GetBaseInfo(entity) table.insert(base_info.entity, info) -- Entity Type - info = { "Attached Entity Type", get_entity_type(attached_entity) } + info = { "Attached Entity Type", get_entity_type_text(attached_entity) } table.insert(base_info.entity, info) end @@ -1689,7 +1712,7 @@ local tEntityInfo = { infoText = "", - entityType = "All", + entityType = ENTITY_ALL, showToggles = { base = true, entity = false, @@ -1746,10 +1769,7 @@ function tEntityInfo.generateMenus() local menu_parent = tEntityInfo.menuList -- Clear Old Menus - local children = menu.get_children(menu_parent) - for key, value in pairs(children) do - menu.delete(value) - end + rs_menu.delete_menu_children(menu_parent) if tEntityInfo.showToggles.base then @@ -1820,7 +1840,7 @@ function tEntityInfo.generateMenus() end menu.toggle_loop(Entity_Info_Options, "获取目标实体信息[E键]", {}, "", function() - Loop_Handler.draw_centred_point(true) + LoopHandler.drawCentredPoint(true) local result = get_raycast_result(1500, -1) if result.didHit then @@ -1829,15 +1849,15 @@ menu.toggle_loop(Entity_Info_Options, "获取目标实体信息[E键]", {}, "", local ent = result.hitEntity local ent_type = get_entity_type(ent) - if ent_type ~= "No Entity" then + if ent_type ~= ENTITY_NONE then draw_line_colour = { r = 0, g = 255, b = 0, a = 255 } end DRAW_LINE(player_pos, result.endCoords, draw_line_colour) if PAD.IS_CONTROL_PRESSED(0, 51) then - if ent_type ~= "No Entity" then - if tEntityInfo.entityType ~= "All" and tEntityInfo.entityType ~= ent_type then + if ent_type ~= ENTITY_NONE then + if tEntityInfo.entityType ~= ENTITY_ALL and tEntityInfo.entityType ~= ent_type then tEntityInfo.targetEntity = 0 return end @@ -1888,12 +1908,12 @@ menu.toggle_loop(Entity_Info_Options, "获取目标实体信息[E键]", {}, "", end end end, function() - Loop_Handler.draw_centred_point(false) + LoopHandler.drawCentredPoint(false) tEntityInfo.targetEntity = 0 end) menu.list_select(Entity_Info_Options, "实体类型", {}, "", Misc_T.EntityTypeAll, 1, function(index, name) - tEntityInfo.entityType = name + tEntityInfo.entityType = index end) @@ -1935,7 +1955,7 @@ end) local Entity_Control_Options = menu.list(Entity_Options, "实体控制", {}, "") local tEntityControl = { - entityType = "All", + entityType = ENTITY_ALL, } function tEntityControl.GenerateMenuHead(menu_parent, entity) @@ -1980,18 +2000,14 @@ tEntityControl.InitListData() -- 清理并初始化数据 function tEntityControl.ClearListData() -- 实体的 menu.list() - for k, v in pairs(tEntityControl.entity_menu_list) do - if v ~= nil and menu.is_ref_valid(v) then - menu.delete(v) - end - end + rs_menu.delete_menu_list(tEntityControl.entity_menu_list) -- 初始化 tEntityControl.InitListData() menu.set_menu_name(tEntityControl.count_divider, "实体列表") end menu.toggle_loop(Entity_Control_Options, "控制目标实体[E键]", {}, "", function() - Loop_Handler.draw_centred_point(true) + LoopHandler.drawCentredPoint(true) local result = get_raycast_result(1500, -1) if result.didHit then @@ -2000,15 +2016,15 @@ menu.toggle_loop(Entity_Control_Options, "控制目标实体[E键]", {}, "", fun local ent = result.hitEntity local ent_type = get_entity_type(ent) - if ent_type ~= "No Entity" then + if ent_type ~= ENTITY_NONE then draw_line_colour = { r = 0, g = 255, b = 0, a = 255 } end DRAW_LINE(player_pos, result.endCoords, draw_line_colour) if PAD.IS_CONTROL_PRESSED(0, 51) then - if ent_type ~= "No Entity" then - if tEntityControl.entityType ~= "All" and tEntityControl.entityType ~= ent_type then + if ent_type ~= ENTITY_NONE then + if tEntityControl.entityType ~= ENTITY_ALL and tEntityControl.entityType ~= ent_type then return end @@ -2042,16 +2058,16 @@ menu.toggle_loop(Entity_Control_Options, "控制目标实体[E键]", {}, "", fun end end end, function() - Loop_Handler.draw_centred_point(false) + LoopHandler.drawCentredPoint(false) end) menu.list_select(Entity_Control_Options, "实体类型", {}, "", Misc_T.EntityTypeAll, 1, function(index, name) - tEntityControl.entityType = name + tEntityControl.entityType = index end) menu.action(Entity_Control_Options, "清空列表", {}, "", function() tEntityControl.ClearListData() - Loop_Handler.Entity.ClearToggles() + LoopHandler.Entity.clearToggles() end) tEntityControl.count_divider = menu.divider(Entity_Control_Options, "实体列表") @@ -2061,11 +2077,11 @@ tEntityControl.count_divider = menu.divider(Entity_Control_Options, "实体列 --#region Manage All Entity -local Manage_All_Entity = menu.list(Entity_Options, "管理全部实体", { "manage_all_entity" }, "") +local Manage_All_Entity = menu.list(Entity_Options, "管理全部实体", {}, "") local All_Entity = { -- 实体类型 - entityType = "Ped", + entityType = ENTITY_PED, -- 筛选设置 filter = { @@ -2095,8 +2111,8 @@ local All_Entity = { sortMethod = 1, } -menu.list_select(Manage_All_Entity, "实体类型", {}, "", Misc_T.EntityType, 1, function(value, name) - All_Entity.entityType = name +menu.list_select(Manage_All_Entity, "实体类型", {}, "", Misc_T.EntityType, 1, function(index, name) + All_Entity.entityType = index end) @@ -2405,11 +2421,7 @@ function All_Entity.ClearListData() end end -- 实体的 menu.list() - for k, v in pairs(All_Entity.entity_menu_list) do - if v ~= nil and menu.is_ref_valid(v) then - menu.delete(v) - end - end + rs_menu.delete_menu_list(All_Entity.entity_menu_list) -- 初始化 All_Entity.InitListData() menu.set_menu_name(All_Entity.count_divider, "实体列表") @@ -2470,7 +2482,7 @@ end) menu.action(Manage_All_Entity, "清空列表", {}, "", function() All_Entity.ClearListData() - Loop_Handler.Entity.ClearToggles() + LoopHandler.Entity.clearToggles() end) All_Entity.count_divider = menu.divider(Manage_All_Entity, "实体列表") diff --git a/lib/RScript/Menu/Mission.lua b/lib/RScript/Menu/Mission.lua index 8958f00..ab44d3e 100644 --- a/lib/RScript/Menu/Mission.lua +++ b/lib/RScript/Menu/Mission.lua @@ -1,167 +1,32 @@ -------------------------------------------- ----------- Mission Options ---------- -------------------------------------------- +------------------------------------------ +-- Mission Options +------------------------------------------ -local Mission_Options = menu.list(Menu_Root, "任务选项", {}, "") - - --------------------------------- --- Property Mission --------------------------------- - -local Property_Mission = menu.list(Mission_Options, "资产任务", {}, "") - ---#region Special Cargo - -local Special_Cargo = menu.list(Property_Mission, "特种货物", {}, "") - ---#region Special Cargo Tool - -local Special_Cargo_Tool = menu.list(Special_Cargo, "工具", {}, "") - -menu.toggle(Special_Cargo_Tool, "无冷却时间", { "nocd_specialcargo" }, "购买和出售", function(toggle) - Globals.RemoveCooldown.SpecialCargo(toggle) - Loop_Handler.Tunables.Cooldown.SpecialCargo = toggle -end) -menu.toggle(Special_Cargo_Tool, "无通缉", {}, "", function(toggle) - Globals.SpecialCargo.NoWanted(toggle) - Loop_Handler.Tunables.SpecialCargo.NoWanted = toggle -end) - -menu.divider(Special_Cargo_Tool, "任务助手") -menu.action(Special_Cargo_Tool, "购买货物 任务助手", {}, - "需要点击两次\n第一次点击会自动清空任务记录,只保留开启推荐的购买任务,禁用其它任务,打开电脑界面\n开启任务后,第二次点击就会将货物传送到我\n记得设置移除冷却时间", - function() - if IS_SCRIPT_RUNNING("gb_contraband_buy") then - local entity_list = get_entities_by_hash("pickup", true, -265116550, 1688540826, -1143129136) - if next(entity_list) ~= nil then - OBJECT.SET_MAX_NUM_PORTABLE_PICKUPS_CARRIED_BY_PLAYER(ENTITY.GET_ENTITY_MODEL(entity_list[1]), 3) - for _, ent in pairs(entity_list) do - tp_entity_to_me(ent) - end - else - util.toast("未找到货物") - end - else - if players.get_org_type(players.user()) ~= 0 then - menu.trigger_commands("ceostart") - util.toast("已自动成为CEO") - end - - Globals.SpecialCargo.ClearMissionHistory() - for key, offset in pairs(Globals.SpecialCargo.Buy_Offsets) do - if key == 1 then -- EXEC_DISABLE_BUY_AFTERMATH - GLOBAL_SET_INT(262145 + offset, 0) - else - GLOBAL_SET_INT(262145 + offset, 1) - end - end - menu.trigger_commands("appterrorbyte") - PAD.SET_CURSOR_POSITION(0.718, 0.272) - - util.toast("请先开启任务") - end - end) -menu.action(Special_Cargo_Tool, "出售货物 任务助手", {}, "清空任务记录,只保留开启推荐的出售任务,禁用其它任务", - function() - Globals.SpecialCargo.ClearMissionHistory() - for key, offset in pairs(Globals.SpecialCargo.Sell_Offsets) do - if key == 10 then -- EXEC_DISABLE_SELL_NODAMAGE - GLOBAL_SET_INT(262145 + offset, 0) - else - GLOBAL_SET_INT(262145 + offset, 1) - end - end - end) - -menu.divider(Special_Cargo_Tool, "禁用任务") - -local special_cargo_missions = { - buy = {}, - sell = {} -} - -special_cargo_missions.menu_buy = menu.list(Special_Cargo_Tool, "禁用购买货物任务", {}, "", function() - if not special_cargo_missions.buy.created then - Loop_Handler.Tunables.SpecialCargo.Buy = {} - special_cargo_missions.buy.toggle_menus = {} - menu.toggle(special_cargo_missions.menu_buy, "全部开/关", {}, "", function(toggle) - for key, value in pairs(special_cargo_missions.buy.toggle_menus) do - menu.set_value(value, toggle) - end - end) +local Mission_Options = menu.list(Menu_Root, "任务选项", {}, "") - for key, offset in pairs(Globals.SpecialCargo.Buy_Offsets) do - local name = Globals.SpecialCargo.Buy_Names[key][1] - local help = Globals.SpecialCargo.Buy_Names[key][2] - local global = 262145 + offset - special_cargo_missions.buy.toggle_menus[global] = menu.toggle(special_cargo_missions.menu_buy, name, {}, help, - function(toggle) - if toggle then - GLOBAL_SET_INT(global, 1) - else - GLOBAL_SET_INT(global, 0) - end - Loop_Handler.Tunables.SpecialCargo.Buy[global] = toggle - end) - end +---------------------------------- +-- Property Mission +---------------------------------- - special_cargo_missions.buy.created = true - end -end) +local Property_Mission = menu.list(Mission_Options, "资产任务", {}, "") -special_cargo_missions.menu_sell = menu.list(Special_Cargo_Tool, "禁用出售货物任务", {}, "", function() - if not special_cargo_missions.sell.created then - Loop_Handler.Tunables.SpecialCargo.Sell = {} - special_cargo_missions.sell.toggle_menus = {} - menu.toggle(special_cargo_missions.menu_sell, "全部开/关", {}, "", function(toggle) - for key, value in pairs(special_cargo_missions.sell.toggle_menus) do - menu.set_value(value, toggle) - end - end) +-------------------------- +-- Special Cargo +-------------------------- - for key, offset in pairs(Globals.SpecialCargo.Sell_Offsets) do - local name = Globals.SpecialCargo.Sell_Names[key][1] - local help = Globals.SpecialCargo.Sell_Names[key][2] - local global = 262145 + offset +local Special_Cargo = menu.list(Property_Mission, "特种货物", {}, "") - special_cargo_missions.sell.toggle_menus[global] = menu.toggle(special_cargo_missions.menu_sell, name, {}, - help, - function(toggle) - if toggle then - GLOBAL_SET_INT(global, 1) - else - GLOBAL_SET_INT(global, 0) - end - Loop_Handler.Tunables.SpecialCargo.Sell[global] = toggle - end) - end - special_cargo_missions.sell.created = true - end -end) +--#region Special Cargo Tool -menu.divider(Special_Cargo_Tool, "") -menu.toggle_loop(Special_Cargo_Tool, "清空任务记录", {}, "就可以重复做同一个任务了", function() - Globals.SpecialCargo.ClearMissionHistory() -end) -menu.slider(Special_Cargo_Tool, "货物类型刷新时间", { "cargo_type_refresh_time" }, "", - 0, 2880, 2880, 100, function(value) - TUNABLE_SET_INT(Tunables.EXEC_CONTRABAND_TYPE_REFRESH_TIME, value) - Loop_Handler.Tunables.SpecialCargo.Type_Refresh_Time = value - end) -menu.slider_float(Special_Cargo_Tool, "特殊物品概率", { "cargo_special_item_chance" }, "", - 0, 100, 10, 10, function(value) - value = value * 0.01 - TUNABLE_SET_FLOAT(Tunables.EXEC_CONTRABAND_SPECIAL_ITEM_CHANCE, value) - Loop_Handler.Tunables.SpecialCargo.Special_Item_Chance = value - end) +local Special_Cargo_Tool = menu.list(Special_Cargo, "工具", {}, "") --#endregion + menu.action(Special_Cargo, "传送到 特种货物", { "tp_cargo" }, "", function() local blip = HUD.GET_NEXT_BLIP_INFO_ID(478) if HUD.DOES_BLIP_EXIST(blip) then @@ -170,11 +35,11 @@ menu.action(Special_Cargo, "传送到 特种货物", { "tp_cargo" }, "", functio end end) menu.action(Special_Cargo, "特种货物 传送到我", { "tpme_cargo" }, "", function() - local entity_list = get_entities_by_hash("pickup", true, -265116550, 1688540826, -1143129136) --货物 + local entity_list = get_mission_pickups("gb_contraband_buy") if next(entity_list) ~= nil then OBJECT.SET_MAX_NUM_PORTABLE_PICKUPS_CARRIED_BY_PLAYER(ENTITY.GET_ENTITY_MODEL(entity_list[1]), 3) for _, ent in pairs(entity_list) do - tp_entity_to_me(ent) + tp_pickup_to_me(ent) end else local blip = HUD.GET_NEXT_BLIP_INFO_ID(478) @@ -194,20 +59,23 @@ menu.action(Special_Cargo, "特种货物 传送到我", { "tpme_cargo" }, "", fu end end) menu.action(Special_Cargo, "特种货物(载具) 传送到我", {}, "Trackify追踪的车", function() - local entity_list = get_entities_by_hash("object", true, -1322183878, -2022916910) --车里的货物 - if next(entity_list) ~= nil then - for _, ent in pairs(entity_list) do - if ENTITY.IS_ENTITY_ATTACHED(ent) then - local attached_ent = ENTITY.GET_ENTITY_ATTACHED_TO(ent) - if ENTITY.IS_ENTITY_A_VEHICLE(attached_ent) then - tp_vehicle_to_me(attached_ent, "delete", "delete") - end + local entity_list = get_mission_entities_by_hash(ENTITY_OBJECT, "gb_contraband_buy", -1322183878, -2022916910) -- 车里的货物 + if next(entity_list) == nil then + return + end + + for _, ent in pairs(entity_list) do + if ENTITY.IS_ENTITY_ATTACHED(ent) then + local attached_ent = ENTITY.GET_ENTITY_ATTACHED_TO(ent) + if ENTITY.IS_ENTITY_A_VEHICLE(attached_ent) then + tp_vehicle_to_me(attached_ent, "delete", "delete") end end end end) menu.divider(Special_Cargo, "") + menu.action(Special_Cargo, "传送到 仓库助理", { "tp_cargo_assistant" }, "让他去拉货", function() local blip = HUD.GET_NEXT_BLIP_INFO_ID(480) if HUD.DOES_BLIP_EXIST(blip) then @@ -215,6 +83,7 @@ menu.action(Special_Cargo, "传送到 仓库助理", { "tp_cargo_assistant" }, " teleport2(coords.x - 1.0, coords.y, coords.z) end end) + local special_cargo_lupe_menu special_cargo_lupe_menu = menu.list_action(Special_Cargo, "卢佩: 传送到 水下货箱", {}, "", { { -1, "刷新货箱列表" } }, function(value) @@ -228,7 +97,7 @@ special_cargo_lupe_menu = menu.list_action(Special_Cargo, "卢佩: 传送到 水 for k, ent in pairs(entities.get_all_objects_as_handles()) do if ENTITY.IS_ENTITY_A_MISSION_ENTITY(ent) then local EntityHash = ENTITY.GET_ENTITY_MODEL(ent) - if is_in_table(water_cargo_hash_list, EntityHash) then + if table.contains(water_cargo_hash_list, EntityHash) then table.insert(list_item_data, { ent, "货箱 " .. i }) i = i + 1 end @@ -249,226 +118,23 @@ special_cargo_lupe_menu = menu.list_action(Special_Cargo, "卢佩: 传送到 水 end end) ---#endregion - - ---#region Vehicle Cargo - -local Vehicle_Cargo = menu.list(Property_Mission, "载具货物", {}, "") - ---#region Vehicle Cargo Tool - -local Vehicle_Cargo_Tool = menu.list(Vehicle_Cargo, "工具", {}, "") - -menu.toggle(Vehicle_Cargo_Tool, "无冷却时间", { "nocd_vehcargo" }, "购买和出售", function(toggle) - Globals.RemoveCooldown.VehicleCargo(toggle) - Loop_Handler.Tunables.Cooldown.VehicleCargo = toggle -end) -menu.toggle(Vehicle_Cargo_Tool, "无通缉", {}, "", function(toggle) - Globals.VehicleCargo.NoWanted(toggle) - Loop_Handler.Tunables.VehicleCargo.NoWanted = toggle -end) -menu.toggle(Vehicle_Cargo_Tool, "无修理费", {}, "", function(toggle) - Globals.VehicleCargo.NoDamageReduction(toggle) - Loop_Handler.Tunables.VehicleCargo.NoDamageReduction = toggle -end) - ---#endregion - -menu.action(Vehicle_Cargo, "载具货物 传送到我", { "tpme_vehcargo" }, "", function() - local script = "gb_vehicle_export" - if not IS_SCRIPT_RUNNING(script) then - return - end - util.spoof_script(script, function() - local net_id = LOCAL_GET_INT(script, Locals.gb_vehicle_export.vehicle_net_id) - if net_id then - local vehicle = NETWORK.NET_TO_VEH(net_id) - if ENTITY.IS_ENTITY_A_VEHICLE(vehicle) then - tp_vehicle_to_me(vehicle, "", "delete") - VEHICLE.SET_VEHICLE_FORWARD_SPEED(vehicle, 0.0) - end - end - end) -end) - -menu.action(Vehicle_Cargo, "结束任务", {}, "载具送到仓库即算成功送达,如未结束任务则使用本选项", function() - local script = "gb_vehicle_export" - if not IS_SCRIPT_RUNNING(script) then - return - end - LOCAL_SET_INT(script, Locals.gb_vehicle_export.mission_start_time, 0) -end) - -menu.divider(Vehicle_Cargo, "") -local vehicle_cargo_menu -vehicle_cargo_menu = menu.list_action(Vehicle_Cargo, "任务载具列表", {}, "点击目标载具即可传送到我", - { { -1, "刷新载具列表" } }, function(value) - if value == -1 then - local list_item_data = { { -1, "刷新载具列表" } } - - for k, veh in pairs(entities.get_all_vehicles_as_handles()) do - if ENTITY.IS_ENTITY_A_MISSION_ENTITY(veh) then - table.insert(list_item_data, { veh, get_vehicle_display_name(veh) }) - end - end - - menu.set_list_action_options(vehicle_cargo_menu, list_item_data) - util.toast("已刷新,请重新打开该列表") - else - local ent = value - if ENTITY.DOES_ENTITY_EXIST(ent) then - tp_vehicle_to_me(ent, "", "delete") - VEHICLE.SET_VEHICLE_FORWARD_SPEED(ent, 0.0) - end - end - end) - ---#endregion ---#region Bunker +-------------------------- +-- Bunker +-------------------------- local Bunker = menu.list(Property_Mission, "地堡拉货", {}, "") + --#region Bunker Tool local Bunker_Tool = menu.list(Bunker, "工具", {}, "") -menu.divider(Bunker_Tool, "补充原材料") -menu.slider(Bunker_Tool, "包裹原材料 补充进度", { "bk_resupply_package" }, "", 0, 100, 20, 5, function(value) - TUNABLE_SET_INT(Tunables.GR_RESUPPLY_PACKAGE_VALUE, value) - Loop_Handler.Tunables.Bunker.Resupply_Package_Value = value -end) -menu.slider(Bunker_Tool, "载具原材料 补充进度", { "bk_resupply_vehicle" }, "", 0, 100, 40, 5, function(value) - TUNABLE_SET_INT(Tunables.GR_RESUPPLY_VEHICLE_VALUE, value) - Loop_Handler.Tunables.Bunker.Resupply_Vehicle_Value = value -end) - -menu.divider(Bunker_Tool, "任务助手") -menu.action(Bunker_Tool, "偷取原材料 任务助手", {}, - "需要点击两次\n第一次点击会自动清空任务记录,只保留开启推荐的购买任务,禁用其它任务,打开电脑界面\n开启任务后,第二次点击就会将货物传送到我", - function() - if IS_SCRIPT_RUNNING("gb_gunrunning") then - local entity_list = get_entities_by_hash("vehicle", true, 1026149675) - if next(entity_list) ~= nil then - for _, ent in pairs(entity_list) do - tp_vehicle_to_me(ent) - end - else - util.toast("未找到原材料") - end - else - if players.get_org_type(players.user()) == -1 then - menu.trigger_commands("ceostart") - util.toast("已自动成为CEO") - end - - Globals.Bunker.ClearMissionHistory() - for key, offset in pairs(Globals.Bunker.Steal_Offsets) do - if key == 1 then -- GR_STEAL_VAN_STEAL_VAN_WEIGHTING - GLOBAL_SET_FLOAT(262145 + offset, 1) - else - GLOBAL_SET_FLOAT(262145 + offset, 0) - end - end - menu.trigger_commands("appterrorbyte") - PAD.SET_CURSOR_POSITION(0.501, 0.651) - - util.toast("请先开启任务") - end - end) -menu.action(Bunker_Tool, "出售货物 任务助手", {}, "清空任务记录,只保留开启推荐的出售任务,禁用其它任务", - function() - Globals.Bunker.ClearMissionHistory() - for key, offset in pairs(Globals.Bunker.Sell_Offsets) do - if key == 6 then -- GR_PHANTOM_PHANTOM_WEIGHTING - GLOBAL_SET_FLOAT(262145 + offset, 1) - else - GLOBAL_SET_FLOAT(262145 + offset, 0) - end - end - end) - -menu.divider(Bunker_Tool, "禁用任务") - -local bunker_missions = { - steal = {}, - sell = {} -} - -bunker_missions.menu_steal = menu.list(Bunker_Tool, "禁用偷取原材料任务", {}, "", function() - if not bunker_missions.steal.created then - Loop_Handler.Tunables.Bunker.Steal = {} - - bunker_missions.steal.toggle_menus = {} - menu.toggle(bunker_missions.menu_steal, "全部开/关", {}, "", function(toggle) - for key, value in pairs(bunker_missions.steal.toggle_menus) do - menu.set_value(value, toggle) - end - end) - - for key, offset in pairs(Globals.Bunker.Steal_Offsets) do - local name = Globals.Bunker.Steal_Names[key][1] - local help = Globals.Bunker.Steal_Names[key][2] - local global = 262145 + offset - - bunker_missions.steal.toggle_menus[global] = menu.toggle(bunker_missions.menu_steal, name, {}, help, - function(toggle) - if toggle then - GLOBAL_SET_FLOAT(global, 0) - else - GLOBAL_SET_FLOAT(global, 1) - end - Loop_Handler.Tunables.Bunker.Steal[global] = toggle - end) - end - - bunker_missions.steal.created = true - end -end) - -bunker_missions.menu_sell = menu.list(Bunker_Tool, "禁用出售货物任务", {}, "", function() - if not bunker_missions.sell.created then - Loop_Handler.Tunables.Bunker.Sell = {} - - bunker_missions.sell.toggle_menus = {} - menu.toggle(bunker_missions.menu_sell, "全部开/关", {}, "", function(toggle) - for key, value in pairs(bunker_missions.sell.toggle_menus) do - menu.set_value(value, toggle) - end - end) - - for key, offset in pairs(Globals.Bunker.Sell_Offsets) do - local name = Globals.Bunker.Sell_Names[key][1] - local help = Globals.Bunker.Sell_Names[key][2] - local global = 262145 + offset - - bunker_missions.sell.toggle_menus[global] = menu.toggle(bunker_missions.menu_sell, name, {}, help, - function(toggle) - if toggle then - GLOBAL_SET_FLOAT(global, 0) - else - GLOBAL_SET_FLOAT(global, 1) - end - Loop_Handler.Tunables.Bunker.Sell[global] = toggle - end) - end - - bunker_missions.sell.created = true - end -end) - -menu.divider(Bunker_Tool, "") -menu.toggle_loop(Bunker_Tool, "清空任务记录", {}, "就可以重复做同一个任务了", function() - Globals.Bunker.ClearMissionHistory() -end) -menu.action(Bunker_Tool, "移除地堡武器零件冷却时间", {}, "STAT", function() - STAT_SET_INT("BUNKER_CRATE_COOLDOWN", 0) -end) --#endregion + menu.action(Bunker, "传送到 原材料", { "tp_bk_supply" }, "", function() local blip1 = HUD.GET_NEXT_BLIP_INFO_ID(556) local blip2 = HUD.GET_NEXT_BLIP_INFO_ID(561) @@ -488,7 +154,7 @@ end) menu.action(Bunker, "原材料 传送到我", { "tpme_bk_supply" }, "", function() local blip = HUD.GET_NEXT_BLIP_INFO_ID(556) if not HUD.DOES_BLIP_EXIST(blip) then - local entity_list = get_entities_by_hash("pickup", true, -955159266) + local entity_list = get_entities_by_hash(ENTITY_PICKUP, true, -955159266) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_entity_to_me(ent) @@ -510,6 +176,7 @@ menu.action(Bunker, "原材料 传送到我", { "tpme_bk_supply" }, "", function end) menu.divider(Bunker, "") + menu.action(Bunker, "爆炸 所有敌对载具", {}, "", function() explode_hostile_vehicles() end) @@ -517,7 +184,7 @@ menu.action(Bunker, "爆炸 所有敌对物体", {}, "", function() explode_hostile_objects() end) menu.action(Bunker, "骇入飞机 传送到我", {}, "传送到头上并冻结", function() - local entity_list = get_entities_by_hash("vehicle", true, -32878452) + local entity_list = get_entities_by_hash(ENTITY_VEHICLE, true, -32878452) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do ENTITY.FREEZE_ENTITY_POSITION(ent, true) @@ -526,7 +193,7 @@ menu.action(Bunker, "骇入飞机 传送到我", {}, "传送到头上并冻结", end end) menu.action(Bunker, "长鳍追飞机: 掉落货物 传送到我", {}, "", function() - local entity_list = get_entities_by_hash("object", true, 91541528) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, true, 91541528) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_entity_to_me(ent, 0.0, 0.0, 1.0) @@ -535,7 +202,7 @@ menu.action(Bunker, "长鳍追飞机: 掉落货物 传送到我", {}, "", functi end) menu.action(Bunker, "长鳍追飞机: 炸掉长鳍", {}, "不再等飞机慢慢地投放货物", function() - local entity_list = get_entities_by_hash("vehicle", true, 1861786828) --长鳍 + local entity_list = get_entities_by_hash(ENTITY_VEHICLE, true, 1861786828) --长鳍 if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do ENTITY.SET_ENTITY_INVINCIBLE(ent, false) @@ -545,134 +212,23 @@ menu.action(Bunker, "长鳍追飞机: 炸掉长鳍", {}, end end) ---#endregion ---#region Air Freight + +-------------------------- +-- Air Freight +-------------------------- local Air_Freight = menu.list(Property_Mission, "机库拉货", {}, "") + --#region Air Freight Tool local Air_Freight_Tool = menu.list(Air_Freight, "工具", {}, "") -menu.toggle(Air_Freight_Tool, "移除冷却时间", { "nocd_airfreight" }, "进货和出售\n任务开始前启用", - function(toggle) - Globals.RemoveCooldown.AirFreightCargo(toggle) - Loop_Handler.Tunables.Cooldown.AirFreightCargo = toggle - end) - -menu.divider(Air_Freight_Tool, "任务助手") -menu.action(Air_Freight_Tool, "偷取货物 航空任务助手", {}, - "需要点击两次\n第一次点击会自动清空任务记录,只保留开启推荐的购买任务,禁用其它任务,打开电脑界面\n开启任务后,第二次点击就会将货物传送到我\n记得设置移除冷却时间", - function() - if IS_SCRIPT_RUNNING("gb_smuggler") then - local entity_list = get_entities_by_hash("pickup", true, -1270906188, -204239524, 2085196638, 886033073, - 1419829219, 1248987568, -2037094101, -49487954) - if next(entity_list) ~= nil then - for _, ent in pairs(entity_list) do - tp_pickup_to_me(ent) - end - else - util.toast("未找到货物") - end - else - if players.get_org_type(players.user()) == -1 then - menu.trigger_commands("ceostart") - util.toast("已自动成为CEO") - end - - Globals.AirFreight.ClearMissionHistory() - for key, offset in pairs(Globals.AirFreight.Steal_Offsets) do - if key == 8 then -- SMUG_STEAL_BLACKBOX_WEIGHTING - GLOBAL_SET_FLOAT(262145 + offset, 1) - else - GLOBAL_SET_FLOAT(262145 + offset, 0) - end - end - menu.trigger_commands("apphangar") - PAD.SET_CURSOR_POSITION(0.631, 0.0881) - - util.toast("请先开启任务") - end - end) - -menu.divider(Air_Freight_Tool, "禁用任务") - -local air_freight_missions = { - steal = {}, - sell = {} -} - -air_freight_missions.menu_steal = menu.list(Air_Freight_Tool, "禁用航空偷取货物任务", {}, "", function() - if not air_freight_missions.steal.created then - Loop_Handler.Tunables.AirFreight.Steal = {} - - air_freight_missions.steal.toggle_menus = {} - menu.toggle(air_freight_missions.menu_steal, "全部开/关", {}, "", function(toggle) - for key, value in pairs(air_freight_missions.steal.toggle_menus) do - menu.set_value(value, toggle) - end - end) - - for key, offset in pairs(Globals.AirFreight.Steal_Offsets) do - local name = Globals.AirFreight.Steal_Names[key][1] - local help = Globals.AirFreight.Steal_Names[key][2] - local global = 262145 + offset - - air_freight_missions.steal.toggle_menus[global] = menu.toggle(air_freight_missions.menu_steal, name, {}, help, - function(toggle) - if toggle then - GLOBAL_SET_FLOAT(global, 0) - else - GLOBAL_SET_FLOAT(global, 1) - end - Loop_Handler.Tunables.AirFreight.Steal[global] = toggle - end) - end - - air_freight_missions.steal.created = true - end -end) - -air_freight_missions.menu_sell = menu.list(Air_Freight_Tool, "禁用航空出售货物任务", {}, "", function() - if not air_freight_missions.sell.created then - Loop_Handler.Tunables.AirFreight.Sell = {} - - air_freight_missions.sell.toggle_menus = {} - menu.toggle(air_freight_missions.menu_sell, "全部开/关", {}, "", function(toggle) - for key, value in pairs(air_freight_missions.sell.toggle_menus) do - menu.set_value(value, toggle) - end - end) - - for key, offset in pairs(Globals.AirFreight.Sell_Offsets) do - local name = Globals.AirFreight.Sell_Names[key][1] - local help = Globals.AirFreight.Sell_Names[key][2] - local global = 262145 + offset - - air_freight_missions.sell.toggle_menus[global] = menu.toggle(air_freight_missions.menu_sell, name, {}, help, - function(toggle) - if toggle then - GLOBAL_SET_FLOAT(global, 0) - else - GLOBAL_SET_FLOAT(global, 1) - end - Loop_Handler.Tunables.AirFreight.Sell[global] = toggle - end) - end - - air_freight_missions.sell.created = true - end -end) - -menu.divider(Air_Freight_Tool, "") -menu.toggle_loop(Air_Freight_Tool, "清空任务记录", {}, "就可以重复做同一个任务了", function() - Globals.AirFreight.ClearMissionHistory() -end) - --#endregion + menu.action(Air_Freight, "传送到 货物", { "tp_air_product" }, "", function() local blip = HUD.GET_NEXT_BLIP_INFO_ID(568) if HUD.DOES_BLIP_EXIST(blip) then @@ -707,7 +263,7 @@ menu.action(Air_Freight, "结束任务", {}, menu.divider(Air_Freight, "") menu.action(Air_Freight, "陆地: 炸掉发电机", {}, "", function() - local entity_list = get_entities_by_hash("object", true, 209668540) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, true, 209668540) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do local coords = ENTITY.GET_ENTITY_COORDS(ent) @@ -717,7 +273,7 @@ menu.action(Air_Freight, "陆地: 炸掉发电机", {}, "", function() end end) menu.action(Air_Freight, "陆地: 传送到 释放开关", {}, "", function() - local entity_list = get_entities_by_hash("object", true, 162166615) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, true, 162166615) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_to_entity(ent, 0.0, -0.5, 0.0) @@ -726,7 +282,7 @@ menu.action(Air_Freight, "陆地: 传送到 释放开关", {}, "", function() end end) menu.action(Air_Freight, "陆地: 传送进 阿维萨", {}, "然后再传送到货物", function() - local entity_list = get_entities_by_hash("vehicle", true, -1706603682) + local entity_list = get_entities_by_hash(ENTITY_VEHICLE, true, -1706603682) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do PED.SET_PED_INTO_VEHICLE(players.user_ped(), ent, -1) @@ -746,7 +302,7 @@ end) menu.divider(Air_Freight, "") menu.action(Air_Freight, "传送到 鲁斯特", {}, "让他去拉货", function() - local entity_list = get_entities_by_hash("ped", true, 2086307585) + local entity_list = get_entities_by_hash(ENTITY_PED, true, 2086307585) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_to_entity(ent, 0.0, 1.0, 0.0) @@ -756,155 +312,23 @@ menu.action(Air_Freight, "传送到 鲁斯特", {}, "让他去拉货", function( end) ---#endregion - ---#region MC Factory -local MC_Factory = menu.list(Property_Mission, "摩托帮工厂", {}, "") +-------------------------- +-- Biker Factory +-------------------------- ---#region MC Factory Tool +local Biker_Factory = menu.list(Property_Mission, "摩托帮工厂", {}, "") -local MC_Factory_Tool = menu.list(MC_Factory, "工具", {}, "") -menu.divider(MC_Factory_Tool, "补充原材料") -menu.slider(MC_Factory_Tool, "包裹原材料 补充进度", { "mc_resupply_package" }, "", 0, 100, 20, 5, - function(value) - TUNABLE_SET_INT(Tunables.BIKER_RESUPPLY_PACKAGE_VALUE, value) - Loop_Handler.Tunables.Biker.Resupply_Package_Value = value - end) -menu.slider(MC_Factory_Tool, "载具原材料 补充进度", { "mc_resupply_vehicle" }, "", 0, 100, 40, 5, - function(value) - TUNABLE_SET_INT(Tunables.BIKER_RESUPPLY_VEHICLE_VALUE, value) - Loop_Handler.Tunables.Biker.Resupply_Vehicle_Value = value - end) +--#region Biker Factory Tool -menu.divider(MC_Factory_Tool, "任务助手") -menu.action(MC_Factory_Tool, "偷取原材料 任务助手", {}, - "需要点击两次\n第一次点击会自动清空任务记录,只保留开启推荐的购买任务,禁用其它任务,打开电脑界面\n开启任务后,第二次点击就会将货物传送到我", - function() - if IS_SCRIPT_RUNNING("gb_illicit_goods_resupply") then - local blip = HUD.GET_NEXT_BLIP_INFO_ID(501) - if HUD.DOES_BLIP_EXIST(blip) then - local ent = HUD.GET_BLIP_INFO_ID_ENTITY_INDEX(blip) - if ENTITY.DOES_ENTITY_EXIST(ent) then - tp_vehicle_to_me(ent, "", "delete") - end - else - util.toast("未找到原材料") - end - else - if players.get_org_type(players.user()) ~= 1 then - menu.trigger_commands("mcstart") - util.toast("已自动成为摩托帮首领") - end +local Biker_Factory_Tool = menu.list(Biker_Factory, "工具", {}, "") - Globals.Biker.ClearMissionHistory() - for key, offset in pairs(Globals.Biker.Steal_Offsets) do - if key == 12 then -- BIKER_RESUPPLY_STEAL_VEHICLE_WEIGHTING - GLOBAL_SET_FLOAT(262145 + offset, 1) - else - GLOBAL_SET_FLOAT(262145 + offset, 0) - end - end - menu.trigger_commands("appterrorbyte") - PAD.SET_CURSOR_POSITION(0.724, 0.604) +--#endregion - util.toast("请先开启任务") - end - end) -menu.action(MC_Factory_Tool, "出售货物 任务助手", {}, "清空任务记录,只保留开启推荐的出售任务,禁用其它任务", - function() - Globals.Biker.ClearMissionHistory() - for key, offset in pairs(Globals.Biker.Sell_Offsets) do - if key == 1 then -- BIKER_DISABLE_SELL_CONVOY - GLOBAL_SET_INT(262145 + offset, 0) - else - GLOBAL_SET_INT(262145 + offset, 1) - end - end - for i = 0, 9 do - GLOBAL_SET_INT(Globals.Biker.BIKER_DISABLE_SELL_BORDER_PATROL_0 + i, 1) - end - end) -menu.divider(MC_Factory_Tool, "禁用任务") - -local biker_missions = { - steal = {}, - sell = {} -} - -biker_missions.menu_steal = menu.list(MC_Factory_Tool, "禁用偷取原材料任务", {}, "", function() - if not biker_missions.steal.created then - Loop_Handler.Tunables.Biker.Steal = {} - - biker_missions.steal.toggle_menus = {} - menu.toggle(biker_missions.menu_steal, "全部开/关", {}, "", function(toggle) - for key, value in pairs(biker_missions.steal.toggle_menus) do - menu.set_value(value, toggle) - end - end) - - for key, offset in pairs(Globals.Biker.Steal_Offsets) do - local name = Globals.Biker.Steal_Names[key][1] - local help = Globals.Biker.Steal_Names[key][2] - local global = 262145 + offset - - biker_missions.steal.toggle_menus[global] = menu.toggle(biker_missions.menu_steal, name, {}, help, - function(toggle) - if toggle then - GLOBAL_SET_FLOAT(global, 0) - else - GLOBAL_SET_FLOAT(global, 1) - end - Loop_Handler.Tunables.Biker.Steal[global] = toggle - end) - end - - biker_missions.steal.created = true - end -end) - -biker_missions.menu_sell = menu.list(MC_Factory_Tool, "禁用出售货物任务", {}, "", function() - if not biker_missions.sell.created then - Loop_Handler.Tunables.Biker.Sell = {} - - biker_missions.sell.toggle_menus = {} - menu.toggle(biker_missions.menu_sell, "全部开/关", {}, "", function(toggle) - for key, value in pairs(biker_missions.sell.toggle_menus) do - menu.set_value(value, toggle) - end - end) - - for key, offset in pairs(Globals.Biker.Sell_Offsets) do - local name = Globals.Biker.Sell_Names[key][1] - local help = Globals.Biker.Sell_Names[key][2] - local global = 262145 + offset - - biker_missions.sell.toggle_menus[global] = menu.toggle(biker_missions.menu_sell, name, {}, help, - function(toggle) - if toggle then - GLOBAL_SET_INT(global, 1) - else - GLOBAL_SET_INT(global, 0) - end - Loop_Handler.Tunables.Biker.Sell[global] = toggle - end) - end - - biker_missions.sell.created = true - end -end) - -menu.divider(MC_Factory_Tool, "") -menu.toggle_loop(MC_Factory_Tool, "清空任务记录", {}, "就可以重复做同一个任务了", function() - Globals.Biker.ClearMissionHistory() -end) - ---#endregion - -menu.action(MC_Factory, "传送到 货物", { "tp_mc_product" }, "", function() +menu.action(Biker_Factory, "传送到 货物", { "tp_mc_product" }, "", function() local blip1 = HUD.GET_NEXT_BLIP_INFO_ID(501) local blip2 = HUD.GET_NEXT_BLIP_INFO_ID(64) local blip3 = HUD.GET_NEXT_BLIP_INFO_ID(427) @@ -924,7 +348,7 @@ menu.action(MC_Factory, "传送到 货物", { "tp_mc_product" }, "", function() teleport2(coords.x, coords.y + 1.5, coords.z - 1.0) --Plane end end) -menu.action(MC_Factory, "货物 传送到我", { "tpme_mc_product" }, "", function() +menu.action(Biker_Factory, "货物 传送到我", { "tpme_mc_product" }, "", function() local blip = HUD.GET_NEXT_BLIP_INFO_ID(501) if HUD.DOES_BLIP_EXIST(blip) then local ent = HUD.GET_BLIP_INFO_ID_ENTITY_INDEX(blip) @@ -940,8 +364,8 @@ menu.action(MC_Factory, "货物 传送到我", { "tpme_mc_product" }, "", functi end end end) -menu.action(MC_Factory, "货物(载具) 传送到我", {}, "", function() - local entity_list = get_entities_by_hash("object", true, 788248216) +menu.action(Biker_Factory, "货物(载具) 传送到我", {}, "", function() + local entity_list = get_entities_by_hash(ENTITY_OBJECT, true, 788248216) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do if ENTITY.IS_ENTITY_ATTACHED(ent) then @@ -954,19 +378,20 @@ menu.action(MC_Factory, "货物(载具) 传送到我", {}, "", function() end end) ---#endregion ---#region Acid Lab +-------------------------- +-- Acid Lab +-------------------------- local Acid_Lab = menu.list(Property_Mission, "致幻剂实验室", {}, "") + +--#region Acid Lab Tool + local Acid_Lab_Tool = menu.list(Acid_Lab, "工具", {}, "") -menu.slider(Acid_Lab_Tool, "原材料 补充进度", { "acid_resupply_crate" }, "", 0, 100, 25, 5, function(value) - TUNABLE_SET_INT(Tunables.ACID_LAB_RESUPPLY_CRATE_VALUE, value) - Loop_Handler.Tunables.AcidLab.Resupply_Crate_Value = value -end) +--#endregion menu.action(Acid_Lab, "原材料 传送到我", {}, "", function() @@ -997,7 +422,7 @@ menu.action(Acid_Lab, "农场: 拖拉机 传送到 原材料", {}, "会将玩家 local trailer = 0 local tractor = 0 - local entity_list = get_entities_by_hash("pickup", true, 1375611915) + local entity_list = get_entities_by_hash(ENTITY_PICKUP, true, 1375611915) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do if ENTITY.IS_ENTITY_ATTACHED(ent) then @@ -1006,7 +431,7 @@ menu.action(Acid_Lab, "农场: 拖拉机 传送到 原材料", {}, "会将玩家 end end - entity_list = get_entities_by_hash("vehicle", true, -2076478498) + entity_list = get_entities_by_hash(ENTITY_VEHICLE, true, -2076478498) if next(entity_list) ~= nil then tractor = entity_list[1] end @@ -1024,12 +449,12 @@ menu.action(Acid_Lab, "仓库: 原材料 传送到 卡车", {}, "", function() local supply = 0 local truck = 0 - local entity_list = get_entities_by_hash("object", true, 414057361) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, true, 414057361) if next(entity_list) ~= nil then supply = entity_list[1] end - entity_list = get_entities_by_hash("vehicle", true, 1945374990) + entity_list = get_entities_by_hash(ENTITY_VEHICLE, true, 1945374990) if next(entity_list) ~= nil then truck = entity_list[1] end @@ -1042,7 +467,7 @@ menu.action(Acid_Lab, "仓库: 原材料 传送到 卡车", {}, "", function() end) menu.action(Acid_Lab, "仓库: 传送进 卡车", {}, "", function() if user_interior() == 289537 then - local entity_list = get_entities_by_hash("vehicle", true, 1945374990) + local entity_list = get_entities_by_hash(ENTITY_VEHICLE, true, 1945374990) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_into_vehicle(ent) @@ -1056,12 +481,12 @@ menu.action(Acid_Lab, "仓库: 叉车 传送到 卡车后面", {}, "如果没有 local forklift = 0 local truck = 0 - local entity_list = get_entities_by_hash("vehicle", true, 1491375716) + local entity_list = get_entities_by_hash(ENTITY_VEHICLE, true, 1491375716) if next(entity_list) ~= nil then forklift = entity_list[1] end - entity_list = get_entities_by_hash("vehicle", true, 1945374990) + entity_list = get_entities_by_hash(ENTITY_VEHICLE, true, 1945374990) if next(entity_list) ~= nil then truck = entity_list[1] end @@ -1078,7 +503,7 @@ menu.action(Acid_Lab, "仓库: 叉车 传送到 卡车后面", {}, "如果没有 end end) menu.action(Acid_Lab, "敌痛息仓库: 传送到 时间表", {}, "", function() - local entity_list = get_entities_by_hash("object", true, 623418081) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, true, 623418081) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_to_entity(ent, 0.0, 0.0, 0.5) @@ -1086,7 +511,7 @@ menu.action(Acid_Lab, "敌痛息仓库: 传送到 时间表", {}, "", function() end end) menu.action(Acid_Lab, "敌痛息仓库: 厢型车 传送到我", {}, "", function() - local entity_list = get_entities_by_hash("pickup", true, 331463704) + local entity_list = get_entities_by_hash(ENTITY_PICKUP, true, 331463704) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do if ENTITY.IS_ENTITY_ATTACHED(ent) then @@ -1099,7 +524,7 @@ menu.action(Acid_Lab, "敌痛息仓库: 厢型车 传送到我", {}, "", functio end end) menu.action(Acid_Lab, "空投地点: 原材料 传送到我", {}, "", function() - local entity_list = get_entities_by_hash("object", true, -1367041250) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, true, -1367041250) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do add_owned_explosion(players.user_ped(), ENTITY.GET_ENTITY_COORDS(ent)) @@ -1107,7 +532,7 @@ menu.action(Acid_Lab, "空投地点: 原材料 传送到我", {}, "", function() util.yield(500) end - entity_list = get_entities_by_hash("pickup", true, 1195735753) + entity_list = get_entities_by_hash(ENTITY_PICKUP, true, 1195735753) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_entity_to_me(ent) @@ -1125,13 +550,12 @@ menu.action(Acid_Lab, "致幻剂包裹 投进箱子", {}, "", function() end end) ---#endregion --------------------------------- --- Preparation Mission --------------------------------- +---------------------------------- +-- Preparation Mission +---------------------------------- local Preparation_Mission = menu.list(Mission_Options, "前置任务", {}, "") @@ -1139,7 +563,7 @@ local Preparation_Mission = menu.list(Mission_Options, "前置任务", { local Cayo_Perico = menu.list(Preparation_Mission, "佩里科岛抢劫", {}, "") -menu.action(Cayo_Perico, "传送到虎鲸 任务面板", { "tpin_kosatka" }, +menu.action(Cayo_Perico, "传送到虎鲸 任务面板", { "tpinKosatka" }, "需要提前叫出虎鲸", function() local blip = HUD.GET_NEXT_BLIP_INFO_ID(760) if user_interior() == 281345 or HUD.DOES_BLIP_EXIST(blip) then @@ -1148,7 +572,7 @@ menu.action(Cayo_Perico, "传送到虎鲸 任务面板", { "tpin_kosatka" }, util.toast("未在地图上找到虎鲸") end end) -menu.action(Cayo_Perico, "传送到虎鲸 外面甲板", { "tpout_kosatka" }, +menu.action(Cayo_Perico, "传送到虎鲸 外面甲板", { "tpoutKosatka" }, "需要提前叫出虎鲸", function() local blip = HUD.GET_NEXT_BLIP_INFO_ID(760) if HUD.DOES_BLIP_EXIST(blip) then @@ -1162,7 +586,7 @@ menu.action(Cayo_Perico, "传送到虎鲸 外面甲板", { "tpout_kosatka" }, menu.divider(Cayo_Perico, "侦查") menu.action(Cayo_Perico, "传送进 梅杜莎", {}, "", function() - local entity_list = get_entities_by_hash("vehicle", true, 1077420264) + local entity_list = get_entities_by_hash(ENTITY_VEHICLE, true, 1077420264) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do set_entity_godmode(ent, true) @@ -1172,7 +596,7 @@ menu.action(Cayo_Perico, "传送进 梅杜莎", {}, "", function() end end) menu.action(Cayo_Perico, "传送到 信号塔", {}, "", function() - local entity_list = get_entities_by_hash("object", true, 1981815996) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, true, 1981815996) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_to_entity(ent, 0.0, -0.5, 0.5) @@ -1184,14 +608,14 @@ end) menu.divider(Cayo_Perico, "前置") menu.action(Cayo_Perico, "长鳍 传送到目的地", {}, "先传送到警局踩点\n获取包裹,传送到目的地并坐进卡车", function() - local entity_list = get_entities_by_hash("pickup", true, 528555233) + local entity_list = get_entities_by_hash(ENTITY_PICKUP, true, 528555233) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_pickup_to_me(ent, true) end end - entity_list = get_entities_by_hash("vehicle", true, -1649536104) + entity_list = get_entities_by_hash(ENTITY_VEHICLE, true, -1649536104) if next(entity_list) ~= nil then local ent = entity_list[1] TP_ENTITY(ent, v3(-154.88900756836, -2663.2165527344, 5.9994849128723), 0) @@ -1199,7 +623,7 @@ menu.action(Cayo_Perico, "长鳍 传送到目的地", {}, "先传送到警局踩 end end) menu.action(Cayo_Perico, "传送到 保险箱密码", {}, "赌场别墅内的保安队长", function() - local entity_list = get_entities_by_hash("ped", true, -1109568186) + local entity_list = get_entities_by_hash(ENTITY_PED, true, -1109568186) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_to_entity(ent, 0.0, 0.0, 0.5) @@ -1207,7 +631,7 @@ menu.action(Cayo_Perico, "传送到 保险箱密码", {}, "赌场别墅内的保 end end) menu.action(Cayo_Perico, "等离子切割枪 传送到我", {}, "", function() - local entity_list = get_entities_by_hash("pickup", true, -802406134) + local entity_list = get_entities_by_hash(ENTITY_PICKUP, true, -802406134) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_entity_to_me(ent) @@ -1215,7 +639,7 @@ menu.action(Cayo_Perico, "等离子切割枪 传送到我", {}, "", function() end end) menu.action(Cayo_Perico, "指纹复制器 传送到我", {}, "", function() - local entity_list = get_entities_by_hash("pickup", true, 1506325614) + local entity_list = get_entities_by_hash(ENTITY_PICKUP, true, 1506325614) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_entity_to_me(ent) @@ -1223,7 +647,7 @@ menu.action(Cayo_Perico, "指纹复制器 传送到我", {}, "", function() end end) menu.action(Cayo_Perico, "传送到 割据", {}, "", function() - local entity_list = get_entities_by_hash("pickup", true, 1871441709) + local entity_list = get_entities_by_hash(ENTITY_PICKUP, true, 1871441709) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_to_entity(ent, 0.0, 1.5, 0.0) @@ -1232,7 +656,7 @@ menu.action(Cayo_Perico, "传送到 割据", {}, "", function() end end) menu.action(Cayo_Perico, "武器 传送到我", {}, "拾取后重新进入虎鲸,然后炸掉女武神", function() - local entity_list = get_entities_by_hash("pickup", true, 1912600099) + local entity_list = get_entities_by_hash(ENTITY_PICKUP, true, 1912600099) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_entity_to_me(ent) @@ -1240,7 +664,7 @@ menu.action(Cayo_Perico, "武器 传送到我", {}, "拾取后重新进入虎鲸 end end) menu.action(Cayo_Perico, "武器 炸掉女武神", {}, "不再等它慢慢的飞", function() - local entity_list = get_entities_by_hash("vehicle", true, -1600252419) + local entity_list = get_entities_by_hash(ENTITY_VEHICLE, true, -1600252419) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do local pos = ENTITY.GET_ENTITY_COORDS(ent) @@ -1272,7 +696,7 @@ menu.textslider(Cayo_Perico, "前置任务助手", {}, local Cayo_Perico_Preps = menu.list(Cayo_Perico, "其它前置", {}, "") menu.divider(Cayo_Perico_Preps, "载具: 虎鲸") menu.action(Cayo_Perico_Preps, "传送到 潜水艇", {}, "", function() - local entity_list = get_entities_by_hash("object", true, -1428975160) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, true, -1428975160) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_to_entity(ent, -8.0, 0.0, 9.0) @@ -1280,7 +704,7 @@ menu.action(Cayo_Perico_Preps, "传送到 潜水艇", {}, "", function() end end) menu.action(Cayo_Perico_Preps, "传送到 声呐干扰器", {}, "", function() - local entity_list = get_entities_by_hash("pickup", true, -1106317414) + local entity_list = get_entities_by_hash(ENTITY_PICKUP, true, -1106317414) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_to_entity(ent, 0.0, -0.5, 0.0) @@ -1291,7 +715,7 @@ end) menu.divider(Cayo_Perico_Preps, "载具: 阿尔科诺斯特") menu.action(Cayo_Perico_Preps, "传送到 笔记本电脑", {}, "", function() - local entity_list = get_entities_by_hash("object", true, 281564928) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, true, 281564928) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_to_entity(ent, 0.0, -0.5, 0.0) @@ -1300,7 +724,7 @@ menu.action(Cayo_Perico_Preps, "传送到 笔记本电脑", {}, "", function() end end) menu.action(Cayo_Perico_Preps, "传送进 阿尔科诺斯特", {}, "", function() - local entity_list = get_entities_by_hash("vehicle", true, -365873403) + local entity_list = get_entities_by_hash(ENTITY_VEHICLE, true, -365873403) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_into_vehicle(ent) @@ -1310,7 +734,7 @@ end) menu.divider(Cayo_Perico_Preps, "载具: 巡逻艇") menu.action(Cayo_Perico_Preps, "传送进 巡逻艇", {}, "", function() - local entity_list = get_entities_by_hash("vehicle", true, -276744698) + local entity_list = get_entities_by_hash(ENTITY_VEHICLE, true, -276744698) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_into_vehicle(ent, "", "delete") @@ -1322,7 +746,7 @@ local Cayo_Perico_Final = menu.list(Cayo_Perico, "终章", {}, "") menu.divider(Cayo_Perico_Final, "豪宅外") menu.action(Cayo_Perico_Final, "信号塔 传送到我", {}, "", function() - local entity_list = get_entities_by_hash("object", false, 1981815996) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, false, 1981815996) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do request_control(ent) @@ -1332,7 +756,7 @@ menu.action(Cayo_Perico_Final, "信号塔 传送到我", {}, "", function() end end) menu.action(Cayo_Perico_Final, "发电站 传送到我", {}, "", function() - local entity_list = get_entities_by_hash("object", false, 1650252819) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, false, 1650252819) if next(entity_list) ~= nil then local x = 0.0 for _, ent in pairs(entity_list) do @@ -1344,7 +768,7 @@ menu.action(Cayo_Perico_Final, "发电站 传送到我", {}, "", function() end end) menu.action(Cayo_Perico_Final, "保安服 传送到我", {}, "", function() - local entity_list = get_entities_by_hash("object", false, -1141961823) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, false, -1141961823) if next(entity_list) ~= nil then local x = 0.0 for _, ent in pairs(entity_list) do @@ -1355,7 +779,7 @@ menu.action(Cayo_Perico_Final, "保安服 传送到我", {}, "", function() end end) menu.action(Cayo_Perico_Final, "螺旋切割器 传送到我", {}, "", function() - local entity_list = get_entities_by_hash("pickup", false, -710382954) + local entity_list = get_entities_by_hash(ENTITY_PICKUP, false, -710382954) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do request_control(ent) @@ -1364,7 +788,7 @@ menu.action(Cayo_Perico_Final, "螺旋切割器 传送到我", {}, "", function( end end) menu.action(Cayo_Perico_Final, "抓钩 传送到我", {}, "", function() - local entity_list = get_entities_by_hash("pickup", false, -1789904450) + local entity_list = get_entities_by_hash(ENTITY_PICKUP, false, -1789904450) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do request_control(ent) @@ -1373,7 +797,7 @@ menu.action(Cayo_Perico_Final, "抓钩 传送到我", {}, "", function() end end) menu.action(Cayo_Perico_Final, "运货卡车 传送到我", {}, "", function() - local entity_list = get_entities_by_hash("vehicle", true, 2014313426) + local entity_list = get_entities_by_hash(ENTITY_VEHICLE, true, 2014313426) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do request_control(ent) @@ -1414,7 +838,7 @@ perico_gold_vault_menu = menu.list_action(Cayo_Perico_Final, "传送到 黄金", menu.action(Cayo_Perico_Final, "干掉主要目标玻璃柜、保险箱", {}, "会在豪宅外生成主要目标包裹", function() - local entity_list = get_entities_by_hash("object", false, -1714533217, 1098122770) --玻璃柜、保险箱 + local entity_list = get_entities_by_hash(ENTITY_OBJECT, false, -1714533217, 1098122770) --玻璃柜、保险箱 if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do request_control(ent) @@ -1435,7 +859,7 @@ menu.action(Cayo_Perico_Final, "主要目标掉落包裹 传送到我", {}, "携 end end) menu.action(Cayo_Perico_Final, "办公室保险箱 传送到我", {}, "保险箱门和里面的现金", function() - local entity_list = get_entities_by_hash("object", false, 485111592) --保险箱 + local entity_list = get_entities_by_hash(ENTITY_OBJECT, false, 485111592) --保险箱 if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do request_control(ent) @@ -1444,7 +868,7 @@ menu.action(Cayo_Perico_Final, "办公室保险箱 传送到我", {}, "保险箱 end end - entity_list = get_entities_by_hash("pickup", false, -2143192170) --现金 + entity_list = get_entities_by_hash(ENTITY_PICKUP, false, -2143192170) --现金 if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do request_control(ent) @@ -1462,7 +886,7 @@ local Diamond_Casino = menu.list(Preparation_Mission, "赌场抢劫", {} menu.divider(Diamond_Casino, "侦查") menu.action(Diamond_Casino, "保安 传送到我", {}, "骇入手机会直接完成", function() - local entity_list = get_entities_by_hash("ped", true, -1094177627) + local entity_list = get_entities_by_hash(ENTITY_PED, true, -1094177627) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_entity_to_me(ent, 0.0, 2.0, 0.0) @@ -1515,7 +939,7 @@ menu.divider(Diamond_Casino, "前置") local Diamond_Casino_Preps = menu.list(Diamond_Casino, "相同前置", {}, "") menu.action(Diamond_Casino_Preps, "武器 传送到我", {}, "杀死/爆炸所有NPC", function() - local entity_list = get_entities_by_hash("pickup", true, 798951501, -1628917549) + local entity_list = get_entities_by_hash(ENTITY_PICKUP, true, 798951501, -1628917549) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_pickup_to_me(ent) @@ -1523,13 +947,13 @@ menu.action(Diamond_Casino_Preps, "武器 传送到我", {}, "杀死/爆炸所 end end) menu.action(Diamond_Casino_Preps, "载具: 天威 传送到我", {}, "天威 经典版", function() - local entity_list = get_entities_by_hash("vehicle", true, 931280609) + local entity_list = get_entities_by_hash(ENTITY_VEHICLE, true, 931280609) if next(entity_list) ~= nil then tp_vehicle_to_me(entity_list[1], "", "delete") end end) menu.action(Diamond_Casino_Preps, "骇入设备: 门禁卡 传送到我", {}, "探员\n提前杀死所有NPC", function() - local entity_list = get_entities_by_hash("ped", true, 1650288984, 2072724299) + local entity_list = get_entities_by_hash(ENTITY_PED, true, 1650288984, 2072724299) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_entity_to_me(ent, 0.0, 2.0, 0.0) @@ -1537,7 +961,7 @@ menu.action(Diamond_Casino_Preps, "骇入设备: 门禁卡 传送到我", {}, " end end) menu.action(Diamond_Casino_Preps, "骇入设备 传送到我", {}, "", function() - local entity_list = get_entities_by_hash("pickup", true, -155327337) + local entity_list = get_entities_by_hash(ENTITY_PICKUP, true, -155327337) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_entity_to_me(ent) @@ -1545,7 +969,7 @@ menu.action(Diamond_Casino_Preps, "骇入设备 传送到我", {}, "", function( end end) menu.action(Diamond_Casino_Preps, "金库门禁卡: 狱警 传送到我", {}, "提前杀死所有NPC", function() - local entity_list = get_entities_by_hash("ped", true, 1456041926) + local entity_list = get_entities_by_hash(ENTITY_PED, true, 1456041926) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_entity_to_me(ent, 0.0, 2.0, -0.5) @@ -1554,7 +978,7 @@ menu.action(Diamond_Casino_Preps, "金库门禁卡: 狱警 传送到我", {}, " end) menu.action(Diamond_Casino_Preps, "金库门禁卡: 保安 传送到我", {}, "提前杀死所有NPC\n直接搜查保安尸体,不用管地图红色标记点", function() - local entity_list = get_entities_by_hash("ped", true, -1575488699, -1425378987) + local entity_list = get_entities_by_hash(ENTITY_PED, true, -1575488699, -1425378987) if next(entity_list) ~= nil then local x = 0.0 for _, ent in pairs(entity_list) do @@ -1565,7 +989,7 @@ menu.action(Diamond_Casino_Preps, "金库门禁卡: 保安 传送到我", {}, " end) menu.divider(Diamond_Casino_Preps, "可选任务") menu.action(Diamond_Casino_Preps, "巡逻路线: 车 传送到我", {}, "在车后备箱里", function() - local entity_list = get_entities_by_hash("object", true, 1265214509) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, true, 1265214509) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do if ENTITY.IS_ENTITY_ATTACHED(ent) then @@ -1577,7 +1001,7 @@ menu.action(Diamond_Casino_Preps, "巡逻路线: 车 传送到我", {}, "在车 end end) menu.action(Diamond_Casino_Preps, "杜根货物 全部摧毁", {}, "", function() - local entity_list = get_entities_by_hash("vehicle", true, -1671539132, 1747439474, 1448677353) + local entity_list = get_entities_by_hash(ENTITY_VEHICLE, true, -1671539132, 1747439474, 1448677353) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do VEHICLE.SET_VEHICLE_ENGINE_HEALTH(ent, -4000.0) @@ -1585,7 +1009,7 @@ menu.action(Diamond_Casino_Preps, "杜根货物 全部摧毁", {}, "", function( end end) menu.textslider(Diamond_Casino_Preps, "传送到 电钻", {}, "", { "1", "2", "车" }, function(value) - local entity_list = get_entities_by_hash("pickup", true, -12990308) + local entity_list = get_entities_by_hash(ENTITY_PICKUP, true, -12990308) if next(entity_list) ~= nil then if value == 1 then tp_to_entity(entity_list[1], 0.0, 0.0, 0.5) @@ -1603,7 +1027,7 @@ menu.textslider(Diamond_Casino_Preps, "传送到 电钻", {}, "", { "1", "2", " end end) menu.action(Diamond_Casino_Preps, "二级保安证: 传送到 尸体", {}, "医院里的泊车员尸体", function() - local entity_list = get_entities_by_hash("object", true, 771433594) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, true, 771433594) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_to_entity(ent, -1.0, 0.0, 0.0) @@ -1613,7 +1037,7 @@ menu.action(Diamond_Casino_Preps, "二级保安证: 传送到 尸体", {}, "医 end) menu.action(Diamond_Casino_Preps, "二级保安证: 保安证 传送到我", {}, "找到那个NPC后才能传送\n一般是喝醉躺着的那个", function() - local entity_list = get_entities_by_hash("pickup", true, -2018799718) + local entity_list = get_entities_by_hash(ENTITY_PICKUP, true, -2018799718) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_entity_to_me(ent) @@ -1631,7 +1055,7 @@ menu.action(Diamond_Casino_Silent, "无人机零件 传送到我", {}, "会先 function() --Model Hash: 1657647215 纳米无人机 (object) --Model Hash: -1285013058 无人机炸毁后掉落的零件(pickup) - local entity_list = get_entities_by_hash("object", true, 1657647215) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, true, 1657647215) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do local pos = ENTITY.GET_ENTITY_COORDS(ent) @@ -1639,7 +1063,7 @@ menu.action(Diamond_Casino_Silent, "无人机零件 传送到我", {}, "会先 end end util.yield(1500) - entity_list = get_entities_by_hash("pickup", true, -1285013058) + entity_list = get_entities_by_hash(ENTITY_PICKUP, true, -1285013058) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_entity_to_me(ent) @@ -1647,7 +1071,7 @@ menu.action(Diamond_Casino_Silent, "无人机零件 传送到我", {}, "会先 end end) menu.action(Diamond_Casino_Silent, "金库激光器 传送到我", {}, "", function() - local entity_list = get_entities_by_hash("pickup", true, 1953119208) + local entity_list = get_entities_by_hash(ENTITY_PICKUP, true, 1953119208) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_entity_to_me(ent) @@ -1655,7 +1079,7 @@ menu.action(Diamond_Casino_Silent, "金库激光器 传送到我", {}, "", funct end end) menu.action(Diamond_Casino_Silent, "电磁脉冲: 运兵直升机 传送到我", {}, "", function() - local entity_list = get_entities_by_hash("vehicle", true, 1621617168) + local entity_list = get_entities_by_hash(ENTITY_VEHICLE, true, 1621617168) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_entity_to_me(ent, 0.0, 0.0, 30.0) @@ -1667,7 +1091,7 @@ menu.action(Diamond_Casino_Silent, "电磁脉冲: 运兵直升机 传送到我", end) menu.action(Diamond_Casino_Silent, "电磁脉冲 传送到直升机挂钩位置", {}, "运兵直升机提前放下吊钩", function() - local entity_list = get_entities_by_hash("object", true, -1541347408) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, true, -1541347408) if next(entity_list) ~= nil then local veh = GET_VEHICLE_PED_IS_IN(players.user_ped()) if veh ~= 0 and VEHICLE.DOES_CARGOBOB_HAVE_PICK_UP_ROPE(veh) then @@ -1680,7 +1104,7 @@ menu.action(Diamond_Casino_Silent, "电磁脉冲 传送到直升机挂钩位置" end end) menu.action(Diamond_Casino_Silent, "潜行套装 传送到我", {}, "", function() - local entity_list = get_entities_by_hash("pickup", true, -1496506919) + local entity_list = get_entities_by_hash(ENTITY_PICKUP, true, -1496506919) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_entity_to_me(ent) @@ -1695,7 +1119,7 @@ end) local Diamond_Casino_BigCon = menu.list(Diamond_Casino, "兵不厌诈", {}, "") menu.action(Diamond_Casino_BigCon, "古倍科技套装 传送到我", {}, "", function() - local entity_list = get_entities_by_hash("pickup", true, 1425667258) + local entity_list = get_entities_by_hash(ENTITY_PICKUP, true, 1425667258) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_entity_to_me(ent) @@ -1703,7 +1127,7 @@ menu.action(Diamond_Casino_BigCon, "古倍科技套装 传送到我", {}, "", fu end end) menu.action(Diamond_Casino_BigCon, "金库钻孔机 传送到我", {}, "", function() - local entity_list = get_entities_by_hash("pickup", true, 415149220) + local entity_list = get_entities_by_hash(ENTITY_PICKUP, true, 415149220) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_entity_to_me(ent) @@ -1711,7 +1135,7 @@ menu.action(Diamond_Casino_BigCon, "金库钻孔机 传送到我", {}, "", funct end end) menu.action(Diamond_Casino_BigCon, "国安局套装 传送到我", {}, "", function() - local entity_list = get_entities_by_hash("pickup", true, -1713985235) + local entity_list = get_entities_by_hash(ENTITY_PICKUP, true, -1713985235) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_entity_to_me(ent) @@ -1726,7 +1150,7 @@ end) local Diamond_Casino_Aggressive = menu.list(Diamond_Casino, "气势汹汹", {}, "") menu.action(Diamond_Casino_Aggressive, "热能炸药 传送到我", {}, "", function() - local entity_list = get_entities_by_hash("pickup", true, -2043162923) + local entity_list = get_entities_by_hash(ENTITY_PICKUP, true, -2043162923) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_entity_to_me(ent) @@ -1734,7 +1158,7 @@ menu.action(Diamond_Casino_Aggressive, "热能炸药 传送到我", {}, "", func end end) menu.action(Diamond_Casino_Aggressive, "金库炸药 传送到我", {}, "", function() - local entity_list = get_entities_by_hash("pickup", true, -681938663) + local entity_list = get_entities_by_hash(ENTITY_PICKUP, true, -681938663) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_entity_to_me(ent) @@ -1742,7 +1166,7 @@ menu.action(Diamond_Casino_Aggressive, "金库炸药 传送到我", {}, "", func end end) menu.action(Diamond_Casino_Aggressive, "加固防弹衣 传送到我", {}, "", function() - local entity_list = get_entities_by_hash("pickup", true, 1715697304) + local entity_list = get_entities_by_hash(ENTITY_PICKUP, true, 1715697304) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_entity_to_me(ent) @@ -1750,7 +1174,7 @@ menu.action(Diamond_Casino_Aggressive, "加固防弹衣 传送到我", {}, "", f end end) menu.action(Diamond_Casino_Aggressive, "加固防弹衣: 潜水套装 传送到我", {}, "人道实验室", function() - local entity_list = get_entities_by_hash("object", true, 788248216) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, true, 788248216) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_entity_to_me(ent) @@ -1832,7 +1256,7 @@ menu.action(Contract_Dre, "夜总会: 传送到 录像带", {}, "", function() end end) menu.action(Contract_Dre, "船坞: 传送到 游艇", {}, "不用去开船", function() - local entity_list = get_entities_by_hash("object", true, 1321190118) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, true, 1321190118) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_to_entity(ent, 0.0, -2.0, 0.0) @@ -1840,7 +1264,7 @@ menu.action(Contract_Dre, "船坞: 传送到 游艇", {}, "不用去开船", fun end end) menu.action(Contract_Dre, "船坞: 传送到 证据", {}, "德瑞照片", function() - local entity_list = get_entities_by_hash("object", true, -1702870637) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, true, -1702870637) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_to_entity(ent, 0.0, 0.0, 0.5) @@ -1860,7 +1284,7 @@ end) menu.divider(Contract_Dre, "上流社会泄密") menu.action(Contract_Dre, "乡村俱乐部: 门禁 传送到我", {}, "会先炸掉礼车,然后将车内NPC传送到我", function() - local entity_list = get_entities_by_hash("vehicle", true, -420911112) + local entity_list = get_entities_by_hash(ENTITY_VEHICLE, true, -420911112) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do local pos = ENTITY.GET_ENTITY_COORDS(ent) @@ -1868,7 +1292,7 @@ menu.action(Contract_Dre, "乡村俱乐部: 门禁 传送到我", {}, "会先炸 end end util.yield(500) - entity_list = get_entities_by_hash("ped", true, -912318012) + entity_list = get_entities_by_hash(ENTITY_PED, true, -912318012) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_entity_to_me(ent, 0.0, 2.0, 0.0) @@ -1877,7 +1301,7 @@ menu.action(Contract_Dre, "乡村俱乐部: 门禁 传送到我", {}, "会先炸 end) menu.action(Contract_Dre, "宾客名单: 传送到 律师", {}, "同时设置和NPC关系为友好,避免被误杀", function() - local entity_list = get_entities_by_hash("ped", true, 600300561) + local entity_list = get_entities_by_hash(ENTITY_PED, true, 600300561) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_to_entity(ent, 0.0, 1.0, 0.0) @@ -1887,7 +1311,7 @@ menu.action(Contract_Dre, "宾客名单: 传送到 律师", {}, "同时设置和 end) menu.action(Contract_Dre, "上流社会泄密: 摧毁直升机", {}, "快速进入直升机坠落动画", function() - local entity_list = get_entities_by_hash("vehicle", true, 1075432268) + local entity_list = get_entities_by_hash(ENTITY_VEHICLE, true, 1075432268) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do VEHICLE.SET_VEHICLE_ENGINE_HEALTH(ent, -1000) @@ -1906,7 +1330,7 @@ menu.action(Contract_Dre, "上流社会泄密: 摧毁直升机", {}, "快速进 menu.divider(Contract_Dre, "南中心区泄密") menu.action(Contract_Dre, "强化弗农", {}, "", function() - local entity_list = get_entities_by_hash("ped", true, -843935326) + local entity_list = get_entities_by_hash(ENTITY_PED, true, -843935326) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do local weaponHash = util.joaat("WEAPON_SPECIALCARBINE") @@ -1929,7 +1353,7 @@ menu.action(Contract_Dre, "戴维斯: 传送到高空", {}, "用来甩掉摩托 end end) menu.action(Contract_Dre, "巴勒帮: P 无敌", {}, "避免被误杀", function() - local entity_list = get_entities_by_hash("ped", true, -616450833) + local entity_list = get_entities_by_hash(ENTITY_PED, true, -616450833) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do set_entity_godmode(ent, true) @@ -1938,7 +1362,7 @@ menu.action(Contract_Dre, "巴勒帮: P 无敌", {}, "避免被误杀", function end end) menu.action(Contract_Dre, "南中心区泄密: 底盘车 传送到我", {}, "", function() - local entity_list = get_entities_by_hash("vehicle", true, -1013450936) + local entity_list = get_entities_by_hash(ENTITY_VEHICLE, true, -1013450936) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_vehicle_to_me(ent, "", "tp") @@ -1962,7 +1386,7 @@ local LS_Robbery_UD = menu.list(LS_Robbery, "联合储蓄", {}, "") menu.divider(LS_Robbery_UD, "电梯钥匙") menu.action(LS_Robbery_UD, "传送到 腐败商人", {}, "", function() - local entity_list = get_entities_by_hash("ped", true, 2093736314) + local entity_list = get_entities_by_hash(ENTITY_PED, true, 2093736314) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_to_entity(ent, 0.0, 0.0, 0.5) @@ -1973,12 +1397,12 @@ menu.divider(LS_Robbery_UD, "金库密码") menu.action(LS_Robbery_UD, "坐进直升机并传送到目标载具上空", {}, "会将目标载具传送到明显位置,设置外观为紫色", function() local heli, target_ped = 0, 0 - local entity_list = get_entities_by_hash("vehicle", true, 353883353) + local entity_list = get_entities_by_hash(ENTITY_VEHICLE, true, 353883353) if next(entity_list) ~= nil then heli = entity_list[1] end - entity_list = get_entities_by_hash("ped", true, -1868718465) + entity_list = get_entities_by_hash(ENTITY_PED, true, -1868718465) if next(entity_list) ~= nil then target_ped = entity_list[1] end @@ -2000,7 +1424,7 @@ menu.action(LS_Robbery_UD, "坐进直升机并传送到目标载具上空", {}, end) menu.click_slider(LS_Robbery_UD, "目标载具 传送到目的地", {}, "玩家自己也会跟着传送过去", 1, 2, 1, 1, function(value) - local entity_list = get_entities_by_hash("ped", true, -1868718465) + local entity_list = get_entities_by_hash(ENTITY_PED, true, -1868718465) if next(entity_list) ~= nil then local data = { { coords = v3(-1326.9161, -1026.7085, 7.1590), heading = 263.5850 }, @@ -2018,7 +1442,7 @@ menu.click_slider(LS_Robbery_UD, "目标载具 传送到目的地", {}, "玩家 end end) menu.toggle_loop(LS_Robbery_UD, "指示 目标NPC位置", {}, "", function() - local entity_list = get_entities_by_hash("ped", true, -1868718465) + local entity_list = get_entities_by_hash(ENTITY_PED, true, -1868718465) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do draw_line_to_entity(ent) @@ -2034,7 +1458,7 @@ local LS_Robbery_TSD = menu.list(LS_Robbery, "大钞交易", {}, "") menu.divider(LS_Robbery_TSD, "追踪设备") menu.action(LS_Robbery_TSD, "传送到 机动作战中心", {}, "", function() - local entity_list = get_entities_by_hash("vehicle", true, 1502869817) + local entity_list = get_entities_by_hash(ENTITY_VEHICLE, true, 1502869817) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do if not ENTITY.IS_ENTITY_ATTACHED(ent) then @@ -2046,7 +1470,7 @@ menu.action(LS_Robbery_TSD, "传送到 机动作战中心", {}, "", function() end) menu.divider(LS_Robbery_TSD, "病毒软件") menu.action(LS_Robbery_TSD, "黑客 传送到我", {}, "会传送到空中然后摔死", function() - local entity_list = get_entities_by_hash("ped", true, -2039163396) + local entity_list = get_entities_by_hash(ENTITY_PED, true, -2039163396) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_entity_to_me(ent, 0.0, 2.0, 10.0) @@ -2054,7 +1478,7 @@ menu.action(LS_Robbery_TSD, "黑客 传送到我", {}, "会传送到空中然后 end end) menu.action(LS_Robbery_TSD, "传送到 病毒软件", {}, "", function() - local entity_list = get_entities_by_hash("pickup", true, 1112175411) + local entity_list = get_entities_by_hash(ENTITY_PICKUP, true, 1112175411) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_to_entity(ent, 0.0, 0.0, 0.5) @@ -2071,7 +1495,7 @@ menu.action(LS_Robbery_TSD, "运输载具 传送到我前面", {}, "前面要预 end end) menu.action(LS_Robbery_TSD, "军备箱 传送到我", {}, "会堆在一起", function() - local entity_list = get_entities_by_hash("object", true, -680801934) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, true, -680801934) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do set_entity_heading_to_entity(ent, players.user_ped(), 0.0) @@ -2126,7 +1550,7 @@ menu.action(LS_Robbery_TBC, "传送到 银行金库", {}, "", function() teleport2(coords[1], coords[2], coords[3], heading) end) menu.action(LS_Robbery_TBC, "删除 银行金库铁门", {}, "", function() - local entity_list = get_entities_by_hash("object", false, -1591004109) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, false, -1591004109) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do entities.delete(ent) @@ -2142,7 +1566,7 @@ local LS_Robbery_TEJ = menu.list(LS_Robbery, "电控单元差事", {}, " menu.divider(LS_Robbery_TEJ, "火车货运清单") menu.action(LS_Robbery_TEJ, "传送到 集装箱清单", {}, "", function() - local entity_list = get_entities_by_hash("object", true, -1398142754) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, true, -1398142754) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_to_entity(ent, 0.0, 0.0, 0.5) @@ -2150,7 +1574,7 @@ menu.action(LS_Robbery_TEJ, "传送到 集装箱清单", {}, "", function() end end) menu.action(LS_Robbery_TEJ, "传送到 切割锯", {}, "", function() - local entity_list = get_entities_by_hash("pickup", true, 339736694) + local entity_list = get_entities_by_hash(ENTITY_PICKUP, true, 339736694) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_to_entity(ent, 0.0, 0.0, 0.5) @@ -2159,7 +1583,7 @@ menu.action(LS_Robbery_TEJ, "传送到 切割锯", {}, "", function() end) menu.divider(LS_Robbery_TEJ, "终章") menu.action(LS_Robbery_TEJ, "爆炸 刹车气缸", {}, "", function() - local entity_list = get_entities_by_hash("object", true, 897163609) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, true, 897163609) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do local coords = ENTITY.GET_ENTITY_COORDS(ent) @@ -2168,7 +1592,7 @@ menu.action(LS_Robbery_TEJ, "爆炸 刹车气缸", {}, "", function() end end) menu.action(LS_Robbery_TEJ, "电控单元 传送到我", {}, "需要动一下来确保拾取到", function() - local entity_list = get_entities_by_hash("pickup", true, 92049373) + local entity_list = get_entities_by_hash(ENTITY_PICKUP, true, 92049373) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_entity_to_me(ent) @@ -2188,7 +1612,7 @@ menu.action(LS_Robbery_TPC, "传送到 警局", {}, "直接让他自首,然后 end) menu.divider(LS_Robbery_TPC, "入口") menu.action(LS_Robbery_TPC, "传送到 拖车", {}, "坐进卡车并连接拖车", function() - local entity_list = get_entities_by_hash("vehicle", true, 1518533038) + local entity_list = get_entities_by_hash(ENTITY_VEHICLE, true, 1518533038) if next(entity_list) ~= nil then local hauler = entity_list[1] TP_ENTITY(hauler, v3(-1079.2828369141, -482.62564086914, 36.821292877197), 178.14994812012) @@ -2198,7 +1622,7 @@ menu.action(LS_Robbery_TPC, "传送到 拖车", {}, "坐进卡车并连接拖车 end) menu.divider(LS_Robbery_TPC, "终章") menu.action(LS_Robbery_TPC, "小迪 传送到我", {}, "会传送进正在使用的载具", function() - local entity_list = get_entities_by_hash("ped", true, -938608286) + local entity_list = get_entities_by_hash(ENTITY_PED, true, -938608286) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do local veh = entities.get_user_vehicle_as_handle(false) @@ -2219,7 +1643,7 @@ local LS_Robbery_TAD = menu.list(LS_Robbery, "IAA 交易", {}, "") menu.divider(LS_Robbery_TAD, "入口") menu.action(LS_Robbery_TAD, "传送到 图纸", {}, "", function() - local entity_list = get_entities_by_hash("object", true, 429364207) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, true, 429364207) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_to_entity(ent, 0.0, 0.0, 0.5) @@ -2231,7 +1655,7 @@ menu.action(LS_Robbery_TAD, "传送到 地下入口", {}, "", function() end) menu.divider(LS_Robbery_TAD, "终章") menu.action(LS_Robbery_TAD, "传送到 配方", {}, "", function() - local entity_list = get_entities_by_hash("object", true, -1862267709, 188023466) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, true, -1862267709, 188023466) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_to_entity(ent, 0.0, 0.0, 0.5) @@ -2247,7 +1671,7 @@ local LS_Robbery_TLC = menu.list(LS_Robbery, "失落摩托帮合约", {} menu.divider(LS_Robbery_TLC, "实验室地点") menu.action(LS_Robbery_TLC, "传送到 保险箱", {}, "", function() - local entity_list = get_entities_by_hash("object", true, 1089807209) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, true, 1089807209) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_to_entity(ent, 0.0, -1.0, 0.0) @@ -2256,7 +1680,7 @@ menu.action(LS_Robbery_TLC, "传送到 保险箱", {}, "", function() end end) menu.action(LS_Robbery_TLC, "炸药 传送到我", {}, "", function() - local entity_list = get_entities_by_hash("pickup", true, -957953964) + local entity_list = get_entities_by_hash(ENTITY_PICKUP, true, -957953964) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_entity_to_me(ent) @@ -2302,7 +1726,7 @@ local LS_Robbery_TDC = menu.list(LS_Robbery, "数据合约", {}, "") menu.divider(LS_Robbery_TDC, "藏身处地点") menu.action(LS_Robbery_TDC, "传送进 直升机", {}, "", function() - local entity_list = get_entities_by_hash("vehicle", true, 1044954915) + local entity_list = get_entities_by_hash(ENTITY_VEHICLE, true, 1044954915) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do PED.SET_PED_INTO_VEHICLE(players.user_ped(), ent, -2) @@ -2311,7 +1735,7 @@ menu.action(LS_Robbery_TDC, "传送进 直升机", {}, "", function() end) menu.click_slider(LS_Robbery_TDC, "直升机 传送到目的地", {}, "提前传送进直升机", 1, 3, 1, 1, function(value) - local entity_list = get_entities_by_hash("vehicle", true, 1044954915) + local entity_list = get_entities_by_hash(ENTITY_VEHICLE, true, 1044954915) if next(entity_list) ~= nil then local coords_list = { v3(-401.5833, 4342.7768, 135.3380), @@ -2325,7 +1749,7 @@ menu.click_slider(LS_Robbery_TDC, "直升机 传送到目的地", {}, "提前传 end end) menu.action(LS_Robbery_TDC, "巴拉杰 传送到我", {}, "", function() - local entity_list = get_entities_by_hash("vehicle", true, -212993243) + local entity_list = get_entities_by_hash(ENTITY_VEHICLE, true, -212993243) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_vehicle_to_me(ent, "delete", "delete") @@ -2344,7 +1768,7 @@ menu.action(LS_Robbery_TDC, "武器 传送到我", {}, "会一个一个的传送 end) menu.divider(LS_Robbery_TDC, "终章") menu.action(LS_Robbery_TDC, "硬盘 传送到我", {}, "四个硬盘会堆在一起", function() - local entity_list = get_entities_by_hash("object", true, 977288393) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, true, 977288393) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_entity_to_me(ent, 0.0, 2.0, 0.0) @@ -2357,9 +1781,10 @@ end) --------------------------------- --- Freemode Mission --------------------------------- + +---------------------------------- +-- Freemode Mission +---------------------------------- local Freemode_Mission = menu.list(Mission_Options, "自由模式任务", {}, "") @@ -2367,70 +1792,19 @@ local Freemode_Mission = menu.list(Mission_Options, "自由模式任务" local Franklin_Payphone = menu.list(Freemode_Mission, "富兰克林电话任务", {}, "") -local Franklin_Payphone_Tool = menu.list(Franklin_Payphone, "工具", {}, "") - -menu.divider(Franklin_Payphone_Tool, "移除冷却时间") -menu.toggle(Franklin_Payphone_Tool, "电话暗杀和安保合约", { "nocd_agc" }, "任务开始前启用", - function(toggle) - Globals.RemoveCooldown.PayphoneHitAndContract(toggle) - Loop_Handler.Tunables.Cooldown.PayphoneHitAndContract = toggle - end) -menu.click_slider(Franklin_Payphone_Tool, "安保合约刷新间隔时间", { "agcreftime" }, - "单位: 秒\n事务所电脑安保合约刷新间隔时间\n切换战局会失效", 0, 3600, 5, 1, function(value) - TUNABLE_SET_INT(Tunables.FIXER_SECURITY_CONTRACT_REFRESH_TIME, value * 1000) - end) -menu.action(Franklin_Payphone_Tool, "移除电话暗杀冷却时间", {}, "STAT", function() - STAT_SET_INT("PAYPHONE_HIT_CDTIMER", 0) -end) - -menu.divider(Franklin_Payphone_Tool, "") - -local franklin_payphone_missions = { - hit = {}, -} - -franklin_payphone_missions.menu_hit = menu.list(Franklin_Payphone_Tool, "禁用电话暗杀任务", {}, "", function() - if not franklin_payphone_missions.hit.created then - Loop_Handler.Tunables.Payphone.Hit = {} - - franklin_payphone_missions.hit.toggle_menus = {} - menu.toggle(franklin_payphone_missions.menu_hit, "全部开/关", {}, "", function(toggle) - for key, value in pairs(franklin_payphone_missions.hit.toggle_menus) do - menu.set_value(value, toggle) - end - end) - for key, offset in pairs(Globals.Payphone.Hit_Offsets) do - local name = Globals.Payphone.Hit_Names[key] - local global = 262145 + offset +local Franklin_Payphone_Tool = menu.list(Franklin_Payphone, "工具", {}, "") - franklin_payphone_missions.hit.toggle_menus[global] = menu.toggle(franklin_payphone_missions.menu_hit, - name, {}, "", function(toggle) - if toggle then - GLOBAL_SET_FLOAT(global, 0) - else - GLOBAL_SET_FLOAT(global, 1) - end - Loop_Handler.Tunables.Payphone.Hit[global] = toggle - end) - end - franklin_payphone_missions.hit.created = true +menu.action(Franklin_Payphone, "传送到 电话亭", { "rstpPayphone" }, "需要地图上出现电话亭标志", function() + local blip = HUD.GET_NEXT_BLIP_INFO_ID(817) + if HUD.DOES_BLIP_EXIST(blip) then + local coords = HUD.GET_BLIP_COORDS(blip) + teleport2(coords.x, coords.y, coords.z + 1.0) end end) -menu.action(Franklin_Payphone, "传送到 电话亭", { "tppayphone" }, "需要地图上出现电话亭标志", - function() - local blip = HUD.GET_NEXT_BLIP_INFO_ID(817) - if not HUD.DOES_BLIP_EXIST(blip) then - util.toast("No Vehicle Found") - else - local coords = HUD.GET_BLIP_COORDS(blip) - teleport2(coords.x, coords.y, coords.z + 1.0) - end - end) - --#region Payphone Hit local Payphone_Hit = menu.list(Franklin_Payphone, "电话暗杀", {}, "") @@ -2452,7 +1826,7 @@ end) menu.divider(Payphone_Hit, "流行歌星") menu.action(Payphone_Hit, "目标载具 传送到我", {}, "", function() - local entity_list = get_entities_by_hash("vehicle", true, 2038480341) + local entity_list = get_entities_by_hash(ENTITY_VEHICLE, true, 2038480341) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do set_entity_heading_to_entity(ent, players.user_ped(), 180.0) @@ -2465,7 +1839,7 @@ menu.action(Payphone_Hit, "目标载具 传送到我", {}, "", function() end end) menu.action(Payphone_Hit, "任务要求载具 传送到我", {}, "", function() - local entity_list = get_entities_by_hash("vehicle", true, -1013450936, 569305213, -2137348917, 1912215274) + local entity_list = get_entities_by_hash(ENTITY_VEHICLE, true, -1013450936, 569305213, -2137348917, 1912215274) if next(entity_list) ~= nil then local ent = entity_list[1] tp_vehicle_to_me(ent) @@ -2474,7 +1848,7 @@ end) menu.divider(Payphone_Hit, "科技企业家") menu.action(Payphone_Hit, "出租车 传送到我", {}, "", function() - local entity_list = get_entities_by_hash("vehicle", true, -956048545) + local entity_list = get_entities_by_hash(ENTITY_VEHICLE, true, -956048545) if next(entity_list) ~= nil then local ent = entity_list[1] tp_vehicle_to_me(ent) @@ -2492,7 +1866,7 @@ menu.action(Payphone_Hit, "传送到 高尔夫球场", {}, "领取高尔夫装 teleport2(-1368.963, 56.357, 54.101, 278.422) end) menu.action(Payphone_Hit, "目标NPC 传送到我", {}, "", function() - local entity_list = get_entities_by_hash("ped", true, 2111372120) + local entity_list = get_entities_by_hash(ENTITY_PED, true, 2111372120) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_entity_to_me(ent, 0.0, 2.0, 0.0) @@ -2503,7 +1877,7 @@ end) menu.divider(Payphone_Hit, "共同创办人") menu.action(Payphone_Hit, "目标载具 最大速度为0", {}, "", function() - local entity_list = get_entities_by_hash("vehicle", true, -2033222435) + local entity_list = get_entities_by_hash(ENTITY_VEHICLE, true, -2033222435) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do ENTITY.SET_ENTITY_MAX_SPEED(ent, 0.0) @@ -2514,7 +1888,7 @@ end) menu.divider(Payphone_Hit, "工地总裁") menu.action(Payphone_Hit, "传送到 装备", {}, "", function() - local entity_list = get_entities_by_hash("object", true, -86518587) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, true, -86518587) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_to_entity(ent, 0.0, -1.0, 1.0) @@ -2526,12 +1900,12 @@ menu.action(Payphone_Hit, "目标NPC 传送到集装箱附近", {}, "", function local target_ped = 0 local ent = 0 - local entity_list = get_entities_by_hash("ped", true, -973145378) + local entity_list = get_entities_by_hash(ENTITY_PED, true, -973145378) if next(entity_list) ~= nil then target_ped = entity_list[1] end - entity_list = get_entities_by_hash("object", true, 874602658) + entity_list = get_entities_by_hash(ENTITY_OBJECT, true, 874602658) if next(entity_list) ~= nil then ent = entity_list[1] end @@ -2545,12 +1919,12 @@ menu.action(Payphone_Hit, "目标NPC 传送到油罐附近", {}, "", function() local target_ped = 0 local ent = 0 - local entity_list = get_entities_by_hash("ped", true, -973145378) + local entity_list = get_entities_by_hash(ENTITY_PED, true, -973145378) if next(entity_list) ~= nil then target_ped = entity_list[1] end - entity_list = get_entities_by_hash("object", true, -46303329) + entity_list = get_entities_by_hash(ENTITY_OBJECT, true, -46303329) if next(entity_list) ~= nil then ent = entity_list[1] end @@ -2564,12 +1938,12 @@ menu.action(Payphone_Hit, "目标NPC 传送到推土机附近", {}, "", function local target_ped = 0 local ent = 0 - local entity_list = get_entities_by_hash("ped", true, -973145378) + local entity_list = get_entities_by_hash(ENTITY_PED, true, -973145378) if next(entity_list) ~= nil then target_ped = entity_list[1] end - entity_list = get_entities_by_hash("vehicle", true, 1886712733) + entity_list = get_entities_by_hash(ENTITY_VEHICLE, true, 1886712733) if next(entity_list) ~= nil then for _, veh in pairs(entity_list) do local ped = GET_PED_IN_VEHICLE_SEAT(veh, -1) @@ -2594,7 +1968,7 @@ local Security_Contract = menu.list(Franklin_Payphone, "安保合约", { menu.divider(Security_Contract, "回收贵重物品") menu.action(Security_Contract, "传送到 保险箱", {}, "", function() - local entity_list = get_entities_by_hash("object", true, -798293264) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, true, -798293264) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_to_entity(ent, 0.0, -0.5, 0.0) @@ -2603,7 +1977,7 @@ menu.action(Security_Contract, "传送到 保险箱", {}, "", function() end end) menu.action(Security_Contract, "传送到 保险箱密码", {}, "", function() - local entity_list = get_entities_by_hash("object", true, 367638847) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, true, 367638847) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_to_entity(ent, 0.0, 0.0, 0.5) @@ -2613,7 +1987,8 @@ end) menu.divider(Security_Contract, "救援行动") menu.action(Security_Contract, "传送到 客户", {}, "", function() - local entity_list = get_entities_by_hash("ped", true, -2076336881, -1109568186, 2093736314, 826475330, -1589423867) + local entity_list = get_entities_by_hash(ENTITY_PED, true, -2076336881, -1109568186, 2093736314, 826475330, + -1589423867) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do set_entity_godmode(ent, true) @@ -2622,7 +1997,8 @@ menu.action(Security_Contract, "传送到 客户", {}, "", function() end end) menu.action(Security_Contract, "客户 传送到我", {}, "先传送到客户", function() - local entity_list = get_entities_by_hash("ped", true, -2076336881, -1109568186, 2093736314, 826475330, -1589423867) + local entity_list = get_entities_by_hash(ENTITY_PED, true, -2076336881, -1109568186, 2093736314, 826475330, + -1589423867) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do local vehicle = entities.get_user_vehicle_as_handle(false) @@ -2639,7 +2015,7 @@ menu.divider(Security_Contract, "载具回收") menu.action(Security_Contract, "机库: 传送进 载具", {}, "", function() if user_interior() == 260353 then local coords = v3(-1266.6036376953, -3015.2463378906, -47.7700614929) - local vehicle = get_closest_entity("vehicle", coords, true, 1.0) + local vehicle = get_closest_entity(ENTITY_VEHICLE, coords, true, 1.0) if vehicle ~= 0 then tp_into_vehicle(vehicle) end @@ -2652,7 +2028,7 @@ menu.action(Security_Contract, "机库: 传送到 门锁位置", {}, "", functio end) menu.action(Security_Contract, "人道实验室: 传送进 厢型车", {}, "人道实验室 失窃动物", function() - local entity_list = get_entities_by_hash("object", true, 485150676) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, true, 485150676) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do if ENTITY.IS_ENTITY_ATTACHED(ent) then @@ -2754,7 +2130,7 @@ end) menu.divider(Security_Contract, "资产保护") menu.action(Security_Contract, "资产 无敌", {}, "", function() - local entity_list = get_entities_by_hash("object", true, -1597216682, 1329706303, 1503555850, -534405572) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, true, -1597216682, 1329706303, 1503555850, -534405572) if next(entity_list) ~= nil then local i = 0 for _, ent in pairs(entity_list) do @@ -2765,7 +2141,7 @@ menu.action(Security_Contract, "资产 无敌", {}, "", function() end end) menu.action(Security_Contract, "保安 无敌强化", {}, "", function() - local entity_list = get_entities_by_hash("ped", true, -1575488699, -634611634) + local entity_list = get_entities_by_hash(ENTITY_PED, true, -1575488699, -634611634) if next(entity_list) ~= nil then local i = 0 for _, ent in pairs(entity_list) do @@ -2803,7 +2179,7 @@ local LSA_Operations = menu.list(Freemode_Mission, "LSA行动", {}, "") local LSA_DirectAction = menu.list(LSA_Operations, "直接行动", {}, "") menu.action(LSA_DirectAction, "传送到 集装箱", {}, "有图拉尔多的集装箱", function() - local entity_list = get_entities_by_hash("vehicle", true, 1455990255) + local entity_list = get_entities_by_hash(ENTITY_VEHICLE, true, 1455990255) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_to_entity(ent, 0.0, 4.0, 0.0) @@ -2815,7 +2191,7 @@ menu.action(LSA_DirectAction, "传送到 集装箱", {}, "有图拉尔多的集 end) menu.divider(LSA_DirectAction, "附加行动") menu.action(LSA_DirectAction, "传送进 雷兽", {}, "", function() - local entity_list = get_entities_by_hash("vehicle", true, 239897677) + local entity_list = get_entities_by_hash(ENTITY_VEHICLE, true, 239897677) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do set_entity_godmode(ent, true) @@ -2824,7 +2200,7 @@ menu.action(LSA_DirectAction, "传送进 雷兽", {}, "", function() end end) menu.action(LSA_DirectAction, "爆炸 防空系统", {}, "", function() - local entity_list = get_entities_by_hash("object", true, -888936273) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, true, -888936273) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do local coords = ENTITY.GET_ENTITY_COORDS(ent) @@ -2842,7 +2218,7 @@ local LSA_DirectAction_box = {} menu.textslider(LSA_DirectAction, "传送到 梅利威瑟箱子", {}, "放置追踪器", { "获取", "1", "2", "3" }, function(value) if value == 1 then - local entity_list = get_entities_by_hash("object", true, 238227635) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, true, 238227635) if next(entity_list) ~= nil then LSA_DirectAction_box = entity_list util.toast("完成!") @@ -2859,7 +2235,7 @@ menu.textslider(LSA_DirectAction, "传送到 梅利威瑟箱子", {}, "放置追 ----- 外科手术式攻击 ----- local LSA_SurgicalStrike = menu.list(LSA_Operations, "外科手术式攻击", {}, "") menu.action(LSA_SurgicalStrike, "走私犯 传送到我", {}, "会传送到空中然后摔死", function() - local entity_list = get_entities_by_hash("ped", true, 664399832) + local entity_list = get_entities_by_hash(ENTITY_PED, true, 664399832) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_entity_to_me(ent, 0.0, 2.0, 10.0) @@ -2867,7 +2243,7 @@ menu.action(LSA_SurgicalStrike, "走私犯 传送到我", {}, "会传送到空 end end) menu.action(LSA_SurgicalStrike, "信号弹标记货物", {}, "标记3个货物", function() - local entity_list = get_entities_by_hash("object", true, -1297668303, 2104596125, -899949922) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, true, -1297668303, 2104596125, -899949922) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do local pos = ENTITY.GET_ENTITY_COORDS(ent) @@ -2889,7 +2265,7 @@ menu.click_slider(LSA_SurgicalStrike, "传送到 货物", {}, "放置追踪器", { hash = -899949922, offset_y = 1.5, heading = 180 }, } - local entity_list = get_entities_by_hash("object", true, data[value].hash) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, true, data[value].hash) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_to_entity(ent, 0.0, data[value].offset_y, 0.8) @@ -2898,7 +2274,7 @@ menu.click_slider(LSA_SurgicalStrike, "传送到 货物", {}, "放置追踪器", end end) menu.action(LSA_SurgicalStrike, "HVY威胁者 传送到我", {}, "", function() - local entity_list = get_entities_by_hash("vehicle", true, 2044532910) + local entity_list = get_entities_by_hash(ENTITY_VEHICLE, true, 2044532910) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_vehicle_to_me(ent, "", "delete") @@ -2907,7 +2283,7 @@ menu.action(LSA_SurgicalStrike, "HVY威胁者 传送到我", {}, "", function() end) menu.divider(LSA_SurgicalStrike, "附加行动") menu.action(LSA_SurgicalStrike, "夜鲨 传送到我", {}, "偷取梅利威瑟套装", function() - local entity_list = get_entities_by_hash("vehicle", true, 433954513) + local entity_list = get_entities_by_hash(ENTITY_VEHICLE, true, 433954513) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_vehicle_to_me(ent) @@ -2915,7 +2291,7 @@ menu.action(LSA_SurgicalStrike, "夜鲨 传送到我", {}, "偷取梅利威瑟 end end) menu.action(LSA_SurgicalStrike, "传送到 蓝图", {}, "", function() - local entity_list = get_entities_by_hash("object", true, 705213476) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, true, 705213476) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_to_entity(ent, 0.0, 0.0, 0.5) @@ -2923,7 +2299,7 @@ menu.action(LSA_SurgicalStrike, "传送到 蓝图", {}, "", function() end end) menu.action(LSA_SurgicalStrike, "传送到 工艺品", {}, "", function() - local entity_list = get_entities_by_hash("object", true, 1468594282) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, true, 1468594282) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_to_entity(ent, 0.0, 0.0, 0.5) @@ -2935,7 +2311,7 @@ end) local LSA_Whistleblower = menu.list(LSA_Operations, "告密者", {}, "") menu.action(LSA_Whistleblower, "传送进 运兵直升机", {}, "", function() - local entity_list = get_entities_by_hash("vehicle", true, 1621617168) + local entity_list = get_entities_by_hash(ENTITY_VEHICLE, true, 1621617168) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do set_entity_godmode(ent, true) @@ -2945,7 +2321,7 @@ menu.action(LSA_Whistleblower, "传送进 运兵直升机", {}, "", function() end) menu.action(LSA_Whistleblower, "电磁脉冲 传送到直升机挂钩位置", {}, "运兵直升机提前放下吊钩", function() - local entity_list = get_entities_by_hash("object", true, 256023367) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, true, 256023367) if next(entity_list) ~= nil then local veh = GET_VEHICLE_PED_IS_IN(players.user_ped()) if veh ~= 0 and VEHICLE.DOES_CARGOBOB_HAVE_PICK_UP_ROPE(veh) then @@ -2969,7 +2345,7 @@ menu.click_slider(LSA_Whistleblower, "传送到 硬盘", {}, "", 1, 3, 1, 1, fun end) menu.divider(LSA_Whistleblower, "附加行动") menu.action(LSA_Whistleblower, "爆炸 备用发电机", {}, "", function() - local entity_list = get_entities_by_hash("object", true, 440559194) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, true, 440559194) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do local coords = ENTITY.GET_ENTITY_COORDS(ent) @@ -2978,7 +2354,7 @@ menu.action(LSA_Whistleblower, "爆炸 备用发电机", {}, "", function() end end) menu.action(LSA_Whistleblower, "传送到 服务器主机", {}, "上传病毒", function() - local entity_list = get_entities_by_hash("object", true, -1449766933) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, true, -1449766933) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_to_entity(ent, 0.8, -1.0, 0.0) @@ -2987,7 +2363,7 @@ menu.action(LSA_Whistleblower, "传送到 服务器主机", {}, "上传病毒", end end) menu.action(LSA_Whistleblower, "传送到 案件卷宗", {}, "", function() - local entity_list = get_entities_by_hash("object", true, -2135102209) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, true, -2135102209) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_to_entity(ent, 0.0, 0.0, 0.5) @@ -3023,7 +2399,7 @@ menu.action(Dax_Work, "传送到 大麻种植场", {}, "会按顺序传送,同 end) menu.divider(Dax_Work, "回收货物") menu.action(Dax_Work, "敌对老大 传送到我", {}, "", function() - local entity_list = get_entities_by_hash("ped", true, 850468060) + local entity_list = get_entities_by_hash(ENTITY_PED, true, 850468060) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_entity_to_me(ent, 0.0, 2.0, 0.0) @@ -3031,7 +2407,7 @@ menu.action(Dax_Work, "敌对老大 传送到我", {}, "", function() end end) menu.action(Dax_Work, "货物 传送到我", {}, "", function() - local entity_list = get_entities_by_hash("vehicle", true, 1069929536) + local entity_list = get_entities_by_hash(ENTITY_VEHICLE, true, 1069929536) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_vehicle_to_me(ent) @@ -3040,7 +2416,7 @@ menu.action(Dax_Work, "货物 传送到我", {}, "", function() end) menu.divider(Dax_Work, "摧毁敌对生意") menu.action(Dax_Work, "传送进 厢型车", {}, "", function() - local entity_list = get_entities_by_hash("vehicle", true, -119658072) + local entity_list = get_entities_by_hash(ENTITY_VEHICLE, true, -119658072) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_into_vehicle(ent) @@ -3054,7 +2430,7 @@ menu.action(Dax_Work, "传送到 改车王", {}, "", function() end end) menu.action(Dax_Work, "传送到 油罐旁边", {}, "", function() - local entity_list = get_entities_by_hash("object", true, 1890640474) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, true, 1890640474) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_to_entity(ent, 0.0, -2.0, 0.0) @@ -3083,16 +2459,14 @@ local MC_Contracts = menu.list(Freemode_Mission, "摩托帮会所合约" local MC_Contracts_Tool = menu.list(MC_Contracts, "工具", {}, "") -Loop_Handler.Tunables.Biker.Contracts = {} menu.toggle(MC_Contracts_Tool, "单人可进行所有任务", {}, "", function(toggle) Globals.Biker.Contracts.MinPlayer(toggle) - Loop_Handler.Tunables.Biker.Contracts.MinPlayer = toggle end) menu.divider(MC_Contracts, "屋顶作战") menu.action(MC_Contracts, "传送到 割据", {}, "", function() - local entity_list = get_entities_by_hash("object", true, 339736694) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, true, 339736694) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_to_entity(ent, 0.0, -0.8, 0.0) @@ -3101,7 +2475,7 @@ menu.action(MC_Contracts, "传送到 割据", {}, "", function() end end) menu.action(MC_Contracts, "传送到 暴君钥匙", {}, "", function() - local entity_list = get_entities_by_hash("object", true, 2105669131) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, true, 2105669131) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_to_entity(ent, 0.0, -0.8, 0.0) @@ -3110,7 +2484,7 @@ menu.action(MC_Contracts, "传送到 暴君钥匙", {}, "", function() end end) menu.action(MC_Contracts, "传送到 货箱", {}, "有暴君的货箱", function() - local entity_list = get_entities_by_hash("vehicle", true, 884483972) + local entity_list = get_entities_by_hash(ENTITY_VEHICLE, true, 884483972) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do if ENTITY.IS_ENTITY_ATTACHED(ent) then @@ -3127,7 +2501,7 @@ end) menu.divider(MC_Contracts, "直捣黄龙") menu.action(MC_Contracts, "传送到 保险箱", {}, "", function() - local entity_list = get_entities_by_hash("object", true, 1089807209) + local entity_list = get_entities_by_hash(ENTITY_OBJECT, true, 1089807209) if next(entity_list) ~= nil then for _, ent in pairs(entity_list) do tp_to_entity(ent, 0.0, -1.0, 0.0) @@ -3143,36 +2517,6 @@ end) local Contact_Work = menu.list(Freemode_Mission, "联系人请求工作", {}, "") -local Contact_Work_Cooldown = menu.list(Contact_Work, "移除冷却时间", {}, "切换战局后会失效,需要重新操作") -menu.toggle(Contact_Work_Cooldown, "贝克女士 请求工作", {}, "", function(toggle) - if toggle then - TUNABLE_SET_INT(Tunables.VC_WORK_REQUEST_COOLDOWN, 0) - else - TUNABLE_SET_INT(Tunables.VC_WORK_REQUEST_COOLDOWN, 180000) - end -end) -menu.toggle(Contact_Work_Cooldown, "尤汗 请求夜总会货物", {}, "", function(toggle) - if toggle then - TUNABLE_SET_INT(Tunables.NC_GOODS_REQUEST_COOLDOWN, 0) - else - TUNABLE_SET_INT(Tunables.NC_GOODS_REQUEST_COOLDOWN, 1200) - end -end) -menu.toggle(Contact_Work_Cooldown, "14号探员 请求地堡研究", {}, "", function(toggle) - if toggle then - TUNABLE_SET_INT(Tunables.BUNKER_RESEARCH_REQUEST_COOLDOWN, 0) - else - TUNABLE_SET_INT(Tunables.BUNKER_RESEARCH_REQUEST_COOLDOWN, 1200) - end -end) -menu.divider(Contact_Work_Cooldown, "Stat") -menu.action(Contact_Work_Cooldown, "尤汗 请求夜总会货物", {}, "", function() - STAT_SET_INT("SOURCE_GOODS_CDTIMER", 0) -end) -menu.action(Contact_Work_Cooldown, "14号探员 请求地堡研究", {}, "", function() - STAT_SET_INT("SOURCE_RESEARCH_CDTIMER", 0) -end) - menu.action(Contact_Work, "尤汗: 货物 传送到我", {}, "", function() local ent = get_entity_from_blip(HUD.GET_NEXT_BLIP_INFO_ID(478)) if ent ~= 0 then @@ -3187,34 +2531,34 @@ end) menu.divider(Freemode_Mission, "其它") -menu.action(Freemode_Mission, "传送到 电脑", { "tp_desk" }, "", function() +menu.action(Freemode_Mission, "传送到 电脑", { "rstpDesk" }, "", function() local blip = HUD.GET_NEXT_BLIP_INFO_ID(521) if HUD.DOES_BLIP_EXIST(blip) then local coords = HUD.GET_BLIP_COORDS(blip) teleport2(coords.x - 1.0, coords.y + 1.0, coords.z) end end) -menu.action(Freemode_Mission, "打开 恐霸屏幕", { "open_terrorbyte" }, "", function() +menu.action(Freemode_Mission, "打开 恐霸屏幕", { "openTerrorbyte" }, "", function() if IS_IN_SESSION() then GLOBAL_SET_INT(Globals.IsUsingComputerScreen, 1) START_SCRIPT("appHackerTruck", 4592) -- arg count needed to properly start the script, possibly outdated end end) -menu.action(Freemode_Mission, "传送到 夜总会VIP客户", { "ftp_vip" }, "", function() +menu.action(Freemode_Mission, "传送到 夜总会VIP客户", { "rstpVip" }, "", function() local blip = HUD.GET_NEXT_BLIP_INFO_ID(480) if HUD.DOES_BLIP_EXIST(blip) then local coords = HUD.GET_BLIP_COORDS(blip) teleport2(coords.x, coords.y, coords.z + 0.8) end end) -menu.action(Freemode_Mission, "传送到 地图蓝点", { "ftp_blue" }, "", function() +menu.action(Freemode_Mission, "传送到 地图蓝点", { "rstpBlue" }, "", function() local blip = HUD.GET_NEXT_BLIP_INFO_ID(143) if HUD.DOES_BLIP_EXIST(blip) then local coords = HUD.GET_BLIP_COORDS(blip) teleport2(coords.x, coords.y, coords.z + 0.8) end end) -menu.action(Freemode_Mission, "出口载具 传送到我", { "tpme_export_veh" }, "", function() +menu.action(Freemode_Mission, "出口载具 传送到我", { "tpmeExportVeh" }, "", function() local blip = HUD.GET_NEXT_BLIP_INFO_ID(143) if HUD.DOES_BLIP_EXIST(blip) then local ent = HUD.GET_BLIP_INFO_ID_ENTITY_INDEX(blip) @@ -3223,10 +2567,10 @@ menu.action(Freemode_Mission, "出口载具 传送到我", { "tpme_export_veh" } end end end) -menu.action(Freemode_Mission, "传送到 载具出口码头", { "ftp_dock" }, "", function() +menu.action(Freemode_Mission, "传送到 载具出口码头", { "rstpDock" }, "", function() teleport2(1171.784, -2974.434, 6.502) end) -menu.action(Freemode_Mission, "传送到 出租车乘客", { "ftp_taxi_passenger" }, "", function() +menu.action(Freemode_Mission, "传送到 出租车乘客", { "rstpTaxiPassenger" }, "", function() local blip = HUD.GET_NEXT_BLIP_INFO_ID(280) if HUD.DOES_BLIP_EXIST(blip) then local ped = HUD.GET_BLIP_INFO_ID_ENTITY_INDEX(blip) @@ -3236,15 +2580,29 @@ menu.action(Freemode_Mission, "传送到 出租车乘客", { "ftp_taxi_passenger end end end) -menu.action(Freemode_Mission, "传送到 杰拉德包裹", { "ftp_drug_pack" }, "进入范围内才能传送", function() - local entity_list = get_entities_by_hash("object", true, 138777325, -1620734287, 765087784) - if next(entity_list) ~= nil then - for _, ent in pairs(entity_list) do - tp_to_entity(ent, 0.0, 0.0, 0.5) - end +menu.action(Freemode_Mission, "传送到 杰拉德包裹", { "rstpDeadDrop" }, "", function() + -- local entity_list = get_entities_by_hash(ENTITY_OBJECT, true, 138777325, -1620734287, 765087784) + -- if next(entity_list) ~= nil then + -- for _, ent in pairs(entity_list) do + -- tp_to_entity(ent, 0.0, 0.0, 0.5) + -- end + -- end + local area = GET_PACKED_STAT_INT_CODE(PackedStats.DAILYCOLLECT_DEAD_DROP_AREA_0) + local location = GET_PACKED_STAT_INT_CODE(PackedStats.DAILYCOLLECT_DEAD_DROP_LOCATION_0) + + local coords = Misc_T.DeadDropCoords[area] + if not coords then + return + end + + coords = coords[location] + if not coords then + return end + + teleport2(coords[1], coords[2], coords[3] + 0.5) end) -menu.action(Freemode_Mission, "会所酒吧补给品 传送到我", { "tpme_biker_bar" }, "", function() +menu.action(Freemode_Mission, "会所酒吧补给品 传送到我", { "tpmeBikerBar" }, "", function() -- Hash: 528555233 (pickup) local ent = get_entity_from_blip(HUD.GET_NEXT_BLIP_INFO_ID(827)) if ent ~= 0 then @@ -3252,62 +2610,33 @@ menu.action(Freemode_Mission, "会所酒吧补给品 传送到我", { "tpme_bike end end) -menu.action(Freemode_Mission, "跳过 藏匿屋输入密码", { "stash_house_code" }, "输入密码时执行本选项", function() - Locals.StashHouseCode() -end) - --- menu.action(Freemode_Mission, "通知 藏匿屋密码", { "stash_house_code" }, "", function() --- if user_interior() == 289793 then --- local code_list = { --- -- hash, code --- { -73329357, "01-23-45" }, -- xm3_prop_xm3_code_01_23_45 --- { 1433270535, "02-12-87" }, --- { 944906360, "05-02-91" }, --- { -1248906748, "24-10-81" }, --- { 1626709912, "28-03-98" }, --- { 921471402, "28-11-97" }, --- { -646417257, "44-23-37" }, --- { -158146725, "72-68-83" }, --- { 1083248297, "73-27-38" }, --- { 2104921722, "77-79-73" }, --- } --- for k, obj in pairs(entities.get_all_objects_as_handles()) do --- if ENTITY.IS_ENTITY_A_MISSION_ENTITY(obj) then --- local hash = ENTITY.GET_ENTITY_MODEL(obj) --- for _, data in pairs(code_list) do --- if hash == data[1] then --- THEFEED_POST.TEXT("藏匿屋密码: " .. data[2]) --- end --- end --- end --- end --- end --- end) --#endregion --------------------------------- --- Multiple Heist Mission --------------------------------- +---------------------------------- +-- Heist Mission +---------------------------------- -local Multiple_Heist_Mission = menu.list(Mission_Options, "多人抢劫任务", {}, "") +local Heist_Mission = menu.list(Mission_Options, "多人抢劫任务", {}, "") + + +menu.divider(Heist_Mission, "公寓抢劫") ---#region Apartment Heist -menu.divider(Multiple_Heist_Mission, "公寓抢劫") +--#region Apartment Heist -------------------------------- --- 全福银行 The Fleeca Job +-- The Fleeca Job -------------------------------- -------------------------------- --- 越狱 The Prison Break +-- The Prison Break -------------------------------- -local Heist_Prison = menu.list(Multiple_Heist_Mission, "越狱", {}, "") +local Heist_Prison = menu.list(Heist_Mission, "越狱", {}, "") menu.action(Heist_Prison, "飞机: 目的地 生成坦克", {}, "", function() local coords = { x = 2183.927, y = 4759.426, z = 41.676 } @@ -3322,56 +2651,61 @@ menu.action(Heist_Prison, "飞机: 目的地 生成坦克", {}, "", function() end end) menu.action(Heist_Prison, "巴士: 传送到目的地", {}, "", function() + local entity_list = get_mission_entities_by_hash(ENTITY_VEHICLE, "fm_mission_controller", -2007026063) + if next(entity_list) == nil then + return + end + local coords = { x = 2054.97119, y = 3179.5639, z = 45.43724 } local heading = 243.0095 - local entity_list = get_entities_by_hash("vehicle", true, -2007026063) - if next(entity_list) ~= nil then - for _, ent in pairs(entity_list) do - local blip = HUD.GET_BLIP_FROM_ENTITY(ent) - if HUD.DOES_BLIP_EXIST(blip) then - local ped = VEHICLE.GET_PED_IN_VEHICLE_SEAT(ent, -1) - if ped ~= 0 and not is_player_ped(ped) then - request_control(ped) - TASK.CLEAR_PED_TASKS_IMMEDIATELY(ped) - SET_ENTITY_HEALTH(ped, 0) - end - if request_control2(ent) then - TP_ENTITY(ent, coords, heading) + for _, ent in pairs(entity_list) do + local blip = HUD.GET_BLIP_FROM_ENTITY(ent) + if HUD.DOES_BLIP_EXIST(blip) then + local ped = VEHICLE.GET_PED_IN_VEHICLE_SEAT(ent, -1) + if ped ~= 0 and not is_player_ped(ped) then + request_control(ped) + TASK.CLEAR_PED_TASKS_IMMEDIATELY(ped) + SET_ENTITY_HEALTH(ped, 0) + end - VEHICLE.SET_VEHICLE_IS_WANTED(ent, false) - VEHICLE.SET_VEHICLE_INFLUENCES_WANTED_LEVEL(ent, false) - VEHICLE.SET_VEHICLE_HAS_BEEN_OWNED_BY_PLAYER(ent, true) - VEHICLE.SET_VEHICLE_IS_STOLEN(ent, false) - VEHICLE.SET_POLICE_FOCUS_WILL_TRACK_VEHICLE(ent, false) + if request_control2(ent) then + TP_ENTITY(ent, coords, heading) - util.toast("完成!") - end + clear_vehicle_wanted(ent) + + util.toast("完成!") end end end end) menu.divider(Heist_Prison, "终章") menu.action(Heist_Prison, "(破坏)巴士 传送到目的地", {}, "", function() + local entity_list = get_mission_entities_by_hash(ENTITY_VEHICLE, "fm_mission_controller", -2007026063) + if next(entity_list) == nil then + return + end + local coords = { x = 1679.619873, y = 3278.103759, z = 41.0774383 } local heading = 32.8253974 - local entity_list = get_entities_by_hash("vehicle", true, -2007026063) - if next(entity_list) ~= nil then - for _, ent in pairs(entity_list) do - local blip = HUD.GET_BLIP_FROM_ENTITY(ent) - if HUD.DOES_BLIP_EXIST(blip) then - local ped = VEHICLE.GET_PED_IN_VEHICLE_SEAT(ent, -1) - if ped ~= 0 and not is_player_ped(ped) then - request_control(ped) - TASK.CLEAR_PED_TASKS_IMMEDIATELY(ped) - SET_ENTITY_HEALTH(ped, 0) - end - if request_control2(ent) then - TP_ENTITY(ent, coords, heading) + for _, ent in pairs(entity_list) do + local blip = HUD.GET_BLIP_FROM_ENTITY(ent) + if HUD.DOES_BLIP_EXIST(blip) then + local ped = GET_PED_IN_VEHICLE_SEAT(ent, -1) + if ped ~= 0 and not is_player_ped(ped) then + request_control(ped) + TASK.CLEAR_PED_TASKS_IMMEDIATELY(ped) + SET_ENTITY_HEALTH(ped, 0) + end - util.toast("完成!") - end + if request_control2(ent) then + TP_ENTITY(ent, coords, heading) + SET_VEHICLE_ENGINE_ON(ent, true) + VEHICLE.SET_VEHICLE_DOOR_BROKEN(ent, 0, true) + VEHICLE.SET_VEHICLE_DOOR_BROKEN(ent, 1, true) + + util.toast("完成!") end end end @@ -3390,32 +2724,32 @@ menu.action(Heist_Prison, "监狱内 生成骷髅马", {}, "", function() end end) menu.action(Heist_Prison, "梅杜莎飞机 无敌", {}, "", function() - local entity_list = get_entities_by_hash("vehicle", true, 1077420264) - if next(entity_list) ~= nil then - for _, ent in pairs(entity_list) do - if IS_MISSION_SCRIPT(GET_ENTITY_SCRIPT(ent)) then - if request_control2(ent) then - set_entity_godmode(ent, true) - strong_vehicle(ent) + local entity_list = get_mission_entities_by_hash(ENTITY_VEHICLE, "fm_mission_controller", 1077420264) + if next(entity_list) == nil then + return + end - util.toast("完成!") - end - end + for _, ent in pairs(entity_list) do + if request_control2(ent) then + set_entity_godmode(ent, true) + strong_vehicle(ent) + + util.toast("完成!") end end end) menu.action(Heist_Prison, "秃鹰直升机 无敌", {}, "", function() - local entity_list = get_entities_by_hash("vehicle", true, 788747387) - if next(entity_list) ~= nil then - for _, ent in pairs(entity_list) do - if IS_MISSION_SCRIPT(GET_ENTITY_SCRIPT(ent)) then - if request_control2(ent) then - set_entity_godmode(ent, true) - strong_vehicle(ent) + local entity_list = get_mission_entities_by_hash(ENTITY_VEHICLE, "fm_mission_controller", 788747387) + if next(entity_list) == nil then + return + end - util.toast("完成!") - end - end + for _, ent in pairs(entity_list) do + if request_control2(ent) then + set_entity_godmode(ent, true) + strong_vehicle(ent) + + util.toast("完成!") end end end) @@ -3424,26 +2758,27 @@ menu.list_action(Heist_Prison, "敌对天煞", {}, "", { { 2, "冻结" }, { 3, "禁用导弹" } }, function(value) - local entity_list = get_entities_by_hash("vehicle", true, -1281684762) - if next(entity_list) ~= nil then - for _, ent in pairs(entity_list) do - if IS_MISSION_SCRIPT(GET_ENTITY_SCRIPT(ent)) then - if request_control2(ent) then - if value == 1 then - TP_ENTITY(ent, { x = 4912, y = -4910, z = 20 }) - elseif value == 2 then - ENTITY.FREEZE_ENTITY_POSITION(ent, true) - elseif value == 3 then - local ped = GET_PED_IN_VEHICLE_SEAT(ent, -1) - if ped ~= 0 and not is_player_ped(ped) then - if request_control2(ped) then - VEHICLE.DISABLE_VEHICLE_WEAPON(true, 3313697558, ent, ped) -- VEHICLE_WEAPON_PLANE_ROCKET - end - end + local entity_list = get_mission_entities_by_hash(ENTITY_VEHICLE, "fm_mission_controller", -1281684762) + if next(entity_list) == nil then + return + end + + for _, ent in pairs(entity_list) do + if request_control2(ent) then + if value == 1 then + TP_ENTITY(ent, { x = 4912, y = -4910, z = 20 }) + elseif value == 2 then + ENTITY.FREEZE_ENTITY_POSITION(ent, true) + elseif value == 3 then + local ped = GET_PED_IN_VEHICLE_SEAT(ent, -1) + if ped ~= 0 and not is_player_ped(ped) then + if request_control2(ped) then + -- VEHICLE_WEAPON_PLANE_ROCKET + VEHICLE.DISABLE_VEHICLE_WEAPON(true, 3313697558, ent, ped) end - util.toast("完成!") end end + util.toast("完成!") end end end) @@ -3452,82 +2787,83 @@ local Heist_Prison_rashcosvki = menu.list(Heist_Prison, "光头", {}, "") -- Model Name: ig_rashcosvki, Model Hash: 940330470 menu.action(Heist_Prison_rashcosvki, "无敌强化", {}, "", function() + local entity_list = get_mission_entities_by_hash(ENTITY_PED, "fm_mission_controller", 940330470) + if next(entity_list) == nil then + return + end + local weaponHash = util.joaat("WEAPON_APPISTOL") - local entity_list = get_entities_by_hash("ped", true, 940330470) - if next(entity_list) ~= nil then - for _, ent in pairs(entity_list) do - if request_control2(ent) then - WEAPON.GIVE_WEAPON_TO_PED(ent, weaponHash, -1, false, true) - WEAPON.SET_CURRENT_PED_WEAPON(ent, weaponHash, false) - increase_ped_combat_ability(ent, true) + for _, ent in pairs(entity_list) do + if request_control2(ent) then + WEAPON.GIVE_WEAPON_TO_PED(ent, weaponHash, -1, false, true) + WEAPON.SET_CURRENT_PED_WEAPON(ent, weaponHash, false) - util.toast("完成!") - end + increase_ped_combat_ability(ent, true) + + util.toast("完成!") end end end) menu.action(Heist_Prison_rashcosvki, "传送进 梅杜莎", {}, "", function() - local velum2 = 0 - - local entity_list = get_entities_by_hash("vehicle", true, 1077420264) - if next(entity_list) ~= nil then - for _, ent in pairs(entity_list) do - if IS_MISSION_SCRIPT(GET_ENTITY_SCRIPT(ent)) then - velum2 = ent - end - end + local entity_list = get_mission_entities_by_hash(ENTITY_VEHICLE, "fm_mission_controller", 1077420264) + if next(entity_list) == nil then + return end + local velum2 = entity_list[1] if not ENTITY.DOES_ENTITY_EXIST(velum2) then return end - entity_list = get_entities_by_hash("ped", true, 940330470) - if next(entity_list) ~= nil then - for _, ent in pairs(entity_list) do - if request_control2(ent) then - PED.SET_PED_INTO_VEHICLE(ent, velum2, 0) + entity_list = get_mission_entities_by_hash(ENTITY_PED, "fm_mission_controller", 940330470) + if next(entity_list) == nil then + return + end - util.toast("完成!") - end + for _, ent in pairs(entity_list) do + if request_control2(ent) then + PED.SET_PED_INTO_VEHICLE(ent, velum2, 0) + + util.toast("完成!") end end end) local Heist_Prison_vehicle = 0 -menu.action(Heist_Prison_rashcosvki, "[TEST]跑去监狱外围的警车", {}, - "会在监狱外围生成一辆警车", function() - local hash = util.joaat("police3") - local coords = { x = 1571.585, y = 2605.450, z = 45.880 } - local heading = 343.0217 +menu.action(Heist_Prison_rashcosvki, "[TEST]跑去监狱外围的警车", {}, "会在监狱外围生成一辆警车", function() + local entity_list = get_mission_entities_by_hash(ENTITY_PED, "fm_mission_controller", 940330470) + if next(entity_list) == nil then + return + end - local entity_list = get_entities_by_hash("ped", true, 940330470) - if next(entity_list) ~= nil then - for _, ent in pairs(entity_list) do - if request_control2(ent) then - if not ENTITY.DOES_ENTITY_EXIST(Heist_Prison_vehicle) then - local vehicle = create_vehicle(hash, coords, heading) - upgrade_vehicle(vehicle) - set_entity_godmode(vehicle, true) - strong_vehicle(vehicle) - SET_VEHICLE_ON_GROUND_PROPERLY(vehicle) - - Heist_Prison_vehicle = vehicle - end + local hash = util.joaat("police3") + local coords = { x = 1571.585, y = 2605.450, z = 45.880 } + local heading = 343.0217 - TASK.TASK_GO_TO_ENTITY(ent, Heist_Prison_vehicle, -1, 5.0, 100, 0.0, 0) + for _, ent in pairs(entity_list) do + if request_control2(ent) then + if not ENTITY.DOES_ENTITY_EXIST(Heist_Prison_vehicle) then + local vehicle = create_vehicle(hash, coords, heading) + upgrade_vehicle(vehicle) + set_entity_godmode(vehicle, true) + strong_vehicle(vehicle) + SET_VEHICLE_ON_GROUND_PROPERLY(vehicle) - util.toast("完成!") - end + Heist_Prison_vehicle = vehicle end + + TASK.TASK_GO_TO_ENTITY(ent, Heist_Prison_vehicle, -1, 5.0, 100, 0.0, 0) + + util.toast("完成!") end - end) + end +end) menu.divider(Heist_Prison_rashcosvki, "玩家") local heist_prison = { - select_player = -1, + selected_player = -1, team_list = { [-1] = "无", [0] = "囚犯", @@ -3539,7 +2875,7 @@ local heist_prison = { heist_prison.select_menu = menu.list_select(Heist_Prison_rashcosvki, "选择玩家", {}, "", { { -1, "刷新列表", {}, "" } }, -1, function(value) if value == -1 then - heist_prison.select_player = -1 + heist_prison.selected_player = -1 local list_item_data = { { -1, "刷新列表", {}, "" } } for k, pid in pairs(players.list()) do @@ -3556,39 +2892,44 @@ heist_prison.select_menu = menu.list_select(Heist_Prison_rashcosvki, "选择玩 else local pid = value if players.exists(pid) then - heist_prison.select_player = pid + heist_prison.selected_player = pid else util.toast("该玩家已不存在") end end end) menu.action(Heist_Prison_rashcosvki, "传送到玩家/玩家载具", {}, "", function() - if players.exists(heist_prison.select_player) then - local entity_list = get_entities_by_hash("ped", true, 940330470) - if next(entity_list) ~= nil then - for _, ent in pairs(entity_list) do - if request_control2(ent) then - local player_ped = PLAYER.GET_PLAYER_PED_SCRIPT_INDEX(heist_prison.select_player) - local veh = GET_VEHICLE_PED_IS_IN(player_ped) - if veh ~= 0 then - PED.SET_PED_INTO_VEHICLE(ent, veh, -2) - else - tp_entity_to_entity(ent, player_ped) - end + local selected_player = heist_prison.selected_player + if not players.exists(selected_player) then + return + end - util.toast("完成!") - end + local entity_list = get_mission_entities_by_hash(ENTITY_PED, "fm_mission_controller", 940330470) + if next(entity_list) == nil then + return + end + + for _, ent in pairs(entity_list) do + if request_control2(ent) then + local player_ped = PLAYER.GET_PLAYER_PED_SCRIPT_INDEX(selected_player) + local veh = GET_VEHICLE_PED_IS_IN(player_ped) + if veh ~= 0 then + PED.SET_PED_INTO_VEHICLE(ent, veh, -2) + else + tp_entity_to_entity(ent, player_ped) end + + util.toast("完成!") end end end) ---------------------------------------- --- 突袭人道实验室 The Humane Labs Raid +-- The Humane Labs Raid ---------------------------------------- -local Heist_Huamane = menu.list(Multiple_Heist_Mission, "突袭人道实验室", {}, "") +local Heist_Huamane = menu.list(Heist_Mission, "突袭人道实验室", {}, "") menu.action(Heist_Huamane, "关键密码: 目的地 生成坦克", {}, "", function() local coords = { x = 142.122, y = -1061.271, z = 29.746 } @@ -3603,106 +2944,110 @@ menu.action(Heist_Huamane, "关键密码: 目的地 生成坦克", {}, "", funct end end) menu.action(Heist_Huamane, "电磁装置: 九头蛇 无敌", {}, "", function() - local entity_list = get_entities_by_hash("vehicle", true, 970385471) - if next(entity_list) ~= nil then - for _, ent in pairs(entity_list) do - if IS_MISSION_SCRIPT(GET_ENTITY_SCRIPT(ent)) then - if request_control2(ent) then - set_entity_godmode(ent, true) - strong_vehicle(ent) + local entity_list = get_mission_entities_by_hash(ENTITY_VEHICLE, "fm_mission_controller", 970385471) + if next(entity_list) == nil then + return + end - util.toast("完成!") - end - end + for _, ent in pairs(entity_list) do + if request_control2(ent) then + set_entity_godmode(ent, true) + strong_vehicle(ent) + + util.toast("完成!") end end end) -menu.action(Heist_Huamane, "电磁装置: 天煞 无敌", {}, "没有玩家和NPC驾驶的天煞", - function() - local entity_list = get_entities_by_hash("vehicle", true, -1281684762) - if next(entity_list) ~= nil then - local i = 0 - for _, ent in pairs(entity_list) do - if VEHICLE.IS_VEHICLE_SEAT_FREE(ent, -1, true) then - request_control(ent) - set_entity_godmode(ent, true) - strong_vehicle(ent) +menu.action(Heist_Huamane, "电磁装置: 天煞 无敌", {}, "没有玩家和NPC驾驶的天煞", function() + local entity_list = get_mission_entities_by_hash(ENTITY_VEHICLE, "fm_mission_controller", -1281684762) + if next(entity_list) == nil then + return + end - if has_control_entity(ent) then - i = i + 1 - end - end + local i = 0 + for _, ent in pairs(entity_list) do + if VEHICLE.IS_VEHICLE_SEAT_FREE(ent, -1, true) then + request_control(ent) + set_entity_godmode(ent, true) + strong_vehicle(ent) + + if has_control_entity(ent) then + i = i + 1 end - util.toast("完成!\n数量: " .. i) end - end) + end + util.toast("完成!\n数量: " .. i) +end) menu.action(Heist_Huamane, "运送电磁装置: 叛乱分子 传送到目的地", {}, "", function() + local entity_list = get_mission_entities_by_hash(ENTITY_VEHICLE, "fm_mission_controller", 2071877360) + if next(entity_list) == nil then + return + end + local coords = { x = 3339.7307, y = 3670.7246, z = 43.8973 } local heading = 312.5133 - local entity_list = get_entities_by_hash("vehicle", true, 2071877360) - if next(entity_list) ~= nil then - for _, ent in pairs(entity_list) do - local blip = HUD.GET_BLIP_FROM_ENTITY(ent) - if HUD.DOES_BLIP_EXIST(blip) then - if request_control2(ent) then - TP_ENTITY(ent, coords, heading) - util.toast("完成!") - end + for _, ent in pairs(entity_list) do + local blip = HUD.GET_BLIP_FROM_ENTITY(ent) + if HUD.DOES_BLIP_EXIST(blip) then + if request_control2(ent) then + TP_ENTITY(ent, coords, heading) + + util.toast("完成!") end end end end) menu.action(Heist_Huamane, "终章: 女武神 无敌", {}, "", function() - local entity_list = get_entities_by_hash("vehicle", true, -1600252419) - if next(entity_list) ~= nil then - for _, ent in pairs(entity_list) do - if IS_MISSION_SCRIPT(GET_ENTITY_SCRIPT(ent)) then - if request_control2(ent) then - set_entity_godmode(ent, true) - strong_vehicle(ent) + local entity_list = get_mission_entities_by_hash(ENTITY_VEHICLE, "fm_mission_controller", -1600252419) + if next(entity_list) == nil then + return + end - util.toast("完成!") - end - end + for _, ent in pairs(entity_list) do + if request_control2(ent) then + set_entity_godmode(ent, true) + strong_vehicle(ent) + + util.toast("完成!") end end end) -------------------------------- --- 首轮募资 Series A Funding +-- Series A Funding -------------------------------- -local Heist_Series = menu.list(Multiple_Heist_Mission, "首轮募资", {}, "") +local Heist_Series = menu.list(Heist_Mission, "首轮募资", {}, "") menu.action(Heist_Series, "可卡因: 直升机 无敌", {}, "", function() - local entity_list = get_entities_by_hash("vehicle", true, 744705981) - if next(entity_list) ~= nil then - for _, ent in pairs(entity_list) do - if IS_MISSION_SCRIPT(GET_ENTITY_SCRIPT(ent)) then - if request_control2(ent) then - set_entity_godmode(ent, true) - strong_vehicle(ent) + local entity_list = get_mission_entities_by_hash(ENTITY_VEHICLE, "fm_mission_controller", 744705981) + if next(entity_list) == nil then + return + end - util.toast("完成!") - end - end + for _, ent in pairs(entity_list) do + if request_control2(ent) then + set_entity_godmode(ent, true) + strong_vehicle(ent) + + util.toast("完成!") end end end) menu.action(Heist_Series, "窃取冰毒: 油罐车 无敌", {}, "", function() - local entity_list = get_entities_by_hash("vehicle", true, 1956216962) - if next(entity_list) ~= nil then - for _, ent in pairs(entity_list) do - if IS_MISSION_SCRIPT(GET_ENTITY_SCRIPT(ent)) then - if request_control2(ent) then - set_entity_godmode(ent, true) - strong_vehicle(ent) + local entity_list = get_mission_entities_by_hash(ENTITY_VEHICLE, "fm_mission_controller", 1956216962) + if next(entity_list) == nil then + return + end - util.toast("完成!") - end - end + for _, ent in pairs(entity_list) do + if request_control2(ent) then + set_entity_godmode(ent, true) + strong_vehicle(ent) + + util.toast("完成!") end end end) @@ -3722,91 +3067,96 @@ end) ---------------------------------------- --- 太平洋标准银行 The Pacific Standard +-- The Pacific Standard ---------------------------------------- -local Heist_Pacific = menu.list(Multiple_Heist_Mission, "太平洋标准银行", {}, "") +local Heist_Pacific = menu.list(Heist_Mission, "太平洋标准银行差事", {}, "") -menu.action(Heist_Pacific, "厢型车: 添加地图标记点", {}, "给车添加地图标记点ABCD", - function() - local entity_list = get_entities_by_hash("vehicle", true, 444171386) - if next(entity_list) ~= nil then - local blip_sprite = 535 -- radar_target_a - for _, ent in pairs(entity_list) do - local blip = HUD.GET_BLIP_FROM_ENTITY(ent) - - if HUD.DOES_BLIP_EXIST(blip) then - if HUD.GET_BLIP_SPRITE ~= blip_sprite then - util.remove_blip(blip) - end - end +menu.action(Heist_Pacific, "厢型车: 添加地图标记点", {}, "给车添加地图标记点ABCD", function() + local entity_list = get_mission_entities_by_hash(ENTITY_VEHICLE, "fm_mission_controller", 444171386) + if next(entity_list) == nil then + return + end - if not HUD.DOES_BLIP_EXIST(blip) then - blip = HUD.ADD_BLIP_FOR_ENTITY(ent) - HUD.SET_BLIP_SPRITE(blip, blip_sprite) - HUD.SET_BLIP_COLOUR(blip, 5) -- Yellow - HUD.SET_BLIP_SCALE(blip, 0.8) - end + local blip_sprite = 535 -- radar_target_a + for _, ent in pairs(entity_list) do + local blip = HUD.GET_BLIP_FROM_ENTITY(ent) - blip_sprite = blip_sprite + 1 + if HUD.DOES_BLIP_EXIST(blip) then + if HUD.GET_BLIP_SPRITE ~= blip_sprite then + util.remove_blip(blip) end - util.toast("完成!") end - end) + + if not HUD.DOES_BLIP_EXIST(blip) then + blip = HUD.ADD_BLIP_FOR_ENTITY(ent) + HUD.SET_BLIP_SPRITE(blip, blip_sprite) + HUD.SET_BLIP_COLOUR(blip, 5) -- Yellow + HUD.SET_BLIP_SCALE(blip, 0.8) + end + + blip_sprite = blip_sprite + 1 + end + util.toast("完成!") +end) menu.action(Heist_Pacific, "厢型车: 司机 传送到天上并冻结", {}, "", function() - local entity_list = get_entities_by_hash("vehicle", true, 444171386) - if next(entity_list) ~= nil then - local i = 0 - for _, ent in pairs(entity_list) do - local ped = VEHICLE.GET_PED_IN_VEHICLE_SEAT(ent, -1) - if ped ~= 0 and not is_player_ped(ped) then - request_control(ped) + local entity_list = get_mission_entities_by_hash(ENTITY_VEHICLE, "fm_mission_controller", 444171386) + if next(entity_list) == nil then + return + end - TASK.CLEAR_PED_TASKS_IMMEDIATELY(ped) - set_entity_move(ped, 0.0, 0.0, 500.0) - ENTITY.FREEZE_ENTITY_POSITION(ped, true) + local i = 0 + for _, ent in pairs(entity_list) do + local ped = GET_PED_IN_VEHICLE_SEAT(ent, -1) + if ped ~= 0 and not is_player_ped(ped) then + request_control(ped) - if has_control_entity(ped) then - i = i + 1 - end + TASK.CLEAR_PED_TASKS_IMMEDIATELY(ped) + set_entity_move(ped, 0.0, 0.0, 500.0) + ENTITY.FREEZE_ENTITY_POSITION(ped, true) + + if has_control_entity(ped) then + i = i + 1 end end - util.toast("完成!\n数量: " .. i) end + util.toast("完成!\n数量: " .. i) end) -menu.action(Heist_Pacific, "厢型车: 传送到目的地", {}, "", - function() - local coords = { x = 760, y = -983, z = 31 } - local heading = 93.6973 - local entity_list = get_entities_by_hash("vehicle", true, 444171386) - if next(entity_list) ~= nil then - local ped_num, veh_num = 0, 0 - for _, ent in pairs(entity_list) do - local ped = VEHICLE.GET_PED_IN_VEHICLE_SEAT(ent, -1) - if ped ~= 0 and not is_player_ped(ped) then - request_control(ped) +menu.action(Heist_Pacific, "厢型车: 传送到目的地", {}, "", function() + local entity_list = get_mission_entities_by_hash(ENTITY_VEHICLE, "fm_mission_controller", 444171386) + if next(entity_list) == nil then + return + end - TASK.CLEAR_PED_TASKS_IMMEDIATELY(ped) - set_entity_move(ped, 0.0, 0.0, 500.0) - ENTITY.FREEZE_ENTITY_POSITION(ped, true) + local coords = { x = 760, y = -983, z = 32 } + local heading = 93.6973 - if has_control_entity(ped) then - ped_num = ped_num + 1 - end - end + local ped_num, veh_num = 0, 0 + for _, ent in pairs(entity_list) do + local ped = GET_PED_IN_VEHICLE_SEAT(ent, -1) + if ped ~= 0 and not is_player_ped(ped) then + request_control(ped) - request_control(ent) - TP_ENTITY(ent, coords, heading) - SET_VEHICLE_ON_GROUND_PROPERLY(ent) - coords.y = coords.y + 3.5 + TASK.CLEAR_PED_TASKS_IMMEDIATELY(ped) + set_entity_move(ped, 0.0, 0.0, 500.0) + ENTITY.FREEZE_ENTITY_POSITION(ped, true) - if has_control_entity(ent) then - veh_num = veh_num + 1 - end + if has_control_entity(ped) then + ped_num = ped_num + 1 end - util.toast("完成!\nNPC数量: " .. ped_num .. "\n载具数量: " .. veh_num) end - end) + + request_control(ent) + TP_ENTITY(ent, coords, heading) + SET_VEHICLE_ON_GROUND_PROPERLY(ent) + coords.y = coords.y + 3.5 + + if has_control_entity(ent) then + veh_num = veh_num + 1 + end + end + util.toast("完成!\nNPC数量: " .. ped_num .. "\n载具数量: " .. veh_num) +end) menu.action(Heist_Pacific, "信号: 岛上 生成直升机", {}, "撤离时", function() local coords = { x = -2188.197, y = 5128.990, z = 11.672 } local heading = 314.255 @@ -3832,37 +3182,39 @@ menu.action(Heist_Pacific, "车队: 目的地 生成坦克", {}, "", function() end end) menu.action(Heist_Pacific, "车队: 卡车 无敌", {}, "", function() - local entity_list = get_entities_by_hash("vehicle", true, 630371791) - if next(entity_list) ~= nil then - for _, ent in pairs(entity_list) do - if IS_MISSION_SCRIPT(GET_ENTITY_SCRIPT(ent)) then - if request_control2(ent) then - set_entity_godmode(ent, true) - strong_vehicle(ent) + local entity_list = get_mission_entities_by_hash(ENTITY_VEHICLE, "fm_mission_controller", 630371791) + if next(entity_list) == nil then + return + end - util.toast("完成!") - end - end + for _, ent in pairs(entity_list) do + if request_control2(ent) then + set_entity_godmode(ent, true) + strong_vehicle(ent) + + util.toast("完成!") end end end) menu.action(Heist_Pacific, "摩托车: 雷克卓 升级无敌", {}, "", function() - local entity_list = get_entities_by_hash("vehicle", true, 640818791) - if next(entity_list) ~= nil then - local i = 0 - for _, ent in pairs(entity_list) do - request_control(ent, 500) + local entity_list = get_mission_entities_by_hash(ENTITY_VEHICLE, "fm_mission_controller", 640818791) + if next(entity_list) == nil then + return + end - set_entity_godmode(ent, true) - upgrade_vehicle(ent) - strong_vehicle(ent) + local i = 0 + for _, ent in pairs(entity_list) do + request_control(ent, 500) - if has_control_entity(ent) then - i = i + 1 - end + set_entity_godmode(ent, true) + upgrade_vehicle(ent) + strong_vehicle(ent) + + if has_control_entity(ent) then + i = i + 1 end - util.toast("完成!\n数量: " .. i) end + util.toast("完成!\n数量: " .. i) end) menu.divider(Heist_Pacific, "终章") menu.action(Heist_Pacific, "摩托车位置 生成骷髅马", {}, "", function() @@ -3894,20 +3246,28 @@ end) --#endregion ---#region Doomsday Heist -menu.divider(Multiple_Heist_Mission, "末日豪劫") +menu.divider(Heist_Mission, "末日豪劫") + + +--#region Doomsday Heist Prep + +local Doomsday_Preps = menu.list(Heist_Mission, "前置任务", {}, "") -local Doomsday_Preps = menu.list(Multiple_Heist_Mission, "前置任务", {}, "") +------------------------------------ +-- Act I: The Data Breaches +------------------------------------ -menu.divider(Doomsday_Preps, "末日一: 数据泄露") +menu.divider(Doomsday_Preps, "末日一:数据泄露") menu.action(Doomsday_Preps, "医疗装备: 救护车 传送到我", {}, "", function() - local entity_list = get_entities_by_hash("vehicle", true, 1171614426) - if next(entity_list) ~= nil then - for _, ent in pairs(entity_list) do - if request_control2(ent) then - tp_vehicle_to_me(ent) - end + local entity_list = get_mission_entities_by_hash(ENTITY_VEHICLE, "gb_gangops", 1171614426) + if next(entity_list) == nil then + return + end + + for _, ent in pairs(entity_list) do + if request_control2(ent) then + tp_vehicle_to_me(ent) end end end) @@ -3915,19 +3275,21 @@ local doomsday_preps_deluxo_menu doomsday_preps_deluxo_menu = menu.list_action(Doomsday_Preps, "德罗索: 载具 传送到我", {}, "", { { -1, "刷新载具列表" } }, function(value) if value == -1 then - local entity_list = get_entities_by_hash("vehicle", true, 1483171323) - if next(entity_list) ~= nil then - local list_item_data = { { -1, "刷新载具列表" } } - local i = 1 + local entity_list = get_mission_entities_by_hash(ENTITY_VEHICLE, "gb_gangops", 1483171323) + if next(entity_list) == nil then + return + end - for _, ent in pairs(entity_list) do - table.insert(list_item_data, { ent, "德罗索 " .. i }) - i = i + 1 - end + local list_item_data = { { -1, "刷新载具列表" } } + local i = 1 - menu.set_list_action_options(doomsday_preps_deluxo_menu, list_item_data) - util.toast("已刷新,请重新打开该列表") + for _, ent in pairs(entity_list) do + table.insert(list_item_data, { ent, "德罗索 " .. i }) + i = i + 1 end + + menu.set_list_action_options(doomsday_preps_deluxo_menu, list_item_data) + util.toast("已刷新,请重新打开该列表") else local ent = value if ENTITY.DOES_ENTITY_EXIST(ent) then @@ -3948,37 +3310,42 @@ menu.action(Doomsday_Preps, "德罗索: 当前载具 随机主色调", {}, end) menu.action(Doomsday_Preps, "阿库拉: 载具 传送到我", {}, "需要先去下载飞行数据", function() - local entity_list = get_entities_by_hash("vehicle", true, 1181327175) - if next(entity_list) ~= nil then - for _, ent in pairs(entity_list) do - if request_control2(ent) then - tp_vehicle_to_me(ent, "", "delete") - set_entity_godmode(ent, true) - end + local entity_list = get_mission_entities_by_hash(ENTITY_VEHICLE, "gb_gangops", 1181327175) + if next(entity_list) == nil then + return + end + + for _, ent in pairs(entity_list) do + if request_control2(ent) then + tp_vehicle_to_me(ent, "", "delete") + set_entity_godmode(ent, true) end end end) +------------------------------------ +-- Act II: The Bogdan Problem +------------------------------------ -menu.divider(Doomsday_Preps, "末日二: 博格丹危机") +menu.divider(Doomsday_Preps, "末日二:博格丹危机") menu.action(Doomsday_Preps, "钥匙卡: 防暴车 传送到我", {}, "", function() - local entity_list = get_entities_by_hash("vehicle", true, -1205689942) - if next(entity_list) ~= nil then - for _, ent in pairs(entity_list) do - if request_control2(ent) then - tp_vehicle_to_me(ent) - end + local entity_list = get_mission_entities_by_hash(ENTITY_VEHICLE, "gb_gangops", -1205689942) + if next(entity_list) == nil then + return + end + + for _, ent in pairs(entity_list) do + if request_control2(ent) then + tp_vehicle_to_me(ent) end end end) menu.action(Doomsday_Preps, "ULP情报: 包裹 传送到我", {}, "先干掉毒贩,下方提示进入公寓后传送", function() - local entity_list = get_entities_by_hash("pickup", true, -1851147549) - if next(entity_list) ~= nil then - for _, ent in pairs(entity_list) do - if request_control2(ent) then - tp_entity_to_me(ent) - end + local entity_list = get_mission_pickups("gb_gangops") + for _, ent in pairs(entity_list) do + if request_control2(ent) then + tp_pickup_to_me(ent) end end end) @@ -3986,22 +3353,24 @@ local doomsday_preps_stromberg_menu doomsday_preps_stromberg_menu = menu.list_action(Doomsday_Preps, "斯特龙伯格: 卡车 传送到我", {}, "", { { -1, "刷新载具列表" } }, function(value) if value == -1 then - local entity_list = get_entities_by_hash("object", true, -6020377, -1690938994) - if next(entity_list) ~= nil then - local list_item_data = { { -1, "刷新载具列表" } } - local i = 1 + local entity_list = get_mission_entities_by_hash(ENTITY_OBJECT, "gb_gangops", -6020377, -1690938994) + if next(entity_list) == nil then + return + end - for _, ent in pairs(entity_list) do - if ENTITY.IS_ENTITY_ATTACHED(ent) then - local attached_ent = ENTITY.GET_ENTITY_ATTACHED_TO(ent) - table.insert(list_item_data, { attached_ent, "卡车 " .. i }) - i = i + 1 - end - end + local list_item_data = { { -1, "刷新载具列表" } } + local i = 1 - menu.set_list_action_options(doomsday_preps_stromberg_menu, list_item_data) - util.toast("已刷新,请重新打开该列表") + for _, ent in pairs(entity_list) do + if ENTITY.IS_ENTITY_ATTACHED(ent) then + local attached_ent = ENTITY.GET_ENTITY_ATTACHED_TO(ent) + table.insert(list_item_data, { attached_ent, "卡车 " .. i }) + i = i + 1 + end end + + menu.set_list_action_options(doomsday_preps_stromberg_menu, list_item_data) + util.toast("已刷新,请重新打开该列表") else local ent = value if ENTITY.DOES_ENTITY_EXIST(ent) then @@ -4013,49 +3382,52 @@ doomsday_preps_stromberg_menu = menu.list_action(Doomsday_Preps, "斯特龙伯 end end) menu.action(Doomsday_Preps, "鱼雷电控单元: 包裹 传送到我", {}, "", function() - local entity_list = get_entities_by_hash("pickup", true, 2096599423) - if next(entity_list) ~= nil then - for _, ent in pairs(entity_list) do - if request_control2(ent) then - tp_entity_to_me(ent) - end + local entity_list = get_mission_pickups("gb_gangops") + for _, ent in pairs(entity_list) do + if request_control2(ent) then + tp_pickup_to_me(ent) end end end) +------------------------------------ +-- Act III: The Doomsday Scenario +------------------------------------ -menu.divider(Doomsday_Preps, "末日三: 末日将至") +menu.divider(Doomsday_Preps, "末日三:末日将至") menu.action(Doomsday_Preps, "标记资金: 包裹 传送到我", {}, "", function() - local entity_list = get_entities_by_hash("pickup", true, -549235179) - if next(entity_list) ~= nil then - for _, ent in pairs(entity_list) do - if request_control2(ent) then - tp_entity_to_me(ent) - end + local entity_list = get_mission_pickups("gb_gangops") + for _, ent in pairs(entity_list) do + if request_control2(ent) then + tp_pickup_to_me(ent) end end end) menu.action(Doomsday_Preps, "切尔诺伯格: 载具 传送到我", {}, "", function() - local entity_list = get_entities_by_hash("vehicle", true, -692292317) - if next(entity_list) ~= nil then - for _, ent in pairs(entity_list) do - if request_control2(ent) then - tp_vehicle_to_me(ent) - end + local entity_list = get_mission_entities_by_hash(ENTITY_VEHICLE, "gb_gangops", -692292317) + if next(entity_list) == nil then + return + end + + for _, ent in pairs(entity_list) do + if request_control2(ent) then + tp_vehicle_to_me(ent) end end end) menu.action(Doomsday_Preps, "机载电脑: 飞机 传送到我", {}, "先杀死所有NPC(飞行员)", function() - local entity_list = get_entities_by_hash("object", true, -82999846) - if next(entity_list) ~= nil then - for _, ent in pairs(entity_list) do - if ENTITY.IS_ENTITY_ATTACHED(ent) then - local attached_ent = ENTITY.GET_ENTITY_ATTACHED_TO(ent) - if request_control2(attached_ent) then - tp_entity_to_me(attached_ent, 0.0, 10.0, 2.0) - set_entity_heading_to_entity(attached_ent, players.user_ped(), 180.0) - end + local entity_list = get_mission_entities_by_hash(ENTITY_OBJECT, "gb_gangops", -82999846) + if next(entity_list) == nil then + return + end + + for _, ent in pairs(entity_list) do + if ENTITY.IS_ENTITY_ATTACHED(ent) then + local attached_ent = ENTITY.GET_ENTITY_ATTACHED_TO(ent) + if request_control2(attached_ent) then + tp_entity_to_me(attached_ent, 0.0, 10.0, 2.0) + set_entity_heading_to_entity(attached_ent, players.user_ped(), 180.0) end end end @@ -4064,29 +3436,125 @@ menu.action(Doomsday_Preps, "机载电脑: 飞机 传送到我", {}, --#endregion +--#region Doomsday Heist --------------------------------- --- Options --------------------------------- +------------------------------------ +-- Act I: The Data Breaches +------------------------------------ -menu.divider(Mission_Options, "") +local Doomsday_IAA = menu.list(Heist_Mission, "末日一:数据泄露", {}, "") -menu.click_slider(Mission_Options, "增加任务生命数", { "team_lives" }, "只有是战局主机时才会生效(?)", - -1, 30000, 0, 1, function(value) - if IS_SCRIPT_RUNNING("fm_mission_controller") then - LOCAL_SET_INT("fm_mission_controller", Locals.fm_mission_controller.team_lives, value) - elseif IS_SCRIPT_RUNNING("fm_mission_controller_2020") then - LOCAL_SET_INT("fm_mission_controller_2020", Locals.fm_mission_controller_2020.team_lives, value) - else - util.toast("未进行任务") +menu.divider(Doomsday_IAA, "拦截信号") +menu.action(Doomsday_IAA, "德罗索 升级无敌", {}, "", function() + local entity_list = get_mission_entities_by_hash(ENTITY_VEHICLE, "fm_mission_controller", 1483171323) + if next(entity_list) == nil then + return + end + + local i = 0 + for _, ent in pairs(entity_list) do + request_control(ent, 500) + + set_entity_godmode(ent, true) + upgrade_vehicle(ent) + strong_vehicle(ent) + + if has_control_entity(ent) then + i = i + 1 end - end) -menu.action(Mission_Options, "跳过破解", { "skip_hacking" }, "所有的破解、骇入、钻孔等等", function() - Locals.SkipHacking() + end + util.toast("完成!\n数量: " .. i) +end) +menu.action(Doomsday_IAA, "移除敌对NPC武器", {}, "", function() + local i = 0 + for _, ped in pairs(entities.get_all_peds_as_handles()) do + if is_hostile_ped(ped) then + WEAPON.REMOVE_ALL_PED_WEAPONS(ped) + + if has_control_entity(ped) then + i = i + 1 + end + end + end + util.toast("完成!\n数量: " .. i) +end) + +------------------------------------ +-- Act II: The Bogdan Problem +------------------------------------ + +local Doomsday_SUBMARINE = menu.list(Heist_Mission, "末日二:博格丹危机", {}, "") + +------------------------------------ +-- Act III: The Doomsday Scenario +------------------------------------ + +local Doomsday_MISSILE_SILO = menu.list(Heist_Mission, "末日三:末日将至", {}, "") + +menu.divider(Doomsday_MISSILE_SILO, "营救14号探员") +menu.action(Doomsday_MISSILE_SILO, "14号探员 无敌强化", {}, "", function() + local entity_list = get_mission_entities_by_hash(ENTITY_PED, "fm_mission_controller", -67533719) + if next(entity_list) == nil then + return + end + + local weaponHash = util.joaat("WEAPON_SPECIALCARBINE") + + for _, ent in pairs(entity_list) do + if request_control2(ent) then + give_weapon_to_ped(ent, weaponHash) + increase_ped_combat_ability(ent, true) + + util.toast("完成!") + end + end end) -menu.toggle_loop(Mission_Options, "Voltage Hack", { "voltage_hack" }, "", function() - Locals.VoltageHack() + +menu.divider(Doomsday_MISSILE_SILO, "护送ULP") +menu.action(Doomsday_MISSILE_SILO, "直升机 无敌", {}, "", function() + local entity_list = get_mission_entities_by_hash(ENTITY_VEHICLE, "fm_mission_controller", -1984275979) + if next(entity_list) == nil then + return + end + + for _, ent in pairs(entity_list) do + if request_control2(ent) then + set_entity_godmode(ent, true) + strong_vehicle(ent) + + util.toast("完成!") + end + end end) +menu.click_slider(Doomsday_MISSILE_SILO, "直升机 向前加速", {}, "", + 0, 1000, 100, 50, function(value) + local entity_list = get_mission_entities_by_hash(ENTITY_VEHICLE, "fm_mission_controller", -1984275979) + if next(entity_list) == nil then + return + end + + for _, ent in pairs(entity_list) do + if request_control2(ent) then + VEHICLE.SET_VEHICLE_FORWARD_SPEED_XY(ent, value) + + util.toast("完成!") + end + end + end) + + +--#endregion + + + + +-------------------------------- +-- Options +-------------------------------- + +menu.divider(Mission_Options, "") + + menu.action(Mission_Options, "警局楼顶 生成直升机", {}, "", function() local data_list = { { coords = { x = 578.9077, y = 10.7298, z = 103.6283 }, heading = 181.9320 }, @@ -4097,7 +3565,7 @@ menu.action(Mission_Options, "警局楼顶 生成直升机", {}, "", function() for _, data in pairs(data_list) do local coords = v3(data.coords) - local veh = get_closest_entity("vehicle", coords, false, 5.0) + local veh = get_closest_entity(ENTITY_VEHICLE, coords, false, 5.0) if not ENTITY.DOES_ENTITY_EXIST(veh) then veh = create_vehicle(hash, coords, data.heading) end @@ -4119,32 +3587,10 @@ menu.action(Mission_Options, "警局楼顶 生成直升机", {}, "", function() util.toast("完成! 数量: " .. num) end) -menu.click_slider(Mission_Options, "[TEST]增加任务生命数", {}, "会请求成为任务脚本主机", - -1, 30000, 0, 1, function(value) - local script = 0 - local addr = 0 - if IS_SCRIPT_RUNNING("fm_mission_controller") then - script = "fm_mission_controller" - addr = Locals.fm_mission_controller.team_lives - end - if IS_SCRIPT_RUNNING("fm_mission_controller_2020") then - script = "fm_mission_controller_2020" - addr = Locals.fm_mission_controller_2020.team_lives - end - if script == 0 then - util.toast("未进行任务") - return - end - - util.request_script_host(script) - LOCAL_SET_INT(script, addr, value) - -- local host1 = NETWORK.NETWORK_GET_HOST_OF_SCRIPT(script, -1, 0) - -- local host2 = NETWORK.NETWORK_GET_HOST_OF_SCRIPT(script, 0, 0) - end) local traffic_density_sphere_id = -1 -menu.textslider_stateful(Mission_Options, "交通人口密度", {}, "", { "清空", "清空(立即)", "恢复" }, - function(value) +menu.textslider_stateful(Mission_Options, "交通人口密度", {}, "", + { "清空", "清空(立即)", "恢复" }, function(value) if value == 1 then traffic_density_sphere_id = MISC.ADD_POP_MULTIPLIER_SPHERE(1.1, 1.1, 1.1, 15000.0, 0.0, 0.0, false, true) @@ -4157,10 +3603,250 @@ menu.textslider_stateful(Mission_Options, "交通人口密度", {}, "", { "清 end end) -menu.list_action(Mission_Options, "镜头锁定", { "cam_lock" }, "", { +menu.list_action(Mission_Options, "镜头锁定", { "camLock" }, "", { { 0, "无", { "none" } }, { 1, "第一人称", { "first" } }, { 2, "第三人称", { "third" } }, }, function(value) - GLOBAL_SET_INT(Globals.MissionCameraLock, value) + GLOBAL_SET_INT(g_FMMC_STRUCT.iFixedCamera, value) +end) + + + + +local HeistMissionVehicle = { + replaceVehicles = { + { util.joaat("oppressor2"), util.get_label_text("oppressor2") }, + + { util.joaat("kuruma2"), util.get_label_text("kuruma2") }, + { util.joaat("toreador"), util.get_label_text("toreador") }, + { util.joaat("insurgent3"), util.get_label_text("insurgent3") }, + { util.joaat("deluxo"), util.get_label_text("deluxo") }, + { util.joaat("vigilante"), util.get_label_text("vigilante") }, + + { util.joaat("krieger"), util.get_label_text("krieger") }, + { util.joaat("t20"), util.get_label_text("t20") }, + + { util.joaat("Lazer"), util.get_label_text("Lazer") }, + { util.joaat("hydra"), util.get_label_text("hydra") }, + { util.joaat("raiju"), util.get_label_text("raiju") }, + { util.joaat("buzzard"), util.get_label_text("buzzard") }, + + { util.joaat("khanjali"), util.get_label_text("khanjali") }, + { util.joaat("phantom2"), util.get_label_text("phantom2") }, + } +} + +function HeistMissionVehicle.getDriverName(vehicle) + local driver = VEHICLE.GET_PED_IN_VEHICLE_SEAT(vehicle, -1, false) + + if entities.is_player_ped(driver) then + return players.get_name(get_player_from_ped(driver)) + end + + local driver_hash = ENTITY.GET_ENTITY_MODEL(driver) + local driver_model = util.reverse_joaat(driver_hash) + if driver_model == "" then + return driver_hash .. " [NPC]" + end + return driver_model .. " [NPC]" +end + +function HeistMissionVehicle.getNetIdAddr(vehicle, script) + local netId = NETWORK.NETWORK_GET_NETWORK_ID_FROM_ENTITY(vehicle) + if not NETWORK.NETWORK_DOES_NETWORK_ID_EXIST(netId) then + return 0 + end + + for i = 0, 31, 1 do + local addr = Locals[script].sFMMC_SBD.niVehicle + i + if LOCAL_GET_INT(script, addr) == netId then + return addr + end + end + + return 0 +end + +function HeistMissionVehicle.replaceVehicle(vehicle, hash) + local coords = ENTITY.GET_ENTITY_COORDS(vehicle) + local heading = ENTITY.GET_ENTITY_HEADING(vehicle) + + -- 生成替换载具,先放到天上 + local replace_veh = VEHICLE.CREATE_VEHICLE(hash, coords.x, coords.y, coords.z + 2000, heading, true, true, false) + ENTITY.FREEZE_ENTITY_POSITION(replace_veh, true) + + ENTITY.SET_ENTITY_AS_MISSION_ENTITY(replace_veh, true, false) + + NETWORK.NETWORK_REGISTER_ENTITY_AS_NETWORKED(replace_veh) + local netId = NETWORK.NETWORK_GET_NETWORK_ID_FROM_ENTITY(replace_veh) + if not NETWORK.NETWORK_DOES_NETWORK_ID_EXIST(netId) then + -- 没有成功获得 net id + entities.delete(replace_veh) + return 0 + end + + NETWORK.SET_NETWORK_ID_EXISTS_ON_ALL_MACHINES(netId, true) + NETWORK.SET_NETWORK_ID_CAN_MIGRATE(netId, true) + for _, pid in pairs(players.list()) do + NETWORK.SET_NETWORK_ID_ALWAYS_EXISTS_FOR_PLAYER(netId, pid, true) + end + + strong_vehicle(replace_veh) + upgrade_vehicle(replace_veh) + + -- 传送原载具到其它地方 + ENTITY.DETACH_ENTITY(vehicle, false, false) + ENTITY.FREEZE_ENTITY_POSITION(vehicle, true) + ENTITY.SET_ENTITY_COLLISION(vehicle, false, false) + TP_ENTITY(vehicle, v3(7000, 7000, -100)) + -- 传送原载具内NPC到替换载具内 + -- local seats = VEHICLE.GET_VEHICLE_MAX_NUMBER_OF_PASSENGERS(vehicle) + -- for i = -1, seats - 1 do + -- if not VEHICLE.IS_VEHICLE_SEAT_FREE(vehicle, i, false) then + -- util.create_thread(function() + -- local ped = VEHICLE.GET_PED_IN_VEHICLE_SEAT(vehicle, i) + -- request_control(ped) + -- PED.SET_PED_INTO_VEHICLE(ped, replace_veh, i) + -- end) + -- end + -- end + + -- 传送替换载具到原载具位置 + TP_ENTITY(replace_veh, coords) + ENTITY.FREEZE_ENTITY_POSITION(replace_veh, false) + + return netId +end + +function HeistMissionVehicle.generateMenuActions(menu_parent, vehicle, script) + menu.list_action(menu_parent, "传送", {}, "", { + { 1, "传送到 我并驾驶" }, + { 2, "传送进 驾驶位" }, + { 3, "传送进 空座位" }, + }, function(value) + if value == 1 then + tp_vehicle_to_me(vehicle) + elseif value == 2 then + tp_into_vehicle(vehicle) + elseif value == 3 then + tp_into_vehicle(vehicle, "", "", -2) + end + end) + + menu.action(menu_parent, "无敌强化", {}, "", function() + if request_control2(vehicle) then + set_entity_godmode(vehicle, true) + strong_vehicle(vehicle) + + util.toast("完成!") + end + end) + + menu.action(menu_parent, "载具升级", {}, "", function() + if request_control2(vehicle) then + upgrade_vehicle(vehicle) + + util.toast("完成!") + end + end) + + menu.list_action(menu_parent, "替换载具", {}, "", HeistMissionVehicle.replaceVehicles, function(value) + if NETWORK.NETWORK_GET_HOST_OF_SCRIPT(script, 0, 0) ~= players.user() then + if not util.request_script_host(script) then + util.toast("成为脚本主机失败,请重试") + return + end + + util.yield() -- 如果不加 yield 下面的 spoof_script 会有问题 + end + + if not request_control(vehicle) then + util.toast("请求控制载具失败,请重试") + return + end + + util.yield() + + local hash = value + util.request_model(hash) + if not STREAMING.HAS_MODEL_LOADED(hash) then + return + end + + util.spoof_script(script, function() + local netIdAddr = HeistMissionVehicle.getNetIdAddr(vehicle, script) + if netIdAddr == 0 then + return + end + + local netId = HeistMissionVehicle.replaceVehicle(vehicle, hash) + if netId == 0 then + return + end + + LOCAL_SET_INT(script, netIdAddr, netId) + util.toast("完成!") + end) + + STREAMING.SET_MODEL_AS_NO_LONGER_NEEDED(hash) + end) + + + local temp = menu.divider(menu_parent, "") + menu.set_visible(temp, false) + menu.on_tick_in_viewport(temp, function() + draw_line_to_entity(vehicle) + end) +end + +local Heist_Mission_Vehicle +Heist_Mission_Vehicle = menu.list(Mission_Options, "管理任务载具", {}, "", function() + rs_menu.delete_menu_children(Heist_Mission_Vehicle) + + local script = GET_RUNNING_MISSION_CONTROLLER_SCRIPT() + if script == nil then return end + + for _, vehicle in pairs(entities.get_all_vehicles_as_handles()) do + if ENTITY.IS_ENTITY_A_MISSION_ENTITY(vehicle) then + if GET_ENTITY_SCRIPT(vehicle) == script then + local menu_name = get_vehicle_display_name(vehicle) + local help_text = "" + + if not VEHICLE.IS_VEHICLE_SEAT_FREE(vehicle, -1, false) then + help_text = help_text .. "司机: " .. HeistMissionVehicle.getDriverName(vehicle) .. "\n" + end + + local blip = HUD.GET_BLIP_FROM_ENTITY(vehicle) + if HUD.DOES_BLIP_EXIST(blip) then + local blip_sprite = HUD.GET_BLIP_SPRITE(blip) + if blip_sprite == 1 then + menu_name = menu_name .. " [目标点]" + else + menu_name = menu_name .. " [标记点]" + end + + local blip_colour = HUD.GET_BLIP_COLOUR(blip) + if blip_colour == 54 then + help_text = help_text .. "BLIP_COLOUR_BLUEDARK" .. "\n" + end + end + + if vehicle == PED.GET_VEHICLE_PED_IS_IN(players.user_ped(), false) then + if PED.IS_PED_IN_ANY_VEHICLE(players.user_ped(), false) then + menu_name = menu_name .. " [当前载具]" + else + menu_name = menu_name .. " [上一辆载具]" + end + end + + help_text = help_text .. "控制权: " .. get_entity_owner_name(vehicle) .. "\n" + help_text = help_text .. "乘客数: " .. VEHICLE.GET_VEHICLE_NUMBER_OF_PASSENGERS(vehicle, false, false) + + + local menu_list = menu.list(Heist_Mission_Vehicle, menu_name, {}, help_text) + HeistMissionVehicle.generateMenuActions(menu_list, vehicle, script) + end + end + end end) diff --git a/lib/RScript/Menu/Online.lua b/lib/RScript/Menu/Online.lua index 37c98ab..dd07dae 100644 --- a/lib/RScript/Menu/Online.lua +++ b/lib/RScript/Menu/Online.lua @@ -1,7 +1,8 @@ ------------------------------------------ ----------- Online Options ---------- +-- Online Options ------------------------------------------ + local Online_Options = menu.list(Menu_Root, "线上选项", {}, "") @@ -47,7 +48,7 @@ menu.toggle_loop(Player_Language_Info, "开启", {}, "", function() else local lang = players.get_language(pid) if lang ~= -1 then - local name = players.get_name(pid) + local name = players.get_name(pid) local lang_text = player_lang.language[lang] if text ~= "" then @@ -76,11 +77,11 @@ menu.action(Player_Language, "获取玩家语言列表", { "player_language" }, local text = "" for k, pid in pairs(players.list()) do - local name = players.get_name(pid) - local rank = players.get_rank(pid) - local lang = players.get_language(pid) - local lang_text = player_lang.language[lang] - local title = name .. " (" .. rank .. "级)" + local name = players.get_name(pid) + local rank = players.get_rank(pid) + local lang = players.get_language(pid) + local lang_text = player_lang.language[lang] + local title = name .. " (" .. rank .. "级)" player_lang.menu_list[pid] = menu.readonly(Player_Language, title, lang_text) @@ -103,403 +104,188 @@ menu.divider(Player_Language, "列表") --#endregion ---#region Request Service +--#region Entity Owner -local Request_Service = menu.list(Online_Options, "请求服务", {}, "") +local Entity_Owner = menu.list(Online_Options, "实体控制权", {}, "") -local Request_Service_Cooldown = menu.list(Request_Service, "移除冷却时间", {}, "") -menu.toggle(Request_Service_Cooldown, "CEO技能", {}, "", function(toggle) - Globals.RemoveCooldown.CeoAbility(toggle) - Loop_Handler.Tunables.Cooldown.CeoAbility = toggle -end) -menu.toggle(Request_Service_Cooldown, "CEO载具请求", {}, "", function(toggle) - if toggle then - TUNABLE_SET_INT(Tunables.GB_CALL_VEHICLE_COOLDOWN, 0) - else - TUNABLE_SET_INT(Tunables.GB_CALL_VEHICLE_COOLDOWN, 120000) - end - Loop_Handler.Tunables.Cooldown.CeoVehicle = toggle -end) -menu.toggle(Request_Service_Cooldown, "其它载具请求", {}, "", function(toggle) - Globals.RemoveCooldown.OtherVehicle(toggle) - Loop_Handler.Tunables.Cooldown.OtherVehicle = toggle -end) +local entity_owner = { + screen_pos = memory.alloc(8), + range = 100.0, + text_size = 0.5, +} -local Request_Vehicle_Property = menu.list(Request_Service, "请求载具资产", {}, "") -for _, item in pairs(Globals.Request.VehicleProperty) do - menu.action(Request_Vehicle_Property, "请求 " .. item.name, { "req" .. item.command }, "", function() - GLOBAL_SET_INT(item.global, 1) - util.toast("已请求载具 " .. item.name) - end) -end +menu.toggle_loop(Entity_Owner, "显示载具控制权", { "DisplayEntityOwner" }, "", function() + local player_pos = ENTITY.GET_ENTITY_COORDS(players.user_ped()) -menu.action(Request_Service, "请求重型装甲", { "ammo_drop" }, "请求弹道装甲和火神机枪", - function() - GLOBAL_SET_INT(Globals.BallisticArmor, 1) - end) -menu.action(Request_Service, "重型装甲包裹 传送到我", {}, "", function() - local entity_model_hash = 1688540826 - for k, ent in pairs(entities.get_all_pickups_as_handles()) do - local hash = ENTITY.GET_ENTITY_MODEL(ent) - if hash == entity_model_hash and ENTITY.IS_ENTITY_A_MISSION_ENTITY(ent) then - TP_TO_ME(ent, 0.0, 1.0, 0.0) + for _, vehicle in pairs(entities.get_all_vehicles_as_handles()) do + if ENTITY.IS_ENTITY_ON_SCREEN(vehicle) and ENTITY.HAS_ENTITY_CLEAR_LOS_TO_ENTITY(vehicle, players.user_ped(), 17) then + local ent_pos = ENTITY.GET_ENTITY_COORDS(vehicle) + if v3.distance(player_pos, ent_pos) <= entity_owner.range then + if util.get_screen_coord_from_world_coord_no_adjustment(ent_pos.x, ent_pos.y, ent_pos.z, entity_owner.screen_pos, entity_owner.screen_pos + 4) then + local screen_x, screen_y = memory.read_float(entity_owner.screen_pos), + memory.read_float(entity_owner.screen_pos + 4) + + local vehicle_name = get_vehicle_display_name(vehicle) + local owner = entities.get_owner(vehicle) + local screen_text = string.format("%s (%s)", vehicle_name, players.get_name(owner)) + + local text_color = Colors.purple + if owner == players.user() then + text_color = Colors.green + end + + directx.draw_text(screen_x, screen_y, screen_text, ALIGN_TOP_LEFT, entity_owner.text_size, text_color) + end + end end end end) -menu.toggle(Request_Service, "请求RC坦克", {}, "", function(toggle) - if toggle then - GLOBAL_SET_INT(Globals.RC_Tank, 1) - else - GLOBAL_SET_INT(Globals.RC_Tank, 0) - end -end) -menu.toggle(Request_Service, "请求RC匪徒", {}, "", function(toggle) - if toggle then - GLOBAL_SET_INT(Globals.RC_Bandito, 1) - else - GLOBAL_SET_INT(Globals.RC_Bandito, 0) - end -end) -menu.divider(Request_Service, "无视犯罪") -menu.toggle_loop(Request_Service, "锁定倒计时", {}, "无视犯罪的倒计时", function() - GLOBAL_SET_INT(Globals.NCOPS.time, NETWORK.GET_NETWORK_TIME()) - util.yield(5000) -end) -menu.action(Request_Service, "清空倒计时", {}, "", function() - GLOBAL_SET_INT(Globals.NCOPS.time, 0) -end) -menu.action(Request_Service, "警察无视犯罪", { "no_cops" }, "莱斯特电话请求", function() - GLOBAL_SET_INT(Globals.NCOPS.type, 5) - GLOBAL_SET_INT(Globals.NCOPS.flag, 1) - GLOBAL_SET_INT(Globals.NCOPS.time, NETWORK.GET_NETWORK_TIME()) -end) -menu.toggle_loop(Request_Service, "贿赂当局", {}, "CEO技能", function() - GLOBAL_SET_INT(Globals.NCOPS.type, 81) - GLOBAL_SET_INT(Globals.NCOPS.flag, 1) - GLOBAL_SET_INT(Globals.NCOPS.time, NETWORK.GET_NETWORK_TIME()) - util.yield(5000) -end, function() - GLOBAL_SET_INT(Globals.NCOPS.time, 0) -end) +local Entity_Owner_Setting = menu.list(Entity_Owner, "显示设置", {}, "") -menu.divider(Request_Service, "倒计时") -menu.click_slider(Request_Service, "贿赂当局 倒计时时间", {}, "单位: 分钟\n切换战局后会失效,需要重新操作", - 1, 60, 2, 1, function(value) - TUNABLE_SET_INT(Tunables.GB_BRIBE_AUTHORITIES_DURATION, value * 60 * 1000) - util.toast("完成!") +menu.slider_float(Entity_Owner_Setting, "范围", { "EntityOwnerRange" }, "", + 0, 1000000, entity_owner.range * 100, 5000, function(value) + entity_owner.range = value * 0.01 end) -menu.click_slider(Request_Service, "幽灵组织 倒计时时间", {}, "单位: 分钟\n切换战局后会失效,需要重新操作", - 1, 60, 3, 1, function(value) - TUNABLE_SET_INT(Tunables.GB_GHOST_ORG_DURATION, value * 60 * 1000) - util.toast("完成!") +menu.slider_float(Entity_Owner_Setting, "文字大小", { "EntityOwnerTextSize" }, "", + 10, 500, entity_owner.text_size * 100, 10, function(value) + entity_owner.text_size = value * 0.01 end) ---#endregion - - ---#region Business Monitor - -local Business_Monitor = menu.list(Online_Options, "资产监视", { "business_monitor" }, "") - -local Business = { - Caps = { - NightClub = { - [0] = 50, -- Cargo - [1] = 100, -- Weapons - [2] = 10, -- Cocaine - [3] = 20, -- Meth - [4] = 80, -- Weed - [5] = 60, -- Forgery - [6] = 40 -- Cash - }, - MCBusiness = { - [0] = 60, -- Forgery - [1] = 80, -- Weed - [2] = 40, -- Cash - [3] = 20, -- Meth - [4] = 10 -- Cocaine - }, - Bunker = 100, - AcidLab = 160, - Warehouse = { - [1] = 16, -- "MP_WHOUSE_0", - [2] = 16, -- "MP_WHOUSE_1", - [3] = 16, -- "MP_WHOUSE_2", - [4] = 16, -- "MP_WHOUSE_3", - [5] = 16, -- "MP_WHOUSE_4", - [6] = 111, -- "MP_WHOUSE_5", - [7] = 42, -- "MP_WHOUSE_6", - [8] = 111, -- "MP_WHOUSE_7", - [9] = 16, -- "MP_WHOUSE_8", - [10] = 42, -- "MP_WHOUSE_9", - [11] = 42, -- "MP_WHOUSE_10", - [12] = 42, -- "MP_WHOUSE_11", - [13] = 42, -- "MP_WHOUSE_12", - [14] = 42, -- "MP_WHOUSE_13", - [15] = 42, -- "MP_WHOUSE_14", - [16] = 111, -- "MP_WHOUSE_15", - [17] = 111, -- "MP_WHOUSE_16", - [18] = 111, -- "MP_WHOUSE_17", - [19] = 111, -- "MP_WHOUSE_18", - [20] = 111, -- "MP_WHOUSE_19", - [21] = 42, -- "MP_WHOUSE_20", - [22] = 111, -- "MP_WHOUSE_21", - } - }, - SafeCash = { - NightClub = 250000, - Arcade = 100000, - Agency = 250000, - }, -} - -function Business.GetBusinessSupplies(slot) - return STAT_GET_INT("MATTOTALFORFACTORY" .. slot) -end -function Business.GetBusinessProduct(slot) - return STAT_GET_INT("PRODTOTALFORFACTORY" .. slot) -end +menu.divider(Entity_Owner, "当前载具") -function Business.MCBusinessPropertyType(slot) - local mapping = { - [0] = -1, - [1] = 3, - [2] = 1, - [3] = 4, - [4] = 2, - [5] = 0, - [6] = 3, - [7] = 1, - [8] = 4, - [9] = 2, - [10] = 0, - [11] = 3, - [12] = 1, - [13] = 4, - [14] = 2, - [15] = 0, - [16] = 3, - [17] = 1, - [18] = 4, - [19] = 2, - [20] = 0 - } - local property = STAT_GET_INT("factoryslot" .. slot) -- returns a property ID number - return mapping[property] -end - -Business.Menu = { - bunker = {}, - nightclub = { - product = { - [0] = { name = "运输货物" }, - [1] = { name = "体育用品" }, - [2] = { name = "南美进口货" }, - [3] = { name = "药学研究产品" }, - [4] = { name = "有机农产品" }, - [5] = { name = "印刷品" }, - [6] = { name = "印钞" }, - }, - }, - acid_lab = {}, - safe_cash = {}, - mc_business = { - [0] = { name = "伪造证件" }, - [1] = { name = "大麻" }, - [2] = { name = "假钞" }, - [3] = { name = "冰毒" }, - [4] = { name = "可卡因" }, - }, - special_cargo = {} -} +menu.toggle_loop(Entity_Owner, "信息显示 当前载具控制权", { "rsInfoVehOwner" }, "", function() + local vehicle = entities.get_user_vehicle_as_pointer(false) + if vehicle ~= 0 then + local owner = get_entity_owner_name(vehicle) + util.draw_debug_text("当前载具控制权拥有者: " .. owner) + end +end) -menu.action(Business_Monitor, "刷新状态", {}, "", function() - if IS_IN_SESSION() then - local text = "" - local product = 0 - --- Bunker --- - text = Business.GetBusinessSupplies(5) .. "%" - menu.set_value(Business.Menu.bunker.supplies, text) - - product = Business.GetBusinessProduct(5) - text = product .. "/" .. Business.Caps.Bunker - if product == Business.Caps.Bunker then - text = "[!] " .. text +menu.click_slider(Entity_Owner, "请求控制当前载具", { "vehControl" }, "超时时间,单位毫秒", + 500, 5000, 2000, 500, function(value) + local vehicle = entities.get_user_vehicle_as_pointer(false) + if vehicle == 0 then + return end - menu.set_value(Business.Menu.bunker.product, text) - text = STAT_GET_INT("RESEARCHTOTALFORFACTORY5") .. "/60" - menu.set_value(Business.Menu.bunker.research, text) - - --- Nightclub --- - text = math.floor(STAT_GET_INT('CLUB_POPULARITY') / 10) .. '%' - menu.set_value(Business.Menu.nightclub.popularity, text) - - text = STAT_GET_INT("CLUB_SAFE_CASH_VALUE") - if text == Business.SafeCash.NightClub then - text = "[!] " .. text + if entities.request_control(vehicle, value) then + util.toast("成功") + else + local owner = get_entity_owner_name(vehicle) + util.toast("请求控制当前载具失败\n当前控制权拥有者: " .. owner) end - menu.set_value(Business.Menu.nightclub.safe_cash, text) + end) +menu.action(Entity_Owner, "当前载具控制权 给 当前司机", { "vehDriverControl" }, "", function() + local vehicle = entities.get_user_vehicle_as_handle(false) + if vehicle == INVALID_GUID then + return + end - for i = 0, 6 do - product = STAT_GET_INT("HUB_PROD_TOTAL_" .. i) - text = product .. "/" .. Business.Caps.NightClub[i] - if product == Business.Caps.NightClub[i] then - text = "[!] " .. text - end - menu.set_value(Business.Menu.nightclub.product[i].menu, text) - end + local driver = VEHICLE.GET_PED_IN_VEHICLE_SEAT(vehicle, -1, false) + if driver == players.user_ped() or not has_control_entity(vehicle) then + return + end - --- Acid Lab --- - text = Business.GetBusinessSupplies(6) .. "%" - menu.set_value(Business.Menu.acid_lab.supplies, text) + if not is_player_ped(driver) then + return + end - product = Business.GetBusinessProduct(6) - text = product .. "/" .. Business.Caps.AcidLab - if product == Business.Caps.AcidLab then - text = "[!] " .. text - end - menu.set_value(Business.Menu.acid_lab.product, text) + entities.give_control(vehicle, get_player_from_ped(driver)) +end) - --- Safe Cash --- - text = STAT_GET_INT("ARCADE_SAFE_CASH_VALUE") - if text == Business.SafeCash.Arcade then - text = "[!] " .. text - end - menu.set_value(Business.Menu.safe_cash.arcade, text) - text = STAT_GET_INT("FIXER_SAFE_CASH_VALUE") - if text == Business.SafeCash.Agency then - text = "[!] " .. text - end - menu.set_value(Business.Menu.safe_cash.agency, text) - - --- MC Business --- - for i = 0, 4 do - local type_number = Business.MCBusinessPropertyType(i) - if type_number ~= -1 then - text = Business.GetBusinessSupplies(i) .. "%" - menu.set_value(Business.Menu.mc_business[type_number].supplies, text) - - product = Business.GetBusinessProduct(i) - text = product .. "/" .. Business.Caps.MCBusiness[type_number] - if product == Business.Caps.MCBusiness[type_number] then - text = "[!] " .. text - end - menu.set_value(Business.Menu.mc_business[type_number].product, text) +menu.action(Entity_Owner, "所有载具控制权 给 对应司机", {}, "只作用于控制权是自己的载具", function() + for _, vehicle in pairs(entities.get_all_vehicles_as_handles()) do + if not VEHICLE.IS_VEHICLE_SEAT_FREE(vehicle, -1, false) and has_control_entity(vehicle) then + local driver = VEHICLE.GET_PED_IN_VEHICLE_SEAT(vehicle, -1, false) + if driver ~= players.user_ped() and is_player_ped(driver) then + entities.give_control(vehicle, get_player_from_ped(driver)) end end - - --- Special Cargo --- - for i = 0, 4 do - local warehouse_slot = STAT_GET_INT("PROP_WHOUSE_SLOT" .. i) -- same stat: WARHOUSESLOT - if warehouse_slot ~= 0 then - local sp_crate = STAT_GET_INT("CONTOTALFORWHOUSE" .. i) - local sp_item = STAT_GET_INT("SPCONTOTALFORWHOUSE" .. i) - local warehouse_name = util.get_label_text("MP_WHOUSE_" .. warehouse_slot - 1) - local warehouse_cap = Business.Caps.Warehouse[warehouse_slot] - - text = sp_crate .. "(" .. sp_item .. ")/" .. warehouse_cap - if sp_crate == warehouse_cap then - text = "[!] " .. text - end - menu.set_value(Business.Menu.special_cargo[i], text) - menu.set_menu_name(Business.Menu.special_cargo[i], warehouse_name) - else - menu.set_value(Business.Menu.special_cargo[i], "") - menu.set_menu_name(Business.Menu.special_cargo[i], "无") - end - end - else - util.toast("仅在线上模式战局内可用") end end) -menu.divider(Business_Monitor, "地堡") -Business.Menu.bunker.supplies = menu.readonly(Business_Monitor, "原材料") -Business.Menu.bunker.product = menu.readonly(Business_Monitor, "产品") -Business.Menu.bunker.research = menu.readonly(Business_Monitor, "研究") - -menu.divider(Business_Monitor, "夜总会") -Business.Menu.nightclub.popularity = menu.readonly(Business_Monitor, "夜总会人气") -Business.Menu.nightclub.safe_cash = menu.readonly(Business_Monitor, "保险箱现金") -for i = 0, 6 do - Business.Menu.nightclub.product[i].menu = menu.readonly(Business_Monitor, - Business.Menu.nightclub.product[i].name) -end -menu.divider(Business_Monitor, "致幻剂实验室") -Business.Menu.acid_lab.supplies = menu.readonly(Business_Monitor, "原材料") -Business.Menu.acid_lab.product = menu.readonly(Business_Monitor, "产品") +--#endregion -menu.divider(Business_Monitor, "保险箱现金") -Business.Menu.safe_cash.arcade = menu.readonly(Business_Monitor, "游戏厅") -Business.Menu.safe_cash.agency = menu.readonly(Business_Monitor, "事务所") -menu.divider(Business_Monitor, "") -local Business_Monitor_MC = menu.list(Business_Monitor, "摩托帮工厂", {}, "") -for i = 0, 4 do - menu.divider(Business_Monitor_MC, Business.Menu.mc_business[i].name) - Business.Menu.mc_business[i].supplies = menu.readonly(Business_Monitor_MC, "原材料") - Business.Menu.mc_business[i].product = menu.readonly(Business_Monitor_MC, "产品") -end +--#region Request Service -local Business_Monitor_SpecialCargo = menu.list(Business_Monitor, "特种货物", {}, "括号里是特殊物品数量") -for i = 0, 4 do - Business.Menu.special_cargo[i] = menu.readonly(Business_Monitor_SpecialCargo, "无") -end +local Request_Service = menu.list(Online_Options, "请求服务", {}, "") ---#endregion +local Request_Vehicle_Property = menu.list(Request_Service, "请求服务载具", {}, "") ---#region Business Stats +local VehiclePropertyList = { + { offset = "bLaunchVehicleDropTruck", command = "moc", name = "PIM_TRTV", help = "PIM_HRTV0" }, -- Request Mobile Operations Center + { offset = "bLaunchVehicleDropAvenger", command = "avenger", name = "PIM_ASRQ", help = "PIM_AVEN0" }, -- Request Avenger + { offset = "bLaunchVehicleDropHackerTruck", command = "terrorbyte", name = "PIM_HSRQ", help = "PIM_HTTV0" }, -- Request Terrorbyte + { offset = "bLaunchVehicleDropSubmarine", command = "kosatka", name = "PIM_SUBREQ", help = "PIMD_SUBREQ" }, -- Request Kosatka + { offset = "bLaunchVehicleDropSubmarineDinghy", command = "dinghy", name = "PIM_DINGHYREQ", help = "PIMD_DINGHYREQ" }, -- Request Dinghy + { offset = "bLaunchVehicleDropAcidLab", command = "acidLab", name = "PIM_ALRQB", help = "PIMD_ALRQ0" }, -- Request Acid Lab + { offset = "bLaunchVehicleDropSupportBike", command = "deliveryBike", name = "PIM_ALRQ_PV", help = "PIMD_ALRQPV0" }, -- Request Delivery Bike +} -local Business_Stats = menu.list(Online_Options, "资产统计数据", {}, "") +for _, item in pairs(VehiclePropertyList) do + menu.action(Request_Vehicle_Property, util.get_label_text(item.name), + { "req" .. item.command }, util.get_label_text(item.help), function() + GLOBAL_SET_BOOL(MPGlobalsAmbience[item.offset], true) + util.toast("已请求服务载具") + end) +end -local BusinessStats = { - Bunker = { - [1] = { name = "总营收", stat = "LIFETIME_BKR_SELL_EARNINGS5" }, - [2] = { name = "送达原材料次数", stat = "LFETIME_BIKER_BUY_COMPLET5" }, - [3] = { name = "开启原材料任务次数", stat = "LFETIME_BIKER_BUY_UNDERTA5" }, - [4] = { name = "成功卖货次数", stat = "LFETIME_BIKER_SELL_COMPLET5" }, - [5] = { name = "开启卖货任务次数", stat = "LFETIME_BIKER_SELL_UNDERTA5" }, - }, - SpecialCargo = { - [1] = { name = "总营收", stat = "LIFETIME_CONTRA_EARNINGS" }, - [2] = { name = "成功拉货次数", stat = "LIFETIME_BUY_COMPLETE" }, - [3] = { name = "开启拉货任务次数", stat = "LIFETIME_BUY_UNDERTAKEN" }, - [4] = { name = "成功卖货次数", stat = "LIFETIME_SELL_COMPLETE" }, - [5] = { name = "开启卖货任务次数", stat = "LIFETIME_SELL_UNDERTAKEN" }, - }, -} -menu.action(Business_Stats, "刷新状态", {}, "", function() - if IS_IN_SESSION() then - for i = 1, 5 do - local stat = BusinessStats.Bunker[i].stat - local menu_ = BusinessStats.Bunker[i].menu - menu.set_value(menu_, STAT_GET_INT(stat)) +menu.list_action(Request_Service, "重型防弹装甲服务", { "BallisticArmor" }, "", { + { MPGlobalsAmbience.bLaunchVehicleDropAcidLab, "请求", { "request" } }, + { MPGlobalsAmbience.bEquipBallisticsDrop, "装备", { "equip" } }, + { MPGlobalsAmbience.bRemoveBallisticsDrop, "移除", { "remove" } }, + -- joaat("ex_prop_adv_case_sm") +}, function(value) + GLOBAL_SET_BOOL(value, true) +end) - stat = BusinessStats.SpecialCargo[i].stat - menu_ = BusinessStats.SpecialCargo[i].menu - menu.set_value(menu_, STAT_GET_INT(stat)) - end - else - util.toast("仅在线上模式战局内可用") - end +menu.divider(Request_Service, "遥控载具") +menu.toggle(Request_Service, "RC 坦克", {}, "", function(toggle) + GLOBAL_SET_BOOL(MPGlobalsAmbience.bLaunchRCTank, toggle) +end) +menu.toggle(Request_Service, "RC 匪徒", {}, "", function(toggle) + GLOBAL_SET_BOOL(MPGlobalsAmbience.bLaunchRCBandito, toggle) end) -menu.divider(Business_Stats, "地堡") -for i = 1, 5 do - BusinessStats.Bunker[i].menu = menu.readonly(Business_Stats, BusinessStats.Bunker[i].name) -end +menu.divider(Request_Service, "无视犯罪") +menu.toggle_loop(Request_Service, "锁定倒计时", {}, "无视犯罪的倒计时", function() + GLOBAL_SET_INT(MPGlobalsAmbience.timeCopsDisabled, NETWORK.GET_NETWORK_TIME()) + util.yield(5000) +end) +menu.action(Request_Service, "清空倒计时", {}, "", function() + GLOBAL_SET_INT(MPGlobalsAmbience.timeCopsDisabled, 0) +end) +menu.action(Request_Service, "警察无视犯罪", { "noCops" }, "莱斯特电话请求", function() + -- biNoCops_Activated, biNoCops_Personal + GLOBAL_SET_INT(MPGlobalsAmbience.iLesterDisableCopsBitset, 5) + GLOBAL_SET_INT(MPGlobalsAmbience.iLesterDisableCopsProg, 0) + GLOBAL_SET_INT(MPGlobalsAmbience.timeCopsDisabled, NETWORK.GET_NETWORK_TIME()) +end) +menu.action(Request_Service, "贿赂当局", {}, "CEO技能", function() + -- biNoCops_Activated, biNoCops_Gang + GLOBAL_SET_INT(MPGlobalsAmbience.iLesterDisableCopsBitset, 17) + GLOBAL_SET_INT(MPGlobalsAmbience.iLesterDisableCopsProg, 0) + GLOBAL_SET_INT(MPGlobalsAmbience.timeCopsDisabled, NETWORK.GET_NETWORK_TIME()) +end) -menu.divider(Business_Stats, "特种货物") -for i = 1, 5 do - BusinessStats.SpecialCargo[i].menu = menu.readonly(Business_Stats, BusinessStats.SpecialCargo[i].name) -end +menu.divider(Request_Service, "倒计时") +menu.click_slider(Request_Service, "贿赂当局 倒计时时间", {}, "单位: 分钟\n切换战局后会失效,需要重新操作", + 1, 60, 2, 1, function(value) + Tunables.SetInt("GB_BRIBE_AUTHORITIES_DURATION", value * 60 * 1000) + util.toast("完成!") + end) +menu.click_slider(Request_Service, "幽灵组织 倒计时时间", {}, "单位: 分钟\n切换战局后会失效,需要重新操作", + 1, 60, 3, 1, function(value) + Tunables.SetInt("GB_GHOST_ORG_DURATION", value * 60 * 1000) + util.toast("完成!") + end) --#endregion @@ -519,6 +305,7 @@ local remote_computer_list = { { menu_name = "复仇者操作终端", script = "appavengeroperations", command = "avenger" }, -- { menu_name = "办公室电脑", script = "appsecuroserv", command = "office" }, -- { menu_name = "机动作战指挥中心", script = "appcovertops", command = "moc" }, + { menu_name = "保金办公室电脑", script = "appbailoffice", command = "bailOffice" }, } for _, item in pairs(remote_computer_list) do @@ -548,6 +335,8 @@ local FastTP = { { sprite = 826, name = "事务所", command = "agency" }, { sprite = 475, name = "办公室", command = "office" }, { sprite = 492, name = "摩托帮会所", command = "biker" }, + { sprite = 867, name = "回收站", command = "salvageYard" }, + { sprite = 893, name = "保金办公室", command = "bailOffice" }, }, eventList = { { sprite = 430, name = "时间挑战赛", command = "timetrial" }, @@ -555,62 +344,112 @@ local FastTP = { { sprite = 842, name = "杰拉德包裹", command = "gcaches" }, { sprite = 845, name = "藏匿屋", command = "stashhouse" }, { sprite = 860, name = "拉机能量时间挑战赛", command = "junktimetrial" }, + { sprite = 886, name = "玛德拉索雇凶", command = "madrazoHits" }, }, } +--- @param decoratorName string +--- @return Vehicle +local function get_personal_vehicle_by_decorator(decoratorName) + local playerHash = NETWORK.NETWORK_HASH_FROM_PLAYER_HANDLE(players.user()) + + for _, vehicle in pairs(entities.get_all_vehicles_as_handles()) do + if ENTITY.IS_ENTITY_A_MISSION_ENTITY(vehicle) then + if DECORATOR.DECOR_EXIST_ON(vehicle, decoratorName) then + if DECORATOR.DECOR_GET_INT(vehicle, decoratorName) == playerHash then + return vehicle + end + end + end + end + return 0 +end + menu.divider(Fast_Teleport, "载具资产") -menu.action(Fast_Teleport, "传送到 机动作战中心", { "ftp_moc" }, "", function() +menu.action(Fast_Teleport, "传送到 机动作战中心", { "rstpMoc" }, "", function() local blip = HUD.GET_NEXT_BLIP_INFO_ID(564) - if HUD.DOES_BLIP_EXIST(blip) then - if HUD.GET_BLIP_COLOUR(blip) == get_org_blip_colour(players.user()) then - local ent = HUD.GET_BLIP_INFO_ID_ENTITY_INDEX(blip) - set_entity_heading_to_entity(players.user_ped(), ent) - tp_to_entity(ent, 0.0, -9.0, -1.0) - end - else + if not HUD.DOES_BLIP_EXIST(blip) then util.toast("未在地图上找到 机动作战中心") end + + local ent = 0 + if HUD.GET_BLIP_COLOUR(blip) == get_org_blip_colour(players.user()) then + ent = HUD.GET_BLIP_INFO_ID_ENTITY_INDEX(blip) + else + ent = get_personal_vehicle_by_decorator("Player_Truck") + end + + if ENTITY.DOES_ENTITY_EXIST(ent) then + set_entity_heading_to_entity(players.user_ped(), ent) + tp_to_entity(ent, 0.0, -9.0, -1.0) + else + util.toast("未找到 机动作战中心") + end end) -menu.action(Fast_Teleport, "传送到 复仇者", { "ftp_avenger" }, "", function() +menu.action(Fast_Teleport, "传送到 复仇者", { "rstpAvenger" }, "", function() local blip = HUD.GET_NEXT_BLIP_INFO_ID(589) - if HUD.DOES_BLIP_EXIST(blip) then - if HUD.GET_BLIP_COLOUR(blip) == get_org_blip_colour(players.user()) then - local ent = HUD.GET_BLIP_INFO_ID_ENTITY_INDEX(blip) - set_entity_heading_to_entity(players.user_ped(), ent) - tp_to_entity(ent, 0.0, -8.0, 0.0) - end - else + if not HUD.DOES_BLIP_EXIST(blip) then util.toast("未在地图上找到 复仇者") end + + local ent = 0 + if HUD.GET_BLIP_COLOUR(blip) == get_org_blip_colour(players.user()) then + ent = HUD.GET_BLIP_INFO_ID_ENTITY_INDEX(blip) + else + ent = get_personal_vehicle_by_decorator("Player_Avenger") + end + + if ENTITY.DOES_ENTITY_EXIST(ent) then + set_entity_heading_to_entity(players.user_ped(), ent) + tp_to_entity(ent, 0.0, -8.0, 0.0) + else + util.toast("未找到 复仇者") + end end) -menu.action(Fast_Teleport, "传送到 恐霸", { "ftp_terrorbyte" }, "", function() +menu.action(Fast_Teleport, "传送到 恐霸", { "rstpTerrorbyte" }, "", function() local blip = HUD.GET_NEXT_BLIP_INFO_ID(632) - if HUD.DOES_BLIP_EXIST(blip) then - if HUD.GET_BLIP_COLOUR(blip) == get_org_blip_colour(players.user()) then - local ent = HUD.GET_BLIP_INFO_ID_ENTITY_INDEX(blip) - set_entity_heading_to_entity(players.user_ped(), ent, 90) - tp_to_entity(ent, 2.0, 0.0, 0.0) - end - else + if not HUD.DOES_BLIP_EXIST(blip) then util.toast("未在地图上找到 恐霸") end + + local ent = 0 + if HUD.GET_BLIP_COLOUR(blip) == get_org_blip_colour(players.user()) then + ent = HUD.GET_BLIP_INFO_ID_ENTITY_INDEX(blip) + else + ent = get_personal_vehicle_by_decorator("Player_Hacker_Truck") + end + + if ENTITY.DOES_ENTITY_EXIST(ent) then + set_entity_heading_to_entity(players.user_ped(), ent, 90) + tp_to_entity(ent, 2.0, 0.0, 0.0) + else + util.toast("未找到 恐霸") + end end) -menu.action(Fast_Teleport, "传送到 致幻剂实验室", { "ftp_acidlab" }, "", function() +menu.action(Fast_Teleport, "传送到 致幻剂实验室", { "rstpAcidlab" }, "", function() local blip = HUD.GET_NEXT_BLIP_INFO_ID(840) - if HUD.DOES_BLIP_EXIST(blip) then - if HUD.GET_BLIP_COLOUR(blip) == get_org_blip_colour(players.user()) then - local ent = HUD.GET_BLIP_INFO_ID_ENTITY_INDEX(blip) - set_entity_heading_to_entity(players.user_ped(), ent) - tp_to_entity(ent, 3.0, 0.0, 0.0) - end - else + if not HUD.DOES_BLIP_EXIST(blip) then util.toast("未在地图上找到 致幻剂实验室") end + + local ent = 0 + if HUD.GET_BLIP_COLOUR(blip) == get_org_blip_colour(players.user()) then + ent = HUD.GET_BLIP_INFO_ID_ENTITY_INDEX(blip) + else + ent = get_personal_vehicle_by_decorator("Player_Acid_Lab") + end + + if ENTITY.DOES_ENTITY_EXIST(ent) then + set_entity_heading_to_entity(players.user_ped(), ent) + tp_to_entity(ent, 3.0, 0.0, 0.0) + else + util.toast("未找到 致幻剂实验室") + end end) menu.divider(Fast_Teleport, "资产") for key, item in pairs(FastTP.propertyList) do - menu.action(Fast_Teleport, "传送到 " .. item.name, { "ftp" .. item.command }, "", function() + menu.action(Fast_Teleport, "传送到 " .. item.name, { "rstp" .. item.command }, "", function() local blip = HUD.GET_NEXT_BLIP_INFO_ID(item.sprite) if HUD.DOES_BLIP_EXIST(blip) then if HUD.GET_BLIP_COLOUR(blip) == get_org_blip_colour(players.user()) then @@ -625,7 +464,7 @@ end menu.divider(Fast_Teleport, "活动") for key, item in pairs(FastTP.eventList) do - menu.action(Fast_Teleport, "传送到 " .. item.name, { "ftp" .. item.command }, "", function() + menu.action(Fast_Teleport, "传送到 " .. item.name, { "rstp" .. item.command }, "", function() local blip = HUD.GET_NEXT_BLIP_INFO_ID(item.sprite) if HUD.DOES_BLIP_EXIST(blip) then local coords = HUD.GET_BLIP_COORDS(blip) @@ -639,182 +478,152 @@ end --#endregion ---#region Local Editor +--#region Snack Armour -local Local_Editor = menu.list(Online_Options, "Local Editor", { "local_editor" }, "") +local Snack_Armour = menu.list(Online_Options, "零食和护甲", {}, "") -local local_editor = { - script = "fm_mission_controller", - address = 0, - type = "int", - write = "", -} - -menu.list_select(Local_Editor, "选择脚本", {}, "", { - { 1, "fm_mission_controller" }, - { 2, "fm_mission_controller_2020" }, -}, 1, function(value, name) - local_editor.script = name +menu.action(Snack_Armour, "补满全部零食", {}, "", function() + STAT_SET_INT("NO_BOUGHT_YUM_SNACKS", 30) + STAT_SET_INT("NO_BOUGHT_HEALTH_SNACKS", 15) + STAT_SET_INT("NO_BOUGHT_EPIC_SNACKS", 5) + STAT_SET_INT("NUMBER_OF_ORANGE_BOUGHT", 10) + STAT_SET_INT("NUMBER_OF_BOURGE_BOUGHT", 10) + STAT_SET_INT("NUMBER_OF_CHAMP_BOUGHT", 5) + STAT_SET_INT("CIGARETTES_BOUGHT", 20) + STAT_SET_INT("NUMBER_OF_SPRUNK_BOUGHT", 10) + util.toast("完成!") end) - -menu.slider(Local_Editor, "地址", { "local_address" }, "输入计算总和", - 0, 16777216, 0, 1, function(value) - local_editor.address = value - end) -menu.list_select(Local_Editor, "数值类型", {}, "", { { 1, "INT" }, { 2, "FLOAT" } }, 1, function(value, name) - local_editor.type = string.lower(name) +menu.action(Snack_Armour, "补满全部护甲", {}, "", function() + STAT_SET_INT("MP_CHAR_ARMOUR_1_COUNT", 10) + STAT_SET_INT("MP_CHAR_ARMOUR_2_COUNT", 10) + STAT_SET_INT("MP_CHAR_ARMOUR_3_COUNT", 10) + STAT_SET_INT("MP_CHAR_ARMOUR_4_COUNT", 10) + STAT_SET_INT("MP_CHAR_ARMOUR_5_COUNT", 10) + util.toast("完成!") +end) +menu.action(Snack_Armour, "补满呼吸器", {}, "", function() + STAT_SET_INT("BREATHING_APPAR_BOUGHT", 20) + util.toast("完成!") end) -menu.divider(Local_Editor, "读") -menu.action(Local_Editor, "读取", {}, "", function() - local script = local_editor.script - local address = local_editor.address - if SCRIPT.HAS_SCRIPT_LOADED(script) then - local value - if local_editor.type == "int" then - value = LOCAL_GET_INT(script, address) - elseif local_editor.type == "float" then - value = LOCAL_GET_FLOAT(script, address) - end +local Snack_Editor = menu.list(Snack_Armour, "零食编辑", {}, "") + +local Snack_List_Data = { + { stat = "NO_BOUGHT_YUM_SNACKS", name = "PQ豆", command = "yum", help = "+15 Health", default = 30 }, + { stat = "NO_BOUGHT_HEALTH_SNACKS", name = "宝力旺", command = "health", help = "+45 Health", default = 15 }, + { stat = "NO_BOUGHT_EPIC_SNACKS", name = "麦提来", command = "epic", help = "+30 Health", default = 5 }, + { stat = "NUMBER_OF_ORANGE_BOUGHT", name = "易可乐", command = "orange", help = "+36 Health", default = 10 }, + { stat = "NUMBER_OF_BOURGE_BOUGHT", name = "尿汤啤", command = "bourge", help = "", default = 10 }, + { stat = "NUMBER_OF_CHAMP_BOUGHT", name = "蓝醉香槟", command = "champ", help = "", default = 5 }, + { stat = "CIGARETTES_BOUGHT", name = "香烟", command = "cigarettes", help = "-5 Health", default = 20 }, + { stat = "NUMBER_OF_SPRUNK_BOUGHT", name = "霜碧", command = "sprunk", help = "+36 Health", default = 10 }, +} +for _, item in pairs(Snack_List_Data) do + menu.click_slider(Snack_Editor, item.name, { "snack" .. item.command }, item.help, + 0, 999, item.default, 1, function(value) + STAT_SET_INT(item.stat, value) + util.toast("完成!") + end) +end - if value ~= nil then - menu.set_value(local_editor.readonly, value) - else - menu.set_value(local_editor.readonly, "NULL") - end - else - util.toast("This Script Has Not Loaded") - end -end) -local_editor.readonly = menu.readonly(Local_Editor, "值") +local Armour_Editor = menu.list(Snack_Armour, "护甲编辑", {}, "") + +local Armour_List_Data = { + { stat = "MP_CHAR_ARMOUR_1_COUNT", name = "超轻型防弹衣", command = "1", help = "+10 Armour" }, + { stat = "MP_CHAR_ARMOUR_2_COUNT", name = "轻型防弹衣", command = "2", help = "+20 Armour" }, + { stat = "MP_CHAR_ARMOUR_3_COUNT", name = "标准防弹衣", command = "3", help = "+30 Armour" }, + { stat = "MP_CHAR_ARMOUR_4_COUNT", name = "重型防弹衣", command = "4", help = "+40 Armour" }, + { stat = "MP_CHAR_ARMOUR_5_COUNT", name = "超重型防弹衣", command = "5", help = "+50 Armour" }, +} +for _, item in pairs(Armour_List_Data) do + menu.click_slider(Armour_Editor, item.name, { "armour" .. item.command }, item.help, + 0, 999, 10, 1, function(value) + STAT_SET_INT(item.stat, value) + util.toast("完成!") + end) +end -menu.divider(Local_Editor, "写") -menu.text_input(Local_Editor, "要写入的值", { "local_write" }, "务必注意int类型和float类型的格式", - function(value) - local_editor.write = value + +menu.divider(Snack_Armour, "") +menu.click_slider(Snack_Armour, "自定义全部零食数量", { "snackAll" }, "", + 0, 9999, 999, 50, function(value) + STAT_SET_INT("NO_BOUGHT_YUM_SNACKS", value) + STAT_SET_INT("NO_BOUGHT_HEALTH_SNACKS", value) + STAT_SET_INT("NO_BOUGHT_EPIC_SNACKS", value) + STAT_SET_INT("NUMBER_OF_ORANGE_BOUGHT", value) + STAT_SET_INT("NUMBER_OF_BOURGE_BOUGHT", value) + STAT_SET_INT("NUMBER_OF_CHAMP_BOUGHT", value) + STAT_SET_INT("CIGARETTES_BOUGHT", value) + STAT_SET_INT("NUMBER_OF_SPRUNK_BOUGHT", value) + util.toast("完成!") end) -menu.action(Local_Editor, "写入", {}, "", function() - local script = local_editor.script - local address = local_editor.address - local value = tonumber(local_editor.write) - if value ~= nil then - if SCRIPT.HAS_SCRIPT_LOADED(script) then - if local_editor.type == "int" then - LOCAL_SET_INT(script, address, value) - elseif local_editor.type == "float" then - LOCAL_SET_FLOAT(script, address, value) - end - else - util.toast("This Script Has Not Loaded") - end - end -end) -menu.toggle_loop(Local_Editor, "锁定写入", {}, "更改地址类型,锁定的也会跟着改变", function() - local script = local_editor.script - local address = local_editor.address - local value = tonumber(local_editor.write) - if value ~= nil then - if SCRIPT.HAS_SCRIPT_LOADED(script) then - if local_editor.type == "int" then - LOCAL_SET_INT(script, address, value) - elseif local_editor.type == "float" then - LOCAL_SET_FLOAT(script, address, value) - end - end - end +menu.click_slider(Snack_Armour, "自定义全部护甲数量", { "armourAll" }, "", + 0, 9999, 999, 50, function(value) + STAT_SET_INT("MP_CHAR_ARMOUR_1_COUNT", value) + STAT_SET_INT("MP_CHAR_ARMOUR_2_COUNT", value) + STAT_SET_INT("MP_CHAR_ARMOUR_3_COUNT", value) + STAT_SET_INT("MP_CHAR_ARMOUR_4_COUNT", value) + STAT_SET_INT("MP_CHAR_ARMOUR_5_COUNT", value) + util.toast("完成!") + end) +menu.toggle(Snack_Armour, "禁用最大携带量限制", {}, "", function(toggle) + Tunables.SetInt("DISABLE_STAT_CAP_CHECK", toggle and 1 or 0) + LoopHandler.Tunables.DisableStatCapCheck = toggle end) --#endregion ---#region Global Editor +--#region Gun Van -local Global_Editor = menu.list(Online_Options, "Global Editor", { "global_editor" }, "") +local Gun_Van = menu.list(Online_Options, "枪支厢型车", {}, "") -local global_editor = { - address1 = 262145, - address2 = 0, - type = "int", - write = "", -} -menu.slider(Global_Editor, "地址1", { "global_address1" }, "", 0, 16777216, 262145, 1, function(value) - global_editor.address1 = value -end) -menu.slider(Global_Editor, "地址2", { "global_address2" }, "", 0, 16777216, 0, 1, function(value) - global_editor.address2 = value -end) -menu.list_select(Global_Editor, "数值类型", {}, "", { { 1, "INT" }, { 2, "FLOAT" } }, 1, function(value, name) - global_editor.type = string.lower(name) -end) +local Gun_Van_List = menu.list(Gun_Van, "厢型车武器列表", {}, "") -menu.divider(Global_Editor, "读") -menu.action(Global_Editor, "读取", {}, "", function() - local address = global_editor.address1 + global_editor.address2 - local value - if global_editor.type == "int" then - value = GLOBAL_GET_INT(address) - elseif global_editor.type == "float" then - value = GLOBAL_GET_FLOAT(address) - end +for index = 1, 10 do + local addr = 262145 + TunablesI["XM22_GUN_VAN_SLOT_WEAPON_TYPE_0"] + index + local weapon_hash = GLOBAL_GET_INT(addr) - if value ~= nil then - menu.set_value(global_editor.readonly, value) - else - menu.set_value(global_editor.readonly, "NULL") - end -end) -global_editor.readonly = menu.readonly(Global_Editor, "值") + menu.list_select(Gun_Van_List, "Slot " .. index, { "GunVanSlot" .. index }, "", + Weapon_T.AllWeapons, weapon_hash, function(value) + GLOBAL_SET_INT(addr, value) + end) +end -menu.divider(Global_Editor, "写") -menu.text_input(Global_Editor, "要写入的值", { "global_write" }, "务必注意int类型和float类型的格式", - function(value) - global_editor.write = value - end) -menu.action(Global_Editor, "写入", {}, "", function() - local address = global_editor.address1 + global_editor.address2 - local value = tonumber(global_editor.write) - if value ~= nil then - if global_editor.type == "int" then - GLOBAL_SET_INT(address, value) - elseif global_editor.type == "float" then - GLOBAL_SET_FLOAT(address, value) - end +menu.action(Gun_Van, "传送到 枪支厢型车", { "rstpGunVan" }, "", function() + local location = GLOBAL_GET_INT(Globals.GunVanLocation) + local pos = Misc_T.GunVanPosition[location] + if pos then + teleport2(pos[1], pos[2], pos[3] + 2.0) end end) -menu.toggle_loop(Global_Editor, "锁定写入", {}, "更改地址类型,锁定的也会跟着改变", function() - local address = global_editor.address1 + global_editor.address2 - local value = tonumber(global_editor.write) - if value ~= nil then - if global_editor.type == "int" then - GLOBAL_SET_INT(address, value) - elseif global_editor.type == "float" then - GLOBAL_SET_FLOAT(address, value) - end +menu.action(Gun_Van, "附近生成厢型车", {}, "", function() + local player_pos = ENTITY.GET_ENTITY_COORDS(players.user_ped()) + local bool, coords, heading = get_closest_vehicle_node(player_pos, 1) + if bool then + local addr = memory.script_global(Globals.GunVanSpawnCoords) + memory.write_vector3(addr, coords) + util.toast("完成!") end end) +menu.action(Gun_Van, "重置厢型车位置", {}, "", function() + local addr = memory.script_global(Globals.GunVanSpawnCoords) + memory.write_vector3(addr, v3(0, 0, 0)) +end) ---#endregion +--#endregion -menu.list_select(Online_Options, "战局雪天", { "turn_snow" }, "", { +menu.list_select(Online_Options, "战局雪天", { "turnSnow" }, "", { { -1, "不更改", { "default" }, "" }, { 1, "开启", { "on" }, "" }, { 0, "关闭", { "off" }, "" }, }, -1, function(value) - Loop_Handler.Tunables.TurnSnow = value if value ~= -1 then - TUNABLE_SET_INT(Tunables.TURN_SNOW_ON_OFF, value) + Tunables.SetInt("TURN_SNOW_ON_OFF", value) end -end) -menu.click_slider_float(Online_Options, "AI血量倍数", { "ai_health_multiplier" }, "", - 0, 1000, 100, 10, function(value) - TUNABLE_SET_FLOAT(Tunables.AI_HEALTH, value * 0.01) - Loop_Handler.Tunables.AiHealth = value * 0.01 - end) -menu.toggle(Online_Options, "禁用产业劫货", {}, "", function(toggle) - Globals.DisableBusinessRaid(toggle) - Loop_Handler.Tunables.DisableBusinessRaid = toggle + LoopHandler.Tunables.TurnSnow = value end) diff --git a/lib/RScript/Menu/Other.lua b/lib/RScript/Menu/Other.lua new file mode 100644 index 0000000..495da25 --- /dev/null +++ b/lib/RScript/Menu/Other.lua @@ -0,0 +1,360 @@ +------------------------------------------ +-- Other Options +------------------------------------------ + + +local Other_Options = menu.list(Menu_Root, "其它选项", {}, "") + + +Dev_Options = menu.list(Other_Options, "开发者选项", {}, "") + + +--#region Local Editor + +local Local_Editor = menu.list(Other_Options, "Local Editor", { "LocalEditor" }, "") + +local LocalEditor = { + Menu = {}, + + script = "", + address1 = 0, + address2 = 0, + + type = "int", + write = "", + + Lock = {}, +} + +function LocalEditor.checkScript(script) + if script == "" then + util.toast("请先选择脚本") + return false + end + + if not IS_SCRIPT_RUNNING(script) then + util.toast("该脚本未运行") + return false + end + + return true +end + +LocalEditor.Menu.SelectScript = menu.list(Local_Editor, "选择脚本: 未选择", {}, "") + +menu.text_input(LocalEditor.Menu.SelectScript, "输入脚本名称", { "LocalScriptName" }, "", + function(value, click_type) + if value == "" then + LocalEditor.script = "" + menu.set_menu_name(LocalEditor.Menu.SelectScript, "选择脚本: 未选择") + return + end + + if not SCRIPT.DOES_SCRIPT_EXIST(value) then + util.toast("不存在该脚本") + return + end + + LocalEditor.script = value + menu.set_menu_name(LocalEditor.Menu.SelectScript, "选择脚本: " .. LocalEditor.script) + end) +menu.list_action(LocalEditor.Menu.SelectScript, "常用脚本列表", {}, "", { + { 1, "fm_mission_controller" }, + { 2, "fm_mission_controller_2020" }, + { 3, "freemode" }, +}, function(index, name) + menu.trigger_commands("LocalScriptName " .. name) +end) + + +menu.slider(Local_Editor, "地址1", { "LocalAddr1" }, "", + 0, HIGHEST_INT, 0, 1, function(value) + LocalEditor.address1 = value + end) +menu.slider(Local_Editor, "地址2", { "LocalAddr2" }, "", + 0, HIGHEST_INT, 0, 1, function(value) + LocalEditor.address2 = value + end) +menu.list_select(Local_Editor, "数值类型", {}, "", { + { 1, "INT" }, + { 2, "FLOAT" } +}, 1, function(value, name) + LocalEditor.type = string.lower(name) +end) + + +menu.divider(Local_Editor, "读") +menu.action(Local_Editor, "读取", {}, "", function() + local script = LocalEditor.script + local address = LocalEditor.address1 + LocalEditor.address2 + local dataType = LocalEditor.type + + if not LocalEditor.checkScript(script) then + return + end + + local value + if dataType == "int" then + value = LOCAL_GET_INT(script, address) + elseif dataType == "float" then + value = LOCAL_GET_FLOAT(script, address) + end + + if value ~= nil then + menu.set_value(LocalEditor.Menu.Value, value) + else + menu.set_value(LocalEditor.Menu.Value, "NULL") + end +end) +LocalEditor.Menu.Value = menu.readonly(Local_Editor, "值") + +menu.divider(Local_Editor, "写") +menu.text_input(Local_Editor, "要写入的值", { "LocalWriteValue" }, "务必注意int类型和float类型的格式", function(value, click_type) + if click_type == CLICK_BULK then return end + + value = tonumber(value) + if value == nil then + util.toast("数值格式错误") + return + end + LocalEditor.write = value +end) +menu.action(Local_Editor, "写入", {}, "", function() + local script = LocalEditor.script + local address = LocalEditor.address1 + LocalEditor.address2 + local dataType = LocalEditor.type + local value = tonumber(LocalEditor.write) + + if value == nil then + util.toast("请输入要写入的值") + return + end + + if not LocalEditor.checkScript(script) then + return + end + + if dataType == "int" then + LOCAL_SET_INT(script, address, value) + elseif dataType == "float" then + LOCAL_SET_FLOAT(script, address, value) + end +end) + + +menu.divider(Local_Editor, "锁定") +menu.action(Local_Editor, "锁定写入", {}, "", function() + local script = LocalEditor.script + local address = LocalEditor.address1 + LocalEditor.address2 + local dataType = LocalEditor.type + local value = tonumber(LocalEditor.write) + + if value == nil then + util.toast("请输入要写入的值") + return + end + + if not LocalEditor.checkScript(script) then + return + end + + local menu_name = string.format("Local_%s = %s (%s)", address, value, script) + local help_name = string.format("Script: %s\nType: %s", script, dataType) + local menu_toggle_loop = menu.toggle_loop(LocalEditor.Menu.Lock, menu_name, {}, help_name, function() + if not IS_SCRIPT_RUNNING(script) then + return + end + + if dataType == "int" then + LOCAL_SET_INT(script, address, value) + elseif dataType == "float" then + LOCAL_SET_FLOAT(script, address, value) + end + end) + menu.set_value(menu_toggle_loop, true) + + table.insert(LocalEditor.Lock, menu_toggle_loop) + util.toast("已添加到锁定写入列表") +end) +LocalEditor.Menu.Lock = menu.list(Local_Editor, "锁定写入列表", {}, "") +menu.action(LocalEditor.Menu.Lock, "清空列表", {}, "", function() + for _, command in pairs(LocalEditor.Lock) do + menu.default_and_delete(command) + end + menu.collect_garbage() + LocalEditor.Lock = {} +end) + +--#endregion + + + +--#region Global Editor + +local Global_Editor = menu.list(Other_Options, "Global Editor", { "GlobalEditor" }, "") + +local GlobalEditor = { + Menu = {}, + + address1 = 262145, + address2 = 0, + + type = "int", + write = "", + + Lock = {}, +} + +menu.slider(Global_Editor, "地址1", { "GlobalAddr1" }, "", + 0, HIGHEST_INT, 262145, 1, function(value) + GlobalEditor.address1 = value + end) +menu.slider(Global_Editor, "地址2", { "GlobalAddr2" }, "", + 0, HIGHEST_INT, 0, 1, function(value) + GlobalEditor.address2 = value + end) +menu.list_select(Global_Editor, "数值类型", {}, "", { + { 1, "INT" }, { 2, "FLOAT" } +}, 1, function(value, name) + GlobalEditor.type = string.lower(name) +end) + +menu.divider(Global_Editor, "读") +menu.action(Global_Editor, "读取", {}, "", function() + local address = GlobalEditor.address1 + GlobalEditor.address2 + local dataType = GlobalEditor.type + + local value + if dataType == "int" then + value = GLOBAL_GET_INT(address) + elseif dataType == "float" then + value = GLOBAL_GET_FLOAT(address) + end + + if value ~= nil then + menu.set_value(GlobalEditor.Menu.Value, value) + else + menu.set_value(GlobalEditor.Menu.Value, "NULL") + end +end) +GlobalEditor.Menu.Value = menu.readonly(Global_Editor, "值") + +menu.divider(Global_Editor, "写") +menu.text_input(Global_Editor, "要写入的值", { "GlobalWriteValue" }, "务必注意int类型和float类型的格式", function(value, click_type) + if click_type == CLICK_BULK then return end + + value = tonumber(value) + if value == nil then + util.toast("数值格式错误") + return + end + GlobalEditor.write = value +end) +menu.action(Global_Editor, "写入", {}, "", function() + local address = GlobalEditor.address1 + GlobalEditor.address2 + local dataType = GlobalEditor.type + local value = tonumber(GlobalEditor.write) + + if value == nil then + util.toast("请输入要写入的值") + return + end + + if dataType == "int" then + GLOBAL_SET_INT(address, value) + elseif dataType == "float" then + GLOBAL_SET_FLOAT(address, value) + end +end) + + +menu.divider(Global_Editor, "锁定") +menu.action(Global_Editor, "锁定写入", {}, "", function() + local address = GlobalEditor.address1 + GlobalEditor.address2 + local dataType = GlobalEditor.type + local value = tonumber(GlobalEditor.write) + + if value == nil then + util.toast("请输入要写入的值") + return + end + + local menu_name = string.format("Global_%s = %s", address, value) + local menu_toggle_loop = menu.toggle_loop(GlobalEditor.Menu.Lock, menu_name, {}, "", function() + if dataType == "int" then + GLOBAL_SET_INT(address, value) + elseif dataType == "float" then + GLOBAL_SET_FLOAT(address, value) + end + end) + menu.set_value(menu_toggle_loop, true) + + table.insert(GlobalEditor.Lock, menu_toggle_loop) + util.toast("已添加到锁定写入列表") +end) +GlobalEditor.Menu.Lock = menu.list(Global_Editor, "锁定写入列表", {}, "") +menu.action(GlobalEditor.Menu.Lock, "清空列表", {}, "", function() + for _, command in pairs(GlobalEditor.Lock) do + menu.default_and_delete(command) + end + menu.collect_garbage() + GlobalEditor.Lock = {} +end) + +--#endregion + + + + +local nophonespam = menu.ref_by_command_name("nophonespam") +menu.toggle_loop(Other_Options, "打字时禁用来电电话", {}, "避免在打字时有电话把输入框挤掉", + function() + if chat.is_open() then + if not menu.get_value(nophonespam) then + menu.set_value(nophonespam, true) + end + else + if menu.get_value(nophonespam) then + menu.set_value(nophonespam, false) + end + end + end, function() + menu.set_value(nophonespam, false) + end) +menu.toggle_loop(Other_Options, "跳到下一条对话", { "skipTalk" }, "快速跳过对话", function() + if AUDIO.IS_SCRIPTED_CONVERSATION_ONGOING() then + AUDIO.SKIP_TO_NEXT_SCRIPTED_CONVERSATION_LINE() + end +end) +menu.toggle_loop(Other_Options, "停止对话", { "stopTalk" }, "快速跳过对话", function() + if AUDIO.IS_SCRIPTED_CONVERSATION_ONGOING() then + AUDIO.STOP_SCRIPTED_CONVERSATION(false) + end +end) +menu.toggle_loop(Other_Options, "自动收集财物", { "autoCollect" }, "模拟鼠标左键点击,用于拿取目标财物时", function() + if TASK.GET_IS_TASK_ACTIVE(players.user_ped(), 135) then + PAD.SET_CONTROL_VALUE_NEXT_FRAME(0, 237, 1) + util.yield(30) + end +end) +menu.toggle_loop(Other_Options, "步行时第一/三人称快捷切换", { "footCamView" }, "步行时第一人称视角和第三人称近距离视角快捷切换", function() + if CAM.IS_FOLLOW_PED_CAM_ACTIVE() then + if CAM.GET_FOLLOW_PED_CAM_VIEW_MODE() == 1 or CAM.GET_FOLLOW_PED_CAM_VIEW_MODE() == 2 then + CAM.SET_FOLLOW_PED_CAM_VIEW_MODE(4) + end + end +end) +menu.action(Other_Options, "清除帮助文本信息", { "clsHelpMsg" }, "", function() + HUD.CLEAR_ALL_HELP_MESSAGES() +end) + + +menu.action(Other_Options, "EXPLODE_VEHICLE_IN_CUTSCENE", { "cutExplodeVeh" }, "", function() + for _, vehicle in pairs(entities.get_all_vehicles_as_handles()) do + if vehicle ~= entities.get_user_personal_vehicle_as_handle() then + request_control(vehicle, 500) + VEHICLE.EXPLODE_VEHICLE_IN_CUTSCENE(vehicle, false) + end + end +end) + diff --git a/lib/RScript/Menu/Player.lua b/lib/RScript/Menu/Player.lua index d1be712..203b321 100644 --- a/lib/RScript/Menu/Player.lua +++ b/lib/RScript/Menu/Player.lua @@ -1,6 +1,6 @@ -------------------------------------------- ------------ Player Options ---------- -------------------------------------------- +------------------------------------------ +-- Player Options +------------------------------------------ players.add_command_hook(function(pid, player_root) @@ -209,8 +209,9 @@ players.add_command_hook(function(pid, player_root) menu.trigger_commands("reporthate " .. player_name) menu.trigger_commands("reportexploits " .. player_name) menu.trigger_commands("reportbugabuse " .. player_name) + + util.yield(800) end - util.yield(500) end) @@ -227,8 +228,9 @@ players.add_command_hook(function(pid, player_root) local player_name = players.get_name(pid) menu.trigger_commands("commendhelpful " .. player_name) menu.trigger_commands("commendfriendly " .. player_name) + + util.yield(800) end - util.yield(500) end) diff --git a/lib/RScript/Menu/Self.lua b/lib/RScript/Menu/Self.lua new file mode 100644 index 0000000..4e54d33 --- /dev/null +++ b/lib/RScript/Menu/Self.lua @@ -0,0 +1,197 @@ +------------------------------------------ +-- Self Options +------------------------------------------ + + +local Self_Options = menu.list(Menu_Root, "自我选项", {}, "") + + +local MenuSelf = {} + + +--#region Health & Armour + +local Self_HealthArmour = menu.list(Self_Options, "生命与护甲选项", {}, "") + +local HealthArmour = { + defaultHealth = 328, + defaultArmour = 50, +} + +menu.toggle_loop(Self_HealthArmour, "信息显示 生命和护甲", { "rsInfoHealth" }, "信息显示位置", function() + local current_health = ENTITY.GET_ENTITY_HEALTH(players.user_ped()) + local max_health = PED.GET_PED_MAX_HEALTH(players.user_ped()) + local current_armour = PED.GET_PED_ARMOUR(players.user_ped()) + local max_armour = PLAYER.GET_PLAYER_MAX_ARMOUR(players.user()) + + local text = string.format("生命: %d/%d\n护甲: %d/%d", current_health, max_health, current_armour, max_armour) + util.draw_debug_text(text) +end) + +menu.toggle(Self_HealthArmour, "切换战局自动补满护甲", {}, "", function(toggle) + TransitionData.Self.refillArmour = toggle +end) + + +menu.divider(Self_HealthArmour, "") +menu.slider(Self_HealthArmour, "设置当前生命值", { "rsSetHealth" }, "", + 0, 100000, HealthArmour.defaultHealth, 50, function(value) + SET_ENTITY_HEALTH(players.user_ped(), value) + end) +menu.slider(Self_HealthArmour, "设置当前护甲值", { "rsSetArmour" }, "", + 0, 100000, HealthArmour.defaultArmour, 50, function(value) + PED.SET_PED_ARMOUR(players.user_ped(), value) + end) + +--#endregion + + +--#region Health Recharge + +local Self_HealthRecharge = menu.list(Self_Options, "生命恢复选项", {}, "") + +local HealthRecharge = { + maxPercent = 1.0, + multiplier = 20.0, +} + +menu.slider_float(Self_HealthRecharge, "恢复程度", { "selfRechargePercent" }, "", + 1, 100, HealthRecharge.maxPercent * 100, 10, function(value) + HealthRecharge.maxPercent = value * 0.01 + end) +menu.slider_float(Self_HealthRecharge, "恢复速度", { "selfRechargeMulti" }, "", + 1, 10000, HealthRecharge.multiplier * 100, 100, function(value) + HealthRecharge.multiplier = value * 0.01 + end) + +menu.toggle_loop(Self_HealthRecharge, "设置生命恢复", { "rsHealthRecharge" }, "", function() + if PLAYER.GET_PLAYER_HEALTH_RECHARGE_MAX_PERCENT(players.user()) ~= HealthRecharge.maxPercent then + PLAYER.SET_PLAYER_HEALTH_RECHARGE_MAX_PERCENT(players.user(), HealthRecharge.maxPercent) + end + PLAYER.SET_PLAYER_HEALTH_RECHARGE_MULTIPLIER(players.user(), HealthRecharge.multiplier) +end, function() + PLAYER.SET_PLAYER_HEALTH_RECHARGE_MAX_PERCENT(players.user(), 0.5) + PLAYER.SET_PLAYER_HEALTH_RECHARGE_MULTIPLIER(players.user(), 1.0) +end) + +--#endregion + + +--#region Wanted + +local Self_Wanted = menu.list(Self_Options, "通缉选项", {}, "") + +menu.toggle_loop(Self_Wanted, "禁止为玩家调度警察", { "noDispatchCops" }, + "不会一直刷出新的警察,最好在被通缉前开启", function() + PLAYER.SET_DISPATCH_COPS_FOR_PLAYER(players.user(), false) + end, function() + PLAYER.SET_DISPATCH_COPS_FOR_PLAYER(players.user(), true) + end) +menu.action(Self_Wanted, "强制进入躲避区域", {}, "警星开始闪烁,警察使用锥形视野搜寻", function() + PLAYER.FORCE_START_HIDDEN_EVASION(players.user()) +end) +menu.action(Self_Wanted, "移除当前载具通缉状态", {}, "", function() + local vehicle = entities.get_user_vehicle_as_handle() + if vehicle ~= INVALID_GUID then + clear_vehicle_wanted(vehicle) + end +end) +menu.toggle_loop(Self_Wanted, "降低通缉难度", {}, "", function() + PLAYER.SET_WANTED_LEVEL_MULTIPLIER(0.0) + PLAYER.SET_WANTED_LEVEL_DIFFICULTY(players.user(), 0.0) +end, function() + PLAYER.SET_WANTED_LEVEL_MULTIPLIER(1.0) + PLAYER.RESET_WANTED_LEVEL_DIFFICULTY(players.user()) +end) + +--#endregion + + +--#region Fall + +local Self_Fall = menu.list(Self_Options, "跌落选项", {}, "") + +local SelfFall = { + height = 8.0 +} + +menu.toggle_loop(Self_Fall, "禁止高处跌落直接死亡", { "noHighFallDeath" }, "如果血量过低仍然会直接摔死", + function() + PED.SET_DISABLE_HIGH_FALL_DEATH(players.user_ped(), true) + end, function() + PED.SET_DISABLE_HIGH_FALL_DEATH(players.user_ped(), false) + end) + +menu.slider_float(Self_Fall, "触发跌落动作高度", { "selfFallHeight" }, "", + 0, 10000, SelfFall.height * 100, 100, function(value) + SelfFall.height = value * 0.01 + end) +menu.toggle_loop(Self_Fall, "设置触发跌落动作高度", {}, "", function() + PLAYER.SET_PLAYER_FALL_DISTANCE_TO_TRIGGER_RAGDOLL_OVERRIDE(players.user(), SelfFall.height) +end) + +--#endregion Fall + + +menu.toggle_loop(Self_Options, "警察无视", {}, "", function() + PLAYER.SET_POLICE_IGNORE_PLAYER(players.user(), true) +end, function() + PLAYER.SET_POLICE_IGNORE_PLAYER(players.user(), false) +end) +menu.toggle_loop(Self_Options, "所有人无视", {}, "", function() + PLAYER.SET_EVERYONE_IGNORE_PLAYER(players.user(), true) +end, function() + PLAYER.SET_EVERYONE_IGNORE_PLAYER(players.user(), false) +end) +menu.toggle_loop(Self_Options, "行动无声", {}, "", function() + PLAYER.SET_PLAYER_NOISE_MULTIPLIER(players.user(), 0.0) + PLAYER.SET_PLAYER_SNEAKING_NOISE_MULTIPLIER(players.user(), 0.0) +end) +menu.toggle_loop(Self_Options, "禁止被帮派骚扰", {}, "", function() + PLAYER.SET_PLAYER_CAN_BE_HASSLED_BY_GANGS(players.user(), false) +end, function() + PLAYER.SET_PLAYER_CAN_BE_HASSLED_BY_GANGS(players.user(), true) +end) +menu.toggle_loop(Self_Options, "载具内不可被射击", {}, "在载具内不会受伤", function() + PED.SET_PED_CAN_BE_SHOT_IN_VEHICLE(players.user_ped(), false) +end, function() + PED.SET_PED_CAN_BE_SHOT_IN_VEHICLE(players.user_ped(), true) +end) +menu.toggle_loop(Self_Options, "禁用NPC伤害", {}, "似乎只在单人战局内有效", function() + PED.SET_AI_WEAPON_DAMAGE_MODIFIER(0.0) + PED.SET_AI_MELEE_WEAPON_DAMAGE_MODIFIER(0.0) +end, function() + PED.RESET_AI_WEAPON_DAMAGE_MODIFIER() + PED.RESET_AI_MELEE_WEAPON_DAMAGE_MODIFIER() +end) +menu.toggle_loop(Self_Options, "只能被玩家伤害", {}, "不会被NPC伤害", function() + ENTITY.SET_ENTITY_ONLY_DAMAGED_BY_PLAYER(players.user_ped(), true) +end, function() + ENTITY.SET_ENTITY_ONLY_DAMAGED_BY_PLAYER(players.user_ped(), false) +end) +menu.toggle_loop(Self_Options, "禁止被爆头一枪击杀", {}, "", function() + PED.SET_PED_SUFFERS_CRITICAL_HITS(players.user_ped(), false) +end, function() + PED.SET_PED_SUFFERS_CRITICAL_HITS(players.user_ped(), true) +end) + +MenuSelf.defenseModifier = 0.5 +menu.slider_float(Self_Options, "设置受伤倍数", { "selfDefenseMultiplier" }, + "数值越低,受到的伤害就越低", 10, 100, MenuSelf.defenseModifier * 100, 10, function(value) + MenuSelf.defenseModifier = value * 0.01 + end) +menu.toggle_loop(Self_Options, "受伤倍数修改", { "defenseMultiplier" }, "", function() + local value = MenuSelf.defenseModifier + PLAYER.SET_PLAYER_WEAPON_DEFENSE_MODIFIER(players.user(), value) + PLAYER.SET_PLAYER_WEAPON_MINIGUN_DEFENSE_MODIFIER(players.user(), value) + PLAYER.SET_PLAYER_MELEE_WEAPON_DEFENSE_MODIFIER(players.user(), value) + PLAYER.SET_PLAYER_VEHICLE_DEFENSE_MODIFIER(players.user(), value) + PLAYER.SET_PLAYER_WEAPON_TAKEDOWN_DEFENSE_MODIFIER(players.user(), value) +end, function() + local value = 1.0 + PLAYER.SET_PLAYER_WEAPON_DEFENSE_MODIFIER(players.user(), value) + PLAYER.SET_PLAYER_WEAPON_MINIGUN_DEFENSE_MODIFIER(players.user(), value) + PLAYER.SET_PLAYER_MELEE_WEAPON_DEFENSE_MODIFIER(players.user(), value) + PLAYER.SET_PLAYER_VEHICLE_DEFENSE_MODIFIER(players.user(), value) + PLAYER.SET_PLAYER_WEAPON_TAKEDOWN_DEFENSE_MODIFIER(players.user(), value) +end) diff --git a/lib/RScript/Menu/Vehicle.lua b/lib/RScript/Menu/Vehicle.lua new file mode 100644 index 0000000..7221055 --- /dev/null +++ b/lib/RScript/Menu/Vehicle.lua @@ -0,0 +1,1003 @@ +------------------------------------------ +-- Vehicle Options +------------------------------------------ + + +local Vehicle_Options = menu.list(Menu_Root, "载具选项", {}, "") + +local MenuVehicle = {} + + +--#region Vehicle Upgrade + +local Vehicle_Upgrade = menu.list(Vehicle_Options, "载具升级强化", {}, "") + +MenuVehicle.Upgrade = { + performance = true, + turbo = true, + --- + bulletproof_tyre = true, + unbreakable_door = true, + unbreakable_light = true, + unbreak = true, + --- + max_health_multiplier = 1, + health_multiplier = 1, + damage_scale = 0.5, + no_driver_explosion_damage = true, + other_strong = true, +} + +function MenuVehicle.Upgrade.upgrade(vehicle) + -- 引擎、刹车、变速箱、防御 + if MenuVehicle.Upgrade.performance then + for _, mod_type in pairs({ 11, 12, 13, 16 }) do + local mod_num = VEHICLE.GET_NUM_VEHICLE_MODS(vehicle, mod_type) + VEHICLE.SET_VEHICLE_MOD(vehicle, mod_type, mod_num - 1, false) + end + end + + -- 涡轮增压 + if MenuVehicle.Upgrade.turbo then + VEHICLE.TOGGLE_VEHICLE_MOD(vehicle, 18, true) + end + + -- 防弹轮胎 + if MenuVehicle.Upgrade.bulletproof_tyre then + if VEHICLE.GET_VEHICLE_TYRES_CAN_BURST(vehicle) then + VEHICLE.SET_VEHICLE_TYRES_CAN_BURST(vehicle, false) + end + end + + -- 车门不可损坏 + if MenuVehicle.Upgrade.unbreakable_door then + for i = 0, 5 do + if VEHICLE.GET_IS_DOOR_VALID(vehicle, i) then + VEHICLE.SET_DOOR_ALLOWED_TO_BE_BROKEN_OFF(vehicle, i, false) + end + end + end + + -- 车灯不可损坏 + if MenuVehicle.Upgrade.unbreakable_light then + VEHICLE.SET_VEHICLE_HAS_UNBREAKABLE_LIGHTS(vehicle, true) + end + + -- 部件不可分离 + if MenuVehicle.Upgrade.unbreakable_light then + VEHICLE.SET_VEHICLE_CAN_BREAK(vehicle, false) + end + + -- 实体最大血量倍数 + if MenuVehicle.Upgrade.max_health_multiplier > 1 then + local max_health = ENTITY.GET_ENTITY_MAX_HEALTH(vehicle) * MenuVehicle.Upgrade.max_health_multiplier + ENTITY.SET_ENTITY_MAX_HEALTH(vehicle, max_health) + SET_ENTITY_HEALTH(vehicle, max_health) + end + + -- 载具血量倍数 + if MenuVehicle.Upgrade.health_multiplier > 1 then + local multiple_health = 1000 * MenuVehicle.Upgrade.health_multiplier + VEHICLE.SET_VEHICLE_ENGINE_HEALTH(vehicle, multiple_health) + VEHICLE.SET_VEHICLE_BODY_HEALTH(vehicle, multiple_health) + VEHICLE.SET_VEHICLE_PETROL_TANK_HEALTH(vehicle, multiple_health) + VEHICLE.SET_HELI_MAIN_ROTOR_HEALTH(vehicle, multiple_health) + VEHICLE.SET_HELI_TAIL_ROTOR_HEALTH(vehicle, multiple_health) + end + + -- 受到伤害倍数 + VEHICLE.SET_VEHICLE_DAMAGE_SCALE(vehicle, MenuVehicle.Upgrade.damage_scale) + VEHICLE.SET_VEHICLE_WEAPON_DAMAGE_SCALE(vehicle, MenuVehicle.Upgrade.damage_scale) + + -- 无视载具司机的爆炸 + if MenuVehicle.Upgrade.no_driver_explosion_damage then + VEHICLE.SET_VEHICLE_NO_EXPLOSION_DAMAGE_FROM_DRIVER(vehicle, true) + end + + -- 其它属性增强 + if MenuVehicle.Upgrade.other_strong then + VEHICLE.SET_VEHICLE_WHEELS_CAN_BREAK(vehicle, false) + + VEHICLE.SET_VEHICLE_CAN_ENGINE_MISSFIRE(vehicle, false) + VEHICLE.SET_VEHICLE_CAN_LEAK_OIL(vehicle, false) + VEHICLE.SET_VEHICLE_CAN_LEAK_PETROL(vehicle, false) + + VEHICLE.SET_DISABLE_VEHICLE_ENGINE_FIRES(vehicle, true) + VEHICLE.SET_DISABLE_VEHICLE_PETROL_TANK_FIRES(vehicle, true) + VEHICLE.SET_DISABLE_VEHICLE_PETROL_TANK_DAMAGE(vehicle, true) + + VEHICLE.SET_VEHICLE_STRONG(vehicle, true) + VEHICLE.SET_VEHICLE_HAS_STRONG_AXLES(vehicle, true) + + --Damage + VEHICLE.VEHICLE_SET_RAMP_AND_RAMMING_CARS_TAKE_DAMAGE(vehicle, false) + VEHICLE.SET_INCREASE_WHEEL_CRUSH_DAMAGE(vehicle, false) + VEHICLE.SET_DISABLE_DAMAGE_WITH_PICKED_UP_ENTITY(vehicle, 1) + VEHICLE.SET_VEHICLE_USES_MP_PLAYER_DAMAGE_MULTIPLIER(vehicle, 1) + VEHICLE.SET_FORCE_VEHICLE_ENGINE_DAMAGE_BY_BULLET(vehicle, false) + + --Explode + VEHICLE.SET_DISABLE_EXPLODE_FROM_BODY_DAMAGE_ON_COLLISION(vehicle, 1) + VEHICLE.SET_VEHICLE_EXPLODES_ON_HIGH_EXPLOSION_DAMAGE(vehicle, false) + VEHICLE.SET_VEHICLE_EXPLODES_ON_EXPLOSION_DAMAGE_AT_ZERO_BODY_HEALTH(vehicle, false) + + --Heli + VEHICLE.SET_HELI_TAIL_BOOM_CAN_BREAK_OFF(vehicle, false) + VEHICLE.SET_DISABLE_HELI_EXPLODE_FROM_BODY_DAMAGE(vehicle, 1) + + --MP Only + VEHICLE.SET_PLANE_RESIST_TO_EXPLOSION(vehicle, true) + VEHICLE.SET_HELI_RESIST_TO_EXPLOSION(vehicle, true) + + --Remove Check + VEHICLE.REMOVE_VEHICLE_UPSIDEDOWN_CHECK(vehicle) + VEHICLE.REMOVE_VEHICLE_STUCK_CHECK(vehicle) + end +end + +function MenuVehicle.Upgrade.remove(vehicle) + for i = 0, 5 do + if VEHICLE.GET_IS_DOOR_VALID(vehicle, i) then + VEHICLE.SET_DOOR_ALLOWED_TO_BE_BROKEN_OFF(vehicle, i, true) + end + end + VEHICLE.SET_VEHICLE_HAS_UNBREAKABLE_LIGHTS(vehicle, false) + VEHICLE.SET_VEHICLE_CAN_BREAK(vehicle, true) + + ENTITY.SET_ENTITY_MAX_HEALTH(vehicle, 1000) + SET_ENTITY_HEALTH(vehicle, 1000) + + VEHICLE.SET_VEHICLE_ENGINE_HEALTH(vehicle, 1000) + VEHICLE.SET_VEHICLE_BODY_HEALTH(vehicle, 1000) + VEHICLE.SET_VEHICLE_PETROL_TANK_HEALTH(vehicle, 1000) + VEHICLE.SET_HELI_MAIN_ROTOR_HEALTH(vehicle, 1000) + VEHICLE.SET_HELI_TAIL_ROTOR_HEALTH(vehicle, 1000) + + VEHICLE.SET_VEHICLE_DAMAGE_SCALE(vehicle, 1.0) + VEHICLE.SET_VEHICLE_WEAPON_DAMAGE_SCALE(vehicle, 1.0) + + VEHICLE.SET_VEHICLE_NO_EXPLOSION_DAMAGE_FROM_DRIVER(vehicle, false) + + VEHICLE.SET_VEHICLE_WHEELS_CAN_BREAK(vehicle, true) + + VEHICLE.SET_VEHICLE_CAN_ENGINE_MISSFIRE(vehicle, true) + VEHICLE.SET_VEHICLE_CAN_LEAK_OIL(vehicle, true) + VEHICLE.SET_VEHICLE_CAN_LEAK_PETROL(vehicle, true) + + VEHICLE.SET_DISABLE_VEHICLE_ENGINE_FIRES(vehicle, false) + VEHICLE.SET_DISABLE_VEHICLE_PETROL_TANK_FIRES(vehicle, false) + VEHICLE.SET_DISABLE_VEHICLE_PETROL_TANK_DAMAGE(vehicle, false) + + VEHICLE.SET_VEHICLE_STRONG(vehicle, false) + VEHICLE.SET_VEHICLE_HAS_STRONG_AXLES(vehicle, false) + + VEHICLE.VEHICLE_SET_RAMP_AND_RAMMING_CARS_TAKE_DAMAGE(vehicle, true) + VEHICLE.SET_INCREASE_WHEEL_CRUSH_DAMAGE(vehicle, true) + VEHICLE.SET_DISABLE_DAMAGE_WITH_PICKED_UP_ENTITY(vehicle, 0) + VEHICLE.SET_VEHICLE_USES_MP_PLAYER_DAMAGE_MULTIPLIER(vehicle, 0) + VEHICLE.SET_FORCE_VEHICLE_ENGINE_DAMAGE_BY_BULLET(vehicle, true) + + VEHICLE.SET_DISABLE_EXPLODE_FROM_BODY_DAMAGE_ON_COLLISION(vehicle, 0) + VEHICLE.SET_VEHICLE_EXPLODES_ON_HIGH_EXPLOSION_DAMAGE(vehicle, true) + VEHICLE.SET_VEHICLE_EXPLODES_ON_EXPLOSION_DAMAGE_AT_ZERO_BODY_HEALTH(vehicle, true) + + VEHICLE.SET_HELI_TAIL_BOOM_CAN_BREAK_OFF(vehicle, true) + VEHICLE.SET_DISABLE_HELI_EXPLODE_FROM_BODY_DAMAGE(vehicle, 0) + + VEHICLE.SET_PLANE_RESIST_TO_EXPLOSION(vehicle, false) + VEHICLE.SET_HELI_RESIST_TO_EXPLOSION(vehicle, false) +end + +menu.action(Vehicle_Upgrade, "升级强化载具", { "rsStrongVeh" }, "升级强化当前或上一辆载具", + function() + local vehicle = entities.get_user_vehicle_as_handle() + if ENTITY.IS_ENTITY_A_VEHICLE(vehicle) then + MenuVehicle.Upgrade.upgrade(vehicle) + util.toast("载具升级强化完成!") + else + util.toast("请先进入载具:)") + end + end) +menu.toggle_loop(Vehicle_Upgrade, "自动升级强化载具", {}, + "自动升级强化正在进入驾驶位的载具", function() + local user_ped = players.user_ped() + if PED.IS_PED_GETTING_INTO_A_VEHICLE(user_ped) then + local veh = PED.GET_VEHICLE_PED_IS_TRYING_TO_ENTER(user_ped) + if ENTITY.IS_ENTITY_A_VEHICLE(veh) and PED.GET_SEAT_PED_IS_TRYING_TO_ENTER(user_ped) == -1 then + request_control(veh) + MenuVehicle.Upgrade.upgrade(veh) + + -- 通知 + local veh_name = get_vehicle_display_name(veh) + local text = "进入载具: " .. veh_name + if has_control_entity(veh) then + THEFEED_POST.TEXT(text .. "\n升级强化完成!") + else + THEFEED_POST.TEXT(text .. "\n升级强化未完成: 未能成功控制载具") + end + + util.yield(50) + end + end + end) + +menu.action(Vehicle_Upgrade, "弱化载具属性", { "rsWeakVeh" }, "弱化当前或上一辆载具的属性", function() + local vehicle = entities.get_user_vehicle_as_handle() + if ENTITY.IS_ENTITY_A_VEHICLE(vehicle) then + MenuVehicle.Upgrade.remove(vehicle) + util.toast("载具弱化完成!") + else + util.toast("请先进入载具:)") + end +end) + +menu.divider(Vehicle_Upgrade, "载具性能") +menu.toggle(Vehicle_Upgrade, "主要性能", {}, "引擎、刹车、变速箱、防御", function(toggle) + MenuVehicle.Upgrade.performance = toggle +end, true) +menu.toggle(Vehicle_Upgrade, "涡轮增压", {}, "", function(toggle) + MenuVehicle.Upgrade.turbo = toggle +end, true) + +menu.divider(Vehicle_Upgrade, "载具部件") +menu.toggle(Vehicle_Upgrade, "防弹轮胎", {}, "", function(toggle) + MenuVehicle.Upgrade.bulletproof_tyre = toggle +end, true) +menu.toggle(Vehicle_Upgrade, "车门不可损坏", {}, "全部车门", function(toggle) + MenuVehicle.Upgrade.unbreakable_door = toggle +end, true) +menu.toggle(Vehicle_Upgrade, "车灯不可损坏", {}, "", function(toggle) + MenuVehicle.Upgrade.unbreakable_light = toggle +end, true) +menu.toggle(Vehicle_Upgrade, "部件不可分离", {}, "", function(toggle) + MenuVehicle.Upgrade.unbreak = toggle +end, true) + +menu.divider(Vehicle_Upgrade, "载具生命") +menu.slider(Vehicle_Upgrade, "实体最大血量倍数", {}, "", + 1, 20, 1, 1, function(value) + MenuVehicle.Upgrade.max_health_multiplier = value + end) +menu.slider(Vehicle_Upgrade, "载具血量倍数", {}, + "引擎血量,车身外观血量,油箱血量,直升机主旋翼和尾旋翼血量\n载具血量 = 1000 * multiplier", + 1, 20, 1, 1, function(value) + MenuVehicle.Upgrade.health_multiplier = value + end) +menu.slider_float(Vehicle_Upgrade, "受到伤害倍数", {}, "数值越低,受到的伤害就越低", + 0, 100, 50, 10, function(value) + MenuVehicle.Upgrade.damage_scale = value * 0.01 + end) +menu.toggle(Vehicle_Upgrade, "无视载具司机的爆炸", {}, "司机投掷的炸弹不会对载具造成伤害", + function(toggle) + MenuVehicle.Upgrade.no_driver_explosion_damage = toggle + end, true) +menu.toggle(Vehicle_Upgrade, "其它属性增强", {}, "其它属性的提高,可以提高防炸性等", + function(toggle) + MenuVehicle.Upgrade.other_strong = toggle + end, true) + +--#endregion + + +--#region Vehicle Weapon + +local Vehicle_Weapon = menu.list(Vehicle_Options, "载具武器", {}, "") + +local VehicleWeapon = { + delay = 500, + direction = { + [1] = true, -- front + [2] = false, -- rear + [3] = false, -- left + [4] = false, -- right + [5] = false, -- up + [6] = false, -- down + }, + launchNum = 3, + weaponHash = 4171469727, + isOwned = false, + damage = 1000, + speed = 2000, + createTraceVfx = true, + allowRumble = true, + perfectAccuracy = true, + startOffset = { + -- front + [1] = { x = 0.0, y = 1.0, z = 0.0 }, + -- rear + [2] = { x = 0.0, y = -1.0, z = 0.0 }, + -- left + [3] = { x = -1.0, y = 0.0, z = 0.0 }, + -- right + [4] = { x = 1.0, y = 0.0, z = 0.0 }, + -- up + [5] = { x = 0.0, y = 0.0, z = 2.5 }, + -- down + [6] = { x = 0.0, y = 0.0, z = -2.5 }, + }, + disableHorn = true, +} + +function VehicleWeapon.GetOffsets(vehicle, direction) + local min, max = v3.new(), v3.new() + MISC.GET_MODEL_DIMENSIONS(ENTITY.GET_ENTITY_MODEL(vehicle), min, max) + + local offset_z = get_middle_num(min.z, max.z) + local offsets = {} + local startOffset, end_offset + + if direction == 1 then + offsets[1] = v3.new(min.x, max.y, offset_z) + offsets[2] = v3.new(get_middle_num(min.x, max.x), max.y, offset_z) + offsets[3] = v3.new(max.x, max.y, offset_z) + -- front + end_offset = v3.new(0.0, 1.0, 0.0) + elseif direction == 2 then + offsets[1] = v3.new(min.x, min.y, offset_z) + offsets[2] = v3.new(get_middle_num(min.x, max.x), min.y, offset_z) + offsets[3] = v3.new(max.x, min.y, offset_z) + -- rear + end_offset = v3.new(0.0, -1.0, 0.0) + elseif direction == 3 then + offsets[1] = v3.new(min.x, max.y, offset_z) + offsets[2] = v3.new(min.x, get_middle_num(min.y, max.y), offset_z) + offsets[3] = v3.new(min.x, min.y, offset_z) + -- left + end_offset = v3.new(-1.0, 0.0, 0.0) + elseif direction == 4 then + offsets[1] = v3.new(max.x, max.y, offset_z) + offsets[2] = v3.new(max.x, get_middle_num(min.y, max.y), offset_z) + offsets[3] = v3.new(max.x, min.y, offset_z) + -- right + end_offset = v3.new(1.0, 0.0, 0.0) + elseif direction == 5 then + offsets[1] = v3.new(get_middle_num(min.x, max.x), max.y, offset_z) + offsets[2] = v3.new(get_middle_num(min.x, max.x), get_middle_num(min.y, max.y), offset_z) + offsets[3] = v3.new(get_middle_num(min.x, max.x), min.y, offset_z) + -- up + end_offset = v3.new(0.0, 0.0, 1.0) + elseif direction == 6 then + offsets[1] = v3.new(get_middle_num(min.x, max.x), max.y, offset_z) + offsets[2] = v3.new(get_middle_num(min.x, max.x), get_middle_num(min.y, max.y), offset_z) + offsets[3] = v3.new(get_middle_num(min.x, max.x), min.y, offset_z) + -- down + end_offset = v3.new(0.0, 0.0, -1.0) + end + + start_offset = v3.new(VehicleWeapon.startOffset[direction]) + end_offset:mul(500.0) -- distance + + local launchNum = VehicleWeapon.launchNum + if launchNum == 1 then + offsets[1] = nil + offsets[3] = nil + elseif launchNum == 2 then + offsets[2] = nil + end + + return start_offset, end_offset, offsets +end + +function VehicleWeapon.Shoot(vehicle) + local user_ped = players.user_ped() + + local weaponHash = VehicleWeapon.weaponHash + if weaponHash == "PLAYER_CURRENT_WEAPON" then + weaponHash = WEAPON.GET_SELECTED_PED_WEAPON(players.user_ped()) + elseif weaponHash == "VEHICLE_CURRENT_WEAPON" then + local ptr = memory.alloc_int() + WEAPON.GET_CURRENT_PED_VEHICLE_WEAPON(user_ped, ptr) + weaponHash = memory.read_int(ptr) + end + if not WEAPON.HAS_WEAPON_ASSET_LOADED(weaponHash) then + request_weapon_asset(weaponHash) + end + + local owner = 0 + if VehicleWeapon.isOwned then + owner = user_ped + end + + for dir, toggle in pairs(VehicleWeapon.direction) do + if toggle then + local start_offset, end_offset, offsets = VehicleWeapon.GetOffsets(vehicle, dir) + local start_pos, end_pos + for _, offset in pairs(offsets) do + if offset ~= nil then + offset:add(start_offset) + start_pos = ENTITY.GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(vehicle, offset.x, offset.y, offset.z) + + offset:add(end_offset) + end_pos = ENTITY.GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(vehicle, offset.x, offset.y, offset.z) + + MISC.SHOOT_SINGLE_BULLET_BETWEEN_COORDS_IGNORE_ENTITY( + start_pos.x, start_pos.y, start_pos.z, + end_pos.x, end_pos.y, end_pos.z, + VehicleWeapon.damage, + VehicleWeapon.perfectAccuracy, + weaponHash, + owner, + VehicleWeapon.createTraceVfx, + VehicleWeapon.allowRumble, + VehicleWeapon.speed, + vehicle, + 0) + end + end + end + end +end + +function VehicleWeapon.DrawLine(vehicle) + for dir, toggle in pairs(VehicleWeapon.direction) do + if toggle then + local start_offset, end_offset, offsets = VehicleWeapon.GetOffsets(vehicle, dir) + local start_pos, end_pos + for _, offset in pairs(offsets) do + if offset ~= nil then + offset:add(start_offset) + start_pos = ENTITY.GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(vehicle, offset.x, offset.y, offset.z) + + offset:add(end_offset) + end_pos = ENTITY.GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(vehicle, offset.x, offset.y, offset.z) + + DRAW_LINE(start_pos, end_pos) + end + end + end + end +end + +menu.toggle_loop(Vehicle_Weapon, "载具武器[E键射击]", { "rsVehWeapon" }, "", function() + local vehicle = entities.get_user_vehicle_as_handle(false) + if vehicle ~= INVALID_GUID and PAD.IS_CONTROL_PRESSED(0, 51) then + if VehicleWeapon.disableHorn then + AUDIO.SET_HORN_ENABLED(vehicle, false) + end + + VehicleWeapon.Shoot(vehicle) + util.yield(VehicleWeapon.delay) + end +end, function() + local vehicle = entities.get_user_vehicle_as_handle() + if vehicle ~= INVALID_GUID then + if VehicleWeapon.disableHorn then + AUDIO.SET_HORN_ENABLED(vehicle, true) + end + end +end) + +menu.toggle_loop(Vehicle_Weapon, "绘制射击连线", {}, "", function() + local vehicle = entities.get_user_vehicle_as_handle(false) + if vehicle ~= INVALID_GUID then + VehicleWeapon.DrawLine(vehicle) + end +end) + +---------------- +-- Setting +---------------- + +menu.divider(Vehicle_Weapon, "设置") +menu.slider(Vehicle_Weapon, "循环延迟", { "veh_weapon_delay" }, "单位: ms", 0, 5000, 500, 10, + function(value) + VehicleWeapon.delay = value + end) + +local Vehicle_Weapon_Direction = menu.list(Vehicle_Weapon, "方向", {}, "") +for k, v in pairs({ "前", "后", "左", "右", "上", "下" }) do + menu.toggle(Vehicle_Weapon_Direction, v, {}, "", function(toggle) + VehicleWeapon.direction[k] = toggle + end, VehicleWeapon.direction[k]) +end + +local Vehicle_Weapon_Select = menu.list(Vehicle_Weapon, "武器", {}, "") +VehicleWeapon.Weapon_MenuReadonly = menu.readonly(Vehicle_Weapon_Select, "选择的武器", "VEHICLE_WEAPON_SPACE_ROCKET") + +local Vehicle_Weapon_SelectPlayer = rs_menu.all_weapons_without_melee(Vehicle_Weapon_Select, "手持武器", + {}, "", function(hash, name) + VehicleWeapon.weaponHash = hash + menu.set_value(VehicleWeapon.Weapon_MenuReadonly, name) + end, false) +rs_menu.current_weapon_action(Vehicle_Weapon_SelectPlayer, "玩家当前使用的武器", function() + VehicleWeapon.weaponHash = "PLAYER_CURRENT_WEAPON" + menu.set_value(VehicleWeapon.Weapon_MenuReadonly, "PLAYER_CURRENT_WEAPON") +end, false) + +local Vehicle_Weapon_SelecMenuVehicle = rs_menu.vehicle_weapons(Vehicle_Weapon_Select, "载具武器", + {}, "", function(hash, model) + VehicleWeapon.weaponHash = hash + menu.set_value(VehicleWeapon.Weapon_MenuReadonly, model) + end, false) +rs_menu.current_weapon_action(Vehicle_Weapon_SelecMenuVehicle, "载具当前使用的武器", function() + VehicleWeapon.weaponHash = "VEHICLE_CURRENT_WEAPON" + menu.set_value(VehicleWeapon.Weapon_MenuReadonly, "VEHICLE_CURRENT_WEAPON") +end, false) + + +menu.slider(Vehicle_Weapon, "发射数量", { "veh_weapon_launchNum" }, "", 1, 3, 3, 1, function(value) + VehicleWeapon.launchNum = value +end) +menu.toggle(Vehicle_Weapon, "署名射击", {}, "以玩家名义", function(toggle) + VehicleWeapon.isOwned = toggle +end) +menu.slider(Vehicle_Weapon, "伤害", { "veh_weapon_damage" }, "", 0, 10000, 1000, 100, + function(value) + VehicleWeapon.damage = value + end) +menu.slider(Vehicle_Weapon, "速度", { "veh_weapon_speed" }, "", 0, 10000, 2000, 100, + function(value) + VehicleWeapon.speed = value + end) + + +local Vehicle_Weapon_StartOffset = menu.list(Vehicle_Weapon, "起始射击位置偏移", {}, "") +for k, v in pairs({ "前", "后", "左", "右", "上", "下" }) do + local menu_list = menu.list(Vehicle_Weapon_StartOffset, v, {}, "") + + menu.slider_float(menu_list, "X", { "veh_weapon_dir" .. k .. "_x" }, "", + -10000, 10000, VehicleWeapon.startOffset[k].x * 100, 10, + function(value) + value = value * 0.01 + VehicleWeapon.startOffset[k].x = value + end) + menu.slider_float(menu_list, "Y", { "veh_weapon_dir" .. k .. "_y" }, "", + -10000, 10000, VehicleWeapon.startOffset[k].y * 100, 10, + function(value) + value = value * 0.01 + VehicleWeapon.startOffset[k].y = value + end) + menu.slider_float(menu_list, "Z", { "veh_weapon_dir" .. k .. "_z" }, "", + -10000, 10000, VehicleWeapon.startOffset[k].z * 100, 10, + function(value) + value = value * 0.01 + VehicleWeapon.startOffset[k].z = value + end) +end + +menu.toggle(Vehicle_Weapon, "禁用载具喇叭", {}, "", function(toggle) + VehicleWeapon.disableHorn = toggle +end, true) + +--#endregion + + +--#region Vehicle Window + +local Vehicle_Window = menu.list(Vehicle_Options, "载具车窗", {}, "") + +MenuVehicle.Window = { + toggles = {}, + toggleMenus = {}, + windowList = { + -- index, name + { 0, "前左车窗" }, -- SC_WINDOW_FRONT_LEFT = 0 + { 1, "前右车窗" }, -- SC_WINDOW_FRONT_RIGHT = 1 + { 2, "后左车窗" }, -- SC_WINDOW_REAR_LEFT = 2 + { 3, "后右车窗" }, -- SC_WINDOW_REAR_RIGHT = 3 + { 4, "中间左车窗" }, -- SC_WINDOW_MIDDLE_LEFT = 4 + { 5, "中间右车窗" }, -- SC_WINDOW_MIDDLE_RIGHT = 5 + { 6, "前挡风车窗" }, -- SC_WINDSCREEN_FRONT = 6 + { 7, "后挡风车窗" }, -- SC_WINDSCREEN_REAR = 7 + }, +} + +local Vehicle_Window_Select = menu.list(Vehicle_Window, "选择车窗", {}, "") + +menu.toggle(Vehicle_Window_Select, "全部开/关", {}, "", function(toggle) + for key, value in pairs(MenuVehicle.Window.toggleMenus) do + if menu.is_ref_valid(value) then + menu.set_value(value, toggle) + end + end +end, true) + +for _, item in pairs(MenuVehicle.Window.windowList) do + local index = item[1] + local name = item[2] + + MenuVehicle.Window.toggles[index] = true + MenuVehicle.Window.toggleMenus[index] = menu.toggle(Vehicle_Window_Select, name, {}, "", function(toggle) + MenuVehicle.Window.toggles[index] = toggle + end, true) +end + +menu.toggle_loop(Vehicle_Window, "修复车窗", { "fixVehWindow" }, "", function() + local vehicle = entities.get_user_vehicle_as_handle() + if vehicle ~= INVALID_GUID then + for index, toggle in pairs(MenuVehicle.Window.toggles) do + if toggle then + VEHICLE.FIX_VEHICLE_WINDOW(vehicle, index) + end + end + end +end) +menu.toggle_loop(Vehicle_Window, "摇上车窗", { "rollUpVehWindow" }, "", function() + local vehicle = entities.get_user_vehicle_as_handle() + if vehicle ~= INVALID_GUID then + for index, toggle in pairs(MenuVehicle.Window.toggles) do + if toggle then + VEHICLE.ROLL_UP_WINDOW(vehicle, index) + end + end + end +end) +menu.toggle_loop(Vehicle_Window, "摇下车窗", { "rollDownVehWindow" }, "", function() + local vehicle = entities.get_user_vehicle_as_handle() + if vehicle ~= INVALID_GUID then + for index, toggle in pairs(MenuVehicle.Window.toggles) do + if toggle then + VEHICLE.ROLL_DOWN_WINDOW(vehicle, index) + end + end + end +end) +menu.toggle_loop(Vehicle_Window, "粉碎车窗", { "smashVehWindow" }, "", function() + local vehicle = entities.get_user_vehicle_as_handle() + if vehicle ~= INVALID_GUID then + for index, toggle in pairs(MenuVehicle.Window.toggles) do + if toggle then + VEHICLE.SMASH_VEHICLE_WINDOW(vehicle, index) + end + end + end +end) + +--#endregion + + +--#region Vehicle Door + +local Vehicle_Door = menu.list(Vehicle_Options, "载具车门", {}, "") + +MenuVehicle.Door = { + toggles = {}, + toggleMenus = {}, + doorList = { + -- index, name + { 0, "左前门" }, -- VEH_EXT_DOOR_DSIDE_F = 0 + { 1, "右前门" }, -- VEH_EXT_DOOR_DSIDE_R = 1 + { 2, "左后门" }, -- VEH_EXT_DOOR_PSIDE_F = 2 + { 3, "右后门" }, -- VEH_EXT_DOOR_PSIDE_R = 3 + { 4, "引擎盖" }, -- VEH_EXT_BONNET = 4 + { 5, "后备箱" } -- VEH_EXT_BOOT = 5 + }, +} + +local Vehicle_Door_Select = menu.list(Vehicle_Door, "选择车门", {}, "") + +menu.toggle(Vehicle_Door_Select, "全部开/关", {}, "", function(toggle) + for key, value in pairs(MenuVehicle.Door.toggleMenus) do + if menu.is_ref_valid(value) then + menu.set_value(value, toggle) + end + end +end, true) + +for _, data in pairs(MenuVehicle.Door.doorList) do + local index = data[1] + local name = data[2] + + MenuVehicle.Door.toggles[index] = true + MenuVehicle.Door.toggleMenus[index] = menu.toggle(Vehicle_Door_Select, name, {}, "", function(toggle) + MenuVehicle.Door.toggles[index] = toggle + end, true) +end + +menu.toggle_loop(Vehicle_Door, "打开车门", { "openVehDoor" }, "", function() + local vehicle = entities.get_user_vehicle_as_handle() + if vehicle ~= INVALID_GUID then + for index, toggle in pairs(MenuVehicle.Door.toggles) do + if toggle then + VEHICLE.SET_VEHICLE_DOOR_OPEN(vehicle, index, false, false) + end + end + end +end) +menu.action(Vehicle_Door, "关闭车门", { "closeVehDoor" }, "", function() + local vehicle = entities.get_user_vehicle_as_handle() + if vehicle ~= INVALID_GUID then + for index, toggle in pairs(MenuVehicle.Door.toggles) do + if toggle then + VEHICLE.SET_VEHICLE_DOOR_SHUT(vehicle, index, false) + end + end + end +end) +menu.toggle_loop(Vehicle_Door, "破坏车门", { "brokenVehDoor" }, "", function() + local vehicle = entities.get_user_vehicle_as_handle() + if vehicle ~= INVALID_GUID then + for index, toggle in pairs(MenuVehicle.Door.toggles) do + if toggle then + VEHICLE.SET_VEHICLE_DOOR_BROKEN(vehicle, index, false) + end + end + end +end) +menu.toggle_loop(Vehicle_Door, "删除车门", { "deleteVehDoor" }, "", function() + local vehicle = entities.get_user_vehicle_as_handle() + if vehicle ~= INVALID_GUID then + for index, toggle in pairs(MenuVehicle.Door.toggles) do + if toggle then + VEHICLE.SET_VEHICLE_DOOR_BROKEN(vehicle, index, true) + end + end + end +end) + + +menu.divider(Vehicle_Door, "锁门") + +MenuVehicle.DoorLock = { + ListItem = { + { 1, "解锁", {}, "" }, -- VEHICLELOCK_UNLOCKED + { 2, "上锁", {}, "" }, -- VEHICLELOCK_LOCKED + { 3, "Lock Out Player Only", {}, "" }, -- VEHICLELOCK_LOCKOUT_PLAYER_ONLY + { 4, "玩家锁定在里面", {}, "" }, -- VEHICLELOCK_LOCKED_PLAYER_INSIDE + { 5, "Locked Initially", {}, "" }, -- VEHICLELOCK_LOCKED_INITIALLY + { 6, "强制关闭车门", {}, "" }, -- VEHICLELOCK_FORCE_SHUT_DOORS + { 7, "上锁但可被破坏", {}, "可以破开车窗开门" }, -- VEHICLELOCK_LOCKED_BUT_CAN_BE_DAMAGED + { 8, "上锁但后备箱解锁", {}, "" }, -- VEHICLELOCK_LOCKED_BUT_BOOT_UNLOCKED + { 9, "Locked No Passagers", {}, "" }, -- VEHICLELOCK_LOCKED_NO_PASSENGERS + { 10, "不能进入", {}, "按F无上车动作" } -- VEHICLELOCK_CANNOT_ENTER + } +} +menu.list_action(Vehicle_Door, "设置锁门类型", {}, "", MenuVehicle.DoorLock.ListItem, function(value) + local vehicle = entities.get_user_vehicle_as_handle() + if vehicle ~= INVALID_GUID then + VEHICLE.SET_VEHICLE_DOORS_LOCKED(vehicle, value) + end +end) + +menu.toggle(Vehicle_Door, "对所有玩家锁门", {}, "", function(toggle) + local vehicle = entities.get_user_vehicle_as_handle() + if vehicle ~= INVALID_GUID then + VEHICLE.SET_VEHICLE_DOORS_LOCKED_FOR_ALL_PLAYERS(vehicle, toggle) + end +end) +menu.toggle(Vehicle_Door, "对所有团队锁门", {}, "", function(toggle) + local vehicle = entities.get_user_vehicle_as_handle() + if vehicle ~= INVALID_GUID then + VEHICLE.SET_VEHICLE_DOORS_LOCKED_FOR_ALL_TEAMS(vehicle, toggle) + end +end) + +--#endregion + + +--#region Vehicle Radio + +local Vehicle_Radio = menu.list(Vehicle_Options, "载具电台", {}, "") + +MenuVehicle.Radio = { + station_select = 1, +} + +menu.list_select(Vehicle_Radio, "选择电台", {}, "", Vehicle_T.RadioStation.ListItem, 0, function(value) + MenuVehicle.Radio.station_select = value +end) +menu.toggle_loop(Vehicle_Radio, "自动更改电台", {}, "自动更改正在进入驾驶位的载具的电台", + function() + if PED.IS_PED_GETTING_INTO_A_VEHICLE(players.user_ped()) then + local veh = PED.GET_VEHICLE_PED_IS_ENTERING(players.user_ped()) + if ENTITY.IS_ENTITY_A_VEHICLE(veh) and PED.GET_SEAT_PED_IS_TRYING_TO_ENTER(players.user_ped()) == -1 then + local stationName = Vehicle_RadioStation.LabelList[MenuVehicle.Radio.station_select + 1] + AUDIO.SET_VEH_RADIO_STATION(veh, stationName) + AUDIO.SET_RADIO_TO_STATION_NAME(stationName) + end + end + end) +menu.toggle_loop(Vehicle_Radio, "禁用载具电台", {}, "当前或上一辆载具将无法选择更改电台", + function() + local vehicle = entities.get_user_vehicle_as_handle() + if vehicle ~= INVALID_GUID then + AUDIO.SET_VEHICLE_RADIO_ENABLED(vehicle, false) + end + end, function() + local vehicle = entities.get_user_vehicle_as_handle() + if vehicle ~= INVALID_GUID then + AUDIO.SET_VEHICLE_RADIO_ENABLED(vehicle, true) + end + end) +menu.toggle(Vehicle_Radio, "电台只播放音乐", { "radioOnlyMusic" }, "", function(toggle) + for _, stationName in pairs(Vehicle_T.RadioStation.LabelList) do + AUDIO.SET_RADIO_STATION_MUSIC_ONLY(stationName, toggle) + end +end) + +--#endregion + + +--#region Vehicle Info + +local Vehicle_Info = menu.list(Vehicle_Options, "载具信息显示", {}, "") + +MenuVehicle.Info = { + -- show setting -- + only_current_vehicle = true, + x = 0.26, + y = 0.80, + scale = 0.65, + color = Colors.white, + -- show info -- + vehicle_name = true, + entity_health = true, + engine_health = true, + body_health = false, + petrol_tank_health = false, + heli_health = false, +} + +menu.toggle_loop(Vehicle_Info, "显示载具信息", { "rsVehInfo" }, "", function() + if MenuVehicle.Info.only_current_vehicle and not PED.IS_PED_IN_ANY_VEHICLE(players.user_ped(), false) then + return + end + + local veh = entities.get_user_vehicle_as_handle() + if veh ~= INVALID_GUID then + local text = "" + + if MenuVehicle.Info.vehicle_name then + text = text .. get_vehicle_display_name(veh) .. "\n" + end + if MenuVehicle.Info.entity_health then + text = text .. "实体血量: " .. + ENTITY.GET_ENTITY_HEALTH(veh) .. "/" .. ENTITY.GET_ENTITY_MAX_HEALTH(veh) .. "\n" + end + if MenuVehicle.Info.engine_health then + text = text .. "引擎血量: " .. math.ceil(VEHICLE.GET_VEHICLE_ENGINE_HEALTH(veh)) .. "\n" + end + if MenuVehicle.Info.body_health then + text = text .. "车身外观血量: " .. math.ceil(VEHICLE.GET_VEHICLE_BODY_HEALTH(veh)) .. "\n" + end + if MenuVehicle.Info.petrol_tank_health then + text = text .. "油箱血量: " .. math.ceil(VEHICLE.GET_VEHICLE_PETROL_TANK_HEALTH(veh)) .. "\n" + end + if MenuVehicle.Info.heli_health and VEHICLE.IS_THIS_MODEL_A_HELI(ENTITY.GET_ENTITY_MODEL(veh)) then + text = text .. "Heli Main Rotor Health: " .. math.ceil(VEHICLE.GET_HELI_MAIN_ROTOR_HEALTH(veh)) .. "\n" + text = text .. "Heli Tail Rotor Health: " .. math.ceil(VEHICLE.GET_HELI_TAIL_ROTOR_HEALTH(veh)) .. "\n" + text = text .. "Heli Boom Rotor Health: " .. math.ceil(VEHICLE.GET_HELI_TAIL_BOOM_HEALTH(veh)) .. "\n" + end + + directx.draw_text(MenuVehicle.Info.x, MenuVehicle.Info.y, + text, + ALIGN_TOP_LEFT, + MenuVehicle.Info.scale, + MenuVehicle.Info.color) + end +end) + +local Vehicle_Info_ShowSetting = menu.list(Vehicle_Info, "显示设置", {}, "") +menu.toggle(Vehicle_Info_ShowSetting, "只显示当前载具信息", {}, "", function(toggle) + MenuVehicle.Info.only_current_vehicle = toggle +end, true) +menu.slider_float(Vehicle_Info_ShowSetting, "位置X", { "veh_info_x" }, "", 0, 100, 26, 1, function(value) + MenuVehicle.Info.x = value * 0.01 +end) +menu.slider_float(Vehicle_Info_ShowSetting, "位置Y", { "veh_info_y" }, "", 0, 100, 80, 1, function(value) + MenuVehicle.Info.y = value * 0.01 +end) +menu.slider_float(Vehicle_Info_ShowSetting, "文字大小", { "veh_info_scale" }, "", + 0, 1000, 65, 1, function(value) + MenuVehicle.Info.scale = value * 0.01 + end) +menu.colour(Vehicle_Info_ShowSetting, "文字颜色", { "veh_info_colour" }, "", Colors.white, false, + function(colour) + MenuVehicle.Info.color = colour + end) + +menu.divider(Vehicle_Info, "显示的信息") +menu.toggle(Vehicle_Info, "载具名称", {}, "", function(toggle) + MenuVehicle.Info.vehicle_name = toggle +end, true) +menu.toggle(Vehicle_Info, "实体血量", {}, "", function(toggle) + MenuVehicle.Info.entity_health = toggle +end, true) +menu.toggle(Vehicle_Info, "引擎血量", {}, "", function(toggle) + MenuVehicle.Info.engine_health = toggle +end, true) +menu.toggle(Vehicle_Info, "车身外观血量", {}, "", function(toggle) + MenuVehicle.Info.body_health = toggle +end) +menu.toggle(Vehicle_Info, "油箱血量", {}, "", function(toggle) + MenuVehicle.Info.petrol_tank_health = toggle +end) +menu.toggle(Vehicle_Info, "直升机螺旋桨血量", {}, "", function(toggle) + MenuVehicle.Info.heli_health = toggle +end) + +--#endregion + + +MenuVehicle.vehDirtLevel = 0.0 +menu.slider_float(Vehicle_Options, "载具灰尘程度", { "vehDirtLevel" }, "载具全身灰尘程度", + 0, 1500, MenuVehicle.vehDirtLevel * 100, 100, function(value) + MenuVehicle.vehDirtLevel = value * 0.01 + + local vehicle = entities.get_user_vehicle_as_handle() + if vehicle ~= INVALID_GUID then + VEHICLE.SET_VEHICLE_DIRT_LEVEL(vehicle, MenuVehicle.vehDirtLevel) + end + end) +menu.toggle_loop(Vehicle_Options, "锁定载具灰尘程度", {}, "", function() + local vehicle = entities.get_user_vehicle_as_handle() + if vehicle ~= INVALID_GUID then + if VEHICLE.GET_VEHICLE_DIRT_LEVEL(vehicle) ~= MenuVehicle.vehDirtLevel then + VEHICLE.SET_VEHICLE_DIRT_LEVEL(vehicle, MenuVehicle.vehDirtLevel) + end + end +end) + +menu.toggle_loop(Vehicle_Options, "自动开启载具引擎", {}, "自动开启正在进入驾驶位的载具的引擎", + function() + if PED.IS_PED_GETTING_INTO_A_VEHICLE(players.user_ped()) then + local veh = PED.GET_VEHICLE_PED_IS_ENTERING(players.user_ped()) + if ENTITY.IS_ENTITY_A_VEHICLE(veh) and PED.GET_SEAT_PED_IS_TRYING_TO_ENTER(players.user_ped()) == -1 then + VEHICLE.SET_VEHICLE_ENGINE_HEALTH(veh, 1000) + VEHICLE.SET_VEHICLE_ENGINE_ON(veh, true, true, true) + end + end + end) +menu.toggle_loop(Vehicle_Options, "自动解锁载具车门", {}, "自动解锁正在进入的载具的车门", + function() + local vehicle = 0 + if PED.IS_PED_IN_ANY_VEHICLE(players.user_ped(), false) then + vehicle = PED.GET_VEHICLE_PED_IS_IN(players.user_ped(), false) + else + vehicle = PED.GET_VEHICLE_PED_IS_TRYING_TO_ENTER(players.user_ped()) + end + + if vehicle ~= 0 then + if request_control(vehicle) then + unlock_vehicle_doors(vehicle) + VEHICLE.SET_VEHICLE_UNDRIVEABLE(vehicle, false) + ENTITY.FREEZE_ENTITY_POSITION(vehicle, false) + else + util.toast("请求控制失败,请重试") + end + end + end) +menu.toggle_loop(Vehicle_Options, "无限动能回收加速", {}, "", function() + local vehicle = entities.get_user_vehicle_as_handle() + if vehicle ~= INVALID_GUID then + if VEHICLE.GET_VEHICLE_HAS_KERS(vehicle) then + local vehicle_ptr = entities.handle_to_pointer(vehicle) + local kers_boost_max = memory.read_float(vehicle_ptr + 0x92c) + memory.write_float(vehicle_ptr + 0x930, kers_boost_max) -- m_kers_boost + end + end +end) +menu.toggle_loop(Vehicle_Options, "无限载具跳跃", {}, "然而落地后才能继续跳跃", function() + local vehicle = entities.get_user_vehicle_as_handle() + if vehicle ~= INVALID_GUID then + if VEHICLE.GET_CAR_HAS_JUMP(vehicle) then + local vehicle_ptr = entities.handle_to_pointer(vehicle) + memory.write_float(vehicle_ptr + 0x3a0, 5.0) -- m_jump_boost_charge + end + end +end) + +MenuVehicle.vehHealthValue = 1000 +menu.slider(Vehicle_Options, "载具血量", { "vehHealth" }, "实体血量、引擎血量、车身血量等", + 0, 100000, MenuVehicle.vehHealthValue, 1000, function(value) + MenuVehicle.vehHealthValue = value + + local vehicle = entities.get_user_vehicle_as_handle() + if vehicle ~= INVALID_GUID then + SET_ENTITY_HEALTH(vehicle, value) + VEHICLE.SET_VEHICLE_ENGINE_HEALTH(vehicle, value) + VEHICLE.SET_VEHICLE_BODY_HEALTH(vehicle, value) + VEHICLE.SET_VEHICLE_PETROL_TANK_HEALTH(vehicle, value) + end + end) +menu.toggle_loop(Vehicle_Options, "锁定载具血量", {}, "", function() + local vehicle = entities.get_user_vehicle_as_handle() + if vehicle ~= INVALID_GUID then + local value = MenuVehicle.vehHealthValue + + SET_ENTITY_HEALTH(vehicle, value) + VEHICLE.SET_VEHICLE_ENGINE_HEALTH(vehicle, value) + VEHICLE.SET_VEHICLE_BODY_HEALTH(vehicle, value) + VEHICLE.SET_VEHICLE_PETROL_TANK_HEALTH(vehicle, value) + end +end) diff --git a/lib/RScript/Menu/Weapon.lua b/lib/RScript/Menu/Weapon.lua new file mode 100644 index 0000000..0f5687a --- /dev/null +++ b/lib/RScript/Menu/Weapon.lua @@ -0,0 +1,1030 @@ +------------------------------------------ +-- Weapon Options +------------------------------------------ + + +local Weapon_Options = menu.list(Menu_Root, "武器选项", {}, "") + +local MenuWeapon = {} + + +---------------------------- +-- Weapon Info Classes +---------------------------- + +local WeaponInfo = { + BaseInfo = { + { name = "damage", offset = 0xb0, type = "float", help = "伤害" }, + { name = "vehicle_damage_modifier", offset = 0xd4, type = "float", help = "对载具的伤害倍率" }, + + { name = "anim_reload_rate", offset = 0x134, type = "float", help = "换弹动作速度" }, + { name = "vehicle_reload_time", offset = 0x130, type = "float", help = "载具内换弹时间" }, + { name = "time_between_shots", offset = 0x13c, type = "float", help = "" }, + { name = "alternate_wait_time", offset = 0x150, type = "float", help = "" }, + { name = "reload_time_mp", offset = 0x128, type = "float", help = "" }, + { name = "reload_time_sp", offset = 0x12c, type = "float", help = "" }, + + { name = "lock_on_range", offset = 0x288, type = "float", help = "锁定范围" }, + { name = "weapon_range", offset = 0x28c, type = "float", help = "射击范围" }, + }, + + AmmoProjectileInfo = { + { name = "damage", offset = 0x40, type = "float", help = "The amount of damage caused on impact" }, + { name = "lifetime", offset = 0x44, type = "float", help = "How long till the projectile expires?" }, + { name = "from_vehicle_lifetime", offset = 0x48, type = "float", help = "How long till the projectile expires?" }, + { name = "launch_speed", offset = 0x58, type = "float", help = "The force that this projectile will be launched at" }, + }, + AmmoRocketInfo = { + { name = "forward_drag_coeff", offset = 0x170, type = "float", help = "The rockets forward and side drag coeff, use to control turning rate etc" }, + { name = "side_drag_coeff", offset = 0x174, type = "float", help = "The rockets forward and side drag coeff, use to control turning rate etc" }, + + { name = "time_before_homing", offset = 0x178, type = "float", help = "The time we will spend before homing in on the target" }, + { name = "time_before_switch_target_min", offset = 0x17c, type = "float", help = "The time before switching targets" }, + { name = "time_before_switch_target_max", offset = 0x180, type = "float", help = "The time before switching targets" }, + + { name = "proximity_radius", offset = 0x184, type = "float", help = "if we are this close to our target we will explode" }, + + { name = "pitch_change_rate", offset = 0x188, type = "float", help = "Rocket homing turn rates" }, + { name = "yaw_change_rate", offset = 0x18c, type = "float", help = "Rocket homing turn rates" }, + { name = "roll_change_rate", offset = 0x190, type = "float", help = "Rocket homing turn rates" }, + + { name = "max_roll_angle_sin", offset = 0x194, type = "float", help = "How much does the rocket roll over when turning" }, + + { name = "lifetime_player_vehicle_locked_override_mp", offset = 0x198, type = "float", help = "Used to override rocket lifetime for the player in MP if they have a lock on target" }, + }, + HomingRocketParams = { + { name = "should_use_homing_params_from_info", offset = 0x0, type = "byte", help = "0: 禁用, 1: 启用" }, + { name = "time_before_starting_homing", offset = 0x4, type = "float", help = "" }, + { name = "time_before_homing_angle_break", offset = 0x8, type = "float", help = "" }, + { name = "turn_rate_modifier", offset = 0xc, type = "float", help = "" }, + { name = "pitch_yaw_roll_clamp", offset = 0x10, type = "float", help = "" }, + { name = "default_homing_rocket_break_lock_angle", offset = 0x14, type = "float", help = "" }, + { name = "default_homing_rocket_break_lock_angle_close", offset = 0x18, type = "float", help = "" }, + { name = "default_homing_rocket_break_lock_close_distance", offset = 0x1c, type = "float", help = "" }, + }, +} + +function WeaponInfo.GetWeaponInfo() + local ped_ptr = entities.handle_to_pointer(players.user_ped()) + local weapon_manager = entities.get_weapon_manager(ped_ptr) + local m_weapon_info = weapon_manager + 0x20 + local m_vehicle_weapon_info = weapon_manager + 0x70 + + local CWeaponInfo = memory.read_long(m_weapon_info) + if CWeaponInfo ~= 0 and WEAPON.IS_PED_ARMED(players.user_ped(), 4) then + return CWeaponInfo + end + + local CVehicleWeaponInfo = memory.read_long(m_vehicle_weapon_info) + if CVehicleWeaponInfo ~= 0 then + return CVehicleWeaponInfo + end + + return 0 +end + +function WeaponInfo.GetAmmoInfo(CWeaponInfo) + if CWeaponInfo == 0 then return 0 end + if not WeaponInfo.IsRocket(CWeaponInfo) then + return 0 + end + + local m_ammo_info = CWeaponInfo + 0x60 + return memory.read_long(m_ammo_info) +end + +function WeaponInfo.IsRocket(CWeaponInfo) + local m_damage_type = CWeaponInfo + 0x20 + local m_fire_type = CWeaponInfo + 0x54 + return memory.read_int(m_damage_type) == 5 and memory.read_int(m_fire_type) == 4 +end + +function WeaponInfo.GetHomingRocketParams(CAmmoInfo) + if CAmmoInfo == 0 then return 0 end + + local m_homing_rocket_params = CAmmoInfo + 0x19c + return m_homing_rocket_params +end + +function WeaponInfo.ReadValue(dataType, addr) + if dataType == "float" then + return memory.read_float(addr) + end + if dataType == "byte" then + return memory.read_byte(addr) + end + + return 0 +end + +function WeaponInfo.WriteValue(dataType, addr, value) + if dataType == "float" then + memory.write_float(addr, value) + return + end + if dataType == "byte" then + memory.write_byte(addr, value) + return + end +end + +------------------------ +-- Weapon Attribute +------------------------ + +local Weapon_Attribute = menu.list(Weapon_Options, "武器属性修改", {}, "修改武器属性,应用修改后会一直生效") + +local WeaponAttribute = { + Backups = {}, + Menus = {}, +} + +function WeaponAttribute.getWeaponName(weaponHash) + local weaponName = get_weapon_name_by_hash(weaponHash) + if weaponName == "" then + weaponName = util.reverse_joaat(weaponHash) + weaponName = string.gsub(weaponName, "vehicle_weapon_", "") + end + if weaponName == "" then + weaponName = tostring(weaponHash) + end + + return weaponName +end + +function WeaponAttribute.getWeaponCommandName(weaponHash) + local weaponName = util.reverse_joaat(weaponHash) + if weaponName == "" then + return "" + end + + local weaponCommandName = string.gsub(weaponName, "vehicle_weapon_", "") + weaponCommandName = string.gsub(weaponCommandName, "weapon_", "") + weaponCommandName = string.gsub(weaponCommandName, "_", "") + + return weaponCommandName +end + +function WeaponAttribute.getAttribute(CWeaponInfo, weaponName) + local text = "武器: " .. weaponName + local attr_value = 0 + + for _, item in pairs(WeaponInfo.BaseInfo) do + attr_value = WeaponInfo.ReadValue(item.type, CWeaponInfo + item.offset) + + text = text .. "\n" .. item.name .. ": " .. attr_value + end + + + local CAmmoInfo = WeaponInfo.GetAmmoInfo(CWeaponInfo) + if CAmmoInfo ~= 0 then + for _, item in pairs(WeaponInfo.AmmoProjectileInfo) do + attr_value = WeaponInfo.ReadValue(item.type, CAmmoInfo + item.offset) + + text = text .. "\n" .. item.name .. ": " .. attr_value + end + + + for _, item in pairs(WeaponInfo.AmmoRocketInfo) do + attr_value = WeaponInfo.ReadValue(item.type, CAmmoInfo + item.offset) + + text = text .. "\n" .. item.name .. ": " .. attr_value + end + end + + + local CHomingRocketParams = WeaponInfo.GetHomingRocketParams(CAmmoInfo) + if CHomingRocketParams ~= 0 then + for _, item in pairs(WeaponInfo.HomingRocketParams) do + attr_value = WeaponInfo.ReadValue(item.type, CHomingRocketParams + item.offset) + + text = text .. "\n" .. item.name .. ": " .. attr_value + end + end + + return text +end + +function WeaponAttribute.savaDefaultAttr(CWeaponInfo, weaponHash) + if WeaponAttribute.Backups[weaponHash] then return end + + local t = {} + local addr = 0 + local attr_value = 0 + + for _, item in pairs(WeaponInfo.BaseInfo) do + addr = CWeaponInfo + item.offset + attr_value = WeaponInfo.ReadValue(item.type, addr) + + t[item.name] = { value = attr_value, type = item.type, addr = addr } + end + + + local CAmmoInfo = WeaponInfo.GetAmmoInfo(CWeaponInfo) + if CAmmoInfo ~= 0 then + for _, item in pairs(WeaponInfo.AmmoProjectileInfo) do + addr = CAmmoInfo + item.offset + attr_value = WeaponInfo.ReadValue(item.type, addr) + + t[item.name] = { value = attr_value, type = item.type, addr = addr } + end + + + for _, item in pairs(WeaponInfo.AmmoRocketInfo) do + addr = CAmmoInfo + item.offset + attr_value = WeaponInfo.ReadValue(item.type, addr) + + t[item.name] = { value = attr_value, type = item.type, addr = addr } + end + end + + + local CHomingRocketParams = WeaponInfo.GetHomingRocketParams(CAmmoInfo) + if CHomingRocketParams ~= 0 then + for _, item in pairs(WeaponInfo.HomingRocketParams) do + addr = CHomingRocketParams + item.offset + attr_value = WeaponInfo.ReadValue(item.type, addr) + + t[item.name] = { value = attr_value, type = item.type, addr = addr } + end + end + + WeaponAttribute.Backups[weaponHash] = t +end + +function WeaponAttribute.generateMenuList(CWeaponInfo, weaponHash) + WeaponAttribute.savaDefaultAttr(CWeaponInfo, weaponHash) + + if WeaponAttribute.Menus[weaponHash] then return end + + local menu_parent = Weapon_Attribute + local weapon_name = WeaponAttribute.getWeaponName(weaponHash) + local weapon_command_name = WeaponAttribute.getWeaponCommandName(weaponHash) + + -- 该武器的默认属性(表) + local weapon_default_attr = WeaponAttribute.Backups[weaponHash] + + -- 每个武器属性的 menu.text_input(表) + local input_menus = {} + + -- 存储该武器的 menu.list + local menu_list = menu.list(menu_parent, weapon_name, {}, "") + WeaponAttribute.Menus[weaponHash] = menu_list + + + -- Generate Menu List + + menu.textslider_stateful(menu_list, "读取武器属性", {}, "", { + "仅通知", "通知并保存到日志" + }, function(value) + local text = WeaponAttribute.getAttribute(CWeaponInfo, weapon_name) + + util.toast(text) + if value == 2 then + util.log("\n" .. text) + end + end) + menu.action(menu_list, "恢复默认属性", {}, "", function() + for _, item in pairs(WeaponAttribute.Backups[weaponHash]) do + WeaponInfo.WriteValue(item.type, item.addr, item.value) + end + util.toast("已恢复默认属性") + end) + menu.action(menu_list, "删除此条记录", {}, "会保存默认属性", function() + WeaponAttribute.deleteMenu(weaponHash) + menu.delete(menu_list) + end) + + + local weapon_preset_command_name = "weaponattr_" .. weapon_command_name .. "_preset" + menu.action(menu_list, "保存预设", {}, "", function() + menu.show_command_box(weapon_preset_command_name .. " ") + end) + local preset_name_input = menu.text_input(menu_list, "预设名称", { weapon_preset_command_name }, "", + function(value, click_type) + if click_type == CLICK_SCRIPTED or click_type == CLICK_BULK then + return + end + if not util.is_valid_file_name(value, false) then + util.toast("文件名不合法") + return + end + + local data = {} + for name, command in pairs(input_menus) do + local input_value = menu.get_value(command) + data[name] = input_value + end + + WeaponAttribute.Presets.save(value, data) + util.toast("已保存预设") + end) + menu.set_visible(preset_name_input, false) + + + menu.divider(menu_list, "属性列表") + + local menu_input_item = { + menu_parent = menu_list, + command_name = "WeaponAttr_" .. weapon_command_name .. "_", + + addr = 0, + default_value = 0, + } + + for _, item in pairs(WeaponInfo.BaseInfo) do + menu_input_item.addr = CWeaponInfo + item.offset + menu_input_item.default_value = weapon_default_attr[item.name].value + + input_menus[item.name] = WeaponAttribute.generateMenuInput(menu_input_item, item) + end + + + local CAmmoInfo = WeaponInfo.GetAmmoInfo(CWeaponInfo) + if CAmmoInfo ~= 0 then + menu.divider(menu_list, "AmmoRocketInfo") + + + for _, item in pairs(WeaponInfo.AmmoProjectileInfo) do + menu_input_item.addr = CAmmoInfo + item.offset + menu_input_item.default_value = weapon_default_attr[item.name].value + + input_menus[item.name] = WeaponAttribute.generateMenuInput(menu_input_item, item) + end + + + for _, item in pairs(WeaponInfo.AmmoRocketInfo) do + menu_input_item.addr = CAmmoInfo + item.offset + menu_input_item.default_value = weapon_default_attr[item.name].value + + input_menus[item.name] = WeaponAttribute.generateMenuInput(menu_input_item, item) + end + end + + + local CHomingRocketParams = WeaponInfo.GetHomingRocketParams(CAmmoInfo) + if CHomingRocketParams ~= 0 then + menu.divider(menu_list, "HomingRocketParams") + + for _, item in pairs(WeaponInfo.HomingRocketParams) do + menu_input_item.addr = CHomingRocketParams + item.offset + menu_input_item.default_value = weapon_default_attr[item.name].value + + input_menus[item.name] = WeaponAttribute.generateMenuInput(menu_input_item, item) + end + end +end + +function WeaponAttribute.generateMenuInput(menuItem, weaponInfoItem) + local item = weaponInfoItem + + local menu_list = menuItem.menu_parent + local command_name = menuItem.command_name + local addr = menuItem.addr + local default_value = menuItem.default_value + + local menu_text_input = menu.text_input(menu_list, item.name, + { command_name .. item.name }, item.help, function(value, click_type) + if click_type == CLICK_SCRIPTED or click_type == CLICK_BULK then + return + end + + value = tonumber(value) + if value then + WeaponInfo.WriteValue(item.type, addr, value) + end + end, default_value) + + local current_value = WeaponInfo.ReadValue(item.type, addr) + menu.set_value(menu_text_input, current_value) + + return menu_text_input +end + +function WeaponAttribute.deleteMenu(weaponHash) + WeaponAttribute.Menus[weaponHash] = nil + + for _, value in pairs(WeaponAttribute.Menus) do + if value then + return false + end + end + WeaponAttribute.Menus = {} +end + +-- Weapon Attribute Presets + +WeaponAttribute.Presets = { + storeDir = STORE_DIR .. "Weapon Attribute\\", + menuMain = nil, + menuList = {}, +} + +if not filesystem.exists(WeaponAttribute.Presets.storeDir) then + filesystem.mkdir(WeaponAttribute.Presets.storeDir) +end + +function WeaponAttribute.Presets.apply(presetFilePath) + local CWeaponInfo = WeaponInfo.GetWeaponInfo() + if CWeaponInfo == 0 then + util.toast("不支持近战武器") + return + end + + local weaponHash = get_ped_current_weapon(players.user_ped()) + WeaponAttribute.generateMenuList(CWeaponInfo, weaponHash) + + + local presets = util.read_colons_and_tabs_file(presetFilePath) + + local preset_value = 0 + + -- Set Weapon Attribute + + for _, item in pairs(WeaponInfo.BaseInfo) do + preset_value = presets[item.name] + if preset_value then + WeaponInfo.WriteValue(item.type, CWeaponInfo + item.offset, preset_value) + end + end + + + local CAmmoInfo = WeaponInfo.GetAmmoInfo(CWeaponInfo) + if CAmmoInfo ~= 0 then + for _, item in pairs(WeaponInfo.AmmoProjectileInfo) do + preset_value = presets[item.name] + if preset_value then + WeaponInfo.WriteValue(item.type, CAmmoInfo + item.offset, preset_value) + end + end + + + for _, item in pairs(WeaponInfo.AmmoRocketInfo) do + preset_value = presets[item.name] + if preset_value then + WeaponInfo.WriteValue(item.type, CAmmoInfo + item.offset, preset_value) + end + end + end + + + local CHomingRocketParams = WeaponInfo.GetHomingRocketParams(CAmmoInfo) + if CHomingRocketParams ~= 0 then + for _, item in pairs(WeaponInfo.HomingRocketParams) do + preset_value = presets[item.name] + if preset_value then + WeaponInfo.WriteValue(item.type, CHomingRocketParams + item.offset, preset_value) + end + end + end + + util.toast("加载预设武器属性完成") +end + +function WeaponAttribute.Presets.save(fileName, presetData) + local path = WeaponAttribute.Presets.storeDir .. fileName .. ".txt" + util.write_colons_file(path, presetData) +end + +menu.textslider_stateful(Weapon_Attribute, "读取当前武器属性", {}, "", { + "仅通知", "通知并保存到日志" +}, function(value) + local CWeaponInfo = WeaponInfo.GetWeaponInfo() + if CWeaponInfo == 0 then + util.toast("不支持近战武器") + return + end + + local weaponHash = get_ped_current_weapon(players.user_ped()) + local weaponName = WeaponAttribute.getWeaponName(weaponHash) + local text = WeaponAttribute.getAttribute(CWeaponInfo, weaponName) + + util.toast(text) + if value == 2 then + util.log("\n" .. text) + end +end) + +menu.action(Weapon_Attribute, "编辑当前武器属性", {}, "", function() + local CWeaponInfo = WeaponInfo.GetWeaponInfo() + if CWeaponInfo == 0 then + util.toast("不支持近战武器") + return + end + + local weaponHash = get_ped_current_weapon(players.user_ped()) + WeaponAttribute.generateMenuList(CWeaponInfo, weaponHash) +end) + + +local Weapon_Attribute_Presets +Weapon_Attribute_Presets = menu.list(Weapon_Attribute, "预设属性", {}, "", function() + rs_menu.delete_menu_list(WeaponAttribute.Presets.menuList) + WeaponAttribute.Presets.menuList = {} + + for i, path in ipairs(filesystem.list_files(WeaponAttribute.Presets.storeDir)) do + if filesystem.is_regular_file(path) then + local filename, ext = string.match(path, '^.+\\(.+)%.(.+)$') + + local menu_action = menu.action(Weapon_Attribute_Presets, filename, {}, "", function() + WeaponAttribute.Presets.apply(path) + end) + table.insert(WeaponAttribute.Presets.menuList, menu_action) + end + end +end) +menu.action(Weapon_Attribute_Presets, "打开文件夹", {}, "", function() + util.open_folder(WeaponAttribute.Presets.storeDir) +end) +menu.divider(Weapon_Attribute_Presets, "预设属性列表") + + + +menu.divider(Weapon_Attribute, "编辑武器属性列表") + + + + + +------------------------ +-- Cam Gun +------------------------ + +local Weapon_CamGun = menu.list(Weapon_Options, "视野工具枪", {}, "玩家镜头中心的位置") + +local CamGun = { + select = 1, +} + +menu.toggle_loop(Weapon_CamGun, "开启[按住E键]", { "camGun" }, "", function() + LoopHandler.drawCentredPoint(true) + if PAD.IS_CONTROL_PRESSED(0, 51) then + if CamGun.select == 1 then + CamGun.Shoot() + elseif CamGun.select == 2 then + CamGun.Explosion() + elseif CamGun.select == 3 then + CamGun.Fire() + end + end +end, function() + LoopHandler.drawCentredPoint(false) +end) + +menu.list_select(Weapon_CamGun, "选择操作", { "cam_gun_select" }, "", { + { 1, "射击", { "shoot" }, "" }, + { 2, "爆炸", { "explosion" }, "" }, + { 3, "燃烧", { "fire" }, "" }, +}, 1, function(value) + CamGun.select = value +end) + + +menu.divider(Weapon_CamGun, "设置") + +--#region Cam Gun Shoot + +---------------- +-- Shoot +---------------- + +local CamGun_ShootSetting = menu.list(Weapon_CamGun, "射击", {}, "") + +CamGun.ShootSetting = { + shootMethod = 1, + delay = 100, + weaponSelect = 1, + weaponHash = "PLAYER_CURRENT_WEAPON", + vehicleWeaponHash = "VEHICLE_CURRENT_WEAPON", + isOwned = false, + damage = 1000, + speed = 2000, + perfectAccuracy = true, + createTraceVfx = true, + allowRumble = true, + startFromPlayer = false, + offset = v3(0, 0, 2.0), +} + +function CamGun.ShootPos(pos, action) + local user_ped = players.user_ped() + + local start_pos = v3.new() + if CamGun.ShootSetting.startFromPlayer then + local player_pos = ENTITY.GET_ENTITY_COORDS(user_ped) + start_pos = v3.add(player_pos, CamGun.ShootSetting.offset) + else + start_pos = v3.add(pos, CamGun.ShootSetting.offset) + end + + if action == "drawline" then + DRAW_LINE(start_pos, pos) + else + local weaponHash = CamGun.ShootSetting.weaponHash + if CamGun.ShootSetting.weaponSelect == 2 then + weaponHash = CamGun.ShootSetting.vehicleWeaponHash + end + + if weaponHash == "PLAYER_CURRENT_WEAPON" then + weaponHash = WEAPON.GET_SELECTED_PED_WEAPON(user_ped) + elseif weaponHash == "VEHICLE_CURRENT_WEAPON" then + local pWeapon = memory.alloc_int() + WEAPON.GET_CURRENT_PED_VEHICLE_WEAPON(user_ped, pWeapon) + weaponHash = memory.read_int(pWeapon) + end + if not WEAPON.HAS_WEAPON_ASSET_LOADED(weaponHash) then + request_weapon_asset(weaponHash) + end + + local owner = 0 + if CamGun.ShootSetting.isOwned then + owner = user_ped + end + + local ignoreEntity = entities.get_user_vehicle_as_handle(false) + if ignoreEntity == INVALID_GUID then + ignoreEntity = user_ped + end + + MISC.SHOOT_SINGLE_BULLET_BETWEEN_COORDS_IGNORE_ENTITY( + start_pos.x, start_pos.y, start_pos.z, + pos.x, pos.y, pos.z, + CamGun.ShootSetting.damage, + CamGun.ShootSetting.perfectAccuracy, + weaponHash, + owner, + CamGun.ShootSetting.createTraceVfx, + CamGun.ShootSetting.allowRumble, + CamGun.ShootSetting.speed, + ignoreEntity, + 0) + end +end + +function CamGun.Shoot() + local cam_pos + if CamGun.ShootSetting.shootMethod == 1 then + local result = get_raycast_result(1500, -1) + if result.didHit then + cam_pos = result.endCoords + end + elseif CamGun.ShootSetting.shootMethod == 2 then + cam_pos = get_offset_from_cam(1500) + end + + if cam_pos ~= nil then + CamGun.ShootPos(cam_pos) + util.yield(CamGun.ShootSetting.delay) + end +end + +menu.toggle_loop(CamGun_ShootSetting, "绘制射击连线", {}, "", function() + LoopHandler.drawCentredPoint(true) + + local cam_pos + if CamGun.ShootSetting.shootMethod == 1 then + local result = get_raycast_result(1500, -1) + if result.didHit then + cam_pos = result.endCoords + end + elseif CamGun.ShootSetting.shootMethod == 2 then + cam_pos = get_offset_from_cam(1500) + end + + if cam_pos ~= nil then + CamGun.ShootPos(cam_pos, "drawline") + end +end, function() + LoopHandler.drawCentredPoint(false) +end) + +menu.list_select(CamGun_ShootSetting, "射击方式", {}, "", { + { 1, "方式1", {}, "射击的坐标更加准确,只能向实体或地面射击" }, + { 2, "方式2", {}, "射击的坐标不是很准确,但可以向空中射击" } +}, 1, function(value) + CamGun.ShootSetting.shootMethod = value +end) +menu.slider(CamGun_ShootSetting, "循环延迟", { "cam_gun_shoot_delay" }, "单位: ms", 0, 5000, 100, 10, + function(value) + CamGun.ShootSetting.delay = value + end) + +local CamGun_ShootSetting_Weapon = menu.list(CamGun_ShootSetting, "武器", {}, "") + +menu.list_select(CamGun_ShootSetting_Weapon, "武器类型", {}, "", + { { 1, "手持武器" }, { 2, "载具武器" } }, 1, function(value) + CamGun.ShootSetting.weaponSelect = value + end) +local CamGun_ShootSetting_PlayerWeapon = rs_menu.all_weapons_without_melee(CamGun_ShootSetting_Weapon, "手持武器", + {}, "", function(hash) + CamGun.ShootSetting.weaponHash = hash + end, true) +rs_menu.current_weapon_action(CamGun_ShootSetting_PlayerWeapon, "玩家当前使用的武器", function() + CamGun.ShootSetting.weaponHash = "PLAYER_CURRENT_WEAPON" +end, true) + +local CamGun_ShootSetting_VehicleWeapon = rs_menu.vehicle_weapons(CamGun_ShootSetting_Weapon, "载具武器", {}, "", + function(hash) + CamGun.ShootSetting.vehicleWeaponHash = hash + end, true) +rs_menu.current_weapon_action(CamGun_ShootSetting_VehicleWeapon, "载具当前使用的武器", function() + CamGun.ShootSetting.vehicleWeaponHash = "VEHICLE_CURRENT_WEAPON" +end, true) + + +menu.toggle(CamGun_ShootSetting, "署名射击", {}, "以玩家名义", function(toggle) + CamGun.ShootSetting.isOwned = toggle +end) +menu.slider(CamGun_ShootSetting, "伤害", { "cam_gun_shoot_damage" }, "", 0, 10000, 1000, 100, + function(value) + CamGun.ShootSetting.damage = value + end) +menu.slider(CamGun_ShootSetting, "速度", { "cam_gun_shoot_speed" }, "", 0, 10000, 2000, 100, + function(value) + CamGun.ShootSetting.speed = value + end) + +menu.divider(CamGun_ShootSetting, "起始射击位置偏移") +menu.toggle(CamGun_ShootSetting, "从玩家位置起始射击", {}, + "如果关闭,则起始位置为目标位置+偏移\n如果开启,建议偏移Z>1.0", function(toggle) + CamGun.ShootSetting.startFromPlayer = toggle + end) +menu.slider_float(CamGun_ShootSetting, "X", { "cam_gun_shoot_x" }, "", -10000, 10000, 0, 10, + function(value) + CamGun.ShootSetting.offset.x = value * 0.01 + end) +menu.slider_float(CamGun_ShootSetting, "Y", { "cam_gun_shoot_y" }, "", -10000, 10000, 0, 10, + function(value) + CamGun.ShootSetting.offset.y = value * 0.01 + end) +menu.slider_float(CamGun_ShootSetting, "Z", { "cam_gun_shoot_z" }, "", -10000, 10000, 200, 10, + function(value) + CamGun.ShootSetting.offset.z = value * 0.01 + end) + +--#endregion Cam Gun Shoot + + +--#region Cam Gun Explosion + +---------------- +-- Explosion +---------------- + +local CamGun_ExplosionSetting = menu.list(Weapon_CamGun, "爆炸", {}, "") + +CamGun.ExplosionSetting = { + delay = 100, + explosionType = 2, + isOwned = false, + damage = 1000, + isAudible = true, + isInvisible = false, + cameraShake = 0, +} + +function CamGun.Explosion() + local result = get_raycast_result(1500, -1) + local cam_pos = result.endCoords + if result.didHit and cam_pos ~= nil then + if CamGun.ExplosionSetting.isOwned then + FIRE.ADD_OWNED_EXPLOSION(players.user_ped(), + cam_pos.x, cam_pos.y, cam_pos.z, + CamGun.ExplosionSetting.explosionType, + CamGun.ExplosionSetting.damage, + CamGun.ExplosionSetting.isAudible, + CamGun.ExplosionSetting.isInvisible, + CamGun.ExplosionSetting.cameraShake) + else + FIRE.ADD_EXPLOSION( + cam_pos.x, cam_pos.y, cam_pos.z, + CamGun.ExplosionSetting.explosionType, + CamGun.ExplosionSetting.damage, + CamGun.ExplosionSetting.isAudible, + CamGun.ExplosionSetting.isInvisible, + CamGun.ExplosionSetting.cameraShake, + false) + end + util.yield(CamGun.ExplosionSetting.delay) + end +end + +menu.slider(CamGun_ExplosionSetting, "循环延迟", { "cam_gun_explosion_delay" }, "单位: ms", 0, 5000, 100, 10, + function(value) + CamGun.ExplosionSetting.delay = value + end) +menu.list_select(CamGun_ExplosionSetting, "爆炸类型", {}, "", Misc_T.ExplosionType, 4, function(value) + CamGun.ExplosionSetting.explosionType = value +end) +menu.toggle(CamGun_ExplosionSetting, "署名爆炸", {}, "以玩家名义", function(toggle) + CamGun.ExplosionSetting.isOwned = toggle +end) +menu.slider(CamGun_ExplosionSetting, "伤害", { "cam_gun_explosion_damage" }, "", 0, 10000, 1000, 100, + function(value) + CamGun.ExplosionSetting.damage = value + end) +menu.toggle(CamGun_ExplosionSetting, "可听见", {}, "", function(toggle) + CamGun.ExplosionSetting.isAudible = toggle +end, true) +menu.toggle(CamGun_ExplosionSetting, "不可见", {}, "", function(toggle) + CamGun.ExplosionSetting.isInvisible = toggle +end) + +--#endregion Cam Gun Explosion + + +--#region Cam Gun Fire + +---------------- +-- Fire +---------------- + +local CamGun_FireSetting = menu.list(Weapon_CamGun, "燃烧", {}, "有火焰数量生成限制") + +CamGun.FireSetting = { + fireIds = {}, + maxChildren = 25, + isGasFire = false, +} + +function CamGun.Fire() + local result = get_raycast_result(1500, -1) + local cam_pos = result.endCoords + if result.didHit and cam_pos ~= nil then + local fire_id = FIRE.START_SCRIPT_FIRE( + cam_pos.x, cam_pos.y, cam_pos.z, + CamGun.FireSetting.maxChildren, + CamGun.FireSetting.isGasFire) + table.insert(CamGun.FireSetting.fireIds, fire_id) + end +end + +menu.slider(CamGun_FireSetting, "max Children", { "cam_gun_fire_maxChildren" }, + "The max amount of times a fire can spread to other objects.", 0, 25, 25, 1, function(value) + CamGun.FireSetting.maxChildren = value + end) +menu.toggle(CamGun_FireSetting, "is Gas Fire", {}, "Whether or not the fire is powered by gasoline.", function(toggle) + CamGun.FireSetting.isGasFire = toggle +end) +menu.action(CamGun_FireSetting, "移除生成的火焰", {}, "", function() + if next(CamGun.FireSetting.fireIds) ~= nil then + for k, v in pairs(CamGun.FireSetting.fireIds) do + FIRE.REMOVE_SCRIPT_FIRE(v) + end + CamGun.FireSetting.fireIds = {} + end +end) + +--#endregion Cam Gun Fire + + + + + +MenuWeapon.SpecialAmmo = { + specialTypeList = { + { 0, "无", { "none" }, "No Special Ammo" }, + { 1, "穿甲子弹", { "ap" }, "Armor Piercing Ammo" }, + { 2, "爆炸子弹", { "explosive" }, "Explosive Ammo" }, + { 3, "全金属外壳子弹", { "fmj" }, "Full Metal Jacket Ammo" }, + { 4, "中空子弹", { "hp" }, "Hollow Point Ammo" }, + { 5, "燃烧子弹", { "fire" }, "Incendiary Ammo" }, + { 6, "曳光子弹", { "tracer" }, "Tracer Ammo" } + } +} +menu.list_action(Weapon_Options, "武器特殊弹药类型", { "specialAmmo" }, "对已经配备特殊弹药的武器无效", + MenuWeapon.SpecialAmmo.specialTypeList, function(value) + if not WEAPON.IS_PED_ARMED(players.user_ped(), 4) then + return + end + + local weapon_manager = entities.get_weapon_manager(entities.handle_to_pointer(players.user_ped())) + local m_weapon_info = weapon_manager + 0x20 + + local CWeaponInfo = memory.read_long(m_weapon_info) + if CWeaponInfo ~= 0 then + local CAmmoInfo = memory.read_long(CWeaponInfo + 0x60) + if CAmmoInfo ~= 0 then + local m_ammo_special_type = CAmmoInfo + 0x3c + memory.write_int(m_ammo_special_type, value) + + local weaponHash = get_ped_weapon(players.user_ped()) + local weaponName = get_weapon_name_by_hash(weaponHash) + util.toast("武器: " .. weaponName .. "\n弹药类型已修改") + end + end + end) + +menu.toggle_loop(Weapon_Options, "无限弹夹", { "infClip" }, "锁定弹夹,无需换弹", function() + WEAPON.SET_PED_INFINITE_AMMO_CLIP(players.user_ped(), true) +end, function() + WEAPON.SET_PED_INFINITE_AMMO_CLIP(players.user_ped(), false) +end) +menu.toggle_loop(Weapon_Options, "锁定最大弹药", { "lockAmmo" }, "射击时锁定当前武器为最大弹药", function() + if PED.IS_PED_SHOOTING(players.user_ped()) then + local weaponHash = WEAPON.GET_SELECTED_PED_WEAPON(players.user_ped()) + if weaponHash ~= 0 then + -- WEAPON.SET_PED_AMMO(players.user_ped(), weaponHash, 9999) + WEAPON.ADD_AMMO_TO_PED(players.user_ped(), weaponHash, 9999) + end + end +end) +menu.toggle_loop(Weapon_Options, "无限载具武器弹药", { "infVehAmmo" }, "", function() + local vehicle = entities.get_user_vehicle_as_handle() + if vehicle ~= INVALID_GUID then + if VEHICLE.DOES_VEHICLE_HAVE_WEAPONS(vehicle) then + for i = 0, 3 do + local ammo = VEHICLE.GET_VEHICLE_WEAPON_RESTRICTED_AMMO(vehicle, i) + if ammo ~= -1 then + VEHICLE.SET_VEHICLE_WEAPON_RESTRICTED_AMMO(vehicle, i, -1) + end + end + VEHICLE.SET_VEHICLE_BOMB_AMMO(vehicle, -1); + VEHICLE.SET_VEHICLE_COUNTERMEASURE_AMMO(vehicle, -1); + end + end +end) +menu.toggle_loop(Weapon_Options, "翻滚时自动换弹夹", {}, "做翻滚动作时自动更换弹夹", function() + if TASK.GET_IS_TASK_ACTIVE(players.user_ped(), 4) and PAD.IS_CONTROL_PRESSED(2, 22) and + not PED.IS_PED_SHOOTING(players.user_ped()) then + --checking if player is rolling + util.yield(900) + WEAPON.REFILL_AMMO_INSTANTLY(players.user_ped()) + end +end) +menu.action(Weapon_Options, "移除黏弹和感应地雷", { "removeProjectiles" }, "用来清理扔错地方但又不能炸掉的投掷武器", function() + WEAPON.REMOVE_ALL_PROJECTILES_OF_TYPE(util.joaat("WEAPON_PROXMINE"), false) + WEAPON.REMOVE_ALL_PROJECTILES_OF_TYPE(util.joaat("WEAPON_STICKYBOMB"), false) +end) + + +MenuWeapon.ReloadInVehicle = { + modified_addr = 0, + modified_default = 0, +} +menu.toggle_loop(Weapon_Options, "无载具内换弹时间", {}, "", function() + if WEAPON.IS_PED_ARMED(players.user_ped(), 4) then + local weapon_manager = entities.get_weapon_manager(entities.handle_to_pointer(players.user_ped())) + local weapon_info = memory.read_long(weapon_manager + 0x20) + if weapon_info ~= 0 then + local addr = weapon_info + 0x130 + + -- 更换了武器 + if addr ~= MenuWeapon.ReloadInVehicle.modified_addr then + -- 恢复上一个武器的属性 + if MenuWeapon.ReloadInVehicle.modified_addr ~= 0 then + memory.write_float(MenuWeapon.ReloadInVehicle.modified_addr, + MenuWeapon.ReloadInVehicle.modified_default) + end + + -- 备份当前武器的属性 + MenuWeapon.ReloadInVehicle.modified_addr = addr + MenuWeapon.ReloadInVehicle.modified_default = memory.read_float(addr) + end + + -- 修改武器属性 + memory.write_float(addr, 0) + end + end +end, function() + -- 恢复上一个武器的属性 + if MenuWeapon.ReloadInVehicle.modified_addr ~= 0 then + memory.write_float(MenuWeapon.ReloadInVehicle.modified_addr, MenuWeapon.ReloadInVehicle.modified_default) + end +end) + + + + +menu.divider(Weapon_Options, "") + +local WeaponSpecialAmmo = { + { weapon = "WEAPON_APPISTOL", type = 3 }, + { weapon = "WEAPON_SPECIALCARBINE_MK2", type = 3 }, + { weapon = "WEAPON_TECPISTOL", type = 3 }, + { weapon = "WEAPON_COMBATMG_MK2", type = 5 }, + { weapon = "WEAPON_ASSAULTSHOTGUN", type = 4 }, +} + +menu.action(Weapon_Options, "一键设置武器特殊弹药类型", {}, "", function() + local weapon_manager = entities.get_weapon_manager(entities.handle_to_pointer(players.user_ped())) + local m_weapon_info = weapon_manager + 0x20 + + for _, item in pairs(WeaponSpecialAmmo) do + local weapon_hash = util.joaat(item.weapon) + + if WEAPON.HAS_PED_GOT_WEAPON(players.user_ped(), weapon_hash, false) then + WEAPON.SET_CURRENT_PED_WEAPON(players.user_ped(), weapon_hash, false) + + local CWeaponInfo = memory.read_long(m_weapon_info) + if CWeaponInfo ~= 0 then + local CAmmoInfo = memory.read_long(CWeaponInfo + 0x60) + if CAmmoInfo ~= 0 then + local m_ammo_special_type = CAmmoInfo + 0x3c + memory.write_int(m_ammo_special_type, item.type) + end + end + end + end + util.toast("完成!") +end) diff --git a/lib/RScript/Tables.lua b/lib/RScript/Tables.lua index 74a2384..447bed6 100644 --- a/lib/RScript/Tables.lua +++ b/lib/RScript/Tables.lua @@ -1,3 +1,27 @@ +------------------------ +-- ENUM ENTITY_TYPE +------------------------ + +ENTITY_NONE = 0 +ENTITY_PED = 1 +ENTITY_VEHICLE = 2 +ENTITY_OBJECT = 3 +ENTITY_PICKUP = 4 +ENTITY_ALL = 5 + + +------------------------ +-- Consts +------------------------ + +HIGHEST_INT = 2147483647 +LOWEST_INT = -2147483647 + + +------------------------ +-- Tables +------------------------ + -- 颜色 [0 - 1]格式 Colors = { white = { r = 1.0, g = 1.0, b = 1.0, a = 1.0 }, @@ -2559,19 +2583,19 @@ Blip_T = { Misc_T = { -- `ListItem` 实体类型 EntityType = { - { 1, "Ped", {}, "NPC" }, - { 2, "Vehicle", {}, "载具" }, - { 3, "Object", {}, "物体" }, - { 4, "Pickup", {}, "拾取物" } + { ENTITY_PED, "Ped", {}, "NPC" }, + { ENTITY_VEHICLE, "Vehicle", {}, "载具" }, + { ENTITY_OBJECT, "Object", {}, "物体" }, + { ENTITY_PICKUP, "Pickup", {}, "拾取物" } }, -- `ListItem` 实体类型(All) EntityTypeAll = { - { 1, "All", {}, "全部类型实体" }, - { 2, "Ped", {}, "NPC" }, - { 3, "Vehicle", {}, "载具" }, - { 4, "Object", {}, "物体" }, - { 5, "Pickup", {}, "拾取物" } + { ENTITY_ALL, "All", {}, "全部类型实体" }, + { ENTITY_PED, "Ped", {}, "NPC" }, + { ENTITY_VEHICLE, "Vehicle", {}, "载具" }, + { ENTITY_OBJECT, "Object", {}, "物体" }, + { ENTITY_PICKUP, "Pickup", {}, "拾取物" } }, -- `ListItem` NPC 类型 @@ -2670,5 +2694,182 @@ Misc_T = { { 83, "Emp Launcher" }, { 84, "Railgun XM3" }, { 85, "Balanced Cannons" } - } + }, + + + GunVanPosition = { + [0] = { -29.532, 6435.136, 31.162 }, + [1] = { 1705.214, 4819.167, 41.75 }, + [2] = { 1795.522, 3899.753, 33.869 }, + [3] = { 1335.536, 2758.746, 51.099 }, + [4] = { 795.583, 1210.78, 338.962 }, + [5] = { -3192.67, 1077.205, 20.594 }, + [6] = { -789.719, 5400.921, 33.915 }, + [7] = { -24.384, 3048.167, 40.703 }, + [8] = { 2666.786, 1469.324, 24.237 }, + [9] = { -1454.966, 2667.503, 3.2 }, + [10] = { 2340.418, 3054.188, 47.888 }, + [11] = { 1509.183, -2146.795, 76.853 }, + [12] = { 1137.404, -1358.654, 34.322 }, + [13] = { -57.208, -2658.793, 5.737 }, + [14] = { 1905.017, 565.222, 175.558 }, + [15] = { 974.484, -1718.798, 30.296 }, + [16] = { 779.077, -3266.297, 5.719 }, + [17] = { -587.728, -1637.208, 19.611 }, + [18] = { 733.99, -736.803, 26.165 }, + [19] = { -1694.632, -454.082, 40.712 }, + [20] = { -1330.726, -1163.948, 4.313 }, + [21] = { -496.618, 40.231, 52.316 }, + [22] = { 275.527, 66.509, 94.108 }, + [23] = { 260.928, -763.35, 30.559 }, + [24] = { -478.025, -741.45, 30.299 }, + [25] = { 894.94, 3603.911, 32.56 }, + [26] = { -2166.511, 4289.503, 48.733 }, + [27] = { 1465.633, 6553.67, 13.771 }, + [28] = { 1101.032, -335.172, 66.944 }, + [29] = { 149.683, -1655.674, 29.028 }, + }, + DeadDropCoords = { + [0] = { + [0] = { 1113.557, -645.957, 56.091 }, + [1] = { 1142.874, -662.951, 57.135 }, + [2] = { 1146.691, -703.717, 56.167 }, + [3] = { 1073.542, -678.236, 56.583 }, + [4] = { 1046.454, -722.915, 56.419 } + }, + [1] = { + [0] = { 2064.713, 3489.88, 44.223 }, + [1] = { 2081.859, 3553.254, 42.157 }, + [2] = { 2014.72, 3551.499, 42.726 }, + [3] = { 1997.019, 3507.838, 39.666 }, + [4] = { 2045.597, 3564.346, 39.343 } + }, + [2] = { + [0] = { -1317.344, -1481.97, 3.923 }, + [1] = { -1350.041, -1478.273, 4.567 }, + [2] = { -1393.87, -1445.139, 3.437 }, + [3] = { -1367.034, -1413.992, 2.611 }, + [4] = { -1269.861, -1426.272, 3.556 } + }, + [3] = { + [0] = { -295.468, 2787.385, 59.864 }, + [1] = { -284.69, 2848.234, 53.266 }, + [2] = { -329.193, 2803.404, 57.787 }, + [3] = { -306.847, 2825.6, 58.219 }, + [4] = { -336.046, 2829.988, 55.448 } + }, + [4] = { + [0] = { -1725.245, 233.946, 57.685 }, + [1] = { -1639.892, 225.521, 60.336 }, + [2] = { -1648.48, 212.049, 59.777 }, + [3] = { -1693.318, 156.665, 63.855 }, + [4] = { -1699.193, 179.574, 63.185 } + }, + [5] = { + [0] = { -949.714, -710.658, 19.604 }, + [1] = { -938.774, -781.817, 19.657 }, + [2] = { -884.91, -786.863, 15.043 }, + [3] = { -895.257, -729.943, 19.143 }, + [4] = { -932.986, -746.452, 19.008 } + }, + [6] = { + [0] = { -425.948, 1213.342, 324.936 }, + [1] = { -387.267, 1137.65, 321.704 }, + [2] = { -477.999, 1135.36, 320.123 }, + [3] = { -431.822, 1119.449, 325.964 }, + [4] = { -387.902, 1161.655, 324.529 } + }, + [7] = { + [0] = { -3381.278, 965.534, 7.426 }, + [1] = { -3427.724, 979.944, 7.526 }, + [2] = { -3413.606, 961.845, 11.038 }, + [3] = { -3419.585, 977.595, 11.167 }, + [4] = { -3425.687, 961.215, 7.536 } + }, + [8] = { + [0] = { -688.732, 5828.4, 16.696 }, + [1] = { -673.425, 5799.744, 16.467 }, + [2] = { -710.348, 5769.631, 16.75 }, + [3] = { -699.926, 5801.619, 16.504 }, + [4] = { -660.359, 5781.733, 18.774 } + }, + [9] = { + [0] = { 38.717, 6264.173, 32.88 }, + [1] = { 84.67, 6292.286, 30.731 }, + [2] = { 97.17, 6288.558, 38.447 }, + [3] = { 14.453, 6243.932, 35.445 }, + [4] = { 67.52, 6261.744, 32.029 } + }, + [10] = { + [0] = { 2954.598, 4671.458, 50.106 }, + [1] = { 2911.146, 4637.608, 49.3 }, + [2] = { 2945.212, 4624.044, 49.078 }, + [3] = { 2941.139, 4617.117, 52.114 }, + [4] = { 2895.884, 4686.396, 48.094 } + }, + [11] = { + [0] = { 1332.319, 4271.446, 30.646 }, + [1] = { 1353.332, 4387.911, 43.541 }, + [2] = { 1337.892, 4321.563, 38.093 }, + [3] = { 1386.603, 4366.511, 42.236 }, + [4] = { 1303.193, 4313.509, 36.939 } + }, + [12] = { + [0] = { 2720.03, 1572.762, 20.204 }, + [1] = { 2663.161, 1581.395, 24.418 }, + [2] = { 2658.245, 1643.373, 24.061 }, + [3] = { 2671.003, 1561.394, 23.882 }, + [4] = { 2660.104, 1606.54, 28.61 } + }, + [13] = { + [0] = { 211.775, -934.269, 23.466 }, + [1] = { 198.265, -884.039, 30.696 }, + [2] = { 189.542, -919.726, 29.96 }, + [3] = { 169.504, -934.841, 29.228 }, + [4] = { 212.376, -934.807, 29.007 } + }, + [14] = { + [0] = { 1330.113, -2520.754, 46.365 }, + [1] = { 1328.954, -2538.302, 46.976 }, + [2] = { 1237.506, -2572.335, 39.791 }, + [3] = { 1244.602, -2563.721, 42.646 }, + [4] = { 1278.421, -2565.117, 43.544 } + } + }, +} + + +Weapon_T = { + -- `ListItem` 全部武器 + AllWeapons = { + { 0, "无", { "none" }, "", "" } + }, + + -- `ListItem` 全部武器(无近战武器) + AllWeaponsWithoutMelee = {}, + + -- `Enum` 全部武器名称 + WeaponNameList = {}, +} + +for key, item in pairs(util.get_weapons()) do + local menu_name = util.get_label_text(item.label_key) + local command_names = string.gsub(util.reverse_joaat(item.hash), "weapon_", "") + command_names = string.gsub(command_names, "_", "") + + local list_item = { item.hash, menu_name, { command_names }, "", item.category } + + table.insert(Weapon_T.AllWeapons, list_item) + + if item.category_id ~= 0 then + table.insert(Weapon_T.AllWeaponsWithoutMelee, list_item) + end + + Weapon_T.WeaponNameList[item.hash] = menu_name +end + + +PackedStats = { + DAILYCOLLECT_DEAD_DROP_LOCATION_0 = 41213, + DAILYCOLLECT_DEAD_DROP_AREA_0 = 41214, } diff --git a/lib/RScript/alternatives.lua b/lib/RScript/alternatives.lua index 3d06466..8f12e9b 100644 --- a/lib/RScript/alternatives.lua +++ b/lib/RScript/alternatives.lua @@ -1,10 +1,10 @@ ----------------------------------------- --- Alternative for Native Functions ----------------------------------------- +------------------------------------------------ +-- Alternative for Native Functions +------------------------------------------------ ----@param entity Entity ----@param coords v3 ----@param heading? float +--- @param entity Entity +--- @param coords v3 +--- @param heading? float function TP_ENTITY(entity, coords, heading) if heading ~= nil then ENTITY.SET_ENTITY_HEADING(entity, heading) @@ -12,8 +12,8 @@ function TP_ENTITY(entity, coords, heading) ENTITY.SET_ENTITY_COORDS_NO_OFFSET(entity, coords.x, coords.y, coords.z, true, false, false) end ----@param heading? float ----@return float +--- @param heading? float +--- @return float function ENTITY_HEADING(entity, heading) if heading ~= nil then ENTITY.SET_ENTITY_HEADING(entity, heading) @@ -22,9 +22,9 @@ function ENTITY_HEADING(entity, heading) return ENTITY.GET_ENTITY_HEADING(entity) end ----@param vehicle Vehicle ----@param seat integer ----@return Ped +--- @param vehicle Vehicle +--- @param seat integer +--- @return Ped function GET_PED_IN_VEHICLE_SEAT(vehicle, seat) if not VEHICLE.IS_VEHICLE_SEAT_FREE(vehicle, seat, false) then return VEHICLE.GET_PED_IN_VEHICLE_SEAT(vehicle, seat) @@ -32,8 +32,8 @@ function GET_PED_IN_VEHICLE_SEAT(vehicle, seat) return 0 end ----@param ped Ped ----@return Vehicle +--- @param ped Ped +--- @return Vehicle function GET_VEHICLE_PED_IS_IN(ped) if PED.IS_PED_IN_ANY_VEHICLE(ped, false) then return PED.GET_VEHICLE_PED_IS_IN(ped, false) @@ -41,10 +41,10 @@ function GET_VEHICLE_PED_IS_IN(ped) return 0 end ----`colour` range: r, g, b, alpha = 0-255 ----@param start_pos v3 ----@param end_pos v3 ----@param colour? Colour +--- `colour` range: r, g, b, alpha = 0-255 +--- @param start_pos v3 +--- @param end_pos v3 +--- @param colour? Colour function DRAW_LINE(start_pos, end_pos, colour) colour = colour or { r = 255, g = 0, b = 255, a = 255 } GRAPHICS.DRAW_LINE(start_pos.x, start_pos.y, start_pos.z, @@ -52,24 +52,24 @@ function DRAW_LINE(start_pos, end_pos, colour) colour.r, colour.g, colour.b, colour.a) end ----`colour` range: r, g, b = 0-255, alpha = 0-1.0 ----@param coords v3 ----@param radius float ----@param colour? Colour +--- `colour` range: r, g, b = 0-255, alpha = 0-1.0 +--- @param coords v3 +--- @param radius float +--- @param colour? Colour function DRAW_MARKER_SPHERE(coords, radius, colour) colour = colour or { r = 200, g = 50, b = 200, a = 0.5 } GRAPHICS.DRAW_MARKER_SPHERE(coords.x, coords.y, coords.z, radius, colour.r, colour.g, colour.b, colour.a) end ----------------------------------------- --- Compact Params Natives ----------------------------------------- +------------------------------------------------ +-- Compact Params Natives +------------------------------------------------ ----Creates an explosion at the co-ordinates. ----@param coords v3 ----@param explosionType? integer [default = 2] ----@param optionalParams? table +--- Creates an explosion at the co-ordinates. +--- @param coords v3 +--- @param explosionType? integer [default = 2] +--- @param optionalParams? table --- - - - --- **optionalParams:** --- - `damageScale` *float* [default = 1.0] @@ -89,11 +89,11 @@ function add_explosion(coords, explosionType, optionalParams) Params.damageScale, Params.isAudible, Params.isInvisible, Params.cameraShake, Params.noDamage) end ----Creates an explosion at the co-ordinates owned by a specific ped. ----@param owner Ped ----@param coords v3 ----@param explosionType? integer [default = 2] ----@param optionalParams? table +--- Creates an explosion at the co-ordinates owned by a specific ped. +--- @param owner Ped +--- @param coords v3 +--- @param explosionType? integer [default = 2] +--- @param optionalParams? table --- - - - --- **optionalParams:** --- - `damageScale` *float* [default = 1.0] @@ -112,10 +112,10 @@ function add_owned_explosion(owner, coords, explosionType, optionalParams) Params.damageScale, Params.isAudible, Params.isInvisible, Params.cameraShake) end ----Fires an instant hit bullet between the two points taking into account an entity to ignore for damage. ----@param startCoords v3 ----@param endCoords v3 ----@param optionalParams? table +--- Fires an instant hit bullet between the two points taking into account an entity to ignore for damage. +--- @param startCoords v3 +--- @param endCoords v3 +--- @param optionalParams? table --- - - - --- **optionalParams:** --- - `damage` *integer* [default = 1000] @@ -152,13 +152,13 @@ function shoot_single_bullet(startCoords, endCoords, optionalParams) Params.ignoreEntity, Params.targetEntity) end ----Trigger a set piece (non looped) particle effect on an entity with an offset position and orientation. ----@param fxName string ----@param entity Entity ----@param offset v3? ----@param rotation v3? ----@param scale float? ----@param invertAxis table? +--- Trigger a set piece (non looped) particle effect on an entity with an offset position and orientation. +--- @param fxName string +--- @param entity Entity +--- @param offset v3? +--- @param rotation v3? +--- @param scale float? +--- @param invertAxis table? function start_ptfx_on_entity(fxName, entity, offset, rotation, scale, invertAxis) offset = offset or v3(0, 0, 0) rotation = rotation or v3(0, 0, 0) @@ -172,13 +172,13 @@ function start_ptfx_on_entity(fxName, entity, offset, rotation, scale, invertAxi invertAxis.x, invertAxis.y, invertAxis.z) end ----Trigger a set piece (non looped) particle effect at a world position and orientation. ----@param fxName string ----@param coords v3 ----@param rotation v3? ----@param scale float? ----@param invertAxis table? ----@param ignoreScopeChecks boolean? use this ONLY for the ion cannon effects, otherwise request permission from network code +--- Trigger a set piece (non looped) particle effect at a world position and orientation. +--- @param fxName string +--- @param coords v3 +--- @param rotation v3? +--- @param scale float? +--- @param invertAxis table? +--- @param ignoreScopeChecks boolean? use this ONLY for the ion cannon effects, otherwise request permission from network code function start_ptfx_at_coord(fxName, coords, rotation, scale, invertAxis, ignoreScopeChecks) rotation = rotation or v3(0, 0, 0) scale = scale or 1.0 @@ -192,31 +192,31 @@ function start_ptfx_at_coord(fxName, coords, rotation, scale, invertAxis, ignore ignoreScopeChecks) end ----------------------------------------- --- Default Params Natives ----------------------------------------- +------------------------------------------------ +-- Default Params Natives +------------------------------------------------ ----@param entity Entity ----@param health integer +--- @param entity Entity +--- @param health integer function SET_ENTITY_HEALTH(entity, health) ENTITY.SET_ENTITY_HEALTH(entity, health, 0, 0) end ----@param vehicle Vehicle ----@param toggle boolean +--- @param vehicle Vehicle +--- @param toggle boolean function SET_VEHICLE_ENGINE_ON(vehicle, toggle) VEHICLE.SET_VEHICLE_ENGINE_ON(vehicle, toggle, true, false) end ----@param vehicle Vehicle +--- @param vehicle Vehicle function SET_VEHICLE_ON_GROUND_PROPERLY(vehicle) VEHICLE.SET_VEHICLE_ON_GROUND_PROPERLY(vehicle, 5.0) end ----@param entity Entity ----@return string|nil +--- @param entity Entity +--- @return string function GET_ENTITY_SCRIPT(entity) local entity_script = ENTITY.GET_ENTITY_SCRIPT(entity, 0) - if entity_script == nil then return nil end + if entity_script == nil then return "" end return string.lower(entity_script) end diff --git a/lib/RScript/EntityLib.lua b/lib/RScript/entity_libs.lua similarity index 95% rename from lib/RScript/EntityLib.lua rename to lib/RScript/entity_libs.lua index 45a82aa..5604d67 100644 --- a/lib/RScript/EntityLib.lua +++ b/lib/RScript/entity_libs.lua @@ -49,7 +49,7 @@ function Entity_Control.GetMenuInfo(entity, index) elseif entity == entities.get_user_personal_vehicle_as_handle() then menu_name = menu_name .. " [个人载具]" elseif not VEHICLE.IS_VEHICLE_SEAT_FREE(entity, -1, false) then - local driver_player = NETWORK.NETWORK_GET_PLAYER_INDEX_FROM_PED( + local driver_player = get_player_from_ped( VEHICLE.GET_PED_IN_VEHICLE_SEAT(entity, -1, false)) if players.exists(driver_player) then menu_name = menu_name .. " [" .. players.get_name(driver_player) .. "]" @@ -67,7 +67,7 @@ function Entity_Control.GetMenuInfo(entity, index) if ENTITY.IS_ENTITY_A_MISSION_ENTITY(entity) then local entity_script = GET_ENTITY_SCRIPT(entity) - if entity_script ~= nil then + if entity_script ~= "" then help_text = help_text .. "\nScript: " .. entity_script end end @@ -114,43 +114,43 @@ function Entity_Control:Base() menu.toggle(menu_parent, "描绘实体连线", {}, "", function(toggle) if toggle then - if Loop_Handler.Entity.draw_line.toggle then + if LoopHandler.Entity.draw_line.toggle then util.toast("正在描绘连线其它实体") else - Loop_Handler.Entity.draw_line.entity = entity - Loop_Handler.Entity.draw_line.toggle = true + LoopHandler.Entity.draw_line.entity = entity + LoopHandler.Entity.draw_line.toggle = true end else - if Loop_Handler.Entity.draw_line.entity == entity then - Loop_Handler.Entity.draw_line.toggle = false + if LoopHandler.Entity.draw_line.entity == entity then + LoopHandler.Entity.draw_line.toggle = false end end end) menu.toggle(menu_parent, "显示实体信息", {}, "", function(toggle) if toggle then - if Loop_Handler.Entity.show_info.toggle then + if LoopHandler.Entity.show_info.toggle then util.toast("正在显示其它的实体信息") else - Loop_Handler.Entity.show_info.entity = entity - Loop_Handler.Entity.show_info.toggle = true + LoopHandler.Entity.show_info.entity = entity + LoopHandler.Entity.show_info.toggle = true end else - if Loop_Handler.Entity.show_info.entity == entity then - Loop_Handler.Entity.show_info.toggle = false + if LoopHandler.Entity.show_info.entity == entity then + LoopHandler.Entity.show_info.toggle = false end end end) menu.toggle(menu_parent, "预览实体", {}, "", function(toggle) if toggle then - if Loop_Handler.Entity.preview_ent.toggle then + if LoopHandler.Entity.preview_ent.toggle then util.toast("正在预览其它的实体") else - Loop_Handler.Entity.preview_ent.ent = entity - Loop_Handler.Entity.preview_ent.toggle = true + LoopHandler.Entity.preview_ent.ent = entity + LoopHandler.Entity.preview_ent.toggle = true end else - if Loop_Handler.Entity.preview_ent.ent == entity then - Loop_Handler.Entity.preview_ent.toggle = false + if LoopHandler.Entity.preview_ent.ent == entity then + LoopHandler.Entity.preview_ent.toggle = false end end end) @@ -162,15 +162,15 @@ function Entity_Control:Base() menu.toggle(ent_info, "描绘实体边界框", {}, "", function(toggle) if toggle then - if Loop_Handler.Entity.draw_bounding_box.toggle then + if LoopHandler.Entity.draw_bounding_box.toggle then util.toast("正在描绘其它的实体") else - Loop_Handler.Entity.draw_bounding_box.entity = entity - Loop_Handler.Entity.draw_bounding_box.toggle = true + LoopHandler.Entity.draw_bounding_box.entity = entity + LoopHandler.Entity.draw_bounding_box.toggle = true end else - if Loop_Handler.Entity.draw_bounding_box.entity == entity then - Loop_Handler.Entity.draw_bounding_box.toggle = false + if LoopHandler.Entity.draw_bounding_box.entity == entity then + LoopHandler.Entity.draw_bounding_box.toggle = false end end end) @@ -345,19 +345,19 @@ function Entity_Control:Teleport() menu.toggle(teleport_options, "锁定传送", {}, "如果更改了偏移,需要重新开关此选项", function(toggle) if toggle then - if Loop_Handler.Entity.lock_tp.toggle then + if LoopHandler.Entity.lock_tp.toggle then util.toast("正在锁定传送其它实体") else - Loop_Handler.Entity.lock_tp.entity = entity - Loop_Handler.Entity.lock_tp.method = lock_tp - Loop_Handler.Entity.lock_tp.x = tp.x - Loop_Handler.Entity.lock_tp.y = tp.y - Loop_Handler.Entity.lock_tp.z = tp.z - Loop_Handler.Entity.lock_tp.toggle = true + LoopHandler.Entity.lock_tp.entity = entity + LoopHandler.Entity.lock_tp.method = lock_tp + LoopHandler.Entity.lock_tp.x = tp.x + LoopHandler.Entity.lock_tp.y = tp.y + LoopHandler.Entity.lock_tp.z = tp.z + LoopHandler.Entity.lock_tp.toggle = true end else - if Loop_Handler.Entity.lock_tp.entity == entity then - Loop_Handler.Entity.lock_tp.toggle = false + if LoopHandler.Entity.lock_tp.entity == entity then + LoopHandler.Entity.lock_tp.toggle = false end end end) diff --git a/lib/RScript/functions.lua b/lib/RScript/functions.lua index 4d0cc1e..51c4d5f 100644 --- a/lib/RScript/functions.lua +++ b/lib/RScript/functions.lua @@ -2,9 +2,9 @@ -- Local Player Functions ---------------------------------------- ----传送玩家 ----@param coords v3 ----@param heading? float +--- 传送本地玩家 +--- @param coords v3 +--- @param heading? float function teleport(coords, heading) local ent = entities.get_user_vehicle_as_handle(false) if ent == INVALID_GUID then @@ -14,18 +14,18 @@ function teleport(coords, heading) TP_ENTITY(ent, coords, heading) end ----传送玩家 ----@param x float ----@param y float ----@param z float ----@param heading? float +--- 传送本地玩家 +--- @param x float +--- @param y float +--- @param z float +--- @param heading? float function teleport2(x, y, z, heading) teleport(v3.new(x, y, z), heading) end ----设置/获取玩家朝向 ----@param heading? float ----@return float +--- 设置/获取本地玩家朝向 +--- @param heading? float +--- @return float function user_heading(heading) local ent = entities.get_user_vehicle_as_handle(false) if ent == INVALID_GUID then @@ -39,8 +39,8 @@ function user_heading(heading) return ENTITY.GET_ENTITY_HEADING(ent) end ----获取玩家室内ID,不在室内则返回-1 ----@return integer +--- 获取本地玩家室内 ID,不在室内则返回 -1 +--- @return integer function user_interior() if INTERIOR.IS_INTERIOR_SCENE() then return INTERIOR.GET_INTERIOR_FROM_ENTITY(players.user_ped()) @@ -48,11 +48,11 @@ function user_interior() return -1 end ----传送实体到玩家 `offset`: 左/右,前/后,上/下 ----@param entity Entity ----@param offsetX? float ----@param offsetY? float ----@param offsetZ? float +--- 传送实体到本地玩家 `offset`: 左/右,前/后,上/下 +--- @param entity Entity +--- @param offsetX? float +--- @param offsetY? float +--- @param offsetZ? float function tp_entity_to_me(entity, offsetX, offsetY, offsetZ) offsetX = offsetX or 0.0 offsetY = offsetY or 0.0 @@ -61,11 +61,11 @@ function tp_entity_to_me(entity, offsetX, offsetY, offsetZ) TP_ENTITY(entity, coords) end ----传送玩家到实体 `offset`: 左/右,前/后,上/下 ----@param entity Entity ----@param offsetX? float ----@param offsetY? float ----@param offsetZ? float +--- 传送本地玩家到实体 `offset`: 左/右,前/后,上/下 +--- @param entity Entity +--- @param offsetX? float +--- @param offsetY? float +--- @param offsetZ? float function tp_to_entity(entity, offsetX, offsetY, offsetZ) offsetX = offsetX or 0.0 offsetY = offsetY or 0.0 @@ -74,35 +74,25 @@ function tp_to_entity(entity, offsetX, offsetY, offsetZ) teleport(coords) end ----玩家传送进载具 ----@param vehicle Vehicle ----@param door? string *delete* : 删除车门 ----@param driver? string *tp* : 传送司机到外面, *delete* : 删除司机 ----@param seat? int default: -1 +--- 本地玩家传送进载具 +--- @param vehicle Vehicle +--- @param door? string *"delete"* : 删除车门 +--- @param driver? string *"tp"* : 传送司机到外面, *"delete"* : 删除司机 +--- @param seat? int default: -1 function tp_into_vehicle(vehicle, door, driver, seat) seat = seat or -1 - -- unlock doors - VEHICLE.SET_VEHICLE_DOORS_LOCKED(vehicle, 1) - VEHICLE.SET_VEHICLE_DOORS_LOCKED_FOR_ALL_PLAYERS(vehicle, false) - VEHICLE.SET_VEHICLE_DOORS_LOCKED_FOR_NON_SCRIPT_PLAYERS(vehicle, false) - VEHICLE.SET_VEHICLE_DOORS_LOCKED_FOR_ALL_TEAMS(vehicle, false) - VEHICLE.SET_DONT_ALLOW_PLAYER_TO_ENTER_VEHICLE_IF_LOCKED_FOR_PLAYER(vehicle, false) + + unlock_vehicle_doors(vehicle) + clear_vehicle_wanted(vehicle) -- unfreeze ENTITY.FREEZE_ENTITY_POSITION(vehicle, false) - VEHICLE.SET_VEHICLE_IS_CONSIDERED_BY_PLAYER(vehicle, true) VEHICLE.SET_VEHICLE_UNDRIVEABLE(vehicle, false) - -- clear wanted - VEHICLE.SET_VEHICLE_IS_WANTED(vehicle, false) - VEHICLE.SET_VEHICLE_INFLUENCES_WANTED_LEVEL(vehicle, false) - VEHICLE.SET_VEHICLE_HAS_BEEN_OWNED_BY_PLAYER(vehicle, true) - VEHICLE.SET_VEHICLE_IS_STOLEN(vehicle, false) - VEHICLE.SET_POLICE_FOCUS_WILL_TRACK_VEHICLE(vehicle, false) if door == "delete" then VEHICLE.SET_VEHICLE_DOOR_BROKEN(vehicle, 0, true) -- left front door end - if driver ~= nil then + if driver then local ped = VEHICLE.GET_PED_IN_VEHICLE_SEAT(vehicle, seat) if ped ~= 0 then if driver == "tp" then @@ -119,20 +109,20 @@ function tp_into_vehicle(vehicle, door, driver, seat) PED.SET_PED_INTO_VEHICLE(players.user_ped(), vehicle, seat) end ----传送载具到玩家,玩家传送进载具 ----@param vehicle Vehicle ----@param door? string *delete* : 删除车门 ----@param driver? string *tp* : 传送司机到外面, *delete* : 删除司机 ----@param seat? int default: -1 +--- 传送载具到本地玩家,本地玩家传送进载具 +--- @param vehicle Vehicle +--- @param door? string *"delete"* : 删除车门 +--- @param driver? string *"tp"* : 传送司机到外面, *"delete"* : 删除司机 +--- @param seat? int default: -1 function tp_vehicle_to_me(vehicle, door, driver, seat) ENTITY_HEADING(vehicle, user_heading()) tp_entity_to_me(vehicle) tp_into_vehicle(vehicle, door, driver, seat) end ----传送拾取物到玩家 ----@param pickup Pickup ----@param attachToSelf? boolean +--- 传送拾取物到本地玩家 +--- @param pickup Pickup +--- @param attachToSelf? boolean function tp_pickup_to_me(pickup, attachToSelf) if ENTITY.IS_ENTITY_ATTACHED(pickup) then ENTITY.DETACH_ENTITY(pickup, true, true) @@ -147,9 +137,9 @@ function tp_pickup_to_me(pickup, attachToSelf) end end ----玩家与实体绘制连线 ----@param entity Entity ----@param colour Colour? +--- 本地玩家与实体绘制连线 +--- @param entity Entity +--- @param colour Colour? function draw_line_to_entity(entity, colour) local player_pos = ENTITY.GET_ENTITY_COORDS(players.user_ped()) local ent_pos = ENTITY.GET_ENTITY_COORDS(entity) @@ -160,84 +150,87 @@ end -- Entity Functions ---------------------------------------- ----获取实体类型 (String) ---- ----`text_type`: 1 小写, 2 首字母大写, 3 大写 (默认: 2) ----@param entity Entity ----@param text_type integer? ----@return string -function get_entity_type(entity, text_type) - local entity_type = "No Entity" - if ENTITY.DOES_ENTITY_EXIST(entity) and ENTITY.IS_AN_ENTITY(entity) then - if ENTITY.IS_ENTITY_A_PED(entity) then - entity_type = "Ped" - elseif ENTITY.IS_ENTITY_A_VEHICLE(entity) then - entity_type = "Vehicle" - elseif ENTITY.IS_ENTITY_AN_OBJECT(entity) then - entity_type = "Object" - if OBJECT.IS_OBJECT_A_PICKUP(entity) or OBJECT.IS_OBJECT_A_PORTABLE_PICKUP(entity) then - entity_type = "Pickup" - end - end +--- 获取实体类型 (Integer) +--- @param entity Entity +--- @return ENTITY_TYPE +function get_entity_type(entity) + if not ENTITY.DOES_ENTITY_EXIST(entity) or not ENTITY.IS_AN_ENTITY(entity) then + return ENTITY_NONE end - if text_type == 1 then - return string.lower(entity_type) + if ENTITY.IS_ENTITY_A_PED(entity) then + return ENTITY_PED end - if text_type == 3 then - return string.upper(entity_type) + + if ENTITY.IS_ENTITY_A_VEHICLE(entity) then + return ENTITY_VEHICLE end - return entity_type + + if ENTITY.IS_ENTITY_AN_OBJECT(entity) then + if OBJECT.IS_OBJECT_A_PICKUP(entity) or OBJECT.IS_OBJECT_A_PORTABLE_PICKUP(entity) then + return ENTITY_PICKUP + end + return ENTITY_OBJECT + end + + return ENTITY_NONE end ----String to Integer +--- 获取实体类型 (String) --- ----1: Ped, 2: Vehicle, 3: Object, 4: Pickup, 5: No Entity ----@param Type string ----@return integer -function GET_ENTITY_TYPE_INDEX(Type) - Type = string.lower(Type) - if Type == "ped" then - return 1 - end - if Type == "vehicle" then - return 2 - end - if Type == "object" then - return 3 +--- `text_type`: 1 小写, 2 首字母大写, 3 大写 (默认: 2) +--- @param entity Entity +--- @param textType integer? +--- @return string +function get_entity_type_text(entity, textType) + local entity_type_list = { + [ENTITY_NONE] = "No Entity", + [ENTITY_PED] = "Ped", + [ENTITY_VEHICLE] = "Vehicle", + [ENTITY_OBJECT] = "Object", + [ENTITY_PICKUP] = "Pickup" + } + + local entity_type = get_entity_type(entity) + entity_type = entity_type_list[entity_type] + + if textType == 1 then + return string.lower(entity_type) end - if Type == "pickup" then - return 4 + if textType == 3 then + return string.upper(entity_type) end - return 5 + return entity_type end ----设置实体左/右、前/后、上/下移动 ----@param entity Entity ----@param offsetX float ----@param offsetY float ----@param offsetZ float +--- 设置实体左/右、前/后、上/下移动 +--- @param entity Entity +--- @param offsetX float +--- @param offsetY float +--- @param offsetZ float function set_entity_move(entity, offsetX, offsetY, offsetZ) local coords = ENTITY.GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(entity, offsetX, offsetY, offsetZ) TP_ENTITY(entity, coords) end ----设置实体与目标实体之间的朝向角度差 ----@param setEntity Entity ----@param toEntity Entity ----@param angle? float +--- 设置实体与目标实体之间的朝向角度差 +--- @param setEntity Entity +--- @param toEntity Entity +--- @param angle? float function set_entity_heading_to_entity(setEntity, toEntity, angle) angle = angle or 0.0 local heading = ENTITY.GET_ENTITY_HEADING(toEntity) ENTITY.SET_ENTITY_HEADING(setEntity, heading + angle) end ----传送实体到目标实体 `offset`: 左/右,前/后,上/下 ----@param tpEntity Entity ----@param toEntity Entity ----@param offsetX? float ----@param offsetY? float ----@param offsetZ? float +--- 传送实体到目标实体 +--- +--- `offset`: 左/右,前/后,上/下 +--- @param tpEntity Entity +--- @param toEntity Entity +--- @param offsetX? float +--- @param offsetY? float +--- @param offsetZ? float function tp_entity_to_entity(tpEntity, toEntity, offsetX, offsetY, offsetZ) offsetX = offsetX or 0.0 offsetY = offsetY or 0.0 @@ -246,73 +239,90 @@ function tp_entity_to_entity(tpEntity, toEntity, offsetX, offsetY, offsetZ) TP_ENTITY(tpEntity, coords) end ----获取对应类型的所有实体 ----@param Type string ----@return table -function get_all_entities(Type) - Type = string.lower(Type) +--- @param entity Entity +--- @param toggle boolean +function set_entity_godmode(entity, toggle) + if not ENTITY.DOES_ENTITY_EXIST(entity) then + return false + end + + ENTITY.SET_ENTITY_INVINCIBLE(entity, toggle) + ENTITY.SET_ENTITY_PROOFS(entity, toggle, toggle, toggle, toggle, toggle, toggle, toggle, toggle) + ENTITY.SET_ENTITY_CAN_BE_DAMAGED(entity, not toggle) +end + +--- 获取拥有实体控制权的玩家名称 +--- @param entity Entity +--- @return string +function get_entity_owner_name(entity) + return players.get_name(entities.get_owner(entity)) +end - if Type == "ped" then +---------------------------------------- +-- Get Entities Functions +---------------------------------------- + +--- 获取对应类型的所有实体 +--- @param entityType ENTITY_TYPE +--- @return table +function get_all_entities(entityType) + if entityType == ENTITY_PED then return entities.get_all_peds_as_handles() end - if Type == "vehicle" then + if entityType == ENTITY_VEHICLE then return entities.get_all_vehicles_as_handles() end - if Type == "object" then + if entityType == ENTITY_OBJECT then return entities.get_all_objects_as_handles() end - if Type == "pickup" then + if entityType == ENTITY_PICKUP then return entities.get_all_pickups_as_handles() end return {} end ----获取对应类型的所有实体指针 ----@param Type string ----@return table -function get_all_entities_as_pointers(Type) - Type = string.lower(Type) - - if Type == "ped" then +--- 获取对应类型的所有实体指针 +--- @param entityType ENTITY_TYPE +--- @return table +function get_all_entities_as_pointers(entityType) + if entityType == ENTITY_PED then return entities.get_all_peds_as_pointers() end - if Type == "vehicle" then + if entityType == ENTITY_VEHICLE then return entities.get_all_vehicles_as_pointers() end - if Type == "object" then + if entityType == ENTITY_OBJECT then return entities.get_all_objects_as_pointers() end - if Type == "pickup" then + if entityType == ENTITY_PICKUP then return entities.get_all_pickups_as_pointers() end return {} end ----通过 model hash 寻找实体 ----@param Type string ----@param isMission boolean ----@param ... Hash ----@return table -function get_entities_by_hash(Type, isMission, ...) +--- 通过 model hash 获取实体 +--- @param entityType ENTITY_TYPE +--- @param isMission boolean +--- @param ... Hash +--- @return table +function get_entities_by_hash(entityType, isMission, ...) local entity_list = {} local hash_list = { ... } - for key, entity_ptr in pairs(get_all_entities_as_pointers(Type)) do + for key, entity_ptr in pairs(get_all_entities_as_pointers(entityType)) do local entity_hash = entities.get_model_hash(entity_ptr) for _, hash in pairs(hash_list) do if entity_hash == hash then - if entities.has_handle(entity_ptr) then - local entity = entities.pointer_to_handle(entity_ptr) - - if isMission then - if ENTITY.IS_ENTITY_A_MISSION_ENTITY(entity) then - table.insert(entity_list, entity) - end - else + local entity = entities.pointer_to_handle(entity_ptr) + + if isMission then + if ENTITY.IS_ENTITY_A_MISSION_ENTITY(entity) then table.insert(entity_list, entity) end + else + table.insert(entity_list, entity) end end end @@ -321,24 +331,58 @@ function get_entities_by_hash(Type, isMission, ...) return entity_list end ----@param entity Entity ----@param toggle boolean -function set_entity_godmode(entity, toggle) - if not ENTITY.DOES_ENTITY_EXIST(entity) then - return false +--- 通过 model hash 获取指定脚本的任务实体 +--- @param entityType ENTITY_TYPE +--- @param scriptName string +--- @param ... Hash +--- @return table +function get_mission_entities_by_hash(entityType, scriptName, ...) + if not IS_SCRIPT_RUNNING(scriptName) then + return {} end - ENTITY.SET_ENTITY_INVINCIBLE(entity, toggle) - ENTITY.SET_ENTITY_PROOFS(entity, toggle, toggle, toggle, toggle, toggle, toggle, toggle, toggle) - ENTITY.SET_ENTITY_CAN_BE_DAMAGED(entity, not toggle) + local entity_list = {} + local hash_list = { ... } + + for key, entity_ptr in pairs(get_all_entities_as_pointers(entityType)) do + local entity_hash = entities.get_model_hash(entity_ptr) + for _, hash in pairs(hash_list) do + if entity_hash == hash then + local entity = entities.pointer_to_handle(entity_ptr) + + if GET_ENTITY_SCRIPT(entity) == scriptName then + table.insert(entity_list, entity) + end + end + end + end + + return entity_list +end + +--- 获取指定脚本的任务拾取物 +--- @param scriptName string +--- @return table +function get_mission_pickups(scriptName) + if not IS_SCRIPT_RUNNING(scriptName) then + return {} + end + + local entity_list = {} + for _, entity in pairs(entities.get_all_pickups_as_handles()) do + if GET_ENTITY_SCRIPT(entity) == scriptName then + table.insert(entity_list, entity) + end + end + return entity_list end ----获取距离坐标最近的实体 ----@param entityType string ----@param coords v3 ----@param isMission boolean? default: false ----@param radius float? default: 100.0 ----@return Entity +--- 获取距离坐标最近的实体 +--- @param entityType ENTITY_TYPE +--- @param coords v3 +--- @param isMission boolean? default: false +--- @param radius float? default: 100.0 +--- @return Entity function get_closest_entity(entityType, coords, isMission, radius) radius = radius or 100.0 local closest_disance = 9999.0 @@ -364,11 +408,11 @@ function get_closest_entity(entityType, coords, isMission, radius) return closest_ent end ----获取坐标附近的实体 ----@param entityType string ----@param coords v3 ----@param radius float ----@return table +--- 获取坐标附近的实体 +--- @param entityType ENTITY_TYPE +--- @param coords v3 +--- @param radius float +--- @return table function get_nearby_entities(entityType, coords, radius) local entity_list = {} for _, ent in pairs(get_all_entities(entityType)) do @@ -386,16 +430,16 @@ end -- Check Entity Functions ---------------------------------------- ----判断是否为玩家 ----@param ped Ped ----@return boolean +--- 判断是否为玩家 +--- @param ped Ped +--- @return boolean function is_player_ped(ped) return entities.is_player_ped(ped) end ----判断是否为玩家载具 ----@param vehicle Vehicle ----@return boolean +--- 判断是否为玩家载具 +--- @param vehicle Vehicle +--- @return boolean function is_player_vehicle(vehicle) if vehicle == entities.get_user_vehicle_as_handle() or vehicle == entities.get_user_personal_vehicle_as_handle() then return true @@ -411,9 +455,9 @@ function is_player_vehicle(vehicle) return false end ----判断是否为实体 ----@param entity Entity ----@return boolean +--- 判断是否为实体 +--- @param entity Entity +--- @return boolean function IS_AN_ENTITY(entity) if ENTITY.DOES_ENTITY_EXIST(entity) then if ENTITY.IS_ENTITY_A_PED(entity) or ENTITY.IS_ENTITY_A_VEHICLE(entity) or ENTITY.IS_ENTITY_AN_OBJECT(entity) then @@ -423,9 +467,9 @@ function IS_AN_ENTITY(entity) return false end ----判断是否为拾取物 ----@param entity Entity ----@return boolean +--- 判断是否为拾取物 +--- @param entity Entity +--- @return boolean function IS_ENTITY_A_PICKUP(entity) if ENTITY.IS_ENTITY_AN_OBJECT(entity) then if OBJECT.IS_OBJECT_A_PICKUP(entity) or OBJECT.IS_OBJECT_A_PORTABLE_PICKUP(entity) then @@ -435,9 +479,9 @@ function IS_ENTITY_A_PICKUP(entity) return false end ----判断是否为敌对实体 ----@param entity Entity ----@return boolean +--- 判断是否为敌对实体 +--- @param entity Entity +--- @return boolean function is_hostile_entity(entity) if ENTITY.IS_ENTITY_A_PED(entity) then if is_hostile_ped(entity) then @@ -467,13 +511,13 @@ end -- Create Entity Functions ---------------------------------------- ----@param ped_type int ----@param hash Hash ----@param coords v3 ----@param heading float ----@param is_networked boolean? [default = true] ----@param is_mission boolean? [default = true] ----@return Ped +--- @param ped_type int +--- @param hash Hash +--- @param coords v3 +--- @param heading float +--- @param is_networked boolean? [default = true] +--- @param is_mission boolean? [default = true] +--- @return Ped function create_ped(ped_type, hash, coords, heading, is_networked, is_mission) if is_networked == nil then is_networked = true end if is_mission == nil then is_mission = true end @@ -502,12 +546,12 @@ function create_ped(ped_type, hash, coords, heading, is_networked, is_mission) return ped end ----@param hash Hash ----@param coords v3 ----@param heading float ----@param is_networked boolean? [default = true] ----@param is_mission boolean? [default = true] ----@return Vehicle +--- @param hash Hash +--- @param coords v3 +--- @param heading float +--- @param is_networked boolean? [default = true] +--- @param is_mission boolean? [default = true] +--- @return Vehicle function create_vehicle(hash, coords, heading, is_networked, is_mission) if is_networked == nil then is_networked = true end if is_mission == nil then is_mission = true end @@ -536,11 +580,11 @@ function create_vehicle(hash, coords, heading, is_networked, is_mission) return veh end ----@param hash Hash ----@param coords v3 ----@param is_networked boolean? [default = true] ----@param is_mission boolean? [default = true] ----@return Object +--- @param hash Hash +--- @param coords v3 +--- @param is_networked boolean? [default = true] +--- @param is_mission boolean? [default = true] +--- @return Object function create_object(hash, coords, is_networked, is_mission) if is_networked == nil then is_networked = true end if is_mission == nil then is_mission = true end @@ -573,12 +617,12 @@ end -- Clone Entity Functions ---------------------------------------- ----复制Ped ----@param target_ped Ped ----@param coords v3 ----@param heading float ----@param is_networked boolean ----@return Ped +--- 复制 Ped +--- @param target_ped Ped +--- @param coords v3 +--- @param heading float +--- @param is_networked boolean +--- @return Ped function clone_target_ped(target_ped, coords, heading, is_networked) if ENTITY.DOES_ENTITY_EXIST(target_ped) and ENTITY.IS_ENTITY_A_PED(target_ped) then local ped_type = PED.GET_PED_TYPE(target_ped) @@ -592,9 +636,9 @@ function clone_target_ped(target_ped, coords, heading, is_networked) return 0 end ----复制目标Vehicle的数据 应用到 克隆Vehicle ----@param target_vehicle Vehicle ----@param clone_vehicle Vehicle +--- 复制目标 Vehicle 的数据 应用到 克隆 Vehicle +--- @param target_vehicle Vehicle +--- @param clone_vehicle Vehicle function clone_target_vehicle_data(target_vehicle, clone_vehicle) VEHICLE.SET_VEHICLE_MOD_KIT(clone_vehicle, 0) @@ -667,12 +711,12 @@ function clone_target_vehicle_data(target_vehicle, clone_vehicle) end end ----复制Vehicle ----@param target_vehicle Vehicle ----@param coords v3 ----@param heading float ----@param is_networked boolean ----@return Vehicle +--- 复制 Vehicle +--- @param target_vehicle Vehicle +--- @param coords v3 +--- @param heading float +--- @param is_networked boolean +--- @return Vehicle function clone_target_vehicle(target_vehicle, coords, heading, is_networked) if ENTITY.DOES_ENTITY_EXIST(target_vehicle) and ENTITY.IS_ENTITY_A_VEHICLE(target_vehicle) then local hash = ENTITY.GET_ENTITY_MODEL(target_vehicle) @@ -685,11 +729,11 @@ function clone_target_vehicle(target_vehicle, coords, heading, is_networked) return 0 end ----复制Object ----@param target_object Object ----@param coords v3 ----@param is_networked boolean ----@return Object +--- 复制 Object +--- @param target_object Object +--- @param coords v3 +--- @param is_networked boolean +--- @return Object function clone_target_object(target_object, coords, is_networked) if ENTITY.DOES_ENTITY_EXIST(target_object) and ENTITY.IS_ENTITY_AN_OBJECT(target_object) then local hash = ENTITY.GET_ENTITY_MODEL(target_object) @@ -708,22 +752,27 @@ end -- Vehicle Functions ---------------------------------------- ----升级载具(排除涂装、车轮) ----@param vehicle Vehicle +--- 升级载具(排除喇叭、悬挂、车轮、涂装) +--- @param vehicle Vehicle function upgrade_vehicle(vehicle) if not ENTITY.IS_ENTITY_A_VEHICLE(vehicle) then return end VEHICLE.SET_VEHICLE_MOD_KIT(vehicle, 0) + + local excluded_mod_types = { 14, 15, 23, 24, 48 } for i = 0, 50 do - if i ~= 48 and i ~= 23 and i ~= 24 then + if not table.contains(excluded_mod_types, i) then local mod_num = VEHICLE.GET_NUM_VEHICLE_MODS(vehicle, i) if mod_num > 0 then VEHICLE.SET_VEHICLE_MOD(vehicle, i, mod_num - 1, false) end end end + for i = 17, 22 do + VEHICLE.TOGGLE_VEHICLE_MOD(vehicle, i, true) + end VEHICLE.SET_VEHICLE_TYRES_CAN_BURST(vehicle, false) VEHICLE.SET_VEHICLE_WHEELS_CAN_BREAK(vehicle, false) @@ -742,8 +791,8 @@ function upgrade_vehicle(vehicle) VEHICLE.SET_HELI_TAIL_BOOM_CAN_BREAK_OFF(vehicle, false) end ----修复载具 ----@param vehicle Vehicle +--- 修复载具 +--- @param vehicle Vehicle function fix_vehicle(vehicle) if not ENTITY.IS_ENTITY_A_VEHICLE(vehicle) then return @@ -756,8 +805,8 @@ function fix_vehicle(vehicle) SET_ENTITY_HEALTH(vehicle, ENTITY.GET_ENTITY_MAX_HEALTH(vehicle)) end ----强化载具 ----@param vehicle Vehicle +--- 强化载具 +--- @param vehicle Vehicle function strong_vehicle(vehicle) if not ENTITY.IS_ENTITY_A_VEHICLE(vehicle) then return @@ -811,8 +860,8 @@ function strong_vehicle(vehicle) VEHICLE.REMOVE_VEHICLE_STUCK_CHECK(vehicle) end ----解锁载具车门 ----@param vehicle Vehicle +--- 解锁载具车门 +--- @param vehicle Vehicle function unlock_vehicle_doors(vehicle) if not ENTITY.IS_ENTITY_A_VEHICLE(vehicle) then return @@ -823,14 +872,32 @@ function unlock_vehicle_doors(vehicle) VEHICLE.SET_VEHICLE_DOORS_LOCKED_FOR_NON_SCRIPT_PLAYERS(vehicle, false) VEHICLE.SET_VEHICLE_DOORS_LOCKED_FOR_ALL_TEAMS(vehicle, false) VEHICLE.SET_DONT_ALLOW_PLAYER_TO_ENTER_VEHICLE_IF_LOCKED_FOR_PLAYER(vehicle, false) + + VEHICLE.SET_VEHICLE_IS_CONSIDERED_BY_PLAYER(vehicle, true) + VEHICLE.SET_VEHICLE_EXCLUSIVE_DRIVER(vehicle, 0, 0) +end + +--- 清除载具通缉状态 +--- @param vehicle Vehicle +function clear_vehicle_wanted(vehicle) + if not ENTITY.IS_ENTITY_A_VEHICLE(vehicle) then + return + end + + VEHICLE.SET_VEHICLE_HAS_BEEN_OWNED_BY_PLAYER(vehicle, true) + VEHICLE.SET_VEHICLE_IS_STOLEN(vehicle, false) + VEHICLE.SET_VEHICLE_IS_WANTED(vehicle, false) + VEHICLE.SET_POLICE_FOCUS_WILL_TRACK_VEHICLE(vehicle, false) + VEHICLE.SET_VEHICLE_INFLUENCES_WANTED_LEVEL(vehicle, false) + VEHICLE.SET_DISABLE_WANTED_CONES_RESPONSE(vehicle, true) end ----获取最近的载具生成点 +--- 获取最近的载具生成点 --- - - - ----`nodeType`: 0 = main roads, 1 = any dry path, 3 = water ----@param coords v3 ----@param nodeType integer ----@return boolean, v3, float +--- `nodeType`: 0 = main roads, 1 = any dry path, 3 = water +--- @param coords v3 +--- @param nodeType integer +--- @return boolean, v3, float function get_closest_vehicle_node(coords, nodeType) local outCoords = v3.new() local outHeading = memory.alloc(4) @@ -842,10 +909,10 @@ function get_closest_vehicle_node(coords, nodeType) end end ----获取随机的载具生成点 ----@param coords v3 ----@param radius float ----@return boolean, v3, integer +--- 获取随机的载具生成点 +--- @param coords v3 +--- @param radius float +--- @return boolean, v3, integer function get_random_vehicle_node(coords, radius) local vecReturn = v3.new() local NodeAddress = memory.alloc_int() @@ -857,11 +924,11 @@ function get_random_vehicle_node(coords, radius) end end ----获取载具内所有Ped +--- 获取载具内所有 Ped --- ----返回 ped num 和 ped table ----@param vehicle Vehicle ----@return integer, table +--- 返回 ped num 和 ped table +--- @param vehicle Vehicle +--- @return integer, table function get_vehicle_peds(vehicle) local num = 0 local peds = {} @@ -879,37 +946,37 @@ function get_vehicle_peds(vehicle) return num, peds end ----通过载具Hash获取载具名称 ----@param modelHash Hash ----@return string +--- 通过载具 Hash 获取载具名称 +--- @param modelHash Hash +--- @return string function get_vehicle_display_name_by_hash(modelHash) - local display_name = "NULL" - if STREAMING.IS_MODEL_VALID(modelHash) then - display_name = util.get_label_text(VEHICLE.GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(modelHash)) + if not STREAMING.IS_MODEL_VALID(modelHash) then + return "NULL" end - return display_name + + return util.get_label_text(VEHICLE.GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(modelHash)) end ----获取载具名称 ----@param vehicle Vehicle ----@return string +--- 获取载具名称 +--- @param vehicle Vehicle +--- @return string function get_vehicle_display_name(vehicle) - local display_name = "NULL" - if ENTITY.IS_ENTITY_A_VEHICLE(vehicle) then - local hash = ENTITY.GET_ENTITY_MODEL(vehicle) - display_name = util.get_label_text(VEHICLE.GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(hash)) + if not ENTITY.IS_ENTITY_A_VEHICLE(vehicle) then + return "NULL" end - return display_name + + local hash = ENTITY.GET_ENTITY_MODEL(vehicle) + return util.get_label_text(VEHICLE.GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(hash)) end ---------------------------------------- -- Ped Functions ---------------------------------------- ----增强NPC作战能力 ----@param ped Ped ----@param isGodmode boolean? [default = false] ----@param canRagdoll boolean? [default = true] +--- 增强 NPC 作战能力 +--- @param ped Ped +--- @param isGodmode boolean? [default = false] +--- @param canRagdoll boolean? [default = true] function increase_ped_combat_ability(ped, isGodmode, canRagdoll) if not ENTITY.IS_ENTITY_A_PED(ped) then return @@ -932,10 +999,10 @@ function increase_ped_combat_ability(ped, isGodmode, canRagdoll) PED.SET_PED_SEEING_RANGE(ped, 500.0) PED.SET_PED_HEARING_RANGE(ped, 500.0) PED.SET_PED_ID_RANGE(ped, 500.0) - PED.SET_PED_VISUAL_FIELD_MIN_ANGLE(ped, 90.0) - PED.SET_PED_VISUAL_FIELD_MAX_ANGLE(ped, 90.0) - PED.SET_PED_VISUAL_FIELD_MIN_ELEVATION_ANGLE(ped, 90.0) - PED.SET_PED_VISUAL_FIELD_MAX_ELEVATION_ANGLE(ped, 90.0) + PED.SET_PED_VISUAL_FIELD_MIN_ANGLE(ped, -180.0) + PED.SET_PED_VISUAL_FIELD_MAX_ANGLE(ped, 180.0) + PED.SET_PED_VISUAL_FIELD_MIN_ELEVATION_ANGLE(ped, -180.0) + PED.SET_PED_VISUAL_FIELD_MAX_ELEVATION_ANGLE(ped, 180.0) PED.SET_PED_VISUAL_FIELD_CENTER_ANGLE(ped, 90.0) -- WEAPON @@ -977,8 +1044,8 @@ function increase_ped_combat_ability(ped, isGodmode, canRagdoll) PED.SET_DISABLE_HIGH_FALL_DEATH(ped, true) end ----增强NPC作战属性 ----@param ped Ped +--- 增强 NPC 作战属性 +--- @param ped Ped function increase_ped_combat_attributes(ped) if not ENTITY.IS_ENTITY_A_PED(ped) then return @@ -1012,8 +1079,8 @@ function increase_ped_combat_attributes(ped) PED.SET_PED_COMBAT_ATTRIBUTES(ped, 78, true) -- Disable All Randoms Flee end ----清理NPC外观 ----@param ped Ped +--- 清理 NPC 外观 +--- @param ped Ped function clear_ped_body(ped) if not ENTITY.IS_ENTITY_A_PED(ped) then return @@ -1026,7 +1093,7 @@ function clear_ped_body(ped) PED.CLEAR_PED_ENV_DIRT(ped) end ----@param ped Ped +--- @param ped Ped function clear_ped_all_tasks(ped) if not ENTITY.IS_ENTITY_A_PED(ped) then return @@ -1045,22 +1112,9 @@ function clear_ped_all_tasks(ped) end end ----@param ped Ped -function disable_ped_flee_attributes(ped) - if ENTITY.DOES_ENTITY_EXIST(ped) and ENTITY.IS_ENTITY_A_PED(ped) then - PED.SET_PED_COMBAT_ATTRIBUTES(ped, 6, false) -- FLEE_WHILST_IN_VEHICLE - PED.SET_PED_COMBAT_ATTRIBUTES(ped, 17, false) -- ALWAYS_FLEE - PED.SET_PED_COMBAT_ATTRIBUTES(ped, 46, true) -- CAN_FIGHT_ARMED_PEDS_WHEN_NOT_ARMED - PED.SET_PED_COMBAT_ATTRIBUTES(ped, 58, true) -- DISABLE_FLEE_FROM_COMBAT - PED.SET_PED_COMBAT_ATTRIBUTES(ped, 78, true) -- DISABLE_ALL_RANDOMS_FLEE - - PED.SET_PED_FLEE_ATTRIBUTES(ped, 512, true) -- NEVER_FLEE - end -end - ----是否为敌对NPC ----@param ped Ped ----@return boolean +--- 是否为敌对 NPC +--- @param ped Ped +--- @return boolean function is_hostile_ped(ped) if not ENTITY.IS_ENTITY_A_PED(ped) then return false @@ -1078,9 +1132,9 @@ function is_hostile_ped(ped) return false end ----是否为友好NPC ----@param ped Ped ----@return boolean +--- 是否为友好 NPC +--- @param ped Ped +--- @return boolean function is_friendly_ped(ped) if not ENTITY.IS_ENTITY_A_PED(ped) then return false @@ -1094,17 +1148,32 @@ function is_friendly_ped(ped) return false end +--- @param ped Ped +--- @param weaponHash Hash +--- @param setCurrent boolean [default = true] +function give_weapon_to_ped(ped, weaponHash, setCurrent) + if setCurrent == nil then setCurrent = true end + WEAPON.GIVE_DELAYED_WEAPON_TO_PED(ped, weaponHash, -1, setCurrent) +end + +--- 通过 Ped 获取玩家 ID +--- @param ped Ped +--- @return Player +function get_player_from_ped(ped) + return NETWORK.NETWORK_GET_PLAYER_INDEX_FROM_PED(ped) +end + ---------------------------------------- -- Weapon Functions ---------------------------------------- ----获取Ped当前使用的武器或载具武器的Hash,和武器类型 +--- 获取 Ped 当前使用的手持武器或载具武器的 Hash 和武器类型 --- ----武器类型 (integer): ---- - `1`: Ped Weapon ---- - `2`: Vehicle Weapon ----@param ped Ped ----@return Hash, integer +--- 武器类型 (integer): +--- - `1`: 手持武器 +--- - `2`: 载具武器 +--- @param ped Ped +--- @return Hash, integer function get_ped_current_weapon(ped) local ptr = memory.alloc_int() @@ -1125,44 +1194,47 @@ function get_ped_current_weapon(ped) return 0, 0 end ----获取Ped当前的武器Hash ----@param ped Ped ----@return Hash +--- 获取 Ped 当前的手持武器 Hash +--- @param ped Ped +--- @return Hash function get_ped_weapon(ped) - local weaponHash = 0 - if ENTITY.DOES_ENTITY_EXIST(ped) and ENTITY.IS_ENTITY_A_PED(ped) then - local ptr = memory.alloc_int() - if WEAPON.GET_CURRENT_PED_WEAPON(ped, ptr, true) then - weaponHash = memory.read_int(ptr) - end + if not ENTITY.IS_ENTITY_A_PED(ped) then + return 0 end - return weaponHash + + local ptr = memory.alloc_int() + if WEAPON.GET_CURRENT_PED_WEAPON(ped, ptr, true) then + return memory.read_int(ptr) + end + return 0 end ----获取Ped当前的载具武器Hash ----@param ped Ped ----@return Hash +--- 获取 Ped 当前的载具武器 Hash +--- @param ped Ped +--- @return Hash function get_ped_vehicle_weapon(ped) - local weaponHash = 0 - if ENTITY.DOES_ENTITY_EXIST(ped) and ENTITY.IS_ENTITY_A_PED(ped) then - local ptr = memory.alloc_int() - if WEAPON.GET_CURRENT_PED_VEHICLE_WEAPON(ped, ptr) then - weaponHash = memory.read_int(ptr) - end + if not ENTITY.IS_ENTITY_A_PED(ped) then + return 0 end - return weaponHash + + local ptr = memory.alloc_int() + if WEAPON.GET_CURRENT_PED_VEHICLE_WEAPON(ped, ptr) then + return memory.read_int(ptr) + end + return 0 end ----通过武器Hash获取武器名称 ----@param weaponHash Hash ----@return string +--- 通过武器 Hash 获取武器显示名称 +--- @param weaponHash Hash +--- @return string function get_weapon_name_by_hash(weaponHash) if WEAPON.IS_WEAPON_VALID(weaponHash) then - for _, item in pairs(util.get_weapons()) do - if item.hash == weaponHash then - return util.get_label_text(item.label_key) - end - end + -- for _, item in pairs(util.get_weapons()) do + -- if item.hash == weaponHash then + -- return util.get_label_text(item.label_key) + -- end + -- end + return Weapon_T.WeaponNameList[weaponHash] or "" end return "" end @@ -1171,10 +1243,10 @@ end -- Network Functions ---------------------------------------- ----请求控制实体 ----@param entity Entity ----@param timeout integer? ----@return boolean +--- 请求控制实体 +--- @param entity Entity +--- @param timeout integer? +--- @return boolean function request_control(entity, timeout) if not NETWORK.NETWORK_HAS_CONTROL_OF_ENTITY(entity) and util.is_session_started() then return entities.request_control(entity, timeout) @@ -1182,10 +1254,10 @@ function request_control(entity, timeout) return true end ----请求控制实体,如果失败则通知 ----@param entity Entity ----@param timeout integer? ----@return boolean +--- 请求控制实体,如果失败则通知 +--- @param entity Entity +--- @param timeout integer? +--- @return boolean function request_control2(entity, timeout) if request_control(entity, timeout) then return true @@ -1194,16 +1266,16 @@ function request_control2(entity, timeout) return false end ----是否已控制实体 ----@param entity Entity ----@return boolean +--- 是否已控制实体 +--- @param entity Entity +--- @return boolean function has_control_entity(entity) return NETWORK.NETWORK_HAS_CONTROL_OF_ENTITY(entity) end ----@param entity Entity ----@param can_migrate? boolean ----@return boolean +--- @param entity Entity +--- @param can_migrate? boolean +--- @return boolean function set_entity_networked(entity, can_migrate) if not ENTITY.DOES_ENTITY_EXIST(entity) then return false @@ -1227,9 +1299,9 @@ end -- Blip Functions ---------------------------------------- ----获取标记点实体 ----@param blip Blip ----@return Entity +--- 获取标记点实体 +--- @param blip Blip +--- @return Entity function get_entity_from_blip(blip) if not HUD.DOES_BLIP_EXIST(blip) then return 0 @@ -1243,9 +1315,9 @@ function get_entity_from_blip(blip) return entity end ----获取标记点坐标 ----@param blip Blip ----@return v3 +--- 获取标记点坐标 +--- @param blip Blip +--- @return v3 function GET_BLIP_COORDS(blip) if not HUD.DOES_BLIP_EXIST(blip) then return nil @@ -1262,11 +1334,11 @@ function GET_BLIP_COORDS(blip) return pos end ----为实体添加标记点并显示一段时间,已有标记点则闪烁一段时间 ----@param ent Entity ----@param blipSprite integer ----@param colour integer ----@param time integer ms +--- 为实体添加标记点并显示一段时间,已有标记点则闪烁一段时间 +--- @param ent Entity +--- @param blipSprite integer +--- @param colour integer +--- @param time integer ms function SHOW_BLIP_TIMER(ent, blipSprite, colour, time) util.create_thread(function() local blip = HUD.GET_BLIP_FROM_ENTITY(ent) @@ -1287,8 +1359,8 @@ end -- Streaming Functions ---------------------------------------- ----请求模型资源 ----@param Hash Hash +--- 请求模型资源 +--- @param Hash Hash function request_model(Hash) if STREAMING.IS_MODEL_VALID(Hash) then STREAMING.REQUEST_MODEL(Hash) @@ -1299,8 +1371,8 @@ function request_model(Hash) end end ----请求武器资源 ----@param Hash Hash +--- 请求武器资源 +--- @param Hash Hash function request_weapon_asset(Hash) if WEAPON.IS_WEAPON_VALID(Hash) then WEAPON.REQUEST_WEAPON_ASSET(Hash, 31, 0) @@ -1311,8 +1383,8 @@ function request_weapon_asset(Hash) end end ----请求粒子资源 ----@param asset string +--- 请求粒子资源 +--- @param asset string function request_ptfx_asset(asset) STREAMING.REQUEST_NAMED_PTFX_ASSET(asset) while not STREAMING.HAS_NAMED_PTFX_ASSET_LOADED(asset) do @@ -1325,11 +1397,11 @@ end -- Draw Functions ---------------------------------------- ----@param pos0 v3 ----@param pos1 v3 ----@param pos2 v3 ----@param pos3 v3 ----@param colour Colour +--- @param pos0 v3 +--- @param pos1 v3 +--- @param pos2 v3 +--- @param pos3 v3 +--- @param colour Colour local draw_rect = function(pos0, pos1, pos2, pos3, colour) GRAPHICS.DRAW_POLY(pos0.x, pos0.y, pos0.z, pos1.x, pos1.y, pos1.z, pos3.x, pos3.y, pos3.z, colour.r, colour.g, colour.b, colour.a) @@ -1337,9 +1409,9 @@ local draw_rect = function(pos0, pos1, pos2, pos3, colour) colour.b, colour.a) end ----@param entity Entity ----@param showPoly? boolean ----@param colour? Colour +--- @param entity Entity +--- @param showPoly? boolean +--- @param colour? Colour function draw_bounding_box(entity, showPoly, colour) if not ENTITY.DOES_ENTITY_EXIST(entity) then return @@ -1388,13 +1460,13 @@ function draw_bounding_box(entity, showPoly, colour) end end ----@param text string ----@param x float ----@param y float ----@param scale? float [default = 0.5] ----@param margin? float [default = 0.01] ----@param text_color? Color ----@param background_color? Color +--- @param text string +--- @param x float +--- @param y float +--- @param scale? float [default = 0.5] +--- @param margin? float [default = 0.01] +--- @param text_color? Color +--- @param background_color? Color function draw_text_box(text, x, y, scale, margin, text_color, background_color) scale = scale or 0.5 margin = margin or 0.01 @@ -1406,8 +1478,8 @@ function draw_text_box(text, x, y, scale, margin, text_color, background_color) directx.draw_text(x + margin, y + margin, text, ALIGN_TOP_LEFT, scale, text_color) end ----@param text string ----@param scale? float [default = 0.5] +--- @param text string +--- @param scale? float [default = 0.5] function DrawString(text, scale) scale = scale or 0.5 local background = { @@ -1430,8 +1502,8 @@ end -- Camera & Aim Functions ---------------------------------------- ----@param distance number ----@return v3 +--- @param distance number +--- @return v3 function get_offset_from_cam(distance) local rot = CAM.GET_FINAL_RENDERED_CAM_ROT(2) local pos = CAM.GET_FINAL_RENDERED_CAM_COORD() @@ -1454,9 +1526,9 @@ local TraceFlag = { foliage = 256, } ----@param distance number ----@param flag? integer ----@return RaycastResult +--- @param distance number +--- @param flag? integer +--- @return RaycastResult --- - - - --- class **RaycastResult** : --- - `didHit` *boolean* @@ -1498,13 +1570,13 @@ end -- Colour Functions ---------------------------------------- ----@class Colour ----@field r number | integer ----@field g number | integer ----@field b number | integer ----@field a number | integer +--- @class Colour +--- @field r number | integer +--- @field g number | integer +--- @field b number | integer +--- @field a number | integer ----@return Colour +--- @return Colour function get_random_colour() local colour = { a = 255 } colour.r = math.random(0, 255) @@ -1513,9 +1585,9 @@ function get_random_colour() return colour end ---- 颜色数值 [0 - 1]格式 转换到 [0 - 255]格式 (float -> int) ----@param colour Colour ----@return Colour +--- 颜色数值 [0 - 1] 格式 转换到 [0 - 255] 格式 (float -> int) +--- @param colour Colour +--- @return Colour function to_rage_colour(colour) return { r = math.ceil(colour.r * 255), @@ -1525,9 +1597,9 @@ function to_rage_colour(colour) } end ---- 颜色数值 [0 - 255]格式 转换到 [0 - 1]格式 (int -> float) ----@param colour Colour ----@return Colour +--- 颜色数值 [0 - 255] 格式 转换到 [0 - 1] 格式 (int -> float) +--- @param colour Colour +--- @return Colour function to_stand_colour(colour) return { r = string.format("%.2f", colour.r / 255), @@ -1537,6 +1609,7 @@ function to_stand_colour(colour) } end +--- 不同组织的 Blip 颜色 local org_blip_colours = { [-1] = 4, [0] = -140542977, @@ -1556,9 +1629,9 @@ local org_blip_colours = { [14] = -2038592001 } ----获取玩家组织地图标记点的颜色 ----@param player_id player ----@return integer +--- 获取玩家组织的地图标记点颜色 +--- @param player_id player +--- @return integer function get_org_blip_colour(player_id) return org_blip_colours[players.get_org_colour(player_id)] end @@ -1567,7 +1640,7 @@ end -- Misc Functions ---------------------------------------- ----坐标计算 +--- 坐标计算 Vector = { ['new'] = function(x, y, z) return { ['x'] = x, ['y'] = y, ['z'] = z } @@ -1601,11 +1674,11 @@ Vector = { end } ----计算模型大小,返回 long, width, height ----@param model Hash ----@return number ----@return number ----@return number +--- 计算模型大小,返回 long, width, height +--- @param model Hash +--- @return number +--- @return number +--- @return number function calculate_model_size(model) local minVec = v3.new() local maxVec = v3.new() @@ -1613,17 +1686,17 @@ function calculate_model_size(model) return (maxVec:getX() - minVec:getX()), (maxVec:getY() - minVec:getY()), (maxVec:getZ() - minVec:getZ()) end ----@param num number ----@param places integer ----@return number? +--- @param num number +--- @param places integer +--- @return number? function round(num, places) return tonumber(string.format('%.' .. (places or 0) .. 'f', num)) end ----@param bool boolean ----@param true_text string? [默认: 是] ----@param false_text string? [默认: 否] ----@return string +--- @param bool boolean +--- @param true_text string? [默认: 是] +--- @param false_text string? [默认: 否] +--- @return string function bool_to_string(bool, true_text, false_text) if bool then return true_text or "是" @@ -1631,10 +1704,10 @@ function bool_to_string(bool, true_text, false_text) return false_text or "否" end ----返回a和b的中间值 ----@param a number ----@param b number ----@return number +--- 返回 a 和 b 的中间值 +--- @param a number +--- @param b number +--- @return number function get_middle_num(a, b) local min = math.min(a, b) local max = math.max(a, b) @@ -1642,8 +1715,9 @@ function get_middle_num(a, b) return middle end ----@param text string ----@return boolean +--- string to boolean +--- @param text string +--- @return boolean function to_boolean(text) if text == 'true' or text == "1" then return true @@ -1655,11 +1729,11 @@ end -- Table Functions ---------------------------------------- ----遍历表 判断某值是否在表中 ----@param tbl table ----@param value any ----@return boolean -function is_in_table(tbl, value) +--- 检查指定的值是否存在于表中 +--- @param tbl table +--- @param value any +--- @return boolean +function table.contains(tbl, value) for k, v in pairs(tbl) do if v == value then return true @@ -1674,15 +1748,15 @@ end THEFEED_POST = {} ----@param message string +--- @param message string function THEFEED_POST.TEXT(message) util.BEGIN_TEXT_COMMAND_THEFEED_POST(message) HUD.END_TEXT_COMMAND_THEFEED_POST_TICKER(false, false) end ----Dev Mode Notify ----@param text string ----@param log? boolean +--- Dev Mode Notify +--- @param text string +--- @param log? boolean function notify(text, log) if not DEV_MODE then return @@ -1700,10 +1774,10 @@ end -- Other Functions ---------------------------------------- ----爆头击杀NPC ----@param targetPed Ped ----@param weaponHash Hash? default: 584646201(WEAPON_APPISTOL) ----@param owner Ped? +--- 爆头击杀 NPC +--- @param targetPed Ped +--- @param weaponHash? Hash default: 584646201 (WEAPON_APPISTOL) +--- @param owner? Ped function shoot_ped_head(targetPed, weaponHash, owner) local head_pos = PED.GET_PED_BONE_COORDS(targetPed, 0x322c, 0, 0, 0) local vector = ENTITY.GET_ENTITY_FORWARD_VECTOR(targetPed) @@ -1724,7 +1798,7 @@ function shoot_ped_head(targetPed, weaponHash, owner) target_ped_veh, targetPed) end ----玩家爆炸敌对NPC(无声) +--- 玩家爆炸敌对 NPC (无声) function explode_hostile_peds() for _, ped in pairs(entities.get_all_peds_as_handles()) do if is_hostile_entity(ped) then @@ -1734,7 +1808,7 @@ function explode_hostile_peds() end end ----玩家爆炸敌对载具(无声) +--- 玩家爆炸敌对载具 (无声) function explode_hostile_vehicles() for _, vehicle in pairs(entities.get_all_vehicles_as_handles()) do if is_hostile_entity(vehicle) then @@ -1747,7 +1821,7 @@ function explode_hostile_vehicles() end end ----玩家爆炸敌对物体(无声) +--- 玩家爆炸敌对物体 (无声) function explode_hostile_objects() for _, object in pairs(entities.get_all_objects_as_handles()) do if is_hostile_entity(object) then @@ -1759,9 +1833,9 @@ function explode_hostile_objects() end end ----生成实体阻挡任务刷新点 ----@param point_list table> ----@param hash Hash? +--- 生成实体阻挡任务刷新点 +--- @param point_list table> +--- @param hash Hash? function block_mission_generate_point(point_list, hash) hash = hash or util.joaat("khanjali") diff --git a/lib/RScript/functions2.lua b/lib/RScript/functions2.lua index 09ac7ee..259f034 100644 --- a/lib/RScript/functions2.lua +++ b/lib/RScript/functions2.lua @@ -18,7 +18,7 @@ function IS_SCRIPT_RUNNING(script) end --- @param script string ---- @param arg_count integer +--- @param stackSize integer --- @return boolean function START_SCRIPT(script, arg_count) if not SCRIPT.DOES_SCRIPT_EXIST(script) then @@ -36,16 +36,32 @@ function START_SCRIPT(script, arg_count) return true end ---- @param script string --- @return boolean -function IS_MISSION_SCRIPT(script) - return script == "fm_mission_controller" or script == "fm_mission_controller_2020" +function IS_MISSION_CONTROLLER_SCRIPT_RUNNING() + return IS_SCRIPT_RUNNING("fm_mission_controller") or IS_SCRIPT_RUNNING("fm_mission_controller_2020") +end + +--- @return string|nil +function GET_RUNNING_MISSION_CONTROLLER_SCRIPT() + local script = "fm_mission_controller" + if IS_SCRIPT_RUNNING(script) then + return script + end + + script = "fm_mission_controller_2020" + if IS_SCRIPT_RUNNING(script) then + return script + end + + return nil end -------------------------- -- Stat Functions -------------------------- +--- @param stat string +--- @return string function ADD_MP_INDEX(stat) local Exceptions = { "MP_CHAR_STAT_RALLY_ANIM", @@ -61,24 +77,32 @@ function ADD_MP_INDEX(stat) end end - if not string.contains(stat, "MP_") and not string.contains(stat, "MPPLY_") then - return "MP" .. util.get_char_slot() .. "_" .. stat + if stat:sub(1, 3) == "MP_" or stat:sub(1, 6) == "MPPLY_" then + return stat end - return stat + return "MP" .. util.get_char_slot() .. "_" .. stat end +--- @param stat string +--- @param value integer function STAT_SET_INT(stat, value) STATS.STAT_SET_INT(util.joaat(ADD_MP_INDEX(stat)), value, true) end +--- @param stat string +--- @param value float function STAT_SET_FLOAT(stat, value) STATS.STAT_SET_FLOAT(util.joaat(ADD_MP_INDEX(stat)), value, true) end +--- @param stat string +--- @param value boolean function STAT_SET_BOOL(stat, value) STATS.STAT_SET_BOOL(util.joaat(ADD_MP_INDEX(stat)), value, true) end +--- @param stat string +--- @param value string function STAT_SET_STRING(stat, value) STATS.STAT_SET_STRING(util.joaat(ADD_MP_INDEX(stat)), value, true) end @@ -99,18 +123,24 @@ function STAT_INCREMENT(stat, value) STATS.STAT_INCREMENT(util.joaat(ADD_MP_INDEX(stat)), value, true) end +--- @param stat string +--- @return integer function STAT_GET_INT(stat) local IntPTR = memory.alloc_int() STATS.STAT_GET_INT(util.joaat(ADD_MP_INDEX(stat)), IntPTR, -1) return memory.read_int(IntPTR) end +--- @param stat string +--- @return float function STAT_GET_FLOAT(stat) local FloatPTR = memory.alloc_int() STATS.STAT_GET_FLOAT(util.joaat(ADD_MP_INDEX(stat)), FloatPTR, -1) return tonumber(string.format("%.3f", memory.read_float(FloatPTR))) end +--- @param stat string +--- @return boolean function STAT_GET_BOOL(stat) if STAT_GET_INT(stat) ~= 0 then return "true" @@ -119,6 +149,8 @@ function STAT_GET_BOOL(stat) end end +--- @param stat string +--- @return string function STAT_GET_STRING(stat) return STATS.STAT_GET_STRING(util.joaat(ADD_MP_INDEX(stat)), -1) end @@ -142,6 +174,34 @@ function STAT_GET_DATE(stat, type) end end +------------------------------ +-- Packed Stat Functions +------------------------------ + +--- @param statIndex integer +--- @return integer +function GET_PACKED_STAT_INT_CODE(statIndex) + return STATS.GET_PACKED_STAT_INT_CODE(statIndex, util.get_char_slot()) +end + +--- @param statIndex integer +--- @return boolean +function GET_PACKED_STAT_BOOL_CODE(statIndex) + return STATS.GET_PACKED_STAT_BOOL_CODE(statIndex, util.get_char_slot()) +end + +--- @param statIndex integer +--- @param value integer +function SET_PACKED_STAT_INT_CODE(statIndex, value) + STATS.SET_PACKED_STAT_INT_CODE(statIndex, value, util.get_char_slot()) +end + +--- @param statIndex integer +--- @param value boolean +function SET_PACKED_STAT_BOOL_CODE(statIndex, value) + STATS.SET_PACKED_STAT_BOOL_CODE(statIndex, value, util.get_char_slot()) +end + ---------------------------- -- Global Functions ---------------------------- @@ -158,6 +218,18 @@ function GLOBAL_SET_FLOAT(global, value) memory.write_float(memory.script_global(global), value) end +--- @param global integer +--- @param value string +function GLOBAL_SET_STRING(global, value) + memory.write_string(memory.script_global(global), value) +end + +--- @param global integer +--- @param value boolean +function GLOBAL_SET_BOOL(global, value) + memory.write_int(memory.script_global(global), value and 1 or 0) +end + --- @param global integer --- @return integer function GLOBAL_GET_INT(global) @@ -170,32 +242,45 @@ function GLOBAL_GET_FLOAT(global) return memory.read_float(memory.script_global(global)) end ---------------------------- --- Tunable Functions ---------------------------- +--- @param global integer +---@return string +function GLOBAL_GET_STRING(global) + return memory.read_string(memory.script_global(global)) +end ---- @param offset integer ---- @param value integer -function TUNABLE_SET_INT(offset, value) - GLOBAL_SET_INT(262145 + offset, value) +--- @param global integer +--- @return boolean +function GLOBAL_GET_BOOL(global) + return memory.read_int(memory.script_global(global)) == 1 end ---- @param offset integer ---- @param value float -function TUNABLE_SET_FLOAT(offset, value) - GLOBAL_SET_FLOAT(262145 + offset, value) +--- @param global integer +--- @param bit integer +function GLOBAL_SET_BIT(global, bit) + local addr = memory.script_global(global) + memory.write_int(addr, SET_BIT(memory.read_int(addr), bit)) end ---- @param offset integer ---- @return integer -function TUNABLE_GET_INT(offset) - return GLOBAL_GET_INT(262145 + offset) +--- @param global integer +--- @param bit integer +function GLOBAL_CLEAR_BIT(global, bit) + local addr = memory.script_global(global) + memory.write_int(addr, CLEAR_BIT(memory.read_int(addr), bit)) end ---- @param offset integer ---- @return float -function TUNABLE_GET_FLOAT(offset) - return GLOBAL_GET_FLOAT(262145 + offset) +--- @param global integer +--- @param bit integer +--- @return boolean +function GLOBAL_BIT_TEST(global, bit) + local addr = memory.script_global(global) + return BIT_TEST(memory.read_int(addr), bit) +end + +--- @param global integer +--- @param ... bits +function GLOBAL_SET_BITS(global, ...) + local addr = memory.script_global(global) + memory.write_int(addr, SET_BITS(memory.read_int(addr), ...)) end --------------------------- @@ -225,10 +310,7 @@ end ---@return integer function LOCAL_GET_INT(script, script_local) if memory.script_local(script, script_local) ~= 0 then - local value = memory.read_int(memory.script_local(script, script_local)) - if value ~= nil then - return value - end + return memory.read_int(memory.script_local(script, script_local)) end end @@ -237,10 +319,7 @@ end ---@return float function LOCAL_GET_FLOAT(script, script_local) if memory.script_local(script, script_local) ~= 0 then - local value = memory.read_float(memory.script_local(script, script_local)) - if value ~= nil then - return value - end + return memory.read_float(memory.script_local(script, script_local)) end end @@ -254,27 +333,98 @@ function LOCAL_SET_BIT(script, script_local, bit) end end +--- @param script string +--- @param script_local integer +--- @param bit integer +function LOCAL_CLEAR_BIT(script, script_local, bit) + local addr = memory.script_local(script, script_local) + if addr ~= 0 then + memory.write_int(addr, CLEAR_BIT(memory.read_int(addr), bit)) + end +end + +--- @param script string +--- @param script_local integer +--- @param bit integer +--- @return boolean +function LOCAL_BIT_TEST(script, script_local, bit) + local addr = memory.script_local(script, script_local) + if addr ~= 0 then + return BIT_TEST(memory.read_int(addr), bit) + end +end + --------------------------- -- Bit Functions --------------------------- ---- @param bits integer ---- @param place integer +--- @param value integer +--- @param position integer +--- @return integer +function SET_BIT(value, position) + return (value | (1 << position)) +end + +--- @param value integer +--- @param position integer +--- @return integer +function CLEAR_BIT(value, position) + return (value & ~(1 << position)) +end + +--- @param value integer +--- @param position integer --- @return integer -function SET_BIT(bits, place) - return (bits | (1 << place)) +function BIT_TEST(value, position) + return (value & (1 << position)) ~= 0 end ---- @param bits integer ---- @param place integer +--- @param value integer +--- @param ... positions --- @return integer -function CLEAR_BIT(bits, place) - return (bits & ~(1 << place)) +function SET_BITS(value, ...) + local positions = { ... } + for _, position in ipairs(positions) do + value = value | (1 << position) + end + return value end ---- @param bits integer ---- @param place integer +--- @param value integer +--- @param ... positions --- @return integer -function BIT_TEST(bits, place) - return (bits & (1 << place)) ~= 0 +function CLEAR_BITS(value, ...) + local positions = { ... } + for _, position in ipairs(positions) do + value = value & ~(1 << position) + end + return value +end + +--- Checks if **all** specified bit positions are set to 1 in the given value. +--- @param value integer +--- @param ... positions +--- @return boolean +function BITS_TEST(value, ...) + local positions = { ... } + for _, position in ipairs(positions) do + if (value & (1 << position)) == 0 then + return false + end + end + return true +end + +--- Checks if **any** of the specified bit positions are set to 1 in the given value. +--- @param value integer +--- @param ... positions +--- @return boolean +function IS_ANY_BIT_SET(value, ...) + local positions = { ... } + for _, position in ipairs(positions) do + if (value & (1 << position)) ~= 0 then + return true + end + end + return false end diff --git a/lib/RScript/tunables.lua b/lib/RScript/tunables.lua new file mode 100644 index 0000000..f281a8c --- /dev/null +++ b/lib/RScript/tunables.lua @@ -0,0 +1,57 @@ +-- Game Variables +-- 1.69-3258 + +-------------------------------- +-- Tunables +-------------------------------- + +TunablesI = { + ["DISABLE_STAT_CAP_CHECK"] = 158, + ["TURN_SNOW_ON_OFF"] = 4413, + + ["GB_GHOST_ORG_DURATION"] = 13117, + ["GB_BRIBE_AUTHORITIES_DURATION"] = 13118, + + ["XM22_GUN_VAN_SLOT_WEAPON_TYPE_0"] = 33273, +} + +TunablesF = { + ["AI_HEALTH"] = 156, +} + +local g_sMPTunables = 262145 + + +-------------------------------- +-- Functions +-------------------------------- + +Tunables = {} + +--- @param tunable_name string +--- @param value int +function Tunables.SetInt(tunable_name, value) + GLOBAL_SET_INT(g_sMPTunables + TunablesI[tunable_name], value) +end + +--- @param tunable_list_name string +--- @param value int +function Tunables.SetIntList(tunable_list_name, value) + for _, offset in pairs(TunablesI[tunable_list_name]) do + GLOBAL_SET_INT(g_sMPTunables + offset, value) + end +end + +--- @param tunable_name string +--- @param value float +function Tunables.SetFloat(tunable_name, value) + GLOBAL_SET_FLOAT(g_sMPTunables + TunablesF[tunable_name], value) +end + +--- @param tunable_list_name string +--- @param value float +function Tunables.SetFloatList(tunable_list_name, value) + for _, offset in pairs(TunablesF[tunable_list_name]) do + GLOBAL_SET_FLOAT(g_sMPTunables + offset, value) + end +end diff --git a/lib/RScript/utils.lua b/lib/RScript/utils.lua index 642e039..9184579 100644 --- a/lib/RScript/utils.lua +++ b/lib/RScript/utils.lua @@ -138,8 +138,8 @@ function rs_menu.current_weapon_action(weapon_menu_list, action_name, on_click, end end --- local all_weapons = {} --- local all_weapons_without_melee = {} +-- local all_weapons = {} +-- local all_weapons_without_melee = {} -- for key, item in pairs(util.get_weapons()) do -- local menu_name = util.get_label_text(item.label_key) -- local command_names = string.gsub(util.reverse_joaat(item.hash), "weapon_", "") @@ -153,6 +153,8 @@ end -- end -- end + + -- function rs_menu.all_weapons2(menu_parent, menu_name, command_names, help_text, on_click, change_menu_name) -- local reference -- reference = menu.list_action(menu_parent, menu_name, command_names, help_text, @@ -184,6 +186,10 @@ end -- end + + + + -------- [[ 载具武器 ]] -------- rs_menu.vehicle_weapon_list = { @@ -281,11 +287,24 @@ end --- 删除 menu list (table) --- @param menu_list table function rs_menu.delete_menu_list(menu_list) - for k, command in pairs(menu_list) do + for _, command in pairs(menu_list) do if command ~= nil and menu.is_ref_valid(command) then menu.delete(command) end end + menu.collect_garbage() +end + +--- 删除 menu.list 下的所有子菜单 +--- @param list CommandRef +function rs_menu.delete_menu_children(list) + local children = menu.get_children(list) + if #children == 0 then return end + + for _, command in pairs(children) do + menu.delete(command) + end + menu.collect_garbage() end -------------------------------------------------- @@ -297,13 +316,17 @@ rs_memory = {} --- @param addr pointer --- @return boolean function rs_memory.is_entity_froze(addr) - return memory.read_byte(addr + 0x2E) == 3 + local m_base_flags = memory.read_uint(addr + 0x2C) + -- IS_FIXED, IS_FIXED_BY_NETWORK + return IS_ANY_BIT_SET(m_base_flags, 17, 18) end --- @param addr pointer --- @return boolean function rs_memory.is_mission_entity(addr) - return memory.read_byte(addr + 0x19) == 4 + local m_dynamic_entity_flags = memory.read_ushort(addr + 0xDA) + -- POPTYPE_MISSION, POPTYPE_PERMANENT + return BITS_TEST(m_dynamic_entity_flags, 0, 1, 2) or BITS_TEST(m_dynamic_entity_flags, 1, 2) end --- @param addr pointer @@ -317,3 +340,25 @@ end function rs_memory.set_entity_health(addr, value) memory.write_float(addr + 0x280, value) end + +--- Only applicable to peds. +--- @param addr pointer +--- @return pointer +function rs_memory.get_weapon_info(addr) + local m_weapon_manager = memory.read_long(addr + 0x10B8) + if m_weapon_manager == 0 then + return 0 + end + + local m_equipped_weapon_info = memory.read_long(m_weapon_manager + 0x58 + 0x10) + if m_equipped_weapon_info ~= 0 then + return m_equipped_weapon_info + end + + local m_equipped_vehicle_weapon_info = memory.read_long(m_weapon_manager + 0x58 + 0x18) + if m_equipped_vehicle_weapon_info ~= 0 then + return m_equipped_vehicle_weapon_info + end + + return 0 +end diff --git a/lib/RScript/variables.lua b/lib/RScript/variables.lua index e2632c6..2c62f55 100644 --- a/lib/RScript/variables.lua +++ b/lib/RScript/variables.lua @@ -1,902 +1,132 @@ --- GTA Online Version: 1.68-3095 +-- Game Variables +-- 1.69-3274 ----------------------------- --- Tunables ----------------------------- - -Tunables = { - -- CEO Ability - GB_GHOST_ORG_DURATION = 13349, - GB_BRIBE_AUTHORITIES_DURATION = 13350, - - FIXER_SECURITY_CONTRACT_REFRESH_TIME = 32023, - TURN_SNOW_ON_OFF = 4575, - AI_HEALTH = 165, - - -- Cooldown - GB_CALL_VEHICLE_COOLDOWN = 13032, - VC_WORK_REQUEST_COOLDOWN = 27510, - - BUNKER_RESEARCH_REQUEST_COOLDOWN = 33198, -- 370341838 - NC_GOODS_REQUEST_COOLDOWN = 33199, -- 236343681 - - -- Special Cargo - EXEC_CONTRABAND_TYPE_REFRESH_TIME = 15762, - EXEC_CONTRABAND_SPECIAL_ITEM_THRESHOLD = 15763, - EXEC_CONTRABAND_SPECIAL_ITEM_CHANCE = 15764, - - -- Bunker - GR_RESUPPLY_PACKAGE_VALUE = 21733, - GR_RESUPPLY_VEHICLE_VALUE = 21734, - - -- Biker - BIKER_RESUPPLY_PACKAGE_VALUE = 18590, - BIKER_RESUPPLY_VEHICLE_VALUE = 18591, - - -- Acid Lab - ACID_LAB_RESUPPLY_CRATE_VALUE = 33039, -} - ----------------------------- +-------------------------------- -- Globals ----------------------------- +-------------------------------- Globals = { - IsUsingComputerScreen = 76369, - MissionCameraLock = 4718592 + 54310, - - RC_Bandito = 2738587 + 6918, - RC_Tank = 2738587 + 6919, - BallisticArmor = 2738587 + 901, - - -- 无视犯罪 - NCOPS = { - type = 2738587 + 4661, - flag = 2738587 + 4662, - time = 2738587 + 4664, - }, -} - -Globals.SpecialCargo = { - Buy_Offsets = { - 15793, -- EXEC_DISABLE_BUY_AFTERMATH - 15799, -- EXEC_DISABLE_BUY_AMBUSHED - 15800, -- EXEC_DISABLE_BUY_ASSASSINATE - 15806, -- EXEC_DISABLE_BUY_BOATATTACK - 15812, -- EXEC_DISABLE_BUY_BREAKUPDEAL - 15818, -- EXEC_DISABLE_BUY_CARGODROP - 15819, -- EXEC_DISABLE_BUY_CRASHSITE - 15825, -- EXEC_DISABLE_BUY_GANGHIDEOUT - 15852, -- EXEC_DISABLE_BUY_HELITAKEDOWN - 15853, -- EXEC_DISABLE_BUY_IMPOUNDED - 15859, -- EXEC_DISABLE_BUY_MOVEDCOLLECTION - 15860, -- EXEC_DISABLE_BUY_MOVINGCOLLECTION - 15861, -- EXEC_DISABLE_BUY_MULTIPLEMOVINGVEHICLES - 15862, -- EXEC_DISABLE_BUY_POLICESTING - 15868, -- EXEC_DISABLE_BUY_STEALTRANSPORTER - 15869, -- EXEC_DISABLE_BUY_THIEF - 15870, -- EXEC_DISABLE_BUY_TRACKIFY - 15871, -- EXEC_DISABLE_BUY_TRAPPED - 15877, -- EXEC_DISABLE_BUY_VALKYRIETAKEDOWN - 15878, -- EXEC_DISABLE_BUY_VEHICLECOLLECTION - }, - Buy_Names = { - { "Aftermath", "包裹*3\n无需踩黄点" }, - { "Ambushed", "被埋伏\n厢型车" }, - { "Assassinate", "前往有利位置干掉目标" }, - { "Boat Attack", "出海,摧毁船只" }, - { "Break Up Deal", "厢型车\n不用踩黄点" }, - { "Air Drop", "在空投区扔信号弹" }, - { "Crash Site", "坠机点" }, - { "Gang Fights", "厢型车\n不用踩黄点" }, - { "Heli Takedown", "干掉直升机" }, - { "Police Confiscation", "走漏风声,货被羁押" }, - { "Spooked", "卖家收到惊吓,前往备用交易点" }, - { "Moving Collection", "第三方势力抢走货物" }, - { "Multiple Moving Vehicles", "多个追踪器信号" }, - { "Police Sting", "警察埋伏\n不用踩黄点" }, - { "Police Transporter", "执法人员扣押货物" }, - { "Thief", "干掉盗贼" }, - { "Trackify Searching", "追踪载具" }, - { "Trapped", "厢型车\n不用踩黄点" }, - { "Valkyrie Takedown", "干掉女武神" }, - { "Vehicle Collection", "厢型车\n不用踩黄点" }, - }, - - Sell_Offsets = { - 15883, -- EXEC_DISABLE_SELL_AIRATTACKED - 15889, -- EXEC_DISABLE_SELL_AIRCLEARAREA - 15895, -- EXEC_DISABLE_SELL_AIRDROP - 15901, -- EXEC_DISABLE_SELL_AIRFLYLOW - 15902, -- EXEC_DISABLE_SELL_AIRRESTRICTED - 15908, -- EXEC_DISABLE_SELL_ATTACKED - 15909, -- EXEC_DISABLE_SELL_DEFAULT - 15910, -- EXEC_DISABLE_SELL_DEFEND - 15932, -- EXEC_DISABLE_SELL_MULTIPLE - 15938, -- EXEC_DISABLE_SELL_NODAMAGE - 15939, -- EXEC_DISABLE_SELL_SEAATTACKED - 15945, -- EXEC_DISABLE_SELL_SEADEFEND - 15951, -- EXEC_DISABLE_SELL_STING - 15957, -- EXEC_DISABLE_SELL_TRACKIFY - }, - Sell_Names = { - { "Air Attacked", "" }, - { "Air Clear Area", "" }, - { "Air Drop", "" }, - { "Air Fly Low", "" }, - { "Air Restricted", "" }, - { "Attacked", "卡车\n每辆车1个点" }, - { "Default", "卡车\n每辆车1个点" }, - { "Defend", "卡车,干掉敌人保护货物\n每辆车1个点" }, - { "Multiple", "卡车\n每辆车5个点" }, - { "(推荐) No Damage", "卡车,完好无损送达加运送奖励\n每辆车1个点" }, - { "Sea Attacked", "" }, - { "Sea Defend", "" }, - { "Sting", "卡车,会触发通缉\n每辆车5个点" }, - { "Trackify", "" }, - }, -} - -function Globals.SpecialCargo.NoWanted(toggle) - local offsets = { - 15740, -- EXEC_BUY_ASSASSINATE_WANTED_CAP - 15741, -- EXEC_BUY_BOATATTACK_WANTED_CAP - 15742, -- EXEC_BUY_CRASHSITE_WANTED_CAP - 15748, -- EXEC_BUY_IMPOUNDED_WANTED_CAP - 15749, -- EXEC_BUY_POLICESTING_WANTED_CAP - 15750, -- EXEC_BUY_STEALTRANSPORTER_WANTED_CAP - 16872, -- EXEC_BUY_LOSE_THE_COPS_WANTED_CAP - 16876, -- EXEC_BUY_STEALTRANSPORTER_EASY_WANTED_CAP - 16877, -- EXEC_BUY_STEALTRANSPORTER_MEDIUM_WANTED_CAP - 16878, -- EXEC_BUY_ASSASSINATE_EASY_WANTED_CAP - 16879, -- EXEC_BUY_ASSASSINATE_MEDIUM_WANTED_CAP - 16880, -- EXEC_BUY_CRASHSITE_EASY_WANTED_CAP - 16881, -- EXEC_BUY_CRASHSITE_MEDIUM_WANTED_CAP - 16882, -- EXEC_BUY_IMPOUNDED_EASY_WANTED_CAP - 16883, -- EXEC_BUY_IMPOUNDED_MEDIUM_WANTED_CAP - 16884, -- EXEC_BUY_POLICESTING_EASY_WANTED_CAP - 16885, -- EXEC_BUY_POLICESTING_MEDIUM_WANTED_CAP - 16889, -- EXEC_BUY_MEDIUM_WANTED_RATING_CAP - 16893, -- EXEC_BUY_EASY_WANTED_RATING_CAP - 15767, -- EXEC_SELL_AIRFLYLOW_WANTED_CAP - 15769, -- EXEC_SELL_AIRRESTRICTED_WANTED_CAP - 15788, -- EXEC_SELL_STING_WANTED_CAP - 16914, -- EXEC_SELL_HARD_WANTED_CAP - } - local defaults = { - 3, - 3, - 3, - 3, - 3, - 3, - 1, - 1, - 2, - 1, - 2, - 1, - 2, - 1, - 2, - 1, - 2, - 2, - 1, - 2, - 3, - 3, - 3, - } - - if toggle then - for key, offset in pairs(offsets) do - TUNABLE_SET_INT(offset, 0) - end - else - for key, offset in pairs(offsets) do - TUNABLE_SET_INT(offset, defaults[key]) - end - end -end - -function Globals.SpecialCargo.ClearMissionHistory() - local buy_history_list = 7 -- EXEC_BUY_MISSIONS_HISTORY - local buy_history_base = 1886967 + 1 + players.user() * 609 + 10 + 312 + 1 - -- freemode.c Global_1886967[PLAYER::PLAYER_ID() /*609*/].f_10.f_312[iVar0] = ..., Search EXEC_BUY_MISSIONS_HISTORY - - local i = 0 - while i < buy_history_list do - GLOBAL_SET_INT(buy_history_base + i, -1) - i = i + 1 - end - - local sell_history_list = 7 -- EXEC_SELL_MISSIONS_HISTORY - local sell_history_base = 2738587 + 5234 + 350 + 1 - -- gb_contraband_sell.c if (Global_2738587.f_5234.f_350[iVar0] == iParam0), Search EXEC_SELL_MISSIONS_HISTORY - - i = 0 - while i < sell_history_list do - GLOBAL_SET_INT(sell_history_base + i, -1) - i = i + 1 - end -end - -Globals.Bunker = { - Steal_Offsets = { - 21854, -- GR_STEAL_VAN_STEAL_VAN_WEIGHTING - 21856, -- GR_STEAL_APC_STEAL_APC_WEIGHTING - 21859, -- GR_STEAL_RHINO_STEAL_RHINO_WEIGHTING - 21863, -- GR_RIVAL_OPERATION_RIVAL_OPERATION_WEIGHTING - 21865, -- GR_STEAL_TECHNICAL_STEAL_TECHNICAL_WEIGHTING - 21867, -- GR_DIVERSION_DIVERSION_WEIGHTING - 21869, -- GR_FLASHLIGHT_FLASHLIGHT_WEIGHTING - 21875, -- GR_ALTRUISTS_ALTRUIST_WEIGHTING - 21877, -- GR_DESTROY_TRUCKS_DESTROY_TRUCKS_WEIGHTING - 21880, -- GR_YACHT_SEARCH_YACHT_SEARCH_WEIGHTING - 21882, -- GR_FLY_SWATTER_FLY_SWATTER_WEIGHTING - 21884, -- GR_STEAL_RAILGUNS_STEAL_RAILGUNS_WEIGHTING - 21887, -- GR_STEAL_MINIGUNS_STEAL_MINIGUNS_WEIGHTING - }, - Steal_Names = { - { "偷取厢型车", "" }, - { "偷取APC", "" }, - { "偷取坦克", "" }, - { "消灭对手行动单位", "" }, - { "偷取铁尼高", "" }, - { "Diversion", "不可进行" }, - { "矿坑", "" }, - { "利他教营地", "" }, - { "(推荐) 摧毁卡车", "不用踩黄点" }, - { "搜查码头或游艇", "" }, - { "干掉直升机", "" }, - { "偷取电磁步枪", "" }, - { "Steal Miniguns", "不可进行" }, - }, - - Sell_Offsets = { - 21898, -- GR_MOVE_WEAPONS_MOVE_WEAPONS_WEIGHTING - 21900, -- 926342835 - 21904, -- GR_AMBUSHED_AMBUSHED_WEIGHTING - 21906, -- GR_HILL_CLIMB_HILL_CLIMB_WEIGHTING - 21908, -- GR_ROUGH_TERRAIN_ROUGH_TERRAIN_WEIGHTING - 21910, -- GR_PHANTOM_PHANTOM_WEIGHTING - }, - Sell_Names = { - { "Move Weapons", "" }, - { "Unknown", "" }, - { "Ambushed", "" }, - { "Hill Climb", "" }, - { "Rough Terrain", "" }, - { "(推荐) 尖锥魅影", "两辆" }, - }, + GunVanSpawnCoords = 1949748, + GunVanLocation = 2652592 + 2671, } -function Globals.Bunker.ClearMissionHistory() - local resupply_history_list = 6 -- GR_RESUPPLY_GENERAL_HISTORY_LIST - local resupply_history_base = 1886967 + 1 + players.user() * 609 + 10 + 378 + 1 - -- freemode.c Global_1886967[PLAYER::PLAYER_ID() /*609*/].f_10.f_378[iVar0] = ..., Search GR_RESUPPLY_GENERAL_HISTORY_LIST - - local i = 0 - while i < resupply_history_list do - GLOBAL_SET_INT(resupply_history_base + i, -1) - i = i + 1 - end - - local sell_history_list = 2 -- GR_GENERAL_HISTORY_LIST - local sell_history_base = 1886967 + 1 + players.user() * 609 + 10 + 387 + 1 - -- freemode.c Global_1886967[PLAYER::PLAYER_ID() /*609*/].f_10.f_387[iVar0] = ..., Search GR_GENERAL_HISTORY_LIST - - i = 0 - while i < sell_history_list do - GLOBAL_SET_INT(sell_history_base + i, -1) - i = i + 1 - end -end - -Globals.AirFreight = { - Steal_Offsets = { - 22971, -- SMUG_STEAL_STEAL_AIRCRAFT_WEIGHTING - 22973, -- SMUG_STEAL_THERMAL_SCOPE_WEIGHTING - 22975, -- SMUG_STEAL_BEACON_GRAB_WEIGHTING - 22977, -- SMUG_STEAL_INFILTRATION_WEIGHTING - 22979, -- SMUG_STEAL_STUNT_PILOT_WEIGHTING - 22981, -- SMUG_STEAL_BOMB_BASE_WEIGHTING - 22983, -- SMUG_STEAL_SPLASH_LANDING_WEIGHTING - 22985, -- SMUG_STEAL_BLACKBOX_WEIGHTING - 22987, -- SMUG_STEAL_DOGFIGHT_WEIGHTING - 22989, -- SMUG_STEAL_CARGO_PLANE_WEIGHTING - 22992, -- SMUG_STEAL_ROOF_ATTACK_WEIGHTING - 22994, -- SMUG_STEAL_BOMBING_RUN_WEIGHTING - 22996, -- SMUG_STEAL_ESCORT_WEIGHTING - 22998, -- SMUG_STEAL_BOMB_ROOF_WEIGHTING - }, - Steal_Names = { - { "Steal Aircraft", "" }, - { "Air Ambulance", "多人任务" }, - { "摧毁干扰器", "" }, - { "运兵直升机潜入监狱", "需要进入运兵直升机" }, - { "特技表演", "" }, - { "摧毁基地", "不用踩黄点" }, - { "打捞点", "飞往打捞点,消灭打捞团队" }, - { "(推荐) 搜寻坠毁的小蛮牛", "不用踩黄点" }, - { "拦截梅利威瑟喷气机", "不用踩黄点" }, - { "拦截货机", "" }, - { "屋顶", "飞往屋顶,摧毁箱子" }, - { "摧毁目标", "不用踩黄点" }, - { "护送泰坦", "" }, - { "Roof Bombings", "多人任务" }, - }, - - Sell_Offsets = { - 23000, -- SMUG_SELL_HEAVY_LIFTING_WEIGHTING - 23037, -- SMUG_SELL_CONTESTED_WEIGHTING - 23039, -- -779747251 - 23041, -- SMUG_SELL_PRECISION_DELIVERY_WEIGHTING - 23043, -- SMUG_SELL_FLYING_FORTRESS_WEIGHTING - 23045, -- SMUG_SELL_FLY_LOW_WEIGHTING - 23047, -- SMUG_SELL_AIR_DELIVERY_WEIGHTING - 23049, -- SMUG_SELL_AIR_POLICE_WEIGHTING - 23051, -- 1786784008 - }, - Sell_Names = { - { "吊挂直升机", "一个点" }, - { "猎杀者", "在投放点消灭敌人\n5个点" }, - { "浩劫者", "每架两个点" }, - { "运兵直升机", "" }, - { "Flying Fortress", "多人任务" }, - { "Fly Low", "5个点" }, - { "Air Delivery", "5个点" }, - { "莫古尔", "会有通缉\n5个点" }, - { "Unknown", "不可进行" }, - }, -} - -function Globals.AirFreight.ClearMissionHistory() - local steal_history_list = 6 -- -1676961419 - local steal_history_base = 1886967 + 1 + players.user() * 609 + 10 + 394 + 1 - -- freemode.c Global_1886967[PLAYER::PLAYER_ID() /*609*/].f_10.f_394[iVar0] = ..., Search -1676961419 - - local i = 0 - while i < steal_history_list do - GLOBAL_SET_INT(steal_history_base + i, -1) - i = i + 1 - end - - local sell_history_list = 4 -- SMUG_SELL_HISTORY_LIST - local sell_history_base = 1886967 + 1 + players.user() * 609 + 10 + 403 + 1 - -- freemode.c Global_1886967[PLAYER::PLAYER_ID() /*609*/].f_10.f_403[iVar0] = ..., Search SMUG_SELL_HISTORY_LIST - - i = 0 - while i < sell_history_list do - GLOBAL_SET_INT(sell_history_base + i, -1) - i = i + 1 - end -end - -Globals.Biker = { - Steal_Offsets = { - 18600, -- BIKER_RESUPPLY_WEED_FARM_WEIGHTING - 18607, -- BIKER_RESUPPLY_FRAGILE_SUPPLIES_WEIGHTING - 18615, -- BIKER_RESUPPLY_LURE_WEIGHTING - 18624, -- BIKER_RESUPPLY_MEET_CONTACT_WEIGHTING - 18633, -- BIKER_RESUPPLY_DESTROY_CRATES_WEIGHTING - 18640, -- BIKER_RESUPPLY_SECURITY_VANS_WEIGHTING - 18641, -- BIKER_RESUPPLY_REPAIRMAN_WEIGHTING - 18648, -- BIKER_RESUPPLY_BANK_WEIGHTING - 18658, -- BIKER_RESUPPLY_DRUG_LAB_WEIGHTING - 18665, -- BIKER_RESUPPLY_CHEMICALS_WEIGHTING - 18670, -- BIKER_RESUPPLY_KILL_DEALERS_WEIGHTING - 18677, -- BIKER_RESUPPLY_STEAL_VEHICLE_WEIGHTING - 18678, -- 448987950 - 18679, -- BIKER_RESUPPLY_BIKER_MELEE_WEIGHTING - 18681, -- BIKER_RESUPPLY_SIGNAL_FLARE_WEIGHTING - 18686, -- BIKER_RESUPPLY_INTIMIDATION_WEIGHTING - }, - Steal_Names = { - { "Raid Nasty People", "仅大麻种植场可进行" }, - { "易碎原材料", "" }, - { "引诱警察", "吸引警察注意,保持通缉等级,直到原材料出现" }, - { "Meeting a Contact", "仅证件伪造办公室可进行" }, - { "摧毁箱子", "" }, - { "搜寻运载原材料的厢型车", "" }, - { "Repairman", "" }, - { "Fleeca Bank Robbery", "仅假钞工厂可进行" }, - { "Colombian Flake", "仅冰毒实验室可进行" }, - { "Disrupt Operations", "仅可卡因作坊可进行" }, - { "干掉敌人", "" }, - { "(推荐) 偷取载具", "不用踩黄点" }, - { "龙舌兰酒吧", "传送到门口后杀死所有敌人" }, - { "将敌人从摩托车上击落", "" }, - { "投掷信号弹", "" }, - { "威胁目标", "" }, - }, - - Sell_Offsets = { - 18723, -- BIKER_DISABLE_SELL_CONVOY - 18725, -- BIKER_DISABLE_SELL_TRASHMASTER - 18729, -- BIKER_DISABLE_SELL_PROVEN - 18731, -- 864548199 - 18736, -- BIKER_DISABLE_SELL_BORDER_PATROL - 18758, -- BIKER_DISABLE_SELL_HELICOPTER_DROP - 18761, -- BIKER_DISABLE_SELL_POSTMAN - 18763, -- -1893108522 - 18770, -- BIKER_DISABLE_SELL_STING_OP - 18772, -- BIKER_DISABLE_SELL_BENSON - 18778, -- BIKER_DISABLE_SELL_BAG_DROP - 18783, -- BIKER_DISABLE_SELL_RACE - 18788, -- BIKER_DISABLE_CLUB_RUN - }, - Sell_Names = { - { "(推荐) Convoy", "卡车\n1个点" }, - { "Trashmaster", "垃圾车\n每辆车5个点" }, - { "Proven", "不可进行" }, - { "Unknown1", "不可进行" }, - { "Border Patrol", "船\n每只船5个点" }, - { "Helicopter Drop", "直升机\n每架5个点" }, - { "Postman", "厢型车\n每辆车5个点" }, - { "Unknown2", "嘟嘟鸟飞机\n每架5个点" }, - { "Sting Op", "不可进行" }, - { "Benson", "摩托车\n每辆车1个点" }, - { "Bag Drop", "多人任务" }, - { "Race", "多人任务" }, - { "Club Run", "多人任务" }, - }, - BIKER_DISABLE_SELL_BORDER_PATROL_0 = 262145 + 18737, -- _9 = 18746 +local _MPGlobalsAmbience = 2738934 +-- MPGlobalsAmbienceStruct +MPGlobalsAmbience = { + -- Launch Vehicle Drop + bLaunchVehicleDropTruck = _MPGlobalsAmbience + 945, + bLaunchVehicleDropAvenger = _MPGlobalsAmbience + 953, + bLaunchVehicleDropHackerTruck = _MPGlobalsAmbience + 958, + bLaunchVehicleDropSubmarine = _MPGlobalsAmbience + 975, + bLaunchVehicleDropSubmarineDinghy = _MPGlobalsAmbience + 987, + bLaunchVehicleDropAcidLab = _MPGlobalsAmbience + 959, + bLaunchVehicleDropSupportBike = _MPGlobalsAmbience + 1009, + + -- Lester Disable Cops + iLesterDisableCopsBitset = _MPGlobalsAmbience + 4676, + iLesterDisableCopsProg = _MPGlobalsAmbience + 4677, + timeCopsDisabled = _MPGlobalsAmbience + 4679, + + -- Ballistics Armor Drop + bLaunchBallisticsDrop = _MPGlobalsAmbience + 916, + bEquipBallisticsDrop = _MPGlobalsAmbience + 917, + bRemoveBallisticsDrop = _MPGlobalsAmbience + 918, + + -- RC Vehicle + bLaunchRCBandito = _MPGlobalsAmbience + 6956, + bLaunchRCTank = _MPGlobalsAmbience + 6957, } -function Globals.Biker.ClearMissionHistory() - local resupply_history_list = 6 -- 1185530883 - local resupply_history_base = 1886967 + 1 + players.user() * 609 + 10 + 196 + 1 - -- freemode.c if (Global_1886967[iVar0 /*609*/].f_10.f_196[iVar1] == iParam0), Search 1185530883 - - local i = 0 - while i < resupply_history_list do - GLOBAL_SET_INT(resupply_history_base + i, -1) - i = i + 1 - end - local sell_history_list = 6 -- 731581918 - local sell_history_base = 2738587 + 5234 + 359 + 1 - -- gb_biker_contraband_sell.c if (Global_2738587.f_5234.f_359[iVar0] == iParam0), Search 731581918 +local _g_FMMC_STRUCT = 4718592 +-- FMMC_GLOBAL_STRUCT +g_FMMC_STRUCT = { + iFixedCamera = _g_FMMC_STRUCT + 155346, - i = 0 - while i < sell_history_list do -- 6 - GLOBAL_SET_INT(sell_history_base + i, -1) - i = i + 1 - end -end + iRootContentIDHash = _g_FMMC_STRUCT + 127178, + tl63MissionName = _g_FMMC_STRUCT + 127185, -Globals.VehicleCargo = {} - -function Globals.VehicleCargo.NoWanted(toggle) - local offsets = { - 19533, -- IMPEXP_STEAL_HARD_WANTED_CAP - 19537, -- IMPEXP_STEAL_MEDIUM_WANTED_CAP - 19543, -- IMPEXP_STEAL_EASY_WANTED_CAP - 19562, -- IMPEXP_POLICE_CHASE_WANTED_CAP - 16872, -- EXEC_BUY_LOSE_THE_COPS_WANTED_CAP - } - local defaults = { - 3, - 2, - 1, - 3, - 1, - } - - if toggle then - for key, offset in pairs(offsets) do - TUNABLE_SET_INT(offset, 0) - end - else - for key, offset in pairs(offsets) do - TUNABLE_SET_INT(offset, defaults[key]) - end - end -end - -function Globals.VehicleCargo.NoDamageReduction(toggle) - local offsets = { - 19868, -- IMPEXP_STEAL_REDUCTION_HARD - 19869, -- IMPEXP_STEAL_REDUCTION_MEDIUM - 19870, -- IMPEXP_STEAL_REDUCTION_EASY - 19613, -- IMPEXP_SELL_REDUCTION_BUYER1_HARD - 19614, -- IMPEXP_SELL_REDUCTION_BUYER1_MEDIUM - 19615, -- IMPEXP_SELL_REDUCTION_BUYER1_EASY - 19616, -- IMPEXP_SELL_REDUCTION_BUYER2_HARD - 19617, -- IMPEXP_SELL_REDUCTION_BUYER2_MEDIUM - 19618, -- IMPEXP_SELL_REDUCTION_BUYER2_EASY - 19619, -- IMPEXP_SELL_REDUCTION_BUYER3_HARD - 19620, -- IMPEXP_SELL_REDUCTION_BUYER3_MEDIUM - 19621, -- IMPEXP_SELL_REDUCTION_BUYER3_EASY - } - local defaults = { - 49, - 30, - 18, - 28, - 18, - 11, - 45, - 28, - 17, - 62, - 39, - 23, - } - - if toggle then - for key, offset in pairs(offsets) do - TUNABLE_SET_INT(offset, 0) - end - else - for key, offset in pairs(offsets) do - TUNABLE_SET_INT(offset, defaults[key]) - end - end -end - -Globals.Payphone = { - Hit_Offsets = { - 32072, -- PAYPHONE_TAXI_WEIGHTING - 32073, -- PAYPHONE_GOLF_WEIGHTING - 32074, -- PAYPHONE_MOTEL_WEIGHTING - 32075, -- -2129051069 - 32077, -- PAYPHONE_CONSTRUCTION_WEIGHTING - 32078, -- PAYPHONE_JOYRIDER_WEIGHTING - }, - Hit_Names = { - "科技企业家(出租车)", - "法官(高尔夫)", - "共同创办人(汽车旅馆)", - "死宅散户", - "工地总裁", - "流行歌星", - - -- "Unknown", - -- "Approach", - }, + iTeamNames = _g_FMMC_STRUCT + 107178 + 1, -- +[0~3] + tlCustomName = _g_FMMC_STRUCT + 107183 + 1, -- +[0~3]*4 } -Globals.RemoveCooldown = {} - -function Globals.RemoveCooldown.SpecialCargo(toggle) - local offsets = { - 15756, -- EXEC_BUY_COOLDOWN - 15757, -- EXEC_SELL_COOLDOWN - } - local defaults = { - 300000, - 1800000, - } - - if toggle then - for key, offset in pairs(offsets) do - TUNABLE_SET_INT(offset, 0) - end - else - for key, offset in pairs(offsets) do - TUNABLE_SET_INT(offset, defaults[key]) - end - end -end - -function Globals.RemoveCooldown.VehicleCargo(toggle) - local offsets = { - 19524, -- IMPEXP_STEAL_COOLDOWN - 19892, -- 1001423248 - 19893, -- 240134765 - 19894, -- 1915379148 - 19895, -- -824005590 - } - local defaults = { - 180000, - 1200000, - 1680000, - 2340000, - 2880000, - } - - if toggle then - for key, offset in pairs(offsets) do - TUNABLE_SET_INT(offset, 0) - end - else - for key, offset in pairs(offsets) do - TUNABLE_SET_INT(offset, defaults[key]) - end - end -end - -function Globals.RemoveCooldown.AirFreightCargo(toggle) - local offsets = { - 22961, -- SMUG_STEAL_EASY_COOLDOWN_TIMER - 22962, -- SMUG_STEAL_MED_COOLDOWN_TIMER - 22963, -- SMUG_STEAL_HARD_COOLDOWN_TIMER - 22964, -- 1722502526 - 22965, -- -1091356151 - } - local defaults = { - 120000, - 180000, - 240000, - 60000, - 2000, - } - - if toggle then - for key, offset in pairs(offsets) do - TUNABLE_SET_INT(offset, 0) - end - else - for key, offset in pairs(offsets) do - TUNABLE_SET_INT(offset, defaults[key]) - end - end -end - -function Globals.RemoveCooldown.PayphoneHitAndContract(toggle) - local offsets = { - 32024, -- FIXER_SECURITY_CONTRACT_COOLDOWN_TIME - 32089, -- -2036534141 - 32105, -- 1872071131 - } - local defaults = { - 300000, - 500, - 1200000, - } - - if toggle then - for key, offset in pairs(offsets) do - TUNABLE_SET_INT(offset, 0) - end - else - for key, offset in pairs(offsets) do - TUNABLE_SET_INT(offset, defaults[key]) - end - end -end - -function Globals.RemoveCooldown.CeoAbility(toggle) - local offsets = { - 13034, -- GB_DROP_AMMO_COOLDOWN - 13035, -- GB_DROP_ARMOR_COOLDOWN - 13036, -- GB_DROP_BULLSHARK_COOLDOWN - 13037, -- GB_GHOST_ORG_COOLDOWN - 13038, -- GB_BRIBE_AUTHORITIES_COOLDOWN - } - local defaults = { - 30000, 30000, 30000, 600000, 600000, - } - - if toggle then - for key, offset in pairs(offsets) do - TUNABLE_SET_INT(offset, 0) - end - else - for key, offset in pairs(offsets) do - TUNABLE_SET_INT(offset, defaults[key]) - end - end -end - -function Globals.RemoveCooldown.OtherVehicle(toggle) - local offsets = { - 11911, -- PEGASUS_CRIM_COOL_DOWN - 12151, -- LESTER_VEHICLE_CRIM_COOL_DOWN - 22076, -- ACID_LAB_REQUEST_COOLDOWN - 28685, -- 247954694 - 31190, -- IH_MOON_POOL_COOLDOWN - 33588, -- TONY_LIMO_COOLDOWN_TIME - 33589, -- BUNKER_VEHICLE_COOLDOWN_TIME - } - local defaults = { - 300000, - 300000, - 300000, - 120000, - 300000, - 120000, - 120000, - } - - if toggle then - for key, offset in pairs(offsets) do - TUNABLE_SET_INT(offset, 0) - end - else - for key, offset in pairs(offsets) do - TUNABLE_SET_INT(offset, defaults[key]) - end - end -end -Globals.Biker.Contracts = {} - -function Globals.Biker.Contracts.MinPlayer(toggle) - local offsets = { - 18860, -- BIKER_GUNS_FOR_HIRE_MIN_PLAYERS - 18880, -- BIKER_WEAPON_OF_CHOICE_MIN_PLAYERS - 18898, -- BIKER_NINE_TENTHS_MIN_PLAYERS - 18928, -- BIKER_FRAGILE_GOODS_MIN_PLAYERS - 18941, -- BIKER_OUTRIDER_MIN_PLAYERS - } - - if toggle then - for _, offset in pairs(offsets) do - TUNABLE_SET_INT(offset, 1) - end - else - for _, offset in pairs(offsets) do - TUNABLE_SET_INT(offset, 2) - end - end -end -function Globals.DisableBusinessRaid(toggle) - local offsets = { - 15879, -- EXEC_DISABLE_DEFEND_MISSIONS - 15880, -- EXEC_DISABLE_DEFEND_FLEEING - 15881, -- EXEC_DISABLE_DEFEND_UNDER_ATTACK - 18806, -- BIKER_DISABLE_DEFEND_POLICE_RAID - 18810, -- BIKER_DISABLE_DEFEND_SHOOTOUT - 18812, -- BIKER_DISABLE_DEFEND_GETAWAY - 18814, -- BIKER_DISABLE_DEFEND_CRASH_DEAL - 18816, -- -133464516 - 18818, -- BIKER_DISABLE_DEFEND_SNITCH - 21916, -- GR_DEFEND_VALKYRIE_DISABLE_VALKYRIE - 21921, -- GR_DEFEND_DISARM_BOMBS_DISABLE_DISARM_BOMBS - } - - if toggle then - for _, offset in pairs(offsets) do - TUNABLE_SET_INT(offset, 1) - end - else - for _, offset in pairs(offsets) do - TUNABLE_SET_INT(offset, 0) - end - end -end -Globals.Request = { - VehicleProperty = { - { global = 2738587 + 930, command = "moc", name = "机动作战中心" }, - { global = 2738587 + 938, command = "avenger", name = "复仇者" }, - { global = 2738587 + 943, command = "terrorbyte", name = "恐霸" }, - { global = 2738587 + 960, command = "kosatka", name = "虎鲸" }, - { global = 2738587 + 972, command = "dinghy", name = "长崎" }, - { global = 2738587 + 944, command = "acidlab", name = "致幻剂实验室" }, - { global = 2738587 + 994, command = "bikeacidlab", name = "致幻剂送货摩托车" }, - }, -} ----------------------------- +-------------------------------- -- Locals ----------------------------- +-------------------------------- Locals = { - fm_mission_controller = { - team_lives = 26154 + 1325 + 1, - }, - - fm_mission_controller_2020 = { - team_lives = 55004 + 868 + 1, - }, - -- Diamond Casino Heist Prep gb_casino_heist = { - phone_hack_progress = 2330, - camera_hack_position = 4280 + 1654, - target_package_number = 4280 + 1724, + phone_hack_progress = 2332, + camera_hack_position = 4413 + 1522, + target_package_number = 4413 + 1592, }, -- Security Contract fm_content_security_contract = { - mission_time = 254 + 1550, - mission_type = 7095 + 1339 + 1, - realize_assets_destination = 117 + 34, - }, - - -- Vehicle Cargo Import & Export - gb_vehicle_export = { - vehicle_net_id = 834 + 29 + 1, - mission_start_time = 834 + 457, + mission_time = 256 + 1550, + mission_type = 7136 + 1339 + 1, + realize_assets_destination = 119 + 34, }, -- Cayo Perico Heist Prep fm_content_island_heist = { - mission_start_time = 13262 + 1460, + mission_start_time = 13311 + 1460, }, -- Air Freight gb_smuggler = { - mission_start_time = 1932 + 768, + mission_start_time = 1934 + 768, }, fm_content_smuggler_resupply = { - mission_start_time = 6006 + 1319, + mission_start_time = 6045 + 1319, + }, + + + ---- Mission Controller + + ["fm_mission_controller"] = { + sFMMC_SBD = { + -- MC_serverBD_1.sFMMC_SBD.niVehicle[index] + niVehicle = 22960 + 834 + 81 + 1 + }, + }, + ["fm_mission_controller_2020"] = { + sFMMC_SBD = { + -- MC_serverBD_1.sFMMC_SBD.niVehicle[index] + niVehicle = 53558 + 777 + 81 + 1 + }, }, } -function Locals.SkipHacking() - local script = "fm_mission_controller_2020" - if IS_SCRIPT_RUNNING(script) then - -- Skip The Hacking Process - if LOCAL_GET_INT(script, 24333) == 4 then - LOCAL_SET_INT(script, 24333, 5) - end - -- Skip Cutting The Sewer Grill - if LOCAL_GET_INT(script, 29118) == 4 then - LOCAL_SET_INT(script, 29118, 6) - end - -- Skip Cutting The Glass - LOCAL_SET_FLOAT(script, 30357 + 3, 100) - - LOCAL_SET_INT(script, 978 + 135, 3) -- For ULP Missions - end - script = "fm_mission_controller" - if IS_SCRIPT_RUNNING(script) then - -- For Fingerprint - if LOCAL_GET_INT(script, 52985) ~= 1 then - LOCAL_SET_INT(script, 52985, 5) - end - -- For Keypad - if LOCAL_GET_INT(script, 54047) ~= 1 then - LOCAL_SET_INT(script, 54047, 5) - end - -- Skip Drilling The Vault Door - local Value = LOCAL_GET_INT(script, 10107 + 37) - LOCAL_SET_INT(script, 10107 + 7, Value) - - -- Doomsday Heist - LOCAL_SET_INT(script, 1512, 3) -- For ACT I, Setup: Server Farm (Lester) - LOCAL_SET_INT(script, 1543, 2) - LOCAL_SET_INT(script, 1269 + 135, 3) -- For ACT III - - -- Fleeca Heist - LOCAL_SET_INT(script, 11760 + 24, 7) -- Skip The Hacking Process - LOCAL_SET_FLOAT(script, 10067 + 11, 100) -- Skip Drilling - - -- Pacific Standard Heist - LOCAL_SET_BIT(script, 9773, 9) -- Skip The Hacking Process - end - script = "fm_content_island_heist" - if IS_SCRIPT_RUNNING(script) then - LOCAL_SET_BIT(script, 10040, 9) - end -end -function Locals.VoltageHack() - local script = "fm_mission_controller_2020" - if IS_SCRIPT_RUNNING(script) then - local current_value = LOCAL_GET_INT(script, 1722) - LOCAL_SET_INT(script, 1721, current_value) - end - script = "fm_content_island_heist" - if IS_SCRIPT_RUNNING(script) then - local current_value = LOCAL_GET_INT(script, 765) - LOCAL_SET_INT(script, 764, current_value) - end -end +-------------------------------- +-- Functions +-------------------------------- -function Locals.StashHouseCode() - local script = "fm_content_stash_house" - if not IS_SCRIPT_RUNNING(script) then - return +--- 获取团队名称 +--- @param team integer +--- @return string +function GET_TEAM_NAME(team) + if team < 0 then + return util.get_label_text("HEIST_RL_NONE") -- UNASSIGNED end - for i = 0, 2 do - LOCAL_SET_FLOAT(script, 117 + 22 + 1 + i * 2, 0) - LOCAL_SET_INT(script, 117 + 22 + 1 + i * 2 + 1, 0) - end + local labelName = "COR_TEAM_" -- or "FMMC_TEAM_" - if TASK.GET_IS_TASK_ACTIVE(players.user_ped(), 135) then - PAD.SET_CONTROL_VALUE_NEXT_FRAME(0, 237, 1) + local teamName = GLOBAL_GET_INT(g_FMMC_STRUCT.iTeamNames + team) + if teamName == 38 then -- ciTEAM_NAME_MAX + local customName = GLOBAL_GET_STRING(g_FMMC_STRUCT.tlCustomName + team * 4) + return util.get_label_text(customName) end + + return util.get_label_text(labelName .. teamName) end diff --git a/lib/natives-3095a/g.lua b/lib/natives-3095a/g.lua deleted file mode 100644 index 6f2632d..0000000 Binary files a/lib/natives-3095a/g.lua and /dev/null differ diff --git a/lib/natives-3095a/g.source.lua b/lib/natives-3095a/g.source.lua deleted file mode 100644 index e11675e..0000000 --- a/lib/natives-3095a/g.source.lua +++ /dev/null @@ -1,17078 +0,0 @@ --- To require this file, use util.require_natives("3095a.g") --- Note that any given version of the natives library may not be compatible with any given script. - --- SYSTEM - -- Pauses execution of the current script, please note this behavior is only seen when called from one of the game script files(ysc). In order to wait an asi script use "static void WAIT(DWORD time);" found in main.h - WAIT=--[[void]] function(--[[int]] ms)return native_invoker.unified_void(ms, 0x4EDE34FBADD967A6, "i")end - -- Examples: - -- g_384A = SYSTEM::START_NEW_SCRIPT("cellphone_flashhand", 1424); - -- l_10D = SYSTEM::START_NEW_SCRIPT("taxiService", 1828); - -- SYSTEM::START_NEW_SCRIPT("AM_MP_YACHT", 5000); - -- SYSTEM::START_NEW_SCRIPT("emergencycall", 512); - -- SYSTEM::START_NEW_SCRIPT("emergencycall", 512); - -- SYSTEM::START_NEW_SCRIPT("FM_maintain_cloud_header_data", 1424); - -- SYSTEM::START_NEW_SCRIPT("FM_Mission_Controller", 31000); - -- SYSTEM::START_NEW_SCRIPT("tennis_family", 3650); - -- SYSTEM::START_NEW_SCRIPT("Celebrations", 3650); - -- - -- Decompiled examples of usage when starting a script: - -- - -- SCRIPT::REQUEST_SCRIPT(a_0); - -- if (SCRIPT::HAS_SCRIPT_LOADED(a_0)) { - -- SYSTEM::START_NEW_SCRIPT(a_0, v_3); - -- SCRIPT::SET_SCRIPT_AS_NO_LONGER_NEEDED(a_0); - -- return 1; - -- } - -- - -- or: - -- - -- v_2 = "MrsPhilips2"; - -- SCRIPT::REQUEST_SCRIPT(v_2); - -- while (!SCRIPT::HAS_SCRIPT_LOADED(v_2)) { - -- SCRIPT::REQUEST_SCRIPT(v_2); - -- SYSTEM::WAIT(0); - -- } - -- sub_8792(36); - -- SYSTEM::START_NEW_SCRIPT(v_2, 17000); - -- SCRIPT::SET_SCRIPT_AS_NO_LONGER_NEEDED(v_2); - START_NEW_SCRIPT=--[[int]] function(--[[string]] scriptName,--[[int]] stackSize)return native_invoker.unified_int(scriptName, stackSize, 0xE81651AD79516E48, "si")end - -- return : script thread id, 0 if failed - -- Pass pointer to struct of args in p1, size of struct goes into p2 - START_NEW_SCRIPT_WITH_ARGS=--[[int]] function(--[[string]] scriptName,--[[Any* (pointer)]] args,--[[int]] argCount,--[[int]] stackSize)return native_invoker.unified_int(scriptName, args, argCount, stackSize, 0xB8BA7F44DF1575E1, "spii")end - START_NEW_SCRIPT_WITH_NAME_HASH=--[[int]] function(--[[Hash (int)]] scriptHash,--[[int]] stackSize)return native_invoker.unified_int(scriptHash, stackSize, 0xEB1C67C3A5333A92, "ii")end - START_NEW_SCRIPT_WITH_NAME_HASH_AND_ARGS=--[[int]] function(--[[Hash (int)]] scriptHash,--[[Any* (pointer)]] args,--[[int]] argCount,--[[int]] stackSize)return native_invoker.unified_int(scriptHash, args, argCount, stackSize, 0xC4BB298BD441BE78, "ipii")end - -- Counts up. Every 1000 is 1 real-time second. Use SETTIMERA(int value) to set the timer (e.g.: SETTIMERA(0)). - TIMERA=--[[int]] function()return native_invoker.unified_int(0x83666F9FB8FEBD4B, "")end - TIMERB=--[[int]] function()return native_invoker.unified_int(0xC9D9444186B5A374, "")end - SETTIMERA=--[[void]] function(--[[int]] value)return native_invoker.unified_void(value, 0xC1B1E9A034A63A62, "i")end - SETTIMERB=--[[void]] function(--[[int]] value)return native_invoker.unified_void(value, 0x5AE11BC36633DE4E, "i")end - -- Gets the current frame time. - TIMESTEP=--[[float]] function()return native_invoker.unified_float(0x0000000050597EE2, "")end - SIN=--[[float]] function(--[[float]] value)return native_invoker.unified_float(value, 0x0BADBFA3B172435F, "f")end - COS=--[[float]] function(--[[float]] value)return native_invoker.unified_float(value, 0xD0FFB162F40A139C, "f")end - SQRT=--[[float]] function(--[[float]] value)return native_invoker.unified_float(value, 0x71D93B57D07F9804, "f")end - POW=--[[float]] function(--[[float]] base,--[[float]] exponent)return native_invoker.unified_float(base, exponent, 0xE3621CC40F31FE2E, "ff")end - LOG10=--[[float]] function(--[[float]] value)return native_invoker.unified_float(value, 0xE816E655DE37FE20, "f")end - -- Calculates the magnitude of a vector. - VMAG=--[[float]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_float(x, y, z, 0x652D2EEEF1D3E62C, "fff")end - -- Calculates the magnitude of a vector but does not perform Sqrt operations. (Its way faster) - VMAG2=--[[float]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_float(x, y, z, 0xA8CEACB4F35AE058, "fff")end - -- Calculates distance between vectors. - VDIST=--[[float]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2)return native_invoker.unified_float(x1, y1, z1, x2, y2, z2, 0x2A488C176D52CCA5, "ffffff")end - -- Calculates distance between vectors but does not perform Sqrt operations. (Its way faster) - VDIST2=--[[float]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2)return native_invoker.unified_float(x1, y1, z1, x2, y2, z2, 0xB7A628320EFF8E47, "ffffff")end - SHIFT_LEFT=--[[int]] function(--[[int]] value,--[[int]] bitShift)return native_invoker.unified_int(value, bitShift, 0xEDD95A39E5544DE8, "ii")end - SHIFT_RIGHT=--[[int]] function(--[[int]] value,--[[int]] bitShift)return native_invoker.unified_int(value, bitShift, 0x97EF1E5BCE9DC075, "ii")end - FLOOR=--[[int]] function(--[[float]] value)return native_invoker.unified_int(value, 0xF34EE736CF047844, "f")end - -- I'm guessing this rounds a float value up to the next whole number, and FLOOR rounds it down - CEIL=--[[int]] function(--[[float]] value)return native_invoker.unified_int(value, 0x11E019C8F43ACC8A, "f")end - ROUND=--[[int]] function(--[[float]] value)return native_invoker.unified_int(value, 0xF2DB717A73826179, "f")end - TO_FLOAT=--[[float]] function(--[[int]] value)return native_invoker.unified_float(value, 0xBBDA792448DB5A89, "i")end - -- THREAD_PRIO_HIGHEST = 0 - -- THREAD_PRIO_NORMAL = 1 - -- THREAD_PRIO_LOWEST = 2 - -- THREAD_PRIO_MANUAL_UPDATE = 100 - SET_THIS_THREAD_PRIORITY=--[[void]] function(--[[int]] priority)return native_invoker.unified_void(priority, 0x42B65DEEF2EDF2A1, "i")end --- APP - APP_DATA_VALID=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x846AA8E7D55EE5B6, "")end - APP_GET_INT=--[[int]] function(--[[string]] property)return native_invoker.unified_int(property, 0xD3A58A12C77D9D4B, "s")end - APP_GET_FLOAT=--[[float]] function(--[[string]] property)return native_invoker.unified_float(property, 0x1514FB24C02C2322, "s")end - APP_GET_STRING=--[[string]] function(--[[string]] property)return native_invoker.unified_string(property, 0x749B023950D2311C, "s")end - APP_SET_INT=--[[void]] function(--[[string]] property,--[[int]] value)return native_invoker.unified_void(property, value, 0x607E8E3D3E4F9611, "si")end - APP_SET_FLOAT=--[[void]] function(--[[string]] property,--[[float]] value)return native_invoker.unified_void(property, value, 0x25D7687C68E0DAA4, "sf")end - APP_SET_STRING=--[[void]] function(--[[string]] property,--[[string]] value)return native_invoker.unified_void(property, value, 0x3FF2FCEC4B7721B4, "ss")end - -- Called in the gamescripts like: - -- APP::APP_SET_APP("car"); - -- APP::APP_SET_APP("dog"); - APP_SET_APP=--[[void]] function(--[[string]] appName)return native_invoker.unified_void(appName, 0xCFD0406ADAF90D2B, "s")end - APP_SET_BLOCK=--[[void]] function(--[[string]] blockName)return native_invoker.unified_void(blockName, 0x262AB456A3D21F93, "s")end - APP_CLEAR_BLOCK=--[[void]] function()return native_invoker.unified_void(0x5FE1DF3342DB7DBA, "")end - APP_CLOSE_APP=--[[void]] function()return native_invoker.unified_void(0xE41C65E07A5F05FC, "")end - APP_CLOSE_BLOCK=--[[void]] function()return native_invoker.unified_void(0xE8E3FCF72EAC0EF8, "")end - APP_HAS_LINKED_SOCIAL_CLUB_ACCOUNT=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x71EEE69745088DA0, "")end - APP_HAS_SYNCED_DATA=--[[BOOL (bool)]] function(--[[string]] appName)return native_invoker.unified_bool(appName, 0xCA52279A7271517F, "s")end - APP_SAVE_DATA=--[[void]] function()return native_invoker.unified_void(0x95C5D356CDA6E85F, "")end - APP_GET_DELETED_FILE_STATUS=--[[int]] function()return native_invoker.unified_int(0xC9853A2BE3DED1A6, "")end - APP_DELETE_APP_DATA=--[[BOOL (bool)]] function(--[[string]] appName)return native_invoker.unified_bool(appName, 0x44151AEA95C8A003, "s")end --- AUDIO - -- All found occurrences in b617d, sorted alphabetically and identical lines removed: https://pastebin.com/RFb4GTny - -- - -- AUDIO::PLAY_PED_RINGTONE("Remote_Ring", PLAYER::PLAYER_PED_ID(), 1); - -- AUDIO::PLAY_PED_RINGTONE("Dial_and_Remote_Ring", PLAYER::PLAYER_PED_ID(), 1); - -- - PLAY_PED_RINGTONE=--[[void]] function(--[[string]] ringtoneName,--[[Ped (int)]] ped,--[[BOOL (bool)]] p2)return native_invoker.unified_void(ringtoneName, ped, p2, 0xF9E56683CA8E11A5, "sib")end - IS_PED_RINGTONE_PLAYING=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x1E8E5E20937E3137, "i")end - STOP_PED_RINGTONE=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x6C5AE23EFA885092, "i")end - IS_MOBILE_PHONE_CALL_ONGOING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x7497D2CE2C30D24C, "")end - IS_MOBILE_INTERFERENCE_ACTIVE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC8B1B2425604CDD0, "")end - GET_CURRENT_TV_SHOW_PLAY_TIME=--[[int]] function()return native_invoker.unified_int(0xDD3AA743AB7D4D75, "")end - CREATE_NEW_SCRIPTED_CONVERSATION=--[[void]] function()return native_invoker.unified_void(0xD2C91A0B572AAE56, "")end - -- NOTE: ones that are -1, 0 - 35 are determined by a function where it gets a TextLabel from a global then runs, - -- GET_CHARACTER_FROM_AUDIO_CONVERSATION_FILENAME and depending on what the result is it goes in check order of 0 - 9 then A - Z then z (lowercase). So it will then return 0 - 35 or -1 if it's 'z'. The func to handle that ^^ is func_67 in dialog_handler.c atleast in TU27 Xbox360 scripts. - -- - -- p0 is -1, 0 - 35 - -- p1 is a char or string (whatever you wanna call it) - -- p2 is Global 10597 + i * 6. 'i' is a while(i < 70) loop - -- p3 is again -1, 0 - 35 - -- p4 is again -1, 0 - 35 - -- p5 is either 0 or 1 (bool ?) - -- p6 is either 0 or 1 (The func to determine this is bool) - -- p7 is either 0 or 1 (The func to determine this is bool) - -- p8 is either 0 or 1 (The func to determine this is bool) - -- p9 is 0 - 3 (Determined by func_60 in dialogue_handler.c) - -- p10 is either 0 or 1 (The func to determine this is bool) - -- p11 is either 0 or 1 (The func to determine this is bool) - -- p12 is unknown as in TU27 X360 scripts it only goes to p11. - ADD_LINE_TO_CONVERSATION=--[[void]] function(--[[int]] index,--[[string]] p1,--[[string]] p2,--[[int]] p3,--[[int]] p4,--[[BOOL (bool)]] p5,--[[BOOL (bool)]] p6,--[[BOOL (bool)]] p7,--[[BOOL (bool)]] p8,--[[int]] p9,--[[BOOL (bool)]] p10,--[[BOOL (bool)]] p11,--[[BOOL (bool)]] p12)return native_invoker.unified_void(index, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, 0xC5EF963405593646, "issiibbbbibbb")end - -- 4 calls in the b617d scripts. The only one with p0 and p2 in clear text: - -- - -- AUDIO::ADD_PED_TO_CONVERSATION(5, l_AF, "DINAPOLI"); - -- - -- ================================================= - -- One of the 2 calls in dialogue_handler.c p0 is in a while-loop, and so is determined to also possibly be 0 - 15. - ADD_PED_TO_CONVERSATION=--[[void]] function(--[[int]] index,--[[Ped (int)]] ped,--[[string]] p2)return native_invoker.unified_void(index, ped, p2, 0x95D9F4BC443956E7, "iis")end - SET_POSITION_FOR_NULL_CONV_PED=--[[void]] function(--[[Any (int)]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x33E3C6C6F2F0B506, "ifff")end - SET_ENTITY_FOR_NULL_CONV_PED=--[[void]] function(--[[int]] p0,--[[Entity (int)]] entity)return native_invoker.unified_void(p0, entity, 0x892B6AB8F33606F5, "ii")end - -- This native controls where the game plays audio from. By default the microphone is positioned on the player. - -- When p0 is true the game will play audio from the 3 positions inputted. - -- It is recommended to set all 3 positions to the same value as mixing different positions doesn't seem to work well. - -- The scripts mostly use it with only one position such as in fbi3.c: - -- AUDIO::SET_MICROPHONE_POSITION(true, ENTITY::GET_ENTITY_COORDS(iLocal_3091, true), ENTITY::GET_ENTITY_COORDS(iLocal_3091, true), ENTITY::GET_ENTITY_COORDS(iLocal_3091, true)); - SET_MICROPHONE_POSITION=--[[void]] function(--[[BOOL (bool)]] toggle,--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] x3,--[[float]] y3,--[[float]] z3)return native_invoker.unified_void(toggle, x1, y1, z1, x2, y2, z2, x3, y3, z3, 0xB6AE90EDDE95C762, "bfffffffff")end - SET_CONVERSATION_AUDIO_CONTROLLED_BY_ANIM=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x0B568201DD99F0EB, "b")end - SET_CONVERSATION_AUDIO_PLACEHOLDER=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x61631F5DF50D1C34, "b")end - START_SCRIPT_PHONE_CONVERSATION=--[[void]] function(--[[BOOL (bool)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0x252E5F915EABB675, "bb")end - PRELOAD_SCRIPT_PHONE_CONVERSATION=--[[void]] function(--[[BOOL (bool)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0x6004BCB0E226AAEA, "bb")end - START_SCRIPT_CONVERSATION=--[[void]] function(--[[BOOL (bool)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x6B17C62C9635D2DC, "bbbb")end - PRELOAD_SCRIPT_CONVERSATION=--[[void]] function(--[[BOOL (bool)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x3B3CAD6166916D87, "bbbb")end - START_PRELOADED_CONVERSATION=--[[void]] function()return native_invoker.unified_void(0x23641AFE870AF385, "")end - GET_IS_PRELOADED_CONVERSATION_READY=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xE73364DB90778FFA, "")end - IS_SCRIPTED_CONVERSATION_ONGOING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x16754C556D2EDE3D, "")end - IS_SCRIPTED_CONVERSATION_LOADED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xDF0D54BE7A776737, "")end - GET_CURRENT_SCRIPTED_CONVERSATION_LINE=--[[int]] function()return native_invoker.unified_int(0x480357EE890C295A, "")end - PAUSE_SCRIPTED_CONVERSATION=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x8530AD776CD72B12, "b")end - RESTART_SCRIPTED_CONVERSATION=--[[void]] function()return native_invoker.unified_void(0x9AEB285D1818C9AC, "")end - STOP_SCRIPTED_CONVERSATION=--[[int]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_int(p0, 0xD79DEEFB53455EBA, "b")end - SKIP_TO_NEXT_SCRIPTED_CONVERSATION_LINE=--[[void]] function()return native_invoker.unified_void(0x9663FE6B7A61EB00, "")end - -- Example from carsteal3.c: AUDIO::INTERRUPT_CONVERSATION(PLAYER::PLAYER_PED_ID(), "CST4_CFAA", "FRANKLIN"); - -- Voicelines can be found in GTAV\x64\audio\sfx in files starting with "SS_" which seems to mean scripted speech. - INTERRUPT_CONVERSATION=--[[void]] function(--[[Ped (int)]] ped,--[[string]] voiceline,--[[string]] speaker)return native_invoker.unified_void(ped, voiceline, speaker, 0xA018A12E5C5C2FA6, "iss")end - -- One call found in the b617d scripts: - -- - -- AUDIO::INTERRUPT_CONVERSATION_AND_PAUSE(NETWORK::NET_TO_PED(l_3989._f26F[0/*1*/]), "CONV_INTERRUPT_QUIT_IT", "LESTER"); - INTERRUPT_CONVERSATION_AND_PAUSE=--[[void]] function(--[[Ped (int)]] ped,--[[string]] p1,--[[string]] speaker)return native_invoker.unified_void(ped, p1, speaker, 0x8A694D7A68F8DC38, "iss")end - GET_VARIATION_CHOSEN_FOR_SCRIPTED_LINE=--[[int]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_int(p0, 0xAA19F5572C38B564, "p")end - SET_NO_DUCKING_FOR_CONVERSATION=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xB542DE8C3D1CB210, "b")end - -- This native does absolutely nothing, just a nullsub - REGISTER_SCRIPT_WITH_AUDIO=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0xC6ED9D5092438D91, "i")end - -- This native does absolutely nothing, just a nullsub - UNREGISTER_SCRIPT_WITH_AUDIO=--[[void]] function()return native_invoker.unified_void(0xA8638BE228D4751A, "")end - -- All occurrences and usages found in b617d: https://pastebin.com/NzZZ2Tmm - -- Full list of mission audio bank names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/missionAudioBankNames.json - -- p2 is always -1 - REQUEST_MISSION_AUDIO_BANK=--[[BOOL (bool)]] function(--[[string]] audioBank,--[[BOOL (bool)]] p1,--[[Any (int)]] p2)return native_invoker.unified_bool(audioBank, p1, p2, 0x7345BDD95E62E0F2, "sbi")end - -- All occurrences and usages found in b617d, sorted alphabetically and identical lines removed: https://pastebin.com/XZ1tmGEz - -- Full list of ambient audio bank names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ambientAudioBankNames.json - -- p2 is always -1 - REQUEST_AMBIENT_AUDIO_BANK=--[[BOOL (bool)]] function(--[[string]] audioBank,--[[BOOL (bool)]] p1,--[[Any (int)]] p2)return native_invoker.unified_bool(audioBank, p1, p2, 0xFE02FFBED8CA9D99, "sbi")end - -- All occurrences and usages found in b617d, sorted alphabetically and identical lines removed: https://pastebin.com/AkmDAVn6 - -- Full list of script audio bank names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scriptAudioBankNames.json - -- p2 is always -1 - REQUEST_SCRIPT_AUDIO_BANK=--[[BOOL (bool)]] function(--[[string]] audioBank,--[[BOOL (bool)]] p1,--[[Any (int)]] p2)return native_invoker.unified_bool(audioBank, p1, p2, 0x2F844A8B08D76685, "sbi")end - -- p2 is always -1 - HINT_MISSION_AUDIO_BANK=--[[BOOL (bool)]] function(--[[string]] audioBank,--[[BOOL (bool)]] p1,--[[Any (int)]] p2)return native_invoker.unified_bool(audioBank, p1, p2, 0x40763EA7B9B783E7, "sbi")end - -- p2 is always -1 - HINT_AMBIENT_AUDIO_BANK=--[[BOOL (bool)]] function(--[[string]] audioBank,--[[BOOL (bool)]] p1,--[[Any (int)]] p2)return native_invoker.unified_bool(audioBank, p1, p2, 0x8F8C0E370AE62F5C, "sbi")end - -- p2 is always -1 - HINT_SCRIPT_AUDIO_BANK=--[[BOOL (bool)]] function(--[[string]] audioBank,--[[BOOL (bool)]] p1,--[[Any (int)]] p2)return native_invoker.unified_bool(audioBank, p1, p2, 0xFB380A29641EC31A, "sbi")end - RELEASE_MISSION_AUDIO_BANK=--[[void]] function()return native_invoker.unified_void(0x0EC92A1BF0857187, "")end - RELEASE_AMBIENT_AUDIO_BANK=--[[void]] function()return native_invoker.unified_void(0x65475A218FFAA93D, "")end - -- Full list of script audio bank names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scriptAudioBankNames.json - RELEASE_NAMED_SCRIPT_AUDIO_BANK=--[[void]] function(--[[string]] audioBank)return native_invoker.unified_void(audioBank, 0x77ED170667F50170, "s")end - RELEASE_SCRIPT_AUDIO_BANK=--[[void]] function()return native_invoker.unified_void(0x7A2D8AD0A9EB9C3F, "")end - UNHINT_AMBIENT_AUDIO_BANK=--[[void]] function()return native_invoker.unified_void(0x19AF7ED9B9D23058, "")end - UNHINT_SCRIPT_AUDIO_BANK=--[[void]] function()return native_invoker.unified_void(0x9AC92EED5E4793AB, "")end - UNHINT_NAMED_SCRIPT_AUDIO_BANK=--[[void]] function(--[[string]] audioBank)return native_invoker.unified_void(audioBank, 0x11579D940949C49E, "s")end - GET_SOUND_ID=--[[int]] function()return native_invoker.unified_int(0x430386FE9BF80B45, "")end - RELEASE_SOUND_ID=--[[void]] function(--[[int]] soundId)return native_invoker.unified_void(soundId, 0x353FC880830B88FA, "i")end - -- All found occurrences in b617d, sorted alphabetically and identical lines removed: https://pastebin.com/A8Ny8AHZ - -- - -- Full list of audio / sound names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/soundNames.json - PLAY_SOUND=--[[void]] function(--[[int]] soundId,--[[string]] audioName,--[[string]] audioRef,--[[BOOL (bool)]] p3,--[[Any (int)]] p4,--[[BOOL (bool)]] p5)return native_invoker.unified_void(soundId, audioName, audioRef, p3, p4, p5, 0x7FF4944CC209192D, "issbib")end - -- List: https://pastebin.com/DCeRiaLJ - -- - -- All occurrences as of Cayo Perico Heist DLC (b2189), sorted alphabetically and identical lines removed: https://git.io/JtLxM - -- - -- Full list of audio / sound names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/soundNames.json - PLAY_SOUND_FRONTEND=--[[void]] function(--[[int]] soundId,--[[string]] audioName,--[[string]] audioRef,--[[BOOL (bool)]] p3)return native_invoker.unified_void(soundId, audioName, audioRef, p3, 0x67C540AA08E4A6F5, "issb")end - -- Only call found in the b617d scripts: - -- - -- AUDIO::PLAY_DEFERRED_SOUND_FRONTEND("BACK", "HUD_FREEMODE_SOUNDSET"); - -- - -- Full list of audio / sound names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/soundNames.json - PLAY_DEFERRED_SOUND_FRONTEND=--[[void]] function(--[[string]] soundName,--[[string]] soundsetName)return native_invoker.unified_void(soundName, soundsetName, 0xCADA5A0D0702381E, "ss")end - -- All found occurrences in b617d, sorted alphabetically and identical lines removed: https://pastebin.com/f2A7vTj0 - -- No changes made in b678d. - -- - -- gtaforums.com/topic/795622-audio-for-mods - -- - -- Full list of audio / sound names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/soundNames.json - PLAY_SOUND_FROM_ENTITY=--[[void]] function(--[[int]] soundId,--[[string]] audioName,--[[Entity (int)]] entity,--[[string]] audioRef,--[[BOOL (bool)]] isNetwork,--[[Any (int)]] p5)return native_invoker.unified_void(soundId, audioName, entity, audioRef, isNetwork, p5, 0xE65F427EB70AB1ED, "isisbi")end - -- Only used with "formation_flying_blips_soundset" and "biker_formation_blips_soundset". - -- p1 is always the model of p2 - PLAY_SOUND_FROM_ENTITY_HASH=--[[void]] function(--[[int]] soundId,--[[Hash (int)]] model,--[[Entity (int)]] entity,--[[Hash (int)]] soundSetHash,--[[Any (int)]] p4,--[[Any (int)]] p5)return native_invoker.unified_void(soundId, model, entity, soundSetHash, p4, p5, 0x5B9853296731E88D, "iiiiii")end - -- All found occurrences in b617d, sorted alphabetically and identical lines removed: https://pastebin.com/eeFc5DiW - -- - -- gtaforums.com/topic/795622-audio-for-mods - -- - -- Full list of audio / sound names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/soundNames.json - PLAY_SOUND_FROM_COORD=--[[void]] function(--[[int]] soundId,--[[string]] audioName,--[[float]] x,--[[float]] y,--[[float]] z,--[[string]] audioRef,--[[BOOL (bool)]] isNetwork,--[[int]] range,--[[BOOL (bool)]] p8)return native_invoker.unified_void(soundId, audioName, x, y, z, audioRef, isNetwork, range, p8, 0x8D8686B622B88120, "isfffsbib")end - UPDATE_SOUND_COORD=--[[void]] function(--[[int]] soundId,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(soundId, x, y, z, 0x7EC3C679D0E7E46B, "ifff")end - STOP_SOUND=--[[void]] function(--[[int]] soundId)return native_invoker.unified_void(soundId, 0xA3B0C41BA5CC0BB5, "i")end - -- Could this be used alongside either, - -- SET_NETWORK_ID_EXISTS_ON_ALL_MACHINES or _SET_NETWORK_ID_SYNC_TO_PLAYER to make it so other players can hear the sound while online? It'd be a bit troll-fun to be able to play the Zancudo UFO creepy sounds globally. - GET_NETWORK_ID_FROM_SOUND_ID=--[[int]] function(--[[int]] soundId)return native_invoker.unified_int(soundId, 0x2DE3F0A134FFBC0D, "i")end - GET_SOUND_ID_FROM_NETWORK_ID=--[[int]] function(--[[int]] netId)return native_invoker.unified_int(netId, 0x75262FD12D0A1C84, "i")end - SET_VARIABLE_ON_SOUND=--[[void]] function(--[[int]] soundId,--[[string]] variable,--[[float]] p2)return native_invoker.unified_void(soundId, variable, p2, 0xAD6B3148A78AE9B6, "isf")end - -- From the scripts, p0: - -- - -- "ArmWrestlingIntensity", - -- "INOUT", - -- "Monkey_Stream", - -- "ZoomLevel" - SET_VARIABLE_ON_STREAM=--[[void]] function(--[[string]] variable,--[[float]] p1)return native_invoker.unified_void(variable, p1, 0x2F9D3834AEB9EF79, "sf")end - OVERRIDE_UNDERWATER_STREAM=--[[void]] function(--[[string]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0xF2A9CDABCEA04BD6, "sb")end - -- AUDIO::SET_VARIABLE_ON_UNDER_WATER_STREAM("inTunnel", 1.0); - -- AUDIO::SET_VARIABLE_ON_UNDER_WATER_STREAM("inTunnel", 0.0); - SET_VARIABLE_ON_UNDER_WATER_STREAM=--[[void]] function(--[[string]] variableName,--[[float]] value)return native_invoker.unified_void(variableName, value, 0x733ADF241531E5C2, "sf")end - HAS_SOUND_FINISHED=--[[BOOL (bool)]] function(--[[int]] soundId)return native_invoker.unified_bool(soundId, 0xFCBDCE714A7C88E5, "i")end - -- Plays ambient speech. See also _0x444180DB. - -- - -- ped: The ped to play the ambient speech. - -- speechName: Name of the speech to play, eg. "GENERIC_HI". - -- speechParam: Can be one of the following: - -- SPEECH_PARAMS_STANDARD - -- SPEECH_PARAMS_ALLOW_REPEAT - -- SPEECH_PARAMS_BEAT - -- SPEECH_PARAMS_FORCE - -- SPEECH_PARAMS_FORCE_FRONTEND - -- SPEECH_PARAMS_FORCE_NO_REPEAT_FRONTEND - -- SPEECH_PARAMS_FORCE_NORMAL - -- SPEECH_PARAMS_FORCE_NORMAL_CLEAR - -- SPEECH_PARAMS_FORCE_NORMAL_CRITICAL - -- SPEECH_PARAMS_FORCE_SHOUTED - -- SPEECH_PARAMS_FORCE_SHOUTED_CLEAR - -- SPEECH_PARAMS_FORCE_SHOUTED_CRITICAL - -- SPEECH_PARAMS_FORCE_PRELOAD_ONLY - -- SPEECH_PARAMS_MEGAPHONE - -- SPEECH_PARAMS_HELI - -- SPEECH_PARAMS_FORCE_MEGAPHONE - -- SPEECH_PARAMS_FORCE_HELI - -- SPEECH_PARAMS_INTERRUPT - -- SPEECH_PARAMS_INTERRUPT_SHOUTED - -- SPEECH_PARAMS_INTERRUPT_SHOUTED_CLEAR - -- SPEECH_PARAMS_INTERRUPT_SHOUTED_CRITICAL - -- SPEECH_PARAMS_INTERRUPT_NO_FORCE - -- SPEECH_PARAMS_INTERRUPT_FRONTEND - -- SPEECH_PARAMS_INTERRUPT_NO_FORCE_FRONTEND - -- SPEECH_PARAMS_ADD_BLIP - -- SPEECH_PARAMS_ADD_BLIP_ALLOW_REPEAT - -- SPEECH_PARAMS_ADD_BLIP_FORCE - -- SPEECH_PARAMS_ADD_BLIP_SHOUTED - -- SPEECH_PARAMS_ADD_BLIP_SHOUTED_FORCE - -- SPEECH_PARAMS_ADD_BLIP_INTERRUPT - -- SPEECH_PARAMS_ADD_BLIP_INTERRUPT_FORCE - -- SPEECH_PARAMS_FORCE_PRELOAD_ONLY_SHOUTED - -- SPEECH_PARAMS_FORCE_PRELOAD_ONLY_SHOUTED_CLEAR - -- SPEECH_PARAMS_FORCE_PRELOAD_ONLY_SHOUTED_CRITICAL - -- SPEECH_PARAMS_SHOUTED - -- SPEECH_PARAMS_SHOUTED_CLEAR - -- SPEECH_PARAMS_SHOUTED_CRITICAL - -- - -- Note: A list of Name and Parameters can be found here https://pastebin.com/1GZS5dCL - -- - -- Full list of speeches and voices names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/speeches.json - PLAY_PED_AMBIENT_SPEECH_NATIVE=--[[void]] function(--[[Ped (int)]] ped,--[[string]] speechName,--[[string]] speechParam,--[[Any (int)]] p3)return native_invoker.unified_void(ped, speechName, speechParam, p3, 0x8E04FEDD28D42462, "issi")end - -- Plays ambient speech. See also _0x5C57B85D. - -- - -- See PLAY_PED_AMBIENT_SPEECH_NATIVE for parameter specifications. - -- - -- Full list of speeches and voices names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/speeches.json - PLAY_PED_AMBIENT_SPEECH_AND_CLONE_NATIVE=--[[void]] function(--[[Ped (int)]] ped,--[[string]] speechName,--[[string]] speechParam,--[[Any (int)]] p3)return native_invoker.unified_void(ped, speechName, speechParam, p3, 0xC6941B4A3A8FBBB9, "issi")end - -- This is the same as PLAY_PED_AMBIENT_SPEECH_NATIVE and PLAY_PED_AMBIENT_SPEECH_AND_CLONE_NATIVE but it will allow you to play a speech file from a specific voice file. It works on players and all peds, even animals. - -- - -- EX (C#): - -- GTA.Native.Function.Call(Hash.PLAY_PED_AMBIENT_SPEECH_WITH_VOICE_NATIVE, Game.Player.Character, "GENERIC_INSULT_HIGH", "s_m_y_sheriff_01_white_full_01", "SPEECH_PARAMS_FORCE_SHOUTED", 0); - -- - -- The first param is the ped you want to play it on, the second is the speech name, the third is the voice name, the fourth is the speech param, and the last param is usually always 0. - -- - -- Full list of speeches and voices names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/speeches.json - PLAY_PED_AMBIENT_SPEECH_WITH_VOICE_NATIVE=--[[void]] function(--[[Ped (int)]] ped,--[[string]] speechName,--[[string]] voiceName,--[[string]] speechParam,--[[BOOL (bool)]] p4)return native_invoker.unified_void(ped, speechName, voiceName, speechParam, p4, 0x3523634255FC3318, "isssb")end - -- Full list of speeches and voices names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/speeches.json - PLAY_AMBIENT_SPEECH_FROM_POSITION_NATIVE=--[[void]] function(--[[string]] speechName,--[[string]] voiceName,--[[float]] x,--[[float]] y,--[[float]] z,--[[string]] speechParam)return native_invoker.unified_void(speechName, voiceName, x, y, z, speechParam, 0xED640017ED337E45, "ssfffs")end - -- This native enables the audio flag "TrevorRageIsOverridden" and sets the voice effect to `voiceEffect` - OVERRIDE_TREVOR_RAGE=--[[void]] function(--[[string]] voiceEffect)return native_invoker.unified_void(voiceEffect, 0x13AD665062541A7E, "s")end - RESET_TREVOR_RAGE=--[[void]] function()return native_invoker.unified_void(0xE78503B10C4314E0, "")end - SET_PLAYER_ANGRY=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xEA241BB04110F091, "ib")end - -- Needs another parameter [int p2]. The signature is PED::PLAY_PAIN(Ped ped, int painID, int p1, int p2); - -- - -- Last 2 parameters always seem to be 0. - -- - -- EX: Function.Call(Hash.PLAY_PAIN, TestPed, 6, 0, 0); - -- - -- Known Pain IDs - -- ________________________ - -- - -- 1 - Doesn't seem to do anything. Does NOT crash the game like previously said. (Latest patch) - -- 6 - Scream (Short) - -- 7 - Scared Scream (Kinda Long) - -- 8 - On Fire - -- - PLAY_PAIN=--[[void]] function(--[[Ped (int)]] ped,--[[int]] painID,--[[int]] p1,--[[Any (int)]] p3)return native_invoker.unified_void(ped, painID, p1, p3, 0xBC9AE166038A5CEC, "iiii")end - RELEASE_WEAPON_AUDIO=--[[void]] function()return native_invoker.unified_void(0xCE4AC0439F607045, "")end - -- mode can be any of these: - -- SLOWMO_T1_TRAILER_SMASH - -- SLOWMO_T1_RAYFIRE_EXPLOSION - -- SLOWMO_PROLOGUE_VAULT - -- NIGEL_02_SLOWMO_SETTING - -- JSH_EXIT_TUNNEL_SLOWMO - -- SLOWMO_BIG_SCORE_JUMP - -- SLOWMO_FIB4_TRUCK_SMASH - -- SLOWMO_EXTREME_04 - -- SLOW_MO_METH_HOUSE_RAYFIRE - -- BARRY_02_SLOWMO - -- BARRY_01_SLOWMO - ACTIVATE_AUDIO_SLOWMO_MODE=--[[void]] function(--[[string]] mode)return native_invoker.unified_void(mode, 0xD01005D2BA2EB778, "s")end - -- see ACTIVATE_AUDIO_SLOWMO_MODE for modes - DEACTIVATE_AUDIO_SLOWMO_MODE=--[[void]] function(--[[string]] mode)return native_invoker.unified_void(mode, 0xDDC635D5B3262C56, "s")end - -- Audio List - -- gtaforums.com/topic/795622-audio-for-mods/ - -- - -- All found occurrences in b617d, sorted alphabetically and identical lines removed: https://pastebin.com/FTeAj4yZ - SET_AMBIENT_VOICE_NAME=--[[void]] function(--[[Ped (int)]] ped,--[[string]] name)return native_invoker.unified_void(ped, name, 0x6C8065A3B780185B, "is")end - SET_AMBIENT_VOICE_NAME_HASH=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] hash)return native_invoker.unified_void(ped, hash, 0x9A53DED9921DE990, "ii")end - GET_AMBIENT_VOICE_NAME_HASH=--[[Hash (int)]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x5E203DA2BA15D436, "i")end - -- Assigns some ambient voice to the ped. - SET_PED_VOICE_FULL=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x40CF0D12D142A9E8, "i")end - SET_PED_RACE_AND_VOICE_GROUP=--[[void]] function(--[[Ped (int)]] ped,--[[int]] p1,--[[Hash (int)]] voiceGroup)return native_invoker.unified_void(ped, p1, voiceGroup, 0x1B7ABE26CBCBF8C7, "iii")end - -- From the scripts: - -- - -- AUDIO::SET_PED_VOICE_GROUP(PLAYER::PLAYER_PED_ID(), MISC::GET_HASH_KEY("PAIGE_PVG")); - -- AUDIO::SET_PED_VOICE_GROUP(PLAYER::PLAYER_PED_ID(), MISC::GET_HASH_KEY("TALINA_PVG")); - -- AUDIO::SET_PED_VOICE_GROUP(PLAYER::PLAYER_PED_ID(), MISC::GET_HASH_KEY("FEMALE_LOST_BLACK_PVG")); - -- AUDIO::SET_PED_VOICE_GROUP(PLAYER::PLAYER_PED_ID(), MISC::GET_HASH_KEY("FEMALE_LOST_WHITE_PVG")); - SET_PED_VOICE_GROUP=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] voiceGroupHash)return native_invoker.unified_void(ped, voiceGroupHash, 0x7CDC8C3B89F661B3, "ii")end - -- Dat151RelType == 29 - SET_PED_VOICE_GROUP_FROM_RACE_TO_PVG=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] voiceGroupHash)return native_invoker.unified_void(ped, voiceGroupHash, 0x0BABC1345ABBFB16, "ii")end - -- BOOL p1: 0 = Female; 1 = Male - SET_PED_GENDER=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1)return native_invoker.unified_void(ped, p1, 0xA5342D390CDA41D6, "ib")end - STOP_CURRENT_PLAYING_SPEECH=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x7A73D05A607734C7, "i")end - STOP_CURRENT_PLAYING_AMBIENT_SPEECH=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xB8BEC0CA6F0EDB0F, "i")end - IS_AMBIENT_SPEECH_PLAYING=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x9072C8B49907BFAD, "i")end - IS_SCRIPTED_SPEECH_PLAYING=--[[BOOL (bool)]] function(--[[Ped (int)]] p0)return native_invoker.unified_bool(p0, 0xCC9AA18DCC7084F4, "i")end - IS_ANY_SPEECH_PLAYING=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x729072355FA39EC9, "i")end - IS_ANY_POSITIONAL_SPEECH_PLAYING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x30CA2EF91D15ADF8, "")end - -- Checks if the ped can play the speech or has the speech file, p2 is usually false. - DOES_CONTEXT_EXIST_FOR_THIS_PED=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[string]] speechName,--[[BOOL (bool)]] p2)return native_invoker.unified_bool(ped, speechName, p2, 0x49B99BF3FDA89A7A, "isb")end - IS_PED_IN_CURRENT_CONVERSATION=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x049E937F18F4020C, "i")end - -- Sets the ped drunk sounds. Only works with PLAYER_PED_ID - -- - -- ==================================================== - -- - -- As mentioned above, this only sets the drunk sound to ped/player. - -- - -- To give the Ped a drunk effect with drunk walking animation try using SET_PED_MOVEMENT_CLIPSET - -- - -- Below is an example - -- - -- if (!Function.Call(Hash.HAS_ANIM_SET_LOADED, "move_m@drunk@verydrunk")) - -- { - -- Function.Call(Hash.REQUEST_ANIM_SET, "move_m@drunk@verydrunk"); - -- } - -- Function.Call(Hash.SET_PED_MOVEMENT_CLIPSET, Ped.Handle, "move_m@drunk@verydrunk", 0x3E800000); - -- - -- - -- - -- And to stop the effect use - -- RESET_PED_MOVEMENT_CLIPSET - SET_PED_IS_DRUNK=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x95D2D383D5396B8A, "ib")end - -- Plays sounds from a ped with chop model. For example it used to play bark or sniff sounds. p1 is always 3 or 4294967295 in decompiled scripts. By a quick disassembling I can assume that this arg is unused. - -- This native is works only when you call it on the ped with right model (ac_chop only ?) - -- Speech Name can be: CHOP_SNIFF_SEQ CHOP_WHINE CHOP_LICKS_MOUTH CHOP_PANT bark GROWL SNARL BARK_SEQ - PLAY_ANIMAL_VOCALIZATION=--[[void]] function(--[[Ped (int)]] pedHandle,--[[int]] p1,--[[string]] speechName)return native_invoker.unified_void(pedHandle, p1, speechName, 0xEE066C7006C49C0A, "iis")end - IS_ANIMAL_VOCALIZATION_PLAYING=--[[BOOL (bool)]] function(--[[Ped (int)]] pedHandle)return native_invoker.unified_bool(pedHandle, 0xC265DF9FB44A9FBD, "i")end - -- mood can be 0 or 1 (it's not a boolean value!). Effects audio of the animal. - SET_ANIMAL_MOOD=--[[void]] function(--[[Ped (int)]] animal,--[[int]] mood)return native_invoker.unified_void(animal, mood, 0xCC97B29285B1DC3B, "ii")end - IS_MOBILE_PHONE_RADIO_ACTIVE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xB35CE999E8EF317E, "")end - SET_MOBILE_PHONE_RADIO_STATE=--[[void]] function(--[[BOOL (bool)]] state)return native_invoker.unified_void(state, 0xBF286C554784F3DF, "b")end - -- Returns 255 (radio off index) if the function fails. - GET_PLAYER_RADIO_STATION_INDEX=--[[int]] function()return native_invoker.unified_int(0xE8AF77C4C06ADC93, "")end - -- Returns active radio station name - GET_PLAYER_RADIO_STATION_NAME=--[[string]] function()return native_invoker.unified_string(0xF6D733C32076AD03, "")end - -- Converts radio station index to string. Use HUD::GET_FILENAME_FOR_AUDIO_CONVERSATION to get the user-readable text. - GET_RADIO_STATION_NAME=--[[string]] function(--[[int]] radioStation)return native_invoker.unified_string(radioStation, 0xB28ECA15046CA8B9, "i")end - GET_PLAYER_RADIO_STATION_GENRE=--[[int]] function()return native_invoker.unified_int(0xA571991A7FE6CCEB, "")end - IS_RADIO_RETUNING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xA151A7394A214E65, "")end - IS_RADIO_FADED_OUT=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x0626A247D2405330, "")end - -- Tune Forward... - SET_RADIO_RETUNE_UP=--[[void]] function()return native_invoker.unified_void(0xFF266D1D0EB1195D, "")end - -- Tune Backwards... - SET_RADIO_RETUNE_DOWN=--[[void]] function()return native_invoker.unified_void(0xDD6BCF9E94425DF9, "")end - -- List of radio stations that are in the wheel, in clockwise order, as of LS Tuners DLC: https://git.io/J8a3k - -- An older list including hidden radio stations: https://pastebin.com/Kj9t38KF - SET_RADIO_TO_STATION_NAME=--[[void]] function(--[[string]] stationName)return native_invoker.unified_void(stationName, 0xC69EDA28699D5107, "s")end - -- List of radio stations that are in the wheel, in clockwise order, as of LS Tuners DLC: https://git.io/J8a3k - -- An older list including hidden radio stations: https://pastebin.com/Kj9t38KF - SET_VEH_RADIO_STATION=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[string]] radioStation)return native_invoker.unified_void(vehicle, radioStation, 0x1B9C0099CB942AC6, "is")end - SET_VEH_HAS_NORMAL_RADIO=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x3E45765F3FBB582F, "i")end - IS_VEHICLE_RADIO_ON=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x0BE4BE946463F917, "i")end - SET_VEH_FORCED_RADIO_THIS_FRAME=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0xC1805D05E6D4FE10, "i")end - -- Full list of static emitters by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/staticEmitters.json - SET_EMITTER_RADIO_STATION=--[[void]] function(--[[string]] emitterName,--[[string]] radioStation,--[[Any (int)]] p2)return native_invoker.unified_void(emitterName, radioStation, p2, 0xACF57305B12AF907, "ssi")end - -- Example: - -- AUDIO::SET_STATIC_EMITTER_ENABLED((Any*)"LOS_SANTOS_VANILLA_UNICORN_01_STAGE", false); AUDIO::SET_STATIC_EMITTER_ENABLED((Any*)"LOS_SANTOS_VANILLA_UNICORN_02_MAIN_ROOM", false); AUDIO::SET_STATIC_EMITTER_ENABLED((Any*)"LOS_SANTOS_VANILLA_UNICORN_03_BACK_ROOM", false); - -- - -- This turns off surrounding sounds not connected directly to peds. - -- - -- Full list of static emitters by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/staticEmitters.json - SET_STATIC_EMITTER_ENABLED=--[[void]] function(--[[string]] emitterName,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(emitterName, toggle, 0x399D2D3B33F1B8EB, "sb")end - -- Full list of static emitters by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/staticEmitters.json - LINK_STATIC_EMITTER_TO_ENTITY=--[[void]] function(--[[string]] emitterName,--[[Entity (int)]] entity)return native_invoker.unified_void(emitterName, entity, 0x651D3228960D08AF, "si")end - -- Sets radio station by index. - SET_RADIO_TO_STATION_INDEX=--[[void]] function(--[[int]] radioStation)return native_invoker.unified_void(radioStation, 0xA619B168B8A8570F, "i")end - SET_FRONTEND_RADIO_ACTIVE=--[[void]] function(--[[BOOL (bool)]] active)return native_invoker.unified_void(active, 0xF7F26C6E9CC9EBB8, "b")end - -- "news" that play on the radio after you've done something in story mode(?) - UNLOCK_MISSION_NEWS_STORY=--[[void]] function(--[[int]] newsStory)return native_invoker.unified_void(newsStory, 0xB165AB7C248B2DC1, "i")end - IS_MISSION_NEWS_STORY_UNLOCKED=--[[BOOL (bool)]] function(--[[int]] newsStory)return native_invoker.unified_bool(newsStory, 0x66E49BF55B4B1874, "i")end - GET_AUDIBLE_MUSIC_TRACK_TEXT_ID=--[[int]] function()return native_invoker.unified_int(0x50B196FC9ED6545B, "")end - PLAY_END_CREDITS_MUSIC=--[[void]] function(--[[BOOL (bool)]] play)return native_invoker.unified_void(play, 0xCD536C4D33DCC900, "b")end - SKIP_RADIO_FORWARD=--[[void]] function()return native_invoker.unified_void(0x6DDBBDD98E2E9C25, "")end - FREEZE_RADIO_STATION=--[[void]] function(--[[string]] radioStation)return native_invoker.unified_void(radioStation, 0x344F393B027E38C3, "s")end - UNFREEZE_RADIO_STATION=--[[void]] function(--[[string]] radioStation)return native_invoker.unified_void(radioStation, 0xFC00454CF60B91DD, "s")end - SET_RADIO_AUTO_UNFREEZE=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xC1AA9F53CE982990, "b")end - SET_INITIAL_PLAYER_STATION=--[[void]] function(--[[string]] radioStation)return native_invoker.unified_void(radioStation, 0x88795F13FACDA88D, "s")end - SET_USER_RADIO_CONTROL_ENABLED=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x19F21E63AE6EAE4E, "b")end - -- Only found this one in the decompiled scripts: - -- - -- AUDIO::SET_RADIO_TRACK("RADIO_03_HIPHOP_NEW", "ARM1_RADIO_STARTS"); - -- - SET_RADIO_TRACK=--[[void]] function(--[[string]] radioStation,--[[string]] radioTrack)return native_invoker.unified_void(radioStation, radioTrack, 0xB39786F201FEE30B, "ss")end - SET_RADIO_TRACK_WITH_START_OFFSET=--[[void]] function(--[[string]] radioStationName,--[[string]] mixName,--[[int]] p2)return native_invoker.unified_void(radioStationName, mixName, p2, 0x2CB0075110BE1E56, "ssi")end - SET_NEXT_RADIO_TRACK=--[[void]] function(--[[string]] radioName,--[[string]] radioTrack,--[[string]] p2,--[[string]] p3)return native_invoker.unified_void(radioName, radioTrack, p2, p3, 0x55ECF4D13D9903B0, "ssss")end - SET_VEHICLE_RADIO_LOUD=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xBB6F1CAEC68B0BCE, "ib")end - CAN_VEHICLE_RECEIVE_CB_RADIO=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x032A116663A4D5AC, "i")end - SET_MOBILE_RADIO_ENABLED_DURING_GAMEPLAY=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x1098355A16064BB3, "b")end - DOES_PLAYER_VEH_HAVE_RADIO=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x109697E2FFBAC8A1, "")end - IS_PLAYER_VEH_RADIO_ENABLE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x5F43D83FD6738741, "")end - -- can't seem to enable radio on cop cars etc - SET_VEHICLE_RADIO_ENABLED=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x3B988190C0AA6C0B, "ib")end - SET_POSITIONED_PLAYER_VEHICLE_RADIO_EMITTER_ENABLED=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xDA07819E452FFE8F, "i")end - -- Examples: - -- - -- AUDIO::SET_CUSTOM_RADIO_TRACK_LIST("RADIO_01_CLASS_ROCK", "END_CREDITS_KILL_MICHAEL", 1); - -- AUDIO::SET_CUSTOM_RADIO_TRACK_LIST("RADIO_01_CLASS_ROCK", "END_CREDITS_KILL_MICHAEL", 1); - -- AUDIO::SET_CUSTOM_RADIO_TRACK_LIST("RADIO_01_CLASS_ROCK", "END_CREDITS_KILL_TREVOR", 1); - -- AUDIO::SET_CUSTOM_RADIO_TRACK_LIST("RADIO_01_CLASS_ROCK", "END_CREDITS_SAVE_MICHAEL_TREVOR", 1); - -- AUDIO::SET_CUSTOM_RADIO_TRACK_LIST("RADIO_01_CLASS_ROCK", "OFF_ROAD_RADIO_ROCK_LIST", 1); - -- AUDIO::SET_CUSTOM_RADIO_TRACK_LIST("RADIO_06_COUNTRY", "MAGDEMO2_RADIO_DINGHY", 1); - -- AUDIO::SET_CUSTOM_RADIO_TRACK_LIST("RADIO_16_SILVERLAKE", "SEA_RACE_RADIO_PLAYLIST", 1); - -- AUDIO::SET_CUSTOM_RADIO_TRACK_LIST("RADIO_01_CLASS_ROCK", "OFF_ROAD_RADIO_ROCK_LIST", 1); - SET_CUSTOM_RADIO_TRACK_LIST=--[[void]] function(--[[string]] radioStation,--[[string]] trackListName,--[[BOOL (bool)]] p2)return native_invoker.unified_void(radioStation, trackListName, p2, 0x4E404A9361F75BB2, "ssb")end - -- 3 calls in the b617d scripts, removed duplicate. - -- - -- AUDIO::CLEAR_CUSTOM_RADIO_TRACK_LIST("RADIO_16_SILVERLAKE"); - -- AUDIO::CLEAR_CUSTOM_RADIO_TRACK_LIST("RADIO_01_CLASS_ROCK"); - CLEAR_CUSTOM_RADIO_TRACK_LIST=--[[void]] function(--[[string]] radioStation)return native_invoker.unified_void(radioStation, 0x1654F24A88A8E3FE, "s")end - GET_NUM_UNLOCKED_RADIO_STATIONS=--[[int]] function()return native_invoker.unified_int(0xF1620ECB50E01DE7, "")end - FIND_RADIO_STATION_INDEX=--[[int]] function(--[[Hash (int)]] stationNameHash)return native_invoker.unified_int(stationNameHash, 0x8D67489793FF428B, "i")end - -- 6 calls in the b617d scripts, removed identical lines: - -- - -- AUDIO::SET_RADIO_STATION_MUSIC_ONLY("RADIO_01_CLASS_ROCK", 1); - -- AUDIO::SET_RADIO_STATION_MUSIC_ONLY(AUDIO::GET_RADIO_STATION_NAME(10), 0); - -- AUDIO::SET_RADIO_STATION_MUSIC_ONLY(AUDIO::GET_RADIO_STATION_NAME(10), 1); - SET_RADIO_STATION_MUSIC_ONLY=--[[void]] function(--[[string]] radioStation,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(radioStation, toggle, 0x774BD811F656A122, "sb")end - SET_RADIO_FRONTEND_FADE_TIME=--[[void]] function(--[[float]] fadeTime)return native_invoker.unified_void(fadeTime, 0x2C96CDB04FCA358E, "f")end - -- AUDIO::UNLOCK_RADIO_STATION_TRACK_LIST("RADIO_16_SILVERLAKE", "MIRRORPARK_LOCKED"); - UNLOCK_RADIO_STATION_TRACK_LIST=--[[void]] function(--[[string]] radioStation,--[[string]] trackListName)return native_invoker.unified_void(radioStation, trackListName, 0x031ACB6ABA18C729, "ss")end - LOCK_RADIO_STATION_TRACK_LIST=--[[void]] function(--[[string]] radioStation,--[[string]] trackListName)return native_invoker.unified_void(radioStation, trackListName, 0xFF5E5EA2DCEEACF3, "ss")end - -- Just a nullsub (i.e. does absolutely nothing) since build 1604. - UPDATE_UNLOCKABLE_DJ_RADIO_TRACKS=--[[void]] function(--[[BOOL (bool)]] enableMixes)return native_invoker.unified_void(enableMixes, 0x47AED84213A47510, "b")end - -- Disables the radio station (hides it from the radio wheel). - LOCK_RADIO_STATION=--[[void]] function(--[[string]] radioStationName,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(radioStationName, toggle, 0x477D9DB48F889591, "sb")end - -- Doesn't have an effect in Story Mode. - SET_RADIO_STATION_AS_FAVOURITE=--[[void]] function(--[[string]] radioStation,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(radioStation, toggle, 0x4CAFEBFA21EC188D, "sb")end - IS_RADIO_STATION_FAVOURITED=--[[BOOL (bool)]] function(--[[string]] radioStation)return native_invoker.unified_bool(radioStation, 0x2B1784DB08AFEA79, "s")end - GET_NEXT_AUDIBLE_BEAT=--[[BOOL (bool)]] function(--[[float* (pointer)]] out1,--[[float* (pointer)]] out2,--[[int* (pointer)]] out3)return native_invoker.unified_bool(out1, out2, out3, 0xC64A06D939F826F5, "ppp")end - -- Changes start time of a tracklist (milliseconds) - -- R* uses a random int: MISC::GET_RANDOM_INT_IN_RANGE(0, 13) * 60000) - FORCE_MUSIC_TRACK_LIST=--[[void]] function(--[[string]] radioStation,--[[string]] trackListName,--[[int]] milliseconds)return native_invoker.unified_void(radioStation, trackListName, milliseconds, 0x4E0AF9114608257C, "ssi")end - GET_CURRENT_TRACK_PLAY_TIME=--[[int]] function(--[[string]] radioStationName)return native_invoker.unified_int(radioStationName, 0x3E65CDE5215832C1, "s")end - GET_CURRENT_TRACK_SOUND_NAME=--[[Hash (int)]] function(--[[string]] radioStationName)return native_invoker.unified_int(radioStationName, 0x34D66BC058019CE0, "s")end - SET_VEHICLE_MISSILE_WARNING_ENABLED=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xF3365489E0DD50F9, "ib")end - -- Full list of ambient zones by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ambientZones.json - SET_AMBIENT_ZONE_STATE=--[[void]] function(--[[string]] zoneName,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(zoneName, p1, p2, 0xBDA07E5950085E46, "sbb")end - -- This function also has a p2, unknown. Signature AUDIO::CLEAR_AMBIENT_ZONE_STATE(const char* zoneName, bool p1, Any p2); - -- - -- Still needs more research. - -- - -- Full list of ambient zones by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ambientZones.json - CLEAR_AMBIENT_ZONE_STATE=--[[void]] function(--[[string]] zoneName,--[[BOOL (bool)]] p1)return native_invoker.unified_void(zoneName, p1, 0x218DD44AAAC964FF, "sb")end - SET_AMBIENT_ZONE_LIST_STATE=--[[void]] function(--[[string]] ambientZone,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(ambientZone, p1, p2, 0x9748FA4DE50CCE3E, "sbb")end - CLEAR_AMBIENT_ZONE_LIST_STATE=--[[void]] function(--[[string]] ambientZone,--[[BOOL (bool)]] p1)return native_invoker.unified_void(ambientZone, p1, 0x120C48C614909FA4, "sb")end - -- Full list of ambient zones by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ambientZones.json - SET_AMBIENT_ZONE_STATE_PERSISTENT=--[[void]] function(--[[string]] ambientZone,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(ambientZone, p1, p2, 0x1D6650420CEC9D3B, "sbb")end - -- Full list of ambient zones by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ambientZones.json - SET_AMBIENT_ZONE_LIST_STATE_PERSISTENT=--[[void]] function(--[[string]] ambientZone,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(ambientZone, p1, p2, 0xF3638DAE8C4045E1, "sbb")end - -- Full list of ambient zones by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ambientZones.json - IS_AMBIENT_ZONE_ENABLED=--[[BOOL (bool)]] function(--[[string]] ambientZone)return native_invoker.unified_bool(ambientZone, 0x01E2817A479A7F9B, "s")end - REFRESH_CLOSEST_OCEAN_SHORELINE=--[[void]] function()return native_invoker.unified_void(0x5D2BFAAB8D956E0E, "")end - -- All occurrences found in b617d, sorted alphabetically and identical lines removed: - -- - -- AUDIO::SET_CUTSCENE_AUDIO_OVERRIDE("_AK"); - -- AUDIO::SET_CUTSCENE_AUDIO_OVERRIDE("_CUSTOM"); - -- AUDIO::SET_CUTSCENE_AUDIO_OVERRIDE("_TOOTHLESS"); - -- Full list of cutscene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/cutsceneNames.json - SET_CUTSCENE_AUDIO_OVERRIDE=--[[void]] function(--[[string]] name)return native_invoker.unified_void(name, 0x3B4BF5F0859204D9, "s")end - SET_VARIABLE_ON_SYNCH_SCENE_AUDIO=--[[void]] function(--[[string]] variableName,--[[float]] value)return native_invoker.unified_void(variableName, value, 0xBCC29F935ED07688, "sf")end - -- Plays the given police radio message. - -- - -- All found occurrences in b617d, sorted alphabetically and identical lines removed: https://pastebin.com/GBnsQ5hr - -- Full list of police report names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/policeReportNames.json - PLAY_POLICE_REPORT=--[[int]] function(--[[string]] name,--[[float]] p1)return native_invoker.unified_int(name, p1, 0xDFEBD56D9BD1EB16, "sf")end - CANCEL_ALL_POLICE_REPORTS=--[[void]] function()return native_invoker.unified_void(0xB4F90FAF7670B16F, "")end - -- Plays the siren sound of a vehicle which is otherwise activated when fastly double-pressing the horn key. - -- Only works on vehicles with a police siren. - BLIP_SIREN=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x1B9025BDA76822B6, "i")end - -- Overrides the vehicle's horn hash. - -- When changing this hash on a vehicle, it will not return the 'overwritten' hash. It will still always return the default horn hash (same as GET_VEHICLE_DEFAULT_HORN) - -- - -- vehicle - the vehicle whose horn should be overwritten - -- mute - p1 seems to be an option for muting the horn - -- p2 - maybe a horn id, since the function AUDIO::GET_VEHICLE_DEFAULT_HORN(veh) exists? - OVERRIDE_VEH_HORN=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] override,--[[int]] hornHash)return native_invoker.unified_void(vehicle, override, hornHash, 0x3CDC1E622CCE0356, "ibi")end - -- Checks whether the horn of a vehicle is currently played. - IS_HORN_ACTIVE=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x9D6BFC12B05C6121, "i")end - -- Makes pedestrians sound their horn longer, faster and more agressive when they use their horn. - SET_AGGRESSIVE_HORNS=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x395BF71085D1B1D9, "b")end - -- Does nothing (it's a nullsub). - SET_RADIO_POSITION_AUDIO_MUTE=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x02E93C796ABD3A97, "b")end - -- SET_VEHICLE_CONVERSATIONS_PERSIST? - SET_VEHICLE_CONVERSATIONS_PERSIST=--[[void]] function(--[[BOOL (bool)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0x58BB377BEC7CD5F4, "bb")end - SET_VEHICLE_CONVERSATIONS_PERSIST_NEW=--[[void]] function(--[[BOOL (bool)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x9BD7BD55E4533183, "bbb")end - IS_STREAM_PLAYING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xD11FA52EB849D978, "")end - GET_STREAM_PLAY_TIME=--[[int]] function()return native_invoker.unified_int(0x4E72BBDBCA58A3DB, "")end - -- Example: - -- AUDIO::LOAD_STREAM("CAR_STEAL_1_PASSBY", "CAR_STEAL_1_SOUNDSET"); - -- - -- All found occurrences in the b678d decompiled scripts: https://pastebin.com/3rma6w5w - -- - -- Stream names often ends with "_MASTER", "_SMALL" or "_STREAM". Also "_IN", "_OUT" and numbers. - -- - -- soundSet is often set to 0 in the scripts. These are common to end the soundSets: "_SOUNDS", "_SOUNDSET" and numbers. - -- - -- Full list of audio / sound names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/soundNames.json - LOAD_STREAM=--[[BOOL (bool)]] function(--[[string]] streamName,--[[string]] soundSet)return native_invoker.unified_bool(streamName, soundSet, 0x1F1F957154EC51DF, "ss")end - -- Example: - -- AUDIO::LOAD_STREAM_WITH_START_OFFSET("STASH_TOXIN_STREAM", 2400, "FBI_05_SOUNDS"); - -- - -- Only called a few times in the scripts. - -- - -- Full list of audio / sound names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/soundNames.json - LOAD_STREAM_WITH_START_OFFSET=--[[BOOL (bool)]] function(--[[string]] streamName,--[[int]] startOffset,--[[string]] soundSet)return native_invoker.unified_bool(streamName, startOffset, soundSet, 0x59C16B79F53B3712, "sis")end - PLAY_STREAM_FROM_PED=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x89049DD63C08B5D1, "i")end - PLAY_STREAM_FROM_VEHICLE=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0xB70374A758007DFA, "i")end - -- Used with AUDIO::LOAD_STREAM - -- - -- Example from finale_heist2b.c4: - -- TASK::TASK_SYNCHRONIZED_SCENE(l_4C8[2/*14*/], l_4C8[2/*14*/]._f7, l_30A, "push_out_vault_l", 4.0, -1.5, 5, 713, 4.0, 0); - -- PED::SET_SYNCHRONIZED_SCENE_PHASE(l_4C8[2/*14*/]._f7, 0.0); - -- PED::FORCE_PED_AI_AND_ANIMATION_UPDATE(l_4C8[2/*14*/], 0, 0); - -- PED::SET_PED_COMBAT_ATTRIBUTES(l_4C8[2/*14*/], 38, 1); - -- PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(l_4C8[2/*14*/], 1); - -- if (AUDIO::LOAD_STREAM("Gold_Cart_Push_Anim_01", "BIG_SCORE_3B_SOUNDS")) { - -- AUDIO::PLAY_STREAM_FROM_OBJECT(l_36F[0/*1*/]); - -- } - PLAY_STREAM_FROM_OBJECT=--[[void]] function(--[[Object (int)]] object)return native_invoker.unified_void(object, 0xEBAA9B64D76356FD, "i")end - PLAY_STREAM_FRONTEND=--[[void]] function()return native_invoker.unified_void(0x58FCE43488F9F5F4, "")end - PLAY_STREAM_FROM_POSITION=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(x, y, z, 0x21442F412E8DE56B, "fff")end - STOP_STREAM=--[[void]] function()return native_invoker.unified_void(0xA4718A1419D18151, "")end - STOP_PED_SPEAKING=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] shaking)return native_invoker.unified_void(ped, shaking, 0x9D64D7405520E3D3, "ib")end - BLOCK_ALL_SPEECH_FROM_PED=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(ped, p1, p2, 0xF8AD2EED7C47E8FE, "ibb")end - STOP_PED_SPEAKING_SYNCED=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1)return native_invoker.unified_void(ped, p1, 0xAB6781A5F3101470, "ib")end - DISABLE_PED_PAIN_AUDIO=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xA9A41C1E940FB0E8, "ib")end - -- Common in the scripts: - -- AUDIO::IS_AMBIENT_SPEECH_DISABLED(PLAYER::PLAYER_PED_ID()); - IS_AMBIENT_SPEECH_DISABLED=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x932C2D096A2C3FFF, "i")end - BLOCK_SPEECH_CONTEXT_GROUP=--[[void]] function(--[[string]] p0,--[[int]] p1)return native_invoker.unified_void(p0, p1, 0xA8A7D434AFB4B97B, "si")end - UNBLOCK_SPEECH_CONTEXT_GROUP=--[[void]] function(--[[string]] p0)return native_invoker.unified_void(p0, 0x2ACABED337622DF2, "s")end - SET_SIREN_WITH_NO_DRIVER=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x1FEF0683B96EBCF2, "ib")end - SET_SIREN_BYPASS_MP_DRIVER_CHECK=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xF584CF8529B51434, "ib")end - TRIGGER_SIREN_AUDIO=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x66C3FB05206041BA, "i")end - SET_HORN_PERMANENTLY_ON=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x9C11908013EA4715, "i")end - SET_HORN_ENABLED=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x76D683C108594D0E, "ib")end - SET_AUDIO_VEHICLE_PRIORITY=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[Any (int)]] p1)return native_invoker.unified_void(vehicle, p1, 0xE5564483E407F914, "ii")end - SET_HORN_PERMANENTLY_ON_TIME=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] time)return native_invoker.unified_void(vehicle, time, 0x9D3AF56E94C9AE98, "if")end - USE_SIREN_AS_HORN=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xFA932DE350266EF8, "ib")end - -- This native sets the audio of the specified vehicle to the audioName (p1). - -- - -- Use the audioNameHash found in vehicles.meta - -- - -- Example: - -- _SET_VEHICLE_AUDIO(veh, "ADDER"); - -- The selected vehicle will now have the audio of the Adder. - FORCE_USE_AUDIO_GAME_OBJECT=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[string]] audioName)return native_invoker.unified_void(vehicle, audioName, 0x4F0C413926060B38, "is")end - PRELOAD_VEHICLE_AUDIO_BANK=--[[void]] function(--[[Hash (int)]] vehicleModel)return native_invoker.unified_void(vehicleModel, 0xCA4CEA6AE0000A7E, "i")end - SET_VEHICLE_STARTUP_REV_SOUND=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[string]] p1,--[[string]] p2)return native_invoker.unified_void(vehicle, p1, p2, 0xF1F8157B8C3F171C, "iss")end - RESET_VEHICLE_STARTUP_REV_SOUND=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0xD2DCCD8E16E20997, "i")end - SET_VEHICLE_FORCE_REVERSE_WARNING=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x97FFB4ADEED08066, "ii")end - IS_VEHICLE_AUDIBLY_DAMAGED=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x5DB8010EE71FDEF2, "i")end - SET_VEHICLE_AUDIO_ENGINE_DAMAGE_FACTOR=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] damageFactor)return native_invoker.unified_void(vehicle, damageFactor, 0x59E7B488451F4D3A, "if")end - -- intensity: 0.0f - 1.0f, only used once with 1.0f in R* Scripts (nigel2) - -- Makes an engine rattling noise when you decelerate, you need to be going faster to hear lower values - SET_VEHICLE_AUDIO_BODY_DAMAGE_FACTOR=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] intensity)return native_invoker.unified_void(vehicle, intensity, 0x01BB4D577D38BD9E, "if")end - ENABLE_VEHICLE_FANBELT_DAMAGE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x1C073274E065C6D2, "ib")end - ENABLE_VEHICLE_EXHAUST_POPS=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x2BE4BC731D039D5A, "ib")end - -- SET_VEHICLE_BOOST_ACTIVE(vehicle, 1, 0); - -- SET_VEHICLE_BOOST_ACTIVE(vehicle, 0, 0); - -- - -- Will give a boost-soundeffect. - SET_VEHICLE_BOOST_ACTIVE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x4A04DE7CAB2739A1, "ib")end - SET_PLAYER_VEHICLE_ALARM_AUDIO_ACTIVE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x6FDDAD856E36988A, "ib")end - SET_SCRIPT_UPDATE_DOOR_AUDIO=--[[void]] function(--[[Hash (int)]] doorHash,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(doorHash, toggle, 0x06C0023BED16DD6B, "ib")end - -- doorId: see SET_VEHICLE_DOOR_SHUT - PLAY_VEHICLE_DOOR_OPEN_SOUND=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] doorId)return native_invoker.unified_void(vehicle, doorId, 0x3A539D52857EA82D, "ii")end - -- doorId: see SET_VEHICLE_DOOR_SHUT - PLAY_VEHICLE_DOOR_CLOSE_SOUND=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] doorId)return native_invoker.unified_void(vehicle, doorId, 0x62A456AA4769EF34, "ii")end - -- Works for planes only. - ENABLE_STALL_WARNING_SOUNDS=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xC15907D667F7CFB2, "ib")end - _ENABLE_DRAG_RACE_STATIONARY_WARNING_SOUNDS=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] enable)return native_invoker.unified_void(vehicle, enable, 0xBEFB80290414FD4F, "ib")end - -- Hardcoded to return 1 - IS_GAME_IN_CONTROL_OF_MUSIC=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x6D28DC1671E334FD, "")end - SET_GPS_ACTIVE=--[[void]] function(--[[BOOL (bool)]] active)return native_invoker.unified_void(active, 0x3BD3F52BA9B1E4E8, "b")end - -- Called 38 times in the scripts. There are 5 different audioNames used. - -- One unknown removed below. - -- - -- AUDIO::PLAY_MISSION_COMPLETE_AUDIO("DEAD"); - -- AUDIO::PLAY_MISSION_COMPLETE_AUDIO("FRANKLIN_BIG_01"); - -- AUDIO::PLAY_MISSION_COMPLETE_AUDIO("GENERIC_FAILED"); - -- AUDIO::PLAY_MISSION_COMPLETE_AUDIO("TREVOR_SMALL_01"); - PLAY_MISSION_COMPLETE_AUDIO=--[[void]] function(--[[string]] audioName)return native_invoker.unified_void(audioName, 0xB138AAB8A70D3C69, "s")end - IS_MISSION_COMPLETE_PLAYING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x19A30C23F5827F8A, "")end - IS_MISSION_COMPLETE_READY_FOR_UI=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x6F259F82D873B8B8, "")end - BLOCK_DEATH_JINGLE=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xF154B8D1775B2DEC, "b")end - -- Used to prepare a scene where the surrounding sound is muted or a bit changed. This does not play any sound. - -- - -- List of all usable scene names found in b617d. Sorted alphabetically and identical names removed: https://pastebin.com/MtM9N9CC - -- Full list of audio scene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/audioSceneNames.json - START_AUDIO_SCENE=--[[BOOL (bool)]] function(--[[string]] scene)return native_invoker.unified_bool(scene, 0x013A80FC08F6E4F2, "s")end - -- Full list of audio scene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/audioSceneNames.json - STOP_AUDIO_SCENE=--[[void]] function(--[[string]] scene)return native_invoker.unified_void(scene, 0xDFE8422B3B94E688, "s")end - -- ?? - STOP_AUDIO_SCENES=--[[void]] function()return native_invoker.unified_void(0xBAC7FC81A75EC1A1, "")end - -- Full list of audio scene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/audioSceneNames.json - IS_AUDIO_SCENE_ACTIVE=--[[BOOL (bool)]] function(--[[string]] scene)return native_invoker.unified_bool(scene, 0xB65B60556E2A9225, "s")end - -- Full list of audio scene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/audioSceneNames.json - SET_AUDIO_SCENE_VARIABLE=--[[void]] function(--[[string]] scene,--[[string]] variable,--[[float]] value)return native_invoker.unified_void(scene, variable, value, 0xEF21A9EF089A2668, "ssf")end - SET_AUDIO_SCRIPT_CLEANUP_TIME=--[[void]] function(--[[int]] time)return native_invoker.unified_void(time, 0xA5F377B175A699C5, "i")end - -- All found occurrences in b678d: - -- https://pastebin.com/ceu67jz8 - ADD_ENTITY_TO_AUDIO_MIX_GROUP=--[[void]] function(--[[Entity (int)]] entity,--[[string]] groupName,--[[float]] p2)return native_invoker.unified_void(entity, groupName, p2, 0x153973AB99FE8980, "isf")end - REMOVE_ENTITY_FROM_AUDIO_MIX_GROUP=--[[void]] function(--[[Entity (int)]] entity,--[[float]] p1)return native_invoker.unified_void(entity, p1, 0x18EB48CFC41F2EA0, "if")end - AUDIO_IS_MUSIC_PLAYING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x845FFC3A4FEEFA3E, "")end - -- This is an alias of AUDIO_IS_MUSIC_PLAYING. - AUDIO_IS_SCRIPTED_MUSIC_PLAYING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x2DD39BF3E2F9C47F, "")end - -- All music event names found in the b617d scripts: https://pastebin.com/GnYt0R3P - -- Full list of music event names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/musicEventNames.json - PREPARE_MUSIC_EVENT=--[[BOOL (bool)]] function(--[[string]] eventName)return native_invoker.unified_bool(eventName, 0x1E5185B72EF5158A, "s")end - -- All music event names found in the b617d scripts: https://pastebin.com/GnYt0R3P - -- Full list of music event names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/musicEventNames.json - CANCEL_MUSIC_EVENT=--[[BOOL (bool)]] function(--[[string]] eventName)return native_invoker.unified_bool(eventName, 0x5B17A90291133DA5, "s")end - -- List of all usable event names found in b617d used with this native. Sorted alphabetically and identical names removed: https://pastebin.com/RzDFmB1W - -- - -- All music event names found in the b617d scripts: https://pastebin.com/GnYt0R3P - -- Full list of music event names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/musicEventNames.json - TRIGGER_MUSIC_EVENT=--[[BOOL (bool)]] function(--[[string]] eventName)return native_invoker.unified_bool(eventName, 0x706D57B0F50DA710, "s")end - IS_MUSIC_ONESHOT_PLAYING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xA097AB275061FB21, "")end - GET_MUSIC_PLAYTIME=--[[int]] function()return native_invoker.unified_int(0xE7A0D23DC414507B, "")end - SET_GLOBAL_RADIO_SIGNAL_LEVEL=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x159B7318403A1CD8, "i")end - RECORD_BROKEN_GLASS=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius)return native_invoker.unified_void(x, y, z, radius, 0xFBE20329593DEC9D, "ffff")end - CLEAR_ALL_BROKEN_GLASS=--[[void]] function()return native_invoker.unified_void(0xB32209EFFDC04913, "")end - SCRIPT_OVERRIDES_WIND_ELEVATION=--[[void]] function(--[[BOOL (bool)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x70B8EC8FC108A634, "bi")end - SET_PED_WALLA_DENSITY=--[[void]] function(--[[float]] p0,--[[float]] p1)return native_invoker.unified_void(p0, p1, 0x149AEE66F0CB3A99, "ff")end - SET_PED_INTERIOR_WALLA_DENSITY=--[[void]] function(--[[float]] p0,--[[float]] p1)return native_invoker.unified_void(p0, p1, 0x8BF907833BE275DE, "ff")end - FORCE_PED_PANIC_WALLA=--[[void]] function()return native_invoker.unified_void(0x062D5EAD4DA2FA6A, "")end - -- Example: - -- - -- bool prepareAlarm = AUDIO::PREPARE_ALARM("PORT_OF_LS_HEIST_FORT_ZANCUDO_ALARMS"); - -- Full list of alarm names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/alarmSounds.json - PREPARE_ALARM=--[[BOOL (bool)]] function(--[[string]] alarmName)return native_invoker.unified_bool(alarmName, 0x9D74AE343DB65533, "s")end - -- Example: - -- - -- This will start the alarm at Fort Zancudo. - -- - -- AUDIO::START_ALARM("PORT_OF_LS_HEIST_FORT_ZANCUDO_ALARMS", 1); - -- - -- First parameter (char) is the name of the alarm. - -- Second parameter (bool) is unknown, it does not seem to make a difference if this one is 0 or 1. - -- - -- ---------- - -- - -- It DOES make a difference but it has to do with the duration or something I dunno yet - -- - -- ---------- - -- - -- Found in the b617d scripts: - -- - -- AUDIO::START_ALARM("AGENCY_HEIST_FIB_TOWER_ALARMS", 0); - -- AUDIO::START_ALARM("AGENCY_HEIST_FIB_TOWER_ALARMS_UPPER", 1); - -- AUDIO::START_ALARM("AGENCY_HEIST_FIB_TOWER_ALARMS_UPPER_B", 0); - -- AUDIO::START_ALARM("BIG_SCORE_HEIST_VAULT_ALARMS", a_0); - -- AUDIO::START_ALARM("FBI_01_MORGUE_ALARMS", 1); - -- AUDIO::START_ALARM("FIB_05_BIOTECH_LAB_ALARMS", 0); - -- AUDIO::START_ALARM("JEWEL_STORE_HEIST_ALARMS", 0); - -- AUDIO::START_ALARM("PALETO_BAY_SCORE_ALARM", 1); - -- AUDIO::START_ALARM("PALETO_BAY_SCORE_CHICKEN_FACTORY_ALARM", 0); - -- AUDIO::START_ALARM("PORT_OF_LS_HEIST_FORT_ZANCUDO_ALARMS", 1); - -- AUDIO::START_ALARM("PORT_OF_LS_HEIST_SHIP_ALARMS", 0); - -- AUDIO::START_ALARM("PRISON_ALARMS", 0); - -- AUDIO::START_ALARM("PROLOGUE_VAULT_ALARMS", 0); - -- Full list of alarm names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/alarmSounds.json - START_ALARM=--[[void]] function(--[[string]] alarmName,--[[BOOL (bool)]] p2)return native_invoker.unified_void(alarmName, p2, 0x0355EF116C4C97B2, "sb")end - -- Example: - -- - -- This will stop the alarm at Fort Zancudo. - -- - -- AUDIO::STOP_ALARM("PORT_OF_LS_HEIST_FORT_ZANCUDO_ALARMS", 1); - -- - -- First parameter (char) is the name of the alarm. - -- Second parameter (bool) has to be true (1) to have any effect. - -- Full list of alarm names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/alarmSounds.json - STOP_ALARM=--[[void]] function(--[[string]] alarmName,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(alarmName, toggle, 0xA1CADDCD98415A41, "sb")end - STOP_ALL_ALARMS=--[[void]] function(--[[BOOL (bool)]] stop)return native_invoker.unified_void(stop, 0x2F794A877ADD4C92, "b")end - -- Example: - -- - -- bool playing = AUDIO::IS_ALARM_PLAYING("PORT_OF_LS_HEIST_FORT_ZANCUDO_ALARMS"); - -- Full list of alarm names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/alarmSounds.json - IS_ALARM_PLAYING=--[[BOOL (bool)]] function(--[[string]] alarmName)return native_invoker.unified_bool(alarmName, 0x226435CB96CCFC8C, "s")end - -- Returns hash of default vehicle horn - -- - -- Hash is stored in audVehicleAudioEntity - GET_VEHICLE_DEFAULT_HORN=--[[Hash (int)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x02165D55000219AC, "i")end - GET_VEHICLE_DEFAULT_HORN_IGNORE_MODS=--[[Hash (int)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0xACB5DCCA1EC76840, "i")end - RESET_PED_AUDIO_FLAGS=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xF54BB7B61036F335, "i")end - -- Enables/disables ped's "loud" footstep sound. - SET_PED_FOOTSTEPS_EVENTS_ENABLED=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x0653B735BFBDFE87, "ib")end - -- Enables/disables ped's "quiet" footstep sound. - SET_PED_CLOTH_EVENTS_ENABLED=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x29DA3CA8D8B2692D, "ib")end - -- Sets audio flag "OverridePlayerGroundMaterial" - OVERRIDE_PLAYER_GROUND_MATERIAL=--[[void]] function(--[[Hash (int)]] hash,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(hash, toggle, 0xD2CC78CD3D0B50F9, "ib")end - USE_FOOTSTEP_SCRIPT_SWEETENERS=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1,--[[Hash (int)]] hash)return native_invoker.unified_void(ped, p1, hash, 0xBF4DC1784BE94DFA, "ibi")end - -- Sets audio flag "OverrideMicrophoneSettings" - OVERRIDE_MICROPHONE_SETTINGS=--[[void]] function(--[[Hash (int)]] hash,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(hash, toggle, 0x75773E11BA459E90, "ib")end - FREEZE_MICROPHONE=--[[void]] function()return native_invoker.unified_void(0xD57AAAE0E2214D11, "")end - -- If value is set to true, and ambient siren sound will be played. - -- Appears to enable/disable an audio flag. - DISTANT_COP_CAR_SIRENS=--[[void]] function(--[[BOOL (bool)]] value)return native_invoker.unified_void(value, 0x552369F549563AD5, "b")end - SET_SIREN_CAN_BE_CONTROLLED_BY_AUDIO=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0x43FA0DFC5DF87815, "ib")end - ENABLE_STUNT_JUMP_AUDIO=--[[void]] function()return native_invoker.unified_void(0xB81CF134AEB56FFB, "")end - -- Possible flag names: - -- "ActivateSwitchWheelAudio" - -- "AllowAmbientSpeechInSlowMo" - -- "AllowCutsceneOverScreenFade" - -- "AllowForceRadioAfterRetune" - -- "AllowPainAndAmbientSpeechToPlayDuringCutscene" - -- "AllowPlayerAIOnMission" - -- "AllowPoliceScannerWhenPlayerHasNoControl" - -- "AllowRadioDuringSwitch" - -- "AllowRadioOverScreenFade" - -- "AllowScoreAndRadio" - -- "AllowScriptedSpeechInSlowMo" - -- "AvoidMissionCompleteDelay" - -- "DisableAbortConversationForDeathAndInjury" - -- "DisableAbortConversationForRagdoll" - -- "DisableBarks" - -- "DisableFlightMusic" - -- "DisableReplayScriptStreamRecording" - -- "EnableHeadsetBeep" - -- "ForceConversationInterrupt" - -- "ForceSeamlessRadioSwitch" - -- "ForceSniperAudio" - -- "FrontendRadioDisabled" - -- "HoldMissionCompleteWhenPrepared" - -- "IsDirectorModeActive" - -- "IsPlayerOnMissionForSpeech" - -- "ListenerReverbDisabled" - -- "LoadMPData" - -- "MobileRadioInGame" - -- "OnlyAllowScriptTriggerPoliceScanner" - -- "PlayMenuMusic" - -- "PoliceScannerDisabled" - -- "ScriptedConvListenerMaySpeak" - -- "SpeechDucksScore" - -- "SuppressPlayerScubaBreathing" - -- "WantedMusicDisabled" - -- "WantedMusicOnMission" - -- - -- ------------------------------- - -- No added flag names between b393d and b573d, including b573d. - -- - -- ####################################################################### - -- - -- "IsDirectorModeActive" is an audio flag which will allow you to play speech infinitely without any pauses like in Director Mode. - -- - -- ----------------------------------------------------------------------- - -- - -- All flag IDs and hashes: - -- - -- ID: 00 | Hash: 0x0FED7A7F - -- ID: 01 | Hash: 0x20A7858F - -- ID: 02 | Hash: 0xA11C2259 - -- ID: 03 | Hash: 0x08DE4700 - -- ID: 04 | Hash: 0x989F652F - -- ID: 05 | Hash: 0x3C9E76BA - -- ID: 06 | Hash: 0xA805FEB0 - -- ID: 07 | Hash: 0x4B94EA26 - -- ID: 08 | Hash: 0x803ACD34 - -- ID: 09 | Hash: 0x7C741226 - -- ID: 10 | Hash: 0x31DB9EBD - -- ID: 11 | Hash: 0xDF386F18 - -- ID: 12 | Hash: 0x669CED42 - -- ID: 13 | Hash: 0x51F22743 - -- ID: 14 | Hash: 0x2052B35C - -- ID: 15 | Hash: 0x071472DC - -- ID: 16 | Hash: 0xF9928BCC - -- ID: 17 | Hash: 0x7ADBDD48 - -- ID: 18 | Hash: 0xA959BA1A - -- ID: 19 | Hash: 0xBBE89B60 - -- ID: 20 | Hash: 0x87A08871 - -- ID: 21 | Hash: 0xED1057CE - -- ID: 22 | Hash: 0x1584AD7A - -- ID: 23 | Hash: 0x8582CFCB - -- ID: 24 | Hash: 0x7E5E2FB0 - -- ID: 25 | Hash: 0xAE4F72DB - -- ID: 26 | Hash: 0x5D16D1FA - -- ID: 27 | Hash: 0x06B2F4B8 - -- ID: 28 | Hash: 0x5D4CDC96 - -- ID: 29 | Hash: 0x8B5A48BA - -- ID: 30 | Hash: 0x98FBD539 - -- ID: 31 | Hash: 0xD8CB0473 - -- ID: 32 | Hash: 0x5CBB4874 - -- ID: 33 | Hash: 0x2E9F93A9 - -- ID: 34 | Hash: 0xD93BEA86 - -- ID: 35 | Hash: 0x92109B7D - -- ID: 36 | Hash: 0xB7EC9E4D - -- ID: 37 | Hash: 0xCABDBB1D - -- ID: 38 | Hash: 0xB3FD4A52 - -- ID: 39 | Hash: 0x370D94E5 - -- ID: 40 | Hash: 0xA0F7938F - -- ID: 41 | Hash: 0xCBE1CE81 - -- ID: 42 | Hash: 0xC27F1271 - -- ID: 43 | Hash: 0x9E3258EB - -- ID: 44 | Hash: 0x551CDA5B - -- ID: 45 | Hash: 0xCB6D663C - -- ID: 46 | Hash: 0x7DACE87F - -- ID: 47 | Hash: 0xF9DE416F - -- ID: 48 | Hash: 0x882E6E9E - -- ID: 49 | Hash: 0x16B447E7 - -- ID: 50 | Hash: 0xBD867739 - -- ID: 51 | Hash: 0xA3A58604 - -- ID: 52 | Hash: 0x7E046BBC - -- ID: 53 | Hash: 0xD95FDB98 - -- ID: 54 | Hash: 0x5842C0ED - -- ID: 55 | Hash: 0x285FECC6 - -- ID: 56 | Hash: 0x9351AC43 - -- ID: 57 | Hash: 0x50032E75 - -- ID: 58 | Hash: 0xAE6D0D59 - -- ID: 59 | Hash: 0xD6351785 - -- ID: 60 | Hash: 0xD25D71BC - -- ID: 61 | Hash: 0x1F7F6423 - -- ID: 62 | Hash: 0xE24C3AA6 - -- ID: 63 | Hash: 0xBFFDD2B7 - SET_AUDIO_FLAG=--[[void]] function(--[[string]] flagName,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(flagName, toggle, 0xB9EFD5C25018725A, "sb")end - -- p1 is always 0 in the scripts - PREPARE_SYNCHRONIZED_AUDIO_EVENT=--[[BOOL (bool)]] function(--[[string]] audioEvent,--[[Any (int)]] p1)return native_invoker.unified_bool(audioEvent, p1, 0xC7ABCACA4985A766, "si")end - PREPARE_SYNCHRONIZED_AUDIO_EVENT_FOR_SCENE=--[[BOOL (bool)]] function(--[[int]] sceneID,--[[string]] audioEvent)return native_invoker.unified_bool(sceneID, audioEvent, 0x029FE7CD1B7E2E75, "is")end - PLAY_SYNCHRONIZED_AUDIO_EVENT=--[[BOOL (bool)]] function(--[[int]] sceneID)return native_invoker.unified_bool(sceneID, 0x8B2FD4560E55DD2D, "i")end - STOP_SYNCHRONIZED_AUDIO_EVENT=--[[BOOL (bool)]] function(--[[int]] sceneID)return native_invoker.unified_bool(sceneID, 0x92D6A88E64A94430, "i")end - INIT_SYNCH_SCENE_AUDIO_WITH_POSITION=--[[void]] function(--[[string]] audioEvent,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(audioEvent, x, y, z, 0xC8EDE9BDBCCBA6D4, "sfff")end - INIT_SYNCH_SCENE_AUDIO_WITH_ENTITY=--[[void]] function(--[[string]] audioEvent,--[[Entity (int)]] entity)return native_invoker.unified_void(audioEvent, entity, 0x950A154B8DAB6185, "si")end - -- Needs to be called every frame. - -- Audio mode to apply this frame: https://alloc8or.re/gta5/doc/enums/audSpecialEffectMode.txt - SET_AUDIO_SPECIAL_EFFECT_MODE=--[[void]] function(--[[int]] mode)return native_invoker.unified_void(mode, 0x12561FCBB62D5B9C, "i")end - -- Found in the b617d scripts, duplicates removed: - -- - -- AUDIO::SET_PORTAL_SETTINGS_OVERRIDE("V_CARSHOWROOM_PS_WINDOW_UNBROKEN", "V_CARSHOWROOM_PS_WINDOW_BROKEN"); - -- - -- AUDIO::SET_PORTAL_SETTINGS_OVERRIDE("V_CIA_PS_WINDOW_UNBROKEN", "V_CIA_PS_WINDOW_BROKEN"); - -- - -- AUDIO::SET_PORTAL_SETTINGS_OVERRIDE("V_DLC_HEIST_APARTMENT_DOOR_CLOSED", "V_DLC_HEIST_APARTMENT_DOOR_OPEN"); - -- - -- AUDIO::SET_PORTAL_SETTINGS_OVERRIDE("V_FINALEBANK_PS_VAULT_INTACT", "V_FINALEBANK_PS_VAULT_BLOWN"); - -- - -- AUDIO::SET_PORTAL_SETTINGS_OVERRIDE("V_MICHAEL_PS_BATHROOM_WITH_WINDOW", "V_MICHAEL_PS_BATHROOM_WITHOUT_WINDOW"); - SET_PORTAL_SETTINGS_OVERRIDE=--[[void]] function(--[[string]] p0,--[[string]] p1)return native_invoker.unified_void(p0, p1, 0x044DBAD7A7FA2BE5, "ss")end - -- Found in the b617d scripts, duplicates removed: - -- - -- AUDIO::REMOVE_PORTAL_SETTINGS_OVERRIDE("V_CARSHOWROOM_PS_WINDOW_UNBROKEN"); - -- AUDIO::REMOVE_PORTAL_SETTINGS_OVERRIDE("V_CIA_PS_WINDOW_UNBROKEN"); - -- AUDIO::REMOVE_PORTAL_SETTINGS_OVERRIDE("V_DLC_HEIST_APARTMENT_DOOR_CLOSED"); - -- AUDIO::REMOVE_PORTAL_SETTINGS_OVERRIDE("V_FINALEBANK_PS_VAULT_INTACT"); - -- AUDIO::REMOVE_PORTAL_SETTINGS_OVERRIDE("V_MICHAEL_PS_BATHROOM_WITH_WINDOW"); - REMOVE_PORTAL_SETTINGS_OVERRIDE=--[[void]] function(--[[string]] p0)return native_invoker.unified_void(p0, 0xB4BBFD9CD8B3922B, "s")end - -- STOP_S[MOKE_GRENADE_EXPLOSION_SOUNDS]? - STOP_SMOKE_GRENADE_EXPLOSION_SOUNDS=--[[void]] function()return native_invoker.unified_void(0xE4E6DD5566D28C82, "")end - GET_MUSIC_VOL_SLIDER=--[[int]] function()return native_invoker.unified_int(0x3A48AB4445D499BE, "")end - REQUEST_TENNIS_BANKS=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x4ADA3F19BE4A6047, "i")end - UNREQUEST_TENNIS_BANKS=--[[void]] function()return native_invoker.unified_void(0x0150B6FF25A9E2E5, "")end - SET_SKIP_MINIGUN_SPIN_UP_AUDIO=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xBEF34B1D9624D5DD, "b")end - STOP_CUTSCENE_AUDIO=--[[void]] function()return native_invoker.unified_void(0x806058BBDC136E06, "")end - HAS_LOADED_MP_DATA_SET=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x544810ED9DB6BBE6, "")end - HAS_LOADED_SP_DATA_SET=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x5B50ABB1FE3746F4, "")end - GET_VEHICLE_HORN_SOUND_INDEX=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0xD53F3A29BCE2580E, "i")end - SET_VEHICLE_HORN_SOUND_INDEX=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] value)return native_invoker.unified_void(vehicle, value, 0x0350E7E17BA767D0, "ii")end --- BRAIN - -- BRAIN::ADD_SCRIPT_TO_RANDOM_PED("pb_prostitute", ${s_f_y_hooker_01}, 100, 0); - -- - -- - Nacorpio - -- - -- ----- - -- - -- Hardcoded to not work in Multiplayer. - ADD_SCRIPT_TO_RANDOM_PED=--[[void]] function(--[[string]] name,--[[Hash (int)]] model,--[[float]] p2,--[[float]] p3)return native_invoker.unified_void(name, model, p2, p3, 0x4EE5367468A65CCC, "siff")end - -- Registers a script for any object with a specific model hash. - -- - -- BRAIN::REGISTER_OBJECT_SCRIPT_BRAIN("ob_telescope", ${prop_telescope_01}, 100, 4.0, -1, 9); - -- - -- - Nacorpio - REGISTER_OBJECT_SCRIPT_BRAIN=--[[void]] function(--[[string]] scriptName,--[[Hash (int)]] modelHash,--[[int]] p2,--[[float]] activationRange,--[[int]] p4,--[[int]] p5)return native_invoker.unified_void(scriptName, modelHash, p2, activationRange, p4, p5, 0x0BE84C318BA6EC22, "siifii")end - IS_OBJECT_WITHIN_BRAIN_ACTIVATION_RANGE=--[[BOOL (bool)]] function(--[[Object (int)]] object)return native_invoker.unified_bool(object, 0xCCBA154209823057, "i")end - REGISTER_WORLD_POINT_SCRIPT_BRAIN=--[[void]] function(--[[string]] scriptName,--[[float]] activationRange,--[[int]] p2)return native_invoker.unified_void(scriptName, activationRange, p2, 0x3CDC7136613284BD, "sfi")end - -- Gets whether the world point the calling script is registered to is within desired range of the player. - IS_WORLD_POINT_WITHIN_BRAIN_ACTIVATION_RANGE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC5042CC6F5E3D450, "")end - ENABLE_SCRIPT_BRAIN_SET=--[[void]] function(--[[int]] brainSet)return native_invoker.unified_void(brainSet, 0x67AA4D73F0CFA86B, "i")end - DISABLE_SCRIPT_BRAIN_SET=--[[void]] function(--[[int]] brainSet)return native_invoker.unified_void(brainSet, 0x14D8518E9760F08F, "i")end - REACTIVATE_ALL_WORLD_BRAINS_THAT_ARE_WAITING_TILL_OUT_OF_RANGE=--[[void]] function()return native_invoker.unified_void(0x0B40ED49D7D6FF84, "")end - REACTIVATE_ALL_OBJECT_BRAINS_THAT_ARE_WAITING_TILL_OUT_OF_RANGE=--[[void]] function()return native_invoker.unified_void(0x4D953DF78EBF8158, "")end - -- Possible values: - -- - -- act_cinema - -- am_mp_carwash_launch - -- am_mp_carwash_control - -- am_mp_property_ext - -- chop - -- fairgroundHub - -- launcher_BasejumpHeli - -- launcher_BasejumpPack - -- launcher_CarWash - -- launcher_golf - -- launcher_Hunting_Ambient - -- launcher_MrsPhilips - -- launcher_OffroadRacing - -- launcher_pilotschool - -- launcher_Racing - -- launcher_rampage - -- launcher_rampage - -- launcher_range - -- launcher_stunts - -- launcher_stunts - -- launcher_tennis - -- launcher_Tonya - -- launcher_Triathlon - -- launcher_Yoga - -- ob_mp_bed_low - -- ob_mp_bed_med - REACTIVATE_NAMED_WORLD_BRAINS_WAITING_TILL_OUT_OF_RANGE=--[[void]] function(--[[string]] scriptName)return native_invoker.unified_void(scriptName, 0x6D6840CEE8845831, "s")end - -- Looks like a cousin of above function _6D6840CEE8845831 as it was found among them. Must be similar - -- - -- Here are possible values of argument - - -- - -- "ob_tv" - -- "launcher_Darts" - REACTIVATE_NAMED_OBJECT_BRAINS_WAITING_TILL_OUT_OF_RANGE=--[[void]] function(--[[string]] scriptName)return native_invoker.unified_void(scriptName, 0x6E91B04E08773030, "s")end --- CAM - -- ease - smooth transition between the camera's positions - -- easeTime - Time in milliseconds for the transition to happen - -- - -- If you have created a script (rendering) camera, and want to go back to the - -- character (gameplay) camera, call this native with render set to 0. - -- Setting ease to 1 will smooth the transition. - RENDER_SCRIPT_CAMS=--[[void]] function(--[[BOOL (bool)]] render,--[[BOOL (bool)]] ease,--[[int]] easeTime,--[[BOOL (bool)]] p3,--[[BOOL (bool)]] p4,--[[Any (int)]] p5)return native_invoker.unified_void(render, ease, easeTime, p3, p4, p5, 0x07E5B515DB0636FC, "bbibbi")end - -- This native makes the gameplay camera zoom into first person/third person with a special effect. - STOP_RENDERING_SCRIPT_CAMS_USING_CATCH_UP=--[[void]] function(--[[BOOL (bool)]] render,--[[float]] p1,--[[int]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(render, p1, p2, p3, 0xC819F3CBB62BF692, "bfii")end - -- "DEFAULT_SCRIPTED_CAMERA" - -- "DEFAULT_ANIMATED_CAMERA" - -- "DEFAULT_SPLINE_CAMERA" - -- "DEFAULT_SCRIPTED_FLY_CAMERA" - -- "TIMED_SPLINE_CAMERA" - CREATE_CAM=--[[Cam (int)]] function(--[[string]] camName,--[[BOOL (bool)]] p1)return native_invoker.unified_int(camName, p1, 0xC3981DCE61D9E13F, "sb")end - -- camName is always set to "DEFAULT_SCRIPTED_CAMERA" in Rockstar's scripts. - -- ------------ - -- Camera names found in the b617d scripts: - -- "DEFAULT_ANIMATED_CAMERA" - -- "DEFAULT_SCRIPTED_CAMERA" - -- "DEFAULT_SCRIPTED_FLY_CAMERA" - -- "DEFAULT_SPLINE_CAMERA" - -- ------------ - -- Side Note: It seems p8 is basically to represent what would be the bool p1 within CREATE_CAM native. As well as the p9 since it's always 2 in scripts seems to represent what would be the last param within SET_CAM_ROT native which normally would be 2. - CREATE_CAM_WITH_PARAMS=--[[Cam (int)]] function(--[[string]] camName,--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ,--[[float]] fov,--[[BOOL (bool)]] p8,--[[int]] p9)return native_invoker.unified_int(camName, posX, posY, posZ, rotX, rotY, rotZ, fov, p8, p9, 0xB51194800B257161, "sfffffffbi")end - CREATE_CAMERA=--[[Cam (int)]] function(--[[Hash (int)]] camHash,--[[BOOL (bool)]] p1)return native_invoker.unified_int(camHash, p1, 0x5E3CF89C6BCCA67D, "ib")end - -- p9 uses 2 by default - CREATE_CAMERA_WITH_PARAMS=--[[Cam (int)]] function(--[[Hash (int)]] camHash,--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ,--[[float]] fov,--[[BOOL (bool)]] p8,--[[Any (int)]] p9)return native_invoker.unified_int(camHash, posX, posY, posZ, rotX, rotY, rotZ, fov, p8, p9, 0x6ABFA3E16460F22D, "ifffffffbi")end - -- BOOL param indicates whether the cam should be destroyed if it belongs to the calling script. - DESTROY_CAM=--[[void]] function(--[[Cam (int)]] cam,--[[BOOL (bool)]] bScriptHostCam)return native_invoker.unified_void(cam, bScriptHostCam, 0x865908C81A2C22E9, "ib")end - -- BOOL param indicates whether the cam should be destroyed if it belongs to the calling script. - DESTROY_ALL_CAMS=--[[void]] function(--[[BOOL (bool)]] bScriptHostCam)return native_invoker.unified_void(bScriptHostCam, 0x8E5FB15663F79120, "b")end - -- Returns whether or not the passed camera handle exists. - DOES_CAM_EXIST=--[[BOOL (bool)]] function(--[[Cam (int)]] cam)return native_invoker.unified_bool(cam, 0xA7A932170592B50E, "i")end - -- Set camera as active/inactive. - SET_CAM_ACTIVE=--[[void]] function(--[[Cam (int)]] cam,--[[BOOL (bool)]] active)return native_invoker.unified_void(cam, active, 0x026FB97D0A425F84, "ib")end - -- Returns whether or not the passed camera handle is active. - IS_CAM_ACTIVE=--[[BOOL (bool)]] function(--[[Cam (int)]] cam)return native_invoker.unified_bool(cam, 0xDFB2B516207D3534, "i")end - IS_CAM_RENDERING=--[[BOOL (bool)]] function(--[[Cam (int)]] cam)return native_invoker.unified_bool(cam, 0x02EC0AF5C5A49B7A, "i")end - GET_RENDERING_CAM=--[[Cam (int)]] function()return native_invoker.unified_int(0x5234F9F10919EABA, "")end - GET_CAM_COORD=--[[Vector3 (vector3)]] function(--[[Cam (int)]] cam)return native_invoker.unified_vector3(cam, 0xBAC038F7459AE5AE, "i")end - -- The last parameter, as in other "ROT" methods, is usually 2. - GET_CAM_ROT=--[[Vector3 (vector3)]] function(--[[Cam (int)]] cam,--[[int]] rotationOrder)return native_invoker.unified_vector3(cam, rotationOrder, 0x7D304C1C955E3E12, "ii")end - GET_CAM_FOV=--[[float]] function(--[[Cam (int)]] cam)return native_invoker.unified_float(cam, 0xC3330A45CCCDB26A, "i")end - GET_CAM_NEAR_CLIP=--[[float]] function(--[[Cam (int)]] cam)return native_invoker.unified_float(cam, 0xC520A34DAFBF24B1, "i")end - GET_CAM_FAR_CLIP=--[[float]] function(--[[Cam (int)]] cam)return native_invoker.unified_float(cam, 0xB60A9CFEB21CA6AA, "i")end - GET_CAM_NEAR_DOF=--[[float]] function(--[[Cam (int)]] cam)return native_invoker.unified_float(cam, 0xC2612D223D915A1C, "i")end - GET_CAM_FAR_DOF=--[[float]] function(--[[Cam (int)]] cam)return native_invoker.unified_float(cam, 0x255F8DAFD540D397, "i")end - GET_CAM_DOF_STRENGTH=--[[float]] function(--[[Cam (int)]] cam)return native_invoker.unified_float(cam, 0x06D153C0B99B6128, "i")end - SET_CAM_PARAMS=--[[void]] function(--[[Cam (int)]] cam,--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ,--[[float]] fieldOfView,--[[Any (int)]] p8,--[[int]] p9,--[[int]] p10,--[[int]] p11)return native_invoker.unified_void(cam, posX, posY, posZ, rotX, rotY, rotZ, fieldOfView, p8, p9, p10, p11, 0xBFD8727AEA3CCEBA, "ifffffffiiii")end - -- Sets the position of the cam. - SET_CAM_COORD=--[[void]] function(--[[Cam (int)]] cam,--[[float]] posX,--[[float]] posY,--[[float]] posZ)return native_invoker.unified_void(cam, posX, posY, posZ, 0x4D41783FB745E42E, "ifff")end - -- Sets the rotation of the cam. - -- Last parameter unknown. - -- - -- Last parameter seems to always be set to 2. - SET_CAM_ROT=--[[void]] function(--[[Cam (int)]] cam,--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ,--[[int]] rotationOrder)return native_invoker.unified_void(cam, rotX, rotY, rotZ, rotationOrder, 0x85973643155D0B07, "ifffi")end - -- Sets the field of view of the cam. - -- --------------------------------------------- - -- Min: 1.0f - -- Max: 130.0f - SET_CAM_FOV=--[[void]] function(--[[Cam (int)]] cam,--[[float]] fieldOfView)return native_invoker.unified_void(cam, fieldOfView, 0xB13C14F66A00D047, "if")end - SET_CAM_NEAR_CLIP=--[[void]] function(--[[Cam (int)]] cam,--[[float]] nearClip)return native_invoker.unified_void(cam, nearClip, 0xC7848EFCCC545182, "if")end - SET_CAM_FAR_CLIP=--[[void]] function(--[[Cam (int)]] cam,--[[float]] farClip)return native_invoker.unified_void(cam, farClip, 0xAE306F2A904BF86E, "if")end - FORCE_CAM_FAR_CLIP=--[[void]] function(--[[Cam (int)]] cam,--[[float]] p1)return native_invoker.unified_void(cam, p1, 0xAABD62873FFB1A33, "if")end - SET_CAM_MOTION_BLUR_STRENGTH=--[[void]] function(--[[Cam (int)]] cam,--[[float]] strength)return native_invoker.unified_void(cam, strength, 0x6F0F77FBA9A8F2E6, "if")end - SET_CAM_NEAR_DOF=--[[void]] function(--[[Cam (int)]] cam,--[[float]] nearDOF)return native_invoker.unified_void(cam, nearDOF, 0x3FA4BF0A7AB7DE2C, "if")end - SET_CAM_FAR_DOF=--[[void]] function(--[[Cam (int)]] cam,--[[float]] farDOF)return native_invoker.unified_void(cam, farDOF, 0xEDD91296CD01AEE0, "if")end - SET_CAM_DOF_STRENGTH=--[[void]] function(--[[Cam (int)]] cam,--[[float]] dofStrength)return native_invoker.unified_void(cam, dofStrength, 0x5EE29B4D7D5DF897, "if")end - SET_CAM_DOF_PLANES=--[[void]] function(--[[Cam (int)]] cam,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4)return native_invoker.unified_void(cam, p1, p2, p3, p4, 0x3CF48F6F96E749DC, "iffff")end - SET_CAM_USE_SHALLOW_DOF_MODE=--[[void]] function(--[[Cam (int)]] cam,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(cam, toggle, 0x16A96863A17552BB, "ib")end - SET_USE_HI_DOF=--[[void]] function()return native_invoker.unified_void(0xA13B0222F3D94A94, "")end - -- Only used in R* Script fm_mission_controller_2020 - SET_USE_HI_DOF_ON_SYNCED_SCENE_THIS_UPDATE=--[[void]] function()return native_invoker.unified_void(0x731A880555DA3647, "")end - SET_CAM_DOF_OVERRIDDEN_FOCUS_DISTANCE=--[[void]] function(--[[Cam (int)]] camera,--[[float]] p1)return native_invoker.unified_void(camera, p1, 0xF55E4046F6F831DC, "if")end - SET_CAM_DOF_OVERRIDDEN_FOCUS_DISTANCE_BLEND_LEVEL=--[[void]] function(--[[Any (int)]] p0,--[[float]] p1)return native_invoker.unified_void(p0, p1, 0xE111A7C0D200CBC5, "if")end - -- This native has its name defined inside its codE - -- - SET_CAM_DOF_FNUMBER_OF_LENS=--[[void]] function(--[[Cam (int)]] camera,--[[float]] p1)return native_invoker.unified_void(camera, p1, 0x7DD234D6F3914C5B, "if")end - -- Native name labeled within its code - SET_CAM_DOF_FOCAL_LENGTH_MULTIPLIER=--[[void]] function(--[[Cam (int)]] camera,--[[float]] multiplier)return native_invoker.unified_void(camera, multiplier, 0x47B595D60664CFFA, "if")end - -- This native has a name defined inside its code - SET_CAM_DOF_FOCUS_DISTANCE_BIAS=--[[void]] function(--[[Cam (int)]] camera,--[[float]] p1)return native_invoker.unified_void(camera, p1, 0xC669EEA5D031B7DE, "if")end - -- This native has a name defined inside its code - SET_CAM_DOF_MAX_NEAR_IN_FOCUS_DISTANCE=--[[void]] function(--[[Cam (int)]] camera,--[[float]] p1)return native_invoker.unified_void(camera, p1, 0xC3654A441402562D, "if")end - -- This native has a name defined inside its code - SET_CAM_DOF_MAX_NEAR_IN_FOCUS_DISTANCE_BLEND_LEVEL=--[[void]] function(--[[Cam (int)]] camera,--[[float]] p1)return native_invoker.unified_void(camera, p1, 0x2C654B4943BDDF7C, "if")end - -- This native has a name defined inside its code - SET_CAM_DOF_SHOULD_KEEP_LOOK_AT_TARGET_IN_FOCUS=--[[void]] function(--[[Cam (int)]] camera,--[[BOOL (bool)]] state)return native_invoker.unified_void(camera, state, 0x7CF3AF51DCFE4108, "ib")end - -- Last param determines if its relative to the Entity - ATTACH_CAM_TO_ENTITY=--[[void]] function(--[[Cam (int)]] cam,--[[Entity (int)]] entity,--[[float]] xOffset,--[[float]] yOffset,--[[float]] zOffset,--[[BOOL (bool)]] isRelative)return native_invoker.unified_void(cam, entity, xOffset, yOffset, zOffset, isRelative, 0xFEDB7D269E8C60E3, "iifffb")end - ATTACH_CAM_TO_PED_BONE=--[[void]] function(--[[Cam (int)]] cam,--[[Ped (int)]] ped,--[[int]] boneIndex,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] heading)return native_invoker.unified_void(cam, ped, boneIndex, x, y, z, heading, 0x61A3DBA14AB7F411, "iiifffb")end - HARD_ATTACH_CAM_TO_PED_BONE=--[[void]] function(--[[Cam (int)]] cam,--[[Ped (int)]] ped,--[[int]] boneIndex,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[float]] p6,--[[float]] p7,--[[float]] p8,--[[BOOL (bool)]] p9)return native_invoker.unified_void(cam, ped, boneIndex, p3, p4, p5, p6, p7, p8, p9, 0x149916F50C34A40D, "iiiffffffb")end - -- Example from am_mp_drone script: - -- - -- CAM::HARD_ATTACH_CAM_TO_ENTITY(Local_190.f_169, NETWORK::NET_TO_OBJ(Local_190.f_159), 0f, 0f, 180f, Var0, 1); - HARD_ATTACH_CAM_TO_ENTITY=--[[void]] function(--[[Cam (int)]] cam,--[[Entity (int)]] entity,--[[float]] xRot,--[[float]] yRot,--[[float]] zRot,--[[float]] xOffset,--[[float]] yOffset,--[[float]] zOffset,--[[BOOL (bool)]] isRelative)return native_invoker.unified_void(cam, entity, xRot, yRot, zRot, xOffset, yOffset, zOffset, isRelative, 0x202A5ED9CE01D6E7, "iiffffffb")end - -- This native works with vehicles only. Bone indexes are usually given by this native GET_ENTITY_BONE_INDEX_BY_NAME. - ATTACH_CAM_TO_VEHICLE_BONE=--[[void]] function(--[[Cam (int)]] cam,--[[Vehicle (int)]] vehicle,--[[int]] boneIndex,--[[BOOL (bool)]] relativeRotation,--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ,--[[float]] offsetX,--[[float]] offsetY,--[[float]] offsetZ,--[[BOOL (bool)]] fixedDirection)return native_invoker.unified_void(cam, vehicle, boneIndex, relativeRotation, rotX, rotY, rotZ, offsetX, offsetY, offsetZ, fixedDirection, 0x8DB3F12A02CAEF72, "iiibffffffb")end - DETACH_CAM=--[[void]] function(--[[Cam (int)]] cam)return native_invoker.unified_void(cam, 0xA2FABBE87F4BAD82, "i")end - -- The native seems to only be called once. - -- - -- The native is used as so, - -- CAM::SET_CAM_INHERIT_ROLL_VEHICLE(l_544, getElem(2, &l_525, 4)); - -- In the exile1 script. - SET_CAM_INHERIT_ROLL_VEHICLE=--[[void]] function(--[[Cam (int)]] cam,--[[BOOL (bool)]] p1)return native_invoker.unified_void(cam, p1, 0x45F1DE9C34B93AE6, "ib")end - POINT_CAM_AT_COORD=--[[void]] function(--[[Cam (int)]] cam,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(cam, x, y, z, 0xF75497BB865F0803, "ifff")end - -- p5 always seems to be 1 i.e TRUE - POINT_CAM_AT_ENTITY=--[[void]] function(--[[Cam (int)]] cam,--[[Entity (int)]] entity,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[BOOL (bool)]] p5)return native_invoker.unified_void(cam, entity, p2, p3, p4, p5, 0x5640BFF86B16E8DC, "iifffb")end - -- Parameters p0-p5 seems correct. The bool p6 is unknown, but through every X360 script it's always 1. Please correct p0-p5 if any prove to be wrong. - POINT_CAM_AT_PED_BONE=--[[void]] function(--[[Cam (int)]] cam,--[[Ped (int)]] ped,--[[int]] boneIndex,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] p6)return native_invoker.unified_void(cam, ped, boneIndex, x, y, z, p6, 0x68B2B5F33BA63C41, "iiifffb")end - STOP_CAM_POINTING=--[[void]] function(--[[Cam (int)]] cam)return native_invoker.unified_void(cam, 0xF33AB75780BA57DE, "i")end - -- Allows you to aim and shoot at the direction the camera is facing. - SET_CAM_AFFECTS_AIMING=--[[void]] function(--[[Cam (int)]] cam,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(cam, toggle, 0x8C1DC7770C51DC8D, "ib")end - -- Rotates the radar to match the camera's Z rotation - SET_CAM_CONTROLS_MINI_MAP_HEADING=--[[void]] function(--[[Cam (int)]] cam,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(cam, toggle, 0x661B5C8654ADD825, "ib")end - -- When set to true shadows appear more smooth but less detailed. - -- Set to false by default. - SET_CAM_IS_INSIDE_VEHICLE=--[[void]] function(--[[Cam (int)]] cam,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(cam, toggle, 0xA2767257A320FC82, "ib")end - ALLOW_MOTION_BLUR_DECAY=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0x271017B9BA825366, "ib")end - -- NOTE: Debugging functions are not present in the retail version of the game. - SET_CAM_DEBUG_NAME=--[[void]] function(--[[Cam (int)]] camera,--[[string]] name)return native_invoker.unified_void(camera, name, 0x1B93E0107865DD40, "is")end - GET_DEBUG_CAM=--[[Cam (int)]] function()return native_invoker.unified_int(0x77C3CEC46BE286F6, "")end - -- I filled p1-p6 (the floats) as they are as other natives with 6 floats in a row are similar and I see no other method. So if a test from anyone proves them wrong please correct. - -- - -- p7 (length) determines the length of the spline, affects camera path and duration of transition between previous node and this one - -- - -- p8 big values ~100 will slow down the camera movement before reaching this node - -- - -- p9 != 0 seems to override the rotation/pitch (bool?) - ADD_CAM_SPLINE_NODE=--[[void]] function(--[[Cam (int)]] camera,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] xRot,--[[float]] yRot,--[[float]] zRot,--[[int]] length,--[[int]] smoothingStyle,--[[int]] rotationOrder)return native_invoker.unified_void(camera, x, y, z, xRot, yRot, zRot, length, smoothingStyle, rotationOrder, 0x8609C75EC438FB3B, "iffffffiii")end - -- p0 is the spline camera to which the node is being added. - -- p1 is the camera used to create the node. - -- p3 is always 3 in scripts. It might be smoothing style or rotation order. - ADD_CAM_SPLINE_NODE_USING_CAMERA_FRAME=--[[void]] function(--[[Cam (int)]] cam,--[[Cam (int)]] cam2,--[[int]] length,--[[int]] p3)return native_invoker.unified_void(cam, cam2, length, p3, 0x0A9F2A468B328E74, "iiii")end - -- p0 is the spline camera to which the node is being added. - -- p1 is the camera used to create the node. - -- p3 is always 3 in scripts. It might be smoothing style or rotation order. - ADD_CAM_SPLINE_NODE_USING_CAMERA=--[[void]] function(--[[Cam (int)]] cam,--[[Cam (int)]] cam2,--[[int]] length,--[[int]] p3)return native_invoker.unified_void(cam, cam2, length, p3, 0x0FB82563989CF4FB, "iiii")end - -- p2 is always 2 in scripts. It might be smoothing style or rotation order. - ADD_CAM_SPLINE_NODE_USING_GAMEPLAY_FRAME=--[[void]] function(--[[Cam (int)]] cam,--[[int]] length,--[[int]] p2)return native_invoker.unified_void(cam, length, p2, 0x609278246A29CA34, "iii")end - SET_CAM_SPLINE_PHASE=--[[void]] function(--[[Cam (int)]] cam,--[[float]] p1)return native_invoker.unified_void(cam, p1, 0x242B5874F0A4E052, "if")end - -- Can use this with SET_CAM_SPLINE_PHASE to set the float it this native returns. - -- - -- (returns 1.0f when no nodes has been added, reached end of non existing spline) - GET_CAM_SPLINE_PHASE=--[[float]] function(--[[Cam (int)]] cam)return native_invoker.unified_float(cam, 0xB5349E36C546509A, "i")end - -- I'm pretty sure the parameter is the camera as usual, but I am not certain so I'm going to leave it as is. - GET_CAM_SPLINE_NODE_PHASE=--[[float]] function(--[[Cam (int)]] cam)return native_invoker.unified_float(cam, 0xD9D0E694C8282C96, "i")end - -- I named p1 as timeDuration as it is obvious. I'm assuming tho it is ran in ms(Milliseconds) as usual. - SET_CAM_SPLINE_DURATION=--[[void]] function(--[[Cam (int)]] cam,--[[int]] timeDuration)return native_invoker.unified_void(cam, timeDuration, 0x1381539FEE034CDA, "ii")end - SET_CAM_SPLINE_SMOOTHING_STYLE=--[[void]] function(--[[Cam (int)]] cam,--[[int]] smoothingStyle)return native_invoker.unified_void(cam, smoothingStyle, 0xD1B0F412F109EA5D, "ii")end - GET_CAM_SPLINE_NODE_INDEX=--[[int]] function(--[[Cam (int)]] cam)return native_invoker.unified_int(cam, 0xB22B17DF858716A6, "i")end - SET_CAM_SPLINE_NODE_EASE=--[[void]] function(--[[Cam (int)]] cam,--[[int]] easingFunction,--[[int]] p2,--[[float]] p3)return native_invoker.unified_void(cam, easingFunction, p2, p3, 0x83B8201ED82A9A2D, "iiif")end - SET_CAM_SPLINE_NODE_VELOCITY_SCALE=--[[void]] function(--[[Cam (int)]] cam,--[[int]] p1,--[[float]] scale)return native_invoker.unified_void(cam, p1, scale, 0xA6385DEB180F319F, "iif")end - OVERRIDE_CAM_SPLINE_VELOCITY=--[[void]] function(--[[Cam (int)]] cam,--[[int]] p1,--[[float]] p2,--[[float]] p3)return native_invoker.unified_void(cam, p1, p2, p3, 0x40B62FA033EB0346, "iiff")end - -- Max value for p1 is 15. - OVERRIDE_CAM_SPLINE_MOTION_BLUR=--[[void]] function(--[[Cam (int)]] cam,--[[int]] p1,--[[float]] p2,--[[float]] p3)return native_invoker.unified_void(cam, p1, p2, p3, 0x7DCF7C708D292D55, "iiff")end - SET_CAM_SPLINE_NODE_EXTRA_FLAGS=--[[void]] function(--[[Cam (int)]] cam,--[[int]] p1,--[[int]] flags)return native_invoker.unified_void(cam, p1, flags, 0x7BF1A54AE67AC070, "iii")end - IS_CAM_SPLINE_PAUSED=--[[BOOL (bool)]] function(--[[Cam (int)]] cam)return native_invoker.unified_bool(cam, 0x0290F35C0AD97864, "i")end - -- Previous declaration void SET_CAM_ACTIVE_WITH_INTERP(Cam camTo, Cam camFrom, int duration, BOOL easeLocation, BOOL easeRotation) is completely wrong. The last two params are integers not BOOLs... - -- - SET_CAM_ACTIVE_WITH_INTERP=--[[void]] function(--[[Cam (int)]] camTo,--[[Cam (int)]] camFrom,--[[int]] duration,--[[int]] easeLocation,--[[int]] easeRotation)return native_invoker.unified_void(camTo, camFrom, duration, easeLocation, easeRotation, 0x9FBDA379383A52A4, "iiiii")end - IS_CAM_INTERPOLATING=--[[BOOL (bool)]] function(--[[Cam (int)]] cam)return native_invoker.unified_bool(cam, 0x036F97C908C2B52C, "i")end - -- Possible shake types (updated b617d): - -- - -- DEATH_FAIL_IN_EFFECT_SHAKE - -- DRUNK_SHAKE - -- FAMILY5_DRUG_TRIP_SHAKE - -- HAND_SHAKE - -- JOLT_SHAKE - -- LARGE_EXPLOSION_SHAKE - -- MEDIUM_EXPLOSION_SHAKE - -- SMALL_EXPLOSION_SHAKE - -- ROAD_VIBRATION_SHAKE - -- SKY_DIVING_SHAKE - -- VIBRATE_SHAKE - -- - -- Full list of cam shake types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/camShakeTypesCompact.json - SHAKE_CAM=--[[void]] function(--[[Cam (int)]] cam,--[[string]] type,--[[float]] amplitude)return native_invoker.unified_void(cam, type, amplitude, 0x6A25241C340D3822, "isf")end - -- Example from michael2 script. - -- - -- CAM::ANIMATED_SHAKE_CAM(l_5069, "shake_cam_all@", "light", "", 1f); - ANIMATED_SHAKE_CAM=--[[void]] function(--[[Cam (int)]] cam,--[[string]] p1,--[[string]] p2,--[[string]] p3,--[[float]] amplitude)return native_invoker.unified_void(cam, p1, p2, p3, amplitude, 0xA2746EEAE3E577CD, "isssf")end - IS_CAM_SHAKING=--[[BOOL (bool)]] function(--[[Cam (int)]] cam)return native_invoker.unified_bool(cam, 0x6B24BFE83A2BE47B, "i")end - SET_CAM_SHAKE_AMPLITUDE=--[[void]] function(--[[Cam (int)]] cam,--[[float]] amplitude)return native_invoker.unified_void(cam, amplitude, 0xD93DB43B82BC0D00, "if")end - STOP_CAM_SHAKING=--[[void]] function(--[[Cam (int)]] cam,--[[BOOL (bool)]] p1)return native_invoker.unified_void(cam, p1, 0xBDECF64367884AC3, "ib")end - -- CAM::SHAKE_SCRIPT_GLOBAL("HAND_SHAKE", 0.2); - -- - -- Full list of cam shake types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/camShakeTypesCompact.json - SHAKE_SCRIPT_GLOBAL=--[[void]] function(--[[string]] p0,--[[float]] p1)return native_invoker.unified_void(p0, p1, 0xF4C8CF9E353AFECA, "sf")end - -- CAM::ANIMATED_SHAKE_SCRIPT_GLOBAL("SHAKE_CAM_medium", "medium", "", 0.5f); - -- - -- Full list of cam shake types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/camShakeTypesCompact.json - ANIMATED_SHAKE_SCRIPT_GLOBAL=--[[void]] function(--[[string]] p0,--[[string]] p1,--[[string]] p2,--[[float]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xC2EAE3FB8CDBED31, "sssf")end - -- In drunk_controller.c4, sub_309 - -- if (CAM::IS_SCRIPT_GLOBAL_SHAKING()) { - -- CAM::STOP_SCRIPT_GLOBAL_SHAKING(0); - -- } - IS_SCRIPT_GLOBAL_SHAKING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC912AF078AF19212, "")end - -- In drunk_controller.c4, sub_309 - -- if (CAM::IS_SCRIPT_GLOBAL_SHAKING()) { - -- CAM::STOP_SCRIPT_GLOBAL_SHAKING(0); - -- } - STOP_SCRIPT_GLOBAL_SHAKING=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x1C9D7949FA533490, "b")end - -- p1: 0..16 - TRIGGER_VEHICLE_PART_BROKEN_CAMERA_SHAKE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] p1,--[[float]] p2)return native_invoker.unified_void(vehicle, p1, p2, 0x5D96CFB59DA076A0, "iif")end - -- Atleast one time in a script for the zRot Rockstar uses GET_ENTITY_HEADING to help fill the parameter. - -- - -- p9 is unknown at this time. - -- p10 throughout all the X360 Scripts is always 2. - -- - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - PLAY_CAM_ANIM=--[[BOOL (bool)]] function(--[[Cam (int)]] cam,--[[string]] animName,--[[string]] animDictionary,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] xRot,--[[float]] yRot,--[[float]] zRot,--[[BOOL (bool)]] p9,--[[int]] p10)return native_invoker.unified_bool(cam, animName, animDictionary, x, y, z, xRot, yRot, zRot, p9, p10, 0x9A2D0FB2E7852392, "issffffffbi")end - IS_CAM_PLAYING_ANIM=--[[BOOL (bool)]] function(--[[Cam (int)]] cam,--[[string]] animName,--[[string]] animDictionary)return native_invoker.unified_bool(cam, animName, animDictionary, 0xC90621D8A0CEECF2, "iss")end - SET_CAM_ANIM_CURRENT_PHASE=--[[void]] function(--[[Cam (int)]] cam,--[[float]] phase)return native_invoker.unified_void(cam, phase, 0x4145A4C44FF3B5A6, "if")end - GET_CAM_ANIM_CURRENT_PHASE=--[[float]] function(--[[Cam (int)]] cam)return native_invoker.unified_float(cam, 0xA10B2DB49E92A6B0, "i")end - -- Examples: - -- - -- CAM::PLAY_SYNCHRONIZED_CAM_ANIM(l_2734, NETWORK::NETWORK_GET_LOCAL_SCENE_FROM_NETWORK_ID(l_2739), "PLAYER_EXIT_L_CAM", "mp_doorbell"); - -- - -- CAM::PLAY_SYNCHRONIZED_CAM_ANIM(l_F0D[7/*1*/], l_F4D[15/*1*/], "ah3b_attackheli_cam2", "missheistfbi3b_helicrash"); - PLAY_SYNCHRONIZED_CAM_ANIM=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[string]] animName,--[[string]] animDictionary)return native_invoker.unified_bool(p0, p1, animName, animDictionary, 0xE32EFE9AB4A9AA0C, "iiss")end - SET_FLY_CAM_HORIZONTAL_RESPONSE=--[[void]] function(--[[Cam (int)]] cam,--[[float]] p1,--[[float]] p2,--[[float]] p3)return native_invoker.unified_void(cam, p1, p2, p3, 0x503F5920162365B2, "ifff")end - SET_FLY_CAM_VERTICAL_RESPONSE=--[[void]] function(--[[Cam (int)]] cam,--[[float]] p1,--[[float]] p2,--[[float]] p3)return native_invoker.unified_void(cam, p1, p2, p3, 0xE827B9382CFB41BA, "ifff")end - SET_FLY_CAM_MAX_HEIGHT=--[[void]] function(--[[Cam (int)]] cam,--[[float]] height)return native_invoker.unified_void(cam, height, 0xF9D02130ECDD1D77, "if")end - SET_FLY_CAM_COORD_AND_CONSTRAIN=--[[void]] function(--[[Cam (int)]] cam,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(cam, x, y, z, 0xC91C6C55199308CA, "ifff")end - SET_FLY_CAM_VERTICAL_CONTROLS_THIS_UPDATE=--[[void]] function(--[[Cam (int)]] cam)return native_invoker.unified_void(cam, 0xC8B5C4A79CC18B94, "i")end - WAS_FLY_CAM_CONSTRAINED_ON_PREVIOUS_UDPATE=--[[BOOL (bool)]] function(--[[Cam (int)]] cam)return native_invoker.unified_bool(cam, 0x5C48A1D6E3B33179, "i")end - IS_SCREEN_FADED_OUT=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xB16FCE9DDC7BA182, "")end - IS_SCREEN_FADED_IN=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x5A859503B0C08678, "")end - IS_SCREEN_FADING_OUT=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x797AC7CB535BA28F, "")end - IS_SCREEN_FADING_IN=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x5C544BC6C57AC575, "")end - -- Fades the screen in. - -- - -- duration: The time the fade should take, in milliseconds. - DO_SCREEN_FADE_IN=--[[void]] function(--[[int]] duration)return native_invoker.unified_void(duration, 0xD4E8E24955024033, "i")end - -- Fades the screen out. - -- - -- duration: The time the fade should take, in milliseconds. - DO_SCREEN_FADE_OUT=--[[void]] function(--[[int]] duration)return native_invoker.unified_void(duration, 0x891B5B39AC6302AF, "i")end - SET_WIDESCREEN_BORDERS=--[[void]] function(--[[BOOL (bool)]] p0,--[[int]] p1)return native_invoker.unified_void(p0, p1, 0xDCD4EA924F42D01A, "bi")end - ARE_WIDESCREEN_BORDERS_ACTIVE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x4879E4FE39074CDF, "")end - GET_GAMEPLAY_CAM_COORD=--[[Vector3 (vector3)]] function()return native_invoker.unified_vector3(0x14D6F5678D8F1B37, "")end - -- p0 dosen't seem to change much, I tried it with 0, 1, 2: - -- 0-Pitch(X): -70.000092 - -- 0-Roll(Y): -0.000001 - -- 0-Yaw(Z): -43.886459 - -- 1-Pitch(X): -70.000092 - -- 1-Roll(Y): -0.000001 - -- 1-Yaw(Z): -43.886463 - -- 2-Pitch(X): -70.000092 - -- 2-Roll(Y): -0.000002 - -- 2-Yaw(Z): -43.886467 - GET_GAMEPLAY_CAM_ROT=--[[Vector3 (vector3)]] function(--[[int]] rotationOrder)return native_invoker.unified_vector3(rotationOrder, 0x837765A25378F0BB, "i")end - GET_GAMEPLAY_CAM_FOV=--[[float]] function()return native_invoker.unified_float(0x65019750A0324133, "")end - -- some camera effect that is used in the drunk-cheat, and turned off (by setting it to 0.0) along with the shaking effects once the drunk cheat is disabled. - SET_GAMEPLAY_CAM_MOTION_BLUR_SCALING_THIS_UPDATE=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0x487A82C650EB7799, "f")end - -- some camera effect that is (also) used in the drunk-cheat, and turned off (by setting it to 0.0) along with the shaking effects once the drunk cheat is disabled. - SET_GAMEPLAY_CAM_MAX_MOTION_BLUR_STRENGTH_THIS_UPDATE=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0x0225778816FDC28C, "f")end - GET_GAMEPLAY_CAM_RELATIVE_HEADING=--[[float]] function()return native_invoker.unified_float(0x743607648ADD4587, "")end - -- Sets the camera position relative to heading in float from -360 to +360. - -- - -- Heading is alwyas 0 in aiming camera. - SET_GAMEPLAY_CAM_RELATIVE_HEADING=--[[void]] function(--[[float]] heading)return native_invoker.unified_void(heading, 0xB4EC2312F4E5B1F1, "f")end - GET_GAMEPLAY_CAM_RELATIVE_PITCH=--[[float]] function()return native_invoker.unified_float(0x3A6867B4845BEDA2, "")end - -- This native sets the camera's pitch (rotation on the x-axis). - SET_GAMEPLAY_CAM_RELATIVE_PITCH=--[[void]] function(--[[float]] angle,--[[float]] scalingFactor)return native_invoker.unified_void(angle, scalingFactor, 0x6D0858B8EDFD2B7D, "ff")end - RESET_GAMEPLAY_CAM_FULL_ATTACH_PARENT_TRANSFORM_TIMER=--[[void]] function()return native_invoker.unified_void(0x7295C203DD659DFE, "")end - FORCE_CAMERA_RELATIVE_HEADING_AND_PITCH=--[[void]] function(--[[float]] roll,--[[float]] pitch,--[[float]] yaw)return native_invoker.unified_void(roll, pitch, yaw, 0x48608C3464F58AB4, "fff")end - FORCE_BONNET_CAMERA_RELATIVE_HEADING_AND_PITCH=--[[void]] function(--[[float]] p0,--[[float]] p1)return native_invoker.unified_void(p0, p1, 0x28B022A17B068A3A, "ff")end - -- Does nothing - SET_FIRST_PERSON_SHOOTER_CAMERA_HEADING=--[[void]] function(--[[float]] yaw)return native_invoker.unified_void(yaw, 0x103991D4A307D472, "f")end - SET_FIRST_PERSON_SHOOTER_CAMERA_PITCH=--[[void]] function(--[[float]] pitch)return native_invoker.unified_void(pitch, 0x759E13EBC1C15C5A, "f")end - SET_SCRIPTED_CAMERA_IS_FIRST_PERSON_THIS_FRAME=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x469F2ECDEC046337, "b")end - -- Possible shake types (updated b617d): - -- - -- DEATH_FAIL_IN_EFFECT_SHAKE - -- DRUNK_SHAKE - -- FAMILY5_DRUG_TRIP_SHAKE - -- HAND_SHAKE - -- JOLT_SHAKE - -- LARGE_EXPLOSION_SHAKE - -- MEDIUM_EXPLOSION_SHAKE - -- SMALL_EXPLOSION_SHAKE - -- ROAD_VIBRATION_SHAKE - -- SKY_DIVING_SHAKE - -- VIBRATE_SHAKE - -- - -- Full list of cam shake types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/camShakeTypesCompact.json - SHAKE_GAMEPLAY_CAM=--[[void]] function(--[[string]] shakeName,--[[float]] intensity)return native_invoker.unified_void(shakeName, intensity, 0xFD55E49555E017CF, "sf")end - IS_GAMEPLAY_CAM_SHAKING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x016C090630DF1F89, "")end - -- Sets the amplitude for the gameplay (i.e. 3rd or 1st) camera to shake. Used in script "drunk_controller.ysc.c4" to simulate making the player drunk. - SET_GAMEPLAY_CAM_SHAKE_AMPLITUDE=--[[void]] function(--[[float]] amplitude)return native_invoker.unified_void(amplitude, 0xA87E00932DB4D85D, "f")end - STOP_GAMEPLAY_CAM_SHAKING=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x0EF93E9F3D08C178, "b")end - -- Forces gameplay cam to specified ped as if you were the ped or spectating it - SET_GAMEPLAY_CAM_FOLLOW_PED_THIS_UPDATE=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x8BBACBF51DA047A8, "i")end - -- Examples when this function will return 0 are: - -- - During busted screen. - -- - When player is coming out from a hospital. - -- - When player is coming out from a police station. - -- - When player is buying gun from AmmuNation. - IS_GAMEPLAY_CAM_RENDERING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x39B5D1B10383F0C8, "")end - IS_INTERPOLATING_FROM_SCRIPT_CAMS=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x3044240D2E0FA842, "")end - IS_INTERPOLATING_TO_SCRIPT_CAMS=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x705A276EBFF3133D, "")end - SET_GAMEPLAY_CAM_ALTITUDE_FOV_SCALING_STATE=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xDB90C6CCA48940F1, "b")end - -- Shows the crosshair even if it wouldn't show normally. Only works for one frame, so make sure to call it repeatedly. - DISABLE_GAMEPLAY_CAM_ALTITUDE_FOV_SCALING_THIS_UPDATE=--[[void]] function()return native_invoker.unified_void(0xEA7F0AD7E9BA676F, "")end - IS_GAMEPLAY_CAM_LOOKING_BEHIND=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x70FDA869F3317EA9, "")end - SET_GAMEPLAY_CAM_IGNORE_ENTITY_COLLISION_THIS_UPDATE=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0x2AED6301F67007D5, "i")end - DISABLE_CAM_COLLISION_FOR_OBJECT=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0x49482F9FCD825AAA, "i")end - BYPASS_CAMERA_COLLISION_BUOYANCY_TEST_THIS_UPDATE=--[[void]] function()return native_invoker.unified_void(0xA7092AFE81944852, "")end - SET_GAMEPLAY_CAM_ENTITY_TO_LIMIT_FOCUS_OVER_BOUNDING_SPHERE_THIS_UPDATE=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0xFD3151CD37EA2245, "i")end - -- Sets some flag on cinematic camera - DISABLE_FIRST_PERSON_CAMERA_WATER_CLIPPING_TEST_THIS_UPDATE=--[[void]] function()return native_invoker.unified_void(0xB1381B97F70C7B30, "")end - SET_FOLLOW_CAM_IGNORE_ATTACH_PARENT_MOVEMENT_THIS_UPDATE=--[[void]] function()return native_invoker.unified_void(0xDD79DF9F4D26E1C9, "")end - IS_SPHERE_VISIBLE=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius)return native_invoker.unified_bool(x, y, z, radius, 0xE33D59DA70B58FDF, "ffff")end - IS_FOLLOW_PED_CAM_ACTIVE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC6D3D26810C8E0F9, "")end - -- From the scripts: - -- - -- CAM::SET_FOLLOW_PED_CAM_THIS_UPDATE("FOLLOW_PED_ATTACHED_TO_ROPE_CAMERA", 0); - -- CAM::SET_FOLLOW_PED_CAM_THIS_UPDATE("FOLLOW_PED_ON_EXILE1_LADDER_CAMERA", 1500); - -- CAM::SET_FOLLOW_PED_CAM_THIS_UPDATE("FOLLOW_PED_SKY_DIVING_CAMERA", 0); - -- CAM::SET_FOLLOW_PED_CAM_THIS_UPDATE("FOLLOW_PED_SKY_DIVING_CAMERA", 3000); - -- CAM::SET_FOLLOW_PED_CAM_THIS_UPDATE("FOLLOW_PED_SKY_DIVING_FAMILY5_CAMERA", 0); - -- CAM::SET_FOLLOW_PED_CAM_THIS_UPDATE("FOLLOW_PED_SKY_DIVING_CAMERA", 0); - SET_FOLLOW_PED_CAM_THIS_UPDATE=--[[BOOL (bool)]] function(--[[string]] camName,--[[int]] p1)return native_invoker.unified_bool(camName, p1, 0x44A113DD6FFC48D1, "si")end - USE_SCRIPT_CAM_FOR_AMBIENT_POPULATION_ORIGIN_THIS_FRAME=--[[void]] function(--[[BOOL (bool)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0x271401846BD26E92, "bb")end - SET_FOLLOW_PED_CAM_LADDER_ALIGN_THIS_UPDATE=--[[void]] function()return native_invoker.unified_void(0xC8391C309684595A, "")end - -- minimum: Degrees between -180f and 180f. - -- maximum: Degrees between -180f and 180f. - -- - -- Clamps the gameplay camera's current yaw. - -- - -- Eg. SET_THIRD_PERSON_CAM_RELATIVE_HEADING_LIMITS_THIS_UPDATE(0.0f, 0.0f) will set the horizontal angle directly behind the player. - SET_THIRD_PERSON_CAM_RELATIVE_HEADING_LIMITS_THIS_UPDATE=--[[void]] function(--[[float]] minimum,--[[float]] maximum)return native_invoker.unified_void(minimum, maximum, 0x8F993D26E0CA5E8E, "ff")end - -- minimum: Degrees between -90f and 90f. - -- maximum: Degrees between -90f and 90f. - -- - -- Clamps the gameplay camera's current pitch. - -- - -- Eg. SET_THIRD_PERSON_CAM_RELATIVE_PITCH_LIMITS_THIS_UPDATE(0.0f, 0.0f) will set the vertical angle directly behind the player. - SET_THIRD_PERSON_CAM_RELATIVE_PITCH_LIMITS_THIS_UPDATE=--[[void]] function(--[[float]] minimum,--[[float]] maximum)return native_invoker.unified_void(minimum, maximum, 0xA516C198B7DCA1E1, "ff")end - -- Seems to animate the gameplay camera zoom. - -- - -- Eg. SET_THIRD_PERSON_CAM_ORBIT_DISTANCE_LIMITS_THIS_UPDATE(1f, 1000f); - -- will animate the camera zooming in from 1000 meters away. - -- - -- Game scripts use it like this: - -- - -- // Setting this to 1 prevents V key from changing zoom - -- PLAYER::SET_PLAYER_FORCED_ZOOM(PLAYER::PLAYER_ID(), 1); - -- - -- // These restrict how far you can move cam up/down left/right - -- CAM::SET_THIRD_PERSON_CAM_RELATIVE_HEADING_LIMITS_THIS_UPDATE(-20f, 50f); - -- CAM::SET_THIRD_PERSON_CAM_RELATIVE_PITCH_LIMITS_THIS_UPDATE(-60f, 0f); - -- - -- CAM::SET_THIRD_PERSON_CAM_ORBIT_DISTANCE_LIMITS_THIS_UPDATE(1f, 1f); - SET_THIRD_PERSON_CAM_ORBIT_DISTANCE_LIMITS_THIS_UPDATE=--[[void]] function(--[[float]] p0,--[[float]] distance)return native_invoker.unified_void(p0, distance, 0xDF2E1F7742402E81, "ff")end - _GET_THIRD_PERSON_CAM_MIN_ORBIT_DISTANCE_SPRING=--[[float]] function()return native_invoker.unified_float(0xBC456FB703431785, "")end - _GET_THIRD_PERSON_CAM_MAX_ORBIT_DISTANCE_SPRING=--[[float]] function()return native_invoker.unified_float(0xD4592A16D36673ED, "")end - -- Forces gameplay cam to specified vehicle as if you were in it - SET_IN_VEHICLE_CAM_STATE_THIS_UPDATE=--[[void]] function(--[[Vehicle (int)]] p0,--[[int]] p1)return native_invoker.unified_void(p0, p1, 0xE9EA16D6E54CDCA4, "ii")end - -- Disables first person camera for the current frame. - -- - -- Found in decompiled scripts: - -- GRAPHICS::DRAW_DEBUG_TEXT_2D("Disabling First Person Cam", 0.5, 0.8, 0.0, 0, 0, 255, 255); - -- CAM::DISABLE_ON_FOOT_FIRST_PERSON_VIEW_THIS_UPDATE(); - DISABLE_ON_FOOT_FIRST_PERSON_VIEW_THIS_UPDATE=--[[void]] function()return native_invoker.unified_void(0xDE2EF5DA284CC8DF, "")end - DISABLE_FIRST_PERSON_FLASH_EFFECT_THIS_UPDATE=--[[void]] function()return native_invoker.unified_void(0x59424BD75174C9B1, "")end - BLOCK_FIRST_PERSON_ORIENTATION_RESET_THIS_UPDATE=--[[void]] function()return native_invoker.unified_void(0x9F97DA93681F87EA, "")end - GET_FOLLOW_PED_CAM_ZOOM_LEVEL=--[[int]] function()return native_invoker.unified_int(0x33E6C8EFD0CD93E9, "")end - -- See viewmode enum in CAM.GET_FOLLOW_VEHICLE_CAM_VIEW_MODE for return value - GET_FOLLOW_PED_CAM_VIEW_MODE=--[[int]] function()return native_invoker.unified_int(0x8D4D46230B2C353A, "")end - -- Sets the type of Player camera: - -- - -- 0 - Third Person Close - -- 1 - Third Person Mid - -- 2 - Third Person Far - -- 4 - First Person - SET_FOLLOW_PED_CAM_VIEW_MODE=--[[void]] function(--[[int]] viewMode)return native_invoker.unified_void(viewMode, 0x5A4F9EDF1673F704, "i")end - IS_FOLLOW_VEHICLE_CAM_ACTIVE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xCBBDE6D335D6D496, "")end - SET_FOLLOW_VEHICLE_CAM_HIGH_ANGLE_MODE_THIS_UPDATE=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x91EF6EE6419E5B97, "b")end - SET_FOLLOW_VEHICLE_CAM_HIGH_ANGLE_MODE_EVERY_UPDATE=--[[void]] function(--[[BOOL (bool)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0x9DFE13ECDC1EC196, "bb")end - SET_TABLE_GAMES_CAMERA_THIS_UPDATE=--[[BOOL (bool)]] function(--[[Hash (int)]] hash)return native_invoker.unified_bool(hash, 0x79C0E43EB9B944E2, "i")end - GET_FOLLOW_VEHICLE_CAM_ZOOM_LEVEL=--[[int]] function()return native_invoker.unified_int(0xEE82280AB767B690, "")end - SET_FOLLOW_VEHICLE_CAM_ZOOM_LEVEL=--[[void]] function(--[[int]] zoomLevel)return native_invoker.unified_void(zoomLevel, 0x19464CB6E4078C8A, "i")end - -- Returns the type of camera: - -- - -- enum _viewmode //0xA11D7CA8 - -- { - -- THIRD_PERSON_NEAR = 0, - -- THIRD_PERSON_MEDIUM = 1, - -- THIRD_PERSON_FAR = 2, - -- CINEMATIC = 3, - -- FIRST_PERSON = 4 - -- }; - GET_FOLLOW_VEHICLE_CAM_VIEW_MODE=--[[int]] function()return native_invoker.unified_int(0xA4FF579AC0E3AAAE, "")end - -- Sets the type of Player camera in vehicles: - -- viewmode: see CAM.GET_FOLLOW_VEHICLE_CAM_VIEW_MODE - SET_FOLLOW_VEHICLE_CAM_VIEW_MODE=--[[void]] function(--[[int]] viewMode)return native_invoker.unified_void(viewMode, 0xAC253D7842768F48, "i")end - -- context: see _GET_CAM_ACTIVE_VIEW_MODE_CONTEXT - GET_CAM_VIEW_MODE_FOR_CONTEXT=--[[int]] function(--[[int]] context)return native_invoker.unified_int(context, 0xEE778F8C7E1142E2, "i")end - -- context: see _GET_CAM_ACTIVE_VIEW_MODE_CONTEXT, viewmode: see CAM.GET_FOLLOW_VEHICLE_CAM_VIEW_MODE - SET_CAM_VIEW_MODE_FOR_CONTEXT=--[[void]] function(--[[int]] context,--[[int]] viewMode)return native_invoker.unified_void(context, viewMode, 0x2A2173E46DAECD12, "ii")end - -- enum Context - -- { - -- ON_FOOT, - -- IN_VEHICLE, - -- ON_BIKE, - -- IN_BOAT, - -- IN_AIRCRAFT, - -- IN_SUBMARINE, - -- IN_HELI, - -- IN_TURRET - -- }; - GET_CAM_ACTIVE_VIEW_MODE_CONTEXT=--[[int]] function()return native_invoker.unified_int(0x19CAFA3C87F7C2FF, "")end - USE_VEHICLE_CAM_STUNT_SETTINGS_THIS_UPDATE=--[[void]] function()return native_invoker.unified_void(0x6493CF69859B116A, "")end - -- Sets gameplay camera to hash - USE_DEDICATED_STUNT_CAMERA_THIS_UPDATE=--[[void]] function(--[[string]] camName)return native_invoker.unified_void(camName, 0x425A920FDB9A0DDA, "s")end - FORCE_VEHICLE_CAM_STUNT_SETTINGS_THIS_UPDATE=--[[void]] function()return native_invoker.unified_void(0x0AA27680A0BD43FA, "")end - SET_FOLLOW_VEHICLE_CAM_SEAT_THIS_UPDATE=--[[void]] function(--[[int]] seatIndex)return native_invoker.unified_void(seatIndex, 0x5C90CAB09951A12F, "i")end - IS_AIM_CAM_ACTIVE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x68EDDA28A5976D07, "")end - IS_AIM_CAM_ACTIVE_IN_ACCURATE_MODE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x74BD83EA840F6BC9, "")end - IS_FIRST_PERSON_AIM_CAM_ACTIVE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x5E346D934122613F, "")end - DISABLE_AIM_CAM_THIS_UPDATE=--[[void]] function()return native_invoker.unified_void(0x1A31FE0049E542F6, "")end - GET_FIRST_PERSON_AIM_CAM_ZOOM_FACTOR=--[[float]] function()return native_invoker.unified_float(0x7EC52CC40597D170, "")end - SET_FIRST_PERSON_AIM_CAM_ZOOM_FACTOR=--[[void]] function(--[[float]] zoomFactor)return native_invoker.unified_void(zoomFactor, 0x70894BD0915C5BCA, "f")end - SET_FIRST_PERSON_AIM_CAM_ZOOM_FACTOR_LIMITS_THIS_UPDATE=--[[void]] function(--[[float]] p0,--[[float]] p1)return native_invoker.unified_void(p0, p1, 0xCED08CBE8EBB97C7, "ff")end - SET_FIRST_PERSON_AIM_CAM_RELATIVE_HEADING_LIMITS_THIS_UPDATE=--[[void]] function(--[[float]] p0,--[[float]] p1)return native_invoker.unified_void(p0, p1, 0x2F7F2B26DD3F18EE, "ff")end - SET_FIRST_PERSON_AIM_CAM_RELATIVE_PITCH_LIMITS_THIS_UPDATE=--[[void]] function(--[[float]] p0,--[[float]] p1)return native_invoker.unified_void(p0, p1, 0xBCFC632DB7673BF0, "ff")end - SET_FIRST_PERSON_AIM_CAM_NEAR_CLIP_THIS_UPDATE=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0x0AF7B437918103B3, "f")end - SET_THIRD_PERSON_AIM_CAM_NEAR_CLIP_THIS_UPDATE=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0x42156508606DE65E, "f")end - SET_ALLOW_CUSTOM_VEHICLE_DRIVE_BY_CAM_THIS_UPDATE=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x4008EDF7D6E48175, "b")end - FORCE_TIGHTSPACE_CUSTOM_FRAMING_THIS_UPDATE=--[[void]] function()return native_invoker.unified_void(0x380B4968D1E09E55, "")end - GET_FINAL_RENDERED_CAM_COORD=--[[Vector3 (vector3)]] function()return native_invoker.unified_vector3(0xA200EB1EE790F448, "")end - -- p0 seems to consistently be 2 across scripts - -- - -- Function is called faily often by CAM::CREATE_CAM_WITH_PARAMS - GET_FINAL_RENDERED_CAM_ROT=--[[Vector3 (vector3)]] function(--[[int]] rotationOrder)return native_invoker.unified_vector3(rotationOrder, 0x5B4E4C817FCC2DFB, "i")end - GET_FINAL_RENDERED_REMOTE_PLAYER_CAM_ROT=--[[Vector3 (vector3)]] function(--[[Player (int)]] player,--[[int]] rotationOrder)return native_invoker.unified_vector3(player, rotationOrder, 0x26903D9CD1175F2C, "ii")end - -- Gets some camera fov - GET_FINAL_RENDERED_CAM_FOV=--[[float]] function()return native_invoker.unified_float(0x80EC114669DAEFF4, "")end - GET_FINAL_RENDERED_REMOTE_PLAYER_CAM_FOV=--[[float]] function(--[[Player (int)]] player)return native_invoker.unified_float(player, 0x5F35F6732C3FBBA0, "i")end - GET_FINAL_RENDERED_CAM_NEAR_CLIP=--[[float]] function()return native_invoker.unified_float(0xD0082607100D7193, "")end - GET_FINAL_RENDERED_CAM_FAR_CLIP=--[[float]] function()return native_invoker.unified_float(0xDFC8CBC606FDB0FC, "")end - GET_FINAL_RENDERED_CAM_NEAR_DOF=--[[float]] function()return native_invoker.unified_float(0xA03502FC581F7D9B, "")end - GET_FINAL_RENDERED_CAM_FAR_DOF=--[[float]] function()return native_invoker.unified_float(0x9780F32BCAF72431, "")end - GET_FINAL_RENDERED_CAM_MOTION_BLUR_STRENGTH=--[[float]] function()return native_invoker.unified_float(0x162F9D995753DC19, "")end - SET_GAMEPLAY_COORD_HINT=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] duration,--[[int]] blendOutDuration,--[[int]] blendInDuration,--[[int]] p6)return native_invoker.unified_void(x, y, z, duration, blendOutDuration, blendInDuration, p6, 0xD51ADCD2D8BC0FB3, "fffiiii")end - SET_GAMEPLAY_PED_HINT=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[BOOL (bool)]] p4,--[[int]] duration,--[[int]] blendOutDuration,--[[int]] blendInDuration)return native_invoker.unified_void(ped, x1, y1, z1, p4, duration, blendOutDuration, blendInDuration, 0x2B486269ACD548D3, "ifffbiii")end - -- Focuses the camera on the specified vehicle. - SET_GAMEPLAY_VEHICLE_HINT=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] offsetX,--[[float]] offsetY,--[[float]] offsetZ,--[[BOOL (bool)]] p4,--[[int]] time,--[[int]] easeInTime,--[[int]] easeOutTime)return native_invoker.unified_void(vehicle, offsetX, offsetY, offsetZ, p4, time, easeInTime, easeOutTime, 0xA2297E18F3E71C2E, "ifffbiii")end - SET_GAMEPLAY_OBJECT_HINT=--[[void]] function(--[[Object (int)]] object,--[[float]] xOffset,--[[float]] yOffset,--[[float]] zOffset,--[[BOOL (bool)]] p4,--[[int]] time,--[[int]] easeInTime,--[[int]] easeOutTime)return native_invoker.unified_void(object, xOffset, yOffset, zOffset, p4, time, easeInTime, easeOutTime, 0x83E87508A2CA2AC6, "ifffbiii")end - -- p8 could be some sort of flag. Scripts use: - -- -244429742 - -- 0 - -- 1726668277 - -- 1844968929 - SET_GAMEPLAY_ENTITY_HINT=--[[void]] function(--[[Entity (int)]] entity,--[[float]] xOffset,--[[float]] yOffset,--[[float]] zOffset,--[[BOOL (bool)]] p4,--[[int]] time,--[[int]] easeInTime,--[[int]] easeOutTime,--[[int]] p8)return native_invoker.unified_void(entity, xOffset, yOffset, zOffset, p4, time, easeInTime, easeOutTime, p8, 0x189E955A8313E298, "ifffbiiii")end - IS_GAMEPLAY_HINT_ACTIVE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xE520FF1AD2785B40, "")end - STOP_GAMEPLAY_HINT=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xF46C581C61718916, "b")end - -- This native does absolutely nothing, just a nullsub - STOP_GAMEPLAY_HINT_BEING_CANCELLED_THIS_UPDATE=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xCCD078C2665D2973, "b")end - STOP_CODE_GAMEPLAY_HINT=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x247ACBC4ABBC9D1C, "b")end - IS_CODE_GAMEPLAY_HINT_ACTIVE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xBF72910D0F26F025, "")end - SET_GAMEPLAY_HINT_FOV=--[[void]] function(--[[float]] FOV)return native_invoker.unified_void(FOV, 0x513403FB9C56211F, "f")end - SET_GAMEPLAY_HINT_FOLLOW_DISTANCE_SCALAR=--[[void]] function(--[[float]] value)return native_invoker.unified_void(value, 0xF8BDBF3D573049A1, "f")end - SET_GAMEPLAY_HINT_BASE_ORBIT_PITCH_OFFSET=--[[void]] function(--[[float]] value)return native_invoker.unified_void(value, 0xD1F8363DFAD03848, "f")end - SET_GAMEPLAY_HINT_CAMERA_RELATIVE_SIDE_OFFSET=--[[void]] function(--[[float]] xOffset)return native_invoker.unified_void(xOffset, 0x5D7B620DAE436138, "f")end - SET_GAMEPLAY_HINT_CAMERA_RELATIVE_VERTICAL_OFFSET=--[[void]] function(--[[float]] yOffset)return native_invoker.unified_void(yOffset, 0xC92717EF615B6704, "f")end - SET_GAMEPLAY_HINT_CAMERA_BLEND_TO_FOLLOW_PED_MEDIUM_VIEW_MODE=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xE3433EADAAF7EE40, "b")end - SET_CINEMATIC_BUTTON_ACTIVE=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x51669F7D1FB53D9F, "b")end - IS_CINEMATIC_CAM_RENDERING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xB15162CB5826E9E8, "")end - -- p0 argument found in the b617d scripts: "DRUNK_SHAKE" - -- - -- Full list of cam shake types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/camShakeTypesCompact.json - SHAKE_CINEMATIC_CAM=--[[void]] function(--[[string]] shakeType,--[[float]] amount)return native_invoker.unified_void(shakeType, amount, 0xDCE214D9ED58F3CF, "sf")end - IS_CINEMATIC_CAM_SHAKING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xBBC08F6B4CB8FF0A, "")end - SET_CINEMATIC_CAM_SHAKE_AMPLITUDE=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0xC724C701C30B2FE7, "f")end - STOP_CINEMATIC_CAM_SHAKING=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x2238E588E588A6D7, "b")end - DISABLE_CINEMATIC_BONNET_CAMERA_THIS_UPDATE=--[[void]] function()return native_invoker.unified_void(0xADFF1B2A555F5FBA, "")end - DISABLE_CINEMATIC_VEHICLE_IDLE_MODE_THIS_UPDATE=--[[void]] function()return native_invoker.unified_void(0x62ECFCFDEE7885D6, "")end - -- Resets the vehicle idle camera timer. Calling this in a loop will disable the idle camera. - INVALIDATE_CINEMATIC_VEHICLE_IDLE_MODE=--[[void]] function()return native_invoker.unified_void(0x9E4CFFF989258472, "")end - -- Resets the idle camera timer. Calling that in a loop once every few seconds is enough to disable the idle cinematic camera. - INVALIDATE_IDLE_CAM=--[[void]] function()return native_invoker.unified_void(0xF4F2C0D4EE209E20, "")end - IS_CINEMATIC_IDLE_CAM_RENDERING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xCA9D2AA3E326D720, "")end - IS_CINEMATIC_FIRST_PERSON_VEHICLE_INTERIOR_CAM_RENDERING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x4F32C0D5A90A9B40, "")end - -- hash is always JOAAT("CAMERA_MAN_SHOT") in decompiled scripts - CREATE_CINEMATIC_SHOT=--[[void]] function(--[[Hash (int)]] p0,--[[int]] time,--[[BOOL (bool)]] p2,--[[Entity (int)]] entity)return native_invoker.unified_void(p0, time, p2, entity, 0x741B0129D4560F31, "iibi")end - -- Hash is always JOAAT("CAMERA_MAN_SHOT") in decompiled scripts - IS_CINEMATIC_SHOT_ACTIVE=--[[BOOL (bool)]] function(--[[Hash (int)]] p0)return native_invoker.unified_bool(p0, 0xCC9F3371A7C28BC9, "i")end - -- Only used once in carsteal3 with p0 set to -1096069633 (CAMERA_MAN_SHOT) - STOP_CINEMATIC_SHOT=--[[void]] function(--[[Hash (int)]] p0)return native_invoker.unified_void(p0, 0x7660C6E75D3A078E, "i")end - FORCE_CINEMATIC_RENDERING_THIS_UPDATE=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xA41BCD7213805AAC, "b")end - SET_CINEMATIC_NEWS_CHANNEL_ACTIVE_THIS_UPDATE=--[[void]] function()return native_invoker.unified_void(0xDC9DA9E8789F5246, "")end - -- Toggles the vehicle cinematic cam; requires the player ped to be in a vehicle to work. - SET_CINEMATIC_MODE_ACTIVE=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xDCF0754AC3D6FD4E, "b")end - IS_IN_VEHICLE_MOBILE_PHONE_CAMERA_RENDERING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x1F2300CB7FA7B7F6, "")end - DISABLE_CINEMATIC_SLOW_MO_THIS_UPDATE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x17FCA7199A530203, "")end - IS_BONNET_CINEMATIC_CAM_RENDERING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xD7360051C885628B, "")end - -- Tests some cinematic camera flags - IS_CINEMATIC_CAM_INPUT_ACTIVE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xF5F1E89A970B7796, "")end - IGNORE_MENU_PREFERENCE_FOR_BONNET_CAMERA_THIS_UPDATE=--[[void]] function()return native_invoker.unified_void(0x7B8A361C1813FBEF, "")end - BYPASS_CUTSCENE_CAM_RENDERING_THIS_UPDATE=--[[void]] function()return native_invoker.unified_void(0xDB629FFD9285FA06, "")end - STOP_CUTSCENE_CAM_SHAKING=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x324C5AA411DA7737, "i")end - -- Hardcoded to only work in multiplayer. - SET_CUTSCENE_CAM_FAR_CLIP_THIS_UPDATE=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0x12DED8CA53D47EA5, "f")end - GET_FOCUS_PED_ON_SCREEN=--[[Ped (int)]] function(--[[float]] p0,--[[int]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[float]] p6,--[[int]] p7,--[[int]] p8)return native_invoker.unified_int(p0, p1, p2, p3, p4, p5, p6, p7, p8, 0x89215EC747DF244A, "fifffffii")end - DISABLE_NEAR_CLIP_SCAN_THIS_UPDATE=--[[void]] function()return native_invoker.unified_void(0x5A43C76F7FC7BA5F, "")end - -- if p0 is 0, effect is cancelled - -- - -- if p0 is 1, effect zooms in, gradually tilts cam clockwise apx 30 degrees, wobbles slowly. Motion blur is active until cancelled. - -- - -- if p0 is 2, effect immediately tilts cam clockwise apx 30 degrees, begins to wobble slowly, then gradually tilts cam back to normal. The wobbling will continue until the effect is cancelled. - SET_CAM_DEATH_FAIL_EFFECT_STATE=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0x80C8B1846639BB19, "i")end - SET_FIRST_PERSON_FLASH_EFFECT_TYPE=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x5C41E6BABC9E2112, "i")end - -- From b617 scripts: - -- - -- CAM::SET_FIRST_PERSON_FLASH_EFFECT_VEHICLE_MODEL_NAME("DINGHY"); - -- CAM::SET_FIRST_PERSON_FLASH_EFFECT_VEHICLE_MODEL_NAME("ISSI2"); - -- CAM::SET_FIRST_PERSON_FLASH_EFFECT_VEHICLE_MODEL_NAME("SPEEDO"); - SET_FIRST_PERSON_FLASH_EFFECT_VEHICLE_MODEL_NAME=--[[void]] function(--[[string]] vehicleName)return native_invoker.unified_void(vehicleName, 0x21E253A7F8DA5DFB, "s")end - SET_FIRST_PERSON_FLASH_EFFECT_VEHICLE_MODEL_HASH=--[[void]] function(--[[Hash (int)]] vehicleModel)return native_invoker.unified_void(vehicleModel, 0x11FA5D3479C7DD47, "i")end - IS_ALLOWED_INDEPENDENT_CAMERA_MODES=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xEAF0FA793D05C592, "")end - CAMERA_PREVENT_COLLISION_SETTINGS_FOR_TRIPLEHEAD_IN_INTERIORS_THIS_UPDATE=--[[void]] function()return native_invoker.unified_void(0x62374889A4D59F72, "")end - REPLAY_GET_MAX_DISTANCE_ALLOWED_FROM_PLAYER=--[[float]] function()return native_invoker.unified_float(0x8BFCEB5EA1B161B6, "")end --- CLOCK - -- SET_CLOCK_TIME(12, 34, 56); - SET_CLOCK_TIME=--[[void]] function(--[[int]] hour,--[[int]] minute,--[[int]] second)return native_invoker.unified_void(hour, minute, second, 0x47C3B5848C3E45D8, "iii")end - PAUSE_CLOCK=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x4055E40BD2DBEC1D, "b")end - ADVANCE_CLOCK_TIME_TO=--[[void]] function(--[[int]] hour,--[[int]] minute,--[[int]] second)return native_invoker.unified_void(hour, minute, second, 0xC8CA9670B9D83B3B, "iii")end - ADD_TO_CLOCK_TIME=--[[void]] function(--[[int]] hours,--[[int]] minutes,--[[int]] seconds)return native_invoker.unified_void(hours, minutes, seconds, 0xD716F30D8C8980E2, "iii")end - -- Gets the current ingame hour, expressed without zeros. (09:34 will be represented as 9) - GET_CLOCK_HOURS=--[[int]] function()return native_invoker.unified_int(0x25223CA6B4D20B7F, "")end - -- Gets the current ingame clock minute. - GET_CLOCK_MINUTES=--[[int]] function()return native_invoker.unified_int(0x13D2B8ADD79640F2, "")end - -- Gets the current ingame clock second. Note that ingame clock seconds change really fast since a day in GTA is only 48 minutes in real life. - GET_CLOCK_SECONDS=--[[int]] function()return native_invoker.unified_int(0x494E97C2EF27C470, "")end - SET_CLOCK_DATE=--[[void]] function(--[[int]] day,--[[int]] month,--[[int]] year)return native_invoker.unified_void(day, month, year, 0xB096419DF0D06CE7, "iii")end - -- Gets the current day of the week. - -- - -- 0: Sunday - -- 1: Monday - -- 2: Tuesday - -- 3: Wednesday - -- 4: Thursday - -- 5: Friday - -- 6: Saturday - GET_CLOCK_DAY_OF_WEEK=--[[int]] function()return native_invoker.unified_int(0xD972E4BD7AEB235F, "")end - GET_CLOCK_DAY_OF_MONTH=--[[int]] function()return native_invoker.unified_int(0x3D10BC92A4DB1D35, "")end - GET_CLOCK_MONTH=--[[int]] function()return native_invoker.unified_int(0xBBC72712E80257A1, "")end - GET_CLOCK_YEAR=--[[int]] function()return native_invoker.unified_int(0x961777E64BDAF717, "")end - GET_MILLISECONDS_PER_GAME_MINUTE=--[[int]] function()return native_invoker.unified_int(0x2F8B4D1C595B11DB, "")end - -- Gets system time as year, month, day, hour, minute and second. - -- - -- Example usage: - -- - -- int year; - -- int month; - -- int day; - -- int hour; - -- int minute; - -- int second; - -- - -- TIME::GET_POSIX_TIME(&year, &month, &day, &hour, &minute, &second); - -- - GET_POSIX_TIME=--[[void]] function(--[[int* (pointer)]] year,--[[int* (pointer)]] month,--[[int* (pointer)]] day,--[[int* (pointer)]] hour,--[[int* (pointer)]] minute,--[[int* (pointer)]] second)return native_invoker.unified_void(year, month, day, hour, minute, second, 0xDA488F299A5B164E, "pppppp")end - -- Gets current UTC time - GET_UTC_TIME=--[[void]] function(--[[int* (pointer)]] year,--[[int* (pointer)]] month,--[[int* (pointer)]] day,--[[int* (pointer)]] hour,--[[int* (pointer)]] minute,--[[int* (pointer)]] second)return native_invoker.unified_void(year, month, day, hour, minute, second, 0x8117E09A19EEF4D3, "pppppp")end - -- Gets local system time as year, month, day, hour, minute and second. - -- - -- Example usage: - -- - -- int year; - -- int month; - -- int day; - -- int hour; - -- int minute; - -- int second; - -- or use std::tm struct - -- - -- TIME::GET_LOCAL_TIME(&year, &month, &day, &hour, &minute, &second); - -- - GET_LOCAL_TIME=--[[void]] function(--[[int* (pointer)]] year,--[[int* (pointer)]] month,--[[int* (pointer)]] day,--[[int* (pointer)]] hour,--[[int* (pointer)]] minute,--[[int* (pointer)]] second)return native_invoker.unified_void(year, month, day, hour, minute, second, 0x50C7A99057A69748, "pppppp")end --- CUTSCENE - -- flags: Usually 8 - -- Full list of cutscene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/cutsceneNames.json - REQUEST_CUTSCENE=--[[void]] function(--[[string]] cutsceneName,--[[int]] flags)return native_invoker.unified_void(cutsceneName, flags, 0x7A86743F475D9E09, "si")end - -- flags: Usually 8 - -- - -- playbackFlags: Which scenes should be played. - -- Example: 0x105 (bit 0, 2 and 8 set) will enable scene 1, 3 and 9. - -- Full list of cutscene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/cutsceneNames.json - REQUEST_CUTSCENE_WITH_PLAYBACK_LIST=--[[void]] function(--[[string]] cutsceneName,--[[int]] playbackFlags,--[[int]] flags)return native_invoker.unified_void(cutsceneName, playbackFlags, flags, 0xC23DE0E91C30B58C, "sii")end - REMOVE_CUTSCENE=--[[void]] function()return native_invoker.unified_void(0x440AF51A3462B86F, "")end - HAS_CUTSCENE_LOADED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC59F528E9AB9F339, "")end - -- Full list of cutscene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/cutsceneNames.json - HAS_THIS_CUTSCENE_LOADED=--[[BOOL (bool)]] function(--[[string]] cutsceneName)return native_invoker.unified_bool(cutsceneName, 0x228D3D94F8A11C3C, "s")end - -- Sets the cutscene's owning thread ID. - SET_SCRIPT_CAN_START_CUTSCENE=--[[void]] function(--[[int]] threadId)return native_invoker.unified_void(threadId, 0x8D9DF6ECA8768583, "i")end - CAN_REQUEST_ASSETS_FOR_CUTSCENE_ENTITY=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xB56BBBCC2955D9CB, "")end - IS_CUTSCENE_PLAYBACK_FLAG_SET=--[[BOOL (bool)]] function(--[[int]] flag)return native_invoker.unified_bool(flag, 0x71B74D2AE19338D0, "i")end - SET_CUTSCENE_ENTITY_STREAMING_FLAGS=--[[void]] function(--[[string]] cutsceneEntName,--[[int]] p1,--[[int]] p2)return native_invoker.unified_void(cutsceneEntName, p1, p2, 0x4C61C75BEE8184C2, "sii")end - -- Simply loads the cutscene and doesn't do extra stuff that REQUEST_CUTSCENE does. - -- Full list of cutscene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/cutsceneNames.json - REQUEST_CUT_FILE=--[[void]] function(--[[string]] cutsceneName)return native_invoker.unified_void(cutsceneName, 0x06A3524161C502BA, "s")end - -- Simply checks if the cutscene has loaded and doesn't check via CutSceneManager as opposed to HAS_[THIS]_CUTSCENE_LOADED. - -- Full list of cutscene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/cutsceneNames.json - HAS_CUT_FILE_LOADED=--[[BOOL (bool)]] function(--[[string]] cutsceneName)return native_invoker.unified_bool(cutsceneName, 0xA1C996C2A744262E, "s")end - -- Simply unloads the cutscene and doesn't do extra stuff that REMOVE_CUTSCENE does. - -- Full list of cutscene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/cutsceneNames.json - REMOVE_CUT_FILE=--[[void]] function(--[[string]] cutsceneName)return native_invoker.unified_void(cutsceneName, 0xD00D76A7DFC9D852, "s")end - -- Full list of cutscene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/cutsceneNames.json - GET_CUT_FILE_CONCAT_COUNT=--[[int]] function(--[[string]] cutsceneName)return native_invoker.unified_int(cutsceneName, 0x0ABC54DE641DC0FC, "s")end - -- flags: Usually 0. - START_CUTSCENE=--[[void]] function(--[[int]] flags)return native_invoker.unified_void(flags, 0x186D5CB5E7B0FF7B, "i")end - -- flags: Usually 0. - START_CUTSCENE_AT_COORDS=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] flags)return native_invoker.unified_void(x, y, z, flags, 0x1C9ADDA3244A1FBF, "fffi")end - STOP_CUTSCENE=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xC7272775B4DC786E, "b")end - STOP_CUTSCENE_IMMEDIATELY=--[[void]] function()return native_invoker.unified_void(0xD220BDD222AC4A1E, "")end - -- p3 could be heading. Needs more research. - SET_CUTSCENE_ORIGIN=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] p3,--[[int]] p4)return native_invoker.unified_void(x, y, z, p3, p4, 0xB812B3FD1C01CF27, "ffffi")end - SET_CUTSCENE_ORIGIN_AND_ORIENTATION=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[int]] p6)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, p6, 0x011883F41211432A, "ffffffi")end - GET_CUTSCENE_TIME=--[[int]] function()return native_invoker.unified_int(0xE625BEABBAFFDAB9, "")end - GET_CUTSCENE_TOTAL_DURATION=--[[int]] function()return native_invoker.unified_int(0xEE53B14A19E480D4, "")end - GET_CUTSCENE_END_TIME=--[[int]] function()return native_invoker.unified_int(0x971D7B15BCDBEF99, "")end - GET_CUTSCENE_PLAY_DURATION=--[[int]] function()return native_invoker.unified_int(0x5D583F71C901F2A3, "")end - WAS_CUTSCENE_SKIPPED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x40C8656EDAEDD569, "")end - HAS_CUTSCENE_FINISHED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x7C0A893088881D57, "")end - IS_CUTSCENE_ACTIVE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x991251AFC3981F84, "")end - IS_CUTSCENE_PLAYING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xD3C2E180A40F031E, "")end - GET_CUTSCENE_SECTION_PLAYING=--[[int]] function()return native_invoker.unified_int(0x49010A6A396553D8, "")end - GET_ENTITY_INDEX_OF_CUTSCENE_ENTITY=--[[Entity (int)]] function(--[[string]] cutsceneEntName,--[[Hash (int)]] modelHash)return native_invoker.unified_int(cutsceneEntName, modelHash, 0x0A2E9FDB9A8C62F6, "si")end - GET_CUTSCENE_CONCAT_SECTION_PLAYING=--[[int]] function()return native_invoker.unified_int(0x583DF8E3D4AFBD98, "")end - -- This function is hard-coded to always return 1. - IS_CUTSCENE_AUTHORIZED=--[[BOOL (bool)]] function(--[[string]] cutsceneName)return native_invoker.unified_bool(cutsceneName, 0x4CEBC1ED31E8925E, "s")end - DOES_CUTSCENE_HANDLE_EXIST=--[[int]] function(--[[int]] cutsceneHandle)return native_invoker.unified_int(cutsceneHandle, 0x4FCD976DA686580C, "i")end - REGISTER_ENTITY_FOR_CUTSCENE=--[[void]] function(--[[Ped (int)]] cutscenePed,--[[string]] cutsceneEntName,--[[int]] p2,--[[Hash (int)]] modelHash,--[[int]] p4)return native_invoker.unified_void(cutscenePed, cutsceneEntName, p2, modelHash, p4, 0xE40C1C56DF95C2E8, "isiii")end - GET_ENTITY_INDEX_OF_REGISTERED_ENTITY=--[[Entity (int)]] function(--[[string]] cutsceneEntName,--[[Hash (int)]] modelHash)return native_invoker.unified_int(cutsceneEntName, modelHash, 0xC0741A26499654CD, "si")end - -- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - SET_VEHICLE_MODEL_PLAYER_WILL_EXIT_SCENE=--[[void]] function(--[[Hash (int)]] modelHash)return native_invoker.unified_void(modelHash, 0x7F96F23FA9B73327, "i")end - -- Only used twice in R* scripts - SET_CUTSCENE_TRIGGER_AREA=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, 0x9896CE4721BE84BA, "ffffff")end - -- modelHash (p1) was always 0 in R* scripts - CAN_SET_ENTER_STATE_FOR_REGISTERED_ENTITY=--[[BOOL (bool)]] function(--[[string]] cutsceneEntName,--[[Hash (int)]] modelHash)return native_invoker.unified_bool(cutsceneEntName, modelHash, 0x645D0B458D8E17B5, "si")end - CAN_SET_EXIT_STATE_FOR_REGISTERED_ENTITY=--[[BOOL (bool)]] function(--[[string]] cutsceneEntName,--[[Hash (int)]] modelHash)return native_invoker.unified_bool(cutsceneEntName, modelHash, 0x4C6A6451C79E4662, "si")end - CAN_SET_EXIT_STATE_FOR_CAMERA=--[[BOOL (bool)]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_bool(p0, 0xB2CBCD0930DFB420, "b")end - -- Toggles a value (bool) for cutscenes. - SET_PAD_CAN_SHAKE_DURING_CUTSCENE=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xC61B86C9F61EB404, "b")end - SET_CUTSCENE_FADE_VALUES=--[[void]] function(--[[BOOL (bool)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x8093F23ABACCC7D4, "bbbb")end - SET_CUTSCENE_MULTIHEAD_FADE=--[[void]] function(--[[BOOL (bool)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x20746F7B1032A3C7, "bbbb")end - SET_CUTSCENE_MULTIHEAD_FADE_MANUAL=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x06EE9048FD080382, "b")end - IS_MULTIHEAD_FADE_UP=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xA0FE76168A189DDB, "")end - -- Stops current cutscene with a fade transition - -- p0: always true in R* Scripts - -- You will need to manually fade the screen back in - -- SET_CUTSCENE_INPUTS_PARTIALLY_FADE? - NETWORK_SET_MOCAP_CUTSCENE_CAN_BE_SKIPPED=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x2F137B508DE238F2, "b")end - SET_CAR_GENERATORS_CAN_UPDATE_DURING_CUTSCENE=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xE36A98D8AB3D3C66, "b")end - CAN_USE_MOBILE_PHONE_DURING_CUTSCENE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x5EDEF0CF8C1DAB3C, "")end - SET_CUTSCENE_CAN_BE_SKIPPED=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x41FAA8FB2ECE8720, "b")end - SET_CAN_DISPLAY_MINIMAP_DURING_CUTSCENE_THIS_UPDATE=--[[void]] function()return native_invoker.unified_void(0x2131046957F31B04, "")end - -- Full list of ped components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedComponentVariations.json - SET_CUTSCENE_PED_COMPONENT_VARIATION=--[[void]] function(--[[string]] cutsceneEntName,--[[int]] componentId,--[[int]] drawableId,--[[int]] textureId,--[[Hash (int)]] modelHash)return native_invoker.unified_void(cutsceneEntName, componentId, drawableId, textureId, modelHash, 0xBA01E7B6DEEFBBC9, "siiii")end - SET_CUTSCENE_PED_COMPONENT_VARIATION_FROM_PED=--[[void]] function(--[[string]] cutsceneEntName,--[[Ped (int)]] ped,--[[Hash (int)]] modelHash)return native_invoker.unified_void(cutsceneEntName, ped, modelHash, 0x2A56C06EBEF2B0D9, "sii")end - DOES_CUTSCENE_ENTITY_EXIST=--[[BOOL (bool)]] function(--[[string]] cutsceneEntName,--[[Hash (int)]] modelHash)return native_invoker.unified_bool(cutsceneEntName, modelHash, 0x499EF20C5DB25C59, "si")end - -- Thanks R*! ;) - -- - -- if ((l_161 == 0) || (l_161 == 2)) { - -- sub_2ea27("Trying to set Jimmy prop variation"); - -- CUTSCENE::SET_CUTSCENE_PED_PROP_VARIATION("Jimmy_Boston", 1, 0, 0, 0); - -- } - -- - -- Full list of ped components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedComponentVariations.json - SET_CUTSCENE_PED_PROP_VARIATION=--[[void]] function(--[[string]] cutsceneEntName,--[[int]] componentId,--[[int]] drawableId,--[[int]] textureId,--[[Hash (int)]] modelHash)return native_invoker.unified_void(cutsceneEntName, componentId, drawableId, textureId, modelHash, 0x0546524ADE2E9723, "siiii")end - -- Possibly HAS_CUTSCENE_CUT_THIS_FRAME, needs more research. - HAS_CUTSCENE_CUT_THIS_FRAME=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x708BDD8CD795B043, "")end --- DATAFILE - -- Adds the given requestID to the watch list. - DATAFILE_WATCH_REQUEST_ID=--[[void]] function(--[[int]] requestId)return native_invoker.unified_void(requestId, 0xAD6875BBC0FC899C, "i")end - DATAFILE_CLEAR_WATCH_LIST=--[[void]] function()return native_invoker.unified_void(0x6CC86E78358D5119, "")end - DATAFILE_IS_VALID_REQUEST_ID=--[[BOOL (bool)]] function(--[[int]] index)return native_invoker.unified_bool(index, 0xFCCAE5B92A830878, "i")end - DATAFILE_HAS_LOADED_FILE_DATA=--[[BOOL (bool)]] function(--[[int]] requestId)return native_invoker.unified_bool(requestId, 0x15FF52B809DB2353, "i")end - DATAFILE_HAS_VALID_FILE_DATA=--[[BOOL (bool)]] function(--[[int]] requestId)return native_invoker.unified_bool(requestId, 0xF8CC1EBE0B62E29F, "i")end - DATAFILE_SELECT_ACTIVE_FILE=--[[BOOL (bool)]] function(--[[int]] requestId,--[[Any (int)]] p1)return native_invoker.unified_bool(requestId, p1, 0x22DA66936E0FFF37, "ii")end - DATAFILE_DELETE_REQUESTED_FILE=--[[BOOL (bool)]] function(--[[int]] requestId)return native_invoker.unified_bool(requestId, 0x8F5EA1C01D65A100, "i")end - UGC_CREATE_CONTENT=--[[BOOL (bool)]] function(--[[Any* (pointer)]] data,--[[int]] dataCount,--[[string]] contentName,--[[string]] description,--[[string]] tagsCsv,--[[string]] contentTypeName,--[[BOOL (bool)]] publish,--[[Any (int)]] p7)return native_invoker.unified_bool(data, dataCount, contentName, description, tagsCsv, contentTypeName, publish, p7, 0xC84527E235FCA219, "pissssbi")end - UGC_CREATE_MISSION=--[[BOOL (bool)]] function(--[[string]] contentName,--[[string]] description,--[[string]] tagsCsv,--[[string]] contentTypeName,--[[BOOL (bool)]] publish,--[[Any (int)]] p5)return native_invoker.unified_bool(contentName, description, tagsCsv, contentTypeName, publish, p5, 0xA5EFC3E847D60507, "ssssbi")end - UGC_UPDATE_CONTENT=--[[BOOL (bool)]] function(--[[string]] contentId,--[[Any* (pointer)]] data,--[[int]] dataCount,--[[string]] contentName,--[[string]] description,--[[string]] tagsCsv,--[[string]] contentTypeName,--[[Any (int)]] p7)return native_invoker.unified_bool(contentId, data, dataCount, contentName, description, tagsCsv, contentTypeName, p7, 0x648E7A5434AF7969, "spissssi")end - UGC_UPDATE_MISSION=--[[BOOL (bool)]] function(--[[string]] contentId,--[[string]] contentName,--[[string]] description,--[[string]] tagsCsv,--[[string]] contentTypeName,--[[Any (int)]] p5)return native_invoker.unified_bool(contentId, contentName, description, tagsCsv, contentTypeName, p5, 0x4645DE9980999E93, "sssssi")end - UGC_SET_PLAYER_DATA=--[[BOOL (bool)]] function(--[[string]] contentId,--[[float]] rating,--[[string]] contentTypeName,--[[Any (int)]] p3)return native_invoker.unified_bool(contentId, rating, contentTypeName, p3, 0x692D808C34A82143, "sfsi")end - DATAFILE_SELECT_UGC_DATA=--[[BOOL (bool)]] function(--[[int]] p0,--[[Any (int)]] p1)return native_invoker.unified_bool(p0, p1, 0xA69AC4ADE82B57A4, "ii")end - DATAFILE_SELECT_UGC_STATS=--[[BOOL (bool)]] function(--[[int]] p0,--[[BOOL (bool)]] p1,--[[Any (int)]] p2)return native_invoker.unified_bool(p0, p1, p2, 0x9CB0BFA7A9342C3D, "ibi")end - DATAFILE_SELECT_UGC_PLAYER_DATA=--[[BOOL (bool)]] function(--[[int]] p0,--[[Any (int)]] p1)return native_invoker.unified_bool(p0, p1, 0x52818819057F2B40, "ii")end - DATAFILE_SELECT_CREATOR_STATS=--[[BOOL (bool)]] function(--[[int]] p0,--[[Any (int)]] p1)return native_invoker.unified_bool(p0, p1, 0x01095C95CD46B624, "ii")end - -- Loads a User-Generated Content (UGC) file. These files can be found in "[GTA5]\data\ugc" and "[GTA5]\common\patch\ugc". They seem to follow a naming convention, most likely of "[name]_[part].ugc". See example below for usage. - -- - -- Returns whether or not the file was successfully loaded. - -- - -- Example: - -- DATAFILE::DATAFILE_LOAD_OFFLINE_UGC("RockstarPlaylists") // loads "rockstarplaylists_00.ugc" - DATAFILE_LOAD_OFFLINE_UGC=--[[BOOL (bool)]] function(--[[string]] filename,--[[Any (int)]] p1)return native_invoker.unified_bool(filename, p1, 0xC5238C011AF405E4, "si")end - DATAFILE_CREATE=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0xD27058A1CA2B13EE, "i")end - DATAFILE_DELETE=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0x9AB9C1CFC8862DFB, "i")end - DATAFILE_STORE_MISSION_HEADER=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0x2ED61456317B8178, "i")end - DATAFILE_FLUSH_MISSION_HEADER=--[[void]] function()return native_invoker.unified_void(0xC55854C7D7274882, "")end - DATAFILE_GET_FILE_DICT=--[[Any* (pointer)]] function(--[[int]] p0)return native_invoker.unified_pointer(p0, 0x906B778CA1DC72B6, "i")end - DATAFILE_START_SAVE_TO_CLOUD=--[[BOOL (bool)]] function(--[[string]] filename,--[[Any (int)]] p1)return native_invoker.unified_bool(filename, p1, 0x83BCCE3224735F05, "si")end - DATAFILE_UPDATE_SAVE_TO_CLOUD=--[[BOOL (bool)]] function(--[[BOOL* (pointer)]] p0)return native_invoker.unified_bool(p0, 0x4DFDD9EB705F8140, "p")end - DATAFILE_IS_SAVE_PENDING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xBEDB96A7584AA8CF, "")end - DATAFILE_LOAD_OFFLINE_UGC_FOR_ADDITIONAL_DATA_FILE=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_bool(p0, p1, 0xA6EEF01087181EDD, "ii")end - DATAFILE_DELETE_FOR_ADDITIONAL_DATA_FILE=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x6AD0BD5E087866CB, "i")end - DATAFILE_GET_FILE_DICT_FOR_ADDITIONAL_DATA_FILE=--[[Any* (pointer)]] function(--[[Any (int)]] p0)return native_invoker.unified_pointer(p0, 0xDBF860CF1DB8E599, "i")end - DATADICT_SET_BOOL=--[[void]] function(--[[Any* (pointer)]] objectData,--[[string]] key,--[[BOOL (bool)]] value)return native_invoker.unified_void(objectData, key, value, 0x35124302A556A325, "psb")end - DATADICT_SET_INT=--[[void]] function(--[[Any* (pointer)]] objectData,--[[string]] key,--[[int]] value)return native_invoker.unified_void(objectData, key, value, 0xE7E035450A7948D5, "psi")end - DATADICT_SET_FLOAT=--[[void]] function(--[[Any* (pointer)]] objectData,--[[string]] key,--[[float]] value)return native_invoker.unified_void(objectData, key, value, 0xC27E1CC2D795105E, "psf")end - DATADICT_SET_STRING=--[[void]] function(--[[Any* (pointer)]] objectData,--[[string]] key,--[[string]] value)return native_invoker.unified_void(objectData, key, value, 0x8FF3847DADD8E30C, "pss")end - DATADICT_SET_VECTOR=--[[void]] function(--[[Any* (pointer)]] objectData,--[[string]] key,--[[float]] valueX,--[[float]] valueY,--[[float]] valueZ)return native_invoker.unified_void(objectData, key, valueX, valueY, valueZ, 0x4CD49B76338C7DEE, "psfff")end - DATADICT_CREATE_DICT=--[[Any* (pointer)]] function(--[[Any* (pointer)]] objectData,--[[string]] key)return native_invoker.unified_pointer(objectData, key, 0xA358F56F10732EE1, "ps")end - DATADICT_CREATE_ARRAY=--[[Any* (pointer)]] function(--[[Any* (pointer)]] objectData,--[[string]] key)return native_invoker.unified_pointer(objectData, key, 0x5B11728527CA6E5F, "ps")end - DATADICT_GET_BOOL=--[[BOOL (bool)]] function(--[[Any* (pointer)]] objectData,--[[string]] key)return native_invoker.unified_bool(objectData, key, 0x1186940ED72FFEEC, "ps")end - DATADICT_GET_INT=--[[int]] function(--[[Any* (pointer)]] objectData,--[[string]] key)return native_invoker.unified_int(objectData, key, 0x78F06F6B1FB5A80C, "ps")end - DATADICT_GET_FLOAT=--[[float]] function(--[[Any* (pointer)]] objectData,--[[string]] key)return native_invoker.unified_float(objectData, key, 0x06610343E73B9727, "ps")end - DATADICT_GET_STRING=--[[string]] function(--[[Any* (pointer)]] objectData,--[[string]] key)return native_invoker.unified_string(objectData, key, 0x3D2FD9E763B24472, "ps")end - DATADICT_GET_VECTOR=--[[Vector3 (vector3)]] function(--[[Any* (pointer)]] objectData,--[[string]] key)return native_invoker.unified_vector3(objectData, key, 0x46CD3CB66E0825CC, "ps")end - DATADICT_GET_DICT=--[[Any* (pointer)]] function(--[[Any* (pointer)]] objectData,--[[string]] key)return native_invoker.unified_pointer(objectData, key, 0xB6B9DDC412FCEEE2, "ps")end - DATADICT_GET_ARRAY=--[[Any* (pointer)]] function(--[[Any* (pointer)]] objectData,--[[string]] key)return native_invoker.unified_pointer(objectData, key, 0x7A983AA9DA2659ED, "ps")end - -- Types: - -- 1 = Boolean - -- 2 = Integer - -- 3 = Float - -- 4 = String - -- 5 = Vector3 - -- 6 = Object - -- 7 = Array - DATADICT_GET_TYPE=--[[int]] function(--[[Any* (pointer)]] objectData,--[[string]] key)return native_invoker.unified_int(objectData, key, 0x031C55ED33227371, "ps")end - DATAARRAY_ADD_BOOL=--[[void]] function(--[[Any* (pointer)]] arrayData,--[[BOOL (bool)]] value)return native_invoker.unified_void(arrayData, value, 0xF8B0F5A43E928C76, "pb")end - DATAARRAY_ADD_INT=--[[void]] function(--[[Any* (pointer)]] arrayData,--[[int]] value)return native_invoker.unified_void(arrayData, value, 0xCABDB751D86FE93B, "pi")end - DATAARRAY_ADD_FLOAT=--[[void]] function(--[[Any* (pointer)]] arrayData,--[[float]] value)return native_invoker.unified_void(arrayData, value, 0x57A995FD75D37F56, "pf")end - DATAARRAY_ADD_STRING=--[[void]] function(--[[Any* (pointer)]] arrayData,--[[string]] value)return native_invoker.unified_void(arrayData, value, 0x2F0661C155AEEEAA, "ps")end - DATAARRAY_ADD_VECTOR=--[[void]] function(--[[Any* (pointer)]] arrayData,--[[float]] valueX,--[[float]] valueY,--[[float]] valueZ)return native_invoker.unified_void(arrayData, valueX, valueY, valueZ, 0x407F8D034F70F0C2, "pfff")end - DATAARRAY_ADD_DICT=--[[Any* (pointer)]] function(--[[Any* (pointer)]] arrayData)return native_invoker.unified_pointer(arrayData, 0x6889498B3E19C797, "p")end - DATAARRAY_GET_BOOL=--[[BOOL (bool)]] function(--[[Any* (pointer)]] arrayData,--[[int]] arrayIndex)return native_invoker.unified_bool(arrayData, arrayIndex, 0x50C1B2874E50C114, "pi")end - DATAARRAY_GET_INT=--[[int]] function(--[[Any* (pointer)]] arrayData,--[[int]] arrayIndex)return native_invoker.unified_int(arrayData, arrayIndex, 0x3E5AE19425CD74BE, "pi")end - DATAARRAY_GET_FLOAT=--[[float]] function(--[[Any* (pointer)]] arrayData,--[[int]] arrayIndex)return native_invoker.unified_float(arrayData, arrayIndex, 0xC0C527B525D7CFB5, "pi")end - DATAARRAY_GET_STRING=--[[string]] function(--[[Any* (pointer)]] arrayData,--[[int]] arrayIndex)return native_invoker.unified_string(arrayData, arrayIndex, 0xD3F2FFEB8D836F52, "pi")end - DATAARRAY_GET_VECTOR=--[[Vector3 (vector3)]] function(--[[Any* (pointer)]] arrayData,--[[int]] arrayIndex)return native_invoker.unified_vector3(arrayData, arrayIndex, 0x8D2064E5B64A628A, "pi")end - DATAARRAY_GET_DICT=--[[Any* (pointer)]] function(--[[Any* (pointer)]] arrayData,--[[int]] arrayIndex)return native_invoker.unified_pointer(arrayData, arrayIndex, 0x8B5FADCC4E3A145F, "pi")end - DATAARRAY_GET_COUNT=--[[int]] function(--[[Any* (pointer)]] arrayData)return native_invoker.unified_int(arrayData, 0x065DB281590CEA2D, "p")end - -- Types: - -- 1 = Boolean - -- 2 = Integer - -- 3 = Float - -- 4 = String - -- 5 = Vector3 - -- 6 = Object - -- 7 = Array - DATAARRAY_GET_TYPE=--[[int]] function(--[[Any* (pointer)]] arrayData,--[[int]] arrayIndex)return native_invoker.unified_int(arrayData, arrayIndex, 0x3A0014ADB172A3C5, "pi")end --- DECORATOR - DECOR_SET_TIME=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[string]] propertyName,--[[int]] timestamp)return native_invoker.unified_bool(entity, propertyName, timestamp, 0x95AED7B8E39ECAA4, "isi")end - -- This function sets metadata of type bool to specified entity. - -- - DECOR_SET_BOOL=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[string]] propertyName,--[[BOOL (bool)]] value)return native_invoker.unified_bool(entity, propertyName, value, 0x6B1E8E2ED1335B71, "isb")end - DECOR_SET_FLOAT=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[string]] propertyName,--[[float]] value)return native_invoker.unified_bool(entity, propertyName, value, 0x211AB1DD8D0F363A, "isf")end - -- Sets property to int. - DECOR_SET_INT=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[string]] propertyName,--[[int]] value)return native_invoker.unified_bool(entity, propertyName, value, 0x0CE3AA5E1CA19E10, "isi")end - DECOR_GET_BOOL=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[string]] propertyName)return native_invoker.unified_bool(entity, propertyName, 0xDACE671663F2F5DB, "is")end - DECOR_GET_FLOAT=--[[float]] function(--[[Entity (int)]] entity,--[[string]] propertyName)return native_invoker.unified_float(entity, propertyName, 0x6524A2F114706F43, "is")end - DECOR_GET_INT=--[[int]] function(--[[Entity (int)]] entity,--[[string]] propertyName)return native_invoker.unified_int(entity, propertyName, 0xA06C969B02A97298, "is")end - -- Returns whether or not the specified property is set for the entity. - DECOR_EXIST_ON=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[string]] propertyName)return native_invoker.unified_bool(entity, propertyName, 0x05661B80A8C9165F, "is")end - DECOR_REMOVE=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[string]] propertyName)return native_invoker.unified_bool(entity, propertyName, 0x00EE9F297C738720, "is")end - -- https://alloc8or.re/gta5/doc/enums/eDecorType.txt - DECOR_REGISTER=--[[void]] function(--[[string]] propertyName,--[[int]] type)return native_invoker.unified_void(propertyName, type, 0x9FD90732F56403CE, "si")end - -- type: see DECOR_REGISTER - DECOR_IS_REGISTERED_AS_TYPE=--[[BOOL (bool)]] function(--[[string]] propertyName,--[[int]] type)return native_invoker.unified_bool(propertyName, type, 0x4F14F9F870D6FBC8, "si")end - -- Called after all decorator type initializations. - DECOR_REGISTER_LOCK=--[[void]] function()return native_invoker.unified_void(0xA9D14EEA259F9248, "")end --- DLC - ARE_ANY_CCS_PENDING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x241FCA5B1AA14F75, "")end - -- Returns true if the given DLC pack is present. - IS_DLC_PRESENT=--[[BOOL (bool)]] function(--[[Hash (int)]] dlcHash)return native_invoker.unified_bool(dlcHash, 0x812595A0644CE1DE, "i")end - -- This function is hard-coded to always return 1. - DLC_CHECK_CLOUD_DATA_CORRECT=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xF2E07819EF1A5289, "")end - -- This function is hard-coded to always return 0. - GET_EXTRACONTENT_CLOUD_RESULT=--[[int]] function()return native_invoker.unified_int(0x9489659372A81585, "")end - -- This function is hard-coded to always return 1. - DLC_CHECK_COMPAT_PACK_CONFIGURATION=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xA213B11DFF526300, "")end - GET_EVER_HAD_BAD_PACK_ORDER=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x8D30F648014A92B5, "")end - GET_IS_LOADING_SCREEN_ACTIVE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x10D0A8F259E93EC9, "")end - GET_IS_INITIAL_LOADING_SCREEN_ACTIVE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC4637A6D03C24CC3, "")end - -- Sets the value of the specified variable to 0. - -- Always returns true. - HAS_CLOUD_REQUESTS_FINISHED=--[[BOOL (bool)]] function(--[[BOOL* (pointer)]] p0,--[[int]] unused)return native_invoker.unified_bool(p0, unused, 0x46E2B844905BC5F0, "pi")end - -- Unloads GROUP_MAP (GTAO/MP) DLC data and loads GROUP_MAP_SP DLC. Neither are loaded by default, ON_ENTER_MP is a cognate to this function and loads MP DLC (and unloads SP DLC by extension). - -- Works in singleplayer. - ON_ENTER_SP=--[[void]] function()return native_invoker.unified_void(0xD7C10C4A637992C9, "")end - -- This loads the GTA:O dlc map parts (high end garages, apartments). - -- Works in singleplayer. - -- In order to use GTA:O heist IPL's you have to call this native with the following params: SET_INSTANCE_PRIORITY_MODE(1); - ON_ENTER_MP=--[[void]] function()return native_invoker.unified_void(0x0888C3502DBBEEF5, "")end --- ENTITY - -- Checks whether an entity exists in the game world. - DOES_ENTITY_EXIST=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x7239B21A38F536BA, "i")end - DOES_ENTITY_BELONG_TO_THIS_SCRIPT=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] p1)return native_invoker.unified_bool(entity, p1, 0xDDE6DF5AE89981D2, "ib")end - DOES_ENTITY_HAVE_DRAWABLE=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x060D6E96F8B8E48D, "i")end - DOES_ENTITY_HAVE_PHYSICS=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0xDA95EA3317CC5064, "i")end - DOES_ENTITY_HAVE_SKELETON=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x764EB96874EFFDC1, "i")end - DOES_ENTITY_HAVE_ANIM_DIRECTOR=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x2158E81A6AF65EA9, "i")end - -- P3 is always 3 as far as i cant tell - -- - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - HAS_ENTITY_ANIM_FINISHED=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[string]] animDict,--[[string]] animName,--[[int]] p3)return native_invoker.unified_bool(entity, animDict, animName, p3, 0x20B711662962B472, "issi")end - HAS_ENTITY_BEEN_DAMAGED_BY_ANY_OBJECT=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x95EB9964FF5C5C65, "i")end - HAS_ENTITY_BEEN_DAMAGED_BY_ANY_PED=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x605F5A140F202491, "i")end - HAS_ENTITY_BEEN_DAMAGED_BY_ANY_VEHICLE=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0xDFD5033FDBA0A9C8, "i")end - -- Entity 1 = Victim - -- Entity 2 = Attacker - -- - -- p2 seems to always be 1 - HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY=--[[BOOL (bool)]] function(--[[Entity (int)]] entity1,--[[Entity (int)]] entity2,--[[BOOL (bool)]] p2)return native_invoker.unified_bool(entity1, entity2, p2, 0xC86D67D52A707CF8, "iib")end - -- traceType is always 17 in the scripts. - -- - -- There is other codes used for traceType: - -- 19 - in jewelry_prep1a - -- 126 - in am_hunt_the_beast - -- 256 & 287 - in fm_mission_controller - HAS_ENTITY_CLEAR_LOS_TO_ENTITY=--[[BOOL (bool)]] function(--[[Entity (int)]] entity1,--[[Entity (int)]] entity2,--[[int]] traceType)return native_invoker.unified_bool(entity1, entity2, traceType, 0xFCDFF7B72D23A1AC, "iii")end - HAS_ENTITY_CLEAR_LOS_TO_ENTITY_ADJUST_FOR_COVER=--[[BOOL (bool)]] function(--[[Entity (int)]] entity1,--[[Entity (int)]] entity2,--[[int]] traceType)return native_invoker.unified_bool(entity1, entity2, traceType, 0x394BDE2A7BBA031E, "iii")end - -- Has the entity1 got a clear line of sight to the other entity2 from the direction entity1 is facing. - -- This is one of the most CPU demanding BOOL natives in the game; avoid calling this in things like nested for-loops - HAS_ENTITY_CLEAR_LOS_TO_ENTITY_IN_FRONT=--[[BOOL (bool)]] function(--[[Entity (int)]] entity1,--[[Entity (int)]] entity2)return native_invoker.unified_bool(entity1, entity2, 0x0267D00AF114F17A, "ii")end - -- Called on tick. - -- Tested with vehicles, returns true whenever the vehicle is touching any entity. - -- - -- Note: for vehicles, the wheels can touch the ground and it will still return false, but if the body of the vehicle touches the ground, it will return true. - HAS_ENTITY_COLLIDED_WITH_ANYTHING=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x8BAD02F0368D9E14, "i")end - _GET_LAST_ENTITY_HIT_BY_ENTITY=--[[Entity (int)]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0xA75EE4F689B85391, "i")end - GET_LAST_MATERIAL_HIT_BY_ENTITY=--[[Hash (int)]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0x5C3D0A935F535C4C, "i")end - GET_COLLISION_NORMAL_OF_LAST_HIT_FOR_ENTITY=--[[Vector3 (vector3)]] function(--[[Entity (int)]] entity)return native_invoker.unified_vector3(entity, 0xE465D4AB7CA6AE72, "i")end - -- Based on carmod_shop script decompile this takes a vehicle parameter. It is called when repair is done on initial enter. - FORCE_ENTITY_AI_AND_ANIMATION_UPDATE=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0x40FDEDB72F8293B2, "i")end - -- Returns a float value representing animation's current playtime with respect to its total playtime. This value increasing in a range from [0 to 1] and wrap back to 0 when it reach 1. - -- - -- Example: - -- 0.000000 - mark the starting of animation. - -- 0.500000 - mark the midpoint of the animation. - -- 1.000000 - mark the end of animation. - -- - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - GET_ENTITY_ANIM_CURRENT_TIME=--[[float]] function(--[[Entity (int)]] entity,--[[string]] animDict,--[[string]] animName)return native_invoker.unified_float(entity, animDict, animName, 0x346D81500D088F42, "iss")end - -- Returns a float value representing animation's total playtime in milliseconds. - -- - -- Example: - -- GET_ENTITY_ANIM_TOTAL_TIME(PLAYER_ID(),"amb@world_human_yoga@female@base","base_b") - -- return 20800.000000 - -- - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - GET_ENTITY_ANIM_TOTAL_TIME=--[[float]] function(--[[Entity (int)]] entity,--[[string]] animDict,--[[string]] animName)return native_invoker.unified_float(entity, animDict, animName, 0x50BD2730B191E360, "iss")end - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - GET_ANIM_DURATION=--[[float]] function(--[[string]] animDict,--[[string]] animName)return native_invoker.unified_float(animDict, animName, 0xFEDDF04D62B8D790, "ss")end - GET_ENTITY_ATTACHED_TO=--[[Entity (int)]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0x48C2BED9180FE123, "i")end - -- Gets the current coordinates for a specified entity. - -- `entity` = The entity to get the coordinates from. - -- `alive` = Unused by the game, potentially used by debug builds of GTA in order to assert whether or not an entity was alive. - GET_ENTITY_COORDS=--[[Vector3 (vector3)]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] alive)return native_invoker.unified_vector3(entity, alive, 0x3FEF770D40960D5A, "ib")end - -- Gets the entity's forward vector. - GET_ENTITY_FORWARD_VECTOR=--[[Vector3 (vector3)]] function(--[[Entity (int)]] entity)return native_invoker.unified_vector3(entity, 0x0A794A5A57F8DF91, "i")end - -- Gets the X-component of the entity's forward vector. - GET_ENTITY_FORWARD_X=--[[float]] function(--[[Entity (int)]] entity)return native_invoker.unified_float(entity, 0x8BB4EF4214E0E6D5, "i")end - -- Gets the Y-component of the entity's forward vector. - GET_ENTITY_FORWARD_Y=--[[float]] function(--[[Entity (int)]] entity)return native_invoker.unified_float(entity, 0x866A4A5FAE349510, "i")end - -- Returns the heading of the entity in degrees. Also know as the "Yaw" of an entity. - GET_ENTITY_HEADING=--[[float]] function(--[[Entity (int)]] entity)return native_invoker.unified_float(entity, 0xE83D4F9BA2A38914, "i")end - -- Gets the heading of the entity physics in degrees, which tends to be more accurate than just "GET_ENTITY_HEADING". This can be clearly seen while, for example, ragdolling a ped/player. - -- - -- NOTE: The name and description of this native are based on independent research. If you find this native to be more suitable under a different name and/or described differently, please feel free to do so. - GET_ENTITY_HEADING_FROM_EULERS=--[[float]] function(--[[Entity (int)]] entity)return native_invoker.unified_float(entity, 0x846BF6291198A71E, "i")end - -- Returns an integer value of entity's current health. - -- - -- Example of range for ped: - -- - Player [0 to 200] - -- - Ped [100 to 200] - -- - Vehicle [0 to 1000] - -- - Object [0 to 1000] - -- - -- Health is actually a float value but this native casts it to int. - -- In order to get the actual value, do: - -- float health = *(float *)(entityAddress + 0x280); - GET_ENTITY_HEALTH=--[[int]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0xEEF059FAD016D209, "i")end - -- Return an integer value of entity's maximum health. - -- - -- Example: - -- - Player = 200 - -- - Ped = 150 - GET_ENTITY_MAX_HEALTH=--[[int]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0x15D757606D170C3C, "i")end - -- For instance: ENTITY::SET_ENTITY_MAX_HEALTH(PLAYER::PLAYER_PED_ID(), 200); // director_mode.c4: 67849 - SET_ENTITY_MAX_HEALTH=--[[void]] function(--[[Entity (int)]] entity,--[[int]] value)return native_invoker.unified_void(entity, value, 0x166E7CF68597D8B5, "ii")end - GET_ENTITY_HEIGHT=--[[float]] function(--[[Entity (int)]] entity,--[[float]] X,--[[float]] Y,--[[float]] Z,--[[BOOL (bool)]] atTop,--[[BOOL (bool)]] inWorldCoords)return native_invoker.unified_float(entity, X, Y, Z, atTop, inWorldCoords, 0x5A504562485944DD, "ifffbb")end - -- Return height (z-dimension) above ground. - -- Example: The pilot in a titan plane is 1.844176 above ground. - -- - -- How can i convert it to meters? - -- Everything seems to be in meters, probably this too. - GET_ENTITY_HEIGHT_ABOVE_GROUND=--[[float]] function(--[[Entity (int)]] entity)return native_invoker.unified_float(entity, 0x1DD55701034110E5, "i")end - GET_ENTITY_MATRIX=--[[void]] function(--[[Entity (int)]] entity,--[[Vector3* (pointer)]] forwardVector,--[[Vector3* (pointer)]] rightVector,--[[Vector3* (pointer)]] upVector,--[[Vector3* (pointer)]] position)return native_invoker.unified_void(entity, forwardVector, rightVector, upVector, position, 0xECB2FC7235A7D137, "ipppp")end - -- Returns the model hash from the entity - GET_ENTITY_MODEL=--[[Hash (int)]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0x9F47B058362C84B5, "i")end - -- Converts world coords (posX - Z) to coords relative to the entity - -- - -- Example: - -- posX is given as 50 - -- entity's x coord is 40 - -- the returned x coord will then be 10 or -10, not sure haven't used this in a while (think it is 10 though). - GET_OFFSET_FROM_ENTITY_GIVEN_WORLD_COORDS=--[[Vector3 (vector3)]] function(--[[Entity (int)]] entity,--[[float]] posX,--[[float]] posY,--[[float]] posZ)return native_invoker.unified_vector3(entity, posX, posY, posZ, 0x2274BC1C4885E333, "ifff")end - -- Offset values are relative to the entity. - -- - -- x = left/right - -- y = forward/backward - -- z = up/down - GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS=--[[Vector3 (vector3)]] function(--[[Entity (int)]] entity,--[[float]] offsetX,--[[float]] offsetY,--[[float]] offsetZ)return native_invoker.unified_vector3(entity, offsetX, offsetY, offsetZ, 0x1899F328B0E12848, "ifff")end - GET_ENTITY_PITCH=--[[float]] function(--[[Entity (int)]] entity)return native_invoker.unified_float(entity, 0xD45DC2893621E1FE, "i")end - -- w is the correct parameter name! - GET_ENTITY_QUATERNION=--[[void]] function(--[[Entity (int)]] entity,--[[float* (pointer)]] x,--[[float* (pointer)]] y,--[[float* (pointer)]] z,--[[float* (pointer)]] w)return native_invoker.unified_void(entity, x, y, z, w, 0x7B3703D2D32DFA18, "ipppp")end - -- Displays the current ROLL axis of the entity [-180.0000/180.0000+] - -- (Sideways Roll) such as a vehicle tipped on its side - GET_ENTITY_ROLL=--[[float]] function(--[[Entity (int)]] entity)return native_invoker.unified_float(entity, 0x831E0242595560DF, "i")end - -- rotationOrder is the order yaw, pitch and roll is applied. Usually 2. Returns a vector where the Z coordinate is the yaw. - -- - -- rotationOrder refers to the order yaw pitch roll is applied; value ranges from 0 to 5 and is usually *2* in scripts. - -- What you use for rotationOrder when getting must be the same as rotationOrder when setting the rotation. - -- - -- What it returns is the yaw on the z part of the vector, which makes sense considering R* considers z as vertical. Here's a picture for those of you who don't understand pitch, yaw, and roll: www.allstar.fiu.edu/aero/images/pic5-1.gif - -- - -- Rotation Orders: - -- 0: ZYX - Rotate around the z-axis, then the y-axis and finally the x-axis. - -- 1: YZX - Rotate around the y-axis, then the z-axis and finally the x-axis. - -- 2: ZXY - Rotate around the z-axis, then the x-axis and finally the y-axis. - -- 3: XZY - Rotate around the x-axis, then the z-axis and finally the y-axis. - -- 4: YXZ - Rotate around the y-axis, then the x-axis and finally the z-axis. - -- 5: XYZ - Rotate around the x-axis, then the y-axis and finally the z-axis. - GET_ENTITY_ROTATION=--[[Vector3 (vector3)]] function(--[[Entity (int)]] entity,--[[int]] rotationOrder)return native_invoker.unified_vector3(entity, rotationOrder, 0xAFBD61CC738D9EB9, "ii")end - GET_ENTITY_ROTATION_VELOCITY=--[[Vector3 (vector3)]] function(--[[Entity (int)]] entity)return native_invoker.unified_vector3(entity, 0x213B91045D09B983, "i")end - -- Returns the name of the script that owns/created the entity or nullptr. Second parameter is unused, can just be a nullptr. - GET_ENTITY_SCRIPT=--[[string]] function(--[[Entity (int)]] entity,--[[ScrHandle* (pointer)]] script)return native_invoker.unified_string(entity, script, 0xA6E9C38DB51D7748, "ip")end - -- result is in meters per second - -- - -- ------------------------------------------------------------ - -- So would the conversion to mph and km/h, be along the lines of this. - -- - -- float speed = GET_ENTITY_SPEED(veh); - -- float kmh = (speed * 3.6); - -- float mph = (speed * 2.236936); - -- ------------------------------------------------------------ - GET_ENTITY_SPEED=--[[float]] function(--[[Entity (int)]] entity)return native_invoker.unified_float(entity, 0xD5037BA82E12416F, "i")end - -- Relative can be used for getting speed relative to the frame of the vehicle, to determine for example, if you are going in reverse (-y speed) or not (+y speed). - GET_ENTITY_SPEED_VECTOR=--[[Vector3 (vector3)]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] relative)return native_invoker.unified_vector3(entity, relative, 0x9A8D700A51CB7B0D, "ib")end - GET_ENTITY_UPRIGHT_VALUE=--[[float]] function(--[[Entity (int)]] entity)return native_invoker.unified_float(entity, 0x95EED5A694951F9F, "i")end - GET_ENTITY_VELOCITY=--[[Vector3 (vector3)]] function(--[[Entity (int)]] entity)return native_invoker.unified_vector3(entity, 0x4805D2B1D8CF94A9, "i")end - -- Simply returns whatever is passed to it (Regardless of whether the handle is valid or not). - GET_OBJECT_INDEX_FROM_ENTITY_INDEX=--[[Object (int)]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0xD7E3B9735C0F89D6, "i")end - -- Simply returns whatever is passed to it (Regardless of whether the handle is valid or not). - GET_PED_INDEX_FROM_ENTITY_INDEX=--[[Ped (int)]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0x04A2A40C73395041, "i")end - -- Simply returns whatever is passed to it (Regardless of whether the handle is valid or not). - GET_VEHICLE_INDEX_FROM_ENTITY_INDEX=--[[Vehicle (int)]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0x4B53F92932ADFAC0, "i")end - -- Returns the coordinates of an entity-bone. - GET_WORLD_POSITION_OF_ENTITY_BONE=--[[Vector3 (vector3)]] function(--[[Entity (int)]] entity,--[[int]] boneIndex)return native_invoker.unified_vector3(entity, boneIndex, 0x44A8FCB8ED227738, "ii")end - GET_NEAREST_PLAYER_TO_ENTITY=--[[Player (int)]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0x7196842CB375CDB3, "i")end - GET_NEAREST_PLAYER_TO_ENTITY_ON_TEAM=--[[Player (int)]] function(--[[Entity (int)]] entity,--[[int]] team)return native_invoker.unified_int(entity, team, 0x4DC9A62F844D9337, "ii")end - GET_NEAREST_PARTICIPANT_TO_ENTITY=--[[int]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0xFFBD7052D65BE0FF, "i")end - -- Returns: - -- 0 = no entity - -- 1 = ped - -- 2 = vehicle - -- 3 = object - GET_ENTITY_TYPE=--[[int]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0x8ACD366038D14505, "i")end - -- A population type, from the following enum: https://alloc8or.re/gta5/doc/enums/ePopulationType.txt - GET_ENTITY_POPULATION_TYPE=--[[int]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0xF6F5161F4534EDFF, "i")end - IS_AN_ENTITY=--[[BOOL (bool)]] function(--[[ScrHandle (int)]] handle)return native_invoker.unified_bool(handle, 0x731EC8A916BD11A1, "i")end - IS_ENTITY_A_PED=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x524AC5ECEA15343E, "i")end - IS_ENTITY_A_MISSION_ENTITY=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x0A7B270912999B3C, "i")end - IS_ENTITY_A_VEHICLE=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x6AC7003FA6E5575E, "i")end - IS_ENTITY_AN_OBJECT=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x8D68C8FD0FACA94E, "i")end - -- Checks if entity is within x/y/zSize distance of x/y/z. - -- - -- Last three are unknown ints, almost always p7 = 0, p8 = 1, p9 = 0 - IS_ENTITY_AT_COORD=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[float]] xPos,--[[float]] yPos,--[[float]] zPos,--[[float]] xSize,--[[float]] ySize,--[[float]] zSize,--[[BOOL (bool)]] p7,--[[BOOL (bool)]] p8,--[[int]] p9)return native_invoker.unified_bool(entity, xPos, yPos, zPos, xSize, ySize, zSize, p7, p8, p9, 0x20B60995556D004F, "iffffffbbi")end - -- Checks if entity1 is within the box defined by x/y/zSize of entity2. - -- - -- Last three parameters are almost alwasy p5 = 0, p6 = 1, p7 = 0 - IS_ENTITY_AT_ENTITY=--[[BOOL (bool)]] function(--[[Entity (int)]] entity1,--[[Entity (int)]] entity2,--[[float]] xSize,--[[float]] ySize,--[[float]] zSize,--[[BOOL (bool)]] p5,--[[BOOL (bool)]] p6,--[[int]] p7)return native_invoker.unified_bool(entity1, entity2, xSize, ySize, zSize, p5, p6, p7, 0x751B70C3D034E187, "iifffbbi")end - -- Whether the entity is attached to any other entity. - IS_ENTITY_ATTACHED=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0xB346476EF1A64897, "i")end - IS_ENTITY_ATTACHED_TO_ANY_OBJECT=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0xCF511840CEEDE0CC, "i")end - IS_ENTITY_ATTACHED_TO_ANY_PED=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0xB1632E9A5F988D11, "i")end - IS_ENTITY_ATTACHED_TO_ANY_VEHICLE=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x26AA915AD89BFB4B, "i")end - IS_ENTITY_ATTACHED_TO_ENTITY=--[[BOOL (bool)]] function(--[[Entity (int)]] from,--[[Entity (int)]] to)return native_invoker.unified_bool(from, to, 0xEFBE71898A993728, "ii")end - IS_ENTITY_DEAD=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] p1)return native_invoker.unified_bool(entity, p1, 0x5F9532F3B5CC2551, "ib")end - IS_ENTITY_IN_AIR=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x886E37EC497200B6, "i")end - -- `p8` is a debug flag invoking functions in the same path as ``DRAW_MARKER`` - -- `p10` is some entity flag check, also used in `IS_ENTITY_AT_ENTITY`, `IS_ENTITY_IN_AREA`, and `IS_ENTITY_AT_COORD`. - -- See IS_POINT_IN_ANGLED_AREA for the definition of an angled area. - IS_ENTITY_IN_ANGLED_AREA=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] width,--[[BOOL (bool)]] debug,--[[BOOL (bool)]] includeZ,--[[Any (int)]] p10)return native_invoker.unified_bool(entity, x1, y1, z1, x2, y2, z2, width, debug, includeZ, p10, 0x51210CED3DA1C78A, "ifffffffbbi")end - IS_ENTITY_IN_AREA=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[BOOL (bool)]] p7,--[[BOOL (bool)]] p8,--[[Any (int)]] p9)return native_invoker.unified_bool(entity, x1, y1, z1, x2, y2, z2, p7, p8, p9, 0x54736AA40E271165, "iffffffbbi")end - -- Full list of zones by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/zones.json - IS_ENTITY_IN_ZONE=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[string]] zone)return native_invoker.unified_bool(entity, zone, 0xB6463CF6AF527071, "is")end - IS_ENTITY_IN_WATER=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0xCFB0A0D8EDD145A3, "i")end - -- Get how much of the entity is submerged. 1.0f is whole entity. - GET_ENTITY_SUBMERGED_LEVEL=--[[float]] function(--[[Entity (int)]] entity)return native_invoker.unified_float(entity, 0xE81AFC1BC4CC41CE, "i")end - SET_ENTITY_REQUIRES_MORE_EXPENSIVE_RIVER_CHECK=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0x694E00132F2823ED, "ib")end - -- Returns true if the entity is in between the minimum and maximum values for the 2d screen coords. - -- This means that it will return true even if the entity is behind a wall for example, as long as you're looking at their location. - -- Chipping - IS_ENTITY_ON_SCREEN=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0xE659E47AF827484B, "i")end - -- See also PED::IS_SCRIPTED_SCENARIO_PED_USING_CONDITIONAL_ANIM 0x6EC47A344923E1ED 0x3C30B447 - -- - -- Taken from ENTITY::IS_ENTITY_PLAYING_ANIM(PLAYER::PLAYER_PED_ID(), "creatures@shark@move", "attack_player", 3) - -- - -- p4 is always 3 in the scripts. - -- - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - IS_ENTITY_PLAYING_ANIM=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[string]] animDict,--[[string]] animName,--[[int]] taskFlag)return native_invoker.unified_bool(entity, animDict, animName, taskFlag, 0x1F0B79228E461EC9, "issi")end - -- a static ped will not react to natives like "APPLY_FORCE_TO_ENTITY" or "SET_ENTITY_VELOCITY" and oftentimes will not react to task-natives like "TASK::TASK_COMBAT_PED". The only way I know of to make one of these peds react is to ragdoll them (or sometimes to use CLEAR_PED_TASKS_IMMEDIATELY(). Static peds include almost all far-away peds, beach-combers, peds in certain scenarios, peds crossing a crosswalk, peds walking to get back into their cars, and others. If anyone knows how to make a ped non-static without ragdolling them, please edit this with the solution. - -- - -- how can I make an entity static??? - IS_ENTITY_STATIC=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x1218E6886D3D8327, "i")end - IS_ENTITY_TOUCHING_ENTITY=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[Entity (int)]] targetEntity)return native_invoker.unified_bool(entity, targetEntity, 0x17FFC1B2BA35A494, "ii")end - IS_ENTITY_TOUCHING_MODEL=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[Hash (int)]] modelHash)return native_invoker.unified_bool(entity, modelHash, 0x0F42323798A58C8C, "ii")end - IS_ENTITY_UPRIGHT=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[float]] angle)return native_invoker.unified_bool(entity, angle, 0x5333F526F6AB19AA, "if")end - IS_ENTITY_UPSIDEDOWN=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x1DBD58820FA61D71, "i")end - IS_ENTITY_VISIBLE=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x47D6F43D77935C75, "i")end - IS_ENTITY_VISIBLE_TO_SCRIPT=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0xD796CB5BA8F20E32, "i")end - IS_ENTITY_OCCLUDED=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0xE31C2C72B8692B64, "i")end - WOULD_ENTITY_BE_OCCLUDED=--[[BOOL (bool)]] function(--[[Hash (int)]] entityModelHash,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] p4)return native_invoker.unified_bool(entityModelHash, x, y, z, p4, 0xEE5D2A122E09EC42, "ifffb")end - IS_ENTITY_WAITING_FOR_WORLD_COLLISION=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0xD05BFF0C0A12C68F, "i")end - -- Applies a force to the specified entity. - -- - -- **List of force types (p1)**: - -- public enum ForceType - -- { - -- MinForce = 0, - -- MaxForceRot = 1, - -- MinForce2 = 2, - -- MaxForceRot2 = 3, - -- ForceNoRot = 4, - -- ForceRotPlusForce = 5 - -- } - -- Research/documentation on the gtaforums can be found here https://gtaforums.com/topic/885669-precisely-define-object-physics/) and here https://gtaforums.com/topic/887362-apply-forces-and-momentums-to-entityobject/. - -- - -- p6/relative - makes the xyz force not relative to world coords, but to something else - -- p7/highForce - setting false will make the force really low - APPLY_FORCE_TO_ENTITY_CENTER_OF_MASS=--[[void]] function(--[[Entity (int)]] entity,--[[int]] forceType,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] p5,--[[BOOL (bool)]] isDirectionRel,--[[BOOL (bool)]] isForceRel,--[[BOOL (bool)]] p8)return native_invoker.unified_void(entity, forceType, x, y, z, p5, isDirectionRel, isForceRel, p8, 0x18FF00FC7EFF559E, "iifffbbbb")end - -- Documented here: - -- gtaforums.com/topic/885669-precisely-define-object-physics/ - -- gtaforums.com/topic/887362-apply-forces-and-momentums-to-entityobject/ - -- - -- forceFlags: - -- First bit (lowest): Strong force flag, factor 100 - -- Second bit: Unkown flag - -- Third bit: Momentum flag=1 (vector (x,y,z) is a momentum, more research needed) - -- If higher bits are unequal 0 the function doesn't applay any forces at all. - -- (As integer possible values are 0-7) - -- - -- 0: weak force - -- 1: strong force - -- 2: same as 0 (2nd bit?) - -- 3: same as 1 - -- 4: weak momentum - -- 5: strong momentum - -- 6: same as 4 - -- 7: same as 5 - -- - -- isLocal: vector defined in local (body-fixed) coordinate frame - -- isMassRel: if true the force gets multiplied with the objects mass (this is why it was known as highForce) and different objects will have the same acceleration. - -- - -- p8 !!! Whenever I set this !=0, my script stopped. - APPLY_FORCE_TO_ENTITY=--[[void]] function(--[[Entity (int)]] entity,--[[int]] forceFlags,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] offX,--[[float]] offY,--[[float]] offZ,--[[int]] boneIndex,--[[BOOL (bool)]] isDirectionRel,--[[BOOL (bool)]] ignoreUpVec,--[[BOOL (bool)]] isForceRel,--[[BOOL (bool)]] p12,--[[BOOL (bool)]] p13)return native_invoker.unified_void(entity, forceFlags, x, y, z, offX, offY, offZ, boneIndex, isDirectionRel, ignoreUpVec, isForceRel, p12, p13, 0xC5F68BE9613E2D18, "iiffffffibbbbb")end - -- Attaches entity1 to bone (boneIndex) of entity2. - -- - -- boneIndex - this is different to boneID, use GET_PED_BONE_INDEX to get the index from the ID. use the index for attaching to specific bones. entity1 will be attached to entity2's centre if bone index given doesn't correspond to bone indexes for that entity type. - -- - -- useSoftPinning - if set to false attached entity will not detach when fixed - -- collision - controls collision between the two entities (FALSE disables collision). - -- isPed - pitch doesnt work when false and roll will only work on negative numbers (only peds) - -- vertexIndex - position of vertex - -- fixedRot - if false it ignores entity vector - -- - ATTACH_ENTITY_TO_ENTITY=--[[void]] function(--[[Entity (int)]] entity1,--[[Entity (int)]] entity2,--[[int]] boneIndex,--[[float]] xPos,--[[float]] yPos,--[[float]] zPos,--[[float]] xRot,--[[float]] yRot,--[[float]] zRot,--[[BOOL (bool)]] p9,--[[BOOL (bool)]] useSoftPinning,--[[BOOL (bool)]] collision,--[[BOOL (bool)]] isPed,--[[int]] vertexIndex,--[[BOOL (bool)]] fixedRot,--[[Any (int)]] p15)return native_invoker.unified_void(entity1, entity2, boneIndex, xPos, yPos, zPos, xRot, yRot, zRot, p9, useSoftPinning, collision, isPed, vertexIndex, fixedRot, p15, 0x6B9BBD38AB0796DF, "iiiffffffbbbbibi")end - ATTACH_ENTITY_BONE_TO_ENTITY_BONE=--[[void]] function(--[[Entity (int)]] entity1,--[[Entity (int)]] entity2,--[[int]] boneIndex1,--[[int]] boneIndex2,--[[BOOL (bool)]] p4,--[[BOOL (bool)]] p5)return native_invoker.unified_void(entity1, entity2, boneIndex1, boneIndex2, p4, p5, 0x5C48B75732C8456C, "iiiibb")end - ATTACH_ENTITY_BONE_TO_ENTITY_BONE_Y_FORWARD=--[[void]] function(--[[Entity (int)]] entity1,--[[Entity (int)]] entity2,--[[int]] boneIndex1,--[[int]] boneIndex2,--[[BOOL (bool)]] p4,--[[BOOL (bool)]] p5)return native_invoker.unified_void(entity1, entity2, boneIndex1, boneIndex2, p4, p5, 0xFD1695C5D3B05439, "iiiibb")end - -- breakForce is the amount of force required to break the bond. - -- p14 - is always 1 in scripts - -- p15 - is 1 or 0 in scripts - unknoun what it does - -- p16 - controls collision between the two entities (FALSE disables collision). - -- p17 - do not teleport entity to be attached to the position of the bone Index of the target entity (if 1, entity will not be teleported to target bone) - -- p18 - is always 2 in scripts. - -- - -- - ATTACH_ENTITY_TO_ENTITY_PHYSICALLY=--[[void]] function(--[[Entity (int)]] entity1,--[[Entity (int)]] entity2,--[[int]] boneIndex1,--[[int]] boneIndex2,--[[float]] xPos1,--[[float]] yPos1,--[[float]] zPos1,--[[float]] xPos2,--[[float]] yPos2,--[[float]] zPos2,--[[float]] xRot,--[[float]] yRot,--[[float]] zRot,--[[float]] breakForce,--[[BOOL (bool)]] fixedRot,--[[BOOL (bool)]] p15,--[[BOOL (bool)]] collision,--[[BOOL (bool)]] p17,--[[int]] p18)return native_invoker.unified_void(entity1, entity2, boneIndex1, boneIndex2, xPos1, yPos1, zPos1, xPos2, yPos2, zPos2, xRot, yRot, zRot, breakForce, fixedRot, p15, collision, p17, p18, 0xC3675780C92F90F9, "iiiiffffffffffbbbbi")end - ATTACH_ENTITY_TO_ENTITY_PHYSICALLY_OVERRIDE_INVERSE_MASS=--[[void]] function(--[[Entity (int)]] firstEntityIndex,--[[Entity (int)]] secondEntityIndex,--[[int]] firstEntityBoneIndex,--[[int]] secondEntityBoneIndex,--[[float]] secondEntityOffsetX,--[[float]] secondEntityOffsetY,--[[float]] secondEntityOffsetZ,--[[float]] firstEntityOffsetX,--[[float]] firstEntityOffsetY,--[[float]] firstEntityOffsetZ,--[[float]] vecRotationX,--[[float]] vecRotationY,--[[float]] vecRotationZ,--[[float]] physicalStrength,--[[BOOL (bool)]] constrainRotation,--[[BOOL (bool)]] doInitialWarp,--[[BOOL (bool)]] collideWithEntity,--[[BOOL (bool)]] addInitialSeperation,--[[int]] rotOrder,--[[float]] invMassScaleA,--[[float]] invMassScaleB)return native_invoker.unified_void(firstEntityIndex, secondEntityIndex, firstEntityBoneIndex, secondEntityBoneIndex, secondEntityOffsetX, secondEntityOffsetY, secondEntityOffsetZ, firstEntityOffsetX, firstEntityOffsetY, firstEntityOffsetZ, vecRotationX, vecRotationY, vecRotationZ, physicalStrength, constrainRotation, doInitialWarp, collideWithEntity, addInitialSeperation, rotOrder, invMassScaleA, invMassScaleB, 0x168A09D1B25B0BA4, "iiiiffffffffffbbbbiff")end - -- Called to update entity attachments. - PROCESS_ENTITY_ATTACHMENTS=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0xF4080490ADC51C6F, "i")end - -- Returns the index of the bone. If the bone was not found, -1 will be returned. - -- - -- list: - -- https://pastebin.com/D7JMnX1g - -- - -- BoneNames: - -- chassis, - -- windscreen, - -- seat_pside_r, - -- seat_dside_r, - -- bodyshell, - -- suspension_lm, - -- suspension_lr, - -- platelight, - -- attach_female, - -- attach_male, - -- bonnet, - -- boot, - -- chassis_dummy, //Center of the dummy - -- chassis_Control, //Not found yet - -- door_dside_f, //Door left, front - -- door_dside_r, //Door left, back - -- door_pside_f, //Door right, front - -- door_pside_r, //Door right, back - -- Gun_GripR, - -- windscreen_f, - -- platelight, //Position where the light above the numberplate is located - -- VFX_Emitter, - -- window_lf, //Window left, front - -- window_lr, //Window left, back - -- window_rf, //Window right, front - -- window_rr, //Window right, back - -- engine, //Position of the engine - -- gun_ammo, - -- ROPE_ATTATCH, //Not misspelled. In script "finale_heist2b.c4". - -- wheel_lf, //Wheel left, front - -- wheel_lr, //Wheel left, back - -- wheel_rf, //Wheel right, front - -- wheel_rr, //Wheel right, back - -- exhaust, //Exhaust. shows only the position of the stock-exhaust - -- overheat, //A position on the engine(not exactly sure, how to name it) - -- misc_e, //Not a car-bone. - -- seat_dside_f, //Driver-seat - -- seat_pside_f, //Seat next to driver - -- Gun_Nuzzle, - -- seat_r - -- - -- I doubt that the function is case-sensitive, since I found a "Chassis" and a "chassis". - Just tested: Definitely not case-sensitive. - -- - -- - GET_ENTITY_BONE_INDEX_BY_NAME=--[[int]] function(--[[Entity (int)]] entity,--[[string]] boneName)return native_invoker.unified_int(entity, boneName, 0xFB71170B7E76ACBA, "is")end - CLEAR_ENTITY_LAST_DAMAGE_ENTITY=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0xA72CD9CA74A5ECBA, "i")end - -- Deletes the specified entity, then sets the handle pointed to by the pointer to NULL. - DELETE_ENTITY=--[[void]] function(--[[Entity* (pointer)]] entity)return native_invoker.unified_void(entity, 0xAE3CBE5BF394C9C9, "p")end - -- If `collision` is set to true, both entities won't collide with the other until the distance between them is above 4 meters. - -- Set `dynamic` to true to keep velocity after dettaching - DETACH_ENTITY=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] dynamic,--[[BOOL (bool)]] collision)return native_invoker.unified_void(entity, dynamic, collision, 0x961AC54BF0613F5D, "ibb")end - -- Freezes or unfreezes an entity preventing its coordinates to change by the player if set to `true`. You can still change the entity position using SET_ENTITY_COORDS. - FREEZE_ENTITY_POSITION=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0x428CA6DBD1094446, "ib")end - -- True means it can be deleted by the engine when switching lobbies/missions/etc, false means the script is expected to clean it up. - -- - -- "Allow Freeze If No Collision" - SET_ENTITY_SHOULD_FREEZE_WAITING_ON_COLLISION=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0x3910051CCECDB00C, "ib")end - -- delta and bitset are guessed fields. They are based on the fact that most of the calls have 0 or nil field types passed in. - -- - -- The only time bitset has a value is 0x4000 and the only time delta has a value is during stealth with usually <1.0f values. - -- - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - PLAY_ENTITY_ANIM=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[string]] animName,--[[string]] animDict,--[[float]] p3,--[[BOOL (bool)]] loop,--[[BOOL (bool)]] stayInAnim,--[[BOOL (bool)]] p6,--[[float]] delta,--[[Any (int)]] bitset)return native_invoker.unified_bool(entity, animName, animDict, p3, loop, stayInAnim, p6, delta, bitset, 0x7FB218262B810701, "issfbbbfi")end - -- p4 and p7 are usually 1000.0f. - -- - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - PLAY_SYNCHRONIZED_ENTITY_ANIM=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[int]] syncedScene,--[[string]] animation,--[[string]] propName,--[[float]] p4,--[[float]] p5,--[[Any (int)]] p6,--[[float]] p7)return native_invoker.unified_bool(entity, syncedScene, animation, propName, p4, p5, p6, p7, 0xC77720A12FE14A86, "iissffif")end - -- p6,p7 probably animname and animdict - -- - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - PLAY_SYNCHRONIZED_MAP_ENTITY_ANIM=--[[BOOL (bool)]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[Any (int)]] y2,--[[float]] z2,--[[string]] p6,--[[string]] p7,--[[float]] p8,--[[float]] p9,--[[Any (int)]] p10,--[[float]] p11)return native_invoker.unified_bool(x1, y1, z1, x2, y2, z2, p6, p7, p8, p9, p10, p11, 0xB9C54555ED30FBC4, "ffffifssffif")end - STOP_SYNCHRONIZED_MAP_ENTITY_ANIM=--[[BOOL (bool)]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[Any (int)]] y2,--[[float]] z2)return native_invoker.unified_bool(x1, y1, z1, x2, y2, z2, 0x11E79CAB7183B6F5, "ffffif")end - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - -- - -- RAGEPluginHook list: docs.ragepluginhook.net/html/62951c37-a440-478c-b389-c471230ddfc5.htm - STOP_ENTITY_ANIM=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[string]] animation,--[[string]] animGroup,--[[float]] p3)return native_invoker.unified_bool(entity, animation, animGroup, p3, 0x28004F88151E03E0, "issf")end - -- p1 sync task id? - STOP_SYNCHRONIZED_ENTITY_ANIM=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[float]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_bool(entity, p1, p2, 0x43D3807C077261E3, "ifb")end - -- if (ENTITY::HAS_ANIM_EVENT_FIRED(PLAYER::PLAYER_PED_ID(), MISC::GET_HASH_KEY("CreateObject"))) - HAS_ANIM_EVENT_FIRED=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[Hash (int)]] actionHash)return native_invoker.unified_bool(entity, actionHash, 0xEAF4CD9EA3E7E922, "ii")end - -- In the script "player_scene_t_bbfight.c4": - -- "if (ENTITY::FIND_ANIM_EVENT_PHASE(&l_16E, &l_19F[v_4/*16*/], v_9, &v_A, &v_B))" - -- -- &l_16E (p0) is requested as an anim dictionary earlier in the script. - -- -- &l_19F[v_4/*16*/] (p1) is used in other natives in the script as the "animation" param. - -- -- v_9 (p2) is instantiated as "victim_fall"; I'm guessing that's another anim - -- --v_A and v_B (p3 & p4) are both set as -1.0, but v_A is used immediately after this native for: - -- "if (v_A < ENTITY::GET_ENTITY_ANIM_CURRENT_TIME(...))" - -- Both v_A and v_B are seemingly used to contain both Vector3's and floats, so I can't say what either really is other than that they are both output parameters. p4 looks more like a *Vector3 though - -- - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - FIND_ANIM_EVENT_PHASE=--[[BOOL (bool)]] function(--[[string]] animDictionary,--[[string]] animName,--[[string]] p2,--[[Any* (pointer)]] p3,--[[Any* (pointer)]] p4)return native_invoker.unified_bool(animDictionary, animName, p2, p3, p4, 0x07F1BE2BCCAA27A7, "ssspp")end - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - SET_ENTITY_ANIM_CURRENT_TIME=--[[void]] function(--[[Entity (int)]] entity,--[[string]] animDictionary,--[[string]] animName,--[[float]] time)return native_invoker.unified_void(entity, animDictionary, animName, time, 0x4487C259F0F70977, "issf")end - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - SET_ENTITY_ANIM_SPEED=--[[void]] function(--[[Entity (int)]] entity,--[[string]] animDictionary,--[[string]] animName,--[[float]] speedMultiplier)return native_invoker.unified_void(entity, animDictionary, animName, speedMultiplier, 0x28D1A16553C51776, "issf")end - -- Makes the specified entity (ped, vehicle or object) persistent. Persistent entities will not automatically be removed by the engine. - -- - -- p1 has no effect when either its on or off - -- maybe a quick disassembly will tell us what it does - -- - -- p2 has no effect when either its on or off - -- maybe a quick disassembly will tell us what it does - SET_ENTITY_AS_MISSION_ENTITY=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(entity, p1, p2, 0xAD738C3085FE7E11, "ibb")end - -- Marks the specified entity (ped, vehicle or object) as no longer needed if its population type is set to the mission type. - -- If the entity is ped, it will also clear their tasks immediately just like when CLEAR_PED_TASKS_IMMEDIATELY is called. - -- Entities marked as no longer needed, will be deleted as the engine sees fit. - -- Use this if you just want to just let the game delete the ped: - -- void MarkPedAsAmbientPed(Ped ped) { - -- auto addr = getScriptHandleBaseAddress(ped); - -- - -- if (!addr) { - -- return; - -- } - -- - -- //the game uses only lower 4 bits as entity population type - -- BYTE origValue = *(BYTE *)(addr + 0xDA); - -- *(BYTE *)(addr + 0xDA) = ((origValue & 0xF0) | ePopulationType::POPTYPE_RANDOM_AMBIENT); - -- } - SET_ENTITY_AS_NO_LONGER_NEEDED=--[[void]] function(--[[Entity* (pointer)]] entity)return native_invoker.unified_void(entity, 0xB736A491E64A32CF, "p")end - -- This is an alias of SET_ENTITY_AS_NO_LONGER_NEEDED. - SET_PED_AS_NO_LONGER_NEEDED=--[[void]] function(--[[Ped* (pointer)]] ped)return native_invoker.unified_void(ped, 0x2595DD4236549CE3, "p")end - -- This is an alias of SET_ENTITY_AS_NO_LONGER_NEEDED. - SET_VEHICLE_AS_NO_LONGER_NEEDED=--[[void]] function(--[[Vehicle* (pointer)]] vehicle)return native_invoker.unified_void(vehicle, 0x629BFA74418D6239, "p")end - -- This is an alias of SET_ENTITY_AS_NO_LONGER_NEEDED. - SET_OBJECT_AS_NO_LONGER_NEEDED=--[[void]] function(--[[Object* (pointer)]] object)return native_invoker.unified_void(object, 0x3AE22DEB5BA5A3E6, "p")end - SET_ENTITY_CAN_BE_DAMAGED=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0x1760FFA8AB074D66, "ib")end - GET_ENTITY_CAN_BE_DAMAGED=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0xD95CC5D2AB15A09F, "i")end - SET_ENTITY_CAN_BE_DAMAGED_BY_RELATIONSHIP_GROUP=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] bCanBeDamaged,--[[int]] relGroup)return native_invoker.unified_void(entity, bCanBeDamaged, relGroup, 0xE22D8FDE858B8119, "ibi")end - SET_ENTITY_CAN_ONLY_BE_DAMAGED_BY_SCRIPT_PARTICIPANTS=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0x352E2B5CF420BF3B, "ib")end - -- Sets whether the entity can be targeted without being in line-of-sight. - SET_ENTITY_CAN_BE_TARGETED_WITHOUT_LOS=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0xD3997889736FD899, "ib")end - SET_ENTITY_COLLISION=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle,--[[BOOL (bool)]] keepPhysics)return native_invoker.unified_void(entity, toggle, keepPhysics, 0x1A9205C1B9EE827F, "ibb")end - GET_ENTITY_COLLISION_DISABLED=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0xCCF1E97BEFDAE480, "i")end - SET_ENTITY_COMPLETELY_DISABLE_COLLISION=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle,--[[BOOL (bool)]] keepPhysics)return native_invoker.unified_void(entity, toggle, keepPhysics, 0x9EBC85ED0FFFE51C, "ibb")end - -- p7 is always 1 in the scripts. Set to 1, an area around the destination coords for the moved entity is cleared from other entities. - -- - -- Often ends with 1, 0, 0, 1); in the scripts. It works. - -- - -- Axis - Invert Axis Flags - SET_ENTITY_COORDS=--[[void]] function(--[[Entity (int)]] entity,--[[float]] xPos,--[[float]] yPos,--[[float]] zPos,--[[BOOL (bool)]] xAxis,--[[BOOL (bool)]] yAxis,--[[BOOL (bool)]] zAxis,--[[BOOL (bool)]] clearArea)return native_invoker.unified_void(entity, xPos, yPos, zPos, xAxis, yAxis, zAxis, clearArea, 0x06843DA7060A026B, "ifffbbbb")end - SET_ENTITY_COORDS_WITHOUT_PLANTS_RESET=--[[void]] function(--[[Entity (int)]] entity,--[[float]] xPos,--[[float]] yPos,--[[float]] zPos,--[[BOOL (bool)]] alive,--[[BOOL (bool)]] deadFlag,--[[BOOL (bool)]] ragdollFlag,--[[BOOL (bool)]] clearArea)return native_invoker.unified_void(entity, xPos, yPos, zPos, alive, deadFlag, ragdollFlag, clearArea, 0x621873ECE1178967, "ifffbbbb")end - -- Axis - Invert Axis Flags - SET_ENTITY_COORDS_NO_OFFSET=--[[void]] function(--[[Entity (int)]] entity,--[[float]] xPos,--[[float]] yPos,--[[float]] zPos,--[[BOOL (bool)]] xAxis,--[[BOOL (bool)]] yAxis,--[[BOOL (bool)]] zAxis)return native_invoker.unified_void(entity, xPos, yPos, zPos, xAxis, yAxis, zAxis, 0x239A3351AC1DA385, "ifffbbb")end - SET_ENTITY_DYNAMIC=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0x1718DE8E3F2823CA, "ib")end - -- Set the heading of an entity in degrees also known as "Yaw". - SET_ENTITY_HEADING=--[[void]] function(--[[Entity (int)]] entity,--[[float]] heading)return native_invoker.unified_void(entity, heading, 0x8E2530AA8ADA980E, "if")end - -- health >= 0 - -- male ped ~= 100 - 200 - -- female ped ~= 0 - 100 - SET_ENTITY_HEALTH=--[[void]] function(--[[Entity (int)]] entity,--[[int]] health,--[[Entity (int)]] instigator,--[[Hash (int)]] weaponType)return native_invoker.unified_void(entity, health, instigator, weaponType, 0x6B76DC1F3AE6E6A3, "iiii")end - -- Sets a ped or an object totally invincible. It doesn't take any kind of damage. Peds will not ragdoll on explosions and the tazer animation won't apply either. - -- - -- If you use this for a ped and you want Ragdoll to stay enabled, then do: - -- *(DWORD *)(pedAddress + 0x188) |= (1 << 9); - -- - -- Use this if you want to get the invincibility status: - -- bool IsPedInvincible(Ped ped) - -- { - -- auto addr = getScriptHandleBaseAddress(ped); - -- - -- if (addr) - -- { - -- DWORD flag = *(DWORD *)(addr + 0x188); - -- return ((flag & (1 << 8)) != 0) || ((flag & (1 << 9)) != 0); - -- } - -- - -- return false; - -- } - SET_ENTITY_INVINCIBLE=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0x3882114BDE571AD4, "ib")end - SET_ENTITY_IS_TARGET_PRIORITY=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] p1,--[[float]] p2)return native_invoker.unified_void(entity, p1, p2, 0xEA02E132F5C68722, "ibf")end - SET_ENTITY_LIGHTS=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0x7CFBA6A80BDF3874, "ib")end - -- Loads collision grid for an entity spawned outside of a player's loaded area. This allows peds to execute tasks rather than sit dormant because of a lack of a physics grid. - -- Certainly not the main usage of this native but when set to true for a Vehicle, it will prevent the vehicle to explode if it is spawned far away from the player. - SET_ENTITY_LOAD_COLLISION_FLAG=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle,--[[Any (int)]] p2)return native_invoker.unified_void(entity, toggle, p2, 0x0DC7CABAB1E9B67E, "ibi")end - HAS_COLLISION_LOADED_AROUND_ENTITY=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0xE9676F61BC0B3321, "i")end - SET_ENTITY_MAX_SPEED=--[[void]] function(--[[Entity (int)]] entity,--[[float]] speed)return native_invoker.unified_void(entity, speed, 0x0E46A3FCBDE2A1B1, "if")end - SET_ENTITY_ONLY_DAMAGED_BY_PLAYER=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0x79F020FF9EDC0748, "ib")end - SET_ENTITY_ONLY_DAMAGED_BY_RELATIONSHIP_GROUP=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(entity, p1, p2, 0x7022BD828FA0B082, "ibi")end - -- Enable / disable each type of damage. - -- - -- waterProof is damage related to water not drowning - -- -------------- - -- p7 is to to '1' in am_mp_property_ext/int: ENTITY::SET_ENTITY_PROOFS(uParam0->f_19, true, true, true, true, true, true, 1, true); - -- - SET_ENTITY_PROOFS=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] bulletProof,--[[BOOL (bool)]] fireProof,--[[BOOL (bool)]] explosionProof,--[[BOOL (bool)]] collisionProof,--[[BOOL (bool)]] meleeProof,--[[BOOL (bool)]] steamProof,--[[BOOL (bool)]] p7,--[[BOOL (bool)]] waterProof)return native_invoker.unified_void(entity, bulletProof, fireProof, explosionProof, collisionProof, meleeProof, steamProof, p7, waterProof, 0xFAEE099C6F890BB8, "ibbbbbbbb")end - GET_ENTITY_PROOFS=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[BOOL* (pointer)]] bulletProof,--[[BOOL* (pointer)]] fireProof,--[[BOOL* (pointer)]] explosionProof,--[[BOOL* (pointer)]] collisionProof,--[[BOOL* (pointer)]] meleeProof,--[[BOOL* (pointer)]] steamProof,--[[BOOL* (pointer)]] p7,--[[BOOL* (pointer)]] drownProof)return native_invoker.unified_bool(entity, bulletProof, fireProof, explosionProof, collisionProof, meleeProof, steamProof, p7, drownProof, 0xBE8CD9BE829BBEBF, "ipppppppp")end - -- w is the correct parameter name! - SET_ENTITY_QUATERNION=--[[void]] function(--[[Entity (int)]] entity,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] w)return native_invoker.unified_void(entity, x, y, z, w, 0x77B21BE7AC540F07, "iffff")end - SET_ENTITY_RECORDS_COLLISIONS=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0x0A50A1EEDAD01E65, "ib")end - -- rotationOrder refers to the order yaw pitch roll is applied - -- value ranges from 0 to 5. What you use for rotationOrder when setting must be the same as rotationOrder when getting the rotation. - -- Unsure what value corresponds to what rotation order, more testing will be needed for that. - -- For the most part R* uses 1 or 2 as the order. - -- p5 is usually set as true - -- - SET_ENTITY_ROTATION=--[[void]] function(--[[Entity (int)]] entity,--[[float]] pitch,--[[float]] roll,--[[float]] yaw,--[[int]] rotationOrder,--[[BOOL (bool)]] p5)return native_invoker.unified_void(entity, pitch, roll, yaw, rotationOrder, p5, 0x8524A8B0171D5E07, "ifffib")end - -- p2 is always 0. - SET_ENTITY_VISIBLE=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle,--[[BOOL (bool)]] p2)return native_invoker.unified_void(entity, toggle, p2, 0xEA1C610A04DB6BBB, "ibb")end - SET_ENTITY_WATER_REFLECTION_FLAG=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0xC34BC448DA29F5E9, "ib")end - SET_ENTITY_MIRROR_REFLECTION_FLAG=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] p1)return native_invoker.unified_void(entity, p1, 0xE66377CDDADA4810, "ib")end - -- Note that the third parameter(denoted as z) is "up and down" with positive numbers encouraging upwards movement. - SET_ENTITY_VELOCITY=--[[void]] function(--[[Entity (int)]] entity,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(entity, x, y, z, 0x1C99BB7B6E96D16F, "ifff")end - SET_ENTITY_ANGULAR_VELOCITY=--[[void]] function(--[[Entity (int)]] entity,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(entity, x, y, z, 0x8339643499D1222E, "ifff")end - SET_ENTITY_HAS_GRAVITY=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0x4A4722448F18EEF5, "ib")end - -- LOD distance can be 0 to 0xFFFF (higher values will result in 0xFFFF) as it is actually stored as a 16-bit value (aka uint16_t). - SET_ENTITY_LOD_DIST=--[[void]] function(--[[Entity (int)]] entity,--[[int]] value)return native_invoker.unified_void(entity, value, 0x5927F96A78577363, "ii")end - -- Returns the LOD distance of an entity. - GET_ENTITY_LOD_DIST=--[[int]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0x4159C2762B5791D6, "i")end - -- skin - everything alpha except skin - -- Set entity alpha level. Ranging from 0 to 255 but chnages occur after every 20 percent (after every 51). - SET_ENTITY_ALPHA=--[[void]] function(--[[Entity (int)]] entity,--[[int]] alphaLevel,--[[BOOL (bool)]] skin)return native_invoker.unified_void(entity, alphaLevel, skin, 0x44A0870B7E92D7C0, "iib")end - GET_ENTITY_ALPHA=--[[int]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0x5A47B3B5E63E94C6, "i")end - RESET_ENTITY_ALPHA=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0x9B1E824FFBB7027A, "i")end - -- Similar to RESET_ENTITY_ALPHA - RESET_PICKUP_ENTITY_GLOW=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0x490861B88F4FD846, "i")end - SET_PICKUP_COLLIDES_WITH_PROJECTILES=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xCEA7C8E1B48FF68C, "ii")end - -- Only called once in the scripts. - -- - -- Related to weapon objects. - -- - SET_ENTITY_SORT_BIAS=--[[void]] function(--[[Entity (int)]] entity,--[[float]] p1)return native_invoker.unified_void(entity, p1, 0x5C3B791D580E0BC2, "if")end - SET_ENTITY_ALWAYS_PRERENDER=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0xACAD101E1FB66689, "ib")end - SET_ENTITY_RENDER_SCORCHED=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0x730F5F8D3F0F2050, "ib")end - -- Example here: www.gtaforums.com/topic/830463-help-with-turning-lights-green-and-causing-peds-to-crash-into-each-other/#entry1068211340 - -- - -- 0 = green - -- 1 = red - -- 2 = yellow - -- 3 = reset changes - -- changing lights may not change the behavior of vehicles - SET_ENTITY_TRAFFICLIGHT_OVERRIDE=--[[void]] function(--[[Entity (int)]] entity,--[[int]] state)return native_invoker.unified_void(entity, state, 0x57C5DB656185EAC4, "ii")end - SET_ENTITY_IS_IN_VEHICLE=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0x78E8E3A640178255, "i")end - -- Only works with objects! - CREATE_MODEL_SWAP=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[Hash (int)]] originalModel,--[[Hash (int)]] newModel,--[[BOOL (bool)]] p6)return native_invoker.unified_void(x, y, z, radius, originalModel, newModel, p6, 0x92C47782FDA8B2A3, "ffffiib")end - REMOVE_MODEL_SWAP=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[Hash (int)]] originalModel,--[[Hash (int)]] newModel,--[[BOOL (bool)]] p6)return native_invoker.unified_void(x, y, z, radius, originalModel, newModel, p6, 0x033C0F9A64E229AE, "ffffiib")end - -- p5 = sets as true in scripts - -- Same as the comment for CREATE_MODEL_SWAP unless for some reason p5 affects it this only works with objects as well. - -- - -- Network players do not see changes done with this. - CREATE_MODEL_HIDE=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[Hash (int)]] modelHash,--[[BOOL (bool)]] p5)return native_invoker.unified_void(x, y, z, radius, modelHash, p5, 0x8A97BCA30A0CE478, "ffffib")end - CREATE_MODEL_HIDE_EXCLUDING_SCRIPT_OBJECTS=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[Hash (int)]] modelHash,--[[BOOL (bool)]] p5)return native_invoker.unified_void(x, y, z, radius, modelHash, p5, 0x3A52AE588830BF7F, "ffffib")end - -- This native makes entities visible that are hidden by the native CREATE_MODEL_HIDE. - -- p5 should be false, true does nothing - REMOVE_MODEL_HIDE=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[Hash (int)]] modelHash,--[[BOOL (bool)]] p5)return native_invoker.unified_void(x, y, z, radius, modelHash, p5, 0xD9E3006FB3CBD765, "ffffib")end - CREATE_FORCED_OBJECT=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[Any (int)]] p3,--[[Hash (int)]] modelHash,--[[BOOL (bool)]] p5)return native_invoker.unified_void(x, y, z, p3, modelHash, p5, 0x150E808B375A385A, "fffiib")end - REMOVE_FORCED_OBJECT=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] p3,--[[Hash (int)]] modelHash)return native_invoker.unified_void(x, y, z, p3, modelHash, 0x61B6775E83C0DB6F, "ffffi")end - -- Calling this function disables collision between two entities. - -- The importance of the order for entity1 and entity2 is unclear. - -- The third parameter, `thisFrame`, decides whether the collision is to be disabled until it is turned back on, or if it's just this frame. - SET_ENTITY_NO_COLLISION_ENTITY=--[[void]] function(--[[Entity (int)]] entity1,--[[Entity (int)]] entity2,--[[BOOL (bool)]] thisFrameOnly)return native_invoker.unified_void(entity1, entity2, thisFrameOnly, 0xA53ED5520C07654A, "iib")end - SET_ENTITY_MOTION_BLUR=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0x295D82A8559F9150, "ib")end - -- p1 always false. - SET_CAN_AUTO_VAULT_ON_ENTITY=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0xE12ABE5E3A389A6C, "ib")end - -- p1 always false. - SET_CAN_CLIMB_ON_ENTITY=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0xA80AE305E0A3044F, "ib")end - -- Only called within 1 script for x360. 'fm_mission_controller' and it used on an object. - -- - -- Ran after these 2 natives, - -- set_object_targettable(uParam0, 0); - -- set_entity_invincible(uParam0, 1); - SET_WAIT_FOR_COLLISIONS_BEFORE_PROBE=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0xDC6F8601FAF2E893, "ib")end - SET_ENTITY_NOWEAPONDECALS=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] p1)return native_invoker.unified_void(entity, p1, 0x2C2E3DC128F44309, "ib")end - SET_ENTITY_USE_MAX_DISTANCE_FOR_WATER_REFLECTION=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] p1)return native_invoker.unified_void(entity, p1, 0x1A092BB0C3808B96, "ib")end - -- Gets the world rotation of the specified bone of the specified entity. - GET_ENTITY_BONE_ROTATION=--[[Vector3 (vector3)]] function(--[[Entity (int)]] entity,--[[int]] boneIndex)return native_invoker.unified_vector3(entity, boneIndex, 0xCE6294A232D03786, "ii")end - -- Gets the world position of the specified bone of the specified entity. - GET_ENTITY_BONE_POSTION=--[[Vector3 (vector3)]] function(--[[Entity (int)]] entity,--[[int]] boneIndex)return native_invoker.unified_vector3(entity, boneIndex, 0x46F8696933A63C9B, "ii")end - -- Gets the local rotation of the specified bone of the specified entity. - GET_ENTITY_BONE_OBJECT_ROTATION=--[[Vector3 (vector3)]] function(--[[Entity (int)]] entity,--[[int]] boneIndex)return native_invoker.unified_vector3(entity, boneIndex, 0xBD8D32550E5CEBFE, "ii")end - GET_ENTITY_BONE_OBJECT_POSTION=--[[Vector3 (vector3)]] function(--[[Entity (int)]] entity,--[[int]] boneIndex)return native_invoker.unified_vector3(entity, boneIndex, 0xCF1247CC86961FD6, "ii")end - GET_ENTITY_BONE_COUNT=--[[int]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0xB328DCC3A3AA401B, "i")end - ENABLE_ENTITY_BULLET_COLLISION=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0x6CE177D014502E8A, "i")end - SET_ENTITY_CAN_ONLY_BE_DAMAGED_BY_ENTITY=--[[void]] function(--[[Entity (int)]] entity1,--[[Entity (int)]] entity2)return native_invoker.unified_void(entity1, entity2, 0xB17BC6453F6CF5AC, "ii")end - SET_ENTITY_CANT_CAUSE_COLLISION_DAMAGED_ENTITY=--[[void]] function(--[[Entity (int)]] entity1,--[[Entity (int)]] entity2)return native_invoker.unified_void(entity1, entity2, 0x68B562E124CC0AEF, "ii")end - -- p1 is always set to 1 - SET_ALLOW_MIGRATE_TO_SPECTATOR=--[[void]] function(--[[Entity (int)]] entity,--[[Any (int)]] p1)return native_invoker.unified_void(entity, p1, 0x36F32DE87082343E, "ii")end - -- Gets the handle of an entity with a specific model hash attached to another entity, such as an object attached to a ped. - -- This native does not appear to have anything to do with pickups as in scripts it is used with objects. - -- - -- Example from fm_mission_controller_2020.c: - -- - -- iVar8 = ENTITY::GET_ENTITY_OF_TYPE_ATTACHED_TO_ENTITY(bParam0->f_9, joaat("p_cs_clipboard")); - GET_ENTITY_OF_TYPE_ATTACHED_TO_ENTITY=--[[Entity (int)]] function(--[[Entity (int)]] entity,--[[Hash (int)]] modelHash)return native_invoker.unified_int(entity, modelHash, 0x1F922734E259BD26, "ii")end - SET_PICK_UP_BY_CARGOBOB_DISABLED=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0xD7B80E7C3BEFC396, "ib")end --- EVENT - SET_DECISION_MAKER=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] name)return native_invoker.unified_void(ped, name, 0xB604A2942ADED0EE, "ii")end - -- eventType: https://alloc8or.re/gta5/doc/enums/eEventType.txt - CLEAR_DECISION_MAKER_EVENT_RESPONSE=--[[void]] function(--[[Hash (int)]] name,--[[int]] eventType)return native_invoker.unified_void(name, eventType, 0x4FC9381A7AEE8968, "ii")end - -- eventType: https://alloc8or.re/gta5/doc/enums/eEventType.txt - -- - -- This is limited to 4 blocked events at a time. - BLOCK_DECISION_MAKER_EVENT=--[[void]] function(--[[Hash (int)]] name,--[[int]] eventType)return native_invoker.unified_void(name, eventType, 0xE42FCDFD0E4196F7, "ii")end - -- eventType: https://alloc8or.re/gta5/doc/enums/eEventType.txt - UNBLOCK_DECISION_MAKER_EVENT=--[[void]] function(--[[Hash (int)]] name,--[[int]] eventType)return native_invoker.unified_void(name, eventType, 0xD7CD9CF34F2C99E8, "ii")end - -- eventType: https://alloc8or.re/gta5/doc/enums/eEventType.txt - ADD_SHOCKING_EVENT_AT_POSITION=--[[int]] function(--[[int]] eventType,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] duration)return native_invoker.unified_int(eventType, x, y, z, duration, 0xD9F8455409B525E9, "iffff")end - -- eventType: https://alloc8or.re/gta5/doc/enums/eEventType.txt - ADD_SHOCKING_EVENT_FOR_ENTITY=--[[int]] function(--[[int]] eventType,--[[Entity (int)]] entity,--[[float]] duration)return native_invoker.unified_int(eventType, entity, duration, 0x7FD8F3BE76F89422, "iif")end - -- eventType: https://alloc8or.re/gta5/doc/enums/eEventType.txt - IS_SHOCKING_EVENT_IN_SPHERE=--[[BOOL (bool)]] function(--[[int]] eventType,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius)return native_invoker.unified_bool(eventType, x, y, z, radius, 0x1374ABB7C15BAB92, "iffff")end - REMOVE_SHOCKING_EVENT=--[[BOOL (bool)]] function(--[[ScrHandle (int)]] event)return native_invoker.unified_bool(event, 0x2CDA538C44C6CCE5, "i")end - REMOVE_ALL_SHOCKING_EVENTS=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xEAABE8FDFA21274C, "b")end - REMOVE_SHOCKING_EVENT_SPAWN_BLOCKING_AREAS=--[[void]] function()return native_invoker.unified_void(0x340F1415B68AEADE, "")end - SUPPRESS_SHOCKING_EVENTS_NEXT_FRAME=--[[void]] function()return native_invoker.unified_void(0x2F9A292AD0A3BD89, "")end - -- eventType: https://alloc8or.re/gta5/doc/enums/eEventType.txt - SUPPRESS_SHOCKING_EVENT_TYPE_NEXT_FRAME=--[[void]] function(--[[int]] eventType)return native_invoker.unified_void(eventType, 0x3FD2EC8BF1F1CF30, "i")end - SUPPRESS_AGITATION_EVENTS_NEXT_FRAME=--[[void]] function()return native_invoker.unified_void(0x5F3B7749C112D552, "")end --- FILES - -- Character types: - -- 0 = Michael, - -- 1 = Franklin, - -- 2 = Trevor, - -- 3 = MPMale, - -- 4 = MPFemale - GET_NUM_TATTOO_SHOP_DLC_ITEMS=--[[int]] function(--[[int]] character)return native_invoker.unified_int(character, 0x278F76C3B0A8F109, "i")end - -- Character types: - -- 0 = Michael, - -- 1 = Franklin, - -- 2 = Trevor, - -- 3 = MPMale, - -- 4 = MPFemale - -- - -- - -- enum TattooZoneData - -- { - -- ZONE_TORSO = 0, - -- ZONE_HEAD = 1, - -- ZONE_LEFT_ARM = 2, - -- ZONE_RIGHT_ARM = 3, - -- ZONE_LEFT_LEG = 4, - -- ZONE_RIGHT_LEG = 5, - -- ZONE_UNKNOWN = 6, - -- ZONE_NONE = 7, - -- }; - -- struct outComponent - -- { - -- // these vars are suffixed with 4 bytes of padding each. - -- uint unk; - -- int unk2; - -- uint tattooCollectionHash; - -- uint tattooNameHash; - -- int unk3; - -- TattooZoneData zoneId; - -- uint unk4; - -- uint unk5; - -- // maybe more, not sure exactly, decompiled scripts are very vague around this part. - -- } - GET_TATTOO_SHOP_DLC_ITEM_DATA=--[[BOOL (bool)]] function(--[[int]] characterType,--[[int]] decorationIndex,--[[Any* (pointer)]] outComponent)return native_invoker.unified_bool(characterType, decorationIndex, outComponent, 0xFF56381874F82086, "iip")end - -- Returns some sort of index/offset for overlays/decorations. - -- - -- Character types: - -- 0 = Michael, - -- 1 = Franklin, - -- 2 = Trevor, - -- 3 = MPMale, - -- 4 = MPFemale - GET_TATTOO_SHOP_DLC_ITEM_INDEX=--[[int]] function(--[[Hash (int)]] overlayHash,--[[Any (int)]] p1,--[[int]] character)return native_invoker.unified_int(overlayHash, p1, character, 0x10144267DD22866C, "iii")end - INIT_SHOP_PED_COMPONENT=--[[void]] function(--[[Any* (pointer)]] outComponent)return native_invoker.unified_void(outComponent, 0x1E8C308FD312C036, "p")end - INIT_SHOP_PED_PROP=--[[void]] function(--[[Any* (pointer)]] outProp)return native_invoker.unified_void(outProp, 0xEB0A2B758F7B850F, "p")end - SETUP_SHOP_PED_APPAREL_QUERY=--[[int]] function(--[[int]] p0,--[[int]] p1,--[[int]] p2,--[[int]] p3)return native_invoker.unified_int(p0, p1, p2, p3, 0x50F457823CE6EB5F, "iiii")end - -- character is 0 for Michael, 1 for Franklin, 2 for Trevor, 3 for freemode male, and 4 for freemode female. - -- - -- componentId is between 0 and 11 and corresponds to the usual component slots. - -- - -- p1 could be the outfit number; unsure. - -- - -- p2 is usually -1; unknown function. - -- - -- p3 appears to be for selecting between clothes and props; false is used with components/clothes, true is used with props. - -- - -- p4 is usually -1; unknown function. - -- - -- componentId is -1 when p3 is true in decompiled scripts. - SETUP_SHOP_PED_APPAREL_QUERY_TU=--[[int]] function(--[[int]] character,--[[int]] p1,--[[int]] p2,--[[BOOL (bool)]] p3,--[[int]] p4,--[[int]] componentId)return native_invoker.unified_int(character, p1, p2, p3, p4, componentId, 0x9BDF59818B1E38C1, "iiibii")end - -- See https://git.io/JtcRf for example and structs. - GET_SHOP_PED_QUERY_COMPONENT=--[[void]] function(--[[int]] componentId,--[[Any* (pointer)]] outComponent)return native_invoker.unified_void(componentId, outComponent, 0x249E310B2D920699, "ip")end - -- Returns some sort of index/offset for components. - -- Needs _GET_NUM_PROPS_FROM_OUTFIT to be called with p3 = false and componentId with the drawable's component slot first, returns -1 otherwise. - GET_SHOP_PED_QUERY_COMPONENT_INDEX=--[[int]] function(--[[Hash (int)]] componentHash)return native_invoker.unified_int(componentHash, 0x96E2929292A4DB77, "i")end - -- More info here: https://gist.github.com/root-cause/3b80234367b0c856d60bf5cb4b826f86 - GET_SHOP_PED_COMPONENT=--[[void]] function(--[[Hash (int)]] componentHash,--[[Any* (pointer)]] outComponent)return native_invoker.unified_void(componentHash, outComponent, 0x74C0E2A57EC66760, "ip")end - -- See https://git.io/JtcRf for example and structs. - GET_SHOP_PED_QUERY_PROP=--[[void]] function(--[[int]] componentId,--[[Any* (pointer)]] outProp)return native_invoker.unified_void(componentId, outProp, 0xDE44A00999B2837D, "ip")end - -- Returns some sort of index/offset for props. - -- Needs _GET_NUM_PROPS_FROM_OUTFIT to be called with p3 = true and componentId = -1 first, returns -1 otherwise. - GET_SHOP_PED_QUERY_PROP_INDEX=--[[int]] function(--[[Hash (int)]] componentHash)return native_invoker.unified_int(componentHash, 0x6CEBE002E58DEE97, "i")end - -- More info here: https://gist.github.com/root-cause/3b80234367b0c856d60bf5cb4b826f86 - GET_SHOP_PED_PROP=--[[void]] function(--[[Hash (int)]] componentHash,--[[Any* (pointer)]] outProp)return native_invoker.unified_void(componentHash, outProp, 0x5D5CAFF661DDF6FC, "ip")end - GET_HASH_NAME_FOR_COMPONENT=--[[Hash (int)]] function(--[[Entity (int)]] entity,--[[int]] componentId,--[[int]] drawableVariant,--[[int]] textureVariant)return native_invoker.unified_int(entity, componentId, drawableVariant, textureVariant, 0x0368B3A838070348, "iiii")end - GET_HASH_NAME_FOR_PROP=--[[Hash (int)]] function(--[[Entity (int)]] entity,--[[int]] componentId,--[[int]] propIndex,--[[int]] propTextureIndex)return native_invoker.unified_int(entity, componentId, propIndex, propTextureIndex, 0x5D6160275CAEC8DD, "iiii")end - GET_SHOP_PED_APPAREL_VARIANT_COMPONENT_COUNT=--[[int]] function(--[[Hash (int)]] componentHash)return native_invoker.unified_int(componentHash, 0xC17AD0E5752BECDA, "i")end - -- `propHash`: Ped helmet prop hash? - -- This native returns 1 when the player helmet has a visor (there is another prop index for the same helmet with closed/opened visor variant) that can be toggled. 0 if there's no alternative version with a visor for this helmet prop. - GET_SHOP_PED_APPAREL_VARIANT_PROP_COUNT=--[[int]] function(--[[Hash (int)]] propHash)return native_invoker.unified_int(propHash, 0xD40AAC51E8E4C663, "i")end - GET_VARIANT_COMPONENT=--[[void]] function(--[[Hash (int)]] componentHash,--[[int]] variantComponentIndex,--[[Hash* (pointer)]] nameHash,--[[int* (pointer)]] enumValue,--[[int* (pointer)]] componentType)return native_invoker.unified_void(componentHash, variantComponentIndex, nameHash, enumValue, componentType, 0x6E11F282F11863B6, "iippp")end - GET_VARIANT_PROP=--[[void]] function(--[[Hash (int)]] componentHash,--[[int]] variantPropIndex,--[[Hash* (pointer)]] nameHash,--[[int* (pointer)]] enumValue,--[[int* (pointer)]] anchorPoint)return native_invoker.unified_void(componentHash, variantPropIndex, nameHash, enumValue, anchorPoint, 0xD81B7F27BC773E66, "iippp")end - -- Returns number of possible values of the forcedComponentIndex argument of GET_FORCED_COMPONENT. - GET_SHOP_PED_APPAREL_FORCED_COMPONENT_COUNT=--[[int]] function(--[[Hash (int)]] componentHash)return native_invoker.unified_int(componentHash, 0xC6B9DB42C04DD8C3, "i")end - -- Returns number of possible values of the forcedPropIndex argument of GET_FORCED_PROP. - GET_SHOP_PED_APPAREL_FORCED_PROP_COUNT=--[[int]] function(--[[Hash (int)]] componentHash)return native_invoker.unified_int(componentHash, 0x017568A8182D98A6, "i")end - GET_FORCED_COMPONENT=--[[void]] function(--[[Hash (int)]] componentHash,--[[int]] forcedComponentIndex,--[[Hash* (pointer)]] nameHash,--[[int* (pointer)]] enumValue,--[[int* (pointer)]] componentType)return native_invoker.unified_void(componentHash, forcedComponentIndex, nameHash, enumValue, componentType, 0x6C93ED8C2F74859B, "iippp")end - GET_FORCED_PROP=--[[void]] function(--[[Hash (int)]] componentHash,--[[int]] forcedPropIndex,--[[Hash* (pointer)]] nameHash,--[[int* (pointer)]] enumValue,--[[int* (pointer)]] anchorPoint)return native_invoker.unified_void(componentHash, forcedPropIndex, nameHash, enumValue, anchorPoint, 0xE1CA84EBF72E691D, "iippp")end - -- Full list of restriction tags by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedApparelRestrictionTags.json - -- - -- componentId/last parameter seems to be unused. - DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG=--[[BOOL (bool)]] function(--[[Hash (int)]] componentHash,--[[Hash (int)]] restrictionTagHash,--[[int]] componentId)return native_invoker.unified_bool(componentHash, restrictionTagHash, componentId, 0x341DE7ED1D2A1BFD, "iii")end - DOES_CURRENT_PED_COMPONENT_HAVE_RESTRICTION_TAG=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[int]] componentId,--[[Hash (int)]] restrictionTagHash)return native_invoker.unified_bool(ped, componentId, restrictionTagHash, 0x7796B21B76221BC5, "iii")end - DOES_CURRENT_PED_PROP_HAVE_RESTRICTION_TAG=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[int]] componentId,--[[Hash (int)]] restrictionTagHash)return native_invoker.unified_bool(ped, componentId, restrictionTagHash, 0xD726BAB4554DA580, "iii")end - -- characters - -- - -- 0: Michael - -- 1: Franklin - -- 2: Trevor - -- 3: MPMale - -- 4: MPFemale - SETUP_SHOP_PED_OUTFIT_QUERY=--[[int]] function(--[[int]] character,--[[BOOL (bool)]] p1)return native_invoker.unified_int(character, p1, 0xF3FBE2D50A6A8C28, "ib")end - -- outfitIndex: from 0 to SETUP_SHOP_PED_OUTFIT_QUERY(characterIndex, false) - 1. - -- See https://git.io/JtcB8 for example and outfit struct. - GET_SHOP_PED_QUERY_OUTFIT=--[[void]] function(--[[int]] outfitIndex,--[[Any* (pointer)]] outfit)return native_invoker.unified_void(outfitIndex, outfit, 0x6D793F03A631FE56, "ip")end - GET_SHOP_PED_OUTFIT=--[[void]] function(--[[Any (int)]] p0,--[[Any* (pointer)]] p1)return native_invoker.unified_void(p0, p1, 0xB7952076E444979D, "ip")end - GET_SHOP_PED_OUTFIT_LOCATE=--[[int]] function(--[[Any (int)]] p0)return native_invoker.unified_int(p0, 0x073CA26B079F956E, "i")end - -- See https://git.io/JtcBH for example and structs. - GET_SHOP_PED_OUTFIT_PROP_VARIANT=--[[BOOL (bool)]] function(--[[Hash (int)]] outfitHash,--[[int]] variantIndex,--[[Any* (pointer)]] outPropVariant)return native_invoker.unified_bool(outfitHash, variantIndex, outPropVariant, 0xA9F9C2E0FDE11CBB, "iip")end - -- See https://git.io/JtcBH for example and structs. - GET_SHOP_PED_OUTFIT_COMPONENT_VARIANT=--[[BOOL (bool)]] function(--[[Hash (int)]] outfitHash,--[[int]] variantIndex,--[[Any* (pointer)]] outComponentVariant)return native_invoker.unified_bool(outfitHash, variantIndex, outComponentVariant, 0x19F2A026EDF0013F, "iip")end - GET_NUM_DLC_VEHICLES=--[[int]] function()return native_invoker.unified_int(0xA7A866D21CD2329B, "")end - -- dlcVehicleIndex is 0 to GET_NUM_DLC_VEHICLS() - 1 - GET_DLC_VEHICLE_MODEL=--[[Hash (int)]] function(--[[int]] dlcVehicleIndex)return native_invoker.unified_int(dlcVehicleIndex, 0xECC01B7C5763333C, "i")end - -- dlcVehicleIndex takes a number from 0 - GET_NUM_DLC_VEHICLES() - 1. - -- outData is a struct of 3 8-byte items. - -- The Second item in the struct *(Hash *)(outData + 1) is the vehicle hash. - GET_DLC_VEHICLE_DATA=--[[BOOL (bool)]] function(--[[int]] dlcVehicleIndex,--[[Any* (pointer)]] outData)return native_invoker.unified_bool(dlcVehicleIndex, outData, 0x33468EDC08E371F6, "ip")end - GET_DLC_VEHICLE_FLAGS=--[[int]] function(--[[int]] dlcVehicleIndex)return native_invoker.unified_int(dlcVehicleIndex, 0x5549EE11FA22FCF2, "i")end - -- Returns the total number of DLC weapons. - GET_NUM_DLC_WEAPONS=--[[int]] function()return native_invoker.unified_int(0xEE47635F352DA367, "")end - -- Returns the total number of DLC weapons that are available in SP (availableInSP field in shop_weapon.meta). - GET_NUM_DLC_WEAPONS_SP=--[[int]] function()return native_invoker.unified_int(0x4160B65AE085B5A9, "")end - -- - -- dlcWeaponIndex takes a number from 0 - GET_NUM_DLC_WEAPONS() - 1. - -- struct DlcWeaponData - -- { - -- int emptyCheck; //use DLC1::IS_CONTENT_ITEM_LOCKED on this - -- int padding1; - -- int weaponHash; - -- int padding2; - -- int unk; - -- int padding3; - -- int weaponCost; - -- int padding4; - -- int ammoCost; - -- int padding5; - -- int ammoType; - -- int padding6; - -- int defaultClipSize; - -- int padding7; - -- char nameLabel[64]; - -- char descLabel[64]; - -- char desc2Label[64]; // usually "the" + name - -- char upperCaseNameLabel[64]; - -- }; - GET_DLC_WEAPON_DATA=--[[BOOL (bool)]] function(--[[int]] dlcWeaponIndex,--[[Any* (pointer)]] outData)return native_invoker.unified_bool(dlcWeaponIndex, outData, 0x79923CD21BECE14E, "ip")end - -- Same as GET_DLC_WEAPON_DATA but only works for DLC weapons that are available in SP. - GET_DLC_WEAPON_DATA_SP=--[[BOOL (bool)]] function(--[[int]] dlcWeaponIndex,--[[Any* (pointer)]] outData)return native_invoker.unified_bool(dlcWeaponIndex, outData, 0x310836EE7129BA33, "ip")end - -- Returns the total number of DLC weapon components. - GET_NUM_DLC_WEAPON_COMPONENTS=--[[int]] function(--[[int]] dlcWeaponIndex)return native_invoker.unified_int(dlcWeaponIndex, 0x405425358A7D61FE, "i")end - -- Returns the total number of DLC weapon components that are available in SP. - GET_NUM_DLC_WEAPON_COMPONENTS_SP=--[[int]] function(--[[int]] dlcWeaponIndex)return native_invoker.unified_int(dlcWeaponIndex, 0xAD2A7A6DFF55841B, "i")end - -- p0 seems to be the weapon index - -- p1 seems to be the weapon component index - -- struct DlcComponentData{ - -- int attachBone; - -- int padding1; - -- int bActiveByDefault; - -- int padding2; - -- int unk; - -- int padding3; - -- int componentHash; - -- int padding4; - -- int unk2; - -- int padding5; - -- int componentCost; - -- int padding6; - -- char nameLabel[64]; - -- char descLabel[64]; - -- }; - -- - GET_DLC_WEAPON_COMPONENT_DATA=--[[BOOL (bool)]] function(--[[int]] dlcWeaponIndex,--[[int]] dlcWeapCompIndex,--[[Any* (pointer)]] ComponentDataPtr)return native_invoker.unified_bool(dlcWeaponIndex, dlcWeapCompIndex, ComponentDataPtr, 0x6CF598A2957C2BF8, "iip")end - -- Same as GET_DLC_WEAPON_COMPONENT_DATA but only works for DLC components that are available in SP. - GET_DLC_WEAPON_COMPONENT_DATA_SP=--[[BOOL (bool)]] function(--[[int]] dlcWeaponIndex,--[[int]] dlcWeapCompIndex,--[[Any* (pointer)]] ComponentDataPtr)return native_invoker.unified_bool(dlcWeaponIndex, dlcWeapCompIndex, ComponentDataPtr, 0x31D5E073B6F93CDC, "iip")end - IS_CONTENT_ITEM_LOCKED=--[[BOOL (bool)]] function(--[[Hash (int)]] itemHash)return native_invoker.unified_bool(itemHash, 0xD4D7B033C3AA243C, "i")end - IS_DLC_VEHICLE_MOD=--[[BOOL (bool)]] function(--[[Hash (int)]] hash)return native_invoker.unified_bool(hash, 0x0564B9FF9631B82C, "i")end - GET_DLC_VEHICLE_MOD_LOCK_HASH=--[[Hash (int)]] function(--[[Hash (int)]] hash)return native_invoker.unified_int(hash, 0xC098810437312FFF, "i")end - -- From fm_deathmatch_creator and fm_race_creator: - -- - -- FILES::REVERT_CONTENT_CHANGESET_GROUP_FOR_ALL(joaat("GROUP_MAP_SP")); - -- FILES::EXECUTE_CONTENT_CHANGESET_GROUP_FOR_ALL(joaat("GROUP_MAP")); - EXECUTE_CONTENT_CHANGESET_GROUP_FOR_ALL=--[[void]] function(--[[Hash (int)]] hash)return native_invoker.unified_void(hash, 0x6BEDF5769AC2DC07, "i")end - -- From fm_deathmatch_creator and fm_race_creator: - -- - -- FILES::REVERT_CONTENT_CHANGESET_GROUP_FOR_ALL(joaat("GROUP_MAP_SP")); - -- FILES::EXECUTE_CONTENT_CHANGESET_GROUP_FOR_ALL(joaat("GROUP_MAP")); - REVERT_CONTENT_CHANGESET_GROUP_FOR_ALL=--[[void]] function(--[[Hash (int)]] hash)return native_invoker.unified_void(hash, 0x3C1978285B036B25, "i")end --- FIRE - -- Starts a fire: - -- - -- xyz: Location of fire - -- maxChildren: The max amount of times a fire can spread to other objects. Must be 25 or less, or the function will do nothing. - -- isGasFire: Whether or not the fire is powered by gasoline. - START_SCRIPT_FIRE=--[[FireId (int)]] function(--[[float]] X,--[[float]] Y,--[[float]] Z,--[[int]] maxChildren,--[[BOOL (bool)]] isGasFire)return native_invoker.unified_int(X, Y, Z, maxChildren, isGasFire, 0x6B83617E04503888, "fffib")end - REMOVE_SCRIPT_FIRE=--[[void]] function(--[[FireId (int)]] fireHandle)return native_invoker.unified_void(fireHandle, 0x7FF548385680673F, "i")end - START_ENTITY_FIRE=--[[FireId (int)]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0xF6A9D9708F6F23DF, "i")end - STOP_ENTITY_FIRE=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0x7F0DD2EBBB651AFF, "i")end - IS_ENTITY_ON_FIRE=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x28D3FED7190D3A0B, "i")end - GET_NUMBER_OF_FIRES_IN_RANGE=--[[int]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius)return native_invoker.unified_int(x, y, z, radius, 0x50CAD495A460B305, "ffff")end - SET_FLAMMABILITY_MULTIPLIER=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0x8F390AC4155099BA, "f")end - STOP_FIRE_IN_RANGE=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius)return native_invoker.unified_void(x, y, z, radius, 0x056A8A219B8E829F, "ffff")end - -- Returns TRUE if it found something. FALSE if not. - GET_CLOSEST_FIRE_POS=--[[BOOL (bool)]] function(--[[Vector3* (pointer)]] outPosition,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_bool(outPosition, x, y, z, 0x352A9F6BCF90081F, "pfff")end - -- BOOL isAudible = If explosion makes a sound. - -- BOOL isInvisible = If the explosion is invisible or not. - -- - -- explosionType: https://alloc8or.re/gta5/doc/enums/eExplosionTag.txt - ADD_EXPLOSION=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] explosionType,--[[float]] damageScale,--[[BOOL (bool)]] isAudible,--[[BOOL (bool)]] isInvisible,--[[float]] cameraShake,--[[BOOL (bool)]] noDamage)return native_invoker.unified_void(x, y, z, explosionType, damageScale, isAudible, isInvisible, cameraShake, noDamage, 0xE3AD2BDBAEE269AC, "fffifbbfb")end - -- isAudible: If explosion makes a sound. - -- isInvisible: If the explosion is invisible or not. - -- explosionType: See ADD_EXPLOSION. - ADD_OWNED_EXPLOSION=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] explosionType,--[[float]] damageScale,--[[BOOL (bool)]] isAudible,--[[BOOL (bool)]] isInvisible,--[[float]] cameraShake)return native_invoker.unified_void(ped, x, y, z, explosionType, damageScale, isAudible, isInvisible, cameraShake, 0x172AA1B624FA1013, "ifffifbbf")end - -- isAudible: If explosion makes a sound. - -- isInvisible: If the explosion is invisible or not. - -- explosionType: See ADD_EXPLOSION. - ADD_EXPLOSION_WITH_USER_VFX=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] explosionType,--[[Hash (int)]] explosionFx,--[[float]] damageScale,--[[BOOL (bool)]] isAudible,--[[BOOL (bool)]] isInvisible,--[[float]] cameraShake)return native_invoker.unified_void(x, y, z, explosionType, explosionFx, damageScale, isAudible, isInvisible, cameraShake, 0x36DD3FE58B5E5212, "fffiifbbf")end - -- explosionType: See ADD_EXPLOSION. - IS_EXPLOSION_IN_AREA=--[[BOOL (bool)]] function(--[[int]] explosionType,--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2)return native_invoker.unified_bool(explosionType, x1, y1, z1, x2, y2, z2, 0x2E2EBA0EE7CED0E0, "iffffff")end - -- explosionType: See ADD_EXPLOSION. - IS_EXPLOSION_ACTIVE_IN_AREA=--[[BOOL (bool)]] function(--[[int]] explosionType,--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2)return native_invoker.unified_bool(explosionType, x1, y1, z1, x2, y2, z2, 0x6070104B699B2EF4, "iffffff")end - -- explosionType: See ADD_EXPLOSION. - IS_EXPLOSION_IN_SPHERE=--[[BOOL (bool)]] function(--[[int]] explosionType,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius)return native_invoker.unified_bool(explosionType, x, y, z, radius, 0xAB0F816885B0E483, "iffff")end - -- explosionType: See ADD_EXPLOSION. - GET_OWNER_OF_EXPLOSION_IN_SPHERE=--[[Entity (int)]] function(--[[int]] explosionType,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius)return native_invoker.unified_int(explosionType, x, y, z, radius, 0xB3CD51E3DB86F176, "iffff")end - -- explosionType: See ADD_EXPLOSION, -1 for any explosion type - -- - IS_EXPLOSION_IN_ANGLED_AREA=--[[BOOL (bool)]] function(--[[int]] explosionType,--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] width)return native_invoker.unified_bool(explosionType, x1, y1, z1, x2, y2, z2, width, 0xA079A6C51525DC4B, "ifffffff")end - -- Returns a handle to the first entity within the a circle spawned inside the 2 points from a radius. - -- - -- explosionType: See ADD_EXPLOSION. - GET_OWNER_OF_EXPLOSION_IN_ANGLED_AREA=--[[Entity (int)]] function(--[[int]] explosionType,--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] radius)return native_invoker.unified_int(explosionType, x1, y1, z1, x2, y2, z2, radius, 0x14BA4BA137AF6CEC, "ifffffff")end --- GRAPHICS - -- NOTE: Debugging functions are not present in the retail version of the game. - SET_DEBUG_LINES_AND_SPHERES_DRAWING_ACTIVE=--[[void]] function(--[[BOOL (bool)]] enabled)return native_invoker.unified_void(enabled, 0x175B6BFC15CDD0C5, "b")end - DRAW_DEBUG_LINE=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[int]] r,--[[int]] g,--[[int]] b,--[[int]] alpha)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, r, g, b, alpha, 0x7FDFADE676AA3CB0, "ffffffiiii")end - -- NOTE: Debugging functions are not present in the retail version of the game. - DRAW_DEBUG_LINE_WITH_TWO_COLOURS=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[int]] r1,--[[int]] g1,--[[int]] b1,--[[int]] r2,--[[int]] g2,--[[int]] b2,--[[int]] alpha1,--[[int]] alpha2)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, r1, g1, b1, r2, g2, b2, alpha1, alpha2, 0xD8B9A8AC5608FF94, "ffffffiiiiiiii")end - -- NOTE: Debugging functions are not present in the retail version of the game. - DRAW_DEBUG_SPHERE=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha)return native_invoker.unified_void(x, y, z, radius, red, green, blue, alpha, 0xAAD68E1AB39DA632, "ffffiiii")end - DRAW_DEBUG_BOX=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[int]] r,--[[int]] g,--[[int]] b,--[[int]] alpha)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, r, g, b, alpha, 0x083A2CA4F2E573BD, "ffffffiiii")end - -- NOTE: Debugging functions are not present in the retail version of the game. - DRAW_DEBUG_CROSS=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] size,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha)return native_invoker.unified_void(x, y, z, size, red, green, blue, alpha, 0x73B1189623049839, "ffffiiii")end - -- NOTE: Debugging functions are not present in the retail version of the game. - DRAW_DEBUG_TEXT=--[[void]] function(--[[string]] text,--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha)return native_invoker.unified_void(text, x, y, z, red, green, blue, alpha, 0x3903E216620488E8, "sfffiiii")end - -- NOTE: Debugging functions are not present in the retail version of the game. - DRAW_DEBUG_TEXT_2D=--[[void]] function(--[[string]] text,--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha)return native_invoker.unified_void(text, x, y, z, red, green, blue, alpha, 0xA3BB2E9555C05A8F, "sfffiiii")end - -- Draws a depth-tested line from one point to another. - -- ---------------- - -- x1, y1, z1 : Coordinates for the first point - -- x2, y2, z2 : Coordinates for the second point - -- r, g, b, alpha : Color with RGBA-Values - -- I recommend using a predefined function to call this. - -- [VB.NET] - -- Public Sub DrawLine(from As Vector3, [to] As Vector3, col As Color) - -- [Function].Call(Hash.DRAW_LINE, from.X, from.Y, from.Z, [to].X, [to].Y, [to].Z, col.R, col.G, col.B, col.A) - -- End Sub - -- - -- [C#] - -- public void DrawLine(Vector3 from, Vector3 to, Color col) - -- { - -- Function.Call(Hash.DRAW_LINE, from.X, from.Y, from.Z, to.X, to.Y, to.Z, col.R, col.G, col.B, col.A); - -- } - DRAW_LINE=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, red, green, blue, alpha, 0x6B7256074AE34680, "ffffffiiii")end - -- x/y/z - Location of a vertex (in world coords), presumably. - -- ---------------- - -- x1, y1, z1 : Coordinates for the first point - -- x2, y2, z2 : Coordinates for the second point - -- x3, y3, z3 : Coordinates for the third point - -- r, g, b, alpha : Color with RGBA-Values - -- - -- Keep in mind that only one side of the drawn triangle is visible: It's the side, in which the vector-product of the vectors heads to: (b-a)x(c-a) Or (b-a)x(c-b). - -- But be aware: The function seems to work somehow differently. I have trouble having them drawn in rotated orientation. Try it yourself and if you somehow succeed, please edit this and post your solution. - -- I recommend using a predefined function to call this. - -- [VB.NET] - -- Public Sub DrawPoly(a As Vector3, b As Vector3, c As Vector3, col As Color) - -- [Function].Call(Hash.DRAW_POLY, a.X, a.Y, a.Z, b.X, b.Y, b.Z, c.X, c.Y, c.Z, col.R, col.G, col.B, col.A) - -- End Sub - -- - -- [C#] - -- public void DrawPoly(Vector3 a, Vector3 b, Vector3 c, Color col) - -- { - -- Function.Call(Hash.DRAW_POLY, a.X, a.Y, a.Z, b.X, b.Y, b.Z, c.X, c.Y, c.Z, col.R, col.G, col.B, col.A); - -- } - -- BTW: Intersecting triangles are not supported: They overlap in the order they were called. - DRAW_POLY=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] x3,--[[float]] y3,--[[float]] z3,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, x3, y3, z3, red, green, blue, alpha, 0xAC26716048436851, "fffffffffiiii")end - -- Used for drawling Deadline trailing lights, see deadline.ytd - -- - -- p15 through p23 are values that appear to be related to illiumation, scaling, and rotation; more testing required. - -- For UVW mapping (u,v,w parameters), reference your favourite internet resource for more details. - DRAW_TEXTURED_POLY=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] x3,--[[float]] y3,--[[float]] z3,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha,--[[string]] textureDict,--[[string]] textureName,--[[float]] u1,--[[float]] v1,--[[float]] w1,--[[float]] u2,--[[float]] v2,--[[float]] w2,--[[float]] u3,--[[float]] v3,--[[float]] w3)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, x3, y3, z3, red, green, blue, alpha, textureDict, textureName, u1, v1, w1, u2, v2, w2, u3, v3, w3, 0x29280002282F1928, "fffffffffiiiissfffffffff")end - -- Used for drawling Deadline trailing lights, see deadline.ytd - -- - -- Each vertex has its own colour that is blended/illuminated on the texture. Additionally, the R, G, and B components are floats that are int-casted internally. - -- For UVW mapping (u,v,w parameters), reference your favourite internet resource for more details. - DRAW_TEXTURED_POLY_WITH_THREE_COLOURS=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] x3,--[[float]] y3,--[[float]] z3,--[[float]] red1,--[[float]] green1,--[[float]] blue1,--[[int]] alpha1,--[[float]] red2,--[[float]] green2,--[[float]] blue2,--[[int]] alpha2,--[[float]] red3,--[[float]] green3,--[[float]] blue3,--[[int]] alpha3,--[[string]] textureDict,--[[string]] textureName,--[[float]] u1,--[[float]] v1,--[[float]] w1,--[[float]] u2,--[[float]] v2,--[[float]] w2,--[[float]] u3,--[[float]] v3,--[[float]] w3)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, x3, y3, z3, red1, green1, blue1, alpha1, red2, green2, blue2, alpha2, red3, green3, blue3, alpha3, textureDict, textureName, u1, v1, w1, u2, v2, w2, u3, v3, w3, 0x736D7AA1B750856B, "ffffffffffffifffifffissfffffffff")end - -- x,y,z = start pos - -- x2,y2,z2 = end pos - -- - -- Draw's a 3D Box between the two x,y,z coords. - -- -------------- - -- Keep in mind that the edges of the box do only align to the worlds base-vectors. Therefore something like rotation cannot be applied. That means this function is pretty much useless, unless you want a static unicolor box somewhere. - -- I recommend using a predefined function to call this. - -- [VB.NET] - -- Public Sub DrawBox(a As Vector3, b As Vector3, col As Color) - -- [Function].Call(Hash.DRAW_BOX,a.X, a.Y, a.Z,b.X, b.Y, b.Z,col.R, col.G, col.B, col.A) - -- End Sub - -- - -- [C#] - -- public void DrawBox(Vector3 a, Vector3 b, Color col) - -- { - -- Function.Call(Hash.DRAW_BOX,a.X, a.Y, a.Z,b.X, b.Y, b.Z,col.R, col.G, col.B, col.A); - -- } - DRAW_BOX=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, red, green, blue, alpha, 0xD3A9971CADAC7252, "ffffffiiii")end - SET_BACKFACECULLING=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x23BA6B0C2AD7B0D3, "b")end - SET_DEPTHWRITING=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xC5C8F970D4EDFF71, "b")end - BEGIN_TAKE_MISSION_CREATOR_PHOTO=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x1DD2139A9A20DCE8, "")end - GET_STATUS_OF_TAKE_MISSION_CREATOR_PHOTO=--[[int]] function()return native_invoker.unified_int(0x90A78ECAA4E78453, "")end - FREE_MEMORY_FOR_MISSION_CREATOR_PHOTO=--[[void]] function()return native_invoker.unified_void(0x0A46AF8A78DC5E0A, "")end - LOAD_MISSION_CREATOR_PHOTO=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_bool(p0, p1, p2, p3, 0x4862437A486F91B0, "piii")end - GET_STATUS_OF_LOAD_MISSION_CREATOR_PHOTO=--[[int]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_int(p0, 0x1670F8D05056F257, "p")end - BEGIN_CREATE_MISSION_CREATOR_PHOTO_PREVIEW=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x7FA5D82B8F58EC06, "")end - GET_STATUS_OF_CREATE_MISSION_CREATOR_PHOTO_PREVIEW=--[[int]] function()return native_invoker.unified_int(0x5B0316762AFD4A64, "")end - FREE_MEMORY_FOR_MISSION_CREATOR_PHOTO_PREVIEW=--[[void]] function()return native_invoker.unified_void(0x346EF3ECAAAB149E, "")end - BEGIN_TAKE_HIGH_QUALITY_PHOTO=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xA67C35C56EB1BD9D, "")end - GET_STATUS_OF_TAKE_HIGH_QUALITY_PHOTO=--[[int]] function()return native_invoker.unified_int(0x0D6CA79EEEBD8CA3, "")end - FREE_MEMORY_FOR_HIGH_QUALITY_PHOTO=--[[void]] function()return native_invoker.unified_void(0xD801CC02177FA3F1, "")end - SET_TAKEN_PHOTO_IS_MUGSHOT=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x1BBC135A4D25EDDE, "b")end - SET_ARENA_THEME_AND_VARIATION_FOR_TAKEN_PHOTO=--[[void]] function(--[[Any (int)]] p0,--[[int]] p1)return native_invoker.unified_void(p0, p1, 0xF3F776ADA161E47D, "ii")end - SET_ON_ISLAND_X_FOR_TAKEN_PHOTO=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xADD6627C4D325458, "i")end - -- 1 match in 1 script. cellphone_controller. - -- p0 is -1 in scripts. - SAVE_HIGH_QUALITY_PHOTO=--[[BOOL (bool)]] function(--[[int]] unused)return native_invoker.unified_bool(unused, 0x3DEC726C25A11BAC, "i")end - GET_STATUS_OF_SAVE_HIGH_QUALITY_PHOTO=--[[int]] function()return native_invoker.unified_int(0x0C0C4E81E1AC60A0, "")end - BEGIN_CREATE_LOW_QUALITY_COPY_OF_PHOTO=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x759650634F07B6B4, "i")end - GET_STATUS_OF_CREATE_LOW_QUALITY_COPY_OF_PHOTO=--[[int]] function(--[[int]] p0)return native_invoker.unified_int(p0, 0xCB82A0BF0E3E3265, "i")end - FREE_MEMORY_FOR_LOW_QUALITY_PHOTO=--[[void]] function()return native_invoker.unified_void(0x6A12D88881435DCA, "")end - DRAW_LOW_QUALITY_PHOTO_TO_PHONE=--[[void]] function(--[[BOOL (bool)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0x1072F115DAB0717E, "bb")end - -- This function is hard-coded to always return 0. - GET_MAXIMUM_NUMBER_OF_PHOTOS=--[[int]] function()return native_invoker.unified_int(0x34D23450F028B0BF, "")end - -- This function is hard-coded to always return 96. - GET_MAXIMUM_NUMBER_OF_CLOUD_PHOTOS=--[[int]] function()return native_invoker.unified_int(0xDC54A7AF8B3A14EF, "")end - GET_CURRENT_NUMBER_OF_CLOUD_PHOTOS=--[[int]] function()return native_invoker.unified_int(0x473151EBC762C6DA, "")end - -- 2 matches across 2 scripts. Only showed in appcamera & appmedia. Both were 0. - QUEUE_OPERATION_TO_CREATE_SORTED_LIST_OF_PHOTOS=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x2A893980E96B659A, "i")end - -- 3 matches across 3 scripts. First 2 were 0, 3rd was 1. Possibly a bool. - -- appcamera, appmedia, and cellphone_controller. - GET_STATUS_OF_SORTED_LIST_OPERATION=--[[int]] function(--[[Any (int)]] p0)return native_invoker.unified_int(p0, 0xF5BED327CEA362B1, "i")end - CLEAR_STATUS_OF_SORTED_LIST_OPERATION=--[[void]] function()return native_invoker.unified_void(0x4AF92ACD3141D96C, "")end - -- This function is hard-coded to always return 0. - DOES_THIS_PHOTO_SLOT_CONTAIN_A_VALID_PHOTO=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0xE791DF1F73ED2C8B, "i")end - -- This function is hard-coded to always return 0. - LOAD_HIGH_QUALITY_PHOTO=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0xEC72C258667BE5EA, "i")end - -- Hardcoded to always return 2. - GET_LOAD_HIGH_QUALITY_PHOTO_STATUS=--[[int]] function(--[[int]] p0)return native_invoker.unified_int(p0, 0x40AFB081F8ADD4EE, "i")end - DRAW_LIGHT_WITH_RANGEEX=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] r,--[[int]] g,--[[int]] b,--[[float]] range,--[[float]] intensity,--[[float]] shadow)return native_invoker.unified_void(x, y, z, r, g, b, range, intensity, shadow, 0xF49E9A9716A04595, "fffiiifff")end - DRAW_LIGHT_WITH_RANGE=--[[void]] function(--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[int]] colorR,--[[int]] colorG,--[[int]] colorB,--[[float]] range,--[[float]] intensity)return native_invoker.unified_void(posX, posY, posZ, colorR, colorG, colorB, range, intensity, 0xF2A1B2771A01DBD4, "fffiiiff")end - -- Parameters: - -- * pos - coordinate where the spotlight is located - -- * dir - the direction vector the spotlight should aim at from its current position - -- * r,g,b - color of the spotlight - -- * distance - the maximum distance the light can reach - -- * brightness - the brightness of the light - -- * roundness - "smoothness" of the circle edge - -- * radius - the radius size of the spotlight - -- * falloff - the falloff size of the light's edge (example: www.i.imgur.com/DemAWeO.jpg) - -- - -- Example in C# (spotlight aims at the closest vehicle): - -- Vector3 myPos = Game.Player.Character.Position; - -- Vehicle nearest = World.GetClosestVehicle(myPos , 1000f); - -- Vector3 destinationCoords = nearest.Position; - -- Vector3 dirVector = destinationCoords - myPos; - -- dirVector.Normalize(); - -- Function.Call(Hash.DRAW_SPOT_LIGHT, pos.X, pos.Y, pos.Z, dirVector.X, dirVector.Y, dirVector.Z, 255, 255, 255, 100.0f, 1f, 0.0f, 13.0f, 1f); - DRAW_SPOT_LIGHT=--[[void]] function(--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[float]] dirX,--[[float]] dirY,--[[float]] dirZ,--[[int]] colorR,--[[int]] colorG,--[[int]] colorB,--[[float]] distance,--[[float]] brightness,--[[float]] hardness,--[[float]] radius,--[[float]] falloff)return native_invoker.unified_void(posX, posY, posZ, dirX, dirY, dirZ, colorR, colorG, colorB, distance, brightness, hardness, radius, falloff, 0xD0F64B265C8C8B33, "ffffffiiifffff")end - DRAW_SHADOWED_SPOT_LIGHT=--[[void]] function(--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[float]] dirX,--[[float]] dirY,--[[float]] dirZ,--[[int]] colorR,--[[int]] colorG,--[[int]] colorB,--[[float]] distance,--[[float]] brightness,--[[float]] roundness,--[[float]] radius,--[[float]] falloff,--[[int]] shadowId)return native_invoker.unified_void(posX, posY, posZ, dirX, dirY, dirZ, colorR, colorG, colorB, distance, brightness, roundness, radius, falloff, shadowId, 0x5BCA583A583194DB, "ffffffiiifffffi")end - FADE_UP_PED_LIGHT=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0xC9B18B4619F48F7B, "f")end - UPDATE_LIGHTS_ON_ENTITY=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0xDEADC0DEDEADC0DE, "i")end - SET_LIGHT_OVERRIDE_MAX_INTENSITY_SCALE=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x9641588DAB93B4B5, "i")end - GET_LIGHT_OVERRIDE_MAX_INTENSITY_SCALE=--[[float]] function()return native_invoker.unified_float(0x393BD2275CEB7793, "")end - -- enum MarkerTypes - -- { - -- MarkerTypeUpsideDownCone = 0, - -- MarkerTypeVerticalCylinder = 1, - -- MarkerTypeThickChevronUp = 2, - -- MarkerTypeThinChevronUp = 3, - -- MarkerTypeCheckeredFlagRect = 4, - -- MarkerTypeCheckeredFlagCircle = 5, - -- MarkerTypeVerticleCircle = 6, - -- MarkerTypePlaneModel = 7, - -- MarkerTypeLostMCDark = 8, - -- MarkerTypeLostMCLight = 9, - -- MarkerTypeNumber0 = 10, - -- MarkerTypeNumber1 = 11, - -- MarkerTypeNumber2 = 12, - -- MarkerTypeNumber3 = 13, - -- MarkerTypeNumber4 = 14, - -- MarkerTypeNumber5 = 15, - -- MarkerTypeNumber6 = 16, - -- MarkerTypeNumber7 = 17, - -- MarkerTypeNumber8 = 18, - -- MarkerTypeNumber9 = 19, - -- MarkerTypeChevronUpx1 = 20, - -- MarkerTypeChevronUpx2 = 21, - -- MarkerTypeChevronUpx3 = 22, - -- MarkerTypeHorizontalCircleFat = 23, - -- MarkerTypeReplayIcon = 24, - -- MarkerTypeHorizontalCircleSkinny = 25, - -- MarkerTypeHorizontalCircleSkinny_Arrow = 26, - -- MarkerTypeHorizontalSplitArrowCircle = 27, - -- MarkerTypeDebugSphere = 28, - -- MarkerTypeDallorSign = 29, - -- MarkerTypeHorizontalBars = 30, - -- MarkerTypeWolfHead = 31 - -- }; - -- - -- dirX/Y/Z represent a heading on each axis in which the marker should face, alternatively you can rotate each axis independently with rotX/Y/Z (and set dirX/Y/Z all to 0). - -- - -- faceCamera - Rotates only the y-axis (the heading) towards the camera - -- - -- p19 - no effect, default value in script is 2 - -- - -- rotate - Rotates only on the y-axis (the heading) - -- - -- textureDict - Name of texture dictionary to load texture from (e.g. "GolfPutting") - -- - -- textureName - Name of texture inside dictionary to load (e.g. "PuttingMarker") - -- - -- drawOnEnts - Draws the marker onto any entities that intersect it - -- - -- basically what he said, except textureDict and textureName are totally not const char*, or if so, then they are always set to 0/NULL/nullptr in every script I checked, eg: - -- - -- bj.c: graphics::draw_marker(6, vParam0, 0f, 0f, 1f, 0f, 0f, 0f, 4f, 4f, 4f, 240, 200, 80, iVar1, 0, 0, 2, 0, 0, 0, false); - -- - -- his is what I used to draw an amber downward pointing chevron "V", has to be redrawn every frame. The 180 is for 180 degrees rotation around the Y axis, the 50 is alpha, assuming max is 100, but it will accept 255. - -- - -- GRAPHICS::DRAW_MARKER(2, v.x, v.y, v.z + 2, 0, 0, 0, 0, 180, 0, 2, 2, 2, 255, 128, 0, 50, 0, 1, 1, 0, 0, 0, 0); - -- - -- - DRAW_MARKER=--[[void]] function(--[[int]] type,--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[float]] dirX,--[[float]] dirY,--[[float]] dirZ,--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ,--[[float]] scaleX,--[[float]] scaleY,--[[float]] scaleZ,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha,--[[BOOL (bool)]] bobUpAndDown,--[[BOOL (bool)]] faceCamera,--[[int]] p19,--[[BOOL (bool)]] rotate,--[[string]] textureDict,--[[string]] textureName,--[[BOOL (bool)]] drawOnEnts)return native_invoker.unified_void(type, posX, posY, posZ, dirX, dirY, dirZ, rotX, rotY, rotZ, scaleX, scaleY, scaleZ, red, green, blue, alpha, bobUpAndDown, faceCamera, p19, rotate, textureDict, textureName, drawOnEnts, 0x28477EC23D892089, "iffffffffffffiiiibbibssb")end - DRAW_MARKER_EX=--[[void]] function(--[[int]] type,--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[float]] dirX,--[[float]] dirY,--[[float]] dirZ,--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ,--[[float]] scaleX,--[[float]] scaleY,--[[float]] scaleZ,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha,--[[BOOL (bool)]] bobUpAndDown,--[[BOOL (bool)]] faceCamera,--[[Any (int)]] p19,--[[BOOL (bool)]] rotate,--[[string]] textureDict,--[[string]] textureName,--[[BOOL (bool)]] drawOnEnts,--[[BOOL (bool)]] p24,--[[BOOL (bool)]] p25)return native_invoker.unified_void(type, posX, posY, posZ, dirX, dirY, dirZ, rotX, rotY, rotZ, scaleX, scaleY, scaleZ, red, green, blue, alpha, bobUpAndDown, faceCamera, p19, rotate, textureDict, textureName, drawOnEnts, p24, p25, 0xE82728F0DE75D13A, "iffffffffffffiiiibbibssbbb")end - -- Draws a 3D sphere, typically seen in the GTA:O freemode event "Penned In". - -- Example https://imgur.com/nCbtS4H - -- - -- alpha - The alpha for the sphere. Goes from 0.0 to 1.0. - DRAW_MARKER_SPHERE=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[int]] red,--[[int]] green,--[[int]] blue,--[[float]] alpha)return native_invoker.unified_void(x, y, z, radius, red, green, blue, alpha, 0x799017F9E3B10112, "ffffiiif")end - -- Creates a checkpoint. Returns the handle of the checkpoint. - -- - -- 20/03/17 : Attention, checkpoints are already handled by the game itself, so you must not loop it like markers. - -- - -- Parameters: - -- * type - The type of checkpoint to create. See below for a list of checkpoint types. - -- * pos1 - The position of the checkpoint. - -- * pos2 - The position of the next checkpoint to point to. - -- * radius - The radius of the checkpoint. - -- * color - The color of the checkpoint. - -- * reserved - Special parameter, see below for details. Usually set to 0 in the scripts. - -- - -- Checkpoint types: - -- 0-4---------Cylinder: 1 arrow, 2 arrow, 3 arrows, CycleArrow, Checker - -- 5-9---------Cylinder: 1 arrow, 2 arrow, 3 arrows, CycleArrow, Checker - -- 10-14-------Ring: 1 arrow, 2 arrow, 3 arrows, CycleArrow, Checker - -- 15-19-------1 arrow, 2 arrow, 3 arrows, CycleArrow, Checker - -- 20-24-------Cylinder: 1 arrow, 2 arrow, 3 arrows, CycleArrow, Checker - -- 25-29-------Cylinder: 1 arrow, 2 arrow, 3 arrows, CycleArrow, Checker - -- 30-34-------Cylinder: 1 arrow, 2 arrow, 3 arrows, CycleArrow, Checker - -- 35-38-------Ring: Airplane Up, Left, Right, UpsideDown - -- 39----------? - -- 40----------Ring: just a ring - -- 41----------? - -- 42-44-------Cylinder w/ number (uses 'reserved' parameter) - -- 45-47-------Cylinder no arrow or number - -- - -- If using type 42-44, reserved sets number / number and shape to display - -- - -- 0-99------------Just numbers (0-99) - -- 100-109-----------------Arrow (0-9) - -- 110-119------------Two arrows (0-9) - -- 120-129----------Three arrows (0-9) - -- 130-139----------------Circle (0-9) - -- 140-149------------CycleArrow (0-9) - -- 150-159----------------Circle (0-9) - -- 160-169----Circle w/ pointer (0-9) - -- 170-179-------Perforated ring (0-9) - -- 180-189----------------Sphere (0-9) - CREATE_CHECKPOINT=--[[int]] function(--[[int]] type,--[[float]] posX1,--[[float]] posY1,--[[float]] posZ1,--[[float]] posX2,--[[float]] posY2,--[[float]] posZ2,--[[float]] diameter,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha,--[[int]] reserved)return native_invoker.unified_int(type, posX1, posY1, posZ1, posX2, posY2, posZ2, diameter, red, green, blue, alpha, reserved, 0x0134F0835AB6BFCB, "ifffffffiiiii")end - SET_CHECKPOINT_INSIDE_CYLINDER_HEIGHT_SCALE=--[[void]] function(--[[int]] checkpoint,--[[float]] scale)return native_invoker.unified_void(checkpoint, scale, 0x4B5B4DA5D79F1943, "if")end - SET_CHECKPOINT_INSIDE_CYLINDER_SCALE=--[[void]] function(--[[int]] checkpoint,--[[float]] scale)return native_invoker.unified_void(checkpoint, scale, 0x44621483FF966526, "if")end - -- Sets the cylinder height of the checkpoint. - -- - -- Parameters: - -- * nearHeight - The height of the checkpoint when inside of the radius. - -- * farHeight - The height of the checkpoint when outside of the radius. - -- * radius - The radius of the checkpoint. - SET_CHECKPOINT_CYLINDER_HEIGHT=--[[void]] function(--[[int]] checkpoint,--[[float]] nearHeight,--[[float]] farHeight,--[[float]] radius)return native_invoker.unified_void(checkpoint, nearHeight, farHeight, radius, 0x2707AAE9D9297D89, "ifff")end - -- Sets the checkpoint color. - SET_CHECKPOINT_RGBA=--[[void]] function(--[[int]] checkpoint,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha)return native_invoker.unified_void(checkpoint, red, green, blue, alpha, 0x7167371E8AD747F7, "iiiii")end - -- Sets the checkpoint icon color. - SET_CHECKPOINT_RGBA2=--[[void]] function(--[[int]] checkpoint,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha)return native_invoker.unified_void(checkpoint, red, green, blue, alpha, 0xB9EA40907C680580, "iiiii")end - -- This does not move an existing checkpoint... so wtf. - SET_CHECKPOINT_CLIPPLANE_WITH_POS_NORM=--[[void]] function(--[[int]] checkpoint,--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[float]] unkX,--[[float]] unkY,--[[float]] unkZ)return native_invoker.unified_void(checkpoint, posX, posY, posZ, unkX, unkY, unkZ, 0xF51D36185993515D, "iffffff")end - SET_CHECKPOINT_FORCE_OLD_ARROW_POINTING=--[[void]] function(--[[int]] checkpoint)return native_invoker.unified_void(checkpoint, 0xFCF6788FC4860CD4, "i")end - -- Unknown. Called after creating a checkpoint (type: 51) in the creators. - SET_CHECKPOINT_DECAL_ROT_ALIGNED_TO_CAMERA_ROT=--[[void]] function(--[[int]] checkpoint)return native_invoker.unified_void(checkpoint, 0x615D3925E87A3B26, "i")end - SET_CHECKPOINT_FORCE_DIRECTION=--[[void]] function(--[[int]] checkpoint)return native_invoker.unified_void(checkpoint, 0xDB1EA9411C8911EC, "i")end - SET_CHECKPOINT_DIRECTION=--[[void]] function(--[[int]] checkpoint,--[[float]] posX,--[[float]] posY,--[[float]] posZ)return native_invoker.unified_void(checkpoint, posX, posY, posZ, 0x3C788E7F6438754D, "ifff")end - DELETE_CHECKPOINT=--[[void]] function(--[[int]] checkpoint)return native_invoker.unified_void(checkpoint, 0xF5ED37F54CD4D52E, "i")end - DONT_RENDER_IN_GAME_UI=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x22A249A53034450A, "b")end - FORCE_RENDER_IN_GAME_UI=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xDC459CFA0CCE245B, "b")end - -- This function can requests texture dictonaries from following RPFs: - -- scaleform_generic.rpf - -- scaleform_minigames.rpf - -- scaleform_minimap.rpf - -- scaleform_web.rpf - -- - -- last param isnt a toggle - REQUEST_STREAMED_TEXTURE_DICT=--[[void]] function(--[[string]] textureDict,--[[BOOL (bool)]] p1)return native_invoker.unified_void(textureDict, p1, 0xDFA2EF8E04127DD5, "sb")end - HAS_STREAMED_TEXTURE_DICT_LOADED=--[[BOOL (bool)]] function(--[[string]] textureDict)return native_invoker.unified_bool(textureDict, 0x0145F696AAAAD2E4, "s")end - SET_STREAMED_TEXTURE_DICT_AS_NO_LONGER_NEEDED=--[[void]] function(--[[string]] textureDict)return native_invoker.unified_void(textureDict, 0xBE2CACCF5A8AA805, "s")end - -- Draws a rectangle on the screen. - -- - -- -x: The relative X point of the center of the rectangle. (0.0-1.0, 0.0 is the left edge of the screen, 1.0 is the right edge of the screen) - -- - -- -y: The relative Y point of the center of the rectangle. (0.0-1.0, 0.0 is the top edge of the screen, 1.0 is the bottom edge of the screen) - -- - -- -width: The relative width of the rectangle. (0.0-1.0, 1.0 means the whole screen width) - -- - -- -height: The relative height of the rectangle. (0.0-1.0, 1.0 means the whole screen height) - -- - -- -R: Red part of the color. (0-255) - -- - -- -G: Green part of the color. (0-255) - -- - -- -B: Blue part of the color. (0-255) - -- - -- -A: Alpha part of the color. (0-255, 0 means totally transparent, 255 means totally opaque) - -- - -- The total number of rectangles to be drawn in one frame is apparently limited to 399. - -- - DRAW_RECT=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] width,--[[float]] height,--[[int]] r,--[[int]] g,--[[int]] b,--[[int]] a,--[[BOOL (bool)]] p8)return native_invoker.unified_void(x, y, width, height, r, g, b, a, p8, 0x3A618A217E5154F0, "ffffiiiib")end - -- Sets a flag defining whether or not script draw commands should continue being drawn behind the pause menu. This is usually used for TV channels and other draw commands that are used with a world render target. - SET_SCRIPT_GFX_DRAW_BEHIND_PAUSEMENU=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xC6372ECD45D73BCD, "b")end - -- Sets the draw order for script draw commands. - -- - -- Examples from decompiled scripts: - -- GRAPHICS::SET_SCRIPT_GFX_DRAW_ORDER(7); - -- GRAPHICS::DRAW_RECT(0.5, 0.5, 3.0, 3.0, v_4, v_5, v_6, a_0._f172, 0); - -- - -- GRAPHICS::SET_SCRIPT_GFX_DRAW_ORDER(1); - -- GRAPHICS::DRAW_RECT(0.5, 0.5, 1.5, 1.5, 0, 0, 0, 255, 0); - SET_SCRIPT_GFX_DRAW_ORDER=--[[void]] function(--[[int]] drawOrder)return native_invoker.unified_void(drawOrder, 0x61BB1D9B3A95D802, "i")end - -- horizontalAlign: The horizontal alignment. This can be 67 ('C'), 76 ('L'), or 82 ('R'). - -- verticalAlign: The vertical alignment. This can be 67 ('C'), 66 ('B'), or 84 ('T'). - -- - -- This function anchors script draws to a side of the safe zone. This needs to be called to make the interface independent of the player's safe zone configuration. - -- - -- These values are equivalent to alignX and alignY in common:/data/ui/frontend.xml, which can be used as a baseline for default alignment. - -- - -- Using any other value (including 0) will result in the safe zone not being taken into account for this draw. The canonical value for this is 'I' (73). - -- - -- For example, you can use SET_SCRIPT_GFX_ALIGN(0, 84) to only scale on the Y axis (to the top), but not change the X axis. - -- - -- To reset the value, use RESET_SCRIPT_GFX_ALIGN. - SET_SCRIPT_GFX_ALIGN=--[[void]] function(--[[int]] horizontalAlign,--[[int]] verticalAlign)return native_invoker.unified_void(horizontalAlign, verticalAlign, 0xB8A850F20A067EB6, "ii")end - -- This function resets the alignment set using SET_SCRIPT_GFX_ALIGN and SET_SCRIPT_GFX_ALIGN_PARAMS to the default values ('I', 'I'; 0, 0, 0, 0). - -- This should be used after having used the aforementioned functions in order to not affect any other scripts attempting to draw. - RESET_SCRIPT_GFX_ALIGN=--[[void]] function()return native_invoker.unified_void(0xE3A3DB414A373DAB, "")end - -- Sets the draw offset/calculated size for SET_SCRIPT_GFX_ALIGN. If using any alignment other than left/top, the game expects the width/height to be configured using this native in order to get a proper starting position for the draw command. - SET_SCRIPT_GFX_ALIGN_PARAMS=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] w,--[[float]] h)return native_invoker.unified_void(x, y, w, h, 0xF5A2C681787E579D, "ffff")end - -- Calculates the effective X/Y fractions when applying the values set by SET_SCRIPT_GFX_ALIGN and SET_SCRIPT_GFX_ALIGN_PARAMS - GET_SCRIPT_GFX_ALIGN_POSITION=--[[void]] function(--[[float]] x,--[[float]] y,--[[float* (pointer)]] calculatedX,--[[float* (pointer)]] calculatedY)return native_invoker.unified_void(x, y, calculatedX, calculatedY, 0x6DD8F5AA635EB4B2, "ffpp")end - -- Gets the scale of safe zone. if the safe zone size scale is max, it will return 1.0. - GET_SAFE_ZONE_SIZE=--[[float]] function()return native_invoker.unified_float(0xBAF107B6BB2C97F0, "")end - -- Draws a 2D sprite on the screen. - -- - -- Parameters: - -- textureDict - Name of texture dictionary to load texture from (e.g. "CommonMenu", "MPWeaponsCommon", etc.) - -- - -- textureName - Name of texture to load from texture dictionary (e.g. "last_team_standing_icon", "tennis_icon", etc.) - -- - -- screenX/Y - Screen offset (0.5 = center) - -- scaleX/Y - Texture scaling. Negative values can be used to flip the texture on that axis. (0.5 = half) - -- - -- heading - Texture rotation in degrees (default = 0.0) positive is clockwise, measured in degrees - -- - -- red,green,blue - Sprite color (default = 255/255/255) - -- - -- alpha - opacity level - DRAW_SPRITE=--[[void]] function(--[[string]] textureDict,--[[string]] textureName,--[[float]] screenX,--[[float]] screenY,--[[float]] width,--[[float]] height,--[[float]] heading,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha,--[[BOOL (bool)]] p11,--[[Any (int)]] p12)return native_invoker.unified_void(textureDict, textureName, screenX, screenY, width, height, heading, red, green, blue, alpha, p11, p12, 0xE7FFAE5EBF23D890, "ssfffffiiiibi")end - -- Used in arcade games and Beam hack minigame in Doomsday Heist. I will most certainly dive into this to try replicate arcade games. - -- x position must be between 0.0 and 1.0 (1.0 being the most right side of the screen) - -- y position must be between 0.0 and 1.0 (1.0 being the most bottom side of the screen) - -- width 0.0 - 1.0 is the reasonable amount generally - -- height 0.0 - 1.0 is the reasonable amount generally - -- p6 almost always 0.0 - -- p11 seems to be unknown but almost always 0 int - DRAW_SPRITE_ARX=--[[void]] function(--[[string]] textureDict,--[[string]] textureName,--[[float]] x,--[[float]] y,--[[float]] width,--[[float]] height,--[[float]] p6,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha,--[[Any (int)]] p11,--[[Any (int)]] p12)return native_invoker.unified_void(textureDict, textureName, x, y, width, height, p6, red, green, blue, alpha, p11, p12, 0x2D3B147AFAD49DE0, "ssfffffiiiiii")end - -- Similar to _DRAW_SPRITE, but seems to be some kind of "interactive" sprite, at least used by render targets. - -- These seem to be the only dicts ever requested by this native: - -- - -- prop_screen_biker_laptop - -- Prop_Screen_GR_Disruption - -- Prop_Screen_TaleOfUs - -- prop_screen_nightclub - -- Prop_Screen_IE_Adhawk - -- prop_screen_sm_free_trade_shipping - -- prop_screen_hacker_truck - -- MPDesktop - -- Prop_Screen_Nightclub - -- And a few others - -- - DRAW_SPRITE_NAMED_RENDERTARGET=--[[void]] function(--[[string]] textureDict,--[[string]] textureName,--[[float]] screenX,--[[float]] screenY,--[[float]] width,--[[float]] height,--[[float]] heading,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha,--[[Any (int)]] p11)return native_invoker.unified_void(textureDict, textureName, screenX, screenY, width, height, heading, red, green, blue, alpha, p11, 0x2BC54A8188768488, "ssfffffiiiii")end - -- Similar to DRAW_SPRITE, but allows to specify the texture coordinates used to draw the sprite. - -- - -- u1, v1 - texture coordinates for the top-left corner - -- u2, v2 - texture coordinates for the bottom-right corner - DRAW_SPRITE_ARX_WITH_UV=--[[void]] function(--[[string]] textureDict,--[[string]] textureName,--[[float]] x,--[[float]] y,--[[float]] width,--[[float]] height,--[[float]] u1,--[[float]] v1,--[[float]] u2,--[[float]] v2,--[[float]] heading,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha,--[[Any (int)]] p15)return native_invoker.unified_void(textureDict, textureName, x, y, width, height, u1, v1, u2, v2, heading, red, green, blue, alpha, p15, 0x95812F9B26074726, "ssfffffffffiiiii")end - -- Example: - -- GRAPHICS::ADD_ENTITY_ICON(a_0, "MP_Arrow"); - -- - -- I tried this and nothing happened... - ADD_ENTITY_ICON=--[[int]] function(--[[Entity (int)]] entity,--[[string]] icon)return native_invoker.unified_int(entity, icon, 0x9CD43EEE12BF4DD0, "is")end - SET_ENTITY_ICON_VISIBILITY=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0xE0E8BEECCA96BA31, "ib")end - SET_ENTITY_ICON_COLOR=--[[void]] function(--[[Entity (int)]] entity,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha)return native_invoker.unified_void(entity, red, green, blue, alpha, 0x1D5F595CCAE2E238, "iiiii")end - -- Sets the on-screen drawing origin for draw-functions (which is normally x=0,y=0 in the upper left corner of the screen) to a world coordinate. - -- From now on, the screen coordinate which displays the given world coordinate on the screen is seen as x=0,y=0. - -- - -- Example in C#: - -- Vector3 boneCoord = somePed.GetBoneCoord(Bone.SKEL_Head); - -- Function.Call(Hash.SET_DRAW_ORIGIN, boneCoord.X, boneCoord.Y, boneCoord.Z, 0); - -- Function.Call(Hash.DRAW_SPRITE, "helicopterhud", "hud_corner", -0.01, -0.015, 0.013, 0.013, 0.0, 255, 0, 0, 200); - -- Function.Call(Hash.DRAW_SPRITE, "helicopterhud", "hud_corner", 0.01, -0.015, 0.013, 0.013, 90.0, 255, 0, 0, 200); - -- Function.Call(Hash.DRAW_SPRITE, "helicopterhud", "hud_corner", -0.01, 0.015, 0.013, 0.013, 270.0, 255, 0, 0, 200); - -- Function.Call(Hash.DRAW_SPRITE, "helicopterhud", "hud_corner", 0.01, 0.015, 0.013, 0.013, 180.0, 255, 0, 0, 200); - -- Function.Call(Hash.CLEAR_DRAW_ORIGIN); - -- - -- Result: www11.pic-upload.de/19.06.15/bkqohvil2uao.jpg - -- If the pedestrian starts walking around now, the sprites are always around her head, no matter where the head is displayed on the screen. - -- - -- This function also effects the drawing of texts and other UI-elements. - -- The effect can be reset by calling GRAPHICS::CLEAR_DRAW_ORIGIN(). - SET_DRAW_ORIGIN=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] p3)return native_invoker.unified_void(x, y, z, p3, 0xAA0008F3BBB8F416, "fffb")end - -- Resets the screen's draw-origin which was changed by the function GRAPHICS::SET_DRAW_ORIGIN(...) back to x=0,y=0. - -- - -- See GRAPHICS::SET_DRAW_ORIGIN(...) for further information. - CLEAR_DRAW_ORIGIN=--[[void]] function()return native_invoker.unified_void(0xFF0B610F6BE0D7AF, "")end - SET_BINK_MOVIE=--[[int]] function(--[[string]] name)return native_invoker.unified_int(name, 0x338D9F609FD632DB, "s")end - PLAY_BINK_MOVIE=--[[void]] function(--[[int]] binkMovie)return native_invoker.unified_void(binkMovie, 0x70D2CC8A542A973C, "i")end - STOP_BINK_MOVIE=--[[void]] function(--[[int]] binkMovie)return native_invoker.unified_void(binkMovie, 0x63606A61DE68898A, "i")end - RELEASE_BINK_MOVIE=--[[void]] function(--[[int]] binkMovie)return native_invoker.unified_void(binkMovie, 0x04D950EEFA4EED8C, "i")end - DRAW_BINK_MOVIE=--[[void]] function(--[[int]] binkMovie,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[int]] r,--[[int]] g,--[[int]] b,--[[int]] a)return native_invoker.unified_void(binkMovie, p1, p2, p3, p4, p5, r, g, b, a, 0x7118E83EEB9F7238, "ifffffiiii")end - -- In percentage: 0.0 - 100.0 - SET_BINK_MOVIE_TIME=--[[void]] function(--[[int]] binkMovie,--[[float]] progress)return native_invoker.unified_void(binkMovie, progress, 0x0CB6B3446855B57A, "if")end - -- In percentage: 0.0 - 100.0 - GET_BINK_MOVIE_TIME=--[[float]] function(--[[int]] binkMovie)return native_invoker.unified_float(binkMovie, 0x8E17DDD6B9D5BF29, "i")end - -- binkMovie: Is return value from _SET_BINK_MOVIE. Has something to do with bink volume? (audRequestedSettings::SetVolumeCurveScale) - SET_BINK_MOVIE_VOLUME=--[[void]] function(--[[int]] binkMovie,--[[float]] value)return native_invoker.unified_void(binkMovie, value, 0xAFF33B1178172223, "if")end - -- Might be more appropriate in AUDIO? - ATTACH_TV_AUDIO_TO_ENTITY=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0x845BAD77CC770633, "i")end - SET_BINK_MOVIE_AUDIO_FRONTEND=--[[void]] function(--[[int]] binkMovie,--[[BOOL (bool)]] p1)return native_invoker.unified_void(binkMovie, p1, 0xF816F2933752322D, "ib")end - -- Probably changes tvs from being a 3d audio to being "global" audio - SET_TV_AUDIO_FRONTEND=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x113D2C5DC57E1774, "b")end - SET_BINK_SHOULD_SKIP=--[[void]] function(--[[int]] binkMovie,--[[BOOL (bool)]] bShouldSkip)return native_invoker.unified_void(binkMovie, bShouldSkip, 0x6805D58CAA427B72, "ib")end - LOAD_MOVIE_MESH_SET=--[[int]] function(--[[string]] movieMeshSetName)return native_invoker.unified_int(movieMeshSetName, 0xB66064452270E8F1, "s")end - RELEASE_MOVIE_MESH_SET=--[[void]] function(--[[int]] movieMeshSet)return native_invoker.unified_void(movieMeshSet, 0xEB119AA014E89183, "i")end - QUERY_MOVIE_MESH_SET_STATE=--[[int]] function(--[[Any (int)]] p0)return native_invoker.unified_int(p0, 0x9B6E70C5CEEF4EEB, "i")end - -- int screenresx,screenresy; - -- GET_SCREEN_RESOLUTION(&screenresx,&screenresy); - GET_SCREEN_RESOLUTION=--[[void]] function(--[[int* (pointer)]] x,--[[int* (pointer)]] y)return native_invoker.unified_void(x, y, 0x888D57E407E63624, "pp")end - -- Returns current screen resolution. - GET_ACTUAL_SCREEN_RESOLUTION=--[[void]] function(--[[int* (pointer)]] x,--[[int* (pointer)]] y)return native_invoker.unified_void(x, y, 0x873C9F3104101DD3, "pp")end - GET_ASPECT_RATIO=--[[float]] function(--[[BOOL (bool)]] b)return native_invoker.unified_float(b, 0xF1307EF624A80D87, "b")end - GET_SCREEN_ASPECT_RATIO=--[[float]] function()return native_invoker.unified_float(0xB2EBE8CBC58B90E9, "")end - -- Setting Aspect Ratio Manually in game will return: - -- - -- false - for Narrow format Aspect Ratios (3:2, 4:3, 5:4, etc. ) - -- true - for Wide format Aspect Ratios (5:3, 16:9, 16:10, etc. ) - -- - -- Setting Aspect Ratio to "Auto" in game will return "false" or "true" based on the actual set Resolution Ratio. - GET_IS_WIDESCREEN=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x30CF4BDA4FCB1905, "")end - -- false = Any resolution < 1280x720 - -- true = Any resolution >= 1280x720 - GET_IS_HIDEF=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x84ED31191CC5D2C9, "")end - ADJUST_NEXT_POS_SIZE_AS_NORMALIZED_16_9=--[[void]] function()return native_invoker.unified_void(0xEFABC7722293DA7C, "")end - -- Enables Night Vision. - -- - -- Example: - -- C#: Function.Call(Hash.SET_NIGHTVISION, true); - -- C++: GRAPHICS::SET_NIGHTVISION(true); - -- - -- BOOL toggle: - -- true = turns night vision on for your player. - -- false = turns night vision off for your player. - SET_NIGHTVISION=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x18F621F7A5B1F85D, "b")end - GET_REQUESTINGNIGHTVISION=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x35FB78DC42B7BD21, "")end - GET_USINGNIGHTVISION=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x2202A3F42C8E5F79, "")end - SET_EXPOSURETWEAK=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xEF398BEEE4EF45F9, "b")end - FORCE_EXPOSURE_READBACK=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x814AF7DCAACC597B, "b")end - OVERRIDE_NIGHTVISION_LIGHT_RANGE=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0x43FA7CBE20DAB219, "f")end - SET_NOISEOVERIDE=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xE787BF1C5CF823C9, "b")end - SET_NOISINESSOVERIDE=--[[void]] function(--[[float]] value)return native_invoker.unified_void(value, 0xCB6A7C3BB17A0C67, "f")end - -- Convert a world coordinate into its relative screen coordinate. (WorldToScreen) - -- - -- Returns a boolean; whether or not the operation was successful. It will return false if the coordinates given are not visible to the rendering camera. - -- - -- - -- For .NET users... - -- - -- VB: - -- Public Shared Function World3DToScreen2d(pos as vector3) As Vector2 - -- - -- Dim x2dp, y2dp As New Native.OutputArgument - -- - -- Native.Function.Call(Of Boolean)(Native.Hash.GET_SCREEN_COORD_FROM_WORLD_COORD , pos.x, pos.y, pos.z, x2dp, y2dp) - -- Return New Vector2(x2dp.GetResult(Of Single), y2dp.GetResult(Of Single)) - -- - -- End Function - -- - -- C#: - -- Vector2 World3DToScreen2d(Vector3 pos) - -- { - -- var x2dp = new OutputArgument(); - -- var y2dp = new OutputArgument(); - -- - -- Function.Call(Hash.GET_SCREEN_COORD_FROM_WORLD_COORD , pos.X, pos.Y, pos.Z, x2dp, y2dp); - -- return new Vector2(x2dp.GetResult(), y2dp.GetResult()); - -- } - -- //USE VERY SMALL VALUES FOR THE SCALE OF RECTS/TEXT because it is dramatically larger on screen than in 3D, e.g '0.05' small. - -- - -- Used to be called _WORLD3D_TO_SCREEN2D - -- - -- I thought we lost you from the scene forever. It does seem however that calling SET_DRAW_ORIGIN then your natives, then ending it. Seems to work better for certain things such as keeping boxes around people for a predator missile e.g. - GET_SCREEN_COORD_FROM_WORLD_COORD=--[[BOOL (bool)]] function(--[[float]] worldX,--[[float]] worldY,--[[float]] worldZ,--[[float* (pointer)]] screenX,--[[float* (pointer)]] screenY)return native_invoker.unified_bool(worldX, worldY, worldZ, screenX, screenY, 0x34E82F05DF2974F5, "fffpp")end - -- Returns the texture resolution of the passed texture dict+name. - -- - -- Note: Most texture resolutions are doubled compared to the console version of the game. - GET_TEXTURE_RESOLUTION=--[[Vector3 (vector3)]] function(--[[string]] textureDict,--[[string]] textureName)return native_invoker.unified_vector3(textureDict, textureName, 0x35736EE65BD00C11, "ss")end - -- Overriding ped badge texture to a passed texture. It's synced between players (even custom textures!), don't forget to request used dict on *all* clients to make it sync properly. Can be removed by passing empty strings. - OVERRIDE_PED_CREW_LOGO_TEXTURE=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[string]] txd,--[[string]] txn)return native_invoker.unified_bool(ped, txd, txn, 0x95EB5E34F821BABE, "iss")end - SET_DISTANCE_BLUR_STRENGTH_OVERRIDE=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0xE2892E7E55D7073A, "f")end - -- Purpose of p0 and p1 unknown. - SET_FLASH=--[[void]] function(--[[float]] p0,--[[float]] p1,--[[float]] fadeIn,--[[float]] duration,--[[float]] fadeOut)return native_invoker.unified_void(p0, p1, fadeIn, duration, fadeOut, 0x0AB84296FED9CFC6, "fffff")end - DISABLE_OCCLUSION_THIS_FRAME=--[[void]] function()return native_invoker.unified_void(0x3669F1B198DCAA4F, "")end - -- Does not affect weapons, particles, fire/explosions, flashlights or the sun. - -- When set to true, all emissive textures (including ped components that have light effects), street lights, building lights, vehicle lights, etc will all be turned off. - -- - -- Used in Humane Labs Heist for EMP. - -- - -- state: True turns off all artificial light sources in the map: buildings, street lights, car lights, etc. False turns them back on. - SET_ARTIFICIAL_LIGHTS_STATE=--[[void]] function(--[[BOOL (bool)]] state)return native_invoker.unified_void(state, 0x1268615ACE24D504, "b")end - -- If "blackout" is enabled, this native allows you to ignore "blackout" for vehicles. - SET_ARTIFICIAL_VEHICLE_LIGHTS_STATE=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xE2B187C0939B3D32, "b")end - DISABLE_HDTEX_THIS_FRAME=--[[void]] function()return native_invoker.unified_void(0xC35A6D07C93802B2, "")end - -- Creates a tracked point, useful for checking the visibility of a 3D point on screen. - CREATE_TRACKED_POINT=--[[int]] function()return native_invoker.unified_int(0xE2C9439ED45DEA60, "")end - SET_TRACKED_POINT_INFO=--[[void]] function(--[[int]] point,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius)return native_invoker.unified_void(point, x, y, z, radius, 0x164ECBB3CF750CB0, "iffff")end - IS_TRACKED_POINT_VISIBLE=--[[BOOL (bool)]] function(--[[int]] point)return native_invoker.unified_bool(point, 0xC45CCDAAC9221CA8, "i")end - DESTROY_TRACKED_POINT=--[[void]] function(--[[int]] point)return native_invoker.unified_void(point, 0xB25DC90BAD56CA42, "i")end - -- This function is hard-coded to always return 0. - SET_GRASS_CULL_SPHERE=--[[int]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3)return native_invoker.unified_int(p0, p1, p2, p3, 0xBE197EAA669238F4, "ffff")end - -- This native does absolutely nothing, just a nullsub - REMOVE_GRASS_CULL_SPHERE=--[[void]] function(--[[int]] handle)return native_invoker.unified_void(handle, 0x61F95E5BB3E0A8C6, "i")end - PROCGRASS_ENABLE_CULLSPHERE=--[[void]] function(--[[int]] handle,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] scale)return native_invoker.unified_void(handle, x, y, z, scale, 0xAE51BC858F32BA66, "iffff")end - PROCGRASS_DISABLE_CULLSPHERE=--[[void]] function(--[[int]] handle)return native_invoker.unified_void(handle, 0x649C97D52332341A, "i")end - PROCGRASS_IS_CULLSPHERE_ENABLED=--[[BOOL (bool)]] function(--[[int]] handle)return native_invoker.unified_bool(handle, 0x2C42340F916C5930, "i")end - PROCGRASS_ENABLE_AMBSCALESCAN=--[[void]] function()return native_invoker.unified_void(0x14FC5833464340A8, "")end - PROCGRASS_DISABLE_AMBSCALESCAN=--[[void]] function()return native_invoker.unified_void(0x0218BA067D249DEA, "")end - DISABLE_PROCOBJ_CREATION=--[[void]] function()return native_invoker.unified_void(0x1612C45F9E3E0D44, "")end - ENABLE_PROCOBJ_CREATION=--[[void]] function()return native_invoker.unified_void(0x5DEBD9C4DC995692, "")end - GRASSBATCH_ENABLE_FLATTENING_EXT_IN_SPHERE=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[Any (int)]] p3,--[[float]] p4,--[[float]] p5,--[[float]] p6,--[[float]] scale)return native_invoker.unified_void(x, y, z, p3, p4, p5, p6, scale, 0xAAE9BE70EC7C69AB, "fffiffff")end - -- Wraps 0xAAE9BE70EC7C69AB with FLT_MAX as p7, Jenkins: 0x73E96210? - GRASSBATCH_ENABLE_FLATTENING_IN_SPHERE=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[float]] p4,--[[float]] p5,--[[float]] p6)return native_invoker.unified_void(x, y, z, radius, p4, p5, p6, 0x6D955F6A9E0295B1, "fffffff")end - GRASSBATCH_DISABLE_FLATTENING=--[[void]] function()return native_invoker.unified_void(0x302C91AB2D477F7E, "")end - CASCADE_SHADOWS_INIT_SESSION=--[[void]] function()return native_invoker.unified_void(0x03FC694AE06C5A20, "")end - CASCADE_SHADOWS_SET_CASCADE_BOUNDS=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[BOOL (bool)]] p6,--[[float]] p7)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, p7, 0xD2936CAB8B58FCBD, "ibffffbf")end - CASCADE_SHADOWS_SET_CASCADE_BOUNDS_SCALE=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0x5F0F3F56635809EF, "f")end - CASCADE_SHADOWS_SET_ENTITY_TRACKER_SCALE=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0x5E9DAF5A20F15908, "f")end - CASCADE_SHADOWS_SET_SPLIT_Z_EXP_WEIGHT=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0x36F6626459D91457, "f")end - CASCADE_SHADOWS_SET_BOUND_POSITION=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x259BA6D4E6F808F1, "i")end - -- When this is set to ON, shadows only draw as you get nearer. - -- - -- When OFF, they draw from a further distance. - CASCADE_SHADOWS_ENABLE_ENTITY_TRACKER=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x80ECBC0C856D3B0B, "b")end - CASCADE_SHADOWS_SET_SCREEN_SIZE_CHECK_ENABLED=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x25FC3E33A31AD0C9, "b")end - -- Possible values: - -- "CSM_ST_POINT" - -- "CSM_ST_LINEAR" - -- "CSM_ST_TWOTAP" - -- "CSM_ST_BOX3x3" - -- "CSM_ST_BOX4x4" - -- "CSM_ST_DITHER2_LINEAR" - -- "CSM_ST_CUBIC" - -- "CSM_ST_DITHER4" - -- "CSM_ST_DITHER16" - -- "CSM_ST_SOFT16" - -- "CSM_ST_DITHER16_RPDB" - -- "CSM_ST_POISSON16_RPDB_GNORM" - -- "CSM_ST_HIGHRES_BOX4x4" - -- "CSM_ST_CLOUDS_SIMPLE" - -- "CSM_ST_CLOUDS_LINEAR" - -- "CSM_ST_CLOUDS_TWOTAP" - -- "CSM_ST_CLOUDS_BOX3x3" - -- "CSM_ST_CLOUDS_BOX4x4" - -- "CSM_ST_CLOUDS_DITHER2_LINEAR" - -- "CSM_ST_CLOUDS_SOFT16" - -- "CSM_ST_CLOUDS_DITHER16_RPDB" - -- "CSM_ST_CLOUDS_POISSON16_RPDB_GNORM" - CASCADE_SHADOWS_SET_SHADOW_SAMPLE_TYPE=--[[void]] function(--[[string]] type)return native_invoker.unified_void(type, 0xB11D94BC55F41932, "s")end - CASCADE_SHADOWS_CLEAR_SHADOW_SAMPLE_TYPE=--[[void]] function()return native_invoker.unified_void(0x27CB772218215325, "")end - CASCADE_SHADOWS_SET_AIRCRAFT_MODE=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x6DDBF9DFFC4AC080, "b")end - CASCADE_SHADOWS_SET_DYNAMIC_DEPTH_MODE=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xD39D13C9FEBF0511, "b")end - CASCADE_SHADOWS_SET_DYNAMIC_DEPTH_VALUE=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0x02AC28F3A01FA04A, "f")end - CASCADE_SHADOWS_ENABLE_FREEZER=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x0AE73D8DF3A762B2, "b")end - WATER_REFLECTION_SET_SCRIPT_OBJECT_VISIBILITY=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xCA465D9CC0D231BA, "i")end - GOLF_TRAIL_SET_ENABLED=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xA51C4B86B71652AE, "b")end - -- p8 seems to always be false. - GOLF_TRAIL_SET_PATH=--[[void]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[float]] p6,--[[float]] p7,--[[BOOL (bool)]] p8)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, p7, p8, 0x312342E1A4874F3F, "ffffffffb")end - GOLF_TRAIL_SET_RADIUS=--[[void]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2)return native_invoker.unified_void(p0, p1, p2, 0x2485D34E50A22E84, "fff")end - GOLF_TRAIL_SET_COLOUR=--[[void]] function(--[[int]] p0,--[[int]] p1,--[[int]] p2,--[[int]] p3,--[[int]] p4,--[[int]] p5,--[[int]] p6,--[[int]] p7,--[[int]] p8,--[[int]] p9,--[[int]] p10,--[[int]] p11)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, 0x12995F2E53FFA601, "iiiiiiiiiiii")end - GOLF_TRAIL_SET_TESSELLATION=--[[void]] function(--[[int]] p0,--[[int]] p1)return native_invoker.unified_void(p0, p1, 0xDBAA5EC848BA2D46, "ii")end - GOLF_TRAIL_SET_FIXED_CONTROL_POINT_ENABLE=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xC0416B061F2B7E5E, "b")end - -- 12 matches across 4 scripts. All 4 scripts were job creators. - -- - -- type ranged from 0 - 2. - -- p4 was always 0.2f. Likely scale. - -- assuming p5 - p8 is RGBA, the graphic is always yellow (255, 255, 0, 255). - -- - -- Tested but noticed nothing. - GOLF_TRAIL_SET_FIXED_CONTROL_POINT=--[[void]] function(--[[int]] type,--[[float]] xPos,--[[float]] yPos,--[[float]] zPos,--[[float]] p4,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha)return native_invoker.unified_void(type, xPos, yPos, zPos, p4, red, green, blue, alpha, 0xB1BB03742917A5D6, "iffffiiii")end - -- Only appeared in Golf & Golf_mp. Parameters were all ptrs - GOLF_TRAIL_SET_SHADER_PARAMS=--[[void]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0x9CFDD90B2B844BF7, "fffff")end - GOLF_TRAIL_SET_FACING=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x06F761EA47C1D3ED, "b")end - GOLF_TRAIL_GET_MAX_HEIGHT=--[[float]] function()return native_invoker.unified_float(0xA4819F5E23E2FFAD, "")end - GOLF_TRAIL_GET_VISUAL_CONTROL_POINT=--[[Vector3 (vector3)]] function(--[[int]] p0)return native_invoker.unified_vector3(p0, 0xA4664972A9B8F8BA, "i")end - -- Toggles Heatvision on/off. - SET_SEETHROUGH=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x7E08924259E08CE0, "b")end - GET_USINGSEETHROUGH=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x44B80ABAB9D80BD3, "")end - SEETHROUGH_RESET=--[[void]] function()return native_invoker.unified_void(0x70A64C0234EF522C, "")end - SEETHROUGH_SET_FADE_STARTDISTANCE=--[[void]] function(--[[float]] distance)return native_invoker.unified_void(distance, 0xA78DE25577300BA1, "f")end - SEETHROUGH_SET_FADE_ENDDISTANCE=--[[void]] function(--[[float]] distance)return native_invoker.unified_void(distance, 0x9D75795B9DC6EBBF, "f")end - SEETHROUGH_GET_MAX_THICKNESS=--[[float]] function()return native_invoker.unified_float(0x43DBAE39626CE83F, "")end - -- 0.0 = you will not be able to see people behind the walls. 50.0 and more = you will see everyone through the walls. More value is "better" view. See https://gfycat.com/FirmFlippantGourami - -- min: 1.0 - -- max: 10000.0 - SEETHROUGH_SET_MAX_THICKNESS=--[[void]] function(--[[float]] thickness)return native_invoker.unified_void(thickness, 0x0C8FAC83902A62DF, "f")end - SEETHROUGH_SET_NOISE_MIN=--[[void]] function(--[[float]] amount)return native_invoker.unified_void(amount, 0xFF5992E1C9E65D05, "f")end - SEETHROUGH_SET_NOISE_MAX=--[[void]] function(--[[float]] amount)return native_invoker.unified_void(amount, 0xFEBFBFDFB66039DE, "f")end - SEETHROUGH_SET_HILIGHT_INTENSITY=--[[void]] function(--[[float]] intensity)return native_invoker.unified_void(intensity, 0x19E50EB6E33E1D28, "f")end - SEETHROUGH_SET_HIGHLIGHT_NOISE=--[[void]] function(--[[float]] noise)return native_invoker.unified_void(noise, 0x1636D7FC127B10D2, "f")end - -- min: 0.0 - -- max: 0.75 - SEETHROUGH_SET_HEATSCALE=--[[void]] function(--[[int]] index,--[[float]] heatScale)return native_invoker.unified_void(index, heatScale, 0xD7D0B00177485411, "if")end - SEETHROUGH_SET_COLOR_NEAR=--[[void]] function(--[[int]] red,--[[int]] green,--[[int]] blue)return native_invoker.unified_void(red, green, blue, 0x1086127B3A63505E, "iii")end - -- Setter for GET_MOTIONBLUR_MAX_VEL_SCALER - SET_MOTIONBLUR_MAX_VEL_SCALER=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0xB3C641F3630BF6DA, "f")end - -- Getter for SET_MOTIONBLUR_MAX_VEL_SCALER - GET_MOTIONBLUR_MAX_VEL_SCALER=--[[float]] function()return native_invoker.unified_float(0xE59343E9E96529E7, "")end - SET_FORCE_MOTIONBLUR=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x6A51F78772175A51, "b")end - TOGGLE_PLAYER_DAMAGE_OVERLAY=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xE63D7C6EECECB66B, "b")end - -- Sets an value related to timecycles. - RESET_ADAPTATION=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0xE3E2C1B4C59DBC77, "i")end - -- time in ms to transition to fully blurred screen - TRIGGER_SCREENBLUR_FADE_IN=--[[BOOL (bool)]] function(--[[float]] transitionTime)return native_invoker.unified_bool(transitionTime, 0xA328A24AAA6B7FDC, "f")end - -- time in ms to transition from fully blurred to normal - TRIGGER_SCREENBLUR_FADE_OUT=--[[BOOL (bool)]] function(--[[float]] transitionTime)return native_invoker.unified_bool(transitionTime, 0xEFACC8AEF94430D5, "f")end - DISABLE_SCREENBLUR_FADE=--[[void]] function()return native_invoker.unified_void(0xDE81239437E8C5A8, "")end - GET_SCREENBLUR_FADE_CURRENT_TIME=--[[float]] function()return native_invoker.unified_float(0x5CCABFFCA31DDE33, "")end - -- Returns whether screen transition to blur/from blur is running. - IS_SCREENBLUR_FADE_RUNNING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x7B226C785A52A0A9, "")end - TOGGLE_PAUSED_RENDERPHASES=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xDFC252D8A3E15AB7, "b")end - GET_TOGGLE_PAUSED_RENDERPHASES_STATUS=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xEB3DAC2C86001E5E, "")end - RESET_PAUSED_RENDERPHASES=--[[void]] function()return native_invoker.unified_void(0xE1C8709406F2C41C, "")end - GRAB_PAUSEMENU_OWNERSHIP=--[[void]] function()return native_invoker.unified_void(0x851CD923176EBA7C, "")end - SET_HIDOF_OVERRIDE=--[[void]] function(--[[BOOL (bool)]] p0,--[[BOOL (bool)]] p1,--[[float]] nearplaneOut,--[[float]] nearplaneIn,--[[float]] farplaneOut,--[[float]] farplaneIn)return native_invoker.unified_void(p0, p1, nearplaneOut, nearplaneIn, farplaneOut, farplaneIn, 0xBA3D65906822BED5, "bbffff")end - SET_LOCK_ADAPTIVE_DOF_DISTANCE=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xB569F41F3E7E83A4, "b")end - PHONEPHOTOEDITOR_TOGGLE=--[[BOOL (bool)]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_bool(p0, 0x7AC24EAB6D74118D, "b")end - PHONEPHOTOEDITOR_IS_ACTIVE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xBCEDB009461DA156, "")end - PHONEPHOTOEDITOR_SET_FRAME_TXD=--[[BOOL (bool)]] function(--[[string]] textureDict,--[[BOOL (bool)]] p1)return native_invoker.unified_bool(textureDict, p1, 0x27FEB5254759CDE3, "sb")end - -- GRAPHICS::START_PARTICLE_FX_NON_LOOPED_AT_COORD("scr_paleto_roof_impact", -140.8576f, 6420.789f, 41.1391f, 0f, 0f, 267.3957f, 0x3F800000, 0, 0, 0); - -- - -- Axis - Invert Axis Flags - -- - -- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - -- - -- - -- ------------------------------------------------------------------- - -- C# - -- - -- Function.Call(Hash.START_PARTICLE_FX_NON_LOOPED_AT_COORD, = you are calling this function. - -- - -- char *effectname = This is an in-game effect name, for e.g. "scr_fbi4_trucks_crash" is used to give the effects when truck crashes etc - -- - -- float x, y, z pos = this one is Simple, you just have to declare, where do you want this effect to take place at, so declare the ordinates - -- - -- float xrot, yrot, zrot = Again simple? just mention the value in case if you want the effect to rotate. - -- - -- float scale = is declare the scale of the effect, this may vary as per the effects for e.g 1.0f - -- - -- bool xaxis, yaxis, zaxis = To bool the axis values. - -- - -- example: - -- Function.Call(Hash.START_PARTICLE_FX_NON_LOOPED_AT_COORD, "scr_fbi4_trucks_crash", GTA.Game.Player.Character.Position.X, GTA.Game.Player.Character.Position.Y, GTA.Game.Player.Character.Position.Z + 4f, 0, 0, 0, 5.5f, 0, 0, 0); - START_PARTICLE_FX_NON_LOOPED_AT_COORD=--[[BOOL (bool)]] function(--[[string]] effectName,--[[float]] xPos,--[[float]] yPos,--[[float]] zPos,--[[float]] xRot,--[[float]] yRot,--[[float]] zRot,--[[float]] scale,--[[BOOL (bool)]] xAxis,--[[BOOL (bool)]] yAxis,--[[BOOL (bool)]] zAxis)return native_invoker.unified_bool(effectName, xPos, yPos, zPos, xRot, yRot, zRot, scale, xAxis, yAxis, zAxis, 0x25129531F77B9ED3, "sfffffffbbb")end - -- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - START_NETWORKED_PARTICLE_FX_NON_LOOPED_AT_COORD=--[[BOOL (bool)]] function(--[[string]] effectName,--[[float]] xPos,--[[float]] yPos,--[[float]] zPos,--[[float]] xRot,--[[float]] yRot,--[[float]] zRot,--[[float]] scale,--[[BOOL (bool)]] xAxis,--[[BOOL (bool)]] yAxis,--[[BOOL (bool)]] zAxis,--[[BOOL (bool)]] p11)return native_invoker.unified_bool(effectName, xPos, yPos, zPos, xRot, yRot, zRot, scale, xAxis, yAxis, zAxis, p11, 0xF56B8137DF10135D, "sfffffffbbbb")end - -- GRAPHICS::START_PARTICLE_FX_NON_LOOPED_ON_PED_BONE("scr_sh_bong_smoke", PLAYER::PLAYER_PED_ID(), -0.025f, 0.13f, 0f, 0f, 0f, 0f, 31086, 0x3F800000, 0, 0, 0); - -- - -- Axis - Invert Axis Flags - -- - -- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - START_PARTICLE_FX_NON_LOOPED_ON_PED_BONE=--[[BOOL (bool)]] function(--[[string]] effectName,--[[Ped (int)]] ped,--[[float]] offsetX,--[[float]] offsetY,--[[float]] offsetZ,--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ,--[[int]] boneIndex,--[[float]] scale,--[[BOOL (bool)]] axisX,--[[BOOL (bool)]] axisY,--[[BOOL (bool)]] axisZ)return native_invoker.unified_bool(effectName, ped, offsetX, offsetY, offsetZ, rotX, rotY, rotZ, boneIndex, scale, axisX, axisY, axisZ, 0x0E7E72961BA18619, "siffffffifbbb")end - -- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - START_NETWORKED_PARTICLE_FX_NON_LOOPED_ON_PED_BONE=--[[BOOL (bool)]] function(--[[string]] effectName,--[[Ped (int)]] ped,--[[float]] offsetX,--[[float]] offsetY,--[[float]] offsetZ,--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ,--[[int]] boneIndex,--[[float]] scale,--[[BOOL (bool)]] axisX,--[[BOOL (bool)]] axisY,--[[BOOL (bool)]] axisZ)return native_invoker.unified_bool(effectName, ped, offsetX, offsetY, offsetZ, rotX, rotY, rotZ, boneIndex, scale, axisX, axisY, axisZ, 0xA41B6A43642AC2CF, "siffffffifbbb")end - -- Starts a particle effect on an entity for example your player. - -- - -- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - -- - -- Example: - -- C#: - -- Function.Call(Hash.REQUEST_NAMED_PTFX_ASSET, "scr_rcbarry2"); Function.Call(Hash.USE_PARTICLE_FX_ASSET, "scr_rcbarry2"); Function.Call(Hash.START_PARTICLE_FX_NON_LOOPED_ON_ENTITY, "scr_clown_appears", Game.Player.Character, 0.0, 0.0, -0.5, 0.0, 0.0, 0.0, 1.0, false, false, false); - -- - -- Internally this calls the same function as GRAPHICS::START_PARTICLE_FX_NON_LOOPED_ON_PED_BONE - -- however it uses -1 for the specified bone index, so it should be possible to start a non looped fx on an entity bone using that native - -- - -- -can confirm START_PARTICLE_FX_NON_LOOPED_ON_PED_BONE does NOT work on vehicle bones. - START_PARTICLE_FX_NON_LOOPED_ON_ENTITY=--[[BOOL (bool)]] function(--[[string]] effectName,--[[Entity (int)]] entity,--[[float]] offsetX,--[[float]] offsetY,--[[float]] offsetZ,--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ,--[[float]] scale,--[[BOOL (bool)]] axisX,--[[BOOL (bool)]] axisY,--[[BOOL (bool)]] axisZ)return native_invoker.unified_bool(effectName, entity, offsetX, offsetY, offsetZ, rotX, rotY, rotZ, scale, axisX, axisY, axisZ, 0x0D53A3B8DA0809D2, "sifffffffbbb")end - -- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - START_NETWORKED_PARTICLE_FX_NON_LOOPED_ON_ENTITY=--[[BOOL (bool)]] function(--[[string]] effectName,--[[Entity (int)]] entity,--[[float]] offsetX,--[[float]] offsetY,--[[float]] offsetZ,--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ,--[[float]] scale,--[[BOOL (bool)]] axisX,--[[BOOL (bool)]] axisY,--[[BOOL (bool)]] axisZ)return native_invoker.unified_bool(effectName, entity, offsetX, offsetY, offsetZ, rotX, rotY, rotZ, scale, axisX, axisY, axisZ, 0xC95EB1DB6E92113D, "sifffffffbbb")end - -- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - START_PARTICLE_FX_NON_LOOPED_ON_ENTITY_BONE=--[[BOOL (bool)]] function(--[[string]] effectName,--[[Entity (int)]] entity,--[[float]] offsetX,--[[float]] offsetY,--[[float]] offsetZ,--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ,--[[int]] boneIndex,--[[float]] scale,--[[BOOL (bool)]] axisX,--[[BOOL (bool)]] axisY,--[[BOOL (bool)]] axisZ)return native_invoker.unified_bool(effectName, entity, offsetX, offsetY, offsetZ, rotX, rotY, rotZ, boneIndex, scale, axisX, axisY, axisZ, 0x02B1F2A72E0F5325, "siffffffifbbb")end - -- only works on some fx's, not networked - SET_PARTICLE_FX_NON_LOOPED_COLOUR=--[[void]] function(--[[float]] r,--[[float]] g,--[[float]] b)return native_invoker.unified_void(r, g, b, 0x26143A59EF48B262, "fff")end - -- Usage example for C#: - -- - -- Function.Call(Hash.SET_PARTICLE_FX_NON_LOOPED_ALPHA, new InputArgument[] { 0.1f }); - -- - -- Note: the argument alpha ranges from 0.0f-1.0f ! - SET_PARTICLE_FX_NON_LOOPED_ALPHA=--[[void]] function(--[[float]] alpha)return native_invoker.unified_void(alpha, 0x77168D722C58B2FC, "f")end - SET_PARTICLE_FX_NON_LOOPED_SCALE=--[[void]] function(--[[float]] scale)return native_invoker.unified_void(scale, 0xB7EF5850C39FABCA, "f")end - SET_PARTICLE_FX_NON_LOOPED_EMITTER_SIZE=--[[void]] function(--[[float]] p0,--[[float]] p1,--[[float]] scale)return native_invoker.unified_void(p0, p1, scale, 0x1E2E01C00837D26E, "fff")end - -- Used only once in the scripts (taxi_clowncar) - SET_PARTICLE_FX_FORCE_VEHICLE_INTERIOR=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x8CDE909A0370BB3A, "b")end - -- GRAPHICS::START_PARTICLE_FX_LOOPED_AT_COORD("scr_fbi_falling_debris", 93.7743f, -749.4572f, 70.86904f, 0f, 0f, 0f, 0x3F800000, 0, 0, 0, 0) - -- - -- - -- p11 seems to be always 0 - -- - -- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - START_PARTICLE_FX_LOOPED_AT_COORD=--[[int]] function(--[[string]] effectName,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] xRot,--[[float]] yRot,--[[float]] zRot,--[[float]] scale,--[[BOOL (bool)]] xAxis,--[[BOOL (bool)]] yAxis,--[[BOOL (bool)]] zAxis,--[[BOOL (bool)]] p11)return native_invoker.unified_int(effectName, x, y, z, xRot, yRot, zRot, scale, xAxis, yAxis, zAxis, p11, 0xE184F4F0DC5910E7, "sfffffffbbbb")end - -- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - START_PARTICLE_FX_LOOPED_ON_PED_BONE=--[[int]] function(--[[string]] effectName,--[[Ped (int)]] ped,--[[float]] xOffset,--[[float]] yOffset,--[[float]] zOffset,--[[float]] xRot,--[[float]] yRot,--[[float]] zRot,--[[int]] boneIndex,--[[float]] scale,--[[BOOL (bool)]] xAxis,--[[BOOL (bool)]] yAxis,--[[BOOL (bool)]] zAxis)return native_invoker.unified_int(effectName, ped, xOffset, yOffset, zOffset, xRot, yRot, zRot, boneIndex, scale, xAxis, yAxis, zAxis, 0xF28DA9F38CD1787C, "siffffffifbbb")end - -- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - START_PARTICLE_FX_LOOPED_ON_ENTITY=--[[int]] function(--[[string]] effectName,--[[Entity (int)]] entity,--[[float]] xOffset,--[[float]] yOffset,--[[float]] zOffset,--[[float]] xRot,--[[float]] yRot,--[[float]] zRot,--[[float]] scale,--[[BOOL (bool)]] xAxis,--[[BOOL (bool)]] yAxis,--[[BOOL (bool)]] zAxis)return native_invoker.unified_int(effectName, entity, xOffset, yOffset, zOffset, xRot, yRot, zRot, scale, xAxis, yAxis, zAxis, 0x1AE42C1660FD6517, "sifffffffbbb")end - -- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - START_PARTICLE_FX_LOOPED_ON_ENTITY_BONE=--[[int]] function(--[[string]] effectName,--[[Entity (int)]] entity,--[[float]] xOffset,--[[float]] yOffset,--[[float]] zOffset,--[[float]] xRot,--[[float]] yRot,--[[float]] zRot,--[[int]] boneIndex,--[[float]] scale,--[[BOOL (bool)]] xAxis,--[[BOOL (bool)]] yAxis,--[[BOOL (bool)]] zAxis)return native_invoker.unified_int(effectName, entity, xOffset, yOffset, zOffset, xRot, yRot, zRot, boneIndex, scale, xAxis, yAxis, zAxis, 0xC6EB449E33977F0B, "siffffffifbbb")end - -- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - START_NETWORKED_PARTICLE_FX_LOOPED_ON_ENTITY=--[[int]] function(--[[string]] effectName,--[[Entity (int)]] entity,--[[float]] xOffset,--[[float]] yOffset,--[[float]] zOffset,--[[float]] xRot,--[[float]] yRot,--[[float]] zRot,--[[float]] scale,--[[BOOL (bool)]] xAxis,--[[BOOL (bool)]] yAxis,--[[BOOL (bool)]] zAxis,--[[float]] r,--[[float]] g,--[[float]] b,--[[float]] a)return native_invoker.unified_int(effectName, entity, xOffset, yOffset, zOffset, xRot, yRot, zRot, scale, xAxis, yAxis, zAxis, r, g, b, a, 0x6F60E89A7B64EE1D, "sifffffffbbbffff")end - -- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - START_NETWORKED_PARTICLE_FX_LOOPED_ON_ENTITY_BONE=--[[int]] function(--[[string]] effectName,--[[Entity (int)]] entity,--[[float]] xOffset,--[[float]] yOffset,--[[float]] zOffset,--[[float]] xRot,--[[float]] yRot,--[[float]] zRot,--[[int]] boneIndex,--[[float]] scale,--[[BOOL (bool)]] xAxis,--[[BOOL (bool)]] yAxis,--[[BOOL (bool)]] zAxis,--[[float]] r,--[[float]] g,--[[float]] b,--[[float]] a)return native_invoker.unified_int(effectName, entity, xOffset, yOffset, zOffset, xRot, yRot, zRot, boneIndex, scale, xAxis, yAxis, zAxis, r, g, b, a, 0xDDE23F30CC5A0F03, "siffffffifbbbffff")end - -- p1 is always 0 in the native scripts - STOP_PARTICLE_FX_LOOPED=--[[void]] function(--[[int]] ptfxHandle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(ptfxHandle, p1, 0x8F75998877616996, "ib")end - REMOVE_PARTICLE_FX=--[[void]] function(--[[int]] ptfxHandle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(ptfxHandle, p1, 0xC401503DFE8D53CF, "ib")end - REMOVE_PARTICLE_FX_FROM_ENTITY=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0xB8FEAEEBCC127425, "i")end - REMOVE_PARTICLE_FX_IN_RANGE=--[[void]] function(--[[float]] X,--[[float]] Y,--[[float]] Z,--[[float]] radius)return native_invoker.unified_void(X, Y, Z, radius, 0xDD19FA1C6D657305, "ffff")end - FORCE_PARTICLE_FX_IN_VEHICLE_INTERIOR=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xBA0127DA25FD54C9, "ii")end - DOES_PARTICLE_FX_LOOPED_EXIST=--[[BOOL (bool)]] function(--[[int]] ptfxHandle)return native_invoker.unified_bool(ptfxHandle, 0x74AFEF0D2E1E409B, "i")end - SET_PARTICLE_FX_LOOPED_OFFSETS=--[[void]] function(--[[int]] ptfxHandle,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ)return native_invoker.unified_void(ptfxHandle, x, y, z, rotX, rotY, rotZ, 0xF7DDEBEC43483C43, "iffffff")end - SET_PARTICLE_FX_LOOPED_EVOLUTION=--[[void]] function(--[[int]] ptfxHandle,--[[string]] propertyName,--[[float]] amount,--[[BOOL (bool)]] noNetwork)return native_invoker.unified_void(ptfxHandle, propertyName, amount, noNetwork, 0x5F0C4B5B1C393BE2, "isfb")end - -- only works on some fx's - -- - -- p4 = 0 - SET_PARTICLE_FX_LOOPED_COLOUR=--[[void]] function(--[[int]] ptfxHandle,--[[float]] r,--[[float]] g,--[[float]] b,--[[BOOL (bool)]] p4)return native_invoker.unified_void(ptfxHandle, r, g, b, p4, 0x7F8F65877F88783B, "ifffb")end - SET_PARTICLE_FX_LOOPED_ALPHA=--[[void]] function(--[[int]] ptfxHandle,--[[float]] alpha)return native_invoker.unified_void(ptfxHandle, alpha, 0x726845132380142E, "if")end - SET_PARTICLE_FX_LOOPED_SCALE=--[[void]] function(--[[int]] ptfxHandle,--[[float]] scale)return native_invoker.unified_void(ptfxHandle, scale, 0xB44250AAA456492D, "if")end - SET_PARTICLE_FX_LOOPED_FAR_CLIP_DIST=--[[void]] function(--[[int]] ptfxHandle,--[[float]] range)return native_invoker.unified_void(ptfxHandle, range, 0xDCB194B85EF7B541, "if")end - _SET_PARTICLE_FX_LOOPED_CAMERA_BIAS=--[[void]] function(--[[int]] ptfxHandle,--[[float]] p1)return native_invoker.unified_void(ptfxHandle, p1, 0x4100BF0346A8D2C3, "if")end - SET_PARTICLE_FX_CAM_INSIDE_VEHICLE=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xEEC4047028426510, "b")end - SET_PARTICLE_FX_CAM_INSIDE_NONPLAYER_VEHICLE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0xACEE6F360FC1F6B6, "ib")end - SET_PARTICLE_FX_SHOOTOUT_BOAT=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x96EF97DAEB89BEF5, "i")end - CLEAR_PARTICLE_FX_SHOOTOUT_BOAT=--[[void]] function()return native_invoker.unified_void(0x2A251AA48B2B46DB, "")end - SET_PARTICLE_FX_BLOOD_SCALE=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x908311265D42A820, "i")end - DISABLE_IN_WATER_PTFX=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xCFD16F0DB5A3535C, "b")end - DISABLE_DOWNWASH_PTFX=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x5F6DF3D92271E8A1, "b")end - SET_PARTICLE_FX_SLIPSTREAM_LODRANGE_SCALE=--[[void]] function(--[[float]] scale)return native_invoker.unified_void(scale, 0x2B40A97646381508, "f")end - -- Creates cartoon effect when Michel smokes the weed - ENABLE_CLOWN_BLOOD_VFX=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xD821490579791273, "b")end - -- Creates a motion-blur sort of effect, this native does not seem to work, however by using the `START_SCREEN_EFFECT` native with `DrugsMichaelAliensFight` as the effect parameter, you should be able to get the effect. - ENABLE_ALIEN_BLOOD_VFX=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x9DCE1F0F78260875, "b")end - SET_PARTICLE_FX_BULLET_IMPACT_SCALE=--[[void]] function(--[[float]] scale)return native_invoker.unified_void(scale, 0x27E32866E9A5C416, "f")end - SET_PARTICLE_FX_BULLET_IMPACT_LODRANGE_SCALE=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0xBB90E12CAC1DAB25, "f")end - SET_PARTICLE_FX_BULLET_TRACE_NO_ANGLE_REJECT=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xCA4AE345A153D573, "b")end - SET_PARTICLE_FX_BANG_SCRAPE_LODRANGE_SCALE=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0x54E22EA2C1956A8D, "f")end - SET_PARTICLE_FX_FOOT_LODRANGE_SCALE=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0x949F397A288B28B3, "f")end - -- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - SET_PARTICLE_FX_FOOT_OVERRIDE_NAME=--[[void]] function(--[[string]] p0)return native_invoker.unified_void(p0, 0xBA3D194057C79A7B, "s")end - SET_SKIDMARK_RANGE_SCALE=--[[void]] function(--[[float]] scale)return native_invoker.unified_void(scale, 0x5DBF05DB5926D089, "f")end - SET_PTFX_FORCE_VEHICLE_INTERIOR_FLAG=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xC6730E0D14E50703, "i")end - REGISTER_POSTFX_BULLET_IMPACT=--[[void]] function(--[[float]] weaponWorldPosX,--[[float]] weaponWorldPosY,--[[float]] weaponWorldPosZ,--[[float]] intensity)return native_invoker.unified_void(weaponWorldPosX, weaponWorldPosY, weaponWorldPosZ, intensity, 0x170911F37F646F29, "ffff")end - FORCE_POSTFX_BULLET_IMPACTS_AFTER_HUD=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x9B079E5221D984D3, "b")end - -- From the b678d decompiled scripts: - -- - -- GRAPHICS::USE_PARTICLE_FX_ASSET("FM_Mission_Controler"); - -- GRAPHICS::USE_PARTICLE_FX_ASSET("scr_apartment_mp"); - -- GRAPHICS::USE_PARTICLE_FX_ASSET("scr_indep_fireworks"); - -- GRAPHICS::USE_PARTICLE_FX_ASSET("scr_mp_cig_plane"); - -- GRAPHICS::USE_PARTICLE_FX_ASSET("scr_mp_creator"); - -- GRAPHICS::USE_PARTICLE_FX_ASSET("scr_ornate_heist"); - -- GRAPHICS::USE_PARTICLE_FX_ASSET("scr_prison_break_heist_station"); - -- - -- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - USE_PARTICLE_FX_ASSET=--[[void]] function(--[[string]] name)return native_invoker.unified_void(name, 0x6C38AF3693A69A91, "s")end - -- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - SET_PARTICLE_FX_OVERRIDE=--[[void]] function(--[[string]] oldAsset,--[[string]] newAsset)return native_invoker.unified_void(oldAsset, newAsset, 0xEA1E2D93F6F75ED9, "ss")end - -- Resets the effect of SET_PARTICLE_FX_OVERRIDE - -- - -- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - RESET_PARTICLE_FX_OVERRIDE=--[[void]] function(--[[string]] name)return native_invoker.unified_void(name, 0x89C8553DD3274AAE, "s")end - -- Returns ptfxHandle - -- effectName: scr_sv_drag_burnout - _START_VEHICLE_PARTICLE_FX_LOOPED=--[[int]] function(--[[Vehicle (int)]] vehicle,--[[string]] effectName,--[[BOOL (bool)]] frontBack,--[[BOOL (bool)]] leftRight,--[[BOOL (bool)]] localOnly)return native_invoker.unified_int(vehicle, effectName, frontBack, leftRight, localOnly, 0xDF269BE2909E181A, "isbbb")end - SET_WEATHER_PTFX_USE_OVERRIDE_SETTINGS=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xA46B73FAA3460AE1, "b")end - SET_WEATHER_PTFX_OVERRIDE_CURR_LEVEL=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0xF78B803082D4386F, "f")end - WASH_DECALS_IN_RANGE=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] range,--[[float]] p4)return native_invoker.unified_void(x, y, z, range, p4, 0x9C30613D50A6ADEF, "fffff")end - WASH_DECALS_FROM_VEHICLE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] p1)return native_invoker.unified_void(vehicle, p1, 0x5B712761429DBC14, "if")end - -- Fades nearby decals within the range specified - FADE_DECALS_IN_RANGE=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] p3,--[[float]] p4)return native_invoker.unified_void(x, y, z, p3, p4, 0xD77EDADB0420E6E0, "fffff")end - -- Removes all decals in range from a position, it includes the bullet holes, blood pools, petrol... - REMOVE_DECALS_IN_RANGE=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] range)return native_invoker.unified_void(x, y, z, range, 0x5D6B2D4830A67C62, "ffff")end - REMOVE_DECALS_FROM_OBJECT=--[[void]] function(--[[Object (int)]] obj)return native_invoker.unified_void(obj, 0xCCF71CBDDF5B6CB9, "i")end - REMOVE_DECALS_FROM_OBJECT_FACING=--[[void]] function(--[[Object (int)]] obj,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(obj, x, y, z, 0xA6F6F70FDC6D144C, "ifff")end - REMOVE_DECALS_FROM_VEHICLE=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0xE91F1B65F2B48D57, "i")end - -- decal types: - -- - -- public enum DecalTypes - -- { - -- splatters_blood = 1010, - -- splatters_blood_dir = 1015, - -- splatters_blood_mist = 1017, - -- splatters_mud = 1020, - -- splatters_paint = 1030, - -- splatters_water = 1040, - -- splatters_water_hydrant = 1050, - -- splatters_blood2 = 1110, - -- weapImpact_metal = 4010, - -- weapImpact_concrete = 4020, - -- weapImpact_mattress = 4030, - -- weapImpact_mud = 4032, - -- weapImpact_wood = 4050, - -- weapImpact_sand = 4053, - -- weapImpact_cardboard = 4040, - -- weapImpact_melee_glass = 4100, - -- weapImpact_glass_blood = 4102, - -- weapImpact_glass_blood2 = 4104, - -- weapImpact_shotgun_paper = 4200, - -- weapImpact_shotgun_mattress, - -- weapImpact_shotgun_metal, - -- weapImpact_shotgun_wood, - -- weapImpact_shotgun_dirt, - -- weapImpact_shotgun_tvscreen, - -- weapImpact_shotgun_tvscreen2, - -- weapImpact_shotgun_tvscreen3, - -- weapImpact_melee_concrete = 4310, - -- weapImpact_melee_wood = 4312, - -- weapImpact_melee_metal = 4314, - -- burn1 = 4421, - -- burn2, - -- burn3, - -- burn4, - -- burn5, - -- bang_concrete_bang = 5000, - -- bang_concrete_bang2, - -- bang_bullet_bang, - -- bang_bullet_bang2 = 5004, - -- bang_glass = 5031, - -- bang_glass2, - -- solidPool_water = 9000, - -- solidPool_blood, - -- solidPool_oil, - -- solidPool_petrol, - -- solidPool_mud, - -- porousPool_water, - -- porousPool_blood, - -- porousPool_oil, - -- porousPool_petrol, - -- porousPool_mud, - -- porousPool_water_ped_drip, - -- liquidTrail_water = 9050 - -- } - ADD_DECAL=--[[int]] function(--[[int]] decalType,--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[float]] p4,--[[float]] p5,--[[float]] p6,--[[float]] p7,--[[float]] p8,--[[float]] p9,--[[float]] width,--[[float]] height,--[[float]] rCoef,--[[float]] gCoef,--[[float]] bCoef,--[[float]] opacity,--[[float]] timeout,--[[BOOL (bool)]] p17,--[[BOOL (bool)]] p18,--[[BOOL (bool)]] p19)return native_invoker.unified_int(decalType, posX, posY, posZ, p4, p5, p6, p7, p8, p9, width, height, rCoef, gCoef, bCoef, opacity, timeout, p17, p18, p19, 0xB302244A1839BDAD, "iffffffffffffffffbbb")end - ADD_PETROL_DECAL=--[[int]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] groundLvl,--[[float]] width,--[[float]] transparency)return native_invoker.unified_int(x, y, z, groundLvl, width, transparency, 0x4F5212C7AD880DF8, "ffffff")end - ADD_OIL_DECAL=--[[int]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] groundLvl,--[[float]] width,--[[float]] transparency)return native_invoker.unified_int(x, y, z, groundLvl, width, transparency, 0x126D7F89FE859A5E, "ffffff")end - START_PETROL_TRAIL_DECALS=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0x99AC7F0D8B9C893D, "f")end - ADD_PETROL_TRAIL_DECAL_INFO=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] p3)return native_invoker.unified_void(x, y, z, p3, 0x967278682CB6967A, "ffff")end - END_PETROL_TRAIL_DECALS=--[[void]] function()return native_invoker.unified_void(0x0A123435A26C36CD, "")end - REMOVE_DECAL=--[[void]] function(--[[int]] decal)return native_invoker.unified_void(decal, 0xED3F346429CCD659, "i")end - IS_DECAL_ALIVE=--[[BOOL (bool)]] function(--[[int]] decal)return native_invoker.unified_bool(decal, 0xC694D74949CAFD0C, "i")end - GET_DECAL_WASH_LEVEL=--[[float]] function(--[[int]] decal)return native_invoker.unified_float(decal, 0x323F647679A09103, "i")end - SET_DISABLE_PETROL_DECALS_IGNITING_THIS_FRAME=--[[void]] function()return native_invoker.unified_void(0xD9454B5752C857DC, "")end - SET_DISABLE_PETROL_DECALS_RECYCLING_THIS_FRAME=--[[void]] function()return native_invoker.unified_void(0x27CFB1B1E078CB2D, "")end - SET_DISABLE_DECAL_RENDERING_THIS_FRAME=--[[void]] function()return native_invoker.unified_void(0x4B5CFC83122DF602, "")end - GET_IS_PETROL_DECAL_IN_RANGE=--[[BOOL (bool)]] function(--[[float]] xCoord,--[[float]] yCoord,--[[float]] zCoord,--[[float]] radius)return native_invoker.unified_bool(xCoord, yCoord, zCoord, radius, 0x2F09F7976C512404, "ffff")end - PATCH_DECAL_DIFFUSE_MAP=--[[void]] function(--[[int]] decalType,--[[string]] textureDict,--[[string]] textureName)return native_invoker.unified_void(decalType, textureDict, textureName, 0x8A35C742130C6080, "iss")end - UNPATCH_DECAL_DIFFUSE_MAP=--[[void]] function(--[[int]] decalType)return native_invoker.unified_void(decalType, 0xB7ED70C49521A61D, "i")end - MOVE_VEHICLE_DECALS=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x84C8D7C2D30D3280, "ii")end - -- boneIndex is always chassis_dummy in the scripts. The x/y/z params are location relative to the chassis bone. - ADD_VEHICLE_CREW_EMBLEM=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[Ped (int)]] ped,--[[int]] boneIndex,--[[float]] x1,--[[float]] x2,--[[float]] x3,--[[float]] y1,--[[float]] y2,--[[float]] y3,--[[float]] z1,--[[float]] z2,--[[float]] z3,--[[float]] scale,--[[Any (int)]] p13,--[[int]] alpha)return native_invoker.unified_bool(vehicle, ped, boneIndex, x1, x2, x3, y1, y2, y3, z1, z2, z3, scale, p13, alpha, 0x428BDCB9DA58DA53, "iiiffffffffffii")end - ABORT_VEHICLE_CREW_EMBLEM_REQUEST=--[[BOOL (bool)]] function(--[[int* (pointer)]] p0)return native_invoker.unified_bool(p0, 0x82ACC484FFA3B05F, "p")end - REMOVE_VEHICLE_CREW_EMBLEM=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] p1)return native_invoker.unified_void(vehicle, p1, 0xD2300034310557E4, "ii")end - GET_VEHICLE_CREW_EMBLEM_REQUEST_STATE=--[[int]] function(--[[Vehicle (int)]] vehicle,--[[int]] p1)return native_invoker.unified_int(vehicle, p1, 0xFE26117A5841B2FF, "ii")end - DOES_VEHICLE_HAVE_CREW_EMBLEM=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[int]] p1)return native_invoker.unified_bool(vehicle, p1, 0x060D935D3981A275, "ii")end - DISABLE_COMPOSITE_SHOTGUN_DECALS=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x0E4299C549F0D1F1, "b")end - DISABLE_SCUFF_DECALS=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x02369D5C8A51FDCF, "b")end - SET_DECAL_BULLET_IMPACT_RANGE_SCALE=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0x46D1A61A21F566FC, "f")end - OVERRIDE_INTERIOR_SMOKE_NAME=--[[void]] function(--[[string]] name)return native_invoker.unified_void(name, 0x2A2A52824DB96700, "s")end - OVERRIDE_INTERIOR_SMOKE_LEVEL=--[[void]] function(--[[float]] level)return native_invoker.unified_void(level, 0x1600FD8CF72EBC12, "f")end - OVERRIDE_INTERIOR_SMOKE_END=--[[void]] function()return native_invoker.unified_void(0xEFB55E7C25D3B3BE, "")end - -- Used with 'NG_filmnoir_BW{01,02}' timecycles and the "NOIR_FILTER_SOUNDS" audioref. - REGISTER_NOIR_LENS_EFFECT=--[[void]] function()return native_invoker.unified_void(0xA44FF770DFBC5DAE, "")end - DISABLE_VEHICLE_DISTANTLIGHTS=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xC9F98AC1884E73A2, "b")end - RENDER_SHADOWED_LIGHTS_WITH_NO_SHADOWS=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x03300B57FCAC6DDB, "b")end - REQUEST_EARLY_LIGHT_CHECK=--[[void]] function()return native_invoker.unified_void(0x98EDF76A7271E4F2, "")end - -- Forces footstep tracks on all surfaces. - USE_SNOW_FOOT_VFX_WHEN_UNSHELTERED=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xAEEDAD1420C65CC0, "b")end - _FORCE_ALLOW_SNOW_FOOT_VFX_ON_ICE=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xA342A3763B3AFB6C, "b")end - -- Forces vehicle trails on all surfaces. - USE_SNOW_WHEEL_VFX_WHEN_UNSHELTERED=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x4CC7F0FEA5283FE0, "b")end - DISABLE_REGION_VFX=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xEFD97FF47B745B8D, "i")end - _FORCE_GROUND_SNOW_PASS=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x6E9EF3A33C8899F8, "b")end - -- Only one match in the scripts: - -- - -- GRAPHICS::PRESET_INTERIOR_AMBIENT_CACHE("int_carrier_hanger"); - PRESET_INTERIOR_AMBIENT_CACHE=--[[void]] function(--[[string]] timecycleModifierName)return native_invoker.unified_void(timecycleModifierName, 0xD7021272EB0A451E, "s")end - -- Loads the specified timecycle modifier. Modifiers are defined separately in another file (e.g. "timecycle_mods_1.xml") - -- - -- Parameters: - -- modifierName - The modifier to load (e.g. "V_FIB_IT3", "scanline_cam", etc.) - -- - -- Full list of timecycle modifiers by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/timecycleModifiers.json - SET_TIMECYCLE_MODIFIER=--[[void]] function(--[[string]] modifierName)return native_invoker.unified_void(modifierName, 0x2C933ABF17A1DF41, "s")end - SET_TIMECYCLE_MODIFIER_STRENGTH=--[[void]] function(--[[float]] strength)return native_invoker.unified_void(strength, 0x82E7FFCD5B2326B3, "f")end - -- Full list of timecycle modifiers by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/timecycleModifiers.json - SET_TRANSITION_TIMECYCLE_MODIFIER=--[[void]] function(--[[string]] modifierName,--[[float]] transition)return native_invoker.unified_void(modifierName, transition, 0x3BCF567485E1971C, "sf")end - SET_TRANSITION_OUT_OF_TIMECYCLE_MODIFIER=--[[void]] function(--[[float]] strength)return native_invoker.unified_void(strength, 0x1CBA05AE7BD7EE05, "f")end - CLEAR_TIMECYCLE_MODIFIER=--[[void]] function()return native_invoker.unified_void(0x0F07E7745A236711, "")end - -- Only use for this in the PC scripts is: - -- - -- if (GRAPHICS::GET_TIMECYCLE_MODIFIER_INDEX() != -1) - GET_TIMECYCLE_MODIFIER_INDEX=--[[int]] function()return native_invoker.unified_int(0xFDF3D97C674AFB66, "")end - GET_TIMECYCLE_TRANSITION_MODIFIER_INDEX=--[[int]] function()return native_invoker.unified_int(0x459FD2C8D0AB78BC, "")end - GET_IS_TIMECYCLE_TRANSITIONING_OUT=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x98D18905BF723B99, "")end - PUSH_TIMECYCLE_MODIFIER=--[[void]] function()return native_invoker.unified_void(0x58F735290861E6B4, "")end - POP_TIMECYCLE_MODIFIER=--[[void]] function()return native_invoker.unified_void(0x3C8938D7D872211E, "")end - SET_CURRENT_PLAYER_TCMODIFIER=--[[void]] function(--[[string]] modifierName)return native_invoker.unified_void(modifierName, 0xBBF327DED94E4DEB, "s")end - SET_PLAYER_TCMODIFIER_TRANSITION=--[[void]] function(--[[float]] value)return native_invoker.unified_void(value, 0xBDEB86F4D5809204, "f")end - SET_NEXT_PLAYER_TCMODIFIER=--[[void]] function(--[[string]] modifierName)return native_invoker.unified_void(modifierName, 0xBF59707B3E5ED531, "s")end - ADD_TCMODIFIER_OVERRIDE=--[[void]] function(--[[string]] modifierName1,--[[string]] modifierName2)return native_invoker.unified_void(modifierName1, modifierName2, 0x1A8E2C8B9CF4549C, "ss")end - CLEAR_ALL_TCMODIFIER_OVERRIDES=--[[void]] function(--[[string]] p0)return native_invoker.unified_void(p0, 0x15E33297C3E8DC60, "s")end - -- Full list of timecycle modifiers by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/timecycleModifiers.json - SET_EXTRA_TCMODIFIER=--[[void]] function(--[[string]] modifierName)return native_invoker.unified_void(modifierName, 0x5096FD9CCB49056D, "s")end - -- Clears the secondary timecycle modifier usually set with _SET_EXTRA_TIMECYCLE_MODIFIER - CLEAR_EXTRA_TCMODIFIER=--[[void]] function()return native_invoker.unified_void(0x92CCC17A7A2285DA, "")end - -- See GET_TIMECYCLE_MODIFIER_INDEX for use, works the same just for the secondary timecycle modifier. - -- Returns an integer representing the Timecycle modifier - GET_EXTRA_TCMODIFIER=--[[int]] function()return native_invoker.unified_int(0xBB0527EC6341496D, "")end - -- The same as SET_TIMECYCLE_MODIFIER_STRENGTH but for the secondary timecycle modifier. - ENABLE_MOON_CYCLE_OVERRIDE=--[[void]] function(--[[float]] strength)return native_invoker.unified_void(strength, 0x2C328AF17210F009, "f")end - -- Resets the extra timecycle modifier strength normally set with 0x2C328AF17210F009 - DISABLE_MOON_CYCLE_OVERRIDE=--[[void]] function()return native_invoker.unified_void(0x2BF72AD5B41AA739, "")end - REQUEST_SCALEFORM_MOVIE=--[[int]] function(--[[string]] scaleformName)return native_invoker.unified_int(scaleformName, 0x11FE353CF9733E6F, "s")end - -- Another REQUEST_SCALEFORM_MOVIE equivalent. - REQUEST_SCALEFORM_MOVIE_WITH_IGNORE_SUPER_WIDESCREEN=--[[int]] function(--[[string]] scaleformName)return native_invoker.unified_int(scaleformName, 0x65E7E78842E74CDB, "s")end - REQUEST_SCALEFORM_MOVIE_INSTANCE=--[[int]] function(--[[string]] scaleformName)return native_invoker.unified_int(scaleformName, 0xC514489CFB8AF806, "s")end - -- Similar to REQUEST_SCALEFORM_MOVIE, but seems to be some kind of "interactive" scaleform movie? - -- - -- These seem to be the only scaleforms ever requested by this native: - -- "breaking_news" - -- "desktop_pc" - -- "ECG_MONITOR" - -- "Hacking_PC" - -- "TEETH_PULLING" - -- - -- Note: Unless this hash is out-of-order, this native is next-gen only. - -- - REQUEST_SCALEFORM_MOVIE_SKIP_RENDER_WHILE_PAUSED=--[[int]] function(--[[string]] scaleformName)return native_invoker.unified_int(scaleformName, 0xBD06C611BB9048C2, "s")end - HAS_SCALEFORM_MOVIE_LOADED=--[[BOOL (bool)]] function(--[[int]] scaleformHandle)return native_invoker.unified_bool(scaleformHandle, 0x85F01B8D5B90570E, "i")end - -- val is 1-20 (0 will return false) - IS_ACTIVE_SCALEFORM_MOVIE_DELETING=--[[BOOL (bool)]] function(--[[int]] val)return native_invoker.unified_bool(val, 0x2FCB133CA50A49EB, "i")end - -- val is 1-20. Return is related to INSTRUCTIONAL_BUTTONS, COLOUR_SWITCHER_02, etc? - IS_SCALEFORM_MOVIE_DELETING=--[[BOOL (bool)]] function(--[[int]] val)return native_invoker.unified_bool(val, 0x86255B1FC929E33E, "i")end - -- Only values used in the scripts are: - -- - -- "heist_mp" - -- "heistmap_mp" - -- "instructional_buttons" - -- "heist_pre" - HAS_SCALEFORM_MOVIE_FILENAME_LOADED=--[[BOOL (bool)]] function(--[[string]] scaleformName)return native_invoker.unified_bool(scaleformName, 0x0C1C5D756FB5F337, "s")end - HAS_SCALEFORM_CONTAINER_MOVIE_LOADED_INTO_PARENT=--[[BOOL (bool)]] function(--[[int]] scaleformHandle)return native_invoker.unified_bool(scaleformHandle, 0x8217150E1217EBFD, "i")end - SET_SCALEFORM_MOVIE_AS_NO_LONGER_NEEDED=--[[void]] function(--[[int* (pointer)]] scaleformHandle)return native_invoker.unified_void(scaleformHandle, 0x1D132D614DD86811, "p")end - SET_SCALEFORM_MOVIE_TO_USE_SYSTEM_TIME=--[[void]] function(--[[int]] scaleform,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(scaleform, toggle, 0x6D8EB211944DCE08, "ib")end - SET_SCALEFORM_MOVIE_TO_USE_LARGE_RT=--[[void]] function(--[[int]] scaleformHandle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(scaleformHandle, toggle, 0x32F34FF7F617643B, "ib")end - -- This native is used in some casino scripts to fit the scaleform in the rendertarget. - SET_SCALEFORM_MOVIE_TO_USE_SUPER_LARGE_RT=--[[void]] function(--[[int]] scaleformHandle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(scaleformHandle, toggle, 0xE6A9F00D4240B519, "ib")end - DRAW_SCALEFORM_MOVIE=--[[void]] function(--[[int]] scaleformHandle,--[[float]] x,--[[float]] y,--[[float]] width,--[[float]] height,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha,--[[int]] p9)return native_invoker.unified_void(scaleformHandle, x, y, width, height, red, green, blue, alpha, p9, 0x54972ADAF0294A93, "iffffiiiii")end - -- unk is not used so no need - DRAW_SCALEFORM_MOVIE_FULLSCREEN=--[[void]] function(--[[int]] scaleform,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha,--[[int]] p5)return native_invoker.unified_void(scaleform, red, green, blue, alpha, p5, 0x0DF606929C105BE1, "iiiiii")end - DRAW_SCALEFORM_MOVIE_FULLSCREEN_MASKED=--[[void]] function(--[[int]] scaleform1,--[[int]] scaleform2,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha)return native_invoker.unified_void(scaleform1, scaleform2, red, green, blue, alpha, 0xCF537FDE4FBD4CE5, "iiiiii")end - DRAW_SCALEFORM_MOVIE_3D=--[[void]] function(--[[int]] scaleform,--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ,--[[float]] p7,--[[float]] p8,--[[float]] p9,--[[float]] scaleX,--[[float]] scaleY,--[[float]] scaleZ,--[[int]] rotationOrder)return native_invoker.unified_void(scaleform, posX, posY, posZ, rotX, rotY, rotZ, p7, p8, p9, scaleX, scaleY, scaleZ, rotationOrder, 0x87D51D72255D4E78, "iffffffffffffi")end - DRAW_SCALEFORM_MOVIE_3D_SOLID=--[[void]] function(--[[int]] scaleform,--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ,--[[float]] p7,--[[float]] p8,--[[float]] p9,--[[float]] scaleX,--[[float]] scaleY,--[[float]] scaleZ,--[[int]] rotationOrder)return native_invoker.unified_void(scaleform, posX, posY, posZ, rotX, rotY, rotZ, p7, p8, p9, scaleX, scaleY, scaleZ, rotationOrder, 0x1CE592FDC749D6F5, "iffffffffffffi")end - -- Calls the Scaleform function. - CALL_SCALEFORM_MOVIE_METHOD=--[[void]] function(--[[int]] scaleform,--[[string]] method)return native_invoker.unified_void(scaleform, method, 0xFBD96D87AC96D533, "is")end - -- Calls the Scaleform function and passes the parameters as floats. - -- - -- The number of parameters passed to the function varies, so the end of the parameter list is represented by -1.0. - CALL_SCALEFORM_MOVIE_METHOD_WITH_NUMBER=--[[void]] function(--[[int]] scaleform,--[[string]] methodName,--[[float]] param1,--[[float]] param2,--[[float]] param3,--[[float]] param4,--[[float]] param5)return native_invoker.unified_void(scaleform, methodName, param1, param2, param3, param4, param5, 0xD0837058AE2E4BEE, "isfffff")end - -- Calls the Scaleform function and passes the parameters as strings. - -- - -- The number of parameters passed to the function varies, so the end of the parameter list is represented by 0 (NULL). - CALL_SCALEFORM_MOVIE_METHOD_WITH_STRING=--[[void]] function(--[[int]] scaleform,--[[string]] methodName,--[[string]] param1,--[[string]] param2,--[[string]] param3,--[[string]] param4,--[[string]] param5)return native_invoker.unified_void(scaleform, methodName, param1, param2, param3, param4, param5, 0x51BC1ED3CC44E8F7, "issssss")end - -- Calls the Scaleform function and passes both float and string parameters (in their respective order). - -- - -- The number of parameters passed to the function varies, so the end of the float parameters is represented by -1.0, and the end of the string parameters is represented by 0 (NULL). - -- - -- NOTE: The order of parameters in the function prototype is important! All float parameters must come first, followed by the string parameters. - -- - -- Examples: - -- // function MY_FUNCTION(floatParam1, floatParam2, stringParam) - -- GRAPHICS::CALL_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING(scaleform, "MY_FUNCTION", 10.0, 20.0, -1.0, -1.0, -1.0, "String param", 0, 0, 0, 0); - -- - -- // function MY_FUNCTION_2(floatParam, stringParam1, stringParam2) - -- GRAPHICS::CALL_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING(scaleform, "MY_FUNCTION_2", 10.0, -1.0, -1.0, -1.0, -1.0, "String param #1", "String param #2", 0, 0, 0); - CALL_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING=--[[void]] function(--[[int]] scaleform,--[[string]] methodName,--[[float]] floatParam1,--[[float]] floatParam2,--[[float]] floatParam3,--[[float]] floatParam4,--[[float]] floatParam5,--[[string]] stringParam1,--[[string]] stringParam2,--[[string]] stringParam3,--[[string]] stringParam4,--[[string]] stringParam5)return native_invoker.unified_void(scaleform, methodName, floatParam1, floatParam2, floatParam3, floatParam4, floatParam5, stringParam1, stringParam2, stringParam3, stringParam4, stringParam5, 0xEF662D8D57E290B1, "isfffffsssss")end - -- Pushes a function from the Hud component Scaleform onto the stack. Same behavior as GRAPHICS::BEGIN_SCALEFORM_MOVIE_METHOD, just a hud component id instead of a Scaleform. - -- - -- Known components: - -- 19 - MP_RANK_BAR - -- 20 - HUD_DIRECTOR_MODE - -- - -- This native requires more research - all information can be found inside of 'hud.gfx'. Using a decompiler, the different components are located under "scripts\__Packages\com\rockstargames\gtav\hud\hudComponents" and "scripts\__Packages\com\rockstargames\gtav\Multiplayer". - BEGIN_SCALEFORM_SCRIPT_HUD_MOVIE_METHOD=--[[BOOL (bool)]] function(--[[int]] hudComponent,--[[string]] methodName)return native_invoker.unified_bool(hudComponent, methodName, 0x98C494FD5BDFBFD5, "is")end - -- Push a function from the Scaleform onto the stack - -- - BEGIN_SCALEFORM_MOVIE_METHOD=--[[BOOL (bool)]] function(--[[int]] scaleform,--[[string]] methodName)return native_invoker.unified_bool(scaleform, methodName, 0xF6E48914C7A8694E, "is")end - -- Starts frontend (pause menu) scaleform movie methods. - -- This can be used when you want to make custom frontend menus, and customize things like images or text in the menus etc. - -- Use `BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND_HEADER` for header scaleform functions. - BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND=--[[BOOL (bool)]] function(--[[string]] methodName)return native_invoker.unified_bool(methodName, 0xAB58C27C2E6123C6, "s")end - -- Starts frontend (pause menu) scaleform movie methods for header options. - -- Use `BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND` to customize the content inside the frontend menus. - BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND_HEADER=--[[BOOL (bool)]] function(--[[string]] methodName)return native_invoker.unified_bool(methodName, 0xB9449845F73F5E9C, "s")end - -- Pops and calls the Scaleform function on the stack - END_SCALEFORM_MOVIE_METHOD=--[[void]] function()return native_invoker.unified_void(0xC6796A8FFA375E53, "")end - END_SCALEFORM_MOVIE_METHOD_RETURN_VALUE=--[[int]] function()return native_invoker.unified_int(0xC50AA39A577AF886, "")end - -- methodReturn: The return value of this native: END_SCALEFORM_MOVIE_METHOD_RETURN_VALUE - -- Returns true if the return value of a scaleform function is ready to be collected (using GET_SCALEFORM_MOVIE_METHOD_RETURN_VALUE_STRING or GET_SCALEFORM_MOVIE_METHOD_RETURN_VALUE_INT). - IS_SCALEFORM_MOVIE_METHOD_RETURN_VALUE_READY=--[[BOOL (bool)]] function(--[[int]] methodReturn)return native_invoker.unified_bool(methodReturn, 0x768FF8961BA904D6, "i")end - -- methodReturn: The return value of this native: END_SCALEFORM_MOVIE_METHOD_RETURN_VALUE - -- Used to get a return value from a scaleform function. Returns an int in the same way GET_SCALEFORM_MOVIE_METHOD_RETURN_VALUE_STRING returns a string. - GET_SCALEFORM_MOVIE_METHOD_RETURN_VALUE_INT=--[[int]] function(--[[int]] methodReturn)return native_invoker.unified_int(methodReturn, 0x2DE7EFA66B906036, "i")end - -- methodReturn: The return value of this native: END_SCALEFORM_MOVIE_METHOD_RETURN_VALUE - GET_SCALEFORM_MOVIE_METHOD_RETURN_VALUE_BOOL=--[[BOOL (bool)]] function(--[[int]] methodReturn)return native_invoker.unified_bool(methodReturn, 0xD80A80346A45D761, "i")end - -- methodReturn: The return value of this native: END_SCALEFORM_MOVIE_METHOD_RETURN_VALUE - -- Used to get a return value from a scaleform function. Returns a string in the same way GET_SCALEFORM_MOVIE_METHOD_RETURN_VALUE_INT returns an int. - GET_SCALEFORM_MOVIE_METHOD_RETURN_VALUE_STRING=--[[string]] function(--[[int]] methodReturn)return native_invoker.unified_string(methodReturn, 0xE1E258829A885245, "i")end - -- Pushes an integer for the Scaleform function onto the stack. - SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT=--[[void]] function(--[[int]] value)return native_invoker.unified_void(value, 0xC3D0841A0CC546A6, "i")end - -- Pushes a float for the Scaleform function onto the stack. - SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT=--[[void]] function(--[[float]] value)return native_invoker.unified_void(value, 0xD69736AAE04DB51A, "f")end - -- Pushes a boolean for the Scaleform function onto the stack. - SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL=--[[void]] function(--[[BOOL (bool)]] value)return native_invoker.unified_void(value, 0xC58424BA936EB458, "b")end - -- Called prior to adding a text component to the UI. After doing so, GRAPHICS::END_TEXT_COMMAND_SCALEFORM_STRING is called. - -- - -- Examples: - -- GRAPHICS::BEGIN_TEXT_COMMAND_SCALEFORM_STRING("NUMBER"); - -- HUD::ADD_TEXT_COMPONENT_INTEGER(MISC::ABSI(a_1)); - -- GRAPHICS::END_TEXT_COMMAND_SCALEFORM_STRING(); - -- - -- GRAPHICS::BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRING"); - -- HUD::ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(a_2); - -- GRAPHICS::END_TEXT_COMMAND_SCALEFORM_STRING(); - -- - -- GRAPHICS::BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRTNM2"); - -- HUD::ADD_TEXT_COMPONENT_SUBSTRING_TEXT_LABEL_HASH_KEY(v_3); - -- HUD::ADD_TEXT_COMPONENT_SUBSTRING_TEXT_LABEL_HASH_KEY(v_4); - -- GRAPHICS::END_TEXT_COMMAND_SCALEFORM_STRING(); - -- - -- GRAPHICS::BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRTNM1"); - -- HUD::ADD_TEXT_COMPONENT_SUBSTRING_TEXT_LABEL_HASH_KEY(v_3); - -- GRAPHICS::END_TEXT_COMMAND_SCALEFORM_STRING(); - BEGIN_TEXT_COMMAND_SCALEFORM_STRING=--[[void]] function(--[[string]] componentType)return native_invoker.unified_void(componentType, 0x80338406F3475E55, "s")end - END_TEXT_COMMAND_SCALEFORM_STRING=--[[void]] function()return native_invoker.unified_void(0x362E2D3FE93A9959, "")end - -- Same as END_TEXT_COMMAND_SCALEFORM_STRING but does not perform HTML conversion for text tokens. - -- - -- END_TEXT_COMMAND_VIA_SPECIAL_MODIFIABLE_STRING? - END_TEXT_COMMAND_UNPARSED_SCALEFORM_STRING=--[[void]] function()return native_invoker.unified_void(0xAE4E8157D9ECF087, "")end - -- Same as SCALEFORM_MOVIE_METHOD_ADD_PARAM_TEXTURE_NAME_STRING - -- Both SCALEFORM_MOVIE_METHOD_ADD_PARAM_TEXTURE_NAME_STRING / _SCALEFORM_MOVIE_METHOD_ADD_PARAM_TEXTURE_NAME_STRING_2 works, but _SCALEFORM_MOVIE_METHOD_ADD_PARAM_TEXTURE_NAME_STRING_2 is usually used for "name" (organisation, players..). - SCALEFORM_MOVIE_METHOD_ADD_PARAM_LITERAL_STRING=--[[void]] function(--[[string]] string)return native_invoker.unified_void(string, 0x77FE3402004CD1B0, "s")end - SCALEFORM_MOVIE_METHOD_ADD_PARAM_TEXTURE_NAME_STRING=--[[void]] function(--[[string]] string)return native_invoker.unified_void(string, 0xBA7148484BD90365, "s")end - SCALEFORM_MOVIE_METHOD_ADD_PARAM_PLAYER_NAME_STRING=--[[void]] function(--[[string]] string)return native_invoker.unified_void(string, 0xE83A3E3557A56640, "s")end - DOES_LATEST_BRIEF_STRING_EXIST=--[[BOOL (bool)]] function(--[[int]] p0)return native_invoker.unified_bool(p0, 0x5E657EF1099EDD65, "i")end - SCALEFORM_MOVIE_METHOD_ADD_PARAM_LATEST_BRIEF_STRING=--[[void]] function(--[[int]] value)return native_invoker.unified_void(value, 0xEC52C631A1831C03, "i")end - REQUEST_SCALEFORM_SCRIPT_HUD_MOVIE=--[[void]] function(--[[int]] hudComponent)return native_invoker.unified_void(hudComponent, 0x9304881D6F6537EA, "i")end - HAS_SCALEFORM_SCRIPT_HUD_MOVIE_LOADED=--[[BOOL (bool)]] function(--[[int]] hudComponent)return native_invoker.unified_bool(hudComponent, 0xDF6E5987D2B4D140, "i")end - REMOVE_SCALEFORM_SCRIPT_HUD_MOVIE=--[[void]] function(--[[int]] hudComponent)return native_invoker.unified_void(hudComponent, 0xF44A5456AC3F4F97, "i")end - PASS_KEYBOARD_INPUT_TO_SCALEFORM=--[[BOOL (bool)]] function(--[[int]] scaleformHandle)return native_invoker.unified_bool(scaleformHandle, 0xD1C7CB175E012964, "i")end - SET_TV_CHANNEL=--[[void]] function(--[[int]] channel)return native_invoker.unified_void(channel, 0xBAABBB23EB6E484E, "i")end - GET_TV_CHANNEL=--[[int]] function()return native_invoker.unified_int(0xFC1E275A90D39995, "")end - SET_TV_VOLUME=--[[void]] function(--[[float]] volume)return native_invoker.unified_void(volume, 0x2982BF73F66E9DDC, "f")end - GET_TV_VOLUME=--[[float]] function()return native_invoker.unified_float(0x2170813D3DD8661B, "")end - -- All calls to this native are preceded by calls to GRAPHICS::SET_SCRIPT_GFX_DRAW_ORDER and GRAPHICS::SET_SCRIPT_GFX_DRAW_BEHIND_PAUSEMENU, respectively. - -- - -- "act_cinema.ysc", line 1483: - -- HUD::SET_HUD_COMPONENT_POSITION(15, 0.0, -0.0375); - -- HUD::SET_TEXT_RENDER_ID(l_AE); - -- GRAPHICS::SET_SCRIPT_GFX_DRAW_ORDER(4); - -- GRAPHICS::SET_SCRIPT_GFX_DRAW_BEHIND_PAUSEMENU(1); - -- if (GRAPHICS::IS_TVSHOW_CURRENTLY_PLAYING(${movie_arthouse})) { - -- GRAPHICS::DRAW_TV_CHANNEL(0.5, 0.5, 0.7375, 1.0, 0.0, 255, 255, 255, 255); - -- } else { - -- GRAPHICS::DRAW_TV_CHANNEL(0.5, 0.5, 1.0, 1.0, 0.0, 255, 255, 255, 255); - -- } - -- - -- "am_mp_property_int.ysc", line 102545: - -- if (ENTITY::DOES_ENTITY_EXIST(a_2._f3)) { - -- if (HUD::IS_NAMED_RENDERTARGET_LINKED(ENTITY::GET_ENTITY_MODEL(a_2._f3))) { - -- HUD::SET_TEXT_RENDER_ID(a_2._f1); - -- GRAPHICS::SET_SCRIPT_GFX_DRAW_ORDER(4); - -- GRAPHICS::SET_SCRIPT_GFX_DRAW_BEHIND_PAUSEMENU(1); - -- GRAPHICS::DRAW_TV_CHANNEL(0.5, 0.5, 1.0, 1.0, 0.0, 255, 255, 255, 255); - -- if (GRAPHICS::GET_TV_CHANNEL() == -1) { - -- sub_a8fa5(a_2, 1); - -- } else { - -- sub_a8fa5(a_2, 1); - -- GRAPHICS::ATTACH_TV_AUDIO_TO_ENTITY(a_2._f3); - -- } - -- HUD::SET_TEXT_RENDER_ID(HUD::GET_DEFAULT_SCRIPT_RENDERTARGET_RENDER_ID()); - -- } - -- } - -- - DRAW_TV_CHANNEL=--[[void]] function(--[[float]] xPos,--[[float]] yPos,--[[float]] xScale,--[[float]] yScale,--[[float]] rotation,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha)return native_invoker.unified_void(xPos, yPos, xScale, yScale, rotation, red, green, blue, alpha, 0xFDDC2B4ED3C69DF0, "fffffiiii")end - -- Loads specified video sequence into the TV Channel - -- TV_Channel ranges from 0-2 - -- VideoSequence can be any of the following: - -- "PL_STD_CNT" CNT Standard Channel - -- "PL_STD_WZL" Weazel Standard Channel - -- "PL_LO_CNT" - -- "PL_LO_WZL" - -- "PL_SP_WORKOUT" - -- "PL_SP_INV" - Jay Norris Assassination Mission Fail - -- "PL_SP_INV_EXP" - Jay Norris Assassination Mission Success - -- "PL_LO_RS" - Righteous Slaughter Ad - -- "PL_LO_RS_CUTSCENE" - Righteous Slaughter Cut-scene - -- "PL_SP_PLSH1_INTRO" - -- "PL_LES1_FAME_OR_SHAME" - -- "PL_STD_WZL_FOS_EP2" - -- "PL_MP_WEAZEL" - Weazel Logo on loop - -- "PL_MP_CCTV" - Generic CCTV loop - -- - -- Restart: - -- 0=video sequence continues as normal - -- 1=sequence restarts from beginning every time that channel is selected - -- - -- - -- The above playlists work as intended, and are commonly used, but there are many more playlists, as seen in `tvplaylists.xml`. A pastebin below outlines all playlists, they will be surronded by the name tag I.E. (PL_STD_CNT = PL_STD_CNT). - -- https://pastebin.com/zUzGB6h7 - SET_TV_CHANNEL_PLAYLIST=--[[void]] function(--[[int]] tvChannel,--[[string]] playlistName,--[[BOOL (bool)]] restart)return native_invoker.unified_void(tvChannel, playlistName, restart, 0xF7B38B8305F1FE8B, "isb")end - SET_TV_CHANNEL_PLAYLIST_AT_HOUR=--[[void]] function(--[[int]] tvChannel,--[[string]] playlistName,--[[int]] hour)return native_invoker.unified_void(tvChannel, playlistName, hour, 0x2201C576FACAEBE8, "isi")end - _SET_TV_CHANNEL_PLAYLIST_DIRTY=--[[void]] function(--[[int]] tvChannel,--[[BOOL (bool)]] p1)return native_invoker.unified_void(tvChannel, p1, 0xEE831F15A8D0D94A, "ib")end - CLEAR_TV_CHANNEL_PLAYLIST=--[[void]] function(--[[int]] tvChannel)return native_invoker.unified_void(tvChannel, 0xBEB3D46BB7F043C0, "i")end - IS_PLAYLIST_ON_CHANNEL=--[[BOOL (bool)]] function(--[[int]] tvChannel,--[[Any (int)]] p1)return native_invoker.unified_bool(tvChannel, p1, 0x1F710BFF7DAE6261, "ii")end - IS_TVSHOW_CURRENTLY_PLAYING=--[[BOOL (bool)]] function(--[[Hash (int)]] videoCliphash)return native_invoker.unified_bool(videoCliphash, 0x0AD973CA1E077B60, "i")end - ENABLE_MOVIE_KEYFRAME_WAIT=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x74C180030FDE4B69, "b")end - SET_TV_PLAYER_WATCHING_THIS_FRAME=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xD1C55B110E4DF534, "i")end - GET_CURRENT_TV_CLIP_NAMEHASH=--[[Hash (int)]] function()return native_invoker.unified_int(0x30432A0118736E00, "")end - ENABLE_MOVIE_SUBTITLES=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x873FA65C778AD970, "b")end - UI3DSCENE_IS_AVAILABLE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xD3A10FC7FD8D98CD, "")end - -- All presets can be found in common\data\ui\uiscenes.meta - UI3DSCENE_PUSH_PRESET=--[[BOOL (bool)]] function(--[[string]] presetName)return native_invoker.unified_bool(presetName, 0xF1CEA8A4198D8E9A, "s")end - -- It's called after UI3DSCENE_IS_AVAILABLE and UI3DSCENE_PUSH_PRESET - -- - -- presetName was always "CELEBRATION_WINNER" - -- All presets can be found in common\data\ui\uiscenes.meta - UI3DSCENE_ASSIGN_PED_TO_SLOT=--[[BOOL (bool)]] function(--[[string]] presetName,--[[Ped (int)]] ped,--[[int]] slot,--[[float]] posX,--[[float]] posY,--[[float]] posZ)return native_invoker.unified_bool(presetName, ped, slot, posX, posY, posZ, 0x98C4FE6EC34154CA, "siifff")end - UI3DSCENE_CLEAR_PATCHED_DATA=--[[void]] function()return native_invoker.unified_void(0x7A42B2E236E71415, "")end - UI3DSCENE_MAKE_PUSHED_PRESET_PERSISTENT=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x108BE26959A9D9BB, "b")end - -- This native enables/disables the gold putting grid display (https://i.imgur.com/TC6cku6.png). - -- This requires these two natives to be called as well to configure the grid: `TERRAINGRID_SET_PARAMS` and `TERRAINGRID_SET_COLOURS`. - TERRAINGRID_ACTIVATE=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xA356990E161C9E65, "b")end - -- This native is used along with these two natives: `TERRAINGRID_ACTIVATE` and `TERRAINGRID_SET_COLOURS`. - -- This native configures the location, size, rotation, normal height, and the difference ratio between min, normal and max. - -- - -- All those natives combined they will output something like this: https://i.imgur.com/TC6cku6.png - -- - -- This native renders a box at the given position, with a special shader that renders a grid on world geometry behind it. This box does not have backface culling. - -- The forward args here are a direction vector, something similar to what's returned by GET_ENTITY_FORWARD_VECTOR. - -- normalHeight and heightDiff are used for positioning the color gradient of the grid, colors specified via TERRAINGRID_SET_COLOURS. - -- - -- Example with box superimposed on the image to demonstrate: https://i.imgur.com/wdqskxd.jpg - TERRAINGRID_SET_PARAMS=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] forwardX,--[[float]] forwardY,--[[float]] forwardZ,--[[float]] sizeX,--[[float]] sizeY,--[[float]] sizeZ,--[[float]] gridScale,--[[float]] glowIntensity,--[[float]] normalHeight,--[[float]] heightDiff)return native_invoker.unified_void(x, y, z, forwardX, forwardY, forwardZ, sizeX, sizeY, sizeZ, gridScale, glowIntensity, normalHeight, heightDiff, 0x1C4FC5752BCD8E48, "fffffffffffff")end - -- This native is used along with these two natives: `TERRAINGRID_ACTIVATE` and `TERRAINGRID_SET_PARAMS`. - -- This native sets the colors for the golf putting grid. the 'min...' values are for the lower areas that the grid covers, the 'max...' values are for the higher areas that the grid covers, all remaining values are for the 'normal' ground height. - -- All those natives combined they will output something like this: https://i.imgur.com/TC6cku6.png - TERRAINGRID_SET_COLOURS=--[[void]] function(--[[int]] lowR,--[[int]] lowG,--[[int]] lowB,--[[int]] lowAlpha,--[[int]] r,--[[int]] g,--[[int]] b,--[[int]] alpha,--[[int]] highR,--[[int]] highG,--[[int]] highB,--[[int]] highAlpha)return native_invoker.unified_void(lowR, lowG, lowB, lowAlpha, r, g, b, alpha, highR, highG, highB, highAlpha, 0x5CE62918F8D703C7, "iiiiiiiiiiii")end - -- duration - is how long to play the effect for in milliseconds. If 0, it plays the default length - -- if loop is true, the effect won't stop until you call ANIMPOSTFX_STOP on it. (only loopable effects) - -- - -- Full list of animpostFX / screen effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animPostFxNamesCompact.json - ANIMPOSTFX_PLAY=--[[void]] function(--[[string]] effectName,--[[int]] duration,--[[BOOL (bool)]] looped)return native_invoker.unified_void(effectName, duration, looped, 0x2206BF9A37B7F724, "sib")end - -- See ANIMPOSTFX_PLAY - -- - -- Full list of animpostFX / screen effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animPostFxNamesCompact.json - ANIMPOSTFX_STOP=--[[void]] function(--[[string]] effectName)return native_invoker.unified_void(effectName, 0x068E835A1D0DC0E3, "s")end - -- See ANIMPOSTFX_PLAY - -- - -- Full list of animpostFX / screen effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animPostFxNamesCompact.json - ANIMPOSTFX_GET_CURRENT_TIME=--[[float]] function(--[[string]] effectName)return native_invoker.unified_float(effectName, 0xE35B38A27E8E7179, "s")end - -- Returns whether the specified effect is active. - -- See ANIMPOSTFX_PLAY - -- - -- Full list of animpostFX / screen effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animPostFxNamesCompact.json - ANIMPOSTFX_IS_RUNNING=--[[BOOL (bool)]] function(--[[string]] effectName)return native_invoker.unified_bool(effectName, 0x36AD3E690DA5ACEB, "s")end - -- Stops ALL currently playing effects. - ANIMPOSTFX_STOP_ALL=--[[void]] function()return native_invoker.unified_void(0xB4EDDC19532BFB85, "")end - -- Stops the effect and sets a value (bool) in its data (+0x199) to false. - -- See ANIMPOSTFX_PLAY - -- - -- Full list of animpostFX / screen effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animPostFxNamesCompact.json - ANIMPOSTFX_STOP_AND_FLUSH_REQUESTS=--[[void]] function(--[[string]] effectName)return native_invoker.unified_void(effectName, 0xD2209BE128B5418C, "s")end --- HUD - -- Initializes the text entry for the the text next to a loading prompt. All natives for building UI texts can be used here - -- - -- - -- e.g - -- void StartLoadingMessage(char *text, int spinnerType = 3) - -- { - -- BEGIN_TEXT_COMMAND_BUSYSPINNER_ON("STRING"); - -- ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(text); - -- END_TEXT_COMMAND_BUSYSPINNER_ON(spinnerType); - -- } - -- /*OR*/ - -- void ShowLoadingMessage(char *text, int spinnerType = 3, int timeMs = 10000) - -- { - -- BEGIN_TEXT_COMMAND_BUSYSPINNER_ON("STRING"); - -- ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(text); - -- END_TEXT_COMMAND_BUSYSPINNER_ON(spinnerType); - -- WAIT(timeMs); - -- BUSYSPINNER_OFF(); - -- } - -- - -- - -- These are some localized strings used in the loading spinner. - -- "PM_WAIT" = Please Wait - -- "CELEB_WPLYRS" = Waiting For Players. - -- "CELL_SPINNER2" = Scanning storage. - -- "ERROR_CHECKYACHTNAME" = Registering your yacht's name. Please wait. - -- "ERROR_CHECKPROFANITY" = Checking your text for profanity. Please wait. - -- "FM_COR_AUTOD" = Just spinner no text - -- "FM_IHELP_WAT2" = Waiting for other players - -- "FM_JIP_WAITO" = Game options are being set - -- "FMMC_DOWNLOAD" = Downloading - -- "FMMC_PLYLOAD" = Loading - -- "FMMC_STARTTRAN" = Launching session - -- "HUD_QUITTING" = Quiting session - -- "KILL_STRIP_IDM" = Waiting for to accept - -- "MP_SPINLOADING" = Loading - BEGIN_TEXT_COMMAND_BUSYSPINNER_ON=--[[void]] function(--[[string]] string)return native_invoker.unified_void(string, 0xABA17D7CE615ADBF, "s")end - -- enum eBusySpinnerType - -- { - -- BUSY_SPINNER_LEFT, - -- BUSY_SPINNER_LEFT_2, - -- BUSY_SPINNER_LEFT_3, - -- BUSY_SPINNER_SAVE, - -- BUSY_SPINNER_RIGHT, - -- }; - END_TEXT_COMMAND_BUSYSPINNER_ON=--[[void]] function(--[[int]] busySpinnerType)return native_invoker.unified_void(busySpinnerType, 0xBD12F8228410D9B4, "i")end - -- Removes the loading prompt at the bottom right of the screen. - BUSYSPINNER_OFF=--[[void]] function()return native_invoker.unified_void(0x10D373323E5B9C0D, "")end - PRELOAD_BUSYSPINNER=--[[void]] function()return native_invoker.unified_void(0xC65AB383CD91DF98, "")end - BUSYSPINNER_IS_ON=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xD422FCC5F239A915, "")end - BUSYSPINNER_IS_DISPLAYING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xB2A592B04648A9CB, "")end - DISABLE_PAUSEMENU_SPINNER=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x9245E81072704B8A, "b")end - -- Shows the cursor on screen for one frame. - SET_MOUSE_CURSOR_THIS_FRAME=--[[void]] function()return native_invoker.unified_void(0xAAE7CE1D63167423, "")end - -- Changes the mouse cursor's sprite. - -- 1 = Normal - -- 6 = Left Arrow - -- 7 = Right Arrow - SET_MOUSE_CURSOR_STYLE=--[[void]] function(--[[int]] spriteId)return native_invoker.unified_void(spriteId, 0x8DB8CFFD58B62552, "i")end - -- Shows/hides the frontend cursor on the pause menu or similar menus. - -- Clicking off and then on the game window will show it again. - SET_MOUSE_CURSOR_VISIBLE=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x98215325A695E78A, "b")end - -- Returns TRUE if mouse is hovering above instructional buttons. Works with all buttons gfx, such as popup_warning, pause_menu_instructional_buttons, instructional_buttons, etc. Note: You have to call TOGGLE_MOUSE_BUTTONS on the scaleform if you want this native to work. - IS_MOUSE_ROLLED_OVER_INSTRUCTIONAL_BUTTONS=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x3D9ACB1EB139E702, "")end - GET_MOUSE_EVENT=--[[BOOL (bool)]] function(--[[int]] scaleformHandle,--[[Any* (pointer)]] p1,--[[Any* (pointer)]] p2,--[[Any* (pointer)]] p3)return native_invoker.unified_bool(scaleformHandle, p1, p2, p3, 0x632B2940C67F4EA9, "ippp")end - THEFEED_ONLY_SHOW_TOOLTIPS=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x6F1554B0CC2089FA, "b")end - THEFEED_SET_SCRIPTED_MENU_HEIGHT=--[[void]] function(--[[float]] pos)return native_invoker.unified_void(pos, 0x55598D21339CB998, "f")end - -- Stops loading screen tips shown by invoking `THEFEED_SHOW` - THEFEED_HIDE=--[[void]] function()return native_invoker.unified_void(0x32888337579A5970, "")end - -- Once called each frame hides all above radar notifications. - THEFEED_HIDE_THIS_FRAME=--[[void]] function()return native_invoker.unified_void(0x25F87B30C382FCA7, "")end - -- Displays loading screen tips, requires `THEFEED_AUTO_POST_GAMETIPS_ON` to be called beforehand. - THEFEED_SHOW=--[[void]] function()return native_invoker.unified_void(0x15CFA549788D35EF, "")end - THEFEED_FLUSH_QUEUE=--[[void]] function()return native_invoker.unified_void(0xA8FDB297A8D25FBA, "")end - -- Removes a notification instantly instead of waiting for it to disappear - THEFEED_REMOVE_ITEM=--[[void]] function(--[[int]] notificationId)return native_invoker.unified_void(notificationId, 0xBE4390CB40B3E627, "i")end - THEFEED_FORCE_RENDER_ON=--[[void]] function()return native_invoker.unified_void(0xA13C11E1B5C06BFC, "")end - -- Enables loading screen tips to be be shown (`THEFEED_SHOW`), blocks other kinds of notifications from being displayed (at least from current script). Call `0xADED7F5748ACAFE6` to display those again. - THEFEED_FORCE_RENDER_OFF=--[[void]] function()return native_invoker.unified_void(0x583049884A2EEE3C, "")end - THEFEED_PAUSE=--[[void]] function()return native_invoker.unified_void(0xFDB423997FA30340, "")end - THEFEED_RESUME=--[[void]] function()return native_invoker.unified_void(0xE1CD1E48E025E661, "")end - THEFEED_IS_PAUSED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xA9CBFD40B3FA3010, "")end - THEFEED_REPORT_LOGO_ON=--[[void]] function()return native_invoker.unified_void(0xD4438C0564490E63, "")end - THEFEED_REPORT_LOGO_OFF=--[[void]] function()return native_invoker.unified_void(0xB695E2CD0A2DA9EE, "")end - -- Returns the handle for the notification currently displayed on the screen. Name may be a hash collision, but describes the function accurately. - THEFEED_GET_LAST_SHOWN_PHONE_ACTIVATABLE_FEED_ID=--[[int]] function()return native_invoker.unified_int(0x82352748437638CA, "")end - -- Enables loading screen tips to be be shown (`THEFEED_SHOW`), blocks other kinds of notifications from being displayed (at least from current script). Call `THEFEED_AUTO_POST_GAMETIPS_OFF` to display those again. - THEFEED_AUTO_POST_GAMETIPS_ON=--[[void]] function()return native_invoker.unified_void(0x56C8B608CFD49854, "")end - -- Displays "normal" notifications again after calling `THEFEED_AUTO_POST_GAMETIPS_ON` (those that were drawn before calling this native too), though those will have a weird offset and stay on screen forever (tested with notifications created from same script). - THEFEED_AUTO_POST_GAMETIPS_OFF=--[[void]] function()return native_invoker.unified_void(0xADED7F5748ACAFE6, "")end - -- From the decompiled scripts: - -- HUD::THEFEED_SET_BACKGROUND_COLOR_FOR_NEXT_POST(6); - -- HUD::THEFEED_SET_BACKGROUND_COLOR_FOR_NEXT_POST(184); - -- HUD::THEFEED_SET_BACKGROUND_COLOR_FOR_NEXT_POST(190); - -- - -- sets background color for the next notification - -- 6 = red - -- 184 = green - -- 190 = yellow - -- - -- Here is a list of some colors that can be used: https://gyazo.com/68bd384455fceb0a85a8729e48216e15 - THEFEED_SET_BACKGROUND_COLOR_FOR_NEXT_POST=--[[void]] function(--[[int]] hudColorIndex)return native_invoker.unified_void(hudColorIndex, 0x92F0DA1E27DB96DC, "i")end - THEFEED_SET_RGBA_PARAMETER_FOR_NEXT_MESSAGE=--[[void]] function(--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha)return native_invoker.unified_void(red, green, blue, alpha, 0x17430B918701C342, "iiii")end - -- Related to notification color flashing, setting count to 0 invalidates a `THEFEED_SET_RGBA_PARAMETER_FOR_NEXT_MESSAGE` call for the target notification. - THEFEED_SET_FLASH_DURATION_PARAMETER_FOR_NEXT_MESSAGE=--[[void]] function(--[[int]] count)return native_invoker.unified_void(count, 0x17AD8C9706BDD88A, "i")end - THEFEED_SET_VIBRATE_PARAMETER_FOR_NEXT_MESSAGE=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x4A0C7C9BB10ABB36, "b")end - THEFEED_RESET_ALL_PARAMETERS=--[[void]] function()return native_invoker.unified_void(0xFDD85225B2DEA55E, "")end - -- Requires manual management of game stream handles (i.e., 0xBE4390CB40B3E627). - THEFEED_FREEZE_NEXT_POST=--[[void]] function()return native_invoker.unified_void(0xFDEC055AB549E328, "")end - THEFEED_CLEAR_FROZEN_POST=--[[void]] function()return native_invoker.unified_void(0x80FE4F3AB4E1B62A, "")end - THEFEED_SET_SNAP_FEED_ITEM_POSITIONS=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xBAE4F9B97CD43B30, "b")end - -- Used in the native scripts to reference "GET_PEDHEADSHOT_TXD_STRING" and "CHAR_DEFAULT". - THEFEED_UPDATE_ITEM_TEXTURE=--[[void]] function(--[[string]] txdString1,--[[string]] txnString1,--[[string]] txdString2,--[[string]] txnString2)return native_invoker.unified_void(txdString1, txnString1, txdString2, txnString2, 0x317EBA71D7543F52, "ssss")end - -- Declares the entry type of a notification, for example "STRING". - -- - -- int ShowNotification(char *text) - -- { - -- BEGIN_TEXT_COMMAND_THEFEED_POST("STRING"); - -- ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(text); - -- return END_TEXT_COMMAND_THEFEED_POST_TICKER(1, 1); - -- } - BEGIN_TEXT_COMMAND_THEFEED_POST=--[[void]] function(--[[string]] text)return native_invoker.unified_void(text, 0x202709F4C58A0424, "s")end - -- List of picture names: https://pastebin.com/XdpJVbHz - -- Example result: https://i.imgur.com/SdEZ22m.png - END_TEXT_COMMAND_THEFEED_POST_STATS=--[[int]] function(--[[string]] statTitle,--[[int]] iconEnum,--[[BOOL (bool)]] stepVal,--[[int]] barValue,--[[BOOL (bool)]] isImportant,--[[string]] pictureTextureDict,--[[string]] pictureTextureName)return native_invoker.unified_int(statTitle, iconEnum, stepVal, barValue, isImportant, pictureTextureDict, pictureTextureName, 0x2B7E9A4EAAA93C89, "sibibss")end - -- This function can show pictures of every texture that can be requested by REQUEST_STREAMED_TEXTURE_DICT. - -- - -- List of picNames: https://pastebin.com/XdpJVbHz - -- - -- - -- flash is a bool for fading in. - -- iconTypes: - -- 1 : Chat Box - -- 2 : Email - -- 3 : Add Friend Request - -- 4 : Nothing - -- 5 : Nothing - -- 6 : Nothing - -- 7 : Right Jumping Arrow - -- 8 : RP Icon - -- 9 : $ Icon - -- - -- "sender" is the very top header. This can be any old string. - -- "subject" is the header under the sender. - END_TEXT_COMMAND_THEFEED_POST_MESSAGETEXT=--[[int]] function(--[[string]] txdName,--[[string]] textureName,--[[BOOL (bool)]] flash,--[[int]] iconType,--[[string]] sender,--[[string]] subject)return native_invoker.unified_int(txdName, textureName, flash, iconType, sender, subject, 0x1CCD9A37359072CF, "ssbiss")end - -- This function can show pictures of every texture that can be requested by REQUEST_STREAMED_TEXTURE_DICT. - -- - -- Needs more research. - -- - -- Only one type of usage in the scripts: - -- - -- HUD::END_TEXT_COMMAND_THEFEED_POST_MESSAGETEXT_SUBTITLE_LABEL("CHAR_ACTING_UP", "CHAR_ACTING_UP", 0, 0, "DI_FEED_CHAR", a_0); - END_TEXT_COMMAND_THEFEED_POST_MESSAGETEXT_SUBTITLE_LABEL=--[[int]] function(--[[string]] txdName,--[[string]] textureName,--[[BOOL (bool)]] flash,--[[int]] iconType,--[[string]] sender,--[[string]] subject)return native_invoker.unified_int(txdName, textureName, flash, iconType, sender, subject, 0xC6F580E4C94926AC, "ssbiss")end - -- This function can show pictures of every texture that can be requested by REQUEST_STREAMED_TEXTURE_DICT. - -- - -- NOTE: 'duration' is a multiplier, so 1.0 is normal, 2.0 is twice as long (very slow), and 0.5 is half as long. - -- - -- Example, only occurrence in the scripts: - -- v_8 = HUD::END_TEXT_COMMAND_THEFEED_POST_MESSAGETEXT_TU("CHAR_SOCIAL_CLUB", "CHAR_SOCIAL_CLUB", 0, 0, &v_9, "", a_5); - END_TEXT_COMMAND_THEFEED_POST_MESSAGETEXT_TU=--[[int]] function(--[[string]] txdName,--[[string]] textureName,--[[BOOL (bool)]] flash,--[[int]] iconType,--[[string]] sender,--[[string]] subject,--[[float]] duration)return native_invoker.unified_int(txdName, textureName, flash, iconType, sender, subject, duration, 0x1E6611149DB3DB6B, "ssbissf")end - -- This function can show pictures of every texture that can be requested by REQUEST_STREAMED_TEXTURE_DICT. - -- - -- List of picNames https://pastebin.com/XdpJVbHz - -- - -- flash is a bool for fading in. - -- iconTypes: - -- 1 : Chat Box - -- 2 : Email - -- 3 : Add Friend Request - -- 4 : Nothing - -- 5 : Nothing - -- 6 : Nothing - -- 7 : Right Jumping Arrow - -- 8 : RP Icon - -- 9 : $ Icon - -- - -- "sender" is the very top header. This can be any old string. - -- "subject" is the header under the sender. - -- "duration" is a multiplier, so 1.0 is normal, 2.0 is twice as long (very slow), and 0.5 is half as long. - -- "clanTag" shows a crew tag in the "sender" header, after the text. You need to use 3 underscores as padding. Maximum length of this field seems to be 7. (e.g. "MK" becomes "___MK", "ACE" becomes "___ACE", etc.) - END_TEXT_COMMAND_THEFEED_POST_MESSAGETEXT_WITH_CREW_TAG=--[[int]] function(--[[string]] txdName,--[[string]] textureName,--[[BOOL (bool)]] flash,--[[int]] iconType,--[[string]] sender,--[[string]] subject,--[[float]] duration,--[[string]] clanTag)return native_invoker.unified_int(txdName, textureName, flash, iconType, sender, subject, duration, clanTag, 0x5CBF7BADE20DB93E, "ssbissfs")end - -- This function can show pictures of every texture that can be requested by REQUEST_STREAMED_TEXTURE_DICT. - -- - -- List of picNames: https://pastebin.com/XdpJVbHz - -- - -- flash is a bool for fading in. - -- iconTypes: - -- 1 : Chat Box - -- 2 : Email - -- 3 : Add Friend Request - -- 4 : Nothing - -- 5 : Nothing - -- 6 : Nothing - -- 7 : Right Jumping Arrow - -- 8 : RP Icon - -- 9 : $ Icon - -- - -- "sender" is the very top header. This can be any old string. - -- "subject" is the header under the sender. - -- "duration" is a multiplier, so 1.0 is normal, 2.0 is twice as long (very slow), and 0.5 is half as long. - -- "clanTag" shows a crew tag in the "sender" header, after the text. You need to use 3 underscores as padding. Maximum length of this field seems to be 7. (e.g. "MK" becomes "___MK", "ACE" becomes "___ACE", etc.) - -- iconType2 is a mirror of iconType. It shows in the "subject" line, right under the original iconType. - -- - -- - -- int IconNotification(char *text, char *text2, char *Subject) - -- { - -- BEGIN_TEXT_COMMAND_THEFEED_POST("STRING"); - -- ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(text); - -- _SET_NOTIFICATION_MESSAGE_CLAN_TAG_2("CHAR_SOCIAL_CLUB", "CHAR_SOCIAL_CLUB", 1, 7, text2, Subject, 1.0f, "__EXAMPLE", 7); - -- return END_TEXT_COMMAND_THEFEED_POST_TICKER(1, 1); - -- } - END_TEXT_COMMAND_THEFEED_POST_MESSAGETEXT_WITH_CREW_TAG_AND_ADDITIONAL_ICON=--[[int]] function(--[[string]] txdName,--[[string]] textureName,--[[BOOL (bool)]] flash,--[[int]] iconType1,--[[string]] sender,--[[string]] subject,--[[float]] duration,--[[string]] clanTag,--[[int]] iconType2,--[[int]] p9)return native_invoker.unified_int(txdName, textureName, flash, iconType1, sender, subject, duration, clanTag, iconType2, p9, 0x531B84E7DA981FB6, "ssbissfsii")end - END_TEXT_COMMAND_THEFEED_POST_TICKER=--[[int]] function(--[[BOOL (bool)]] blink,--[[BOOL (bool)]] p1)return native_invoker.unified_int(blink, p1, 0x2ED7843F8F801023, "bb")end - END_TEXT_COMMAND_THEFEED_POST_TICKER_FORCED=--[[int]] function(--[[BOOL (bool)]] blink,--[[BOOL (bool)]] p1)return native_invoker.unified_int(blink, p1, 0x44FA03975424A0EE, "bb")end - END_TEXT_COMMAND_THEFEED_POST_TICKER_WITH_TOKENS=--[[int]] function(--[[BOOL (bool)]] blink,--[[BOOL (bool)]] p1)return native_invoker.unified_int(blink, p1, 0x378E809BF61EC840, "bb")end - -- Shows an "award" notification above the minimap, example: https://i.imgur.com/e2DNaKX.png - -- Example: - -- - -- HUD::BEGIN_TEXT_COMMAND_THEFEED_POST("HUNT"); - -- HUD::END_TEXT_COMMAND_THEFEED_POST_AWARD("Hunting", "Hunting_Gold_128", 0, 109, "HUD_MED_UNLKED"); - END_TEXT_COMMAND_THEFEED_POST_AWARD=--[[int]] function(--[[string]] textureDict,--[[string]] textureName,--[[int]] rpBonus,--[[int]] colorOverlay,--[[string]] titleLabel)return native_invoker.unified_int(textureDict, textureName, rpBonus, colorOverlay, titleLabel, 0xAA295B6F28BD587D, "ssiis")end - END_TEXT_COMMAND_THEFEED_POST_CREWTAG=--[[int]] function(--[[BOOL (bool)]] p0,--[[BOOL (bool)]] p1,--[[int* (pointer)]] p2,--[[int]] p3,--[[BOOL (bool)]] isLeader,--[[BOOL (bool)]] unk0,--[[int]] clanDesc,--[[int]] R,--[[int]] G,--[[int]] B)return native_invoker.unified_int(p0, p1, p2, p3, isLeader, unk0, clanDesc, R, G, B, 0x97C9E4E7024A8F2C, "bbpibbiiii")end - END_TEXT_COMMAND_THEFEED_POST_CREWTAG_WITH_GAME_NAME=--[[int]] function(--[[BOOL (bool)]] p0,--[[BOOL (bool)]] p1,--[[int* (pointer)]] p2,--[[int]] p3,--[[BOOL (bool)]] isLeader,--[[BOOL (bool)]] unk0,--[[int]] clanDesc,--[[string]] playerName,--[[int]] R,--[[int]] G,--[[int]] B)return native_invoker.unified_int(p0, p1, p2, p3, isLeader, unk0, clanDesc, playerName, R, G, B, 0x137BC35589E34E1E, "bbpibbisiii")end - END_TEXT_COMMAND_THEFEED_POST_UNLOCK=--[[int]] function(--[[string]] gxtLabel1,--[[int]] p1,--[[string]] gxtLabel2)return native_invoker.unified_int(gxtLabel1, p1, gxtLabel2, 0x33EE12743CCD6343, "sis")end - END_TEXT_COMMAND_THEFEED_POST_UNLOCK_TU=--[[int]] function(--[[string]] gxtLabel1,--[[int]] p1,--[[string]] gxtLabel2,--[[int]] p3)return native_invoker.unified_int(gxtLabel1, p1, gxtLabel2, p3, 0xC8F3AAF93D0600BF, "sisi")end - END_TEXT_COMMAND_THEFEED_POST_UNLOCK_TU_WITH_COLOR=--[[int]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5)return native_invoker.unified_int(p0, p1, p2, p3, p4, p5, 0x7AE0589093A2E088, "iiiiii")end - END_TEXT_COMMAND_THEFEED_POST_MPTICKER=--[[int]] function(--[[BOOL (bool)]] blink,--[[BOOL (bool)]] p1)return native_invoker.unified_int(blink, p1, 0xF020C96915705B3A, "bb")end - END_TEXT_COMMAND_THEFEED_POST_CREW_RANKUP_WITH_LITERAL_FLAG=--[[int]] function(--[[string]] p0,--[[string]] p1,--[[string]] p2,--[[BOOL (bool)]] p3,--[[BOOL (bool)]] p4)return native_invoker.unified_int(p0, p1, p2, p3, p4, 0x8EFCCF6EC66D85E4, "sssbb")end - -- This function can show pictures of every texture that can be requested by REQUEST_STREAMED_TEXTURE_DICT. - -- - -- List of picNames: https://pastebin.com/XdpJVbHz - -- HUD colors and their values: https://pastebin.com/d9aHPbXN - -- - -- Shows a deathmatch score above the minimap, example: https://i.imgur.com/YmoMklG.png - END_TEXT_COMMAND_THEFEED_POST_VERSUS_TU=--[[int]] function(--[[string]] txdName1,--[[string]] textureName1,--[[int]] count1,--[[string]] txdName2,--[[string]] textureName2,--[[int]] count2,--[[int]] hudColor1,--[[int]] hudColor2)return native_invoker.unified_int(txdName1, textureName1, count1, txdName2, textureName2, count2, hudColor1, hudColor2, 0xB6871B0555B02996, "ssissiii")end - -- returns a notification handle, prints out a notification like below: - -- type range: 0 - 2 - -- if you set type to 1, image goes from 0 - 39 - Xbox you can add text to - -- - -- example: - -- HUD::END_TEXT_COMMAND_THEFEED_POST_REPLAY_INPUT(1, 20, "Who you trynna get crazy with, ese? Don't you know I'm LOCO?!"); - -- - https://imgur.com/lGBPCz3 - END_TEXT_COMMAND_THEFEED_POST_REPLAY=--[[int]] function(--[[int]] type,--[[int]] image,--[[string]] text)return native_invoker.unified_int(type, image, text, 0xD202B92CBF1D816F, "iis")end - -- returns a notification handle, prints out a notification like below: - -- type range: 0 - 2 - -- if you set type to 1, button accepts "~INPUT_SOMETHING~" - -- - -- example: - -- HUD::END_TEXT_COMMAND_THEFEED_POST_REPLAY_INPUT(1, "~INPUT_TALK~", "Who you trynna get crazy with, ese? Don't you know I'm LOCO?!"); - -- - https://imgur.com/UPy0Ial - -- - -- - -- Examples from the scripts: - -- l_D1[1/*1*/]=HUD::END_TEXT_COMMAND_THEFEED_POST_REPLAY_INPUT(1,"~INPUT_REPLAY_START_STOP_RECORDING~",""); - -- l_D1[2/*1*/]=HUD::END_TEXT_COMMAND_THEFEED_POST_REPLAY_INPUT(1,"~INPUT_SAVE_REPLAY_CLIP~",""); - -- l_D1[1/*1*/]=HUD::END_TEXT_COMMAND_THEFEED_POST_REPLAY_INPUT(1,"~INPUT_REPLAY_START_STOP_RECORDING~",""); - -- l_D1[2/*1*/]=HUD::END_TEXT_COMMAND_THEFEED_POST_REPLAY_INPUT(1,"~INPUT_REPLAY_START_STOP_RECORDING_SECONDARY~",""); - -- - END_TEXT_COMMAND_THEFEED_POST_REPLAY_INPUT=--[[int]] function(--[[int]] type,--[[string]] button,--[[string]] text)return native_invoker.unified_int(type, button, text, 0xDD6CB2CCE7C2735C, "iss")end - -- void ShowSubtitle(const char *text) - -- { - -- BEGIN_TEXT_COMMAND_PRINT("STRING"); - -- ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(text); - -- END_TEXT_COMMAND_PRINT(2000, true); - -- } - BEGIN_TEXT_COMMAND_PRINT=--[[void]] function(--[[string]] GxtEntry)return native_invoker.unified_void(GxtEntry, 0xB87A37EEB7FAA67D, "s")end - -- Draws the subtitle at middle center of the screen. - -- - -- int duration = time in milliseconds to show text on screen before disappearing - -- - -- drawImmediately = If true, the text will be drawn immediately, if false, the text will be drawn after the previous subtitle has finished - -- - -- Used to be known as _DRAW_SUBTITLE_TIMED - END_TEXT_COMMAND_PRINT=--[[void]] function(--[[int]] duration,--[[BOOL (bool)]] drawImmediately)return native_invoker.unified_void(duration, drawImmediately, 0x9D77056A530643F6, "ib")end - -- nothin doin. - -- - -- BOOL Message(const char* text) - -- { - -- BEGIN_TEXT_COMMAND_IS_MESSAGE_DISPLAYED("STRING"); - -- ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(text); - -- return END_TEXT_COMMAND_IS_MESSAGE_DISPLAYED(); - -- } - BEGIN_TEXT_COMMAND_IS_MESSAGE_DISPLAYED=--[[void]] function(--[[string]] text)return native_invoker.unified_void(text, 0x853648FD1063A213, "s")end - END_TEXT_COMMAND_IS_MESSAGE_DISPLAYED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x8A9BA1AB3E237613, "")end - -- The following were found in the decompiled script files: - -- STRING, TWOSTRINGS, NUMBER, PERCENTAGE, FO_TWO_NUM, ESMINDOLLA, ESDOLLA, MTPHPER_XPNO, AHD_DIST, CMOD_STAT_0, CMOD_STAT_1, CMOD_STAT_2, CMOD_STAT_3, DFLT_MNU_OPT, F3A_TRAFDEST, ES_HELP_SOC3 - -- - -- ESDOLLA - cash - -- ESMINDOLLA - cash (negative) - -- - -- Used to be known as _SET_TEXT_ENTRY - BEGIN_TEXT_COMMAND_DISPLAY_TEXT=--[[void]] function(--[[string]] text)return native_invoker.unified_void(text, 0x25FBB336DF1804CB, "s")end - -- After applying the properties to the text (See HUD::SET_TEXT_), this will draw the text in the applied position. Also 0.0f < x, y < 1.0f, percentage of the axis. - -- - -- Used to be known as _DRAW_TEXT - END_TEXT_COMMAND_DISPLAY_TEXT=--[[void]] function(--[[float]] x,--[[float]] y,--[[int]] p2)return native_invoker.unified_void(x, y, p2, 0xCD015E5BB0D96A57, "ffi")end - BEGIN_TEXT_COMMAND_GET_SCREEN_WIDTH_OF_DISPLAY_TEXT=--[[void]] function(--[[string]] text)return native_invoker.unified_void(text, 0x54CE8AC98E120CAB, "s")end - END_TEXT_COMMAND_GET_SCREEN_WIDTH_OF_DISPLAY_TEXT=--[[float]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_float(p0, 0x85F061DA64ED2F67, "b")end - -- int GetLineCount(char *text, float x, float y) - -- { - -- BEGIN_TEXT_COMMAND_GET_NUMBER_OF_LINES_FOR_STRING("STRING"); - -- ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(text); - -- return BEGIN_TEXT_COMMAND_GET_NUMBER_OF_LINES_FOR_STRING(x, y); - -- } - BEGIN_TEXT_COMMAND_GET_NUMBER_OF_LINES_FOR_STRING=--[[void]] function(--[[string]] entry)return native_invoker.unified_void(entry, 0x521FB041D93DD0E4, "s")end - -- Determines how many lines the text string will use when drawn on screen. - -- Must use 0x521FB041D93DD0E4 for setting up - END_TEXT_COMMAND_GET_NUMBER_OF_LINES_FOR_STRING=--[[int]] function(--[[float]] x,--[[float]] y)return native_invoker.unified_int(x, y, 0x9040DFB09BE75706, "ff")end - -- Used to be known as _SET_TEXT_COMPONENT_FORMAT - BEGIN_TEXT_COMMAND_DISPLAY_HELP=--[[void]] function(--[[string]] inputType)return native_invoker.unified_void(inputType, 0x8509B634FBE7DA11, "s")end - -- shape goes from -1 to 50 (may be more). - -- p0 is always 0. - -- - -- Example: - -- void FloatingHelpText(const char* text) - -- { - -- BEGIN_TEXT_COMMAND_DISPLAY_HELP("STRING"); - -- ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(text); - -- END_TEXT_COMMAND_DISPLAY_HELP (0, 0, 1, -1); - -- } - -- - -- Image: - -- - imgbin.org/images/26209.jpg - -- - -- more inputs/icons: - -- - https://pastebin.com/nqNYWMSB - -- - -- Used to be known as _DISPLAY_HELP_TEXT_FROM_STRING_LABEL - END_TEXT_COMMAND_DISPLAY_HELP=--[[void]] function(--[[int]] p0,--[[BOOL (bool)]] loop,--[[BOOL (bool)]] beep,--[[int]] shape)return native_invoker.unified_void(p0, loop, beep, shape, 0x238FFE5C7B0498A6, "ibbi")end - -- BOOL IsContextActive(char *ctx) - -- { - -- BEGIN_TEXT_COMMAND_IS_THIS_HELP_MESSAGE_BEING_DISPLAYED(ctx); - -- return END_TEXT_COMMAND_IS_THIS_HELP_MESSAGE_BEING_DISPLAYED(0); - -- } - BEGIN_TEXT_COMMAND_IS_THIS_HELP_MESSAGE_BEING_DISPLAYED=--[[void]] function(--[[string]] labelName)return native_invoker.unified_void(labelName, 0x0A24DA3A41B718F5, "s")end - END_TEXT_COMMAND_IS_THIS_HELP_MESSAGE_BEING_DISPLAYED=--[[BOOL (bool)]] function(--[[int]] p0)return native_invoker.unified_bool(p0, 0x10BDDBFC529428DD, "i")end - -- Starts a text command to change the name of a blip displayed in the pause menu. - -- This should be paired with `END_TEXT_COMMAND_SET_BLIP_NAME`, once adding all required text components. - -- Example: - -- - -- HUD::BEGIN_TEXT_COMMAND_SET_BLIP_NAME("STRING"); - -- HUD::ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME("Name"); - -- HUD::END_TEXT_COMMAND_SET_BLIP_NAME(blip); - BEGIN_TEXT_COMMAND_SET_BLIP_NAME=--[[void]] function(--[[string]] textLabel)return native_invoker.unified_void(textLabel, 0xF9113A30DE5C6670, "s")end - -- Finalizes a text command started with BEGIN_TEXT_COMMAND_SET_BLIP_NAME, setting the name of the specified blip. - END_TEXT_COMMAND_SET_BLIP_NAME=--[[void]] function(--[[Blip (int)]] blip)return native_invoker.unified_void(blip, 0xBC38B49BCB83BC9B, "i")end - BEGIN_TEXT_COMMAND_ADD_DIRECTLY_TO_PREVIOUS_BRIEFS=--[[void]] function(--[[string]] p0)return native_invoker.unified_void(p0, 0x23D69E0465570028, "s")end - END_TEXT_COMMAND_ADD_DIRECTLY_TO_PREVIOUS_BRIEFS=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xCFDBDF5AE59BA0F4, "b")end - -- clears a print text command with this text - BEGIN_TEXT_COMMAND_CLEAR_PRINT=--[[void]] function(--[[string]] text)return native_invoker.unified_void(text, 0xE124FA80A759019C, "s")end - END_TEXT_COMMAND_CLEAR_PRINT=--[[void]] function()return native_invoker.unified_void(0xFCC75460ABA29378, "")end - BEGIN_TEXT_COMMAND_OVERRIDE_BUTTON_TEXT=--[[void]] function(--[[string]] gxtEntry)return native_invoker.unified_void(gxtEntry, 0x8F9EE5687F8EECCD, "s")end - END_TEXT_COMMAND_OVERRIDE_BUTTON_TEXT=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0xA86911979638106F, "i")end - ADD_TEXT_COMPONENT_INTEGER=--[[void]] function(--[[int]] value)return native_invoker.unified_void(value, 0x03B504CF259931BC, "i")end - ADD_TEXT_COMPONENT_FLOAT=--[[void]] function(--[[float]] value,--[[int]] decimalPlaces)return native_invoker.unified_void(value, decimalPlaces, 0xE7DCB5B874BCD96E, "fi")end - ADD_TEXT_COMPONENT_SUBSTRING_TEXT_LABEL=--[[void]] function(--[[string]] labelName)return native_invoker.unified_void(labelName, 0xC63CD5D2920ACBE7, "s")end - -- It adds the localized text of the specified GXT entry name. Eg. if the argument is GET_HASH_KEY("ES_HELP"), adds "Continue". Just uses a text labels hash key - ADD_TEXT_COMPONENT_SUBSTRING_TEXT_LABEL_HASH_KEY=--[[void]] function(--[[Hash (int)]] gxtEntryHash)return native_invoker.unified_void(gxtEntryHash, 0x17299B63C7683A2B, "i")end - ADD_TEXT_COMPONENT_SUBSTRING_BLIP_NAME=--[[void]] function(--[[Blip (int)]] blip)return native_invoker.unified_void(blip, 0x80EAD8E2E1D5D52E, "i")end - ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME=--[[void]] function(--[[string]] text)return native_invoker.unified_void(text, 0x6C188BE134E074AA, "s")end - -- Adds a timer (e.g. "00:00:00:000"). The appearance of the timer depends on the flags, which needs more research. - ADD_TEXT_COMPONENT_SUBSTRING_TIME=--[[void]] function(--[[int]] timestamp,--[[int]] flags)return native_invoker.unified_void(timestamp, flags, 0x1115F16B8AB9E8BF, "ii")end - ADD_TEXT_COMPONENT_FORMATTED_INTEGER=--[[void]] function(--[[int]] value,--[[BOOL (bool)]] commaSeparated)return native_invoker.unified_void(value, commaSeparated, 0x0E4C749FF9DE9CC4, "ib")end - -- p1 was always -1 - ADD_TEXT_COMPONENT_SUBSTRING_PHONE_NUMBER=--[[void]] function(--[[string]] p0,--[[int]] p1)return native_invoker.unified_void(p0, p1, 0x761B77454205A61D, "si")end - -- This native (along with ADD_TEXT_COMPONENT_SUBSTRING_KEYBOARD_DISPLAY and ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME) do not actually filter anything. They simply add the provided text (as of 944) - ADD_TEXT_COMPONENT_SUBSTRING_WEBSITE=--[[void]] function(--[[string]] website)return native_invoker.unified_void(website, 0x94CF4AC034C9C986, "s")end - ADD_TEXT_COMPONENT_SUBSTRING_KEYBOARD_DISPLAY=--[[void]] function(--[[string]] string)return native_invoker.unified_void(string, 0x5F68520888E69014, "s")end - SET_COLOUR_OF_NEXT_TEXT_COMPONENT=--[[void]] function(--[[int]] hudColor)return native_invoker.unified_void(hudColor, 0x39BBF623FC803EAC, "i")end - -- Returns a substring of a specified length starting at a specified position. - -- - -- Example: - -- // Get "STRING" text from "MY_STRING" - -- subStr = HUD::GET_CHARACTER_FROM_AUDIO_CONVERSATION_FILENAME("MY_STRING", 3, 6); - GET_CHARACTER_FROM_AUDIO_CONVERSATION_FILENAME=--[[string]] function(--[[string]] text,--[[int]] position,--[[int]] length)return native_invoker.unified_string(text, position, length, 0x169BD9382084C8C0, "sii")end - -- Returns a substring of a specified length starting at a specified position. The result is guaranteed not to exceed the specified max length. - -- - -- NOTE: The 'maxLength' parameter might actually be the size of the buffer that is returned. More research is needed. -CL69 - -- - -- Example: - -- // Condensed example of how Rockstar uses this function - -- strLen = HUD::GET_LENGTH_OF_LITERAL_STRING(MISC::GET_ONSCREEN_KEYBOARD_RESULT()); - -- subStr = HUD::GET_CHARACTER_FROM_AUDIO_CONVERSATION_FILENAME_WITH_BYTE_LIMIT(MISC::GET_ONSCREEN_KEYBOARD_RESULT(), 0, strLen, 63); - -- - -- -- - -- - -- "fm_race_creator.ysc", line 85115: - -- // parameters modified for clarity - -- BOOL sub_8e5aa(char *text, int length) { - -- for (i = 0; i <= (length - 2); i += 1) { - -- if (!MISC::ARE_STRINGS_EQUAL(HUD::GET_CHARACTER_FROM_AUDIO_CONVERSATION_FILENAME_WITH_BYTE_LIMIT(text, i, i + 1, 1), " ")) { - -- return FALSE; - -- } - -- } - -- return TRUE; - -- } - GET_CHARACTER_FROM_AUDIO_CONVERSATION_FILENAME_WITH_BYTE_LIMIT=--[[string]] function(--[[string]] text,--[[int]] position,--[[int]] length,--[[int]] maxLength)return native_invoker.unified_string(text, position, length, maxLength, 0xB2798643312205C5, "siii")end - -- Returns a substring that is between two specified positions. The length of the string will be calculated using (endPosition - startPosition). - -- - -- Example: - -- // Get "STRING" text from "MY_STRING" - -- subStr = HUD::GET_CHARACTER_FROM_AUDIO_CONVERSATION_FILENAME_BYTES("MY_STRING", 3, 9); - -- // Overflows are possibly replaced with underscores (needs verification) - -- subStr = HUD::GET_CHARACTER_FROM_AUDIO_CONVERSATION_FILENAME_BYTES("MY_STRING", 3, 10); // "STRING_"? - GET_CHARACTER_FROM_AUDIO_CONVERSATION_FILENAME_BYTES=--[[string]] function(--[[string]] text,--[[int]] startPosition,--[[int]] endPosition)return native_invoker.unified_string(text, startPosition, endPosition, 0xCE94AEBA5D82908A, "sii")end - -- Gets a localized string literal from a label name. Can be used for output of e.g. VEHICLE::GET_LIVERY_NAME. To check if a GXT label can be localized with this, HUD::DOES_TEXT_LABEL_EXIST can be used. - GET_FILENAME_FOR_AUDIO_CONVERSATION=--[[string]] function(--[[string]] labelName)return native_invoker.unified_string(labelName, 0x7B5280EBA9840C72, "s")end - CLEAR_PRINTS=--[[void]] function()return native_invoker.unified_void(0xCC33FA791322B9D9, "")end - CLEAR_BRIEF=--[[void]] function()return native_invoker.unified_void(0x9D292F73ADBD9313, "")end - CLEAR_ALL_HELP_MESSAGES=--[[void]] function()return native_invoker.unified_void(0x6178F68A87A4D3A0, "")end - -- p0: found arguments in the b617d scripts: https://pastebin.com/X5akCN7z - CLEAR_THIS_PRINT=--[[void]] function(--[[string]] p0)return native_invoker.unified_void(p0, 0xCF708001E1E536DD, "s")end - CLEAR_SMALL_PRINTS=--[[void]] function()return native_invoker.unified_void(0x2CEA2839313C09AC, "")end - DOES_TEXT_BLOCK_EXIST=--[[BOOL (bool)]] function(--[[string]] gxt)return native_invoker.unified_bool(gxt, 0x1C7302E725259789, "s")end - -- Request a gxt into the passed slot. - REQUEST_ADDITIONAL_TEXT=--[[void]] function(--[[string]] gxt,--[[int]] slot)return native_invoker.unified_void(gxt, slot, 0x71A78003C8E71424, "si")end - REQUEST_ADDITIONAL_TEXT_FOR_DLC=--[[void]] function(--[[string]] gxt,--[[int]] slot)return native_invoker.unified_void(gxt, slot, 0x6009F9F1AE90D8A6, "si")end - HAS_ADDITIONAL_TEXT_LOADED=--[[BOOL (bool)]] function(--[[int]] slot)return native_invoker.unified_bool(slot, 0x02245FE4BED318B8, "i")end - CLEAR_ADDITIONAL_TEXT=--[[void]] function(--[[int]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0x2A179DF17CCF04CD, "ib")end - IS_STREAMING_ADDITIONAL_TEXT=--[[BOOL (bool)]] function(--[[int]] p0)return native_invoker.unified_bool(p0, 0x8B6817B71B85EBF0, "i")end - -- Checks if the specified gxt has loaded into the passed slot. - HAS_THIS_ADDITIONAL_TEXT_LOADED=--[[BOOL (bool)]] function(--[[string]] gxt,--[[int]] slot)return native_invoker.unified_bool(gxt, slot, 0xADBF060E2B30C5BC, "si")end - IS_MESSAGE_BEING_DISPLAYED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x7984C03AA5CC2F41, "")end - -- Checks if the passed gxt name exists in the game files. - DOES_TEXT_LABEL_EXIST=--[[BOOL (bool)]] function(--[[string]] gxt)return native_invoker.unified_bool(gxt, 0xAC09CA973C564252, "s")end - GET_FIRST_N_CHARACTERS_OF_LITERAL_STRING=--[[string]] function(--[[string]] string,--[[int]] length)return native_invoker.unified_string(string, length, 0x98C3CF913D895111, "si")end - -- Returns the string length of the string from the gxt string . - GET_LENGTH_OF_STRING_WITH_THIS_TEXT_LABEL=--[[int]] function(--[[string]] gxt)return native_invoker.unified_int(gxt, 0x801BD273D3A23F74, "s")end - -- Returns the length of the string passed (much like strlen). - GET_LENGTH_OF_LITERAL_STRING=--[[int]] function(--[[string]] string)return native_invoker.unified_int(string, 0xF030907CCBB8A9FD, "s")end - GET_LENGTH_OF_LITERAL_STRING_IN_BYTES=--[[int]] function(--[[string]] string)return native_invoker.unified_int(string, 0x43E4111189E54F0E, "s")end - -- This functions converts the hash of a street name into a readable string. - -- - -- For how to get the hashes, see PATHFIND::GET_STREET_NAME_AT_COORD. - GET_STREET_NAME_FROM_HASH_KEY=--[[string]] function(--[[Hash (int)]] hash)return native_invoker.unified_string(hash, 0xD0EF8A959B8A4CB9, "i")end - IS_HUD_PREFERENCE_SWITCHED_ON=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x1930DFA731813EC4, "")end - IS_RADAR_PREFERENCE_SWITCHED_ON=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x9EB6522EA68F22FE, "")end - IS_SUBTITLE_PREFERENCE_SWITCHED_ON=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xAD6DACA4BA53E0A4, "")end - -- If Hud should be displayed - DISPLAY_HUD=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xA6294919E56FF02A, "b")end - -- Enables drawing some hud components, such as help labels, this frame, when the player is dead. - DISPLAY_HUD_WHEN_NOT_IN_STATE_OF_PLAY_THIS_FRAME=--[[void]] function()return native_invoker.unified_void(0x7669F9E39DC17063, "")end - DISPLAY_HUD_WHEN_PAUSED_THIS_FRAME=--[[void]] function()return native_invoker.unified_void(0x402F9ED62087E898, "")end - -- If Minimap / Radar should be displayed. - DISPLAY_RADAR=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xA0EBB943C300E693, "b")end - -- Setter for GET_FAKE_SPECTATOR_MODE - SET_FAKE_SPECTATOR_MODE=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xCD74233600C4EA6B, "b")end - -- Getter for SET_FAKE_SPECTATOR_MODE - GET_FAKE_SPECTATOR_MODE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC2D2AD9EAAE265B8, "")end - IS_HUD_HIDDEN=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xA86478C6958735C5, "")end - IS_RADAR_HIDDEN=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x157F93B036700462, "")end - IS_MINIMAP_RENDERING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xAF754F20EB5CD51A, "")end - USE_VEHICLE_TARGETING_RETICULE=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x0C698D8F099174C7, "i")end - _USE_VEHICLE_TARGETING_RETICULE_ON_VEHICLES=--[[void]] function(--[[BOOL (bool)]] enable)return native_invoker.unified_void(enable, 0x1BC0EA2912708625, "b")end - ADD_VALID_VEHICLE_HIT_HASH=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xE4C3B169876D33D7, "i")end - CLEAR_VALID_VEHICLE_HIT_HASHES=--[[void]] function()return native_invoker.unified_void(0xEB81A3DADD503187, "")end - -- Enable / disable showing route for the Blip-object. - SET_BLIP_ROUTE=--[[void]] function(--[[Blip (int)]] blip,--[[BOOL (bool)]] enabled)return native_invoker.unified_void(blip, enabled, 0x4F7D8A9BFB0B43E9, "ib")end - CLEAR_ALL_BLIP_ROUTES=--[[void]] function()return native_invoker.unified_void(0xD12882D3FF82BF11, "")end - SET_BLIP_ROUTE_COLOUR=--[[void]] function(--[[Blip (int)]] blip,--[[int]] colour)return native_invoker.unified_void(blip, colour, 0x837155CD2F63DA09, "ii")end - SET_FORCE_SHOW_GPS=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x2790F4B17D098E26, "b")end - SET_USE_SET_DESTINATION_IN_PAUSE_MAP=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x6CDD58146A436083, "b")end - SET_BLOCK_WANTED_FLASH=--[[void]] function(--[[BOOL (bool)]] disabled)return native_invoker.unified_void(disabled, 0xD1942374085C8469, "b")end - ADD_NEXT_MESSAGE_TO_PREVIOUS_BRIEFS=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x60296AF4BA14ABC5, "b")end - FORCE_NEXT_MESSAGE_TO_PREVIOUS_BRIEFS_LIST=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0x57D760D55F54E071, "i")end - -- zoom ranges from 0 to 90f in R* Scripts - SET_RADAR_ZOOM_PRECISE=--[[void]] function(--[[float]] zoom)return native_invoker.unified_void(zoom, 0xBD12C5EEE184C337, "f")end - -- zoomLevel ranges from 0 to 1400 in R* Scripts - SET_RADAR_ZOOM=--[[void]] function(--[[int]] zoomLevel)return native_invoker.unified_void(zoomLevel, 0x096EF57A0C999BBA, "i")end - SET_RADAR_ZOOM_TO_BLIP=--[[void]] function(--[[Blip (int)]] blip,--[[float]] zoom)return native_invoker.unified_void(blip, zoom, 0xF98E4B3E56AFC7B1, "if")end - SET_RADAR_ZOOM_TO_DISTANCE=--[[void]] function(--[[float]] zoom)return native_invoker.unified_void(zoom, 0xCB7CC0D58405AD41, "f")end - -- Does nothing (it's a nullsub). - UPDATE_RADAR_ZOOM_TO_BLIP=--[[void]] function()return native_invoker.unified_void(0xD2049635DEB9C375, "")end - GET_HUD_COLOUR=--[[void]] function(--[[int]] hudColorIndex,--[[int* (pointer)]] r,--[[int* (pointer)]] g,--[[int* (pointer)]] b,--[[int* (pointer)]] a)return native_invoker.unified_void(hudColorIndex, r, g, b, a, 0x7C9C91AB74A0360F, "ipppp")end - -- Sets the color of HUD_COLOUR_SCRIPT_VARIABLE - SET_SCRIPT_VARIABLE_HUD_COLOUR=--[[void]] function(--[[int]] r,--[[int]] g,--[[int]] b,--[[int]] a)return native_invoker.unified_void(r, g, b, a, 0xD68A5FF8A3A89874, "iiii")end - -- Sets the color of HUD_COLOUR_SCRIPT_VARIABLE_2 - SET_SECOND_SCRIPT_VARIABLE_HUD_COLOUR=--[[void]] function(--[[int]] r,--[[int]] g,--[[int]] b,--[[int]] a)return native_invoker.unified_void(r, g, b, a, 0x16A304E6CB2BFAB9, "iiii")end - -- makes hudColorIndex2 color into hudColorIndex color - REPLACE_HUD_COLOUR=--[[void]] function(--[[int]] hudColorIndex,--[[int]] hudColorIndex2)return native_invoker.unified_void(hudColorIndex, hudColorIndex2, 0x1CCC708F0F850613, "ii")end - REPLACE_HUD_COLOUR_WITH_RGBA=--[[void]] function(--[[int]] hudColorIndex,--[[int]] r,--[[int]] g,--[[int]] b,--[[int]] a)return native_invoker.unified_void(hudColorIndex, r, g, b, a, 0xF314CF4F0211894E, "iiiii")end - SET_ABILITY_BAR_VISIBILITY=--[[void]] function(--[[BOOL (bool)]] visible)return native_invoker.unified_void(visible, 0x1DFEDD15019315A9, "b")end - SET_ALLOW_ABILITY_BAR=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x889329C80FE5963C, "b")end - FLASH_ABILITY_BAR=--[[void]] function(--[[int]] millisecondsToFlash)return native_invoker.unified_void(millisecondsToFlash, 0x02CFBA0C9E9275CE, "i")end - SET_ABILITY_BAR_VALUE=--[[void]] function(--[[float]] p0,--[[float]] p1)return native_invoker.unified_void(p0, p1, 0x9969599CCFF5D85E, "ff")end - FLASH_WANTED_DISPLAY=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xA18AFB39081B6A1F, "b")end - FORCE_OFF_WANTED_STAR_FLASH=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xBA8D65C1C65702E5, "b")end - SET_CUSTOM_MP_HUD_COLOR=--[[void]] function(--[[int]] hudColorId)return native_invoker.unified_void(hudColorId, 0x2ACCB195F3CCD9DE, "i")end - -- This gets the height of the FONT and not the total text. You need to get the number of lines your text uses, and get the height of a newline (I'm using a smaller value) to get the total text height. - GET_RENDERED_CHARACTER_HEIGHT=--[[float]] function(--[[float]] size,--[[int]] font)return native_invoker.unified_float(size, font, 0xDB88A37483346780, "fi")end - -- Size range : 0F to 1.0F - -- p0 is unknown and doesn't seem to have an effect, yet in the game scripts it changes to 1.0F sometimes. - SET_TEXT_SCALE=--[[void]] function(--[[float]] scale,--[[float]] size)return native_invoker.unified_void(scale, size, 0x07C837F9A01C34C9, "ff")end - -- colors you input not same as you think? - -- A: for some reason its R B G A - SET_TEXT_COLOUR=--[[void]] function(--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha)return native_invoker.unified_void(red, green, blue, alpha, 0xBE6B23FFA53FB442, "iiii")end - SET_TEXT_CENTRE=--[[void]] function(--[[BOOL (bool)]] align)return native_invoker.unified_void(align, 0xC02F4DBFB51D988B, "b")end - SET_TEXT_RIGHT_JUSTIFY=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x6B3C4650BC8BEE47, "b")end - -- Types - - -- 0: Center-Justify - -- 1: Left-Justify - -- 2: Right-Justify - -- - -- Right-Justify requires SET_TEXT_WRAP, otherwise it will draw to the far right of the screen - SET_TEXT_JUSTIFICATION=--[[void]] function(--[[int]] justifyType)return native_invoker.unified_void(justifyType, 0x4E096588B13FFECA, "i")end - SET_TEXT_LINE_HEIGHT_MULT=--[[void]] function(--[[float]] lineHeightMult)return native_invoker.unified_void(lineHeightMult, 0x9F4624F76E6953D1, "f")end - -- It sets the text in a specified box and wraps the text if it exceeds the boundries. Both values are for X axis. Useful when positioning text set to center or aligned to the right. - -- - -- start - left boundry on screen position (0.0 - 1.0) - -- end - right boundry on screen position (0.0 - 1.0) - SET_TEXT_WRAP=--[[void]] function(--[[float]] start,--[[float]] _end)return native_invoker.unified_void(start, _end, 0x63145D9C883A1A70, "ff")end - SET_TEXT_LEADING=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0xA50ABC31E3CDFAFF, "i")end - -- This native does absolutely nothing, just a nullsub - SET_TEXT_PROPORTIONAL=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x038C1F517D7FDCF8, "b")end - -- fonts that mess up your text where made for number values/misc stuff - SET_TEXT_FONT=--[[void]] function(--[[int]] fontType)return native_invoker.unified_void(fontType, 0x66E0276CC5F6B9DA, "i")end - SET_TEXT_DROP_SHADOW=--[[void]] function()return native_invoker.unified_void(0x1CA3E9EAC9D93E5E, "")end - -- distance - shadow distance in pixels, both horizontal and vertical - -- r, g, b, a - color - SET_TEXT_DROPSHADOW=--[[void]] function(--[[int]] distance,--[[int]] r,--[[int]] g,--[[int]] b,--[[int]] a)return native_invoker.unified_void(distance, r, g, b, a, 0x465C84BC39F1C351, "iiiii")end - SET_TEXT_OUTLINE=--[[void]] function()return native_invoker.unified_void(0x2513DFB0FB8400FE, "")end - -- This native does absolutely nothing, just a nullsub - SET_TEXT_EDGE=--[[void]] function(--[[int]] p0,--[[int]] r,--[[int]] g,--[[int]] b,--[[int]] a)return native_invoker.unified_void(p0, r, g, b, a, 0x441603240D202FA6, "iiiii")end - SET_TEXT_RENDER_ID=--[[void]] function(--[[int]] renderId)return native_invoker.unified_void(renderId, 0x5F15302936E07111, "i")end - -- This function is hard-coded to always return 1. - GET_DEFAULT_SCRIPT_RENDERTARGET_RENDER_ID=--[[int]] function()return native_invoker.unified_int(0x52F0982D7FD156B6, "")end - REGISTER_NAMED_RENDERTARGET=--[[BOOL (bool)]] function(--[[string]] name,--[[BOOL (bool)]] p1)return native_invoker.unified_bool(name, p1, 0x57D9C12635E25CE3, "sb")end - IS_NAMED_RENDERTARGET_REGISTERED=--[[BOOL (bool)]] function(--[[string]] name)return native_invoker.unified_bool(name, 0x78DCDC15C9F116B4, "s")end - RELEASE_NAMED_RENDERTARGET=--[[BOOL (bool)]] function(--[[string]] name)return native_invoker.unified_bool(name, 0xE9F6FFE837354DD4, "s")end - LINK_NAMED_RENDERTARGET=--[[void]] function(--[[Hash (int)]] modelHash)return native_invoker.unified_void(modelHash, 0xF6C09E276AEB3F2D, "i")end - GET_NAMED_RENDERTARGET_RENDER_ID=--[[int]] function(--[[string]] name)return native_invoker.unified_int(name, 0x1A6478B61C6BDC3B, "s")end - IS_NAMED_RENDERTARGET_LINKED=--[[BOOL (bool)]] function(--[[Hash (int)]] modelHash)return native_invoker.unified_bool(modelHash, 0x113750538FA31298, "i")end - CLEAR_HELP=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x8DFCED7A656F8802, "b")end - IS_HELP_MESSAGE_ON_SCREEN=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xDAD37F45428801AE, "")end - HAS_SCRIPT_HIDDEN_HELP_THIS_FRAME=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x214CD562A939246A, "")end - IS_HELP_MESSAGE_BEING_DISPLAYED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x4D79439A6B55AC67, "")end - IS_HELP_MESSAGE_FADING_OUT=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x327EDEEEAC55C369, "")end - SET_HELP_MESSAGE_STYLE=--[[void]] function(--[[int]] style,--[[int]] hudColor,--[[int]] alpha,--[[int]] p3,--[[int]] p4)return native_invoker.unified_void(style, hudColor, alpha, p3, p4, 0xB9C362BABECDDC7A, "iiiii")end - GET_STANDARD_BLIP_ENUM_ID=--[[int]] function()return native_invoker.unified_int(0x4A9923385BDB9DAD, "")end - GET_WAYPOINT_BLIP_ENUM_ID=--[[int]] function()return native_invoker.unified_int(0x186E5D252FA50E7D, "")end - GET_NUMBER_OF_ACTIVE_BLIPS=--[[int]] function()return native_invoker.unified_int(0x9A3FF3DE163034E8, "")end - GET_NEXT_BLIP_INFO_ID=--[[Blip (int)]] function(--[[int]] blipSprite)return native_invoker.unified_int(blipSprite, 0x14F96AA50D6FBEA7, "i")end - GET_FIRST_BLIP_INFO_ID=--[[Blip (int)]] function(--[[int]] blipSprite)return native_invoker.unified_int(blipSprite, 0x1BEDE233E6CD2A1F, "i")end - GET_CLOSEST_BLIP_INFO_ID=--[[Blip (int)]] function(--[[int]] blipSprite)return native_invoker.unified_int(blipSprite, 0xD484BF71050CA1EE, "i")end - GET_BLIP_INFO_ID_COORD=--[[Vector3 (vector3)]] function(--[[Blip (int)]] blip)return native_invoker.unified_vector3(blip, 0xFA7C7F0AADF25D09, "i")end - GET_BLIP_INFO_ID_DISPLAY=--[[int]] function(--[[Blip (int)]] blip)return native_invoker.unified_int(blip, 0x1E314167F701DC3B, "i")end - -- Returns a value based on what the blip is attached to - -- 1 - Vehicle - -- 2 - Ped - -- 3 - Object - -- 4 - Coord - -- 5 - unk - -- 6 - Pickup - -- 7 - Radius - GET_BLIP_INFO_ID_TYPE=--[[int]] function(--[[Blip (int)]] blip)return native_invoker.unified_int(blip, 0xBE9B0959FFD0779B, "i")end - GET_BLIP_INFO_ID_ENTITY_INDEX=--[[Entity (int)]] function(--[[Blip (int)]] blip)return native_invoker.unified_int(blip, 0x4BA4E2553AFEDC2C, "i")end - -- This function is hard-coded to always return 0. - GET_BLIP_INFO_ID_PICKUP_INDEX=--[[Pickup (int)]] function(--[[Blip (int)]] blip)return native_invoker.unified_int(blip, 0x9B6786E4C03DD382, "i")end - -- Returns the Blip handle of given Entity. - GET_BLIP_FROM_ENTITY=--[[Blip (int)]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0xBC8DBDCA2436F7E8, "i")end - ADD_BLIP_FOR_RADIUS=--[[Blip (int)]] function(--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[float]] radius)return native_invoker.unified_int(posX, posY, posZ, radius, 0x46818D79B1F7499A, "ffff")end - -- Adds a rectangular blip for the specified coordinates/area. - -- - -- It is recommended to use SET_BLIP_ROTATION and SET_BLIP_COLOUR to make the blip not rotate along with the camera. - -- - -- By default, the blip will show as a _regular_ blip with the specified color/sprite if it is outside of the minimap view. - -- - -- Example image: - -- minimap https://w.wew.wtf/pdcjig.png - -- big map https://w.wew.wtf/zgcjcm.png - -- - -- (Native name is _likely_ to actually be ADD_BLIP_FOR_AREA, but due to the usual reasons this can't be confirmed) - ADD_BLIP_FOR_AREA=--[[Blip (int)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] width,--[[float]] height)return native_invoker.unified_int(x, y, z, width, height, 0xCE5D0E5E315DB238, "fffff")end - -- Returns red ( default ) blip attached to entity. - -- - -- Example: - -- Blip blip; //Put this outside your case or option - -- blip = HUD::ADD_BLIP_FOR_ENTITY(YourPedOrBodyguardName); - -- HUD::SET_BLIP_AS_FRIENDLY(blip, true); - ADD_BLIP_FOR_ENTITY=--[[Blip (int)]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0x5CDE92C702A8FCE7, "i")end - ADD_BLIP_FOR_PICKUP=--[[Blip (int)]] function(--[[Pickup (int)]] pickup)return native_invoker.unified_int(pickup, 0xBE339365C863BD36, "i")end - -- Creates an orange ( default ) Blip-object. Returns a Blip-object which can then be modified. - ADD_BLIP_FOR_COORD=--[[Blip (int)]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_int(x, y, z, 0x5A039BB0BCA604B6, "fff")end - TRIGGER_SONAR_BLIP=--[[void]] function(--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[float]] radius,--[[int]] p4)return native_invoker.unified_void(posX, posY, posZ, radius, p4, 0x72DD432F3CDFC0EE, "ffffi")end - ALLOW_SONAR_BLIPS=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x60734CC207C9833C, "b")end - SET_BLIP_COORDS=--[[void]] function(--[[Blip (int)]] blip,--[[float]] posX,--[[float]] posY,--[[float]] posZ)return native_invoker.unified_void(blip, posX, posY, posZ, 0xAE2AF67E9D9AF65D, "ifff")end - GET_BLIP_COORDS=--[[Vector3 (vector3)]] function(--[[Blip (int)]] blip)return native_invoker.unified_vector3(blip, 0x586AFE3FF72D996E, "i")end - -- Sets the displayed sprite for a specific blip.. - -- - -- You may have your own list, but since dev-c didn't show it I was bored and started looking through scripts and functions to get a presumable almost positive list of a majority of blip IDs - -- https://pastebin.com/Bpj9Sfft - -- - -- Blips Images + IDs: - -- https://gtaxscripting.blogspot.com/2016/05/gta-v-blips-id-and-image.html - SET_BLIP_SPRITE=--[[void]] function(--[[Blip (int)]] blip,--[[int]] spriteId)return native_invoker.unified_void(blip, spriteId, 0xDF735600A4696DAF, "ii")end - -- Blips Images + IDs: - -- gtaxscripting.blogspot.com/2016/05/gta-v-blips-id-and-image.html - GET_BLIP_SPRITE=--[[int]] function(--[[Blip (int)]] blip)return native_invoker.unified_int(blip, 0x1FC877464A04FC4F, "i")end - SET_COP_BLIP_SPRITE=--[[void]] function(--[[int]] p0,--[[float]] p1)return native_invoker.unified_void(p0, p1, 0x9FCB3CBFB3EAD69A, "if")end - SET_COP_BLIP_SPRITE_AS_STANDARD=--[[void]] function()return native_invoker.unified_void(0xB7B873520C84C118, "")end - -- Doesn't work if the label text of gxtEntry is >= 80. - SET_BLIP_NAME_FROM_TEXT_FILE=--[[void]] function(--[[Blip (int)]] blip,--[[string]] gxtEntry)return native_invoker.unified_void(blip, gxtEntry, 0xEAA0FFE120D92784, "is")end - SET_BLIP_NAME_TO_PLAYER_NAME=--[[void]] function(--[[Blip (int)]] blip,--[[Player (int)]] player)return native_invoker.unified_void(blip, player, 0x127DE7B20C60A6A3, "ii")end - -- Sets alpha-channel for blip color. - -- - -- Example: - -- - -- Blip blip = HUD::ADD_BLIP_FOR_ENTITY(entity); - -- HUD::SET_BLIP_COLOUR(blip , 3); - -- HUD::SET_BLIP_ALPHA(blip , 64); - -- - SET_BLIP_ALPHA=--[[void]] function(--[[Blip (int)]] blip,--[[int]] alpha)return native_invoker.unified_void(blip, alpha, 0x45FF974EEE1C8734, "ii")end - GET_BLIP_ALPHA=--[[int]] function(--[[Blip (int)]] blip)return native_invoker.unified_int(blip, 0x970F608F0EE6C885, "i")end - SET_BLIP_FADE=--[[void]] function(--[[Blip (int)]] blip,--[[int]] opacity,--[[int]] duration)return native_invoker.unified_void(blip, opacity, duration, 0x2AEE8F8390D2298C, "iii")end - -- Returns -1, 0, +1, depending on if the blip is fading out, doing nothing, or fading in respectively. - GET_BLIP_FADE_DIRECTION=--[[int]] function(--[[Blip (int)]] blip)return native_invoker.unified_int(blip, 0x2C173AE2BDB9385E, "i")end - -- After some testing, looks like you need to use CEIL() on the rotation (vehicle/ped heading) before using it there. - SET_BLIP_ROTATION=--[[void]] function(--[[Blip (int)]] blip,--[[int]] rotation)return native_invoker.unified_void(blip, rotation, 0xF87683CDF73C3F6E, "ii")end - -- Does not require whole number/integer rotations. - SET_BLIP_ROTATION_WITH_FLOAT=--[[void]] function(--[[Blip (int)]] blip,--[[float]] heading)return native_invoker.unified_void(blip, heading, 0xA8B6AFDAC320AC87, "if")end - GET_BLIP_ROTATION=--[[int]] function(--[[Blip (int)]] blip)return native_invoker.unified_int(blip, 0x003E92BA477F9D7F, "i")end - -- Adds up after viewing multiple R* scripts. I believe that the duration is in miliseconds. - SET_BLIP_FLASH_TIMER=--[[void]] function(--[[Blip (int)]] blip,--[[int]] duration)return native_invoker.unified_void(blip, duration, 0xD3CD6FD297AE87CC, "ii")end - SET_BLIP_FLASH_INTERVAL=--[[void]] function(--[[Blip (int)]] blip,--[[Any (int)]] p1)return native_invoker.unified_void(blip, p1, 0xAA51DB313C010A7E, "ii")end - -- https://gtaforums.com/topic/864881-all-blip-color-ids-pictured/ - SET_BLIP_COLOUR=--[[void]] function(--[[Blip (int)]] blip,--[[int]] color)return native_invoker.unified_void(blip, color, 0x03D7FB09E75D6B7E, "ii")end - -- Can be used to give blips any RGB colour with SET_BLIP_COLOUR(blip, 84). - SET_BLIP_SECONDARY_COLOUR=--[[void]] function(--[[Blip (int)]] blip,--[[int]] r,--[[int]] g,--[[int]] b)return native_invoker.unified_void(blip, r, g, b, 0x14892474891E09EB, "iiii")end - GET_BLIP_COLOUR=--[[int]] function(--[[Blip (int)]] blip)return native_invoker.unified_int(blip, 0xDF729E8D20CF7327, "i")end - GET_BLIP_HUD_COLOUR=--[[int]] function(--[[Blip (int)]] blip)return native_invoker.unified_int(blip, 0x729B5F1EFBC0AAEE, "i")end - IS_BLIP_SHORT_RANGE=--[[BOOL (bool)]] function(--[[Blip (int)]] blip)return native_invoker.unified_bool(blip, 0xDA5F8727EB75B926, "i")end - IS_BLIP_ON_MINIMAP=--[[BOOL (bool)]] function(--[[Blip (int)]] blip)return native_invoker.unified_bool(blip, 0xE41CA53051197A27, "i")end - DOES_BLIP_HAVE_GPS_ROUTE=--[[BOOL (bool)]] function(--[[Blip (int)]] blip)return native_invoker.unified_bool(blip, 0xDD2238F57B977751, "i")end - SET_BLIP_HIDDEN_ON_LEGEND=--[[void]] function(--[[Blip (int)]] blip,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(blip, toggle, 0x54318C915D27E4CE, "ib")end - SET_BLIP_HIGH_DETAIL=--[[void]] function(--[[Blip (int)]] blip,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(blip, toggle, 0xE2590BC29220CEBB, "ib")end - SET_BLIP_AS_MISSION_CREATOR_BLIP=--[[void]] function(--[[Blip (int)]] blip,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(blip, toggle, 0x24AC0137444F9FD5, "ib")end - IS_MISSION_CREATOR_BLIP=--[[BOOL (bool)]] function(--[[Blip (int)]] blip)return native_invoker.unified_bool(blip, 0x26F49BF3381D933D, "i")end - GET_NEW_SELECTED_MISSION_CREATOR_BLIP=--[[Blip (int)]] function()return native_invoker.unified_int(0x5C90988E7C8E1AF4, "")end - IS_HOVERING_OVER_MISSION_CREATOR_BLIP=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x4167EFE0527D706E, "")end - SHOW_START_MISSION_INSTRUCTIONAL_BUTTON=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xF1A6C18B35BCADE6, "b")end - SHOW_CONTACT_INSTRUCTIONAL_BUTTON=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xC772A904CDE1186F, "b")end - RELOAD_MAP_MENU=--[[void]] function()return native_invoker.unified_void(0x2916A928514C9827, "")end - SET_BLIP_MARKER_LONG_DISTANCE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xB552929B85FC27EC, "ii")end - SET_BLIP_FLASHES=--[[void]] function(--[[Blip (int)]] blip,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(blip, toggle, 0xB14552383D39CE3E, "ib")end - SET_BLIP_FLASHES_ALTERNATE=--[[void]] function(--[[Blip (int)]] blip,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(blip, toggle, 0x2E8D9498C56DD0D1, "ib")end - IS_BLIP_FLASHING=--[[BOOL (bool)]] function(--[[Blip (int)]] blip)return native_invoker.unified_bool(blip, 0xA5E41FD83AD6CEF0, "i")end - -- Sets whether or not the specified blip should only be displayed when nearby, or on the minimap. - SET_BLIP_AS_SHORT_RANGE=--[[void]] function(--[[Blip (int)]] blip,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(blip, toggle, 0xBE8BE4FE60E27B72, "ib")end - SET_BLIP_SCALE=--[[void]] function(--[[Blip (int)]] blip,--[[float]] scale)return native_invoker.unified_void(blip, scale, 0xD38744167B2FA257, "if")end - -- See https://imgur.com/a/lLkEsMN - SET_BLIP_SCALE_2D=--[[void]] function(--[[Blip (int)]] blip,--[[float]] xScale,--[[float]] yScale)return native_invoker.unified_void(blip, xScale, yScale, 0xCD6524439909C979, "iff")end - -- See this topic for more details : gtaforums.com/topic/717612-v-scriptnative-documentation-and-research/page-35?p=1069477935 - SET_BLIP_PRIORITY=--[[void]] function(--[[Blip (int)]] blip,--[[int]] priority)return native_invoker.unified_void(blip, priority, 0xAE9FC9EF6A9FAC79, "ii")end - -- Display Id behaviours: - -- 0 = Doesn't show up, ever, anywhere. - -- 1 = Doesn't show up, ever, anywhere. - -- 2 = Shows on both main map and minimap. (Selectable on map) - -- 3 = Shows on main map only. (Selectable on map) - -- 4 = Shows on main map only. (Selectable on map) - -- 5 = Shows on minimap only. - -- 6 = Shows on both main map and minimap. (Selectable on map) - -- 7 = Doesn't show up, ever, anywhere. - -- 8 = Shows on both main map and minimap. (Not selectable on map) - -- 9 = Shows on minimap only. - -- 10 = Shows on both main map and minimap. (Not selectable on map) - -- - -- Anything higher than 10 seems to be exactly the same as 10. - SET_BLIP_DISPLAY=--[[void]] function(--[[Blip (int)]] blip,--[[int]] displayId)return native_invoker.unified_void(blip, displayId, 0x9029B2F3DA924928, "ii")end - -- Example: https://i.imgur.com/skY6vAJ.png - -- - -- Index: - -- 1 = No distance shown in legend - -- 2 = Distance shown in legend - -- 7 = "Other Players" category, also shows distance in legend - -- 10 = "Property" category - -- 11 = "Owned Property" category - -- - -- Any other value behaves like index = 1, index wraps around after 255 - -- Blips with categories 7, 10 or 11 will all show under the specific categories listing in the map legend, regardless of sprite or name. - -- Legend entries: - -- 7 = Other Players (BLIP_OTHPLYR) - -- 10 = Property (BLIP_PROPCAT) - -- 11 = Owned Property (BLIP_APARTCAT) - -- - -- Category needs to be `7` in order for blip names to show on the expanded minimap when using DISPLAY_PLAYER_NAME_TAGS_ON_BLIPS. - SET_BLIP_CATEGORY=--[[void]] function(--[[Blip (int)]] blip,--[[int]] index)return native_invoker.unified_void(blip, index, 0x234CDD44D996FD9A, "ii")end - -- In the C++ SDK, this seems not to work-- the blip isn't removed immediately. I use it for saving cars. - -- - -- E.g.: - -- - -- Ped pped = PLAYER::PLAYER_PED_ID(); - -- Vehicle v = PED::GET_VEHICLE_PED_IS_USING(pped); - -- Blip b = HUD::ADD_BLIP_FOR_ENTITY(v); - -- - -- works fine. - -- But later attempting to delete it with: - -- - -- Blip b = HUD::GET_BLIP_FROM_ENTITY(v); - -- if (HUD::DOES_BLIP_EXIST(b)) HUD::REMOVE_BLIP(&b); - -- - -- doesn't work. And yes, doesn't work without the DOES_BLIP_EXIST check either. Also, if you attach multiple blips to the same thing (say, a vehicle), and that thing disappears, the blips randomly attach to other things (in my case, a vehicle). - -- - -- Thus for me, HUD::REMOVE_BLIP(&b) only works if there's one blip, (in my case) the vehicle is marked as no longer needed, you drive away from it and it eventually despawns, AND there is only one blip attached to it. I never intentionally attach multiple blips but if the user saves the car, this adds a blip. Then if they delete it, it is supposed to remove the blip, but it doesn't. Then they can immediately save it again, causing another blip to re-appear. - -- ------------- - -- - -- Passing the address of the variable instead of the value works for me. - -- e.g. - -- int blip = HUD::ADD_BLIP_FOR_ENTITY(ped); - -- HUD::REMOVE_BLIP(&blip); - -- - -- - -- Remove blip will currently crash your game, just artificially remove the blip by setting the sprite to a id that is 'invisible'. - REMOVE_BLIP=--[[void]] function(--[[Blip* (pointer)]] blip)return native_invoker.unified_void(blip, 0x86A652570E5F25DD, "p")end - -- false for enemy - -- true for friendly - SET_BLIP_AS_FRIENDLY=--[[void]] function(--[[Blip (int)]] blip,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(blip, toggle, 0x6F6F290102C02AB4, "ib")end - PULSE_BLIP=--[[void]] function(--[[Blip (int)]] blip)return native_invoker.unified_void(blip, 0x742D6FD43115AF73, "i")end - SHOW_NUMBER_ON_BLIP=--[[void]] function(--[[Blip (int)]] blip,--[[int]] number)return native_invoker.unified_void(blip, number, 0xA3C0B359DCB848B6, "ii")end - HIDE_NUMBER_ON_BLIP=--[[void]] function(--[[Blip (int)]] blip)return native_invoker.unified_void(blip, 0x532CFF637EF80148, "i")end - SHOW_HEIGHT_ON_BLIP=--[[void]] function(--[[Blip (int)]] blip,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(blip, toggle, 0x75A16C3DA34F1245, "ib")end - -- Adds a green checkmark on top of a blip. - SHOW_TICK_ON_BLIP=--[[void]] function(--[[Blip (int)]] blip,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(blip, toggle, 0x74513EA3E505181E, "ib")end - -- Adds a orange checkmark on top of a given blip handle: https://imgur.com/a/aw5OTMF - -- _SHOW_FRIEND_INDICATOR_ON_BLIP* - _SHOW_HEADING_INDICATOR_ON_BLIP* - SHOW_GOLD_TICK_ON_BLIP=--[[void]] function(--[[Blip (int)]] blip,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(blip, toggle, 0xCAC2031EBF79B1A8, "ib")end - SHOW_FOR_SALE_ICON_ON_BLIP=--[[void]] function(--[[Blip (int)]] blip,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(blip, toggle, 0x19BD6E3C0E16A8FA, "ib")end - -- Adds the GTA: Online player heading indicator to a blip. - SHOW_HEADING_INDICATOR_ON_BLIP=--[[void]] function(--[[Blip (int)]] blip,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(blip, toggle, 0x5FBCA48327B914DF, "ib")end - -- Highlights a blip by a cyan color circle. - -- - -- Color can be changed with SET_BLIP_SECONDARY_COLOUR - SHOW_OUTLINE_INDICATOR_ON_BLIP=--[[void]] function(--[[Blip (int)]] blip,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(blip, toggle, 0xB81656BC81FE24D1, "ib")end - -- Highlights a blip by a half cyan circle on the right side of the blip. https://i.imgur.com/FrV9M4e.png - -- .Indicating that that player is a friend (in GTA:O). This color can not be changed. - -- To toggle the left side (crew member indicator) of the half circle around the blip, use: `SHOW_CREW_INDICATOR_ON_BLIP` - SHOW_FRIEND_INDICATOR_ON_BLIP=--[[void]] function(--[[Blip (int)]] blip,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(blip, toggle, 0x23C3EB807312F01A, "ib")end - -- Enables or disables the blue half circle https://i.imgur.com/iZes9Ec.png around the specified blip on the left side of the blip. This is used to indicate that the player is in your crew in GTA:O. Color is changeable by using `SET_BLIP_SECONDARY_COLOUR`. - SHOW_CREW_INDICATOR_ON_BLIP=--[[void]] function(--[[Blip (int)]] blip,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(blip, toggle, 0xDCFB5D4DB8BF367E, "ib")end - -- Must be toggled before being queued for animation - SET_BLIP_EXTENDED_HEIGHT_THRESHOLD=--[[void]] function(--[[Blip (int)]] blip,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(blip, toggle, 0xC4278F70131BAA6D, "ib")end - SET_BLIP_SHORT_HEIGHT_THRESHOLD=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x4B5B620C9B59ED34, "ii")end - SET_BLIP_USE_HEIGHT_INDICATOR_ON_EDGE=--[[void]] function(--[[Blip (int)]] blip,--[[Any (int)]] p1)return native_invoker.unified_void(blip, p1, 0x2C9F302398E13141, "ii")end - -- Makes a blip go small when off the minimap. - SET_BLIP_AS_MINIMAL_ON_EDGE=--[[void]] function(--[[Blip (int)]] blip,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(blip, toggle, 0x2B6D467DAB714E8D, "ib")end - -- Enabling this on a radius blip will make it outline only. See https://cdn.discordapp.com/attachments/553235301632573459/575132227935928330/unknown.png - SET_RADIUS_BLIP_EDGE=--[[void]] function(--[[Blip (int)]] blip,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(blip, toggle, 0x25615540D894B814, "ib")end - DOES_BLIP_EXIST=--[[BOOL (bool)]] function(--[[Blip (int)]] blip)return native_invoker.unified_bool(blip, 0xA6DB27D19ECBB7DA, "i")end - -- This native removes the current waypoint from the map. - -- - -- Example: - -- C#: - -- Function.Call(Hash.SET_WAYPOINT_OFF); - -- - -- C++: - -- HUD::SET_WAYPOINT_OFF(); - SET_WAYPOINT_OFF=--[[void]] function()return native_invoker.unified_void(0xA7E4E2D361C2627F, "")end - DELETE_WAYPOINTS_FROM_THIS_PLAYER=--[[void]] function()return native_invoker.unified_void(0xD8E694757BCEA8E9, "")end - REFRESH_WAYPOINT=--[[void]] function()return native_invoker.unified_void(0x81FA173F170560D1, "")end - IS_WAYPOINT_ACTIVE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x1DD1F58F493F1DA5, "")end - SET_NEW_WAYPOINT=--[[void]] function(--[[float]] x,--[[float]] y)return native_invoker.unified_void(x, y, 0xFE43368D2AA4F2FC, "ff")end - SET_BLIP_BRIGHT=--[[void]] function(--[[Blip (int)]] blip,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(blip, toggle, 0xB203913733F27884, "ib")end - -- As of b2189, the third parameter sets the color of the cone (before b2189 it was ignored). Note that it uses HUD colors, not blip colors. - SET_BLIP_SHOW_CONE=--[[void]] function(--[[Blip (int)]] blip,--[[BOOL (bool)]] toggle,--[[int]] hudColorIndex)return native_invoker.unified_void(blip, toggle, hudColorIndex, 0x13127EC3665E8EE1, "ibi")end - -- Interesting fact: A hash collision for this is RESET_JETPACK_MODEL_SETTINGS - REMOVE_COP_BLIP_FROM_PED=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xC594B315EDF2D4AF, "i")end - SETUP_FAKE_CONE_DATA=--[[void]] function(--[[Blip (int)]] blip,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[float]] p6,--[[Any (int)]] p7,--[[int]] p8)return native_invoker.unified_void(blip, p1, p2, p3, p4, p5, p6, p7, p8, 0xF83D0FEBE75E62C9, "iffffffii")end - REMOVE_FAKE_CONE_DATA=--[[void]] function(--[[Blip (int)]] blip)return native_invoker.unified_void(blip, 0x35A3CD97B2C0A6D2, "i")end - CLEAR_FAKE_CONE_ARRAY=--[[void]] function()return native_invoker.unified_void(0x8410C5E0CD847B9D, "")end - -- Applies to new eBlipParams _BLIP_CHANGE_46* and _BLIP_CHANGE_47* - _SET_BLIP_GPS_ROUTE_DISPLAY_DISTANCE=--[[void]] function(--[[Blip (int)]] blip,--[[int]] blipChangeParam46,--[[BOOL (bool)]] blipChangeParam47)return native_invoker.unified_void(blip, blipChangeParam46, blipChangeParam47, 0x25D984CFB64ED6DE, "iib")end - -- This native is used to colorize certain map components like the army base at the top of the map. - -- p2 appears to be always -1. If p2 is -1 then native wouldn't change the color. See https://gfycat.com/SkinnyPinkChupacabra - SET_MINIMAP_COMPONENT=--[[BOOL (bool)]] function(--[[int]] componentId,--[[BOOL (bool)]] toggle,--[[int]] overrideColor)return native_invoker.unified_bool(componentId, toggle, overrideColor, 0x75A9A10948D1DEA6, "ibi")end - SET_MINIMAP_SONAR_SWEEP=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x6B50FC8749632EC1, "b")end - SHOW_ACCOUNT_PICKER=--[[void]] function()return native_invoker.unified_void(0x60E892BA4F5BDCA4, "")end - GET_MAIN_PLAYER_BLIP_ID=--[[Blip (int)]] function()return native_invoker.unified_int(0xDCD4EC3F419D02FA, "")end - SET_PM_WARNINGSCREEN_ACTIVE=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x41350B4FC28E3941, "b")end - HIDE_LOADING_ON_FADE_THIS_FRAME=--[[void]] function()return native_invoker.unified_void(0x4B0311D3CDC4648F, "")end - -- List of interior hashes: https://pastebin.com/1FUyXNqY - -- Not for every interior zoom > 0 available. - SET_RADAR_AS_INTERIOR_THIS_FRAME=--[[void]] function(--[[Hash (int)]] interior,--[[float]] x,--[[float]] y,--[[int]] z,--[[int]] zoom)return native_invoker.unified_void(interior, x, y, z, zoom, 0x59E727A1C9D3E31A, "iffii")end - SET_INSIDE_VERY_SMALL_INTERIOR=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x504DFE62A1692296, "b")end - SET_INSIDE_VERY_LARGE_INTERIOR=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x7EC8ABA5E74B3D7A, "b")end - SET_RADAR_AS_EXTERIOR_THIS_FRAME=--[[void]] function()return native_invoker.unified_void(0xE81B7D2A3DAB2D81, "")end - -- Sets the position of the arrow icon representing the player on both the minimap and world map. - -- - -- Too bad this wouldn't work over the network (obviously not). Could spoof where we would be. - SET_FAKE_PAUSEMAP_PLAYER_POSITION_THIS_FRAME=--[[void]] function(--[[float]] x,--[[float]] y)return native_invoker.unified_void(x, y, 0x77E2DD177910E1CF, "ff")end - -- p2 maybe z float? - SET_FAKE_GPS_PLAYER_POSITION_THIS_FRAME=--[[void]] function(--[[float]] x,--[[float]] y,--[[Any (int)]] p2)return native_invoker.unified_void(x, y, p2, 0xA17784FCA9548D15, "ffi")end - IS_PAUSEMAP_IN_INTERIOR_MODE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x9049FE339D5F6F6F, "")end - HIDE_MINIMAP_EXTERIOR_MAP_THIS_FRAME=--[[void]] function()return native_invoker.unified_void(0x5FBAE526203990C9, "")end - HIDE_MINIMAP_INTERIOR_MAP_THIS_FRAME=--[[void]] function()return native_invoker.unified_void(0x20FE7FDFEEAD38C0, "")end - -- Toggles the Cayo Perico map. - SET_USE_ISLAND_MAP=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x5E1460624D194A38, "b")end - _SET_PAUSE_EXTERIOR_RENDERING_WHILE_IN_INTERIOR=--[[void]] function()return native_invoker.unified_void(0x35CCE12EAECB4A51, "")end - -- When calling this, the current frame will have the players "arrow icon" be focused on the dead center of the radar. - DONT_TILT_MINIMAP_THIS_FRAME=--[[void]] function()return native_invoker.unified_void(0x6D14BFDC33B34F55, "")end - DONT_ZOOM_MINIMAP_WHEN_RUNNING_THIS_FRAME=--[[void]] function()return native_invoker.unified_void(0x89DA85D949CE57A0, "")end - DONT_ZOOM_MINIMAP_WHEN_SNIPING_THIS_FRAME=--[[void]] function()return native_invoker.unified_void(0x55F5A5F07134DE60, "")end - SET_WIDESCREEN_FORMAT=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xC3B07BA00A83B0F1, "i")end - DISPLAY_AREA_NAME=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x276B6CE369C33678, "b")end - -- "DISPLAY_CASH(false);" makes the cash amount render on the screen when appropriate - -- "DISPLAY_CASH(true);" disables cash amount rendering - DISPLAY_CASH=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x96DEC8D5430208B7, "b")end - -- Related to displaying cash on the HUD - -- Always called before HUD::CHANGE_FAKE_MP_CASH in decompiled scripts - USE_FAKE_MP_CASH=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x170F541E1CADD1DE, "b")end - -- Displays cash change notifications on HUD. - CHANGE_FAKE_MP_CASH=--[[void]] function(--[[int]] cash,--[[int]] bank)return native_invoker.unified_void(cash, bank, 0x0772DF77852C2E30, "ii")end - DISPLAY_AMMO_THIS_FRAME=--[[void]] function(--[[BOOL (bool)]] display)return native_invoker.unified_void(display, 0xA5E78BA2B1331C55, "b")end - -- Displays the crosshair for this frame. - DISPLAY_SNIPER_SCOPE_THIS_FRAME=--[[void]] function()return native_invoker.unified_void(0x73115226F4814E62, "")end - -- Hides HUD and radar this frame and prohibits switching to other weapons (or accessing the weapon wheel) - HIDE_HUD_AND_RADAR_THIS_FRAME=--[[void]] function()return native_invoker.unified_void(0x719FF505F097FD20, "")end - -- Controls whether to display 'Cash'/'Bank' next to the money balance HUD in Multiplayer (https://i.imgur.com/MiYUtNl.png) - ALLOW_DISPLAY_OF_MULTIPLAYER_CASH_TEXT=--[[void]] function(--[[BOOL (bool)]] allow)return native_invoker.unified_void(allow, 0xE67C6DFD386EA5E7, "b")end - SET_MULTIPLAYER_WALLET_CASH=--[[void]] function()return native_invoker.unified_void(0xC2D15BEF167E27BC, "")end - REMOVE_MULTIPLAYER_WALLET_CASH=--[[void]] function()return native_invoker.unified_void(0x95CF81BD06EE1887, "")end - SET_MULTIPLAYER_BANK_CASH=--[[void]] function()return native_invoker.unified_void(0xDD21B55DF695CD0A, "")end - REMOVE_MULTIPLAYER_BANK_CASH=--[[void]] function()return native_invoker.unified_void(0xC7C6789AA1CFEDD0, "")end - -- This native does absolutely nothing, just a nullsub - SET_MULTIPLAYER_HUD_CASH=--[[void]] function(--[[int]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0xFD1D220394BCB824, "ib")end - -- Removes multiplayer cash hud each frame - REMOVE_MULTIPLAYER_HUD_CASH=--[[void]] function()return native_invoker.unified_void(0x968F270E39141ECA, "")end - HIDE_HELP_TEXT_THIS_FRAME=--[[void]] function()return native_invoker.unified_void(0xD46923FC481CA285, "")end - IS_IME_IN_PROGRESS=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x801879A9B4F4B2FB, "")end - -- The messages are localized strings. - -- Examples: - -- "No_bus_money" - -- "Enter_bus" - -- "Tour_help" - -- "LETTERS_HELP2" - -- "Dummy" - -- - -- **The bool appears to always be false (if it even is a bool, as it's represented by a zero)** - -- -------- - -- p1 doesn't seem to make a difference, regardless of the state it's in. - -- - -- - -- picture of where on the screen this is displayed? - DISPLAY_HELP_TEXT_THIS_FRAME=--[[void]] function(--[[string]] message,--[[BOOL (bool)]] p1)return native_invoker.unified_void(message, p1, 0x960C9FF8F616E41C, "sb")end - -- Forces the weapon wheel to show/hide. - HUD_FORCE_WEAPON_WHEEL=--[[void]] function(--[[BOOL (bool)]] show)return native_invoker.unified_void(show, 0xEB354E5376BC81A7, "b")end - -- Displays "blazer_wheels_up" and "blazer_wheels_down" "weapon" icons when switching between jetski and quadbike modes. Works only on vehicles using "VEHICLE_TYPE_AMPHIBIOUS_QUADBIKE" vehicle type. Needs to be called every time prior to switching modes, otherwise the icon will only appear when switching modes once. - HUD_FORCE_SPECIAL_VEHICLE_WEAPON_WHEEL=--[[void]] function()return native_invoker.unified_void(0x488043841BBE156F, "")end - -- Calling this each frame, stops the player from receiving a weapon via the weapon wheel. - HUD_SUPPRESS_WEAPON_WHEEL_RESULTS_THIS_FRAME=--[[void]] function()return native_invoker.unified_void(0x0AFC4AF510774B47, "")end - -- Returns the weapon hash to the selected/highlighted weapon in the wheel - HUD_GET_WEAPON_WHEEL_CURRENTLY_HIGHLIGHTED=--[[Hash (int)]] function()return native_invoker.unified_int(0xA48931185F0536FE, "")end - -- Set the active slotIndex in the wheel weapon to the slot associated with the provided Weapon hash - HUD_SET_WEAPON_WHEEL_TOP_SLOT=--[[void]] function(--[[Hash (int)]] weaponHash)return native_invoker.unified_void(weaponHash, 0x72C1056D678BB7D8, "i")end - -- Returns the weapon hash active in a specific weapon wheel slotList - HUD_GET_WEAPON_WHEEL_TOP_SLOT=--[[Hash (int)]] function(--[[int]] weaponTypeIndex)return native_invoker.unified_int(weaponTypeIndex, 0xA13E93403F26C812, "i")end - -- Sets a global that disables many weapon input tasks (shooting, aiming, etc.). Does not work with vehicle weapons, only used in selector.ysc - HUD_SHOWING_CHARACTER_SWITCH_SELECTION=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x14C9FDCC41F81F63, "b")end - -- Only the script that originally called SET_GPS_FLAGS can set them again. Another script cannot set the flags, until the first script that called it has called CLEAR_GPS_FLAGS. - -- - -- Doesn't seem like the flags are actually read by the game at all. - SET_GPS_FLAGS=--[[void]] function(--[[int]] p0,--[[float]] p1)return native_invoker.unified_void(p0, p1, 0x5B440763A4C8D15B, "if")end - -- Clears the GPS flags. Only the script that originally called SET_GPS_FLAGS can clear them. - -- - -- Doesn't seem like the flags are actually read by the game at all. - CLEAR_GPS_FLAGS=--[[void]] function()return native_invoker.unified_void(0x21986729D6A3A830, "")end - SET_RACE_TRACK_RENDER=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x1EAC5F91BCBC5073, "b")end - -- Does the same as SET_RACE_TRACK_RENDER(false); - CLEAR_GPS_RACE_TRACK=--[[void]] function()return native_invoker.unified_void(0x7AA5B4CE533C858B, "")end - -- Starts a new GPS custom-route, allowing you to plot lines on the map. - -- Lines are drawn directly between points. - -- The GPS custom route works like the GPS multi route, except it does not follow roads. - -- Example result: https://i.imgur.com/BDm5pzt.png - -- hudColor: The HUD color of the GPS path. - -- displayOnFoot: Draws the path regardless if the player is in a vehicle or not. - -- followPlayer: Draw the path partially between the previous and next point based on the players position between them. When false, the GPS appears to not disappear after the last leg is completed. - START_GPS_CUSTOM_ROUTE=--[[void]] function(--[[int]] hudColor,--[[BOOL (bool)]] displayOnFoot,--[[BOOL (bool)]] followPlayer)return native_invoker.unified_void(hudColor, displayOnFoot, followPlayer, 0xDB34E8D56FC13B08, "ibb")end - ADD_POINT_TO_GPS_CUSTOM_ROUTE=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(x, y, z, 0x311438A071DD9B1A, "fff")end - -- radarThickness: The width of the GPS route on the radar - -- mapThickness: The width of the GPS route on the map - SET_GPS_CUSTOM_ROUTE_RENDER=--[[void]] function(--[[BOOL (bool)]] toggle,--[[int]] radarThickness,--[[int]] mapThickness)return native_invoker.unified_void(toggle, radarThickness, mapThickness, 0x900086F371220B6F, "bii")end - CLEAR_GPS_CUSTOM_ROUTE=--[[void]] function()return native_invoker.unified_void(0xE6DE0561D9232A64, "")end - -- Starts a new GPS multi-route, allowing you to create custom GPS paths. - -- GPS functions like the waypoint, except it can contain multiple points it's forced to go through. - -- Once the player has passed a point, the GPS will no longer force its path through it. - -- - -- Works independently from the player-placed waypoint and blip routes. - -- Example result: https://i.imgur.com/ZZHQatX.png - -- hudColor: The HUD color of the GPS path. - -- routeFromPlayer: Makes the GPS draw a path from the player to the next point, rather than the original path from the previous point. - -- displayOnFoot: Draws the GPS path regardless if the player is in a vehicle or not. - START_GPS_MULTI_ROUTE=--[[void]] function(--[[int]] hudColor,--[[BOOL (bool)]] routeFromPlayer,--[[BOOL (bool)]] displayOnFoot)return native_invoker.unified_void(hudColor, routeFromPlayer, displayOnFoot, 0x3D3D15AF7BCAAF83, "ibb")end - ADD_POINT_TO_GPS_MULTI_ROUTE=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(x, y, z, 0xA905192A6781C41B, "fff")end - SET_GPS_MULTI_ROUTE_RENDER=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x3DDA37128DD1ACA8, "b")end - -- Does the same as SET_GPS_MULTI_ROUTE_RENDER(false); - CLEAR_GPS_MULTI_ROUTE=--[[void]] function()return native_invoker.unified_void(0x67EEDEA1B9BAFD94, "")end - CLEAR_GPS_PLAYER_WAYPOINT=--[[void]] function()return native_invoker.unified_void(0xFF4FB7C8CDFA3DA7, "")end - SET_GPS_FLASHES=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x320D0E0D936A0E9B, "b")end - SET_PLAYER_ICON_COLOUR=--[[void]] function(--[[int]] color)return native_invoker.unified_void(color, 0x7B21E0BB01E8224A, "i")end - -- adds a short flash to the Radar/Minimap - -- Usage: UI.FLASH_MINIMAP_DISPLAY - FLASH_MINIMAP_DISPLAY=--[[void]] function()return native_invoker.unified_void(0xF2DD778C22B15BDA, "")end - FLASH_MINIMAP_DISPLAY_WITH_COLOR=--[[void]] function(--[[int]] hudColorIndex)return native_invoker.unified_void(hudColorIndex, 0x6B1DE27EE78E6A19, "i")end - TOGGLE_STEALTH_RADAR=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x6AFDFB93754950C7, "b")end - SET_MINIMAP_IN_SPECTATOR_MODE=--[[void]] function(--[[BOOL (bool)]] toggle,--[[Ped (int)]] ped)return native_invoker.unified_void(toggle, ped, 0x1A5CD7752DD28CD3, "bi")end - SET_MISSION_NAME=--[[void]] function(--[[BOOL (bool)]] p0,--[[string]] name)return native_invoker.unified_void(p0, name, 0x5F28ECF5FC84772F, "bs")end - SET_MISSION_NAME_FOR_UGC_MISSION=--[[void]] function(--[[BOOL (bool)]] p0,--[[string]] name)return native_invoker.unified_void(p0, name, 0xE45087D85F468BC2, "bs")end - SET_DESCRIPTION_FOR_UGC_MISSION_EIGHT_STRINGS=--[[void]] function(--[[BOOL (bool)]] p0,--[[string]] p1,--[[string]] p2,--[[string]] p3,--[[string]] p4,--[[string]] p5,--[[string]] p6,--[[string]] p7,--[[string]] p8)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, p7, p8, 0x817B86108EB94E51, "bssssssss")end - SET_MINIMAP_BLOCK_WAYPOINT=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x58FADDED207897DC, "b")end - -- Toggles the North Yankton map - SET_MINIMAP_IN_PROLOGUE=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x9133955F1A2DA957, "b")end - -- If true, the entire map will be revealed. - -- - -- FOW = Fog of War - SET_MINIMAP_HIDE_FOW=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xF8DEE0A5600CBB93, "b")end - GET_MINIMAP_FOW_DISCOVERY_RATIO=--[[float]] function()return native_invoker.unified_float(0xE0130B41D3CF4574, "")end - GET_MINIMAP_FOW_COORDINATE_IS_REVEALED=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_bool(x, y, z, 0x6E31B91145873922, "fff")end - SET_MINIMAP_FOW_DO_NOT_UPDATE=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x62E849B7EB28E770, "b")end - -- Up to eight coordinates may be revealed per frame - SET_MINIMAP_FOW_REVEAL_COORDINATE=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(x, y, z, 0x0923DBF87DFF735E, "fff")end - -- Not much is known so far on what it does _exactly_. - -- All I know for sure is that it draws the specified hole ID on the pause menu map as well as on the mini-map/radar. This native also seems to change some other things related to the pause menu map's behaviour, for example: you can no longer set waypoints, the pause menu map starts up in a 'zoomed in' state. This native does not need to be executed every tick. - -- You need to center the minimap manually as well as change/lock it's zoom and angle in order for it to appear correctly on the minimap. - -- You'll also need to use the `GOLF` scaleform in order to get the correct minmap border to show up. - -- Use `0x35edd5b2e3ff01c0` to reset the map when you no longer want to display any golf holes (you still need to unlock zoom, position and angle of the radar manually after calling this). - SET_MINIMAP_GOLF_COURSE=--[[void]] function(--[[int]] hole)return native_invoker.unified_void(hole, 0x71BDB63DBAF8DA59, "i")end - SET_MINIMAP_GOLF_COURSE_OFF=--[[void]] function()return native_invoker.unified_void(0x35EDD5B2E3FF01C0, "")end - -- Locks the minimap to the specified angle in integer degrees. - -- - -- angle: The angle in whole degrees. If less than 0 or greater than 360, unlocks the angle. - LOCK_MINIMAP_ANGLE=--[[void]] function(--[[int]] angle)return native_invoker.unified_void(angle, 0x299FAEBB108AE05B, "i")end - UNLOCK_MINIMAP_ANGLE=--[[void]] function()return native_invoker.unified_void(0x8183455E16C42E3A, "")end - -- Locks the minimap to the specified world position. - LOCK_MINIMAP_POSITION=--[[void]] function(--[[float]] x,--[[float]] y)return native_invoker.unified_void(x, y, 0x1279E861A329E73F, "ff")end - UNLOCK_MINIMAP_POSITION=--[[void]] function()return native_invoker.unified_void(0x3E93E06DB8EF1F30, "")end - -- Argument must be 0.0f or above 38.0f, or it will be ignored. - SET_FAKE_MINIMAP_MAX_ALTIMETER_HEIGHT=--[[void]] function(--[[float]] altitude,--[[BOOL (bool)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(altitude, p1, p2, 0xD201F3FF917A506D, "fbi")end - SET_HEALTH_HUD_DISPLAY_VALUES=--[[void]] function(--[[int]] health,--[[int]] capacity,--[[BOOL (bool)]] wasAdded)return native_invoker.unified_void(health, capacity, wasAdded, 0x3F5CC444DCAAA8F2, "iib")end - SET_MAX_HEALTH_HUD_DISPLAY=--[[void]] function(--[[int]] maximumValue)return native_invoker.unified_void(maximumValue, 0x975D66A0BC17064C, "i")end - SET_MAX_ARMOUR_HUD_DISPLAY=--[[void]] function(--[[int]] maximumValue)return native_invoker.unified_void(maximumValue, 0x06A320535F5F0248, "i")end - -- Toggles the big minimap state like in GTA:Online. - SET_BIGMAP_ACTIVE=--[[void]] function(--[[BOOL (bool)]] toggleBigMap,--[[BOOL (bool)]] showFullMap)return native_invoker.unified_void(toggleBigMap, showFullMap, 0x231C8F89D0539D8F, "bb")end - -- Full list of components below - -- - -- HUD = 0; - -- HUD_WANTED_STARS = 1; - -- HUD_WEAPON_ICON = 2; - -- HUD_CASH = 3; - -- HUD_MP_CASH = 4; - -- HUD_MP_MESSAGE = 5; - -- HUD_VEHICLE_NAME = 6; - -- HUD_AREA_NAME = 7; - -- HUD_VEHICLE_CLASS = 8; - -- HUD_STREET_NAME = 9; - -- HUD_HELP_TEXT = 10; - -- HUD_FLOATING_HELP_TEXT_1 = 11; - -- HUD_FLOATING_HELP_TEXT_2 = 12; - -- HUD_CASH_CHANGE = 13; - -- HUD_RETICLE = 14; - -- HUD_SUBTITLE_TEXT = 15; - -- HUD_RADIO_STATIONS = 16; - -- HUD_SAVING_GAME = 17; - -- HUD_GAME_STREAM = 18; - -- HUD_WEAPON_WHEEL = 19; - -- HUD_WEAPON_WHEEL_STATS = 20; - -- MAX_HUD_COMPONENTS = 21; - -- MAX_HUD_WEAPONS = 22; - -- MAX_SCRIPTED_HUD_COMPONENTS = 141; - IS_HUD_COMPONENT_ACTIVE=--[[BOOL (bool)]] function(--[[int]] id)return native_invoker.unified_bool(id, 0xBC4C9EA5391ECC0D, "i")end - IS_SCRIPTED_HUD_COMPONENT_ACTIVE=--[[BOOL (bool)]] function(--[[int]] id)return native_invoker.unified_bool(id, 0xDD100EB17A94FF65, "i")end - HIDE_SCRIPTED_HUD_COMPONENT_THIS_FRAME=--[[void]] function(--[[int]] id)return native_invoker.unified_void(id, 0xE374C498D8BADC14, "i")end - SHOW_SCRIPTED_HUD_COMPONENT_THIS_FRAME=--[[void]] function(--[[int]] id)return native_invoker.unified_void(id, 0x4F38DCA127DAAEA2, "i")end - IS_SCRIPTED_HUD_COMPONENT_HIDDEN_THIS_FRAME=--[[BOOL (bool)]] function(--[[int]] id)return native_invoker.unified_bool(id, 0x09C0403ED9A751C2, "i")end - -- This function hides various HUD (Heads-up Display) components. - -- Listed below are the integers and the corresponding HUD component. - -- - 1 : WANTED_STARS - -- - 2 : WEAPON_ICON - -- - 3 : CASH - -- - 4 : MP_CASH - -- - 5 : MP_MESSAGE - -- - 6 : VEHICLE_NAME - -- - 7 : AREA_NAME - -- - 8 : VEHICLE_CLASS - -- - 9 : STREET_NAME - -- - 10 : HELP_TEXT - -- - 11 : FLOATING_HELP_TEXT_1 - -- - 12 : FLOATING_HELP_TEXT_2 - -- - 13 : CASH_CHANGE - -- - 14 : RETICLE - -- - 15 : SUBTITLE_TEXT - -- - 16 : RADIO_STATIONS - -- - 17 : SAVING_GAME - -- - 18 : GAME_STREAM - -- - 19 : WEAPON_WHEEL - -- - 20 : WEAPON_WHEEL_STATS - -- - 21 : HUD_COMPONENTS - -- - 22 : HUD_WEAPONS - -- - -- These integers also work for the `SHOW_HUD_COMPONENT_THIS_FRAME` native, but instead shows the HUD Component. - HIDE_HUD_COMPONENT_THIS_FRAME=--[[void]] function(--[[int]] id)return native_invoker.unified_void(id, 0x6806C51AD12B83B8, "i")end - -- This function hides various HUD (Heads-up Display) components. - -- Listed below are the integers and the corresponding HUD component. - -- - 1 : WANTED_STARS - -- - 2 : WEAPON_ICON - -- - 3 : CASH - -- - 4 : MP_CASH - -- - 5 : MP_MESSAGE - -- - 6 : VEHICLE_NAME - -- - 7 : AREA_NAME - -- - 8 : VEHICLE_CLASS - -- - 9 : STREET_NAME - -- - 10 : HELP_TEXT - -- - 11 : FLOATING_HELP_TEXT_1 - -- - 12 : FLOATING_HELP_TEXT_2 - -- - 13 : CASH_CHANGE - -- - 14 : RETICLE - -- - 15 : SUBTITLE_TEXT - -- - 16 : RADIO_STATIONS - -- - 17 : SAVING_GAME - -- - 18 : GAME_STREAM - -- - 19 : WEAPON_WHEEL - -- - 20 : WEAPON_WHEEL_STATS - -- - 21 : HUD_COMPONENTS - -- - 22 : HUD_WEAPONS - -- - -- These integers also work for the `HIDE_HUD_COMPONENT_THIS_FRAME` native, but instead hides the HUD Component. - SHOW_HUD_COMPONENT_THIS_FRAME=--[[void]] function(--[[int]] id)return native_invoker.unified_void(id, 0x0B4DF1FA60C0E664, "i")end - -- Hides area and vehicle name HUD components for one frame. - HIDE_STREET_AND_CAR_NAMES_THIS_FRAME=--[[void]] function()return native_invoker.unified_void(0xA4DEDE28B1814289, "")end - RESET_RETICULE_VALUES=--[[void]] function()return native_invoker.unified_void(0x12782CE0A636E9F0, "")end - RESET_HUD_COMPONENT_VALUES=--[[void]] function(--[[int]] id)return native_invoker.unified_void(id, 0x450930E616475D0D, "i")end - SET_HUD_COMPONENT_POSITION=--[[void]] function(--[[int]] id,--[[float]] x,--[[float]] y)return native_invoker.unified_void(id, x, y, 0xAABB1F56E2A17CED, "iff")end - GET_HUD_COMPONENT_POSITION=--[[Vector3 (vector3)]] function(--[[int]] id)return native_invoker.unified_vector3(id, 0x223CA69A8C4417FD, "i")end - -- This native does absolutely nothing, just a nullsub - CLEAR_REMINDER_MESSAGE=--[[void]] function()return native_invoker.unified_void(0xB57D8DD645CFA2CF, "")end - -- World to relative screen coords, this world to screen will keep the text on screen. Was named _GET_SCREEN_COORD_FROM_WORLD_COORD, but this conflicts with 0x34E82F05DF2974F5. As that hash actually matches GET_SCREEN_COORD_FROM_WORLD_COORD that one supercedes and this one was renamed to _GET_2D_COORD_FROM_3D_COORD - GET_HUD_SCREEN_POSITION_FROM_WORLD_POSITION=--[[int]] function(--[[float]] worldX,--[[float]] worldY,--[[float]] worldZ,--[[float* (pointer)]] screenX,--[[float* (pointer)]] screenY)return native_invoker.unified_int(worldX, worldY, worldZ, screenX, screenY, 0xF9904D11F1ACBEC3, "fffpp")end - -- Shows a menu for reporting UGC content. - OPEN_REPORTUGC_MENU=--[[void]] function()return native_invoker.unified_void(0x523A590C1A3CC0D3, "")end - FORCE_CLOSE_REPORTUGC_MENU=--[[void]] function()return native_invoker.unified_void(0xEE4C0E6DBC6F2C6F, "")end - IS_REPORTUGC_MENU_OPEN=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x9135584D09A3437E, "")end - IS_FLOATING_HELP_TEXT_ON_SCREEN=--[[BOOL (bool)]] function(--[[int]] hudIndex)return native_invoker.unified_bool(hudIndex, 0x2432784ACA090DA4, "i")end - SET_FLOATING_HELP_TEXT_SCREEN_POSITION=--[[void]] function(--[[int]] hudIndex,--[[float]] x,--[[float]] y)return native_invoker.unified_void(hudIndex, x, y, 0x7679CC1BCEBE3D4C, "iff")end - SET_FLOATING_HELP_TEXT_WORLD_POSITION=--[[void]] function(--[[int]] hudIndex,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(hudIndex, x, y, z, 0x784BA7E0ECEB4178, "ifff")end - SET_FLOATING_HELP_TEXT_TO_ENTITY=--[[void]] function(--[[int]] hudIndex,--[[Entity (int)]] entity,--[[float]] offsetX,--[[float]] offsetY)return native_invoker.unified_void(hudIndex, entity, offsetX, offsetY, 0xB094BC1DB4018240, "iiff")end - SET_FLOATING_HELP_TEXT_STYLE=--[[void]] function(--[[int]] hudIndex,--[[int]] p1,--[[int]] p2,--[[int]] p3,--[[int]] p4,--[[int]] p5)return native_invoker.unified_void(hudIndex, p1, p2, p3, p4, p5, 0x788E7FD431BD67F1, "iiiiii")end - CLEAR_FLOATING_HELP=--[[void]] function(--[[int]] hudIndex,--[[BOOL (bool)]] p1)return native_invoker.unified_void(hudIndex, p1, 0x50085246ABD3FEFA, "ib")end - -- clanFlag: takes a number 0-5 - CREATE_MP_GAMER_TAG_WITH_CREW_COLOR=--[[void]] function(--[[Player (int)]] player,--[[string]] username,--[[BOOL (bool)]] pointedClanTag,--[[BOOL (bool)]] isRockstarClan,--[[string]] clanTag,--[[int]] clanFlag,--[[int]] r,--[[int]] g,--[[int]] b)return native_invoker.unified_void(player, username, pointedClanTag, isRockstarClan, clanTag, clanFlag, r, g, b, 0x6DD05E9D83EFA4C9, "isbbsiiii")end - IS_MP_GAMER_TAG_MOVIE_ACTIVE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x6E0EB3EB47C8D7AA, "")end - -- clanFlag: takes a number 0-5 - CREATE_FAKE_MP_GAMER_TAG=--[[int]] function(--[[Ped (int)]] ped,--[[string]] username,--[[BOOL (bool)]] pointedClanTag,--[[BOOL (bool)]] isRockstarClan,--[[string]] clanTag,--[[int]] clanFlag)return native_invoker.unified_int(ped, username, pointedClanTag, isRockstarClan, clanTag, clanFlag, 0xBFEFE3321A3F5015, "isbbsi")end - REMOVE_MP_GAMER_TAG=--[[void]] function(--[[int]] gamerTagId)return native_invoker.unified_void(gamerTagId, 0x31698AA80E0223F8, "i")end - IS_MP_GAMER_TAG_ACTIVE=--[[BOOL (bool)]] function(--[[int]] gamerTagId)return native_invoker.unified_bool(gamerTagId, 0x4E929E7A5796FD26, "i")end - IS_MP_GAMER_TAG_FREE=--[[BOOL (bool)]] function(--[[int]] gamerTagId)return native_invoker.unified_bool(gamerTagId, 0x595B5178E412E199, "i")end - -- enum eMpGamerTagComponent - -- { - -- MP_TAG_GAMER_NAME, - -- MP_TAG_CREW_TAG, - -- MP_TAG_HEALTH_ARMOUR, - -- MP_TAG_BIG_TEXT, - -- MP_TAG_AUDIO_ICON, - -- MP_TAG_USING_MENU, - -- MP_TAG_PASSIVE_MODE, - -- MP_TAG_WANTED_STARS, - -- MP_TAG_DRIVER, - -- MP_TAG_CO_DRIVER, - -- MP_TAG_TAGGED, - -- MP_TAG_GAMER_NAME_NEARBY, - -- MP_TAG_ARROW, - -- MP_TAG_PACKAGES, - -- MP_TAG_INV_IF_PED_FOLLOWING, - -- MP_TAG_RANK_TEXT, - -- MP_TAG_TYPING, - -- MP_TAG_BAG_LARGE, - -- MP_TAG_ARROW, - -- MP_TAG_GANG_CEO, - -- MP_TAG_GANG_BIKER, - -- MP_TAG_BIKER_ARROW, - -- MP_TAG_MC_ROLE_PRESIDENT, - -- MP_TAG_MC_ROLE_VICE_PRESIDENT, - -- MP_TAG_MC_ROLE_ROAD_CAPTAIN, - -- MP_TAG_MC_ROLE_SARGEANT, - -- MP_TAG_MC_ROLE_ENFORCER, - -- MP_TAG_MC_ROLE_PROSPECT, - -- MP_TAG_TRANSMITTER, - -- MP_TAG_BOMB - -- }; - SET_MP_GAMER_TAG_VISIBILITY=--[[void]] function(--[[int]] gamerTagId,--[[int]] component,--[[BOOL (bool)]] toggle,--[[Any (int)]] p3)return native_invoker.unified_void(gamerTagId, component, toggle, p3, 0x63BB75ABEDC1F6A0, "iibi")end - SET_ALL_MP_GAMER_TAGS_VISIBILITY=--[[void]] function(--[[int]] gamerTagId,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(gamerTagId, toggle, 0xEE76FF7E6A0166B0, "ib")end - -- Displays a bunch of icons above the players name, and level, and their name twice - SET_MP_GAMER_TAGS_SHOULD_USE_VEHICLE_HEALTH=--[[void]] function(--[[int]] gamerTagId,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(gamerTagId, toggle, 0xA67F9C46D612B6F1, "ib")end - SET_MP_GAMER_TAGS_SHOULD_USE_POINTS_HEALTH=--[[void]] function(--[[int]] gamerTagId,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(gamerTagId, toggle, 0xD29EC58C2F6B5014, "ib")end - SET_MP_GAMER_TAGS_POINT_HEALTH=--[[void]] function(--[[int]] gamerTagId,--[[int]] value,--[[int]] maximumValue)return native_invoker.unified_void(gamerTagId, value, maximumValue, 0x1563FE35E9928E67, "iii")end - -- Sets a gamer tag's component colour - -- - -- gamerTagId is obtained using for example CREATE_FAKE_MP_GAMER_TAG - -- Ranges from 0 to 255. 0 is grey health bar, ~50 yellow, 200 purple. - SET_MP_GAMER_TAG_COLOUR=--[[void]] function(--[[int]] gamerTagId,--[[int]] component,--[[int]] hudColorIndex)return native_invoker.unified_void(gamerTagId, component, hudColorIndex, 0x613ED644950626AE, "iii")end - -- Ranges from 0 to 255. 0 is grey health bar, ~50 yellow, 200 purple. - -- Should be enabled as flag (2). Has 0 opacity by default. - -- - -- - This was _SET_MP_GAMER_TAG_HEALTH_BAR_COLOR, - -- -> Rockstar use the EU spelling of 'color' so I hashed the same name with COLOUR and it came back as the correct hash, so it has been corrected above. - SET_MP_GAMER_TAG_HEALTH_BAR_COLOUR=--[[void]] function(--[[int]] gamerTagId,--[[int]] hudColorIndex)return native_invoker.unified_void(gamerTagId, hudColorIndex, 0x3158C77A7E888AB4, "ii")end - -- Sets flag's sprite transparency. 0-255. - SET_MP_GAMER_TAG_ALPHA=--[[void]] function(--[[int]] gamerTagId,--[[int]] component,--[[int]] alpha)return native_invoker.unified_void(gamerTagId, component, alpha, 0xD48FE545CD46F857, "iii")end - -- displays wanted star above head - SET_MP_GAMER_TAG_WANTED_LEVEL=--[[void]] function(--[[int]] gamerTagId,--[[int]] wantedlvl)return native_invoker.unified_void(gamerTagId, wantedlvl, 0xCF228E2AA03099C3, "ii")end - SET_MP_GAMER_TAG_NUM_PACKAGES=--[[void]] function(--[[int]] gamerTagId,--[[int]] p1)return native_invoker.unified_void(gamerTagId, p1, 0x9C16459B2324B2CF, "ii")end - SET_MP_GAMER_TAG_NAME=--[[void]] function(--[[int]] gamerTagId,--[[string]] string)return native_invoker.unified_void(gamerTagId, string, 0xDEA2B8283BAA3944, "is")end - IS_UPDATING_MP_GAMER_TAG_NAME_AND_CREW_DETAILS=--[[BOOL (bool)]] function(--[[int]] gamerTagId)return native_invoker.unified_bool(gamerTagId, 0xEB709A36958ABE0D, "i")end - SET_MP_GAMER_TAG_BIG_TEXT=--[[void]] function(--[[int]] gamerTagId,--[[string]] string)return native_invoker.unified_void(gamerTagId, string, 0x7B7723747CCB55B6, "is")end - GET_CURRENT_WEBPAGE_ID=--[[int]] function()return native_invoker.unified_int(0x01A358D9128B7A86, "")end - GET_CURRENT_WEBSITE_ID=--[[int]] function()return native_invoker.unified_int(0x97D47996FC48CBAD, "")end - -- Returns the ActionScript flagValue. - -- ActionScript flags are global flags that scaleforms use - -- Flags found during testing - -- 0: Returns 1 if the web_browser keyboard is open, otherwise 0 - -- 1: Returns 1 if the player has clicked back twice on the opening page, otherwise 0 (web_browser) - -- 2: Returns how many links the player has clicked in the web_browser scaleform, returns 0 when the browser gets closed - -- 9: Returns the current selection on the mobile phone scaleform - -- - -- There are 20 flags in total. - GET_GLOBAL_ACTIONSCRIPT_FLAG=--[[int]] function(--[[int]] flagIndex)return native_invoker.unified_int(flagIndex, 0xE3B05614DCE1D014, "i")end - RESET_GLOBAL_ACTIONSCRIPT_FLAG=--[[void]] function(--[[int]] flagIndex)return native_invoker.unified_void(flagIndex, 0xB99C4E4D9499DF29, "i")end - IS_WARNING_MESSAGE_READY_FOR_CONTROL=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xAF42195A42C63BBA, "")end - -- You can only use text entries. No custom text. - -- - -- Example: SET_WARNING_MESSAGE("t20", 3, "adder", false, -1, 0, 0, true); - -- errorCode: shows an error code at the bottom left if nonzero - SET_WARNING_MESSAGE=--[[void]] function(--[[string]] titleMsg,--[[int]] flags,--[[string]] promptMsg,--[[BOOL (bool)]] p3,--[[int]] p4,--[[string]] p5,--[[string]] p6,--[[BOOL (bool)]] showBackground,--[[int]] errorCode)return native_invoker.unified_void(titleMsg, flags, promptMsg, p3, p4, p5, p6, showBackground, errorCode, 0x7B1776B3B53F8D74, "sisbissbi")end - -- Shows a warning message on screen with a header. - -- Note: You can only use text entries. No custom text. You can recreate this easily with scaleforms. - -- Example: https://i.imgur.com/ITJt8bJ.png - SET_WARNING_MESSAGE_WITH_HEADER=--[[void]] function(--[[string]] entryHeader,--[[string]] entryLine1,--[[int]] instructionalKey,--[[string]] entryLine2,--[[BOOL (bool)]] p4,--[[Any (int)]] p5,--[[Any* (pointer)]] showBackground,--[[Any* (pointer)]] p7,--[[BOOL (bool)]] p8,--[[Any (int)]] p9)return native_invoker.unified_void(entryHeader, entryLine1, instructionalKey, entryLine2, p4, p5, showBackground, p7, p8, p9, 0xDC38CC1E35B6A5D7, "ssisbippbi")end - -- You can use this native for custom input, without having to use any scaleform-related natives. - -- The native must be called on tick. - -- The entryHeader must be a valid label. - -- For Single lines use JL_INVITE_N as entryLine1, JL_INVITE_ND for multiple. - -- Notes: - -- - additionalIntInfo: replaces first occurrence of ~1~ in provided label with an integer - -- - additionalTextInfoLine1: replaces first occurrence of ~a~ in provided label, with your custom text - -- - additionalTextInfoLine2: replaces second occurrence of ~a~ in provided label, with your custom text - -- - showBackground: shows black background of the warning screen - -- - errorCode: shows an error code at the bottom left if nonzero - -- Example of usage: - -- SET_WARNING_MESSAGE_WITH_HEADER_AND_SUBSTRING_FLAGS("ALERT", "JL_INVITE_ND", 66, "", true, -1, -1, "Testing line 1", "Testing line 2", true, 0); - -- Screenshot: - -- https://imgur.com/a/IYA7vJ8 - SET_WARNING_MESSAGE_WITH_HEADER_AND_SUBSTRING_FLAGS=--[[void]] function(--[[string]] entryHeader,--[[string]] entryLine1,--[[int]] instructionalKey,--[[string]] entryLine2,--[[BOOL (bool)]] p4,--[[Any (int)]] p5,--[[Any (int)]] additionalIntInfo,--[[string]] additionalTextInfoLine1,--[[string]] additionalTextInfoLine2,--[[BOOL (bool)]] showBackground,--[[int]] errorCode)return native_invoker.unified_void(entryHeader, entryLine1, instructionalKey, entryLine2, p4, p5, additionalIntInfo, additionalTextInfoLine1, additionalTextInfoLine2, showBackground, errorCode, 0x701919482C74B5AB, "ssisbiissbi")end - SET_WARNING_MESSAGE_WITH_HEADER_EXTENDED=--[[void]] function(--[[string]] entryHeader,--[[string]] entryLine1,--[[int]] flags,--[[string]] entryLine2,--[[BOOL (bool)]] p4,--[[Any (int)]] p5,--[[Any* (pointer)]] p6,--[[Any* (pointer)]] p7,--[[BOOL (bool)]] showBg,--[[Any (int)]] p9,--[[Any (int)]] p10)return native_invoker.unified_void(entryHeader, entryLine1, flags, entryLine2, p4, p5, p6, p7, showBg, p9, p10, 0x38B55259C2E078ED, "ssisbippbii")end - -- labelTitle: Label of the alert's title. - -- labelMsg: Label of the alert's message. - -- p2: This is an enum, check the description for a list. - -- p3: This is an enum, check the description for a list. - -- labelMsg2: Label of another message line - -- p5: usually 0 - -- p6: usually -1 - -- p7: usually 0 - -- p8: unknown label - -- p9: unknown label - -- background: Set to anything other than 0 or false (even any string) and it will draw a background. Setting it to 0 or false will draw no background. - -- errorCode: Error code, shown at the bottom left if set to value other than 0. - -- - -- instructionalKey enum list: - -- Buttons = { - -- Empty = 0, - -- Select = 1, -- (RETURN) - -- Ok = 2, -- (RETURN) - -- Yes = 4, -- (RETURN) - -- Back = 8, -- (ESC) - -- Cancel = 16, -- (ESC) - -- No = 32, -- (ESC) - -- RetrySpace = 64, -- (SPACE) - -- Restart = 128, -- (SPACE) - -- Skip = 256, -- (SPACE) - -- Quit = 512, -- (ESC) - -- Adjust = 1024, -- (ARROWS) - -- SpaceKey = 2048, -- (SPACE) - -- Share = 4096, -- (SPACE) - -- SignIn = 8192, -- (SPACE) - -- Continue = 16384, -- (RETURN) - -- AdjustLeftRight = 32768, -- (SCROLL L/R) - -- AdjustUpDown = 65536, -- (SCROLL U/D) - -- Overwrite = 131072, -- (SPACE) - -- SocialClubSignup = 262144, -- (RETURN) - -- Confirm = 524288, -- (RETURN) - -- Queue = 1048576, -- (RETURN) - -- RetryReturn = 2097152, -- (RETURN) - -- BackEsc = 4194304, -- (ESC) - -- SocialClub = 8388608, -- (RETURN) - -- Spectate = 16777216, -- (SPACE) - -- OkEsc = 33554432, -- (ESC) - -- CancelTransfer = 67108864, -- (ESC) - -- LoadingSpinner = 134217728, - -- NoReturnToGTA = 268435456, -- (ESC) - -- CancelEsc = 536870912, -- (ESC) - -- } - -- - -- Alt = { - -- Empty = 0, - -- No = 1, -- (SPACE) - -- Host = 2, -- (ESC) - -- SearchForJob = 4, -- (RETURN) - -- ReturnKey = 8, -- (TURN) - -- Freemode = 16, -- (ESC) - -- } - -- - -- Example: https://i.imgur.com/TvmNF4k.png - SET_WARNING_MESSAGE_WITH_HEADER_AND_SUBSTRING_FLAGS_EXTENDED=--[[void]] function(--[[string]] labelTitle,--[[string]] labelMessage,--[[int]] p2,--[[int]] p3,--[[string]] labelMessage2,--[[BOOL (bool)]] p5,--[[int]] p6,--[[int]] p7,--[[string]] p8,--[[string]] p9,--[[BOOL (bool)]] background,--[[int]] errorCode)return native_invoker.unified_void(labelTitle, labelMessage, p2, p3, labelMessage2, p5, p6, p7, p8, p9, background, errorCode, 0x15803FEC3B9A872B, "ssiisbiissbi")end - -- Has to do with the confirmation overlay (E.g. confirm exit) - GET_WARNING_SCREEN_MESSAGE_HASH=--[[Hash (int)]] function()return native_invoker.unified_int(0x81DF9ABA6C83DFF9, "")end - -- Some sort of list displayed in a warning message. Yet unknown how to prevent repeating. - -- Param names copied from the corresponding scaleform function "SET_LIST_ROW". - -- Example: https://i.imgur.com/arKvOYx.png - SET_WARNING_MESSAGE_OPTION_ITEMS=--[[BOOL (bool)]] function(--[[int]] index,--[[string]] name,--[[int]] cash,--[[int]] rp,--[[int]] lvl,--[[int]] colour)return native_invoker.unified_bool(index, name, cash, rp, lvl, colour, 0x0C5A80A9E096D529, "isiiii")end - SET_WARNING_MESSAGE_OPTION_HIGHLIGHT=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0xDAF87174BE7454FF, "i")end - REMOVE_WARNING_MESSAGE_OPTION_ITEMS=--[[void]] function()return native_invoker.unified_void(0x6EF54AB721DC6242, "")end - IS_WARNING_MESSAGE_ACTIVE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xE18B138FABC53103, "")end - CLEAR_DYNAMIC_PAUSE_MENU_ERROR_MESSAGE=--[[void]] function()return native_invoker.unified_void(0x7792424AA0EAC32E, "")end - -- If toggle is true, the map is shown in full screen - -- If toggle is false, the map is shown in normal mode - CUSTOM_MINIMAP_SET_ACTIVE=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x5354C5BA2EA868A4, "b")end - -- Sets the sprite of the next BLIP_GALLERY blip, values used in the native scripts: 143 (ObjectiveBlue), 144 (ObjectiveGreen), 145 (ObjectiveRed), 146 (ObjectiveYellow). - CUSTOM_MINIMAP_SET_BLIP_OBJECT=--[[void]] function(--[[int]] spriteId)return native_invoker.unified_void(spriteId, 0x1EAE6DD17B7A5EFA, "i")end - -- Add a BLIP_GALLERY at the specific coordinate. Used in fm_maintain_transition_players to display race track points. - CUSTOM_MINIMAP_CREATE_BLIP=--[[int]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_int(x, y, z, 0x551DF99658DB6EE8, "fff")end - CUSTOM_MINIMAP_CLEAR_BLIPS=--[[void]] function()return native_invoker.unified_void(0x2708FC083123F9FF, "")end - -- Doesn't actually return anything. - FORCE_SONAR_BLIPS_THIS_FRAME=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x1121BFA1A1A522A8, "")end - GET_NORTH_BLID_INDEX=--[[Blip (int)]] function()return native_invoker.unified_int(0x3F0CF9CB7E589B88, "")end - -- Toggles whether or not name labels are shown on the expanded minimap next to player blips, like in GTA:O. - -- Doesn't need to be called every frame. - -- Preview: https://i.imgur.com/DfqKWfJ.png - -- - -- Make sure to call SET_BLIP_CATEGORY with index 7 for this to work on the desired blip. - DISPLAY_PLAYER_NAME_TAGS_ON_BLIPS=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x82CEDC33687E1F50, "b")end - -- This native does absolutely nothing, just a nullsub - DRAW_FRONTEND_BACKGROUND_THIS_FRAME=--[[void]] function()return native_invoker.unified_void(0x211C4EF450086857, "")end - DRAW_HUD_OVER_FADE_THIS_FRAME=--[[void]] function()return native_invoker.unified_void(0xBF4F34A85CA2970C, "")end - -- Does stuff like this: - -- gyazo.com/7fcb78ea3520e3dbc5b2c0c0f3712617 - -- - -- Example: - -- int GetHash = GET_HASH_KEY("fe_menu_version_corona_lobby"); - -- ACTIVATE_FRONTEND_MENU(GetHash, 0, -1); - -- - -- BOOL p1 is a toggle to define the game in pause. - -- int p2 is unknown but -1 always works, not sure why though. - -- - -- [30/03/2017] ins1de : - -- - -- the int p2 is actually a component variable. When the pause menu is visible, it opens the tab related to it. - -- - -- Example : Function.Call(Hash.ACTIVATE_FRONTEND_MENU,-1171018317, 0, 42); - -- Result : Opens the "Online" tab without pausing the menu, with -1 it opens the map.Below is a list of all known Frontend Menu Hashes. - -- - FE_MENU_VERSION_SP_PAUSE - -- - FE_MENU_VERSION_MP_PAUSE - -- - FE_MENU_VERSION_CREATOR_PAUSE - -- - FE_MENU_VERSION_CUTSCENE_PAUSE - -- - FE_MENU_VERSION_SAVEGAME - -- - FE_MENU_VERSION_PRE_LOBBY - -- - FE_MENU_VERSION_LOBBY - -- - FE_MENU_VERSION_MP_CHARACTER_SELECT - -- - FE_MENU_VERSION_MP_CHARACTER_CREATION - -- - FE_MENU_VERSION_EMPTY - -- - FE_MENU_VERSION_EMPTY_NO_BACKGROUND - -- - FE_MENU_VERSION_TEXT_SELECTION - -- - FE_MENU_VERSION_CORONA - -- - FE_MENU_VERSION_CORONA_LOBBY - -- - FE_MENU_VERSION_CORONA_JOINED_PLAYERS - -- - FE_MENU_VERSION_CORONA_INVITE_PLAYERS - -- - FE_MENU_VERSION_CORONA_INVITE_FRIENDS - -- - FE_MENU_VERSION_CORONA_INVITE_CREWS - -- - FE_MENU_VERSION_CORONA_INVITE_MATCHED_PLAYERS - -- - FE_MENU_VERSION_CORONA_INVITE_LAST_JOB_PLAYERS - -- - FE_MENU_VERSION_CORONA_RACE - -- - FE_MENU_VERSION_CORONA_BETTING - -- - FE_MENU_VERSION_JOINING_SCREEN - -- - FE_MENU_VERSION_LANDING_MENU - -- - FE_MENU_VERSION_LANDING_KEYMAPPING_MENU - ACTIVATE_FRONTEND_MENU=--[[void]] function(--[[Hash (int)]] menuhash,--[[BOOL (bool)]] togglePause,--[[int]] component)return native_invoker.unified_void(menuhash, togglePause, component, 0xEF01D36B9C9D0C7B, "ibi")end - -- Before using this native click the native above and look at the decription. - -- - -- Example: - -- int GetHash = Function.Call(Hash.GET_HASH_KEY, "fe_menu_version_corona_lobby"); - -- Function.Call(Hash.ACTIVATE_FRONTEND_MENU, GetHash, 0, -1); - -- Function.Call(Hash.RESTART_FRONTEND_MENU(GetHash, -1); - -- - -- This native refreshes the frontend menu. - -- - -- p1 = Hash of Menu - -- p2 = Unknown but always works with -1. - RESTART_FRONTEND_MENU=--[[void]] function(--[[Hash (int)]] menuHash,--[[int]] p1)return native_invoker.unified_void(menuHash, p1, 0x10706DC6AD2D49C0, "ii")end - -- if (HUD::GET_CURRENT_FRONTEND_MENU_VERSION() == joaat("fe_menu_version_empty_no_background")) - GET_CURRENT_FRONTEND_MENU_VERSION=--[[Hash (int)]] function()return native_invoker.unified_int(0x2309595AD6145265, "")end - SET_PAUSE_MENU_ACTIVE=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xDF47FC56C71569CF, "b")end - DISABLE_FRONTEND_THIS_FRAME=--[[void]] function()return native_invoker.unified_void(0x6D3465A73092F0E6, "")end - SUPPRESS_FRONTEND_RENDERING_THIS_FRAME=--[[void]] function()return native_invoker.unified_void(0xBA751764F0821256, "")end - -- Allows opening the pause menu this frame, when the player is dead. - ALLOW_PAUSE_WHEN_NOT_IN_STATE_OF_PLAY_THIS_FRAME=--[[void]] function()return native_invoker.unified_void(0xCC3FDDED67BCFC63, "")end - SET_FRONTEND_ACTIVE=--[[void]] function(--[[BOOL (bool)]] active)return native_invoker.unified_void(active, 0x745711A75AB09277, "b")end - IS_PAUSE_MENU_ACTIVE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xB0034A223497FFCB, "")end - IS_STORE_PENDING_NETWORK_SHUTDOWN_TO_OPEN=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x2F057596F2BD0061, "")end - -- Returns: - -- - -- 0 - -- 5 - -- 10 - -- 15 - -- 20 - -- 25 - -- 30 - -- 35 - -- - GET_PAUSE_MENU_STATE=--[[int]] function()return native_invoker.unified_int(0x272ACD84970869C5, "")end - GET_PAUSE_MENU_POSITION=--[[Vector3 (vector3)]] function()return native_invoker.unified_vector3(0x5BFF36D6ED83E0AE, "")end - IS_PAUSE_MENU_RESTARTING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x1C491717107431C7, "")end - -- Not present in retail version of the game, actual definiton seems to be - -- _LOG_DEBUG_INFO(const char* category, const char* debugText); - FORCE_SCRIPTED_GFX_WHEN_FRONTEND_ACTIVE=--[[void]] function(--[[string]] p0)return native_invoker.unified_void(p0, 0x2162C446DFDF38FD, "s")end - PAUSE_MENUCEPTION_GO_DEEPER=--[[void]] function(--[[int]] page)return native_invoker.unified_void(page, 0x77F16B447824DA6C, "i")end - PAUSE_MENUCEPTION_THE_KICK=--[[void]] function()return native_invoker.unified_void(0xCDCA26E80FAECB8F, "")end - PAUSE_TOGGLE_FULLSCREEN_MAP=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x2DE6C5E2E996F178, "i")end - -- Activates the specified frontend menu context. - -- pausemenu.xml defines some specific menu options using 'context'. Context is basically a 'condition'. - -- The `*ALL*` part of the context means that whatever is being defined, will be active when any or all of those conditions after `*ALL*` are met. - -- The `*NONE*` part of the context section means that whatever is being defined, will NOT be active if any or all of the conditions after `*NONE*` are met. - -- This basically allows you to hide certain menu sections, or things like instructional buttons. - PAUSE_MENU_ACTIVATE_CONTEXT=--[[void]] function(--[[Hash (int)]] contextHash)return native_invoker.unified_void(contextHash, 0xDD564BDD0472C936, "i")end - PAUSE_MENU_DEACTIVATE_CONTEXT=--[[void]] function(--[[Hash (int)]] contextHash)return native_invoker.unified_void(contextHash, 0x444D8CF241EC25C5, "i")end - PAUSE_MENU_IS_CONTEXT_ACTIVE=--[[BOOL (bool)]] function(--[[Hash (int)]] contextHash)return native_invoker.unified_bool(contextHash, 0x84698AB38D0C6636, "i")end - PAUSE_MENU_IS_CONTEXT_MENU_ACTIVE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x2A25ADC48F87841F, "")end - PAUSE_MENU_GET_HAIR_COLOUR_INDEX=--[[int]] function()return native_invoker.unified_int(0xDE03620F8703A9DF, "")end - PAUSE_MENU_GET_MOUSE_HOVER_INDEX=--[[int]] function()return native_invoker.unified_int(0x359AF31A4B52F5ED, "")end - PAUSE_MENU_GET_MOUSE_HOVER_UNIQUE_ID=--[[int]] function()return native_invoker.unified_int(0x13C4B962653A5280, "")end - PAUSE_MENU_GET_MOUSE_CLICK_EVENT=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[Any* (pointer)]] p1,--[[Any* (pointer)]] p2)return native_invoker.unified_bool(p0, p1, p2, 0xC8E1071177A23BE5, "ppp")end - PAUSE_MENU_REDRAW_INSTRUCTIONAL_BUTTONS=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0x4895BDEA16E7C080, "i")end - PAUSE_MENU_SET_BUSY_SPINNER=--[[void]] function(--[[BOOL (bool)]] p0,--[[int]] position,--[[int]] spinnerIndex)return native_invoker.unified_void(p0, position, spinnerIndex, 0xC78E239AC5B2DDB9, "bii")end - PAUSE_MENU_SET_WARN_ON_TAB_CHANGE=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xF06EBB91A81E09E3, "b")end - IS_FRONTEND_READY_FOR_CONTROL=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x3BAB9A4E4F2FF5C7, "")end - -- Disables frontend (works in custom frontends, not sure about regular pause menu) navigation keys on keyboard. Not sure about controller. Does not disable mouse controls. No need to call this every tick. - -- - -- To enable the keys again, use `0x14621BB1DF14E2B2`. - TAKE_CONTROL_OF_FRONTEND=--[[void]] function()return native_invoker.unified_void(0xEC9264727EEC0F28, "")end - -- Enables frontend (works in custom frontends, not sure about regular pause menu) navigation keys on keyboard if they were disabled using the native below. - -- To disable the keys, use `0xEC9264727EEC0F28` - RELEASE_CONTROL_OF_FRONTEND=--[[void]] function()return native_invoker.unified_void(0x14621BB1DF14E2B2, "")end - CODE_WANTS_SCRIPT_TO_TAKE_CONTROL=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x66E7CB63C97B7D20, "")end - GET_SCREEN_CODE_WANTS_SCRIPT_TO_CONTROL=--[[int]] function()return native_invoker.unified_int(0x593FEAE1F73392D4, "")end - IS_NAVIGATING_MENU_CONTENT=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x4E3CD0EF8A489541, "")end - HAS_MENU_TRIGGER_EVENT_OCCURRED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xF284AC67940C6812, "")end - HAS_MENU_LAYOUT_CHANGED_EVENT_OCCURRED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x2E22FEFA0100275E, "")end - SET_SAVEGAME_LIST_UNIQUE_ID=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x0CF54F20DE43879C, "i")end - GET_MENU_TRIGGER_EVENT_DETAILS=--[[void]] function(--[[int* (pointer)]] lastItemMenuId,--[[int* (pointer)]] selectedItemUniqueId)return native_invoker.unified_void(lastItemMenuId, selectedItemUniqueId, 0x36C1451A88A09630, "pp")end - -- lastItemMenuId: this is the menuID of the last selected item minus 1000 (lastItem.menuID - 1000) - -- selectedItemMenuId: same as lastItemMenuId except for the currently selected menu item - -- selectedItemUniqueId: this is uniqueID of the currently selected menu item - -- - -- when the pausemenu is closed: - -- lastItemMenuId = -1 - -- selectedItemMenuId = -1 - -- selectedItemUniqueId = 0 - -- - -- when the header gains focus: - -- lastItemMenuId updates as normal or 0 if the pausemenu was just opened - -- selectedItemMenuId becomes a unique id for the pausemenu page that focus was taken from (?) or 0 if the pausemenu was just opened - -- selectedItemUniqueId = -1 - -- - -- when focus is moved from the header to a pausemenu page: - -- lastItemMenuId becomes a unique id for the pausemenu page that focus was moved to (?) - -- selectedItemMenuId = -1 - -- selectedItemUniqueId updates as normal - GET_MENU_LAYOUT_CHANGED_EVENT_DETAILS=--[[void]] function(--[[int* (pointer)]] lastItemMenuId,--[[int* (pointer)]] selectedItemMenuId,--[[int* (pointer)]] selectedItemUniqueId)return native_invoker.unified_void(lastItemMenuId, selectedItemMenuId, selectedItemUniqueId, 0x7E17BE53E1AAABAF, "ppp")end - GET_PM_PLAYER_CREW_COLOR=--[[BOOL (bool)]] function(--[[int* (pointer)]] r,--[[int* (pointer)]] g,--[[int* (pointer)]] b)return native_invoker.unified_bool(r, g, b, 0xA238192F33110615, "ppp")end - GET_MENU_PED_INT_STAT=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any* (pointer)]] p1)return native_invoker.unified_bool(p0, p1, 0xEF4CED81CEBEDC6D, "ip")end - GET_CHARACTER_MENU_PED_INT_STAT=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any* (pointer)]] p1,--[[Any (int)]] p2)return native_invoker.unified_bool(p0, p1, p2, 0xCA6B2F7CE32AB653, "ipi")end - GET_MENU_PED_MASKED_INT_STAT=--[[BOOL (bool)]] function(--[[Hash (int)]] statHash,--[[int* (pointer)]] outValue,--[[int]] mask,--[[BOOL (bool)]] p3)return native_invoker.unified_bool(statHash, outValue, mask, p3, 0x90A6526CF0381030, "ipib")end - GET_CHARACTER_MENU_PED_MASKED_INT_STAT=--[[BOOL (bool)]] function(--[[Hash (int)]] statHash,--[[Any* (pointer)]] outValue,--[[int]] p2,--[[int]] mask,--[[BOOL (bool)]] p4)return native_invoker.unified_bool(statHash, outValue, p2, mask, p4, 0x24A49BEAF468DC90, "ipiib")end - GET_MENU_PED_FLOAT_STAT=--[[BOOL (bool)]] function(--[[Hash (int)]] statHash,--[[float* (pointer)]] outValue)return native_invoker.unified_bool(statHash, outValue, 0x5FBD7095FE7AE57F, "ip")end - GET_CHARACTER_MENU_PED_FLOAT_STAT=--[[BOOL (bool)]] function(--[[float]] statHash,--[[float* (pointer)]] outValue,--[[BOOL (bool)]] p2)return native_invoker.unified_bool(statHash, outValue, p2, 0x8F08017F9D7C47BD, "fpb")end - -- p0 was always 0xAE2602A3. - GET_MENU_PED_BOOL_STAT=--[[BOOL (bool)]] function(--[[Hash (int)]] statHash,--[[BOOL* (pointer)]] outValue)return native_invoker.unified_bool(statHash, outValue, 0x052991E59076E4E4, "ip")end - CLEAR_PED_IN_PAUSE_MENU=--[[void]] function()return native_invoker.unified_void(0x5E62BE5DC58E9E06, "")end - -- p1 is either 1 or 2 in the PC scripts. - GIVE_PED_TO_PAUSE_MENU=--[[void]] function(--[[Ped (int)]] ped,--[[int]] p1)return native_invoker.unified_void(ped, p1, 0xAC0BFBDC3BE00E14, "ii")end - -- Toggles the light state for the pause menu ped in frontend menus. - -- - -- This is used by R* in combination with `SET_PAUSE_MENU_PED_SLEEP_STATE` to toggle the "offline" or "online" state in the "friends" tab of the pause menu in GTA Online. - -- - -- - -- Example: - -- Lights On: https://vespura.com/hi/i/2019-04-01_16-09_540ee_1015.png - -- Lights Off: https://vespura.com/hi/i/2019-04-01_16-10_8b5e7_1016.png - SET_PAUSE_MENU_PED_LIGHTING=--[[void]] function(--[[BOOL (bool)]] state)return native_invoker.unified_void(state, 0x3CA6050692BC61B0, "b")end - -- Toggles the pause menu ped sleep state for frontend menus. - -- - -- Example: https://vespura.com/hi/i/2019-04-01_15-51_8ed38_1014.gif - -- - -- `state` 0 will make the ped slowly fall asleep, 1 will slowly wake the ped up. - SET_PAUSE_MENU_PED_SLEEP_STATE=--[[void]] function(--[[BOOL (bool)]] state)return native_invoker.unified_void(state, 0xECF128344E9FF9F1, "b")end - OPEN_ONLINE_POLICIES_MENU=--[[void]] function()return native_invoker.unified_void(0x805D7CBB36FD6C4C, "")end - ARE_ONLINE_POLICIES_UP_TO_DATE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xF13FE2A80C05C561, "")end - -- Returns the same as IS_SOCIAL_CLUB_ACTIVE - IS_ONLINE_POLICIES_MENU_ACTIVE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x6F72CD94F7B5B68C, "")end - -- Uses the `SOCIAL_CLUB2` scaleform. - -- menu: GALLERY, MISSIONS, CREWS, MIGRATE, PLAYLISTS, JOBS - OPEN_SOCIAL_CLUB_MENU=--[[void]] function(--[[Hash (int)]] menu)return native_invoker.unified_void(menu, 0x75D3691713C3B05A, "i")end - CLOSE_SOCIAL_CLUB_MENU=--[[void]] function()return native_invoker.unified_void(0xD2B32BE3FC1626C6, "")end - -- HUD::SET_SOCIAL_CLUB_TOUR("Gallery"); - -- HUD::SET_SOCIAL_CLUB_TOUR("Missions"); - -- HUD::SET_SOCIAL_CLUB_TOUR("General"); - -- HUD::SET_SOCIAL_CLUB_TOUR("Playlists"); - SET_SOCIAL_CLUB_TOUR=--[[void]] function(--[[string]] name)return native_invoker.unified_void(name, 0x9E778248D6685FE0, "s")end - IS_SOCIAL_CLUB_ACTIVE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC406BE343FC4B9AF, "")end - SET_TEXT_INPUT_BOX_ENABLED=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x1185A8087587322C, "b")end - FORCE_CLOSE_TEXT_INPUT_BOX=--[[void]] function()return native_invoker.unified_void(0x8817605C2BA76200, "")end - SET_ALLOW_COMMA_ON_TEXT_INPUT=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x577599CCED639CA2, "i")end - OVERRIDE_MP_TEXT_CHAT_TEAM_STRING=--[[void]] function(--[[Hash (int)]] gxtEntryHash)return native_invoker.unified_void(gxtEntryHash, 0x6A1738B4323FE2D9, "i")end - -- Returns whether or not the text chat (MULTIPLAYER_CHAT Scaleform component) is active. - IS_MP_TEXT_CHAT_TYPING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xB118AF58B5F332A1, "")end - CLOSE_MP_TEXT_CHAT=--[[void]] function()return native_invoker.unified_void(0x1AC8F4AD40E22127, "")end - MP_TEXT_CHAT_IS_TEAM_JOB=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x7C226D5346D4D10A, "i")end - OVERRIDE_MP_TEXT_CHAT_COLOR=--[[void]] function(--[[int]] p0,--[[int]] hudColor)return native_invoker.unified_void(p0, hudColor, 0xF47E567B3630DD12, "ii")end - -- Hides the chat history, closes the input box and makes it unable to be opened unless called again with FALSE. - MP_TEXT_CHAT_DISABLE=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x1DB21A44B09E8BA3, "b")end - FLAG_PLAYER_CONTEXT_IN_TOURNAMENT=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xCEF214315D276FD1, "b")end - -- This native turns on the AI blip on the specified ped. It also disappears automatically when the ped is too far or if the ped is dead. You don't need to control it with other natives. - -- - -- See gtaforums.com/topic/884370-native-research-ai-blips for further information. - SET_PED_HAS_AI_BLIP=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] hasCone)return native_invoker.unified_void(ped, hasCone, 0xD30C50DF888D58B5, "ib")end - -- color: see SET_BLIP_COLOUR - SET_PED_HAS_AI_BLIP_WITH_COLOUR=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] hasCone,--[[int]] color)return native_invoker.unified_void(ped, hasCone, color, 0xB13DCB4C6FAAD238, "ibi")end - DOES_PED_HAVE_AI_BLIP=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x15B8ECF844EE67ED, "i")end - SET_PED_AI_BLIP_GANG_ID=--[[void]] function(--[[Ped (int)]] ped,--[[int]] gangId)return native_invoker.unified_void(ped, gangId, 0xE52B8E7F85D39A08, "ii")end - SET_PED_AI_BLIP_HAS_CONE=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x3EED80DFF7325CAA, "ib")end - SET_PED_AI_BLIP_FORCED_ON=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x0C4BBF625CA98C4E, "ib")end - SET_PED_AI_BLIP_NOTICE_RANGE=--[[void]] function(--[[Ped (int)]] ped,--[[float]] range)return native_invoker.unified_void(ped, range, 0x97C65887D4B37FA9, "if")end - SET_PED_AI_BLIP_SPRITE=--[[void]] function(--[[Ped (int)]] ped,--[[int]] spriteId)return native_invoker.unified_void(ped, spriteId, 0xFCFACD0DB9D7A57D, "ii")end - GET_AI_PED_PED_BLIP_INDEX=--[[Blip (int)]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x7CD934010E115C2C, "i")end - -- Returns the current AI BLIP for the specified ped - GET_AI_PED_VEHICLE_BLIP_INDEX=--[[Blip (int)]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x56176892826A4FE8, "i")end - HAS_DIRECTOR_MODE_BEEN_LAUNCHED_BY_CODE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xA277800A9EAE340E, "")end - SET_DIRECTOR_MODE_LAUNCHED_BY_SCRIPT=--[[void]] function()return native_invoker.unified_void(0x2632482FD6B9AB87, "")end - -- If toggle is true, hides special ability bar / character name in the pause menu - -- If toggle is false, shows special ability bar / character name in the pause menu - SET_PLAYER_IS_IN_DIRECTOR_MODE=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x808519373FD336A3, "b")end - SET_DIRECTOR_MODE_AVAILABLE=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x04655F9D075D0AE5, "b")end - HIDE_HUDMARKERS_THIS_FRAME=--[[void]] function()return native_invoker.unified_void(0x243296A510B562B6, "")end --- INTERIOR - GET_INTERIOR_HEADING=--[[float]] function(--[[Interior (int)]] interior)return native_invoker.unified_float(interior, 0xF49B58631D9E22D9, "i")end - GET_INTERIOR_LOCATION_AND_NAMEHASH=--[[void]] function(--[[Interior (int)]] interior,--[[Vector3* (pointer)]] position,--[[Hash* (pointer)]] nameHash)return native_invoker.unified_void(interior, position, nameHash, 0x252BDC06B73FA6EA, "ipp")end - -- Returns the group ID of the specified interior. - -- 0 = default - -- 1 = subway station, subway tracks, sewers - -- 3 = train tunnel under mirror park - -- 5 = tunnel near del perro - -- 6 = train tunnel near chilliad - -- 7 = train tunnel near josiah - -- 8 = train tunnel in sandy shores - -- 9 = braddock tunnel (near chilliad) - -- 12 = tunnel under fort zancudo - -- 14 = train tunnel under cypress flats - -- 18 = rockford plaza parking garage - -- 19 = arcadius parking garage - -- 20 = union depository parking garage - -- 21 = fib parking garage - GET_INTERIOR_GROUP_ID=--[[int]] function(--[[Interior (int)]] interior)return native_invoker.unified_int(interior, 0xE4A84ABF135EF91A, "i")end - GET_OFFSET_FROM_INTERIOR_IN_WORLD_COORDS=--[[Vector3 (vector3)]] function(--[[Interior (int)]] interior,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_vector3(interior, x, y, z, 0x9E3B3E6D66F6E22F, "ifff")end - IS_INTERIOR_SCENE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xBC72B5D7A1CBD54D, "")end - IS_VALID_INTERIOR=--[[BOOL (bool)]] function(--[[Interior (int)]] interior)return native_invoker.unified_bool(interior, 0x26B0E73D7EAAF4D3, "i")end - CLEAR_ROOM_FOR_ENTITY=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0xB365FC0C4E27FFA7, "i")end - FORCE_ROOM_FOR_ENTITY=--[[void]] function(--[[Entity (int)]] entity,--[[Interior (int)]] interior,--[[Hash (int)]] roomHashKey)return native_invoker.unified_void(entity, interior, roomHashKey, 0x52923C4710DD9907, "iii")end - -- Gets the room hash key from the room that the specified entity is in. Each room in every interior has a unique key. Returns 0 if the entity is outside. - GET_ROOM_KEY_FROM_ENTITY=--[[Hash (int)]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0x47C2A06D4F5F424B, "i")end - -- Seems to do the exact same as INTERIOR::GET_ROOM_KEY_FROM_ENTITY - GET_KEY_FOR_ENTITY_IN_ROOM=--[[Hash (int)]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0x399685DB942336BC, "i")end - -- Returns the handle of the interior that the entity is in. Returns 0 if outside. - GET_INTERIOR_FROM_ENTITY=--[[Interior (int)]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0x2107BA504071A6BB, "i")end - RETAIN_ENTITY_IN_INTERIOR=--[[void]] function(--[[Entity (int)]] entity,--[[Interior (int)]] interior)return native_invoker.unified_void(entity, interior, 0x82EBB79E258FA2B7, "ii")end - -- Immediately removes entity from an interior. Like sets entity to `limbo` room. - CLEAR_INTERIOR_STATE_OF_ENTITY=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0x85D5422B2039A70D, "i")end - FORCE_ACTIVATING_TRACKING_ON_ENTITY=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x38C1CB1CB119A016, "ii")end - FORCE_ROOM_FOR_GAME_VIEWPORT=--[[void]] function(--[[int]] interiorID,--[[Hash (int)]] roomHashKey)return native_invoker.unified_void(interiorID, roomHashKey, 0x920D853F3E17F1DA, "ii")end - -- Example of use (carmod_shop) - -- INTERIOR::SET_ROOM_FOR_GAME_VIEWPORT_BY_NAME("V_CarModRoom"); - SET_ROOM_FOR_GAME_VIEWPORT_BY_NAME=--[[void]] function(--[[string]] roomName)return native_invoker.unified_void(roomName, 0xAF348AFCB575A441, "s")end - -- Usage: INTERIOR::SET_ROOM_FOR_GAME_VIEWPORT_BY_KEY(INTERIOR::GET_KEY_FOR_ENTITY_IN_ROOM(PLAYER::PLAYER_PED_ID())); - SET_ROOM_FOR_GAME_VIEWPORT_BY_KEY=--[[void]] function(--[[Hash (int)]] roomHashKey)return native_invoker.unified_void(roomHashKey, 0x405DC2AEF6AF95B9, "i")end - GET_ROOM_KEY_FOR_GAME_VIEWPORT=--[[Hash (int)]] function()return native_invoker.unified_int(0xA6575914D2A0B450, "")end - CLEAR_ROOM_FOR_GAME_VIEWPORT=--[[void]] function()return native_invoker.unified_void(0x23B59D8912F94246, "")end - -- Returns the current interior id from gameplay camera - GET_INTERIOR_FROM_PRIMARY_VIEW=--[[Interior (int)]] function()return native_invoker.unified_int(0xE7D267EC6CA966C3, "")end - -- Returns interior ID from specified coordinates. If coordinates are outside, then it returns 0. - -- - -- Example for VB.NET - -- Dim interiorID As Integer = Native.Function.Call(Of Integer)(Hash.GET_INTERIOR_AT_COORDS, X, Y, Z) - GET_INTERIOR_AT_COORDS=--[[Interior (int)]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_int(x, y, z, 0xB0F7F8663821D9C3, "fff")end - ADD_PICKUP_TO_INTERIOR_ROOM_BY_NAME=--[[void]] function(--[[Pickup (int)]] pickup,--[[string]] roomName)return native_invoker.unified_void(pickup, roomName, 0x3F6167F351168730, "is")end - PIN_INTERIOR_IN_MEMORY=--[[void]] function(--[[Interior (int)]] interior)return native_invoker.unified_void(interior, 0x2CA429C029CCF247, "i")end - -- Does something similar to INTERIOR::DISABLE_INTERIOR. - -- - -- You don't fall through the floor but everything is invisible inside and looks the same as when INTERIOR::DISABLE_INTERIOR is used. Peds behaves normally inside. - UNPIN_INTERIOR=--[[void]] function(--[[Interior (int)]] interior)return native_invoker.unified_void(interior, 0x261CCE7EED010641, "i")end - IS_INTERIOR_READY=--[[BOOL (bool)]] function(--[[Interior (int)]] interior)return native_invoker.unified_bool(interior, 0x6726BDCCC1932F0E, "i")end - -- Only used once in the entire game scripts. - -- Does not actually return anything. - SET_INTERIOR_IN_USE=--[[BOOL (bool)]] function(--[[Interior (int)]] interior)return native_invoker.unified_bool(interior, 0x4C2330E61D3DEB56, "i")end - -- Returns the interior ID representing the requested interior at that location (if found?). The supplied interior string is not the same as the one used to load the interior. - -- - -- Use: INTERIOR::UNPIN_INTERIOR(INTERIOR::GET_INTERIOR_AT_COORDS_WITH_TYPE(x, y, z, interior)) - -- - -- Interior types include: "V_Michael", "V_Franklins", "V_Franklinshouse", etc.. you can find them in the scripts. - -- - -- Not a very useful native as you could just use GET_INTERIOR_AT_COORDS instead and get the same result, without even having to specify the interior type. - GET_INTERIOR_AT_COORDS_WITH_TYPE=--[[Interior (int)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[string]] interiorType)return native_invoker.unified_int(x, y, z, interiorType, 0x05B7A89BD78797FC, "fffs")end - -- Hashed version of GET_INTERIOR_AT_COORDS_WITH_TYPE - GET_INTERIOR_AT_COORDS_WITH_TYPEHASH=--[[Interior (int)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[Hash (int)]] typeHash)return native_invoker.unified_int(x, y, z, typeHash, 0xF0F77ADB9F67E79D, "fffi")end - ACTIVATE_INTERIOR_GROUPS_USING_CAMERA=--[[void]] function()return native_invoker.unified_void(0x483ACA1176CA93F1, "")end - -- Returns true if the collision at the specified coords is marked as being outside (false if there's an interior) - IS_COLLISION_MARKED_OUTSIDE=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_bool(x, y, z, 0xEEA5AC2EDA7C33E8, "fff")end - GET_INTERIOR_FROM_COLLISION=--[[Interior (int)]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_int(x, y, z, 0xEC4CF9FCB29A4424, "fff")end - ENABLE_STADIUM_PROBES_THIS_FRAME=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x7ECDF98587E92DEC, "b")end - -- More info: http://gtaforums.com/topic/836367-adding-props-to-interiors/ - -- - -- Full list of IPLs and interior entity sets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ipls.json - ACTIVATE_INTERIOR_ENTITY_SET=--[[void]] function(--[[Interior (int)]] interior,--[[string]] entitySetName)return native_invoker.unified_void(interior, entitySetName, 0x55E86AF2712B36A1, "is")end - -- Full list of IPLs and interior entity sets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ipls.json - DEACTIVATE_INTERIOR_ENTITY_SET=--[[void]] function(--[[Interior (int)]] interior,--[[string]] entitySetName)return native_invoker.unified_void(interior, entitySetName, 0x420BD37289EEE162, "is")end - -- Full list of IPLs and interior entity sets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ipls.json - IS_INTERIOR_ENTITY_SET_ACTIVE=--[[BOOL (bool)]] function(--[[Interior (int)]] interior,--[[string]] entitySetName)return native_invoker.unified_bool(interior, entitySetName, 0x35F7DD45E8C0A16D, "is")end - -- Full list of IPLs and interior entity sets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ipls.json - SET_INTERIOR_ENTITY_SET_TINT_INDEX=--[[void]] function(--[[Interior (int)]] interior,--[[string]] entitySetName,--[[int]] color)return native_invoker.unified_void(interior, entitySetName, color, 0xC1F1920BAF281317, "isi")end - REFRESH_INTERIOR=--[[void]] function(--[[Interior (int)]] interior)return native_invoker.unified_void(interior, 0x41F37C3427C75AE0, "i")end - -- This is the native that is used to hide the exterior of GTA Online apartment buildings when you are inside an apartment. - -- - -- More info: http://gtaforums.com/topic/836301-hiding-gta-online-apartment-exteriors/ - ENABLE_EXTERIOR_CULL_MODEL_THIS_FRAME=--[[void]] function(--[[Hash (int)]] mapObjectHash)return native_invoker.unified_void(mapObjectHash, 0xA97F257D0151A6AB, "i")end - ENABLE_SHADOW_CULL_MODEL_THIS_FRAME=--[[void]] function(--[[Hash (int)]] mapObjectHash)return native_invoker.unified_void(mapObjectHash, 0x50C375537449F369, "i")end - -- Example: - -- This removes the interior from the strip club and when trying to walk inside the player just falls: - -- - -- INTERIOR::DISABLE_INTERIOR(118018, true); - DISABLE_INTERIOR=--[[void]] function(--[[Interior (int)]] interior,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(interior, toggle, 0x6170941419D7D8EC, "ib")end - IS_INTERIOR_DISABLED=--[[BOOL (bool)]] function(--[[Interior (int)]] interior)return native_invoker.unified_bool(interior, 0xBC5115A5A939DD15, "i")end - -- Does something similar to INTERIOR::DISABLE_INTERIOR - CAP_INTERIOR=--[[void]] function(--[[Interior (int)]] interior,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(interior, toggle, 0xD9175F941610DB54, "ib")end - IS_INTERIOR_CAPPED=--[[BOOL (bool)]] function(--[[Interior (int)]] interior)return native_invoker.unified_bool(interior, 0x92BAC8ACF88CEC26, "i")end - DISABLE_METRO_SYSTEM=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x9E6542F0CE8E70A3, "b")end - -- Jenkins hash _might_ be 0xFC227584. - SET_IS_EXTERIOR_ONLY=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0x7241CCB7D020DB69, "ib")end --- ITEMSET - CREATE_ITEMSET=--[[ScrHandle (int)]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_int(p0, 0x35AD299F50D91B24, "b")end - DESTROY_ITEMSET=--[[void]] function(--[[ScrHandle (int)]] itemset)return native_invoker.unified_void(itemset, 0xDE18220B1C183EDA, "i")end - IS_ITEMSET_VALID=--[[BOOL (bool)]] function(--[[ScrHandle (int)]] itemset)return native_invoker.unified_bool(itemset, 0xB1B1EA596344DFAB, "i")end - ADD_TO_ITEMSET=--[[BOOL (bool)]] function(--[[ScrHandle (int)]] item,--[[ScrHandle (int)]] itemset)return native_invoker.unified_bool(item, itemset, 0xE3945201F14637DD, "ii")end - REMOVE_FROM_ITEMSET=--[[void]] function(--[[ScrHandle (int)]] item,--[[ScrHandle (int)]] itemset)return native_invoker.unified_void(item, itemset, 0x25E68244B0177686, "ii")end - GET_ITEMSET_SIZE=--[[int]] function(--[[ScrHandle (int)]] itemset)return native_invoker.unified_int(itemset, 0xD9127E83ABF7C631, "i")end - GET_INDEXED_ITEM_IN_ITEMSET=--[[ScrHandle (int)]] function(--[[int]] index,--[[ScrHandle (int)]] itemset)return native_invoker.unified_int(index, itemset, 0x7A197E2521EE2BAB, "ii")end - IS_IN_ITEMSET=--[[BOOL (bool)]] function(--[[ScrHandle (int)]] item,--[[ScrHandle (int)]] itemset)return native_invoker.unified_bool(item, itemset, 0x2D0FC594D1E9C107, "ii")end - CLEAN_ITEMSET=--[[void]] function(--[[ScrHandle (int)]] itemset)return native_invoker.unified_void(itemset, 0x41BC0D722FC04221, "i")end --- LOADINGSCREEN - -- This function is hard-coded to always return 0. - LOBBY_AUTO_MULTIPLAYER_MENU=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xF2CA003F167E21D2, "")end - LOBBY_AUTO_MULTIPLAYER_FREEMODE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xEF7D17BC6C85264C, "")end - LOBBY_SET_AUTO_MULTIPLAYER=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xB0C56BD3D808D863, "b")end - LOBBY_AUTO_MULTIPLAYER_EVENT=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x8AA464D4E0F6ACCD, "")end - LOBBY_SET_AUTO_MULTIPLAYER_EVENT=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xFC309E94546FCDB5, "b")end - LOBBY_AUTO_MULTIPLAYER_RANDOM_JOB=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC6DC823253FBB366, "")end - LOBBY_SET_AUTO_MP_RANDOM_JOB=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xC7E7181C09F33B69, "b")end - SHUTDOWN_SESSION_CLEARS_AUTO_MULTIPLAYER=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xFA1E0E893D915215, "b")end --- LOCALIZATION - -- Same return values as GET_CURRENT_LANGUAGE - LOCALIZATION_GET_SYSTEM_LANGUAGE=--[[int]] function()return native_invoker.unified_int(0x497420E022796B3F, "")end - -- 0 = american (en-US) - -- 1 = french (fr-FR) - -- 2 = german (de-DE) - -- 3 = italian (it-IT) - -- 4 = spanish (es-ES) - -- 5 = brazilian (pt-BR) - -- 6 = polish (pl-PL) - -- 7 = russian (ru-RU) - -- 8 = korean (ko-KR) - -- 9 = chinesetrad (zh-TW) - -- 10 = japanese (ja-JP) - -- 11 = mexican (es-MX) - -- 12 = chinesesimp (zh-CN) - GET_CURRENT_LANGUAGE=--[[int]] function()return native_invoker.unified_int(0x2BDD44CC428A7EAE, "")end - -- Possible return values: 0, 1, 2 - LOCALIZATION_GET_SYSTEM_DATE_TYPE=--[[int]] function()return native_invoker.unified_int(0xA8AE43AEC1A61314, "")end --- MISC - GET_ALLOCATED_STACK_SIZE=--[[int]] function()return native_invoker.unified_int(0x8B3CA62B1EF19B62, "")end - GET_NUMBER_OF_FREE_STACKS_OF_THIS_SIZE=--[[int]] function(--[[int]] stackSize)return native_invoker.unified_int(stackSize, 0xFEAD16FC8F9DFC0F, "i")end - SET_RANDOM_SEED=--[[void]] function(--[[int]] seed)return native_invoker.unified_void(seed, 0x444D98F98C11F3EC, "i")end - -- Maximum value is 1. - -- At a value of 0 the game will still run at a minimum time scale. - -- - -- Slow Motion 1: 0.6 - -- Slow Motion 2: 0.4 - -- Slow Motion 3: 0.2 - SET_TIME_SCALE=--[[void]] function(--[[float]] timeScale)return native_invoker.unified_void(timeScale, 0x1D408577D440E81E, "f")end - -- If true, the player can't save the game. - -- - -- - -- If the parameter is true, sets the mission flag to true, if the parameter is false, the function does nothing at all. - -- - -- ^ also, if the mission flag is already set, the function does nothing at all - SET_MISSION_FLAG=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xC4301E5121A0ED73, "b")end - GET_MISSION_FLAG=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xA33CDCCDA663159E, "")end - -- If the parameter is true, sets the random event flag to true, if the parameter is false, the function does nothing at all. - -- Does nothing if the mission flag is set. - SET_RANDOM_EVENT_FLAG=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x971927086CFD2158, "b")end - GET_RANDOM_EVENT_FLAG=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xD2D57F1D764117B1, "")end - -- Returns pointer to an empty string. - GET_CONTENT_TO_LOAD=--[[string]] function()return native_invoker.unified_string(0x24DA7D7667FD7B09, "")end - -- Does nothing (it's a nullsub). Seems to be PS4 specific. - ACTIVITY_FEED_CREATE=--[[void]] function(--[[string]] p0,--[[string]] p1)return native_invoker.unified_void(p0, p1, 0x4DCDF92BF64236CD, "ss")end - -- Does nothing (it's a nullsub). Seems to be PS4 specific. - ACTIVITY_FEED_ADD_SUBSTRING_TO_CAPTION=--[[void]] function(--[[string]] p0)return native_invoker.unified_void(p0, 0x31125FD509D9043F, "s")end - -- Does nothing (it's a nullsub). Seems to be PS4 specific. - ACTIVITY_FEED_ADD_LITERAL_SUBSTRING_TO_CAPTION=--[[void]] function(--[[string]] p0)return native_invoker.unified_void(p0, 0xEBD3205A207939ED, "s")end - -- Does nothing (it's a nullsub). Seems to be PS4 specific. - ACTIVITY_FEED_ADD_INT_TO_CAPTION=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x97E7E2C04245115B, "i")end - -- Does nothing (it's a nullsub). Seems to be PS4 specific. - ACTIVITY_FEED_LARGE_IMAGE_URL=--[[void]] function(--[[string]] p0)return native_invoker.unified_void(p0, 0x916CA67D26FD1E37, "s")end - -- Does nothing (it's a nullsub). Seems to be PS4 specific. - ACTIVITY_FEED_ACTION_START_WITH_COMMAND_LINE=--[[void]] function(--[[string]] p0,--[[string]] p1)return native_invoker.unified_void(p0, p1, 0xEB078CA2B5E82ADD, "ss")end - -- Does nothing (it's a nullsub). Seems to be PS4 specific. - ACTIVITY_FEED_ACTION_START_WITH_COMMAND_LINE_ADD=--[[void]] function(--[[string]] p0)return native_invoker.unified_void(p0, 0x703CC7F60CBB2B57, "s")end - -- Does nothing (it's a nullsub). Seems to be PS4 specific. - ACTIVITY_FEED_POST=--[[void]] function()return native_invoker.unified_void(0x8951EB9C6906D3C8, "")end - -- Does nothing (it's a nullsub). Seems to be PS4 specific. - -- - -- Used only once in the scripts (ingamehud) with p0 = "AF_GAMEMODE" - ACTIVITY_FEED_ONLINE_PLAYED_WITH_POST=--[[void]] function(--[[string]] p0)return native_invoker.unified_void(p0, 0xBA4B8D83BDC75551, "s")end - -- Hardcoded to return false. - HAS_RESUMED_FROM_SUSPEND=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xE8B9C0EC9E183F35, "")end - -- Sets GtaThread+0x14A - SET_SCRIPT_HIGH_PRIO=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x65D2EBB47E1CEC21, "b")end - -- Sets bit 3 in GtaThread+0x150 - SET_THIS_IS_A_TRIGGER_SCRIPT=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x6F2135B6129620C1, "b")end - INFORM_CODE_OF_CONTENT_ID_OF_CURRENT_UGC_MISSION=--[[void]] function(--[[string]] p0)return native_invoker.unified_void(p0, 0x8D74E26F54B4E5C3, "s")end - GET_BASE_ELEMENT_LOCATION_FROM_METADATA_BLOCK=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[Any* (pointer)]] p1,--[[Any (int)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_bool(p0, p1, p2, p3, 0xB335F761606DB47C, "ppib")end - -- Returns current weather name hash - GET_PREV_WEATHER_TYPE_HASH_NAME=--[[Hash (int)]] function()return native_invoker.unified_int(0x564B884A05EC45A3, "")end - -- Returns weather name hash - GET_NEXT_WEATHER_TYPE_HASH_NAME=--[[Hash (int)]] function()return native_invoker.unified_int(0x711327CD09C8F162, "")end - IS_PREV_WEATHER_TYPE=--[[BOOL (bool)]] function(--[[string]] weatherType)return native_invoker.unified_bool(weatherType, 0x44F28F86433B10A9, "s")end - IS_NEXT_WEATHER_TYPE=--[[BOOL (bool)]] function(--[[string]] weatherType)return native_invoker.unified_bool(weatherType, 0x2FAA3A30BEC0F25D, "s")end - -- The following weatherTypes are used in the scripts: - -- "CLEAR" - -- "EXTRASUNNY" - -- "CLOUDS" - -- "OVERCAST" - -- "RAIN" - -- "CLEARING" - -- "THUNDER" - -- "SMOG" - -- "FOGGY" - -- "XMAS" - -- "SNOW" - -- "SNOWLIGHT" - -- "BLIZZARD" - -- "HALLOWEEN" - -- "NEUTRAL" - SET_WEATHER_TYPE_PERSIST=--[[void]] function(--[[string]] weatherType)return native_invoker.unified_void(weatherType, 0x704983DF373B198F, "s")end - -- The following weatherTypes are used in the scripts: - -- "CLEAR" - -- "EXTRASUNNY" - -- "CLOUDS" - -- "OVERCAST" - -- "RAIN" - -- "CLEARING" - -- "THUNDER" - -- "SMOG" - -- "FOGGY" - -- "XMAS" - -- "SNOW" - -- "SNOWLIGHT" - -- "BLIZZARD" - -- "HALLOWEEN" - -- "NEUTRAL" - SET_WEATHER_TYPE_NOW_PERSIST=--[[void]] function(--[[string]] weatherType)return native_invoker.unified_void(weatherType, 0xED712CA327900C8A, "s")end - -- The following weatherTypes are used in the scripts: - -- "CLEAR" - -- "EXTRASUNNY" - -- "CLOUDS" - -- "OVERCAST" - -- "RAIN" - -- "CLEARING" - -- "THUNDER" - -- "SMOG" - -- "FOGGY" - -- "XMAS" - -- "SNOW" - -- "SNOWLIGHT" - -- "BLIZZARD" - -- "HALLOWEEN" - -- "NEUTRAL" - SET_WEATHER_TYPE_NOW=--[[void]] function(--[[string]] weatherType)return native_invoker.unified_void(weatherType, 0x29B487C359E19889, "s")end - SET_WEATHER_TYPE_OVERTIME_PERSIST=--[[void]] function(--[[string]] weatherType,--[[float]] time)return native_invoker.unified_void(weatherType, time, 0xFB5045B7C42B75BF, "sf")end - SET_RANDOM_WEATHER_TYPE=--[[void]] function()return native_invoker.unified_void(0x8B05F884CF7E8020, "")end - CLEAR_WEATHER_TYPE_PERSIST=--[[void]] function()return native_invoker.unified_void(0xCCC39339BEF76CF5, "")end - CLEAR_WEATHER_TYPE_NOW_PERSIST_NETWORK=--[[void]] function(--[[int]] milliseconds)return native_invoker.unified_void(milliseconds, 0x0CF97F497FE7D048, "i")end - GET_CURR_WEATHER_STATE=--[[void]] function(--[[Hash* (pointer)]] weatherType1,--[[Hash* (pointer)]] weatherType2,--[[float* (pointer)]] percentWeather2)return native_invoker.unified_void(weatherType1, weatherType2, percentWeather2, 0xF3BBE884A14BB413, "ppp")end - -- Mixes two weather types. If percentWeather2 is set to 0.0f, then the weather will be entirely of weatherType1, if it is set to 1.0f it will be entirely of weatherType2. If it's set somewhere in between, there will be a mixture of weather behaviors. To test, try this in the RPH console, and change the float to different values between 0 and 1: - -- - -- execute "NativeFunction.Natives.x578C752848ECFA0C(Game.GetHashKey(""RAIN""), Game.GetHashKey(""SMOG""), 0.50f); - -- - -- Note that unlike most of the other weather natives, this native takes the hash of the weather name, not the plain string. These are the weather names and their hashes: - -- - -- CLEAR 0x36A83D84 - -- EXTRASUNNY 0x97AA0A79 - -- CLOUDS 0x30FDAF5C - -- OVERCAST 0xBB898D2D - -- RAIN 0x54A69840 - -- CLEARING 0x6DB1A50D - -- THUNDER 0xB677829F - -- SMOG 0x10DCF4B5 - -- FOGGY 0xAE737644 - -- XMAS 0xAAC9C895 - -- SNOWLIGHT 0x23FB812B - -- BLIZZARD 0x27EA2814 - -- - -- - -- - -- - -- - -- /* OLD INVALID INFO BELOW */ - -- Not tested. Based purely on disassembly. Instantly sets the weather to sourceWeather, then transitions to targetWeather over the specified transitionTime in seconds. - -- - -- If an invalid hash is specified for sourceWeather, the current weather type will be used. - -- If an invalid hash is specified for targetWeather, the next weather type will be used. - -- If an invalid hash is specified for both sourceWeather and targetWeather, the function just changes the transition time of the current transition. - SET_CURR_WEATHER_STATE=--[[void]] function(--[[Hash (int)]] weatherType1,--[[Hash (int)]] weatherType2,--[[float]] percentWeather2)return native_invoker.unified_void(weatherType1, weatherType2, percentWeather2, 0x578C752848ECFA0C, "iif")end - -- Appears to have an optional bool parameter that is unused in the scripts. - -- - -- If you pass true, something will be set to zero. - SET_OVERRIDE_WEATHER=--[[void]] function(--[[string]] weatherType)return native_invoker.unified_void(weatherType, 0xA43D5C6FE51ADBEF, "s")end - -- Identical to SET_OVERRIDE_WEATHER but has an additional BOOL param that sets some weather var to 0 if true - SET_OVERRIDE_WEATHEREX=--[[void]] function(--[[string]] weatherType,--[[BOOL (bool)]] p1)return native_invoker.unified_void(weatherType, p1, 0x1178E104409FE58C, "sb")end - CLEAR_OVERRIDE_WEATHER=--[[void]] function()return native_invoker.unified_void(0x338D2E3477711050, "")end - WATER_OVERRIDE_SET_SHOREWAVEAMPLITUDE=--[[void]] function(--[[float]] amplitude)return native_invoker.unified_void(amplitude, 0xB8F87EAD7533B176, "f")end - WATER_OVERRIDE_SET_SHOREWAVEMINAMPLITUDE=--[[void]] function(--[[float]] minAmplitude)return native_invoker.unified_void(minAmplitude, 0xC3EAD29AB273ECE8, "f")end - WATER_OVERRIDE_SET_SHOREWAVEMAXAMPLITUDE=--[[void]] function(--[[float]] maxAmplitude)return native_invoker.unified_void(maxAmplitude, 0xA7A1127490312C36, "f")end - WATER_OVERRIDE_SET_OCEANNOISEMINAMPLITUDE=--[[void]] function(--[[float]] minAmplitude)return native_invoker.unified_void(minAmplitude, 0x31727907B2C43C55, "f")end - WATER_OVERRIDE_SET_OCEANWAVEAMPLITUDE=--[[void]] function(--[[float]] amplitude)return native_invoker.unified_void(amplitude, 0x405591EC8FD9096D, "f")end - WATER_OVERRIDE_SET_OCEANWAVEMINAMPLITUDE=--[[void]] function(--[[float]] minAmplitude)return native_invoker.unified_void(minAmplitude, 0xF751B16FB32ABC1D, "f")end - WATER_OVERRIDE_SET_OCEANWAVEMAXAMPLITUDE=--[[void]] function(--[[float]] maxAmplitude)return native_invoker.unified_void(maxAmplitude, 0xB3E6360DDE733E82, "f")end - WATER_OVERRIDE_SET_RIPPLEBUMPINESS=--[[void]] function(--[[float]] bumpiness)return native_invoker.unified_void(bumpiness, 0x7C9C0B1EEB1F9072, "f")end - WATER_OVERRIDE_SET_RIPPLEMINBUMPINESS=--[[void]] function(--[[float]] minBumpiness)return native_invoker.unified_void(minBumpiness, 0x6216B116083A7CB4, "f")end - WATER_OVERRIDE_SET_RIPPLEMAXBUMPINESS=--[[void]] function(--[[float]] maxBumpiness)return native_invoker.unified_void(maxBumpiness, 0x9F5E6BB6B34540DA, "f")end - WATER_OVERRIDE_SET_RIPPLEDISTURB=--[[void]] function(--[[float]] disturb)return native_invoker.unified_void(disturb, 0xB9854DFDE0D833D6, "f")end - -- This seems to edit the water wave, intensity around your current location. - -- - -- 0.0f = Normal - -- 1.0f = So Calm and Smooth, a boat will stay still. - -- 3.0f = Really Intense. - WATER_OVERRIDE_SET_STRENGTH=--[[void]] function(--[[float]] strength)return native_invoker.unified_void(strength, 0xC54A08C85AE4D410, "f")end - WATER_OVERRIDE_FADE_IN=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0xA8434F1DFF41D6E7, "f")end - WATER_OVERRIDE_FADE_OUT=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0xC3C221ADDDE31A11, "f")end - -- Sets the the normalized wind speed value. The wind speed clamps always at 12.0, SET_WIND sets the wind in a percentage, 0.0 is 0 and 1.0 is 12.0. Setting this value to a negative number resumes the random wind speed changes provided by the game. - SET_WIND=--[[void]] function(--[[float]] speed)return native_invoker.unified_void(speed, 0xAC3A74E8384A9919, "f")end - -- Using this native will set the absolute wind speed value. The wind speed clamps to a range of 0.0- 12.0. Setting this value to a negative number resumes the random wind speed changes provided by the game. - SET_WIND_SPEED=--[[void]] function(--[[float]] speed)return native_invoker.unified_void(speed, 0xEE09ECEDBABE47FC, "f")end - GET_WIND_SPEED=--[[float]] function()return native_invoker.unified_float(0xA8CF1CC0AFCD3F12, "")end - -- The wind direction in radians - -- 180 degrees (PI), wind will blow from the south. Setting this value to a negative number resumes the random wind direction changes provided by the game. - SET_WIND_DIRECTION=--[[void]] function(--[[float]] direction)return native_invoker.unified_void(direction, 0xEB0F4468467B4528, "f")end - GET_WIND_DIRECTION=--[[Vector3 (vector3)]] function()return native_invoker.unified_vector3(0x1F400FEF721170DA, "")end - -- With an `intensity` higher than `0.5f`, only the creation of puddles gets faster, rain and rain sound won't increase after that. - -- With an `intensity` of `0.0f` rain and rain sounds are disabled and there won't be any new puddles. - -- To use the rain intensity of the current weather, call this native with `-1f` as `intensity`. - SET_RAIN=--[[void]] function(--[[float]] intensity)return native_invoker.unified_void(intensity, 0x643E26EA6E024D92, "f")end - GET_RAIN_LEVEL=--[[float]] function()return native_invoker.unified_float(0x96695E368AD855F3, "")end - SET_SNOW=--[[void]] function(--[[float]] level)return native_invoker.unified_void(level, 0x7F06937B0CDCBC1A, "f")end - GET_SNOW_LEVEL=--[[float]] function()return native_invoker.unified_float(0xC5868A966E5BE3AE, "")end - -- creates single lightning+thunder at random position - FORCE_LIGHTNING_FLASH=--[[void]] function()return native_invoker.unified_void(0xF6062E089251C898, "")end - SET_CLOUD_SETTINGS_OVERRIDE=--[[void]] function(--[[string]] p0)return native_invoker.unified_void(p0, 0x02DEAAC8F8EA7FE7, "s")end - PRELOAD_CLOUD_HAT=--[[void]] function(--[[string]] name)return native_invoker.unified_void(name, 0x11B56FBBF7224868, "s")end - -- The following cloudhats are useable: - -- altostratus - -- Cirrus - -- cirrocumulus - -- Clear 01 - -- Cloudy 01 - -- Contrails - -- Horizon - -- horizonband1 - -- horizonband2 - -- horizonband3 - -- horsey - -- Nimbus - -- Puffs - -- RAIN - -- Snowy 01 - -- Stormy 01 - -- stratoscumulus - -- Stripey - -- shower - -- Wispy - -- - LOAD_CLOUD_HAT=--[[void]] function(--[[string]] name,--[[float]] transitionTime)return native_invoker.unified_void(name, transitionTime, 0xFC4842A34657BFCB, "sf")end - UNLOAD_CLOUD_HAT=--[[void]] function(--[[string]] name,--[[float]] p1)return native_invoker.unified_void(name, p1, 0xA74802FB8D0B7814, "sf")end - UNLOAD_ALL_CLOUD_HATS=--[[void]] function()return native_invoker.unified_void(0x957E790EA1727B64, "")end - SET_CLOUDS_ALPHA=--[[void]] function(--[[float]] opacity)return native_invoker.unified_void(opacity, 0xF36199225D6D8C86, "f")end - GET_CLOUDS_ALPHA=--[[float]] function()return native_invoker.unified_float(0x20AC25E781AE4A84, "")end - GET_GAME_TIMER=--[[int]] function()return native_invoker.unified_int(0x9CD27B0045628463, "")end - GET_FRAME_TIME=--[[float]] function()return native_invoker.unified_float(0x15C40837039FFAF7, "")end - GET_SYSTEM_TIME_STEP=--[[float]] function()return native_invoker.unified_float(0xE599A503B3837E1B, "")end - GET_FRAME_COUNT=--[[int]] function()return native_invoker.unified_int(0xFC8202EFC642E6F2, "")end - GET_RANDOM_FLOAT_IN_RANGE=--[[float]] function(--[[float]] startRange,--[[float]] endRange)return native_invoker.unified_float(startRange, endRange, 0x313CE5879CEB6FCD, "ff")end - GET_RANDOM_INT_IN_RANGE=--[[int]] function(--[[int]] startRange,--[[int]] endRange)return native_invoker.unified_int(startRange, endRange, 0xD53343AA4FB7DD28, "ii")end - GET_RANDOM_MWC_INT_IN_RANGE=--[[int]] function(--[[int]] startRange,--[[int]] endRange)return native_invoker.unified_int(startRange, endRange, 0xF2D49816A804D134, "ii")end - -- Gets the ground elevation at the specified position. Note that if the specified position is below ground level, the function will output zero! - -- - -- x: Position on the X-axis to get ground elevation at. - -- y: Position on the Y-axis to get ground elevation at. - -- z: Position on the Z-axis to get ground elevation at. - -- groundZ: The ground elevation at the specified position. - -- ignoreWater: Nearly always 0, very rarely 1 in the scripts: https://gfycat.com/NiftyTatteredCricket - -- - -- Bear in mind this native can only calculate the elevation when the coordinates are within the client's render distance. - GET_GROUND_Z_FOR_3D_COORD=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float* (pointer)]] groundZ,--[[BOOL (bool)]] ignoreWater,--[[BOOL (bool)]] p5)return native_invoker.unified_bool(x, y, z, groundZ, ignoreWater, p5, 0xC906A7DAB05C8D2B, "fffpbb")end - GET_GROUND_Z_AND_NORMAL_FOR_3D_COORD=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float* (pointer)]] groundZ,--[[Vector3* (pointer)]] normal)return native_invoker.unified_bool(x, y, z, groundZ, normal, 0x8BDC7BFC57A81E76, "fffpp")end - GET_GROUND_Z_EXCLUDING_OBJECTS_FOR_3D_COORD=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float* (pointer)]] groundZ,--[[BOOL (bool)]] p4,--[[BOOL (bool)]] p5)return native_invoker.unified_bool(x, y, z, groundZ, p4, p5, 0x9E82F0F362881B29, "fffpbb")end - ASIN=--[[float]] function(--[[float]] p0)return native_invoker.unified_float(p0, 0xC843060B5765DCE7, "f")end - ACOS=--[[float]] function(--[[float]] p0)return native_invoker.unified_float(p0, 0x1D08B970013C34B6, "f")end - TAN=--[[float]] function(--[[float]] p0)return native_invoker.unified_float(p0, 0x632106CC96E82E91, "f")end - ATAN=--[[float]] function(--[[float]] p0)return native_invoker.unified_float(p0, 0xA9D1795CD5043663, "f")end - ATAN2=--[[float]] function(--[[float]] p0,--[[float]] p1)return native_invoker.unified_float(p0, p1, 0x8927CBF9D22261A4, "ff")end - -- Returns the distance between two three-dimensional points, optionally ignoring the Z values. - -- If useZ is false, only the 2D plane (X-Y) will be considered for calculating the distance. - -- - -- Consider using this faster native instead: SYSTEM::VDIST - DVIST always takes in consideration the 3D coordinates. - GET_DISTANCE_BETWEEN_COORDS=--[[float]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[BOOL (bool)]] useZ)return native_invoker.unified_float(x1, y1, z1, x2, y2, z2, useZ, 0xF1B760881820C952, "ffffffb")end - GET_ANGLE_BETWEEN_2D_VECTORS=--[[float]] function(--[[float]] x1,--[[float]] y1,--[[float]] x2,--[[float]] y2)return native_invoker.unified_float(x1, y1, x2, y2, 0x186FC4BE848E1C92, "ffff")end - -- dx = x1 - x2 - -- dy = y1 - y2 - GET_HEADING_FROM_VECTOR_2D=--[[float]] function(--[[float]] dx,--[[float]] dy)return native_invoker.unified_float(dx, dy, 0x2FFB6B224F4B2926, "ff")end - -- returns a float between 0.0 and 1.0, clamp: sets whether the product should be clamped between the given coordinates - GET_RATIO_OF_CLOSEST_POINT_ON_LINE=--[[float]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] x3,--[[float]] y3,--[[float]] z3,--[[BOOL (bool)]] clamp)return native_invoker.unified_float(x1, y1, z1, x2, y2, z2, x3, y3, z3, clamp, 0x7F8F6405F4777AF6, "fffffffffb")end - -- clamp: sets whether the product should be clamped between the given coordinates - GET_CLOSEST_POINT_ON_LINE=--[[Vector3 (vector3)]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] x3,--[[float]] y3,--[[float]] z3,--[[BOOL (bool)]] clamp)return native_invoker.unified_vector3(x1, y1, z1, x2, y2, z2, x3, y3, z3, clamp, 0x21C235BC64831E5A, "fffffffffb")end - GET_LINE_PLANE_INTERSECTION=--[[BOOL (bool)]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[float]] p6,--[[float]] p7,--[[float]] p8,--[[float]] p9,--[[float]] p10,--[[float]] p11,--[[float* (pointer)]] p12)return native_invoker.unified_bool(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, 0xF56DFB7B61BE7276, "ffffffffffffp")end - GET_POINT_AREA_OVERLAP=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5,--[[Any (int)]] p6,--[[Any (int)]] p7,--[[Any (int)]] p8,--[[Any (int)]] p9,--[[Any (int)]] p10,--[[Any (int)]] p11,--[[Any (int)]] p12,--[[Any (int)]] p13)return native_invoker.unified_bool(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, 0xA0AD167E4B39D9A2, "iiiiiiiiiiiiii")end - -- This sets bit [offset] of [address] to on. - -- - -- The offsets used are different bits to be toggled on and off, typically there is only one address used in a script. - -- - -- Example: - -- MISC::SET_BIT(&bitAddress, 1); - -- - -- To check if this bit has been enabled: - -- MISC::IS_BIT_SET(bitAddress, 1); // will return 1 afterwards - -- - -- Please note, this method may assign a value to [address] when used. - SET_BIT=--[[void]] function(--[[int* (pointer)]] address,--[[int]] offset)return native_invoker.unified_void(address, offset, 0x933D6A9EEC1BACD0, "pi")end - -- This sets bit [offset] of [address] to off. - -- - -- Example: - -- MISC::CLEAR_BIT(&bitAddress, 1); - -- - -- To check if this bit has been enabled: - -- MISC::IS_BIT_SET(bitAddress, 1); // will return 0 afterwards - CLEAR_BIT=--[[void]] function(--[[int* (pointer)]] address,--[[int]] offset)return native_invoker.unified_void(address, offset, 0xE80492A9AC099A93, "pi")end - -- This native converts its past string to hash. It is hashed using jenkins one at a time method. - GET_HASH_KEY=--[[Hash (int)]] function(--[[string]] string)return native_invoker.unified_int(string, 0xD24D37CC275948CC, "s")end - -- This native always come right before SET_ENTITY_QUATERNION where its final 4 parameters are SLERP_NEAR_QUATERNION p9 to p12 - SLERP_NEAR_QUATERNION=--[[void]] function(--[[float]] t,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] w,--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] w1,--[[float* (pointer)]] outX,--[[float* (pointer)]] outY,--[[float* (pointer)]] outZ,--[[float* (pointer)]] outW)return native_invoker.unified_void(t, x, y, z, w, x1, y1, z1, w1, outX, outY, outZ, outW, 0xF2F6A2FA49278625, "fffffffffpppp")end - IS_AREA_OCCUPIED=--[[BOOL (bool)]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[BOOL (bool)]] p6,--[[BOOL (bool)]] p7,--[[BOOL (bool)]] p8,--[[BOOL (bool)]] p9,--[[BOOL (bool)]] p10,--[[Any (int)]] p11,--[[BOOL (bool)]] p12)return native_invoker.unified_bool(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, 0xA61B4DF533DCB56E, "ffffffbbbbbib")end - IS_AREA_OCCUPIED_SLOW=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5,--[[Any (int)]] p6,--[[Any (int)]] p7,--[[Any (int)]] p8,--[[Any (int)]] p9,--[[Any (int)]] p10,--[[Any (int)]] p11,--[[Any (int)]] p12)return native_invoker.unified_bool(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, 0x39455BF4F4F55186, "iiiiiiiiiiiii")end - -- `range`: The range, seems to not be very accurate during testing. - -- `p4`: Unknown, when set to true it seems to always return true no matter what I try. - -- `checkVehicle`: Check for any vehicles in that area. - -- `checkPeds`: Check for any peds in that area. - -- `ignoreEntity`: This entity will be ignored if it's in the area. Set to 0 if you don't want to exclude any entities. - -- The BOOL parameters that are documented have not been confirmed. They are just documented from what I've found during testing. They may not work as expected in all cases. - -- - -- Returns true if there is anything in that location matching the provided parameters. - IS_POSITION_OCCUPIED=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] range,--[[BOOL (bool)]] p4,--[[BOOL (bool)]] checkVehicles,--[[BOOL (bool)]] checkPeds,--[[BOOL (bool)]] p7,--[[BOOL (bool)]] p8,--[[Entity (int)]] ignoreEntity,--[[BOOL (bool)]] p10)return native_invoker.unified_bool(x, y, z, range, p4, checkVehicles, checkPeds, p7, p8, ignoreEntity, p10, 0xADCDE75E1C60F32D, "ffffbbbbbib")end - IS_POINT_OBSCURED_BY_A_MISSION_ENTITY=--[[BOOL (bool)]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[Any (int)]] p6)return native_invoker.unified_bool(p0, p1, p2, p3, p4, p5, p6, 0xE54E209C35FFA18D, "ffffffi")end - -- Example: CLEAR_AREA(0, 0, 0, 30, true, false, false, false); - CLEAR_AREA=--[[void]] function(--[[float]] X,--[[float]] Y,--[[float]] Z,--[[float]] radius,--[[BOOL (bool)]] p4,--[[BOOL (bool)]] ignoreCopCars,--[[BOOL (bool)]] ignoreObjects,--[[BOOL (bool)]] p7)return native_invoker.unified_void(X, Y, Z, radius, p4, ignoreCopCars, ignoreObjects, p7, 0xA56F01F3765B93A0, "ffffbbbb")end - -- MISC::CLEAR_AREA_LEAVE_VEHICLE_HEALTH(x, y, z, radius, false, false, false, false); seem to make all objects go away, peds, vehicles etc. All booleans set to true doesn't seem to change anything. - CLEAR_AREA_LEAVE_VEHICLE_HEALTH=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[BOOL (bool)]] p4,--[[BOOL (bool)]] p5,--[[BOOL (bool)]] p6,--[[BOOL (bool)]] p7)return native_invoker.unified_void(x, y, z, radius, p4, p5, p6, p7, 0x957838AAF91BD12D, "ffffbbbb")end - -- Example: - -- CLEAR_AREA_OF_VEHICLES(0.0f, 0.0f, 0.0f, 10000.0f, false, false, false, false, false, false); - CLEAR_AREA_OF_VEHICLES=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[BOOL (bool)]] p4,--[[BOOL (bool)]] p5,--[[BOOL (bool)]] p6,--[[BOOL (bool)]] p7,--[[BOOL (bool)]] p8,--[[BOOL (bool)]] p9,--[[Any (int)]] p10)return native_invoker.unified_void(x, y, z, radius, p4, p5, p6, p7, p8, p9, p10, 0x01C7B9B38428AEB6, "ffffbbbbbbi")end - CLEAR_ANGLED_AREA_OF_VEHICLES=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] width,--[[BOOL (bool)]] p7,--[[BOOL (bool)]] p8,--[[BOOL (bool)]] p9,--[[BOOL (bool)]] p10,--[[BOOL (bool)]] p11,--[[Any (int)]] p12,--[[Any (int)]] p13)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, width, p7, p8, p9, p10, p11, p12, p13, 0x11DB3500F042A8AA, "fffffffbbbbbii")end - -- I looked through the PC scripts that this site provides you with a link to find. It shows the last param mainly uses, (0, 2, 6, 16, and 17) so I am going to assume it is a type of flag. - CLEAR_AREA_OF_OBJECTS=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[int]] flags)return native_invoker.unified_void(x, y, z, radius, flags, 0xDD9B9B385AAC7F5B, "ffffi")end - -- Example: CLEAR_AREA_OF_PEDS(0, 0, 0, 10000, 1); - CLEAR_AREA_OF_PEDS=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[int]] flags)return native_invoker.unified_void(x, y, z, radius, flags, 0xBE31FD6CE464AC59, "ffffi")end - -- flags appears to always be 0 - CLEAR_AREA_OF_COPS=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[int]] flags)return native_invoker.unified_void(x, y, z, radius, flags, 0x04F8FC8FCF58F88D, "ffffi")end - -- flags is usually 0 in the scripts. - CLEAR_AREA_OF_PROJECTILES=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[int]] flags)return native_invoker.unified_void(x, y, z, radius, flags, 0x0A1CB9094635D1A6, "ffffi")end - -- Possibly used to clear scenario points. - CLEAR_SCENARIO_SPAWN_HISTORY=--[[void]] function()return native_invoker.unified_void(0x7EC6F9A478A6A512, "")end - -- ignoreVehicle - bypasses vehicle check of the local player (it will not open if you are in a vehicle and this is set to false) - SET_SAVE_MENU_ACTIVE=--[[void]] function(--[[BOOL (bool)]] ignoreVehicle)return native_invoker.unified_void(ignoreVehicle, 0xC9BF75D28165FF77, "b")end - GET_STATUS_OF_MANUAL_SAVE=--[[int]] function()return native_invoker.unified_int(0x397BAA01068BAA96, "")end - SET_CREDITS_ACTIVE=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xB938B7E6D3C0620C, "b")end - SET_CREDITS_FADE_OUT_WITH_SCREEN=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xB51B9AB9EF81868C, "b")end - HAVE_CREDITS_REACHED_END=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x075F1D57402C93BA, "")end - ARE_CREDITS_RUNNING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xD19C0826DC20CF1C, "")end - TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME=--[[void]] function(--[[string]] scriptName)return native_invoker.unified_void(scriptName, 0x9DC711BC69C548DF, "s")end - NETWORK_SET_SCRIPT_IS_SAFE_FOR_NETWORK_GAME=--[[void]] function()return native_invoker.unified_void(0x9243BAC96D64C050, "")end - -- Returns the index of the newly created hospital spawn point. - -- - -- p3 might be radius? - ADD_HOSPITAL_RESTART=--[[int]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] p3,--[[Any (int)]] p4)return native_invoker.unified_int(x, y, z, p3, p4, 0x1F464EF988465A81, "ffffi")end - -- The game by default has 5 hospital respawn points. Disabling them all will cause the player to respawn at the last position they were. - DISABLE_HOSPITAL_RESTART=--[[void]] function(--[[int]] hospitalIndex,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(hospitalIndex, toggle, 0xC8535819C450EBA8, "ib")end - ADD_POLICE_RESTART=--[[int]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[Any (int)]] p4)return native_invoker.unified_int(p0, p1, p2, p3, p4, 0x452736765B31FC4B, "ffffi")end - -- Disables the spawn point at the police house on the specified index. - -- - -- policeIndex: The police house index. - -- toggle: true to enable the spawn point, false to disable. - -- - -- - Nacorpio - DISABLE_POLICE_RESTART=--[[void]] function(--[[int]] policeIndex,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(policeIndex, toggle, 0x23285DED6EBD7EA3, "ib")end - SET_RESTART_COORD_OVERRIDE=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] heading)return native_invoker.unified_void(x, y, z, heading, 0x706B5EDCAA7FA663, "ffff")end - CLEAR_RESTART_COORD_OVERRIDE=--[[void]] function()return native_invoker.unified_void(0xA2716D40842EAF79, "")end - PAUSE_DEATH_ARREST_RESTART=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x2C2B3493FBF51C71, "b")end - IGNORE_NEXT_RESTART=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x21FFB63D8C615361, "b")end - -- Sets whether the game should fade out after the player dies. - SET_FADE_OUT_AFTER_DEATH=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x4A18E01DF2C87B86, "b")end - -- Sets whether the game should fade out after the player is arrested. - SET_FADE_OUT_AFTER_ARREST=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x1E0B4DC0D990A4E7, "b")end - -- Sets whether the game should fade in after the player dies or is arrested. - SET_FADE_IN_AFTER_DEATH_ARREST=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xDA66D2796BA33F12, "b")end - SET_FADE_IN_AFTER_LOAD=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xF3D78F59DFE18D79, "b")end - -- returns savehouseHandle - REGISTER_SAVE_HOUSE=--[[int]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] p3,--[[string]] p4,--[[Any (int)]] p5,--[[Any (int)]] p6)return native_invoker.unified_int(x, y, z, p3, p4, p5, p6, 0xC0714D0A7EEECA54, "ffffsii")end - SET_SAVE_HOUSE=--[[void]] function(--[[int]] savehouseHandle,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(savehouseHandle, p1, p2, 0x4F548CABEAE553BC, "ibb")end - OVERRIDE_SAVE_HOUSE=--[[BOOL (bool)]] function(--[[BOOL (bool)]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[BOOL (bool)]] p5,--[[float]] p6,--[[float]] p7)return native_invoker.unified_bool(p0, p1, p2, p3, p4, p5, p6, p7, 0x1162EA8AE9D24EEA, "bffffbff")end - GET_SAVE_HOUSE_DETAILS_AFTER_SUCCESSFUL_LOAD=--[[BOOL (bool)]] function(--[[Vector3* (pointer)]] p0,--[[float* (pointer)]] p1,--[[BOOL* (pointer)]] fadeInAfterLoad,--[[BOOL* (pointer)]] p3)return native_invoker.unified_bool(p0, p1, fadeInAfterLoad, p3, 0xA4A0065E39C9F25C, "pppp")end - DO_AUTO_SAVE=--[[void]] function()return native_invoker.unified_void(0x50EEAAD86232EE55, "")end - -- Returns true if profile setting 208 is equal to 0. - GET_IS_AUTO_SAVE_OFF=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x6E04F06094C87047, "")end - IS_AUTO_SAVE_IN_PROGRESS=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x69240733738C19A0, "")end - HAS_CODE_REQUESTED_AUTOSAVE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x2107A3773771186D, "")end - CLEAR_CODE_REQUESTED_AUTOSAVE=--[[void]] function()return native_invoker.unified_void(0x06462A961E94B67C, "")end - BEGIN_REPLAY_STATS=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xE0E500246FF73D66, "ii")end - ADD_REPLAY_STAT_VALUE=--[[void]] function(--[[Any (int)]] value)return native_invoker.unified_void(value, 0x69FE6DC87BD2A5E9, "i")end - END_REPLAY_STATS=--[[void]] function()return native_invoker.unified_void(0xA23E821FBDF8A5F2, "")end - HAVE_REPLAY_STATS_BEEN_STORED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xD642319C54AADEB6, "")end - GET_REPLAY_STAT_MISSION_ID=--[[int]] function()return native_invoker.unified_int(0x5B1F2E327B6B6FE1, "")end - GET_REPLAY_STAT_MISSION_TYPE=--[[int]] function()return native_invoker.unified_int(0x2B626A0150E4D449, "")end - GET_REPLAY_STAT_COUNT=--[[int]] function()return native_invoker.unified_int(0xDC9274A7EF6B2867, "")end - GET_REPLAY_STAT_AT_INDEX=--[[int]] function(--[[int]] index)return native_invoker.unified_int(index, 0x8098C8D6597AAE18, "i")end - CLEAR_REPLAY_STATS=--[[void]] function()return native_invoker.unified_void(0x1B1AB132A16FDA55, "")end - QUEUE_MISSION_REPEAT_LOAD=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x72DE52178C291CB5, "")end - -- Shows the screen which is visible before you redo a mission? The game will make a restoration point where you will cameback when the mission is over. - -- Returns 1 if the message isn't currently on screen - QUEUE_MISSION_REPEAT_SAVE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x44A0BDC559B35F6E, "")end - QUEUE_MISSION_REPEAT_SAVE_FOR_BENCHMARK_TEST=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xEB2104E905C6F2E9, "")end - GET_STATUS_OF_MISSION_REPEAT_SAVE=--[[int]] function()return native_invoker.unified_int(0x2B5E102E4A42F2BF, "")end - IS_MEMORY_CARD_IN_USE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x8A75CE2956274ADD, "")end - SHOOT_SINGLE_BULLET_BETWEEN_COORDS=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[int]] damage,--[[BOOL (bool)]] p7,--[[Hash (int)]] weaponHash,--[[Ped (int)]] ownerPed,--[[BOOL (bool)]] isAudible,--[[BOOL (bool)]] isInvisible,--[[float]] speed)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, damage, p7, weaponHash, ownerPed, isAudible, isInvisible, speed, 0x867654CBC7606F2C, "ffffffibiibbf")end - -- entity - entity to ignore - SHOOT_SINGLE_BULLET_BETWEEN_COORDS_IGNORE_ENTITY=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[int]] damage,--[[BOOL (bool)]] p7,--[[Hash (int)]] weaponHash,--[[Ped (int)]] ownerPed,--[[BOOL (bool)]] isAudible,--[[BOOL (bool)]] isInvisible,--[[float]] speed,--[[Entity (int)]] entity,--[[Any (int)]] p14)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, damage, p7, weaponHash, ownerPed, isAudible, isInvisible, speed, entity, p14, 0xE3A7742E0B7A2F8B, "ffffffibiibbfii")end - -- entity - entity to ignore - -- targetEntity - entity to home in on, if the weapon hash provided supports homing - SHOOT_SINGLE_BULLET_BETWEEN_COORDS_IGNORE_ENTITY_NEW=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[int]] damage,--[[BOOL (bool)]] p7,--[[Hash (int)]] weaponHash,--[[Ped (int)]] ownerPed,--[[BOOL (bool)]] isAudible,--[[BOOL (bool)]] isInvisible,--[[float]] speed,--[[Entity (int)]] entity,--[[BOOL (bool)]] p14,--[[BOOL (bool)]] p15,--[[Entity (int)]] targetEntity,--[[BOOL (bool)]] p17,--[[Any (int)]] p18,--[[Any (int)]] p19,--[[Any (int)]] p20)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, damage, p7, weaponHash, ownerPed, isAudible, isInvisible, speed, entity, p14, p15, targetEntity, p17, p18, p19, p20, 0xBFE5756E7407064A, "ffffffibiibbfibbibiii")end - -- Gets the dimensions of a model. - -- - -- Calculate (maximum - minimum) to get the size, in which case, Y will be how long the model is. - -- - -- Example from the scripts: MISC::GET_MODEL_DIMENSIONS(ENTITY::GET_ENTITY_MODEL(PLAYER::PLAYER_PED_ID()), &v_1A, &v_17); - GET_MODEL_DIMENSIONS=--[[void]] function(--[[Hash (int)]] modelHash,--[[Vector3* (pointer)]] minimum,--[[Vector3* (pointer)]] maximum)return native_invoker.unified_void(modelHash, minimum, maximum, 0x03E8D3D5F549087A, "ipp")end - -- Sets a visually fake wanted level on the user interface. Used by Rockstar's scripts to "override" regular wanted levels and make custom ones while the real wanted level and multipliers are still in effect. - -- - -- Max is 6, anything above this makes it just 6. Also the mini-map gets the red & blue flashing effect. - SET_FAKE_WANTED_LEVEL=--[[void]] function(--[[int]] fakeWantedLevel)return native_invoker.unified_void(fakeWantedLevel, 0x1454F2448DE30163, "i")end - GET_FAKE_WANTED_LEVEL=--[[int]] function()return native_invoker.unified_int(0x4C9296CBCD1B971E, "")end - USING_MISSION_CREATOR=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xF14878FC50BEC6EE, "b")end - ALLOW_MISSION_CREATOR_WARP=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xDEA36202FC3382DF, "b")end - SET_MINIGAME_IN_PROGRESS=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x19E00D7322C6F85B, "b")end - IS_MINIGAME_IN_PROGRESS=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x2B4A15E44DE0F478, "")end - IS_THIS_A_MINIGAME_SCRIPT=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x7B30F65D7B710098, "")end - -- This function is hard-coded to always return 0. - IS_SNIPER_INVERTED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x61A23B7EDA9BDA24, "")end - -- Returns true if the game is using the metric measurement system (profile setting 227), false if imperial is used. - SHOULD_USE_METRIC_MEASUREMENTS=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xD3D15555431AB793, "")end - GET_PROFILE_SETTING=--[[int]] function(--[[int]] profileSetting)return native_invoker.unified_int(profileSetting, 0xC488FF2356EA7791, "i")end - ARE_STRINGS_EQUAL=--[[BOOL (bool)]] function(--[[string]] string1,--[[string]] string2)return native_invoker.unified_bool(string1, string2, 0x0C515FAB3FF9EA92, "ss")end - -- Compares two strings up to a specified number of characters. - -- - -- Parameters: - -- str1 - String to be compared. - -- str2 - String to be compared. - -- matchCase - Comparison will be case-sensitive. - -- maxLength - Maximum number of characters to compare. A value of -1 indicates an infinite length. - -- - -- Returns: - -- A value indicating the relationship between the strings: - -- <0 - The first non-matching character in 'str1' is less than the one in 'str2'. (e.g. 'A' < 'B', so result = -1) - -- 0 - The contents of both strings are equal. - -- >0 - The first non-matching character in 'str1' is less than the one in 'str2'. (e.g. 'B' > 'A', so result = 1) - -- - -- Examples: - -- MISC::COMPARE_STRINGS("STRING", "string", false, -1); // 0; equal - -- MISC::COMPARE_STRINGS("TESTING", "test", false, 4); // 0; equal - -- MISC::COMPARE_STRINGS("R2D2", "R2xx", false, 2); // 0; equal - -- MISC::COMPARE_STRINGS("foo", "bar", false, -1); // 4; 'f' > 'b' - -- MISC::COMPARE_STRINGS("A", "A", true, 1); // 0; equal - -- - -- When comparing case-sensitive strings, lower-case characters are greater than upper-case characters: - -- MISC::COMPARE_STRINGS("A", "a", true, 1); // -1; 'A' < 'a' - -- MISC::COMPARE_STRINGS("a", "A", true, 1); // 1; 'a' > 'A' - COMPARE_STRINGS=--[[int]] function(--[[string]] str1,--[[string]] str2,--[[BOOL (bool)]] matchCase,--[[int]] maxLength)return native_invoker.unified_int(str1, str2, matchCase, maxLength, 0x1E34710ECD4AB0EB, "ssbi")end - ABSI=--[[int]] function(--[[int]] value)return native_invoker.unified_int(value, 0xF0D31AD191A74F87, "i")end - ABSF=--[[float]] function(--[[float]] value)return native_invoker.unified_float(value, 0x73D57CFFDD12C355, "f")end - -- Determines whether there is a sniper bullet within the specified coordinates. The coordinates form an axis-aligned bounding box. - IS_SNIPER_BULLET_IN_AREA=--[[BOOL (bool)]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2)return native_invoker.unified_bool(x1, y1, z1, x2, y2, z2, 0xFEFCF11B01287125, "ffffff")end - -- Determines whether there is a projectile within the specified coordinates. The coordinates form a rectangle. - -- - -- - Nacorpio - -- - -- - -- ownedByPlayer = only projectiles fired by the player will be detected. - IS_PROJECTILE_IN_AREA=--[[BOOL (bool)]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[BOOL (bool)]] ownedByPlayer)return native_invoker.unified_bool(x1, y1, z1, x2, y2, z2, ownedByPlayer, 0x5270A8FBC098C3F8, "ffffffb")end - -- Determines whether there is a projectile of a specific type within the specified coordinates. The coordinates form a axis-aligned bounding box. - IS_PROJECTILE_TYPE_IN_AREA=--[[BOOL (bool)]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[int]] type,--[[BOOL (bool)]] ownedByPlayer)return native_invoker.unified_bool(x1, y1, z1, x2, y2, z2, type, ownedByPlayer, 0x2E0DC353342C4A6D, "ffffffib")end - -- See IS_POINT_IN_ANGLED_AREA for the definition of an angled area. - IS_PROJECTILE_TYPE_IN_ANGLED_AREA=--[[BOOL (bool)]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] width,--[[Any (int)]] p7,--[[BOOL (bool)]] ownedByPlayer)return native_invoker.unified_bool(x1, y1, z1, x2, y2, z2, width, p7, ownedByPlayer, 0xF0BC12401061DEA0, "fffffffib")end - IS_PROJECTILE_TYPE_WITHIN_DISTANCE=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[Hash (int)]] projectileHash,--[[float]] radius,--[[BOOL (bool)]] ownedByPlayer)return native_invoker.unified_bool(x, y, z, projectileHash, radius, ownedByPlayer, 0x34318593248C8FB2, "fffifb")end - GET_COORDS_OF_PROJECTILE_TYPE_IN_AREA=--[[BOOL (bool)]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[Hash (int)]] projectileHash,--[[Vector3* (pointer)]] projectilePos,--[[BOOL (bool)]] ownedByPlayer)return native_invoker.unified_bool(x1, y1, z1, x2, y2, z2, projectileHash, projectilePos, ownedByPlayer, 0x8D7A43EC6A5FEA45, "ffffffipb")end - GET_COORDS_OF_PROJECTILE_TYPE_IN_ANGLED_AREA=--[[BOOL (bool)]] function(--[[float]] vecAngledAreaPoint1X,--[[float]] vecAngledAreaPoint1Y,--[[float]] vecAngledAreaPoint1Z,--[[float]] vecAngledAreaPoint2X,--[[float]] vecAngledAreaPoint2Y,--[[float]] vecAngledAreaPoint2Z,--[[float]] distanceOfOppositeFace,--[[Hash (int)]] weaponType,--[[Vector3* (pointer)]] positionOut,--[[BOOL (bool)]] bIsPlayer)return native_invoker.unified_bool(vecAngledAreaPoint1X, vecAngledAreaPoint1Y, vecAngledAreaPoint1Z, vecAngledAreaPoint2X, vecAngledAreaPoint2Y, vecAngledAreaPoint2Z, distanceOfOppositeFace, weaponType, positionOut, bIsPlayer, 0x3DA8C28346B62CED, "fffffffipb")end - GET_COORDS_OF_PROJECTILE_TYPE_WITHIN_DISTANCE=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[float]] distance,--[[Vector3* (pointer)]] outCoords,--[[BOOL (bool)]] p4)return native_invoker.unified_bool(ped, weaponHash, distance, outCoords, p4, 0xDFB4138EEFED7B81, "iifpb")end - GET_PROJECTILE_OF_PROJECTILE_TYPE_WITHIN_DISTANCE=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[float]] distance,--[[Vector3* (pointer)]] outCoords,--[[Object* (pointer)]] outProjectile,--[[BOOL (bool)]] p5)return native_invoker.unified_bool(ped, weaponHash, distance, outCoords, outProjectile, p5, 0x82FDE6A57EE4EE44, "iifppb")end - -- For projectiles, see: IS_PROJECTILE_TYPE_IN_ANGLED_AREA - -- See IS_POINT_IN_ANGLED_AREA for the definition of an angled area. - -- Returns True if a bullet, as maintained by a pool within CWeaponManager, has been fired into the defined angled area. - IS_BULLET_IN_ANGLED_AREA=--[[BOOL (bool)]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] width,--[[BOOL (bool)]] ownedByPlayer)return native_invoker.unified_bool(x1, y1, z1, x2, y2, z2, width, ownedByPlayer, 0x1A8B5F3C01E2B477, "fffffffb")end - IS_BULLET_IN_AREA=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[BOOL (bool)]] ownedByPlayer)return native_invoker.unified_bool(x, y, z, radius, ownedByPlayer, 0x3F2023999AD51C1F, "ffffb")end - IS_BULLET_IN_BOX=--[[BOOL (bool)]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[BOOL (bool)]] ownedByPlayer)return native_invoker.unified_bool(x1, y1, z1, x2, y2, z2, ownedByPlayer, 0xDE0F6D7450D37351, "ffffffb")end - -- p3 - possibly radius? - HAS_BULLET_IMPACTED_IN_AREA=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] p3,--[[BOOL (bool)]] p4,--[[BOOL (bool)]] p5)return native_invoker.unified_bool(x, y, z, p3, p4, p5, 0x9870ACFB89A90995, "ffffbb")end - HAS_BULLET_IMPACTED_IN_BOX=--[[BOOL (bool)]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[BOOL (bool)]] p6,--[[BOOL (bool)]] p7)return native_invoker.unified_bool(p0, p1, p2, p3, p4, p5, p6, p7, 0xDC8C5D7CFEAB8394, "ffffffbb")end - -- PS4 - IS_ORBIS_VERSION=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xA72BC0B675B1519E, "")end - -- XBOX ONE - IS_DURANGO_VERSION=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x4D982ADB1978442D, "")end - IS_XBOX360_VERSION=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xF6201B4DAF662A9D, "")end - IS_PS3_VERSION=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xCCA1072C29D096C2, "")end - IS_PC_VERSION=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x48AF36444B965238, "")end - IS_STEAM_VERSION=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x0A27B2B6282F7169, "")end - -- Used to block some of the prostitute stuff due to laws in Australia. - IS_AUSSIE_VERSION=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x9F1935CA1F724008, "")end - IS_JAPANESE_VERSION=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xB8C0BB75D8A77DB3, "")end - IS_XBOX_PLATFORM=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x138679CA01E21F53, "")end - -- Xbox Series (Scarlett) version... - IS_SCARLETT_VERSION=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC545AB1CF97ABB34, "")end - IS_SCE_PLATFORM=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xF911E695C1EB8518, "")end - -- PS5 (Prospero) version... - IS_PROSPERO_VERSION=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x807ABE1AB65C24D2, "")end - IS_STRING_NULL=--[[BOOL (bool)]] function(--[[string]] string)return native_invoker.unified_bool(string, 0xF22B6C47C6EAB066, "s")end - IS_STRING_NULL_OR_EMPTY=--[[BOOL (bool)]] function(--[[string]] string)return native_invoker.unified_bool(string, 0xCA042B6957743895, "s")end - -- Returns false if it's a null or empty string or if the string is too long. outInteger will be set to -999 in that case. - -- - -- If all checks have passed successfully, the return value will be set to whatever strtol(string, 0i64, 10); returns. - STRING_TO_INT=--[[BOOL (bool)]] function(--[[string]] string,--[[int* (pointer)]] outInteger)return native_invoker.unified_bool(string, outInteger, 0x5A5F40FE637EB584, "sp")end - SET_BITS_IN_RANGE=--[[void]] function(--[[int* (pointer)]] var,--[[int]] rangeStart,--[[int]] rangeEnd,--[[int]] p3)return native_invoker.unified_void(var, rangeStart, rangeEnd, p3, 0x8EF07E15701D61ED, "piii")end - GET_BITS_IN_RANGE=--[[int]] function(--[[int]] var,--[[int]] rangeStart,--[[int]] rangeEnd)return native_invoker.unified_int(var, rangeStart, rangeEnd, 0x53158863FCC0893A, "iii")end - -- See description of `ADD_STUNT_JUMP_ANGLED` for detailed info. The only difference really is this one does not have the radius (or angle, not sure) floats parameters for entry and landing zones. - ADD_STUNT_JUMP=--[[int]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] x3,--[[float]] y3,--[[float]] z3,--[[float]] x4,--[[float]] y4,--[[float]] z4,--[[float]] camX,--[[float]] camY,--[[float]] camZ,--[[int]] p15,--[[int]] p16,--[[int]] p17)return native_invoker.unified_int(x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4, camX, camY, camZ, p15, p16, p17, 0x1A992DA297A4630C, "fffffffffffffffiii")end - -- Creates a new stunt jump. - -- - -- The radius1 and radius2 might actually not be a radius at all, but that's what it seems to me testing them in-game. But they may be 'angle' floats instead, considering this native is named ADD_STUNT_JUMP_**ANGLED**. - -- - -- Info about the specific 'parameter sections': - -- - -- - -- **x1, y1, z1, x2, y2, z2 and radius1:** - -- - -- First coordinates are for the jump entry area, and the radius that will be checked around that area. So if you're not exactly within the coordinates, but you are within the outter radius limit then it will still register as entering the stunt jump. Note as mentioned above, the radius is just a guess, I'm not really sure about it's exact purpose. - -- - -- - -- **x3, y3, z3, x4, y4, z4 and radius2:** - -- - -- Next part is the landing area, again starting with the left bottom (nearest to the stunt jump entry zone) coordinate, and the second one being the top right furthest away part of the landing area. Followed by another (most likely) radius float, this is usually slightly larger than the entry zone 'radius' float value, just because you have quite a lot of places where you can land (I'm guessing). - -- - -- - -- **camX, camY and camZ:** - -- - -- The final coordinate in this native is the Camera position. Rotation and zoom/FOV is managed by the game itself, you just need to provide the camera location. - -- - -- - -- **unk1, unk2 and unk3:** - -- - -- Not sure what these are for, but they're always `150, 0, 0` in decompiled scripts. - -- - -- Here is a list of almost all of the stunt jumps from GTA V (taken from decompiled scripts): https://pastebin.com/EW1jBPkY - ADD_STUNT_JUMP_ANGLED=--[[int]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] radius1,--[[float]] x3,--[[float]] y3,--[[float]] z3,--[[float]] x4,--[[float]] y4,--[[float]] z4,--[[float]] radius2,--[[float]] camX,--[[float]] camY,--[[float]] camZ,--[[int]] p17,--[[int]] p18,--[[int]] p19)return native_invoker.unified_int(x1, y1, z1, x2, y2, z2, radius1, x3, y3, z3, x4, y4, z4, radius2, camX, camY, camZ, p17, p18, p19, 0xBBE5D803A5360CBF, "fffffffffffffffffiii")end - -- Toggles some stunt jump stuff. - TOGGLE_SHOW_OPTIONAL_STUNT_JUMP_CAMERA=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xFB80AB299D2EE1BD, "b")end - DELETE_STUNT_JUMP=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0xDC518000E39DAE1F, "i")end - ENABLE_STUNT_JUMP_SET=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0xE369A5783B866016, "i")end - DISABLE_STUNT_JUMP_SET=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0xA5272EBEDD4747F6, "i")end - SET_STUNT_JUMPS_CAN_TRIGGER=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xD79185689F8FD5DF, "b")end - IS_STUNT_JUMP_IN_PROGRESS=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x7A3F19700A4D0525, "")end - IS_STUNT_JUMP_MESSAGE_SHOWING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x2272B0A1343129F4, "")end - GET_NUM_SUCCESSFUL_STUNT_JUMPS=--[[int]] function()return native_invoker.unified_int(0x996DD1E1E02F1008, "")end - GET_TOTAL_SUCCESSFUL_STUNT_JUMPS=--[[int]] function()return native_invoker.unified_int(0x6856EC3D35C81EA4, "")end - CANCEL_STUNT_JUMP=--[[void]] function()return native_invoker.unified_void(0xE6B7B0ACD4E4B75E, "")end - -- Make sure to call this from the correct thread if you're using multiple threads because all other threads except the one which is calling SET_GAME_PAUSED will be paused which means you will lose control and the game remains in paused mode until you exit GTA5.exe - SET_GAME_PAUSED=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x577D1284D6873711, "b")end - SET_THIS_SCRIPT_CAN_BE_PAUSED=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xAA391C728106F7AF, "b")end - SET_THIS_SCRIPT_CAN_REMOVE_BLIPS_CREATED_BY_ANY_SCRIPT=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xB98236CAAECEF897, "b")end - -- This native appears on the cheat_controller script and tracks a combination of buttons, which may be used to toggle cheats in-game. Credits to ThreeSocks for the info. The hash contains the combination, while the "amount" represents the amount of buttons used in a combination. The following page can be used to make a button combination: gta5offset.com/ts/hash/ - -- - -- INT_SCORES_SCORTED was a hash collision - HAS_CHEAT_WITH_HASH_BEEN_ACTIVATED=--[[BOOL (bool)]] function(--[[Hash (int)]] hash,--[[int]] amount)return native_invoker.unified_bool(hash, amount, 0x071E2A839DE82D90, "ii")end - -- Get inputted "Cheat code", for example: - -- - -- while (TRUE) - -- { - -- if (MISC::HAS_PC_CHEAT_WITH_HASH_BEEN_ACTIVATED(${fugitive})) - -- { - -- // Do something. - -- } - -- SYSTEM::WAIT(0); - -- } - -- - -- Calling this will also set the last saved string hash to zero. - -- - HAS_PC_CHEAT_WITH_HASH_BEEN_ACTIVATED=--[[BOOL (bool)]] function(--[[Hash (int)]] hash)return native_invoker.unified_bool(hash, 0x557E43C447E700A8, "i")end - OVERRIDE_FREEZE_FLAGS=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xFA3FFB0EEBC288A3, "b")end - -- Formerly known as _LOWER_MAP_PROP_DENSITY and wrongly due to idiots as _ENABLE_MP_DLC_MAPS. - -- Sets the maximum prop density and changes a loading screen flag from 'loading story mode' to 'loading GTA Online'. Does not touch DLC map data at all. - -- - -- In fact, I doubt this changes the flag whatsoever, that's the OTHER native idiots use together with this that does so, this one only causes a loading screen to show as it reloads map data. - SET_INSTANCE_PRIORITY_MODE=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0x9BAE5AD2508DF078, "i")end - -- Sets an unknown flag used by CScene in determining which entities from CMapData scene nodes to draw, similar to SET_INSTANCE_PRIORITY_MODE. - SET_INSTANCE_PRIORITY_HINT=--[[void]] function(--[[int]] flag)return native_invoker.unified_void(flag, 0xC5F0A8EBD3F361CE, "i")end - -- This function is hard-coded to always return 0. - IS_FRONTEND_FADING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x7EA2B6AF97ECA6ED, "")end - -- spawns a few distant/out-of-sight peds, vehicles, animals etc each time it is called - POPULATE_NOW=--[[void]] function()return native_invoker.unified_void(0x7472BB270D7B4F3E, "")end - GET_INDEX_OF_CURRENT_LEVEL=--[[int]] function()return native_invoker.unified_int(0xCBAD6729F7B1F4FC, "")end - -- level can be from 0 to 3 - -- 0: 9.8 - normal - -- 1: 2.4 - low - -- 2: 0.1 - very low - -- 3: 0.0 - off - SET_GRAVITY_LEVEL=--[[void]] function(--[[int]] level)return native_invoker.unified_void(level, 0x740E14FAD5842351, "i")end - START_SAVE_DATA=--[[void]] function(--[[Any* (pointer)]] p0,--[[Any (int)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xA9575F812C6A7997, "pib")end - STOP_SAVE_DATA=--[[void]] function()return native_invoker.unified_void(0x74E20C9145FB66FD, "")end - GET_SIZE_OF_SAVE_DATA=--[[int]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_int(p0, 0xA09F896CE912481F, "b")end - REGISTER_INT_TO_SAVE=--[[void]] function(--[[Any* (pointer)]] p0,--[[string]] name)return native_invoker.unified_void(p0, name, 0x34C9EE5986258415, "ps")end - REGISTER_INT64_TO_SAVE=--[[void]] function(--[[Any* (pointer)]] p0,--[[string]] name)return native_invoker.unified_void(p0, name, 0xA735353C77334EA0, "ps")end - REGISTER_ENUM_TO_SAVE=--[[void]] function(--[[Any* (pointer)]] p0,--[[string]] name)return native_invoker.unified_void(p0, name, 0x10C2FA78D0E128A1, "ps")end - REGISTER_FLOAT_TO_SAVE=--[[void]] function(--[[Any* (pointer)]] p0,--[[string]] name)return native_invoker.unified_void(p0, name, 0x7CAEC29ECB5DFEBB, "ps")end - REGISTER_BOOL_TO_SAVE=--[[void]] function(--[[Any* (pointer)]] p0,--[[string]] name)return native_invoker.unified_void(p0, name, 0xC8F4131414C835A1, "ps")end - REGISTER_TEXT_LABEL_TO_SAVE=--[[void]] function(--[[Any* (pointer)]] p0,--[[string]] name)return native_invoker.unified_void(p0, name, 0xEDB1232C5BEAE62F, "ps")end - -- MISC::REGISTER_TEXT_LABEL_15_TO_SAVE(&a_0._f1, "tlPlateText"); - -- MISC::REGISTER_TEXT_LABEL_15_TO_SAVE(&a_0._f1C, "tlPlateText_pending"); - -- MISC::REGISTER_TEXT_LABEL_15_TO_SAVE(&a_0._f10B, "tlCarAppPlateText"); - REGISTER_TEXT_LABEL_15_TO_SAVE=--[[void]] function(--[[Any* (pointer)]] p0,--[[string]] name)return native_invoker.unified_void(p0, name, 0x6F7794F28C6B2535, "ps")end - -- Only found 3 times in decompiled scripts. - -- - -- MISC::REGISTER_TEXT_LABEL_23_TO_SAVE(a_0, "Movie_Name_For_This_Player"); - -- MISC::REGISTER_TEXT_LABEL_23_TO_SAVE(&a_0._fB, "Ringtone_For_This_Player"); - -- MISC::REGISTER_TEXT_LABEL_23_TO_SAVE(&a_0._f1EC4._f12[v_A/*6*/], &v_13); // where v_13 is "MPATMLOGSCRS0" thru "MPATMLOGSCRS15" - REGISTER_TEXT_LABEL_23_TO_SAVE=--[[void]] function(--[[Any* (pointer)]] p0,--[[string]] name)return native_invoker.unified_void(p0, name, 0x48F069265A0E4BEC, "ps")end - -- Only found 2 times in decompiled scripts. - -- - -- MISC::REGISTER_TEXT_LABEL_31_TO_SAVE(&a_0._f1F5A._f6[0/*8*/], "TEMPSTAT_LABEL"); // gets saved in a struct called "g_SaveData_STRING_ScriptSaves" - -- MISC::REGISTER_TEXT_LABEL_31_TO_SAVE(&a_0._f4B4[v_1A/*8*/], &v_5); // where v_5 is "Name0" thru "Name9", gets saved in a struct called "OUTFIT_Name" - REGISTER_TEXT_LABEL_31_TO_SAVE=--[[void]] function(--[[Any* (pointer)]] p0,--[[string]] name)return native_invoker.unified_void(p0, name, 0x8269816F6CFD40F8, "ps")end - -- MISC::REGISTER_TEXT_LABEL_63_TO_SAVE(a_0, "Thumb_label"); - -- MISC::REGISTER_TEXT_LABEL_63_TO_SAVE(&a_0._f10, "Photo_label"); - -- MISC::REGISTER_TEXT_LABEL_63_TO_SAVE(a_0, "GXTlabel"); - -- MISC::REGISTER_TEXT_LABEL_63_TO_SAVE(&a_0._f21, "StringComp"); - -- MISC::REGISTER_TEXT_LABEL_63_TO_SAVE(&a_0._f43, "SecondStringComp"); - -- MISC::REGISTER_TEXT_LABEL_63_TO_SAVE(&a_0._f53, "ThirdStringComp"); - -- MISC::REGISTER_TEXT_LABEL_63_TO_SAVE(&a_0._f32, "SenderStringComp"); - -- MISC::REGISTER_TEXT_LABEL_63_TO_SAVE(&a_0._f726[v_1A/*16*/], &v_20); // where v_20 is "LastJobTL_0_1" thru "LastJobTL_2_1", gets saved in a struct called "LAST_JobGamer_TL" - -- MISC::REGISTER_TEXT_LABEL_63_TO_SAVE(&a_0._f4B, "PAID_PLAYER"); - -- MISC::REGISTER_TEXT_LABEL_63_TO_SAVE(&a_0._f5B, "RADIO_STATION"); - REGISTER_TEXT_LABEL_63_TO_SAVE=--[[void]] function(--[[Any* (pointer)]] p0,--[[string]] name)return native_invoker.unified_void(p0, name, 0xFAA457EF263E8763, "ps")end - START_SAVE_STRUCT_WITH_SIZE=--[[void]] function(--[[Any* (pointer)]] p0,--[[int]] size,--[[string]] structName)return native_invoker.unified_void(p0, size, structName, 0xBF737600CDDBEADD, "pis")end - STOP_SAVE_STRUCT=--[[void]] function()return native_invoker.unified_void(0xEB1774DF12BB9F12, "")end - START_SAVE_ARRAY_WITH_SIZE=--[[void]] function(--[[Any* (pointer)]] p0,--[[int]] size,--[[string]] arrayName)return native_invoker.unified_void(p0, size, arrayName, 0x60FE567DF1B1AF9D, "pis")end - STOP_SAVE_ARRAY=--[[void]] function()return native_invoker.unified_void(0x04456F95153C6BE4, "")end - COPY_SCRIPT_STRUCT=--[[void]] function(--[[Any* (pointer)]] dst,--[[Any* (pointer)]] src,--[[int]] size)return native_invoker.unified_void(dst, src, size, 0x213AEB2B90CBA7AC, "ppi")end - -- https://alloc8or.re/gta5/doc/enums/DispatchType.txt - ENABLE_DISPATCH_SERVICE=--[[void]] function(--[[int]] dispatchService,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(dispatchService, toggle, 0xDC0F817884CDD856, "ib")end - BLOCK_DISPATCH_SERVICE_RESOURCE_CREATION=--[[void]] function(--[[int]] dispatchService,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(dispatchService, toggle, 0x9B2BD3773123EA2F, "ib")end - GET_NUMBER_RESOURCES_ALLOCATED_TO_WANTED_LEVEL=--[[int]] function(--[[int]] dispatchService)return native_invoker.unified_int(dispatchService, 0xEB4A0C2D56441717, "i")end - -- As for the 'police' incident, it will call police cars to you, but unlike PedsInCavalcades & Merryweather they won't start shooting at you unless you shoot first or shoot at them. The top 2 however seem to cancel theirselves if there is noone dead around you or a fire. I only figured them out as I found out the 3rd param is definately the amountOfPeople and they called incident 3 in scripts with 4 people (which the firetruck has) and incident 5 with 2 people (which the ambulence has). The 4 param I cant say is radius, but for the pedsInCavalcades and Merryweather R* uses 0.0f and for the top 3 (Emergency Services) they use 3.0f. - -- - -- Side Note: It seems calling the pedsInCavalcades or Merryweather then removing it seems to break you from calling the EmergencyEvents and I also believe pedsInCavalcades. (The V cavalcades of course not IV). - -- - -- Side Note 2: I say it breaks as if you call this proper, - -- if(CREATE_INCIDENT) etc it will return false if you do as I said above. - -- ===================================================== - CREATE_INCIDENT=--[[BOOL (bool)]] function(--[[int]] dispatchService,--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] numUnits,--[[float]] radius,--[[int* (pointer)]] outIncidentID,--[[Any (int)]] p7,--[[Any (int)]] p8)return native_invoker.unified_bool(dispatchService, x, y, z, numUnits, radius, outIncidentID, p7, p8, 0x3F892CAF67444AE7, "ifffifpii")end - -- As for the 'police' incident, it will call police cars to you, but unlike PedsInCavalcades & Merryweather they won't start shooting at you unless you shoot first or shoot at them. The top 2 however seem to cancel theirselves if there is noone dead around you or a fire. I only figured them out as I found out the 3rd param is definately the amountOfPeople and they called incident 3 in scripts with 4 people (which the firetruck has) and incident 5 with 2 people (which the ambulence has). The 4 param I cant say is radius, but for the pedsInCavalcades and Merryweather R* uses 0.0f and for the top 3 (Emergency Services) they use 3.0f. - -- - -- Side Note: It seems calling the pedsInCavalcades or Merryweather then removing it seems to break you from calling the EmergencyEvents and I also believe pedsInCavalcades. (The V cavalcades of course not IV). - -- - -- Side Note 2: I say it breaks as if you call this proper, - -- if(CREATE_INCIDENT) etc it will return false if you do as I said above. - -- ===================================================== - CREATE_INCIDENT_WITH_ENTITY=--[[BOOL (bool)]] function(--[[int]] dispatchService,--[[Ped (int)]] ped,--[[int]] numUnits,--[[float]] radius,--[[int* (pointer)]] outIncidentID,--[[Any (int)]] p5,--[[Any (int)]] p6)return native_invoker.unified_bool(dispatchService, ped, numUnits, radius, outIncidentID, p5, p6, 0x05983472F0494E60, "iiifpii")end - -- Delete an incident with a given id. - -- - -- ======================================================= - -- Correction, I have change this to int, instead of int* - -- as it doesn't use a pointer to the createdIncident. - -- If you try it you will crash (or) freeze. - -- ======================================================= - DELETE_INCIDENT=--[[void]] function(--[[int]] incidentId)return native_invoker.unified_void(incidentId, 0x556C1AA270D5A207, "i")end - -- ======================================================= - -- Correction, I have change this to int, instead of int* - -- as it doesn't use a pointer to the createdIncident. - -- If you try it you will crash (or) freeze. - -- ======================================================= - IS_INCIDENT_VALID=--[[BOOL (bool)]] function(--[[int]] incidentId)return native_invoker.unified_bool(incidentId, 0xC8BC6461E629BEAA, "i")end - SET_INCIDENT_REQUESTED_UNITS=--[[void]] function(--[[int]] incidentId,--[[int]] dispatchService,--[[int]] numUnits)return native_invoker.unified_void(incidentId, dispatchService, numUnits, 0xB08B85D860E7BA3C, "iii")end - SET_IDEAL_SPAWN_DISTANCE_FOR_INCIDENT=--[[void]] function(--[[int]] incidentId,--[[float]] p1)return native_invoker.unified_void(incidentId, p1, 0xD261BA3E7E998072, "if")end - -- Finds a position ahead of the player by predicting the players next actions. - -- The positions match path finding node positions. - -- When roads diverge, the position may rapidly change between two or more positions. This is due to the engine not being certain of which path the player will take. - FIND_SPAWN_POINT_IN_DIRECTION=--[[BOOL (bool)]] function(--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[float]] fwdVecX,--[[float]] fwdVecY,--[[float]] fwdVecZ,--[[float]] distance,--[[Vector3* (pointer)]] spawnPoint)return native_invoker.unified_bool(posX, posY, posZ, fwdVecX, fwdVecY, fwdVecZ, distance, spawnPoint, 0x6874E2190B0C1972, "fffffffp")end - ADD_POP_MULTIPLIER_AREA=--[[int]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] p6,--[[float]] p7,--[[BOOL (bool)]] p8,--[[BOOL (bool)]] p9)return native_invoker.unified_int(x1, y1, z1, x2, y2, z2, p6, p7, p8, p9, 0x67F6413D3220E18D, "ffffffffbb")end - DOES_POP_MULTIPLIER_AREA_EXIST=--[[BOOL (bool)]] function(--[[int]] id)return native_invoker.unified_bool(id, 0x1327E2FE9746BAEE, "i")end - REMOVE_POP_MULTIPLIER_AREA=--[[void]] function(--[[int]] id,--[[BOOL (bool)]] p1)return native_invoker.unified_void(id, p1, 0xB129E447A2EDA4BF, "ib")end - IS_POP_MULTIPLIER_AREA_NETWORKED=--[[BOOL (bool)]] function(--[[int]] id)return native_invoker.unified_bool(id, 0x1312F4B242609CE3, "i")end - -- This native is adding a zone, where you can change density settings. For example, you can add a zone on 0.0, 0.0, 0.0 with radius 900.0 and vehicleMultiplier 0.0, and you will not see any new population vehicle spawned in a radius of 900.0 from 0.0, 0.0, 0.0. Returns the id. You can have only 15 zones at the same time. You can remove zone using REMOVE_POP_MULTIPLIER_SPHERE - ADD_POP_MULTIPLIER_SPHERE=--[[int]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[float]] pedMultiplier,--[[float]] vehicleMultiplier,--[[BOOL (bool)]] p6,--[[BOOL (bool)]] p7)return native_invoker.unified_int(x, y, z, radius, pedMultiplier, vehicleMultiplier, p6, p7, 0x32C7A7E8C43A1F80, "ffffffbb")end - DOES_POP_MULTIPLIER_SPHERE_EXIST=--[[BOOL (bool)]] function(--[[int]] id)return native_invoker.unified_bool(id, 0x171BAFB3C60389F4, "i")end - -- Removes population multiplier sphere - REMOVE_POP_MULTIPLIER_SPHERE=--[[void]] function(--[[int]] id,--[[BOOL (bool)]] p1)return native_invoker.unified_void(id, p1, 0xE6869BECDD8F2403, "ib")end - -- Makes the ped jump around like they're in a tennis match - ENABLE_TENNIS_MODE=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle,--[[BOOL (bool)]] p2)return native_invoker.unified_void(ped, toggle, p2, 0x28A04B411933F8A6, "ibb")end - IS_TENNIS_MODE=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x5D5479D115290C3F, "i")end - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - PLAY_TENNIS_SWING_ANIM=--[[void]] function(--[[Ped (int)]] ped,--[[string]] animDict,--[[string]] animName,--[[float]] p3,--[[float]] p4,--[[BOOL (bool)]] p5)return native_invoker.unified_void(ped, animDict, animName, p3, p4, p5, 0xE266ED23311F24D4, "issffb")end - GET_TENNIS_SWING_ANIM_COMPLETE=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x17DF68D720AA77F8, "i")end - GET_TENNIS_SWING_ANIM_CAN_BE_INTERRUPTED=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x19BFED045C647C49, "i")end - GET_TENNIS_SWING_ANIM_SWUNG=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xE95B0C7D5BA3B96B, "i")end - PLAY_TENNIS_DIVE_ANIM=--[[void]] function(--[[Ped (int)]] ped,--[[int]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[BOOL (bool)]] p5)return native_invoker.unified_void(ped, p1, p2, p3, p4, p5, 0x8FA9C42FC5D7C64B, "iifffb")end - -- From the scripts: - -- - -- MISC::SET_TENNIS_MOVE_NETWORK_SIGNAL_FLOAT(sub_aa49(a_0), "ForcedStopDirection", v_E); - -- - -- Related to tennis mode. - SET_TENNIS_MOVE_NETWORK_SIGNAL_FLOAT=--[[void]] function(--[[Ped (int)]] ped,--[[string]] p1,--[[float]] p2)return native_invoker.unified_void(ped, p1, p2, 0x54F157E0336A3822, "isf")end - RESET_DISPATCH_SPAWN_LOCATION=--[[void]] function()return native_invoker.unified_void(0x5896F2BD5683A4E1, "")end - SET_DISPATCH_SPAWN_LOCATION=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(x, y, z, 0xD10F442036302D50, "fff")end - RESET_DISPATCH_IDEAL_SPAWN_DISTANCE=--[[void]] function()return native_invoker.unified_void(0x77A84429DD9F0A15, "")end - SET_DISPATCH_IDEAL_SPAWN_DISTANCE=--[[void]] function(--[[float]] distance)return native_invoker.unified_void(distance, 0x6FE601A64180D423, "f")end - RESET_DISPATCH_TIME_BETWEEN_SPAWN_ATTEMPTS=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xEB2DB0CAD13154B3, "i")end - SET_DISPATCH_TIME_BETWEEN_SPAWN_ATTEMPTS=--[[void]] function(--[[Any (int)]] p0,--[[float]] p1)return native_invoker.unified_void(p0, p1, 0x44F7CBC1BEB3327D, "if")end - SET_DISPATCH_TIME_BETWEEN_SPAWN_ATTEMPTS_MULTIPLIER=--[[void]] function(--[[Any (int)]] p0,--[[float]] p1)return native_invoker.unified_void(p0, p1, 0x48838ED9937A15D1, "if")end - -- To remove, see: REMOVE_DISPATCH_SPAWN_BLOCKING_AREA - -- See IS_POINT_IN_ANGLED_AREA for the definition of an angled area. - ADD_DISPATCH_SPAWN_ANGLED_BLOCKING_AREA=--[[int]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] width)return native_invoker.unified_int(x1, y1, z1, x2, y2, z2, width, 0x918C7B2D2FF3928B, "fffffff")end - ADD_DISPATCH_SPAWN_SPHERE_BLOCKING_AREA=--[[int]] function(--[[float]] x1,--[[float]] y1,--[[float]] x2,--[[float]] y2)return native_invoker.unified_int(x1, y1, x2, y2, 0x2D4259F1FEB81DA9, "ffff")end - REMOVE_DISPATCH_SPAWN_BLOCKING_AREA=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0x264AC28B01B353A5, "i")end - RESET_DISPATCH_SPAWN_BLOCKING_AREAS=--[[void]] function()return native_invoker.unified_void(0xAC7BFD5C1D83EA75, "")end - RESET_WANTED_RESPONSE_NUM_PEDS_TO_SPAWN=--[[void]] function()return native_invoker.unified_void(0xD9F692D349249528, "")end - SET_WANTED_RESPONSE_NUM_PEDS_TO_SPAWN=--[[void]] function(--[[int]] p0,--[[int]] p1)return native_invoker.unified_void(p0, p1, 0xE532EC1A63231B4F, "ii")end - ADD_TACTICAL_NAV_MESH_POINT=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(x, y, z, 0xB8721407EE9C3FF6, "fff")end - CLEAR_TACTICAL_NAV_MESH_POINTS=--[[void]] function()return native_invoker.unified_void(0xB3CD58CCA6CDA852, "")end - -- Activates (usused?) riot mode. All NPCs are being hostile to each other (including player). Also the game will give weapons (pistols, smgs) to random NPCs. - SET_RIOT_MODE_ENABLED=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x2587A48BC88DFADF, "b")end - DISPLAY_ONSCREEN_KEYBOARD_WITH_LONGER_INITIAL_STRING=--[[void]] function(--[[int]] p0,--[[string]] windowTitle,--[[Any* (pointer)]] p2,--[[string]] defaultText,--[[string]] defaultConcat1,--[[string]] defaultConcat2,--[[string]] defaultConcat3,--[[string]] defaultConcat4,--[[string]] defaultConcat5,--[[string]] defaultConcat6,--[[string]] defaultConcat7,--[[int]] maxInputLength)return native_invoker.unified_void(p0, windowTitle, p2, defaultText, defaultConcat1, defaultConcat2, defaultConcat3, defaultConcat4, defaultConcat5, defaultConcat6, defaultConcat7, maxInputLength, 0xCA78CFA0366592FE, "ispssssssssi")end - -- sfink: note, p0 is set to 6 for PC platform in at least 1 script, or to `unk::_get_ui_language_id() == 0` otherwise. - -- - -- NOTE: windowTitle uses text labels, and an invalid value will display nothing. - -- - -- www.gtaforums.com/topic/788343-vrel-script-hook-v/?p=1067380474 - -- - -- windowTitle's - -- ----------------- - -- CELL_EMAIL_BOD = "Enter your Eyefind message" - -- CELL_EMAIL_BODE = "Message too long. Try again" - -- CELL_EMAIL_BODF = "Forbidden message. Try again" - -- CELL_EMAIL_SOD = "Enter your Eyefind subject" - -- CELL_EMAIL_SODE = "Subject too long. Try again" - -- CELL_EMAIL_SODF = "Forbidden text. Try again" - -- CELL_EMASH_BOD = "Enter your Eyefind message" - -- CELL_EMASH_BODE = "Message too long. Try again" - -- CELL_EMASH_BODF = "Forbidden message. Try again" - -- CELL_EMASH_SOD = "Enter your Eyefind subject" - -- CELL_EMASH_SODE = "Subject too long. Try again" - -- CELL_EMASH_SODF = "Forbidden Text. Try again" - -- FMMC_KEY_TIP10 = "Enter Synopsis" - -- FMMC_KEY_TIP12 = "Enter Custom Team Name" - -- FMMC_KEY_TIP12F = "Forbidden Text. Try again" - -- FMMC_KEY_TIP12N = "Custom Team Name" - -- FMMC_KEY_TIP8 = "Enter Message" - -- FMMC_KEY_TIP8F = "Forbidden Text. Try again" - -- FMMC_KEY_TIP8FS = "Invalid Message. Try again" - -- FMMC_KEY_TIP8S = "Enter Message" - -- FMMC_KEY_TIP9 = "Enter Outfit Name" - -- FMMC_KEY_TIP9F = "Invalid Outfit Name. Try again" - -- FMMC_KEY_TIP9N = "Outfit Name" - -- PM_NAME_CHALL = "Enter Challenge Name" - DISPLAY_ONSCREEN_KEYBOARD=--[[void]] function(--[[int]] p0,--[[string]] windowTitle,--[[string]] p2,--[[string]] defaultText,--[[string]] defaultConcat1,--[[string]] defaultConcat2,--[[string]] defaultConcat3,--[[int]] maxInputLength)return native_invoker.unified_void(p0, windowTitle, p2, defaultText, defaultConcat1, defaultConcat2, defaultConcat3, maxInputLength, 0x00DC833F2568DBF6, "issssssi")end - -- Returns the current status of the onscreen keyboard, and updates the output. - -- - -- Status Codes: - -- - -- -1: Keyboard isn't active - -- 0: User still editing - -- 1: User has finished editing - -- 2: User has canceled editing - UPDATE_ONSCREEN_KEYBOARD=--[[int]] function()return native_invoker.unified_int(0x0CF2B696BBF945AE, "")end - -- Returns NULL unless UPDATE_ONSCREEN_KEYBOARD() returns 1 in the same tick. - GET_ONSCREEN_KEYBOARD_RESULT=--[[string]] function()return native_invoker.unified_string(0x8362B09B91893647, "")end - -- DO NOT use this as it doesn't clean up the text input box properly and your script will get stuck in the UPDATE_ONSCREEN_KEYBOARD() loop. - -- Use FORCE_CLOSE_TEXT_INPUT_BOX instead. - CANCEL_ONSCREEN_KEYBOARD=--[[void]] function()return native_invoker.unified_void(0x58A39BE597CE99CD, "")end - -- p0 was always 2 in R* scripts. - -- Called before calling DISPLAY_ONSCREEN_KEYBOARD if the input needs to be saved. - NEXT_ONSCREEN_KEYBOARD_RESULT_WILL_DISPLAY_USING_THESE_FONTS=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0x3ED1438C1F5C6612, "i")end - -- Appears to remove stealth kill action from memory - ACTION_MANAGER_ENABLE_ACTION=--[[void]] function(--[[Hash (int)]] hash,--[[BOOL (bool)]] enable)return native_invoker.unified_void(hash, enable, 0xA6A12939F16D85BE, "ib")end - -- GET_GAME_TIMER() / 1000 - GET_REAL_WORLD_TIME=--[[int]] function()return native_invoker.unified_int(0x3F60413F5DF65748, "")end - SUPRESS_RANDOM_EVENT_THIS_FRAME=--[[void]] function(--[[int]] eventType,--[[BOOL (bool)]] suppress)return native_invoker.unified_void(eventType, suppress, 0x1EAE0A6E978894A2, "ib")end - SET_EXPLOSIVE_AMMO_THIS_FRAME=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0xA66C71C98D5F2CFB, "i")end - SET_FIRE_AMMO_THIS_FRAME=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0x11879CDD803D30F4, "i")end - SET_EXPLOSIVE_MELEE_THIS_FRAME=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0xFF1BED81BFDC0FE0, "i")end - SET_SUPER_JUMP_THIS_FRAME=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0x57FFF03E423A4C0B, "i")end - SET_BEAST_JUMP_THIS_FRAME=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0x438822C279B73B93, "i")end - SET_FORCED_JUMP_THIS_FRAME=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0xA1183BCFEE0F93D1, "i")end - HAS_GAME_INSTALLED_THIS_SESSION=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x6FDDF453C0C756EC, "")end - SET_TICKER_JOHNMARSTON_IS_DONE=--[[void]] function()return native_invoker.unified_void(0xFB00CA71DA386228, "")end - ARE_PROFILE_SETTINGS_VALID=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x5AA3BEFA29F03AD4, "")end - PREVENT_ARREST_STATE_THIS_FRAME=--[[void]] function()return native_invoker.unified_void(0xE3D969D2785FFB5E, "")end - -- Sets the localplayer playerinfo state back to playing (State 0) - -- - -- States are: - -- -1: "Invalid" - -- 0: "Playing" - -- 1: "Died" - -- 2: "Arrested" - -- 3: "Failed Mission" - -- 4: "Left Game" - -- 5: "Respawn" - -- 6: "In MP Cutscene" - FORCE_GAME_STATE_PLAYING=--[[void]] function()return native_invoker.unified_void(0xC0AA53F866B3134D, "")end - SCRIPT_RACE_INIT=--[[void]] function(--[[int]] p0,--[[int]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x0A60017F841A54F2, "iiii")end - SCRIPT_RACE_SHUTDOWN=--[[void]] function()return native_invoker.unified_void(0x1FF6BF9A63E5757F, "")end - SCRIPT_RACE_PLAYER_HIT_CHECKPOINT=--[[void]] function(--[[Player (int)]] player,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(player, p1, p2, p3, 0x1BB299305C3E8C13, "iiii")end - SCRIPT_RACE_GET_PLAYER_SPLIT_TIME=--[[BOOL (bool)]] function(--[[Player (int)]] player,--[[int* (pointer)]] p1,--[[int* (pointer)]] p2)return native_invoker.unified_bool(player, p1, p2, 0x8EF5573A1F801A5C, "ipp")end - START_END_USER_BENCHMARK=--[[void]] function()return native_invoker.unified_void(0x92790862E36C2ADA, "")end - STOP_END_USER_BENCHMARK=--[[void]] function()return native_invoker.unified_void(0xC7DB36C24634F52B, "")end - RESET_END_USER_BENCHMARK=--[[void]] function()return native_invoker.unified_void(0x437138B6A830166A, "")end - -- Saves the benchmark recording to %USERPROFILE%\Documents\Rockstar Games\GTA V\Benchmarks and submits some metrics. - SAVE_END_USER_BENCHMARK=--[[void]] function()return native_invoker.unified_void(0x37DEB0AA183FB6D8, "")end - -- Returns true if the current frontend menu is FE_MENU_VERSION_SP_PAUSE - UI_STARTED_END_USER_BENCHMARK=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xEA2F2061875EED90, "")end - -- Returns true if the current frontend menu is FE_MENU_VERSION_LANDING_MENU - LANDING_SCREEN_STARTED_END_USER_BENCHMARK=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x3BBBD13E5041A79E, "")end - -- Returns true if command line option '-benchmark' is set. - IS_COMMANDLINE_END_USER_BENCHMARK=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xA049A5BE0F04F2F8, "")end - -- Returns value of the '-benchmarkIterations' command line option. - GET_BENCHMARK_ITERATIONS=--[[int]] function()return native_invoker.unified_int(0x4750FC27570311EC, "")end - -- Returns value of the '-benchmarkPass' command line option. - GET_BENCHMARK_PASS=--[[int]] function()return native_invoker.unified_int(0x1B2366C3F2A5C8DF, "")end - -- In singleplayer it does exactly what the name implies. In FiveM / GTA:Online it shows `Disconnecting from GTA Online` HUD and then quits the game. - RESTART_GAME=--[[void]] function()return native_invoker.unified_void(0xE574A662ACAEFBB1, "")end - -- Exits the game and downloads a fresh social club update on next restart. - QUIT_GAME=--[[void]] function()return native_invoker.unified_void(0xEB6891F03362FB12, "")end - -- Hardcoded to always return true. - HAS_ASYNC_INSTALL_FINISHED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x14832BF2ABA53FC5, "")end - CLEANUP_ASYNC_INSTALL=--[[void]] function()return native_invoker.unified_void(0xC79AE21974B01FB2, "")end - -- aka "constrained" - PLM_IS_IN_CONSTRAINED_MODE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x684A41975F077262, "")end - -- Returns duration of how long the game has been in power-saving mode (aka "constrained") in milliseconds. - PLM_GET_CONSTRAINED_DURATION_MS=--[[int]] function()return native_invoker.unified_int(0xABB2FA71C83A1B72, "")end - -- If toggle is true, the ped's head is shown in the pause menu - -- If toggle is false, the ped's head is not shown in the pause menu - SET_PLAYER_IS_IN_ANIMAL_FORM=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x4EBB7E87AA0DBED4, "b")end - -- Although we don't have a jenkins hash for this one, the name is 100% confirmed. - GET_IS_PLAYER_IN_ANIMAL_FORM=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x9689123E3F213AA5, "")end - SET_PLAYER_IS_REPEATING_A_MISSION=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x9D8D44ADBBA61EF2, "b")end - -- Does nothing (it's a nullsub). - DISABLE_SCREEN_DIMMING_THIS_FRAME=--[[void]] function()return native_invoker.unified_void(0x23227DF0B2115469, "")end - GET_CITY_DENSITY=--[[float]] function()return native_invoker.unified_float(0xD10282B6E3751BA0, "")end - USE_ACTIVE_CAMERA_FOR_TIMESLICING_CENTRE=--[[void]] function()return native_invoker.unified_void(0x693478ACBD7F18E7, "")end - SET_CONTENT_ID_INDEX=--[[void]] function(--[[Hash (int)]] contentId,--[[int]] index)return native_invoker.unified_void(contentId, index, 0x4B82FA6F2D624634, "ii")end - GET_CONTENT_ID_INDEX=--[[int]] function(--[[Hash (int)]] contentId)return native_invoker.unified_int(contentId, 0xECF041186C5A94DC, "i")end - _SET_CONTENT_PROP_TYPE=--[[void]] function(--[[Hash (int)]] model,--[[int]] type)return native_invoker.unified_void(model, type, 0xBA4583AF4C678A9B, "ii")end - -- Returns prop type for given model hash - _GET_CONTENT_PROP_TYPE=--[[int]] function(--[[Hash (int)]] model)return native_invoker.unified_int(model, 0x8BAF8AD59F47AAFC, "i")end --- MOBILE - -- Creates a mobile phone of the specified type. - -- - -- Possible phone types: - -- - -- 0 - Default phone / Michael's phone - -- 1 - Trevor's phone - -- 2 - Franklin's phone - -- 3 - Unused police phone - -- 4 - Prologue phone - -- - -- Higher values may crash your game. - CREATE_MOBILE_PHONE=--[[void]] function(--[[int]] phoneType)return native_invoker.unified_void(phoneType, 0xA4E8E696C532FBC7, "i")end - -- Destroys the currently active mobile phone. - DESTROY_MOBILE_PHONE=--[[void]] function()return native_invoker.unified_void(0x3BC861DF703E5097, "")end - -- The minimum/default is 500.0f. If you plan to make it bigger set it's position as well. Also this seems to need to be called in a loop as when you close the phone the scale is reset. If not in a loop you'd need to call it everytime before you re-open the phone. - SET_MOBILE_PHONE_SCALE=--[[void]] function(--[[float]] scale)return native_invoker.unified_void(scale, 0xCBDD322A73D6D932, "f")end - -- Last parameter is unknown and always zero. - SET_MOBILE_PHONE_ROTATION=--[[void]] function(--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ,--[[Any (int)]] p3)return native_invoker.unified_void(rotX, rotY, rotZ, p3, 0xBB779C0CA917E865, "fffi")end - GET_MOBILE_PHONE_ROTATION=--[[void]] function(--[[Vector3* (pointer)]] rotation,--[[Vehicle (int)]] p1)return native_invoker.unified_void(rotation, p1, 0x1CEFB61F193070AE, "pi")end - SET_MOBILE_PHONE_POSITION=--[[void]] function(--[[float]] posX,--[[float]] posY,--[[float]] posZ)return native_invoker.unified_void(posX, posY, posZ, 0x693A5C6D6734085B, "fff")end - GET_MOBILE_PHONE_POSITION=--[[void]] function(--[[Vector3* (pointer)]] position)return native_invoker.unified_void(position, 0x584FDFDA48805B86, "p")end - -- If bool Toggle = true so the mobile is hide to screen. - -- If bool Toggle = false so the mobile is show to screen. - SCRIPT_IS_MOVING_MOBILE_PHONE_OFFSCREEN=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xF511F759238A5122, "b")end - -- This one is weird and seems to return a TRUE state regardless of whether the phone is visible on screen or tucked away. - -- - -- - -- I can confirm the above. This function is hard-coded to always return 1. - CAN_PHONE_BE_SEEN_ON_SCREEN=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC4E2813898C97A4B, "")end - SET_MOBILE_PHONE_DOF_STATE=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x375A706A5C2FD084, "b")end - -- For move the finger of player, the value of int goes 1 at 5. - CELL_SET_INPUT=--[[void]] function(--[[int]] direction)return native_invoker.unified_void(direction, 0x95C9E72F3D7DEC9B, "i")end - -- if the bool "Toggle" is "true" so the phone is lean. - -- if the bool "Toggle" is "false" so the phone is not lean. - CELL_HORIZONTAL_MODE_TOGGLE=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x44E44169EF70138E, "b")end - CELL_CAM_ACTIVATE=--[[void]] function(--[[BOOL (bool)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0xFDE8F069C542D126, "bb")end - CELL_CAM_ACTIVATE_SELFIE_MODE=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x015C49A93E3E086E, "b")end - CELL_CAM_ACTIVATE_SHALLOW_DOF_MODE=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xA2CCBE62CD4C91A4, "b")end - CELL_CAM_SET_SELFIE_MODE_SIDE_OFFSET_SCALING=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0x1B0B4AEED5B9B41C, "f")end - CELL_CAM_SET_SELFIE_MODE_HORZ_PAN_OFFSET=--[[void]] function(--[[float]] horizontalPan)return native_invoker.unified_void(horizontalPan, 0x53F4892D18EC90A4, "f")end - CELL_CAM_SET_SELFIE_MODE_VERT_PAN_OFFSET=--[[void]] function(--[[float]] vertPan)return native_invoker.unified_void(vertPan, 0x3117D84EFA60F77B, "f")end - CELL_CAM_SET_SELFIE_MODE_ROLL_OFFSET=--[[void]] function(--[[float]] roll)return native_invoker.unified_void(roll, 0x15E69E2802C24B8D, "f")end - CELL_CAM_SET_SELFIE_MODE_DISTANCE_SCALING=--[[void]] function(--[[float]] distanceScaling)return native_invoker.unified_void(distanceScaling, 0xAC2890471901861C, "f")end - CELL_CAM_SET_SELFIE_MODE_HEAD_YAW_OFFSET=--[[void]] function(--[[float]] yaw)return native_invoker.unified_void(yaw, 0xD6ADE981781FCA09, "f")end - CELL_CAM_SET_SELFIE_MODE_HEAD_ROLL_OFFSET=--[[void]] function(--[[float]] roll)return native_invoker.unified_void(roll, 0xF1E22DC13F5EEBAD, "f")end - CELL_CAM_SET_SELFIE_MODE_HEAD_PITCH_OFFSET=--[[void]] function(--[[float]] pitch)return native_invoker.unified_void(pitch, 0x466DA42C89865553, "f")end - CELL_CAM_IS_CHAR_VISIBLE_NO_FACE_CHECK=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x439E9BC95B7E7FBE, "i")end - GET_MOBILE_PHONE_RENDER_ID=--[[void]] function(--[[int* (pointer)]] renderId)return native_invoker.unified_void(renderId, 0xB4A53E05F68B6FA1, "p")end --- MONEY - NETWORK_INITIALIZE_CASH=--[[void]] function(--[[int]] wallet,--[[int]] bank)return native_invoker.unified_void(wallet, bank, 0x3DA5ECD1A56CBA6D, "ii")end - -- Note the 2nd parameters are always 1, 0. I have a feeling it deals with your money, wallet, bank. So when you delete the character it of course wipes the wallet cash at that time. So if that was the case, it would be eg, NETWORK_DELETE_CHARACTER(characterIndex, deleteWalletCash, deleteBankCash); - NETWORK_DELETE_CHARACTER=--[[void]] function(--[[int]] characterSlot,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(characterSlot, p1, p2, 0x05A50AF38947EB8D, "ibb")end - NETWORK_MANUAL_DELETE_CHARACTER=--[[void]] function(--[[int]] characterSlot)return native_invoker.unified_void(characterSlot, 0x821418C727FCACD7, "i")end - NETWORK_GET_PLAYER_IS_HIGH_EARNER=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xFB2456B2040A6A67, "")end - NETWORK_CLEAR_CHARACTER_WALLET=--[[void]] function(--[[int]] characterSlot)return native_invoker.unified_void(characterSlot, 0xA921DED15FDF28F5, "i")end - NETWORK_GIVE_PLAYER_JOBSHARE_CASH=--[[void]] function(--[[int]] amount,--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_void(amount, gamerHandle, 0xFB18DF9CB95E0105, "ip")end - NETWORK_RECEIVE_PLAYER_JOBSHARE_CASH=--[[void]] function(--[[int]] value,--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_void(value, gamerHandle, 0x56A3B51944C50598, "ip")end - NETWORK_CAN_SHARE_JOB_CASH=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x1C2473301B1C66BA, "")end - -- index - -- ------- - -- See function sub_1005 in am_boat_taxi.ysc - -- - -- context - -- ---------- - -- "BACKUP_VAGOS" - -- "BACKUP_LOST" - -- "BACKUP_FAMILIES" - -- "HIRE_MUGGER" - -- "HIRE_MERCENARY" - -- "BUY_CARDROPOFF" - -- "HELI_PICKUP" - -- "BOAT_PICKUP" - -- "CLEAR_WANTED" - -- "HEAD_2_HEAD" - -- "CHALLENGE" - -- "SHARE_LAST_JOB" - -- "DEFAULT" - -- - -- reason - -- --------- - -- "NOTREACHTARGET" - -- "TARGET_ESCAPE" - -- "DELIVERY_FAIL" - -- "NOT_USED" - -- "TEAM_QUIT" - -- "SERVER_ERROR" - -- "RECEIVE_LJ_L" - -- "CHALLENGE_PLAYER_LEFT" - -- "DEFAULT" - -- - -- unk - -- ----- - -- Unknown bool value - -- - -- - NETWORK_REFUND_CASH=--[[void]] function(--[[int]] index,--[[string]] context,--[[string]] reason,--[[BOOL (bool)]] p3)return native_invoker.unified_void(index, context, reason, p3, 0xF9C812CD7C46E817, "issb")end - NETWORK_DEDUCT_CASH=--[[void]] function(--[[int]] amount,--[[string]] p1,--[[string]] p2,--[[BOOL (bool)]] p3,--[[BOOL (bool)]] p4,--[[BOOL (bool)]] p5)return native_invoker.unified_void(amount, p1, p2, p3, p4, p5, 0x18B7AE224B087E26, "issbbb")end - NETWORK_MONEY_CAN_BET=--[[BOOL (bool)]] function(--[[int]] amount,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_bool(amount, p1, p2, 0x81404F3DC124FE5B, "ibb")end - NETWORK_CAN_BET=--[[BOOL (bool)]] function(--[[int]] amount)return native_invoker.unified_bool(amount, 0x3A54E33660DED67F, "i")end - -- GTAO_CASINO_HOUSE - -- GTAO_CASINO_INSIDETRACK - -- GTAO_CASINO_LUCKYWHEEL - -- GTAO_CASINO_BLACKJACK - -- GTAO_CASINO_ROULETTE - -- GTAO_CASINO_SLOTS - -- GTAO_CASINO_PURCHASE_CHIPS - -- - -- NETWORK_C* - NETWORK_CASINO_CAN_BET=--[[BOOL (bool)]] function(--[[Hash (int)]] hash)return native_invoker.unified_bool(hash, 0x158C16F5E4CF41F8, "i")end - NETWORK_CASINO_CAN_BET_PVC=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x394DCDB9E836B7A9, "")end - NETWORK_CASINO_CAN_BET_AMOUNT=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0xF62F6D9528358FE4, "i")end - NETWORK_CASINO_CAN_BUY_CHIPS_PVC=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x8968D4D8C6C40C11, "")end - NETWORK_CASINO_BUY_CHIPS=--[[BOOL (bool)]] function(--[[int]] p0,--[[int]] p1)return native_invoker.unified_bool(p0, p1, 0x3BD101471C7F9EEC, "ii")end - NETWORK_CASINO_SELL_CHIPS=--[[BOOL (bool)]] function(--[[int]] p0,--[[int]] p1)return native_invoker.unified_bool(p0, p1, 0xED44897CB336F480, "ii")end - -- Does nothing (it's a nullsub). - NETWORK_DEFER_CASH_TRANSACTIONS_UNTIL_SHOP_SAVE=--[[void]] function()return native_invoker.unified_void(0xCD0F5B5D932AE473, "")end - CAN_PAY_AMOUNT_TO_BOSS=--[[BOOL (bool)]] function(--[[int]] p0,--[[int]] p1,--[[int]] amount,--[[int* (pointer)]] p3)return native_invoker.unified_bool(p0, p1, amount, p3, 0x9777734DAD16992F, "iiip")end - NETWORK_EARN_FROM_PICKUP=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0xED1517D3AF17C698, "i")end - NETWORK_EARN_FROM_CASHING_OUT=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0x718FBBF67414FA36, "i")end - NETWORK_EARN_FROM_GANGATTACK_PICKUP=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0xA03D4ACE0A3284CE, "i")end - NETWORK_EARN_ASSASSINATE_TARGET_KILLED=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0xFA700D8A9905F78A, "i")end - -- For the money bags that drop a max of $40,000. Often called 40k bags. - -- - -- Most likely NETWORK_EARN_FROM_ROB*** - NETWORK_EARN_FROM_ROB_ARMORED_CARS=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0xF514621E8EA463D0, "i")end - NETWORK_EARN_FROM_CRATE_DROP=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0xB1CC1B9EC3007A2A, "i")end - NETWORK_EARN_FROM_BETTING=--[[void]] function(--[[int]] amount,--[[string]] p1)return native_invoker.unified_void(amount, p1, 0x827A5BA1A44ACA6D, "is")end - NETWORK_EARN_FROM_JOB=--[[void]] function(--[[int]] amount,--[[string]] p1)return native_invoker.unified_void(amount, p1, 0xB2CC4836834E8A98, "is")end - NETWORK_EARN_FROM_JOBX2=--[[void]] function(--[[int]] amount,--[[string]] p1)return native_invoker.unified_void(amount, p1, 0xDEBBF584665411D0, "is")end - NETWORK_EARN_FROM_PREMIUM_JOB=--[[void]] function(--[[int]] amount,--[[string]] p1)return native_invoker.unified_void(amount, p1, 0xC8407624CEF2354B, "is")end - NETWORK_EARN_FROM_BEND_JOB=--[[void]] function(--[[int]] amount,--[[string]] heistHash)return native_invoker.unified_void(amount, heistHash, 0x61326EE6DF15B0CA, "is")end - NETWORK_EARN_FROM_CHALLENGE_WIN=--[[void]] function(--[[Any (int)]] p0,--[[Any* (pointer)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x2B171E6B2F64D8DF, "ipb")end - NETWORK_EARN_FROM_BOUNTY=--[[void]] function(--[[int]] amount,--[[Any* (pointer)]] gamerHandle,--[[Any* (pointer)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(amount, gamerHandle, p2, p3, 0x131BB5DA15453ACF, "ippi")end - NETWORK_EARN_FROM_IMPORT_EXPORT=--[[void]] function(--[[int]] amount,--[[Hash (int)]] modelHash)return native_invoker.unified_void(amount, modelHash, 0xF92A014A634442D6, "ii")end - NETWORK_EARN_FROM_HOLDUPS=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0x45B8154E077D9E4D, "i")end - NETWORK_EARN_FROM_PROPERTY=--[[void]] function(--[[int]] amount,--[[Hash (int)]] propertyName)return native_invoker.unified_void(amount, propertyName, 0x849648349D77F5C5, "ii")end - -- DSPORT - NETWORK_EARN_FROM_AI_TARGET_KILL=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x515B4A22E4D3C6D7, "ii")end - NETWORK_EARN_FROM_NOT_BADSPORT=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0x4337511FA8221D36, "i")end - NETWORK_EARN_FROM_VEHICLE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5,--[[Any (int)]] p6,--[[Any (int)]] p7)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, p7, 0xB539BD8A4C1EECF8, "iiiiiiii")end - NETWORK_EARN_FROM_PERSONAL_VEHICLE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5,--[[Any (int)]] p6,--[[Any (int)]] p7,--[[Any (int)]] p8)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, p7, p8, 0x3F4D00167E41E0AD, "iiiiiiiii")end - -- type either Monthly,Weekly,Daily - NETWORK_EARN_FROM_DAILY_OBJECTIVES=--[[void]] function(--[[int]] amount,--[[string]] type,--[[int]] characterSlot)return native_invoker.unified_void(amount, type, characterSlot, 0x6EA318C91C1A8786, "isi")end - -- Example for p1: "AM_DISTRACT_COPS" - NETWORK_EARN_FROM_AMBIENT_JOB=--[[void]] function(--[[int]] p0,--[[string]] p1,--[[Any* (pointer)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xFB6DB092FBAE29E6, "isp")end - NETWORK_EARN_FROM_JOB_BONUS=--[[void]] function(--[[Any (int)]] p0,--[[Any* (pointer)]] p1,--[[Any* (pointer)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x6816FB4416760775, "ipp")end - NETWORK_EARN_FROM_CRIMINAL_MASTERMIND=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xFA009A62990671D4, "iii")end - NETWORK_EARN_HEIST_AWARD=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x9D4FDBB035229669, "iii")end - NETWORK_EARN_FIRST_TIME_BONUS=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x11B0A20C493F7E36, "iii")end - NETWORK_EARN_GOON=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xCDA1C62BE2777802, "iii")end - NETWORK_EARN_BOSS=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x08B0CA7A6AB3AC32, "iii")end - NETWORK_EARN_AGENCY=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x0CB1BE0633C024A8, "iiii")end - NETWORK_EARN_FROM_WAREHOUSE=--[[void]] function(--[[int]] amount,--[[int]] id)return native_invoker.unified_void(amount, id, 0x3E4ADAFF1830F146, "ii")end - NETWORK_EARN_FROM_CONTRABAND=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1)return native_invoker.unified_void(amount, p1, 0xECA658CE2A4E5A72, "ii")end - NETWORK_EARN_FROM_DESTROYING_CONTRABAND=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x84C0116D012E8FC2, "iii")end - NETWORK_EARN_FROM_SMUGGLER_WORK=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, 0x6B7E4FB50D5F3D65, "iiiiii")end - NETWORK_EARN_FROM_HANGAR_TRADE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x31BA138F6304FB9F, "ii")end - NETWORK_EARN_PURCHASE_CLUB_HOUSE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x55A1E095DB052FA5, "ii")end - NETWORK_EARN_FROM_BUSINESS_PRODUCT=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(amount, p1, p2, p3, 0x8586789730B10CAF, "iiii")end - NETWORK_EARN_FROM_VEHICLE_EXPORT=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(amount, p1, p2, 0xEDEAD9A91EC768B3, "iii")end - NETWORK_EARN_SMUGGLER_AGENCY=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(amount, p1, p2, p3, 0xDEE612F2D71B0308, "iiii")end - NETWORK_EARN_BOUNTY_HUNTER_REWARD=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xF6B170F9A02E9E87, "i")end - NETWORK_EARN_FROM_BUSINESS_BATTLE=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x42FCE14F50F27291, "i")end - NETWORK_EARN_FROM_CLUB_MANAGEMENT_PARTICIPATION=--[[void]] function(--[[Any (int)]] p0,--[[int]] p1)return native_invoker.unified_void(p0, p1, 0xA75EAC69F59E96E7, "ii")end - NETWORK_EARN_FROM_FMBB_PHONECALL_MISSION=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xC5156361F26E2212, "i")end - NETWORK_EARN_FROM_BUSINESS_HUB_SELL=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x0B39CF0D53F1C883, "iii")end - NETWORK_EARN_FROM_FMBB_BOSS_WORK=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x1FDA0AA679C9919B, "i")end - NETWORK_EARN_FMBB_WAGE_BONUS=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xFFFBA1B1F7C0B6F4, "i")end - NETWORK_CAN_SPEND_MONEY=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5)return native_invoker.unified_bool(p0, p1, p2, p3, p4, p5, 0xAB3CAA6B422164DA, "ibbbii")end - NETWORK_CAN_SPEND_MONEY2=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3,--[[Any* (pointer)]] p4,--[[Any (int)]] p5,--[[Any (int)]] p6)return native_invoker.unified_bool(p0, p1, p2, p3, p4, p5, p6, 0x7303E27CC6532080, "ibbbpii")end - NETWORK_BUY_ITEM=--[[void]] function(--[[int]] amount,--[[Hash (int)]] item,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[BOOL (bool)]] p4,--[[string]] item_name,--[[Any (int)]] p6,--[[Any (int)]] p7,--[[Any (int)]] p8,--[[BOOL (bool)]] p9)return native_invoker.unified_void(amount, item, p2, p3, p4, item_name, p6, p7, p8, p9, 0xF0077C797F66A355, "iiiibsiiib")end - NETWORK_SPENT_TAXI=--[[void]] function(--[[int]] amount,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(amount, p1, p2, p3, p4, 0x17C3A7D31EAE39F9, "ibbii")end - NETWORK_PAY_EMPLOYEE_WAGE=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x5FD5ED82CBBE9989, "ibb")end - NETWORK_PAY_MATCH_ENTRY_FEE=--[[void]] function(--[[int]] amount,--[[string]] matchId,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(amount, matchId, p2, p3, 0x9346E14F2AF74D46, "isbb")end - NETWORK_SPENT_BETTING=--[[void]] function(--[[int]] amount,--[[int]] p1,--[[string]] matchId,--[[BOOL (bool)]] p3,--[[BOOL (bool)]] p4)return native_invoker.unified_void(amount, p1, matchId, p3, p4, 0x1C436FD11FFA692F, "iisbb")end - NETWORK_SPENT_WAGER=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[int]] amount)return native_invoker.unified_void(p0, p1, amount, 0xD99DB210089617FE, "iii")end - NETWORK_SPENT_IN_STRIPCLUB=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[Any (int)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xEE99784E4467689C, "ibib")end - NETWORK_BUY_HEALTHCARE=--[[void]] function(--[[int]] cost,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(cost, p1, p2, 0xD9B067E55253E3DD, "ibb")end - -- p1 = 0 (always) - -- p2 = 1 (always) - NETWORK_BUY_AIRSTRIKE=--[[void]] function(--[[int]] cost,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(cost, p1, p2, p3, 0x763B4BD305338F19, "ibbi")end - NETWORK_BUY_BACKUP_GANG=--[[void]] function(--[[int]] p0,--[[int]] p1,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3,--[[int]] npcProvider)return native_invoker.unified_void(p0, p1, p2, p3, npcProvider, 0xA3EDDAA42411D3B9, "iibbi")end - -- p1 = 0 (always) - -- p2 = 1 (always) - NETWORK_BUY_HELI_STRIKE=--[[void]] function(--[[int]] cost,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(cost, p1, p2, p3, 0x81AA4610E3FD3A69, "ibbi")end - NETWORK_SPENT_AMMO_DROP=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xB162DC95C0A3317B, "ibbi")end - -- p1 is just an assumption. p2 was false and p3 was true. - NETWORK_BUY_BOUNTY=--[[void]] function(--[[int]] amount,--[[Player (int)]] victim,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(amount, victim, p2, p3, p4, 0x7B718E197453F2D9, "iibbi")end - NETWORK_BUY_PROPERTY=--[[void]] function(--[[int]] cost,--[[Hash (int)]] propertyName,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(cost, propertyName, p2, p3, 0x650A08A280870AF6, "iibb")end - NETWORK_BUY_SMOKES=--[[void]] function(--[[int]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x75AF80E61248EEBD, "ibb")end - NETWORK_SPENT_HELI_PICKUP=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x7BF1D73DB2ECA492, "ibbi")end - NETWORK_SPENT_BOAT_PICKUP=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x524EE43A37232C00, "ibbi")end - NETWORK_SPENT_BULL_SHARK=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xA6DD8458CE24012C, "ibbi")end - NETWORK_SPENT_CASH_DROP=--[[void]] function(--[[int]] amount,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(amount, p1, p2, 0x289016EC778D60E0, "ibb")end - -- Only used once in a script (am_contact_requests) - -- p1 = 0 - -- p2 = 1 - NETWORK_SPENT_HIRE_MUGGER=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xE404BFB981665BF0, "ibbi")end - NETWORK_SPENT_ROBBED_BY_MUGGER=--[[void]] function(--[[int]] amount,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(amount, p1, p2, p3, 0x995A65F15F581359, "ibbi")end - NETWORK_SPENT_HIRE_MERCENARY=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xE7B80E2BF9D80BD6, "ibbi")end - NETWORK_SPENT_BUY_WANTEDLEVEL=--[[void]] function(--[[Any (int)]] p0,--[[Any* (pointer)]] p1,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0xE1B13771A843C4F6, "ipbbi")end - NETWORK_SPENT_BUY_OFFTHERADAR=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xA628A745E2275C5D, "ibbi")end - NETWORK_SPENT_BUY_REVEAL_PLAYERS=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x6E176F1B18BC0637, "ibbi")end - NETWORK_SPENT_CARWASH=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[BOOL (bool)]] p3,--[[BOOL (bool)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0xEC03C719DB2F4306, "iiibb")end - NETWORK_SPENT_CINEMA=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x6B38ECB05A63A685, "iibb")end - NETWORK_SPENT_TELESCOPE=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x7FE61782AD94CC09, "ibb")end - NETWORK_SPENT_HOLDUPS=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xD9B86B9872039763, "ibb")end - NETWORK_SPENT_BUY_PASSIVE_MODE=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x6D3A430D1A809179, "ibbi")end - NETWORK_SPENT_BANK_INTEREST=--[[void]] function(--[[int]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xCA230C9682556CF1, "ibb")end - NETWORK_SPENT_PROSTITUTES=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xB21B89501CFAC79E, "ibb")end - NETWORK_SPENT_ARREST_BAIL=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x812F5488B1B2A299, "ibb")end - -- According to how I understood this in the freemode script alone, - -- The first parameter is determined by a function named, func_5749 within the freemode script which has a list of all the vehicles and a set price to return which some vehicles deals with globals as well. So the first parameter is basically the set in stone insurance cost it's gonna charge you for that specific vehicle model. - -- - -- The second parameter whoever put it was right, they call GET_ENTITY_MODEL with the vehicle as the paremeter. - -- - -- The third parameter is the network handle as they call their little struct<13> func or atleast how the script decompiled it to look which in lamens terms just returns the network handle of the previous owner based on DECOR_GET_INT(vehicle, "Previous_Owner"). - -- - -- The fourth parameter is a bool that returns true/false depending on if your bank balance is greater then 0. - -- - -- The fifth and last parameter is a bool that returns true/false depending on if you have the money for the car based on the cost returned by func_5749. In the freemode script eg, - -- bool hasTheMoney = MONEY::_GET_BANK_BALANCE() < carCost. - NETWORK_SPENT_PAY_VEHICLE_INSURANCE_PREMIUM=--[[void]] function(--[[int]] amount,--[[Hash (int)]] vehicleModel,--[[Any* (pointer)]] gamerHandle,--[[BOOL (bool)]] notBankrupt,--[[BOOL (bool)]] hasTheMoney)return native_invoker.unified_void(amount, vehicleModel, gamerHandle, notBankrupt, hasTheMoney, 0x9FF28D88C766E3E8, "iipbb")end - NETWORK_SPENT_CALL_PLAYER=--[[void]] function(--[[Any (int)]] p0,--[[Any* (pointer)]] p1,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xACDE7185B374177C, "ipbb")end - NETWORK_SPENT_BOUNTY=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x29B260B84947DFCC, "ibb")end - NETWORK_SPENT_FROM_ROCKSTAR=--[[void]] function(--[[int]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x6A445B64ED7ABEB5, "ibb")end - -- Hardcoded to return 0. - NETWORK_SPEND_EARNED_FROM_BANK_AND_WALLETS=--[[int]] function(--[[int]] amount)return native_invoker.unified_int(amount, 0x9B5016A6433A68C5, "i")end - -- This isn't a hash collision. - PROCESS_CASH_GIFT=--[[string]] function(--[[int* (pointer)]] p0,--[[int* (pointer)]] p1,--[[string]] p2)return native_invoker.unified_string(p0, p1, p2, 0x20194D48EAEC9A41, "pps")end - NETWORK_SPENT_MOVE_SUBMARINE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xCD4D66B43B1DD28D, "iii")end - NETWORK_SPENT_PLAYER_HEALTHCARE=--[[void]] function(--[[int]] p0,--[[int]] p1,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x7C99101F7FCE2EE5, "iibb")end - NETWORK_SPENT_NO_COPS=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xD5BB406F4E04019F, "ibbi")end - NETWORK_SPENT_CARGO_SOURCING=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, 0x948705F6F9C50824, "iiiiii")end - NETWORK_SPENT_REQUEST_JOB=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x8204DA7934DF3155, "ibbi")end - NETWORK_SPENT_REQUEST_HEIST=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x9D26502BB97BFE62, "ibbi")end - -- The first parameter is the amount spent which is store in a global when this native is called. The global returns 10. Which is the price for both rides. - -- - -- The last 3 parameters are, - -- 2,0,1 in the am_ferriswheel.c - -- 1,0,1 in the am_rollercoaster.c - -- - NETWORK_BUY_FAIRGROUND_RIDE=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(amount, p1, p2, p3, p4, 0x8A7B3952DD64D2B5, "iibbi")end - NETWORK_ECONOMY_HAS_FIXED_CRAZY_NUMBERS=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x7C4FCCD2E4DEB394, "")end - NETWORK_SPENT_JOB_SKIP=--[[void]] function(--[[int]] amount,--[[string]] matchId,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(amount, matchId, p2, p3, 0x28F174A67B8D0C2F, "isbb")end - NETWORK_SPENT_BOSS_GOON=--[[BOOL (bool)]] function(--[[int]] amount,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_bool(amount, p1, p2, 0xFFBE02CD385356BD, "ibb")end - NETWORK_SPEND_GOON=--[[void]] function(--[[int]] p0,--[[int]] p1,--[[int]] amount)return native_invoker.unified_void(p0, p1, amount, 0x08A1B82B91900682, "iii")end - NETWORK_SPEND_BOSS=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xDBC966A01C02BCA7, "iii")end - NETWORK_SPENT_MOVE_YACHT=--[[void]] function(--[[int]] amount,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(amount, p1, p2, 0xE7DF4E0545DFB56E, "ibb")end - NETWORK_SPENT_RENAME_ORGANIZATION=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xFC4EE00A7B3BFB76, "iiii")end - NETWORK_BUY_CONTRABAND_MISSION=--[[void]] function(--[[int]] p0,--[[int]] p1,--[[Hash (int)]] p2,--[[BOOL (bool)]] p3,--[[BOOL (bool)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0x30FD873ECE50E9F6, "iiibb")end - NETWORK_SPENT_PA_SERVICE_HELI=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x112209CE0290C03A, "iiii")end - NETWORK_SPENT_PA_SERVICE_VEHICLE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xED5FD7AF10F5E262, "iiii")end - NETWORK_SPENT_PA_SERVICE_SNACK=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x0D30EB83668E63C5, "iiii")end - NETWORK_SPENT_PA_SERVICE_DANCER=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xB49ECA122467D05F, "iiii")end - NETWORK_SPENT_PA_SERVICE_IMPOUND=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xE23ADC6FCB1F29AE, "iii")end - NETWORK_SPENT_PA_HELI_PICKUP=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x0FE8E1FCD2B86B33, "iiii")end - NETWORK_SPENT_PURCHASE_OFFICE_PROPERTY=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0x69EF772B192614C1, "iiiii")end - NETWORK_SPENT_UPGRADE_OFFICE_PROPERTY=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0x8E243837643D9583, "iiiii")end - NETWORK_SPENT_PURCHASE_WAREHOUSE_PROPERTY=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xBD0EFB25CCA8F97A, "iiii")end - NETWORK_SPENT_UPGRADE_WAREHOUSE_PROPERTY=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xA95F667A755725DA, "iiii")end - NETWORK_SPENT_PURCHASE_IMPEXP_WAREHOUSE_PROPERTY=--[[void]] function(--[[int]] amount,--[[Any* (pointer)]] data,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(amount, data, p2, p3, 0x33981D6804E62F49, "ipbb")end - NETWORK_SPENT_UPGRADE_IMPEXP_WAREHOUSE_PROPERTY=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x4128464231E3CA0B, "iiii")end - NETWORK_SPENT_TRADE_IMPEXP_WAREHOUSE_PROPERTY=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x2FAB6614CE22E196, "iiii")end - NETWORK_SPENT_ORDER_WAREHOUSE_VEHICLE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x05F04155A226FBBF, "iiii")end - NETWORK_SPENT_ORDER_BODYGUARD_VEHICLE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xE8B0B270B6E7C76E, "iiii")end - NETWORK_SPENT_JUKEBOX=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x5BCDE0F640C773D2, "iiii")end - NETWORK_SPENT_PURCHASE_CLUB_HOUSE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x998E18CEB44487FC, "iiii")end - NETWORK_SPENT_UPGRADE_CLUB_HOUSE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xFA07759E6FDDD7CF, "iiii")end - NETWORK_SPENT_PURCHASE_BUSINESS_PROPERTY=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x6FD97159FE3C971A, "iiii")end - NETWORK_SPENT_UPGRADE_BUSINESS_PROPERTY=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x675D19C6067CAE08, "iiii")end - NETWORK_SPENT_TRADE_BUSINESS_PROPERTY=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xA51B086B0B2C0F7A, "iiii")end - NETWORK_SPENT_MC_ABILITY=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0xD7CCCBA28C4ECAF0, "iiiii")end - NETWORK_SPENT_PAY_BUSINESS_SUPPLIES=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x0035BB914316F1E3, "iiii")end - NETWORK_SPENT_CHANGE_APPEARANCE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x5F456788B05FAEAC, "iii")end - NETWORK_SPENT_VEHICLE_EXPORT_MODS=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5,--[[Any (int)]] p6,--[[Any (int)]] p7,--[[Any (int)]] p8,--[[Any (int)]] p9)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, 0xA75CCF58A60A5FD1, "iiiiiiiiii")end - NETWORK_SPENT_PURCHASE_OFFICE_GARAGE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xB4C2EC463672474E, "iiii")end - NETWORK_SPENT_UPGRADE_OFFICE_GARAGE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x2AFC2D19B50797F2, "iiii")end - NETWORK_SPENT_IMPORT_EXPORT_REPAIR=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xC1952F3773BA18FE, "iii")end - NETWORK_SPENT_PURCHASE_HANGAR=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xCCB339CC970452DA, "iiii")end - NETWORK_SPENT_UPGRADE_HANGAR=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x615EB504B0788DAF, "iiii")end - NETWORK_SPENT_HANGAR_UTILITY_CHARGES=--[[void]] function(--[[int]] amount,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(amount, p1, p2, 0xB18AC2ECBB15CB6A, "ibb")end - NETWORK_SPENT_HANGAR_STAFF_CHARGES=--[[void]] function(--[[int]] amount,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(amount, p1, p2, 0xB1F1346FD57685D7, "ibb")end - NETWORK_SPENT_BUY_TRUCK=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xAC272C0AE01B4BD8, "iiii")end - NETWORK_SPENT_UPGRADE_TRUCK=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x365E877C61D6988B, "iiii")end - NETWORK_SPENT_BUY_BUNKER=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x12D148D26538D0F9, "iiii")end - NETWORK_SPENT_UPRADE_BUNKER=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x0C82D21A77C22D49, "iiii")end - NETWORK_EARN_FROM_SELL_BUNKER=--[[void]] function(--[[int]] amount,--[[Hash (int)]] bunkerHash)return native_invoker.unified_void(amount, bunkerHash, 0x9251B6ABF2D0A5B4, "ii")end - NETWORK_SPENT_BALLISTIC_EQUIPMENT=--[[void]] function(--[[int]] amount,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(amount, p1, p2, 0x5D97630A8A0EF123, "ibb")end - NETWORK_EARN_RDR_BONUS=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1)return native_invoker.unified_void(amount, p1, 0x7A5349B773584675, "ii")end - NETWORK_EARN_WAGE_PAYMENT=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1)return native_invoker.unified_void(amount, p1, 0x35F8DA0E8A31EF1B, "ii")end - NETWORK_EARN_WAGE_PAYMENT_BONUS=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0x005ACA7100BD101D, "i")end - NETWORK_SPENT_BUY_BASE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x4EA3F425C7744D21, "iiii")end - NETWORK_SPENT_UPGRADE_BASE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x3DD3F33A5D55EA6F, "iiii")end - NETWORK_SPENT_BUY_TILTROTOR=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x0CCE73BC7A11E885, "iiii")end - NETWORK_SPENT_UPGRADE_TILTROTOR=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x165E135D6DFA2907, "iiii")end - NETWORK_SPENT_EMPLOY_ASSASSINS=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x5BBBD92186E1F1C5, "iiii")end - NETWORK_SPEND_GANGOPS_CANNON=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x771ADB0E7635B7BF, "iiii")end - NETWORK_SPEND_GANGOPS_SKIP_MISSION=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xDA947AE8880D5C18, "iiii")end - NETWORK_SPEND_CASINO_HEIST_SKIP_MISSION=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x487009DD91D93429, "iiii")end - NETWORK_EARN_SELL_BASE=--[[void]] function(--[[int]] amount,--[[Hash (int)]] baseNameHash)return native_invoker.unified_void(amount, baseNameHash, 0x0E1E2FF3F4EC11AA, "ii")end - NETWORK_EARN_TARGET_REFUND=--[[void]] function(--[[int]] amount,--[[int]] p1)return native_invoker.unified_void(amount, p1, 0x5B669CF2299A271F, "ii")end - NETWORK_EARN_GANGOPS_WAGES=--[[void]] function(--[[int]] amount,--[[int]] p1)return native_invoker.unified_void(amount, p1, 0x2DCB19ABAB0380A8, "ii")end - NETWORK_EARN_GANGOPS_WAGES_BONUS=--[[void]] function(--[[int]] amount,--[[int]] p1)return native_invoker.unified_void(amount, p1, 0x15BB2A5C757EB91F, "ii")end - NETWORK_EARN_DAR_CHALLENGE=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1)return native_invoker.unified_void(amount, p1, 0xCAC672087B4A24AB, "ii")end - NETWORK_EARN_DOOMSDAY_FINALE_BONUS=--[[void]] function(--[[int]] amount,--[[Hash (int)]] vehicleHash)return native_invoker.unified_void(amount, vehicleHash, 0x128A747F4A230952, "ii")end - NETWORK_EARN_GANGOPS_AWARD=--[[void]] function(--[[int]] amount,--[[string]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(amount, p1, p2, 0xA9A31475F530DFDA, "isi")end - NETWORK_EARN_GANGOPS_ELITE=--[[void]] function(--[[int]] amount,--[[string]] p1,--[[int]] actIndex)return native_invoker.unified_void(amount, p1, actIndex, 0x2597A0D4A4FC2C77, "isi")end - NETWORK_SERVICE_EARN_GANGOPS_RIVAL_DELIVERY=--[[void]] function(--[[int]] earnedMoney)return native_invoker.unified_void(earnedMoney, 0x1B882107C23A9022, "i")end - NETWORK_SPEND_GANGOPS_START_STRAND=--[[void]] function(--[[int]] type,--[[int]] amount,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(type, amount, p2, p3, 0xA19EC0786E326E06, "iibb")end - NETWORK_SPEND_GANGOPS_TRIP_SKIP=--[[void]] function(--[[int]] amount,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(amount, p1, p2, 0x5ECE6FD7B4EC8D6A, "ibb")end - NETWORK_EARN_GANGOPS_PREP_PARTICIPATION=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0xED26584F6BDCBBFD, "i")end - NETWORK_EARN_GANGOPS_SETUP=--[[void]] function(--[[int]] amount,--[[string]] p1)return native_invoker.unified_void(amount, p1, 0xA9160796D47A2CF8, "is")end - NETWORK_EARN_GANGOPS_FINALE=--[[void]] function(--[[int]] amount,--[[string]] p1)return native_invoker.unified_void(amount, p1, 0x1C121FC9545E0D52, "is")end - NETWORK_SPEND_GANGOPS_REPAIR_COST=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x2A7CEC72C3443BCC, "iii")end - NETWORK_EARN_NIGHTCLUB=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xE0F82D68C7039158, "i")end - NETWORK_EARN_NIGHTCLUB_DANCING=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xB4DEAE67F35E2ACD, "i")end - NETWORK_EARN_BB_EVENT_BONUS=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0xFDD8D2440DAF1590, "i")end - NETWORK_SPENT_PURCHASE_HACKER_TRUCK=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x2A93C46AAB1EACC9, "iiii")end - NETWORK_SPENT_UPGRADE_HACKER_TRUCK=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x226C284C830D0CA8, "iiii")end - NETWORK_EARN_HACKER_TRUCK=--[[void]] function(--[[Any (int)]] p0,--[[int]] amount,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, amount, p2, p3, 0xE8815FE993896AD3, "iiii")end - NETWORK_SPENT_PURCHASE_NIGHTCLUB_AND_WAREHOUSE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xED76D195E6E3BF7F, "iiii")end - NETWORK_SPENT_UPGRADE_NIGHTCLUB_AND_WAREHOUSE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x1DC9B749E7AE282B, "iiii")end - NETWORK_EARN_NIGHTCLUB_AND_WAREHOUSE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5,--[[Any (int)]] p6)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, 0xC6E74CF8C884C880, "iiiiiii")end - NETWORK_SPEND_NIGHTCLUB_AND_WAREHOUSE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x65482BFD0923C8A1, "iiii")end - NETWORK_SPENT_RDR_HATCHET_BONUS=--[[void]] function(--[[int]] amount,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(amount, p1, p2, 0xE284D46FFDB82E36, "ibb")end - NETWORK_SPENT_NIGHTCLUB_ENTRY_FEE=--[[void]] function(--[[Player (int)]] player,--[[int]] amount,--[[Any (int)]] p1,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(player, amount, p1, p2, p3, 0x876056684281655D, "iiibb")end - NETWORK_SPEND_NIGHTCLUB_BAR_DRINK=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(amount, p1, p2, p3, 0xDD21B016E4289465, "iibb")end - NETWORK_SPEND_BOUNTY_HUNTER_MISSION=--[[void]] function(--[[int]] amount,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(amount, p1, p2, 0x1BEA0CD93470BB1F, "ibb")end - NETWORK_SPENT_REHIRE_DJ=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(amount, p1, p2, p3, 0xF6C8A544E4CF14FC, "iibb")end - NETWORK_SPENT_ARENA_JOIN_SPECTATOR=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(amount, p1, p2, p3, 0x14EAEA58F93B55AF, "iibb")end - NETWORK_EARN_ARENA_SKILL_LEVEL_PROGRESSION=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1)return native_invoker.unified_void(amount, p1, 0xE08256F972C7BB2C, "ii")end - NETWORK_EARN_ARENA_CAREER_PROGRESSION=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1)return native_invoker.unified_void(amount, p1, 0x0F99F70C61F14619, "ii")end - NETWORK_SPEND_MAKE_IT_RAIN=--[[void]] function(--[[int]] amount,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(amount, p1, p2, 0xE5F5A060439C2F5D, "ibb")end - NETWORK_SPEND_BUY_ARENA=--[[void]] function(--[[int]] amount,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[string]] p3)return native_invoker.unified_void(amount, p1, p2, p3, 0x40D5DA9550B7CB46, "ibbs")end - NETWORK_SPEND_UPGRADE_ARENA=--[[void]] function(--[[int]] amount,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[string]] p3)return native_invoker.unified_void(amount, p1, p2, p3, 0x037ABB06825D7AB1, "ibbs")end - -- type either, 1 for cam spectate, 2 for drone - NETWORK_SPEND_ARENA_SPECTATOR_BOX=--[[void]] function(--[[int]] amount,--[[int]] type,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(amount, type, p2, p3, 0x7049BF858601DC0F, "iibb")end - NETWORK_SPEND_SPIN_THE_WHEEL_PAYMENT=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(amount, p1, p2, 0x9A5BD1D0000B339C, "iib")end - NETWORK_EARN_SPIN_THE_WHEEL_CASH=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0x676C48776CACBB5A, "i")end - NETWORK_SPEND_ARENA_PREMIUM=--[[void]] function(--[[int]] amount,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(amount, p1, p2, 0x619496D837EFD920, "ibb")end - NETWORK_EARN_ARENA_WAR=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(amount, p1, p2, p3, 0x631F1CB8FB4130AA, "iiii")end - NETWORK_EARN_ARENA_WAR_ASSASSINATE_TARGET=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0x5E7AE8AABE8B7C0D, "i")end - NETWORK_EARN_ARENA_WAR_EVENT_CARGO=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0xA82959062361B259, "i")end - NETWORK_EARN_RC_TIME_TRIAL=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0xDFF49EE984E7AAE8, "i")end - NETWORK_EARN_DAILY_OBJECTIVE_EVENT=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0x5128DF14A5BB86FC, "i")end - NETWORK_SPEND_CASINO_MEMBERSHIP=--[[void]] function(--[[int]] amount,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[int]] p3)return native_invoker.unified_void(amount, p1, p2, p3, 0xFBBE0570EDF39D46, "ibbi")end - NETWORK_SPEND_BUY_CASINO=--[[void]] function(--[[int]] amount,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any* (pointer)]] data)return native_invoker.unified_void(amount, p1, p2, data, 0x34A6FC4D06C4DA0F, "ibbp")end - NETWORK_SPEND_UPGRADE_CASINO=--[[void]] function(--[[int]] amount,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any* (pointer)]] data)return native_invoker.unified_void(amount, p1, p2, data, 0x4740D62BC1B4EBEA, "ibbp")end - NETWORK_SPEND_CASINO_GENERIC=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(amount, p1, p2, p3, p4, 0x88BF9B612B84D3C3, "iiiii")end - NETWORK_EARN_CASINO_TIME_TRIAL_WIN=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0x0819DB99FD2FBBD8, "i")end - NETWORK_EARN_COLLECTABLES_ACTION_FIGURES=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0x5517F90043466049, "i")end - NETWORK_EARN_CASINO_COLLECTABLE_COMPLETED_COLLECTION=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0x83AD64F53F4E9483, "i")end - NETWORK_EARN_SELL_PRIZE_VEHICLE=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(amount, p1, p2, 0x8BCB27A057DF7B7F, "iii")end - NETWORK_EARN_CASINO_MISSION_REWARD=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0x566FD402B25787DE, "i")end - NETWORK_EARN_CASINO_STORY_MISSION_REWARD=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0xAC95ED552157E092, "i")end - NETWORK_EARN_CASINO_MISSION_PARTICIPATION=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0x09E8F18641BE2575, "i")end - NETWORK_EARN_CASINO_AWARD=--[[void]] function(--[[int]] amount,--[[Hash (int)]] hash)return native_invoker.unified_void(amount, hash, 0x973A9781A34F8DEB, "ii")end - NETWORK_SPEND_BUY_ARCADE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x870289A558348378, "iiii")end - NETWORK_SPEND_UPGRADE_ARCADE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x5574637681911FDA, "iiii")end - NETWORK_SPEND_CASINO_HEIST=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5,--[[Any (int)]] p6,--[[Any (int)]] p7,--[[Any (int)]] p8,--[[Any (int)]] p9,--[[Any (int)]] p10)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, 0xD30E8392F407C328, "iiiiiiiiiii")end - NETWORK_SPEND_ARCADE_MGMT=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0xB5B58E24868CB09E, "iiiii")end - NETWORK_SPEND_PLAY_ARCADE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0xEAD3D81F2C3A1458, "iiiii")end - NETWORK_SPEND_ARCADE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0x43AA7FAC4E6D6687, "iiiii")end - NETWORK_EARN_CASINO_HEIST=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5,--[[Any (int)]] p6)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, 0x72E7C7B9615FA3C3, "iiiiiii")end - NETWORK_EARN_UPGRADE_ARCADE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x4C3B75694F7E0D9C, "iii")end - NETWORK_EARN_ARCADE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0xD29334ED1A256DBF, "iiiii")end - NETWORK_EARN_COLLECTABLES=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xA95CFB4E02390842, "iii")end - NETWORK_EARN_CHALLENGE=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(amount, p1, p2, 0x0DD362F14F18942A, "iii")end - NETWORK_EARN_CASINO_HEIST_AWARDS=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0x3EC7471E6909798A, "iiiii")end - NETWORK_EARN_COLLECTABLE_ITEM=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1)return native_invoker.unified_void(amount, p1, 0x84FF63BD4966F33D, "ii")end - NETWORK_EARN_COLLECTABLE_COMPLETED_COLLECTION=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1)return native_invoker.unified_void(amount, p1, 0x5C9B198AF5A54FA6, "ii")end - NETWORK_EARN_YATCH_MISSION=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1)return native_invoker.unified_void(amount, p1, 0xDE68E30D89F97132, "ii")end - NETWORK_EARN_DISPATCH_CALL=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1)return native_invoker.unified_void(amount, p1, 0xE2E244AB823B4483, "ii")end - NETWORK_SPEND_BEACH_PARTY=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x54ABA22FA6371249, "i")end - NETWORK_SPEND_SUBMARINE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, 0x6C8BC1488527AAAB, "iiiiii")end - NETWORK_SPEND_CASINO_CLUB=--[[void]] function(--[[int]] amount1,--[[Any (int)]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3,--[[int]] p4,--[[int]] p5,--[[int]] p6,--[[int]] amount2,--[[Any (int)]] p8)return native_invoker.unified_void(amount1, p1, p2, p3, p4, p5, p6, amount2, p8, 0xC991C255AA6D90B2, "iibiiiiii")end - NETWORK_SPEND_BUY_SUB=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x90CD7C6871FBF1B4, "iiii")end - NETWORK_SPEND_UPGRADE_SUB=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x89049A84065CE68E, "iiii")end - NETWORK_SPEND_ISLAND_HEIST=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xE86689E5F82DE429, "iiii")end - NETWORK_EARN_ISLAND_HEIST=--[[void]] function(--[[int]] amount1,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[int]] amount2,--[[int]] p5)return native_invoker.unified_void(amount1, p1, p2, p3, amount2, p5, 0xD21D111C46BA9F15, "iiiiii")end - NETWORK_EARN_BEACH_PARTY_LOST_FOUND=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xA51338E0DCCD4065, "iii")end - NETWORK_EARN_FROM_ISLAND_HEIST_DJ_MISSION=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xE2BB399D90942091, "ii")end - NETWORK_SPEND_CAR_CLUB_MEMBERSHIP=--[[void]] function(--[[int]] amount1,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[int]] amount2,--[[Any (int)]] p4)return native_invoker.unified_void(amount1, p1, p2, amount2, p4, 0x1464E17207CD36E2, "iiiii")end - NETWORK_SPEND_CAR_CLUB_BAR=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x925227803A0EAA1B, "ibbi")end - NETWORK_SPEND_AUTOSHOP_MODIFY=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0x9BEA350D7C48061B, "iiiii")end - NETWORK_SPEND_CAR_CLUB_TAKEOVER=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xD1E46824E6FB92B5, "iiii")end - NETWORK_SPEND_BUY_AUTOSHOP=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xEEB7E5D1FEB20869, "iiii")end - NETWORK_SPEND_UPGRADE_AUTOSHOP=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xDD829AA198FDC46C, "iiii")end - NETWORK_EARN_AUTOSHOP_BUSINESS=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x36A7FD5A7194B03E, "iii")end - NETWORK_EARN_AUTOSHOP_INCOME=--[[void]] function(--[[Any (int)]] p0,--[[int]] p1)return native_invoker.unified_void(p0, p1, 0xC66D1CF99ED7FE25, "ii")end - NETWORK_EARN_CARCLUB_MEMBERSHIP=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xBC6227792A188E2E, "i")end - NETWORK_EARN_DAILY_VEHICLE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x533073E8A596008C, "ii")end - NETWORK_EARN_DAILY_VEHICLE_BONUS=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xFE65AFE7308E32B2, "i")end - NETWORK_EARN_TUNER_AWARD=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xB846F547D3792DF6, "iii")end - NETWORK_EARN_TUNER_ROBBERY=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0xBCB266247193AC61, "iiiii")end - NETWORK_EARN_UPGRADE_AUTOSHOP=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xC10322A8D3E061EE, "ii")end - NETWORK_SPEND_INTERACTION_MENU_ABILITY=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x93AA4165CB67E925, "iiii")end - NETWORK_SPEND_SET_COMMON_FIELDS=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xB9F7A469460E7A4A, "iiib")end - NETWORK_SPEND_SET_DISCOUNT=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x7E2F4E8F44CAF4E0, "b")end - NETWORK_SPEND_BUY_AGENCY=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xEA8CD3C9B3C35884, "iiii")end - NETWORK_SPEND_UPGRADE_AGENCY=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x6CCA64840589A3B6, "iiii")end - NETWORK_SPEND_AGENCY=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0x1B2120405080125C, "iiiii")end - NETWORK_SPEND_HIDDEN=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xBF8793B91EA094A7, "iiii")end - NETWORK_SPEND_SOURCE_BIKE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xD9DF467CBE4398C8, "iiii")end - NETWORK_SPEND_COMP_SUV=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xD86581F9E7CDA383, "iiii")end - NETWORK_SPEND_SUV_FST_TRVL=--[[void]] function(--[[int]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x61A2DF64ED2D396E, "ibbi")end - NETWORK_SPEND_SUPPLY=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xEBD482B82ACB8BAD, "iiii")end - NETWORK_SPEND_BIKE_SHOP=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x923AEA8E78F8DF0B, "iiii")end - NETWORK_SPEND_VEHICLE_REQUESTED=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0x02D24A35A9CC3503, "iiiii")end - NETWORK_SPEND_GUNRUNNING=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x2CEB0E0BC2A77C05, "iiii")end - NETWORK_EARN_AGENCY_SAFE=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x663B4B9D11742A12, "i")end - NETWORK_EARN_AWARD_CONTRACT=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x146D4EB6D22A403F, "ii")end - NETWORK_EARN_AGENCY_CONTRACT=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x38482AD49CB905C7, "ii")end - NETWORK_EARN_AWARD_PHONE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x7397A115030F1BE3, "ii")end - NETWORK_EARN_AGENCY_PHONE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xE29F3D5FA63B1B82, "iii")end - NETWORK_EARN_AWARD_FIXER_MISSION=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x88D6C327D6C57C45, "ii")end - NETWORK_EARN_FIXER_PREP=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x6283E5DE4C4460C6, "ii")end - NETWORK_EARN_FIXER_FINALE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xBA154373C5FE51E8, "ii")end - NETWORK_EARN_FIXER_AGENCY_SHORT_TRIP=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xF4A8E57460BF2037, "ii")end - NETWORK_EARN_AWARD_SHORT_TRIP=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x5B4DBDED84D6A420, "ii")end - NETWORK_EARN_FIXER_RIVAL_DELIVERY=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x235D41210B3A1A5E, "ii")end - NETWORK_EARN_UPGRADE_AGENCY=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xD07C7C3F1995108C, "ii")end - NETWORK_SPEND_APARTMENT_UTILITIES=--[[void]] function(--[[int]] amount,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any* (pointer)]] data)return native_invoker.unified_void(amount, p1, p2, data, 0x1254B5B3925EFD3D, "ibbp")end - NETWORK_SPEND_BUSINESS_PROPERTY_FEES=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x92D1CFDA1227FF1C, "iiii")end - NETWORK_EARN_SIGHTSEEING_REWARD=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x45087AE480B233AC, "iiii")end - NETWORK_EARN_BIKER_SHOP=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x2C5809EB9DF57257, "ii")end - NETWORK_EARN_BIKER=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x71BEC32FA466E105, "i")end - NETWORK_YOHAN_SOURCE_GOODS=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x59498BC8B1C8B15C, "iiii")end - _NETWORK_SPEND_BUY_MFGARAGE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xA2ED36DCF0FCA413, "iiii")end - _NETWORK_SPEND_UPGRADE_MFGARAGE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xCF8F346DDDC66643, "iiii")end - _NETWORK_SPEND_BUY_SUPPLIES=--[[void]] function(--[[int]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[int]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xB48185C0CA67B16B, "ibbi")end - _NETWORK_SPEND_BUY_ACID_LAB=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xF1E26A7924327152, "iiii")end - _NETWORK_SPEND_UPGRADE_ACID_LAB_EQUIPMENT=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x110EE9D486C23126, "iiii")end - _NETWORK_SPEND_UPGRADE_ACID_LAB_ARMOR=--[[void]] function(--[[int]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[int]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xA7D541C9ACD63133, "ibbi")end - _NETWORK_SPEND_UPGRADE_ACID_LAB_SCOOP=--[[void]] function(--[[int]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[int]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x2940558E05BCC2EC, "ibbi")end - _NETWORK_SPEND_UPGRADE_ACID_LAB_MINES=--[[void]] function(--[[int]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[int]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x4B99AB08C92C54E4, "ibbi")end - _NETWORK_SPEND_RENAME_ACID_LAB=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x842B1C5AF61ACDE9, "iiii")end - _NETWORK_SPEND_RENAME_ACID_PRODUCT=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x446798F7495DD7D8, "iiii")end - _NETWORK_EARN_AWARD_JUGGALO_MISSION=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xDDF047577F1A02A7, "ii")end - _NETWORK_EARN_AWARD_ACID_LAB=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xD1A8165767AD2D23, "ii")end - _NETWORK_EARN_AWARD_DAILY_STASH=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xC30650FA74A19D02, "ii")end - _NETWORK_EARN_AWARD_DEAD_DROP=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xD01EBAEA1F905EF6, "ii")end - _NETWORK_EARN_AWARD_RANDOM_EVENT=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xBEAFBB1B98B7EF55, "ii")end - _NETWORK_EARN_AWARD_TAXI=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xA914768AD35CD3A5, "ii")end - _NETWORK_EARN_STREET_DEALER=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xA81017EE1324FDFE, "ii")end - _NETWORK_EARN_SELL_ACID=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x79B656937DF6DF5D, "ii")end - _NETWORK_EARN_SETUP_PARTICIPATION_ACID_LAB=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xE3942D59E8A7F70D, "ii")end - _NETWORK_EARN_SOURCE_PARTICIPATION_ACID_LAB=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x136F11B5DF1B304D, "ii")end - _NETWORK_EARN_SELL_PARTICIPATION_ACID_LAB=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xCA3EF9B09A8D76B4, "ii")end - _NETWORK_EARN_JUGGALO_STORY_MISSION=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xE01D10BA8CD53621, "ii")end - _NETWORK_EARN_JUGGALO_STORY_MISSION_PARTICIPATION=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x40FF6CCCC476185C, "ii")end - -- JUGGALO_PHONE_MISSION... - _NETWORK_EARN_FOOLIGAN_JOB=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xCE4452AE85F5E252, "ii")end - -- JUGGALO_PHONE_MISSION_PARTICIPATION... - _NETWORK_EARN_FOOLIGAN_JOB_PARTICIPATION=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xC376B92D0E060970, "ii")end - _NETWORK_EARN_TAXI_JOB=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x991E1588FAD9019D, "ii")end - _NETWORK_EARN_DAILY_STASH_HOUSE_COMPLETED=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xCABC9874AFA70D6D, "ii")end - _NETWORK_EARN_DAILY_STASH_HOUSE_PARTICIPATION=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x9C0C6BD0F94CE391, "ii")end - -- Used for SERVICE_EARN_AVENGER_OPERATIONS & SERVICE_EARN_AVENGER_OPS_BONUS - _NETWORK_EARN_AVENGER=--[[void]] function(--[[int]] amount,--[[int]] p1)return native_invoker.unified_void(amount, p1, 0x55F006B9D4A46C1D, "ii")end - _NETWORK_EARN_SMUGGLER_OPS=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xDEA273D5F8A9661A, "iii")end - _NETWORK_EARN_BONUS_OBJECTIVE=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(amount, p1, p2, 0xDCEF983C24191997, "iii")end - _NETWORK_EARN_PROGRESS_HUB=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xF8332B06F0EECC9C, "ii")end - _NETWORK_SPENT_AIR_FREIGHT=--[[void]] function(--[[int]] hangarCargoSourcingPrice,--[[BOOL (bool)]] fromBank,--[[BOOL (bool)]] fromBankAndWallet,--[[int]] cost,--[[int]] warehouseId,--[[int]] warehouseSlot)return native_invoker.unified_void(hangarCargoSourcingPrice, fromBank, fromBankAndWallet, cost, warehouseId, warehouseSlot, 0x8C7E8D6F96C9E948, "ibbiii")end - _NETWORK_SPENT_SKIP_CARGO_SOURCE_SETUP=--[[void]] function(--[[int]] amount,--[[BOOL (bool)]] fromBank,--[[BOOL (bool)]] fromBankAndWallet,--[[int]] cost)return native_invoker.unified_void(amount, fromBank, fromBankAndWallet, cost, 0xED1B407BADA42CEC, "ibbi")end - -- Hash p3 = STEALTH_MODULE - _NETWORK_SPENT_STEALTH_MODULE=--[[void]] function(--[[int]] amount,--[[BOOL (bool)]] fromBank,--[[BOOL (bool)]] fromBankAndWallet,--[[Hash (int)]] p3)return native_invoker.unified_void(amount, fromBank, fromBankAndWallet, p3, 0x95CE79A6939C537A, "ibbi")end - -- Hash p3 = MISSILE_JAMMER - _NETWORK_SPENT_MISSILE_JAMMER=--[[void]] function(--[[int]] amount,--[[BOOL (bool)]] fromBank,--[[BOOL (bool)]] fromBankAndWallet,--[[Hash (int)]] p3)return native_invoker.unified_void(amount, fromBank, fromBankAndWallet, p3, 0xD687100F616163F4, "ibbi")end - _NETWORK_SPENT_GENERIC=--[[void]] function(--[[int]] price,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Hash (int)]] stat,--[[Hash (int)]] spent,--[[string]] p5,--[[string]] p6,--[[Any* (pointer)]] data)return native_invoker.unified_void(price, p1, p2, stat, spent, p5, p6, data, 0x2803B027479FB640, "ibbiissp")end - -- _NETWORK_EARN_G* - _NETWORK_EARN_GENERIC=--[[void]] function(--[[int]] amount,--[[Hash (int)]] earn,--[[string]] p2,--[[string]] p3,--[[Any* (pointer)]] data)return native_invoker.unified_void(amount, earn, p2, p3, data, 0xBF7B5BB7ED890380, "iissp")end - _NETWORK_CLEAR_TRANSACTION_TELEMETRY_NONCE=--[[void]] function()return native_invoker.unified_void(0xE03B9F95556E48E9, "")end - NETWORK_GET_VC_BANK_BALANCE=--[[int]] function()return native_invoker.unified_int(0x76EF28DA05EA395A, "")end - NETWORK_GET_VC_WALLET_BALANCE=--[[int]] function(--[[int]] characterSlot)return native_invoker.unified_int(characterSlot, 0xA40F9C2623F6A8B5, "i")end - NETWORK_GET_VC_BALANCE=--[[int]] function()return native_invoker.unified_int(0x5CBAD97E059E1B94, "")end - NETWORK_GET_EVC_BALANCE=--[[int]] function()return native_invoker.unified_int(0x5D1E75F91C07DEE5, "")end - NETWORK_GET_PVC_BALANCE=--[[int]] function()return native_invoker.unified_int(0x4F54F3B6C202FB4E, "")end - NETWORK_GET_STRING_WALLET_BALANCE=--[[string]] function(--[[int]] characterSlot)return native_invoker.unified_string(characterSlot, 0xF9B10B529DCFB33B, "i")end - NETWORK_GET_STRING_BANK_BALANCE=--[[string]] function()return native_invoker.unified_string(0xA6FA3979BED01B81, "")end - NETWORK_GET_STRING_BANK_WALLET_BALANCE=--[[string]] function(--[[int]] character)return native_invoker.unified_string(character, 0x700AF71AE615E6DD, "i")end - -- Returns true if wallet balance >= amount. - NETWORK_GET_CAN_SPEND_FROM_WALLET=--[[BOOL (bool)]] function(--[[int]] amount,--[[int]] characterSlot)return native_invoker.unified_bool(amount, characterSlot, 0xED5AB8860415BABA, "ii")end - -- Returns true if bank balance >= amount. - NETWORK_GET_CAN_SPEND_FROM_BANK=--[[BOOL (bool)]] function(--[[int]] amount)return native_invoker.unified_bool(amount, 0xA31FD6A0865B6D14, "i")end - -- Returns true if bank balance + wallet balance >= amount. - NETWORK_GET_CAN_SPEND_FROM_BANK_AND_WALLET=--[[BOOL (bool)]] function(--[[int]] amount,--[[int]] characterSlot)return native_invoker.unified_bool(amount, characterSlot, 0xDC18531D7019A535, "ii")end - -- Retturns the same value as NETWORK_GET_REMAINING_TRANSFER_BALANCE. - NETWORK_GET_PVC_TRANSFER_BALANCE=--[[int]] function()return native_invoker.unified_int(0x13A8DE2FD77D04F3, "")end - -- Returns false if amount > wallet balance or daily transfer limit has been hit. - NETWORK_GET_CAN_TRANSFER_CASH=--[[BOOL (bool)]] function(--[[int]] amount)return native_invoker.unified_bool(amount, 0x08E8EEADFD0DC4A0, "i")end - NETWORK_CAN_RECEIVE_PLAYER_CASH=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_bool(p0, p1, p2, p3, 0x5D17BE59D2123284, "iiii")end - -- Returns the same value as NETWORK_GET_PVC_TRANSFER_BALANCE. - NETWORK_GET_REMAINING_TRANSFER_BALANCE=--[[int]] function()return native_invoker.unified_int(0xEA560AC9EEB1E19B, "")end - -- Does nothing and always returns 0. - WITHDRAW_VC=--[[int]] function(--[[int]] amount)return native_invoker.unified_int(amount, 0xF70EFA14FE091429, "i")end - -- Does nothing and always returns false. - DEPOSIT_VC=--[[BOOL (bool)]] function(--[[int]] amount)return native_invoker.unified_bool(amount, 0xE260E0BB9CD995AC, "i")end - -- This function is hard-coded to always return 1. - HAS_VC_WITHDRAWAL_COMPLETED=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0xE154B48B68EF72BC, "i")end - -- This function is hard-coded to always return 1. - WAS_VC_WITHDRAWAL_SUCCESSFUL=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x6FCF8DDEA146C45B, "i")end --- NETSHOPPING - NET_GAMESERVER_USE_SERVER_TRANSACTIONS=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x7D2708796355B20B, "")end - NET_GAMESERVER_CATALOG_ITEM_IS_VALID=--[[BOOL (bool)]] function(--[[string]] name)return native_invoker.unified_bool(name, 0xBD4D7EAF8A30F637, "s")end - NET_GAMESERVER_CATALOG_ITEM_KEY_IS_VALID=--[[BOOL (bool)]] function(--[[Hash (int)]] hash)return native_invoker.unified_bool(hash, 0x247F0F73A182EA0B, "i")end - -- bool is always true in game scripts - NET_GAMESERVER_GET_PRICE=--[[int]] function(--[[Hash (int)]] itemHash,--[[Hash (int)]] categoryHash,--[[BOOL (bool)]] p2)return native_invoker.unified_int(itemHash, categoryHash, p2, 0xC27009422FCCA88D, "iib")end - NET_GAMESERVER_CATALOG_IS_VALID=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x3C4487461E9B0DCB, "")end - NET_GAMESERVER_IS_CATALOG_CURRENT=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x2B949A1E6AEC8F6A, "")end - NET_GAMESERVER_GET_CATALOG_CLOUD_CRC=--[[Hash (int)]] function()return native_invoker.unified_int(0x85F6C9ABA1DE2BCF, "")end - NET_GAMESERVER_REFRESH_SERVER_CATALOG=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x357B152EF96C30B6, "")end - NET_GAMESERVER_RETRIEVE_CATALOG_REFRESH_STATUS=--[[BOOL (bool)]] function(--[[int* (pointer)]] state)return native_invoker.unified_bool(state, 0xCF38DAFBB49EDE5E, "p")end - NET_GAMESERVER_INIT_SESSION=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xE3E5A7C64CA2C6ED, "")end - NET_GAMESERVER_RETRIEVE_INIT_SESSION_STATUS=--[[BOOL (bool)]] function(--[[int* (pointer)]] p0)return native_invoker.unified_bool(p0, 0x0395CB47B022E62C, "p")end - NET_GAMESERVER_START_SESSION=--[[BOOL (bool)]] function(--[[int]] charSlot)return native_invoker.unified_bool(charSlot, 0xA135AC892A58FC07, "i")end - NET_GAMESERVER_START_SESSION_PENDING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x72EB7BA9B69BF6AB, "")end - NET_GAMESERVER_RETRIEVE_START_SESSION_STATUS=--[[BOOL (bool)]] function(--[[int* (pointer)]] p0)return native_invoker.unified_bool(p0, 0x170910093218C8B9, "p")end - NET_GAMESERVER_RETRIEVE_SESSION_ERROR_CODE=--[[BOOL (bool)]] function(--[[int* (pointer)]] p0)return native_invoker.unified_bool(p0, 0xC13C38E47EA5DF31, "p")end - NET_GAMESERVER_IS_SESSION_VALID=--[[BOOL (bool)]] function(--[[int]] charSlot)return native_invoker.unified_bool(charSlot, 0xB24F0944DA203D9E, "i")end - NET_GAMESERVER_CLEAR_SESSION=--[[BOOL (bool)]] function(--[[int]] p0)return native_invoker.unified_bool(p0, 0x74A0FD0688F1EE45, "i")end - NET_GAMESERVER_SESSION_APPLY_RECEIVED_DATA=--[[BOOL (bool)]] function(--[[int]] charSlot)return native_invoker.unified_bool(charSlot, 0x2F41D51BA3BCD1F1, "i")end - NET_GAMESERVER_IS_SESSION_REFRESH_PENDING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x810E8431C0614BF9, "")end - -- Note: only one of the arguments can be set to true at a time - NET_GAMESERVER_START_SESSION_RESTART=--[[BOOL (bool)]] function(--[[BOOL (bool)]] inventory,--[[BOOL (bool)]] playerbalance)return native_invoker.unified_bool(inventory, playerbalance, 0x35A1B3E1D1315CFA, "bb")end - NET_GAMESERVER_TRANSACTION_IN_PROGRESS=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x613F125BA3BD2EB9, "")end - NET_GAMESERVER_GET_SESSION_STATE_AND_STATUS=--[[BOOL (bool)]] function(--[[int* (pointer)]] p0,--[[BOOL* (pointer)]] p1)return native_invoker.unified_bool(p0, p1, 0x897433D292B44130, "pp")end - NET_GAMESERVER_BASKET_START=--[[BOOL (bool)]] function(--[[int* (pointer)]] transactionId,--[[Hash (int)]] categoryHash,--[[Hash (int)]] actionHash,--[[int]] flags)return native_invoker.unified_bool(transactionId, categoryHash, actionHash, flags, 0x279F08B1A4B29B7E, "piii")end - NET_GAMESERVER_BASKET_END=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xFA336E7F40C0A0D0, "")end - NET_GAMESERVER_BASKET_IS_ACTIVE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xA65568121DF2EA26, "")end - NET_GAMESERVER_BASKET_ADD_ITEM=--[[BOOL (bool)]] function(--[[Any* (pointer)]] itemData,--[[int]] quantity)return native_invoker.unified_bool(itemData, quantity, 0xF30980718C8ED876, "pi")end - NET_GAMESERVER_BASKET_IS_FULL=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x27F76CC6C55AD30E, "")end - NET_GAMESERVER_BASKET_APPLY_SERVER_DATA=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any* (pointer)]] p1)return native_invoker.unified_bool(p0, p1, 0xE1A0450ED46A7812, "ip")end - NET_GAMESERVER_CHECKOUT_START=--[[BOOL (bool)]] function(--[[int]] transactionId)return native_invoker.unified_bool(transactionId, 0x39BE7CEA8D9CC8E6, "i")end - NET_GAMESERVER_BEGIN_SERVICE=--[[BOOL (bool)]] function(--[[int* (pointer)]] transactionId,--[[Hash (int)]] categoryHash,--[[Hash (int)]] itemHash,--[[Hash (int)]] actionTypeHash,--[[int]] value,--[[int]] flags)return native_invoker.unified_bool(transactionId, categoryHash, itemHash, actionTypeHash, value, flags, 0x3C5FD37B5499582E, "piiiii")end - NET_GAMESERVER_END_SERVICE=--[[BOOL (bool)]] function(--[[int]] transactionId)return native_invoker.unified_bool(transactionId, 0xE2A99A9B524BEFFF, "i")end - NET_GAMESERVER_DELETE_CHARACTER=--[[BOOL (bool)]] function(--[[int]] slot,--[[BOOL (bool)]] transfer,--[[Hash (int)]] reason)return native_invoker.unified_bool(slot, transfer, reason, 0x51F1A8E48C3D2F6D, "ibi")end - NET_GAMESERVER_DELETE_CHARACTER_GET_STATUS=--[[int]] function()return native_invoker.unified_int(0x0A6D923DFFC9BD89, "")end - NET_GAMESERVER_DELETE_SET_TELEMETRY_NONCE_SEED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x112CEF1615A1139F, "")end - NET_GAMESERVER_TRANSFER_BANK_TO_WALLET=--[[BOOL (bool)]] function(--[[int]] charSlot,--[[int]] amount)return native_invoker.unified_bool(charSlot, amount, 0xD47A2C1BA117471D, "ii")end - NET_GAMESERVER_TRANSFER_WALLET_TO_BANK=--[[BOOL (bool)]] function(--[[int]] charSlot,--[[int]] amount)return native_invoker.unified_bool(charSlot, amount, 0xC2F7FE5309181C7D, "ii")end - -- Same as 0x350AA5EBC03D3BD2 - NET_GAMESERVER_TRANSFER_BANK_TO_WALLET_GET_STATUS=--[[int]] function()return native_invoker.unified_int(0x23789E777D14CE44, "")end - -- Same as 0x23789E777D14CE44 - NET_GAMESERVER_TRANSFER_WALLET_TO_BANK_GET_STATUS=--[[int]] function()return native_invoker.unified_int(0x350AA5EBC03D3BD2, "")end - -- Used to be NETWORK_SHOP_CASH_TRANSFER_SET_TELEMETRY_NONCE_SEED - NET_GAMESERVER_TRANSFER_CASH_SET_TELEMETRY_NONCE_SEED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x498C1E05CE5F7877, "")end - NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED=--[[BOOL (bool)]] function(--[[int]] p0)return native_invoker.unified_bool(p0, 0x9507D4271988E1AE, "i")end --- NETWORK - -- Online version is defined here: update\update.rpf\common\data\version.txt - -- - -- Example: - -- - -- [ONLINE_VERSION_NUMBER] - -- 1.33 - -- - -- _GET_ONLINE_VERSION() will return "1.33" - GET_ONLINE_VERSION=--[[string]] function()return native_invoker.unified_string(0xFCA9373EF340AC0A, "")end - -- Returns whether the player is signed into Social Club. - NETWORK_IS_SIGNED_IN=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x054354A99211EB96, "")end - -- Returns whether the game is not in offline mode. - -- - -- seemed not to work for some ppl - NETWORK_IS_SIGNED_ONLINE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x1077788E268557C2, "")end - -- This function is hard-coded to always return 1. - NETWORK_IS_NP_AVAILABLE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xBD545D44CCE70597, "")end - -- This function is hard-coded to always return 1. - NETWORK_IS_NP_PENDING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xEBCAB9E5048434F4, "")end - -- Hardcoded to return zero. - -- - -- ==== PS4 specific info ==== - -- - -- Returns some sort of unavailable reason: - -- -1 = REASON_INVALID - -- 0 = REASON_OTHER - -- 1 = REASON_SYSTEM_UPDATE - -- 2 = REASON_GAME_UPDATE - -- 3 = REASON_SIGNED_OUT - -- 4 = REASON_AGE - -- 5 = REASON_CONNECTION - -- - -- ================================= - NETWORK_GET_NP_UNAVAILABLE_REASON=--[[int]] function()return native_invoker.unified_int(0x74FB3E29E6D10FA9, "")end - -- This function is hard-coded to always return 1. - NETWORK_IS_CONNETED_TO_NP_PRESENCE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x7808619F31FF22DB, "")end - -- This function is hard-coded to always return 0. - NETWORK_IS_LOGGED_IN_TO_PSN=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xA0FA4EC6A05DA44E, "")end - -- Returns whether the signed-in user has valid Rockstar Online Services (ROS) credentials. - NETWORK_HAS_VALID_ROS_CREDENTIALS=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x85443FF4C328F53B, "")end - NETWORK_IS_REFRESHING_ROS_CREDENTIALS=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x8D11E61A4ABF49CC, "")end - NETWORK_IS_CLOUD_AVAILABLE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x9A4CF4F48AD77302, "")end - NETWORK_HAS_SOCIAL_CLUB_ACCOUNT=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x67A5589628E0CFF6, "")end - NETWORK_ARE_SOCIAL_CLUB_POLICIES_CURRENT=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xBA9775570DB788CF, "")end - -- If you are host, returns true else returns false. - NETWORK_IS_HOST=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x8DB296B814EDDA07, "")end - NETWORK_GET_HOST_PLAYER_INDEX=--[[Player (int)]] function()return native_invoker.unified_int(0x8251FB94DC4FDFC8, "")end - NETWORK_WAS_GAME_SUSPENDED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x4237E822315D8BA9, "")end - NETWORK_HAVE_ONLINE_PRIVILEGES=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x25CB5A9F37BFD063, "")end - NETWORK_HAS_AGE_RESTRICTIONS=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x1353F87E89946207, "")end - NETWORK_HAVE_USER_CONTENT_PRIVILEGES=--[[BOOL (bool)]] function(--[[int]] p0)return native_invoker.unified_bool(p0, 0x72D918C99BCACC54, "i")end - NETWORK_HAVE_COMMUNICATION_PRIVILEGES=--[[BOOL (bool)]] function(--[[int]] p0,--[[Player (int)]] player)return native_invoker.unified_bool(p0, player, 0xAEEF48CDF5B6CE7C, "ii")end - -- Appears to be PlayStation-specific. Always returns true on other platforms if signed in with the primary user profile - _NETWORK_HAVE_PLATFORM_COMMUNICATION_PRIVILEGES=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xE1E02509169C124E, "")end - NETWORK_CHECK_ONLINE_PRIVILEGES=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_bool(p0, p1, 0x78321BEA235FD8CD, "ib")end - NETWORK_CHECK_USER_CONTENT_PRIVILEGES=--[[BOOL (bool)]] function(--[[int]] p0,--[[int]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_bool(p0, p1, p2, 0x595F028698072DD9, "iib")end - NETWORK_CHECK_COMMUNICATION_PRIVILEGES=--[[BOOL (bool)]] function(--[[int]] p0,--[[int]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_bool(p0, p1, p2, 0x83F28CE49FBBFFBA, "iib")end - NETWORK_CHECK_TEXT_COMMUNICATION_PRIVILEGES=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_bool(p0, p1, p2, 0x07EAB372C8841D99, "iii")end - NETWORK_IS_USING_ONLINE_PROMOTION=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x906CA41A4B74ECA4, "")end - NETWORK_SHOULD_SHOW_PROMOTION_ALERT_SCREEN=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x023ACAB2DC9DC4A4, "")end - NETWORK_HAS_SOCIAL_NETWORKING_SHARING_PRIV=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x76BF03FADBF154F5, "")end - NETWORK_GET_AGE_GROUP=--[[int]] function()return native_invoker.unified_int(0x9614B71F8ADB982B, "")end - NETWORK_CHECK_PRIVILEGES=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_bool(p0, p1, p2, 0x0CF6CC51AA18F0F8, "iii")end - -- Hardcoded to return false. - NETWORK_IS_PRIVILEGE_CHECK_IN_PROGRESS=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x64E5C4CC82847B73, "")end - NETWORK_SET_PRIVILEGE_CHECK_RESULT_NOT_NEEDED=--[[void]] function()return native_invoker.unified_void(0x1F7BC3539F9E0224, "")end - -- Hardcoded to return true. - NETWORK_RESOLVE_PRIVILEGE_USER_CONTENT=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xDE9225854F37BF72, "")end - NETWORK_HAVE_PLATFORM_SUBSCRIPTION=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x5EA784D197556507, "")end - NETWORK_IS_PLATFORM_SUBSCRIPTION_CHECK_PENDING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xA8ACB6459542A8C8, "")end - NETWORK_SHOW_ACCOUNT_UPGRADE_UI=--[[void]] function()return native_invoker.unified_void(0x83FE8D7229593017, "")end - NETWORK_IS_SHOWING_SYSTEM_UI_OR_RECENTLY_REQUESTED_UPSELL=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x7788DFE15016A182, "")end - NETWORK_NEED_TO_START_NEW_GAME_BUT_BLOCKED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x53C10C8BD774F2C9, "")end - NETWORK_CAN_BAIL=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x580CE4438479CC61, "")end - NETWORK_BAIL=--[[void]] function(--[[int]] p0,--[[int]] p1,--[[int]] p2)return native_invoker.unified_void(p0, p1, p2, 0x95914459A87EBA28, "iii")end - NETWORK_ON_RETURN_TO_SINGLE_PLAYER=--[[void]] function()return native_invoker.unified_void(0x283B6062A2C01E9B, "")end - NETWORK_TRANSITION_START=--[[BOOL (bool)]] function(--[[int]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_bool(p0, p1, p2, p3, 0x8B4FFC790CA131EF, "iiii")end - NETWORK_TRANSITION_ADD_STAGE=--[[BOOL (bool)]] function(--[[Hash (int)]] hash,--[[int]] p1,--[[int]] p2,--[[int]] state,--[[int]] p4)return native_invoker.unified_bool(hash, p1, p2, state, p4, 0xC3BFED92026A2AAD, "iiiii")end - NETWORK_TRANSITION_FINISH=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_bool(p0, p1, p2, 0x04918A41BC9B8157, "iii")end - -- 11 - Need to download tunables. - -- 12 - Need to download background script. - -- - -- Returns 1 if the multiplayer is loaded, otherwhise 0. - NETWORK_CAN_ACCESS_MULTIPLAYER=--[[BOOL (bool)]] function(--[[int* (pointer)]] loadingState)return native_invoker.unified_bool(loadingState, 0xAF50DA1A3F8B1BA4, "p")end - NETWORK_IS_MULTIPLAYER_DISABLED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x9747292807126EDA, "")end - NETWORK_CAN_ENTER_MULTIPLAYER=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x7E782A910C362C25, "")end - NETWORK_SESSION_DO_FREEROAM_QUICKMATCH=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_bool(p0, p1, p2, 0x330ED4D05491934F, "iii")end - NETWORK_SESSION_DO_FRIEND_MATCHMAKING=--[[BOOL (bool)]] function(--[[int]] p0,--[[int]] p1,--[[int]] p2)return native_invoker.unified_bool(p0, p1, p2, 0x2CFC76E0D087C994, "iii")end - -- p4 seems to be unused in 1.60/build 2628 - NETWORK_SESSION_DO_CREW_MATCHMAKING=--[[BOOL (bool)]] function(--[[int]] crewId,--[[int]] p1,--[[int]] p2,--[[int]] maxPlayers)return native_invoker.unified_bool(crewId, p1, p2, maxPlayers, 0x94BC51E9449D917F, "iiii")end - NETWORK_SESSION_DO_ACTIVITY_QUICKMATCH=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_bool(p0, p1, p2, p3, p4, 0xBE3E347A87ACEB82, "iiiii")end - -- Does nothing in online but in offline it will cause the screen to fade to black. Nothing happens past then, the screen will sit at black until you restart GTA. Other stuff must be needed to actually host a session. - NETWORK_SESSION_HOST=--[[BOOL (bool)]] function(--[[int]] p0,--[[int]] maxPlayers,--[[BOOL (bool)]] p2)return native_invoker.unified_bool(p0, maxPlayers, p2, 0x6F3D4ED9BEE4E61D, "iib")end - NETWORK_SESSION_HOST_CLOSED=--[[BOOL (bool)]] function(--[[int]] p0,--[[int]] maxPlayers)return native_invoker.unified_bool(p0, maxPlayers, 0xED34C0C02C098BB7, "ii")end - -- Does nothing in online but in offline it will cause the screen to fade to black. Nothing happens past then, the screen will sit at black until you restart GTA. Other stuff must be needed to actually host a session. - NETWORK_SESSION_HOST_FRIENDS_ONLY=--[[BOOL (bool)]] function(--[[int]] p0,--[[int]] maxPlayers)return native_invoker.unified_bool(p0, maxPlayers, 0xB9CFD27A5D578D83, "ii")end - NETWORK_SESSION_IS_CLOSED_FRIENDS=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xFBCFA2EA2E206890, "")end - NETWORK_SESSION_IS_CLOSED_CREW=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x74732C6CA90DA2B4, "")end - NETWORK_SESSION_IS_SOLO=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xF3929C2379B60CCE, "")end - NETWORK_SESSION_IS_PRIVATE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xCEF70AA5B3F89BA1, "")end - _NETWORK_SESSION_LEAVE_INCLUDING_REASON=--[[BOOL (bool)]] function(--[[int]] leaveFlags,--[[int]] leaveReason)return native_invoker.unified_bool(leaveFlags, leaveReason, 0xE0128328CF1FD9F4, "ii")end - -- p0 is always false and p1 varies. - -- NETWORK_SESSION_END(0, 1) - -- NETWORK_SESSION_END(0, 0) - -- Results in: "Connection to session lost due to an unknown network error. Please return to Grand Theft Auto V and try again later." - NETWORK_SESSION_END=--[[BOOL (bool)]] function(--[[BOOL (bool)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_bool(p0, p1, 0xA02E59562D711006, "bb")end - NETWORK_SESSION_LEAVE=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0xB9351A07A0D458B1, "i")end - -- Only works as host. - NETWORK_SESSION_KICK_PLAYER=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0xFA8904DC5F304220, "i")end - NETWORK_SESSION_GET_KICK_VOTE=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0xD6D09A6F32F49EF1, "i")end - NETWORK_SESSION_RESERVE_SLOTS_TRANSITION=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_bool(p0, p1, p2, 0x041C7F2A6C9894E6, "iii")end - NETWORK_JOIN_PREVIOUSLY_FAILED_SESSION=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x59DF79317F85A7E0, "")end - NETWORK_JOIN_PREVIOUSLY_FAILED_TRANSITION=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xFFE1E5B792D92B34, "")end - NETWORK_SESSION_SET_MATCHMAKING_GROUP=--[[void]] function(--[[int]] matchmakingGroup)return native_invoker.unified_void(matchmakingGroup, 0x49EC8030F5015F8B, "i")end - -- playerType is an unsigned int from 0 to 4 - -- 0 = regular joiner - -- 4 = spectator - NETWORK_SESSION_SET_MATCHMAKING_GROUP_MAX=--[[void]] function(--[[int]] playerType,--[[int]] playerCount)return native_invoker.unified_void(playerType, playerCount, 0x8B6A4DD0AF9CE215, "ii")end - NETWORK_SESSION_GET_MATCHMAKING_GROUP_FREE=--[[int]] function(--[[int]] p0)return native_invoker.unified_int(p0, 0x56CE820830EF040B, "i")end - -- groupId range: [0, 4] - NETWORK_SESSION_ADD_ACTIVE_MATCHMAKING_GROUP=--[[void]] function(--[[int]] groupId)return native_invoker.unified_void(groupId, 0xCAE55F48D3D7875C, "i")end - NETWORK_SESSION_SET_UNIQUE_CREW_LIMIT=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xF49ABC20D8552257, "i")end - NETWORK_SESSION_GET_UNIQUE_CREW_LIMIT=--[[int]] function()return native_invoker.unified_int(0xCDC936BF35EDCB73, "")end - NETWORK_SESSION_SET_UNIQUE_CREW_LIMIT_TRANSITION=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x4811BBAC21C5FCD5, "i")end - NETWORK_SESSION_SET_UNIQUE_CREW_ONLY_CREWS_TRANSITION=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x5539C3EBF104A53A, "b")end - NETWORK_SESSION_SET_CREW_LIMIT_MAX_MEMBERS_TRANSITION=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x702BC4D605522539, "i")end - NETWORK_SESSION_SET_MATCHMAKING_PROPERTY_ID=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x3F52E880AAF6C8CA, "b")end - -- p0 in the decompiled scripts is always the stat mesh_texblend * 0.07 to int - NETWORK_SESSION_SET_MATCHMAKING_MENTAL_STATE=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0xF1EEA2DDA9FFA69D, "i")end - NETWORK_SESSION_SET_NUM_BOSSES=--[[void]] function(--[[int]] num)return native_invoker.unified_void(num, 0x59D421683D31835A, "i")end - NETWORK_SESSION_SET_SCRIPT_VALIDATE_JOIN=--[[void]] function()return native_invoker.unified_void(0x1153FA02A659051C, "")end - NETWORK_SESSION_VALIDATE_JOIN=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xC19F6C8E7865A6FF, "b")end - -- .. - NETWORK_ADD_FOLLOWERS=--[[void]] function(--[[int* (pointer)]] p0,--[[int]] p1)return native_invoker.unified_void(p0, p1, 0x236406F60CF216D6, "pi")end - NETWORK_CLEAR_FOLLOWERS=--[[void]] function()return native_invoker.unified_void(0x058F43EC59A8631A, "")end - NETWORK_GET_GLOBAL_MULTIPLAYER_CLOCK=--[[void]] function(--[[int* (pointer)]] hours,--[[int* (pointer)]] minutes,--[[int* (pointer)]] seconds)return native_invoker.unified_void(hours, minutes, seconds, 0x6D03BFBD643B2A02, "ppp")end - NETWORK_SESSION_SET_GAMEMODE=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x600F8CB31C7AAB6E, "i")end - NETWORK_SESSION_GET_HOST_AIM_PREFERENCE=--[[int]] function()return native_invoker.unified_int(0xDFFA5BE8381C3314, "")end - NETWORK_FIND_GAMERS_IN_CREW=--[[BOOL (bool)]] function(--[[int]] crewId)return native_invoker.unified_bool(crewId, 0xE532D6811B3A4D2A, "i")end - -- Uses attributes to find players with similar stats. Upper/Lower limit must be above zero or the fallback limit +/-0.1 is used. - -- There can be up to 15 attributes, they are as follows: - -- - -- 0 = Races - -- 1 = Parachuting - -- 2 = Horde - -- 3 = Darts - -- 4 = Arm Wrestling - -- 5 = Tennis - -- 6 = Golf - -- 7 = Shooting Range - -- 8 = Deathmatch - -- 9 = MPPLY_MCMWIN/MPPLY_CRMISSION - NETWORK_FIND_MATCHED_GAMERS=--[[BOOL (bool)]] function(--[[int]] attribute,--[[float]] fallbackLimit,--[[float]] lowerLimit,--[[float]] upperLimit)return native_invoker.unified_bool(attribute, fallbackLimit, lowerLimit, upperLimit, 0xF7B2CFDE5C9F700D, "ifff")end - NETWORK_IS_FINDING_GAMERS=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xDDDF64C91BFCF0AA, "")end - NETWORK_DID_FIND_GAMERS_SUCCEED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xF9B83B77929D8863, "")end - NETWORK_GET_NUM_FOUND_GAMERS=--[[int]] function()return native_invoker.unified_int(0xA1B043EE79A916FB, "")end - NETWORK_GET_FOUND_GAMER=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[Any (int)]] p1)return native_invoker.unified_bool(p0, p1, 0x9DCFF2AFB68B3476, "pi")end - NETWORK_CLEAR_FOUND_GAMERS=--[[void]] function()return native_invoker.unified_void(0x6D14CCEE1B40381A, "")end - NETWORK_QUEUE_GAMER_FOR_STATUS=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_bool(p0, 0x85A0EF54A500882C, "p")end - NETWORK_GET_GAMER_STATUS_FROM_QUEUE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x2CC848A861D01493, "")end - NETWORK_IS_GETTING_GAMER_STATUS=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x94A8394D150B013A, "")end - NETWORK_DID_GET_GAMER_STATUS_SUCCEED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x5AE17C6B0134B7F1, "")end - NETWORK_GET_GAMER_STATUS_RESULT=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[Any (int)]] p1)return native_invoker.unified_bool(p0, p1, 0x02A8BEC6FD9AF660, "pi")end - NETWORK_CLEAR_GET_GAMER_STATUS=--[[void]] function()return native_invoker.unified_void(0x86E0660E4F5C956D, "")end - NETWORK_SESSION_JOIN_INVITE=--[[void]] function()return native_invoker.unified_void(0xC6F8AB8A4189CF3A, "")end - NETWORK_SESSION_CANCEL_INVITE=--[[void]] function()return native_invoker.unified_void(0x2FBF47B1B36D36F9, "")end - NETWORK_SESSION_FORCE_CANCEL_INVITE=--[[void]] function()return native_invoker.unified_void(0xA29177F7703B5644, "")end - NETWORK_HAS_PENDING_INVITE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xAC8C7B9B88C4A668, "")end - NETWORK_HAS_CONFIRMED_INVITE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC42DD763159F3461, "")end - -- Triggers a CEventNetworkInviteConfirmed event - NETWORK_REQUEST_INVITE_CONFIRMED_EVENT=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x62A0296C1BB1CEB3, "")end - NETWORK_SESSION_WAS_INVITED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x23DFB504655D0CE4, "")end - NETWORK_SESSION_GET_INVITER=--[[void]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_void(gamerHandle, 0xE57397B4A3429DD0, "p")end - -- Seems to be true while "Getting GTA Online session details" shows up. - NETWORK_SESSION_IS_AWAITING_INVITE_RESPONSE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xD313DE83394AF134, "")end - NETWORK_SESSION_IS_DISPLAYING_INVITE_CONFIRMATION=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xBDB6F89C729CF388, "")end - NETWORK_SUPPRESS_INVITE=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xA0682D67EF1FBA3D, "b")end - NETWORK_BLOCK_INVITES=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x34F9E9049454A7A0, "b")end - NETWORK_BLOCK_JOIN_QUEUE_INVITES=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xCFEB8AF24FC1D0BB, "b")end - NETWORK_SET_CAN_RECEIVE_RS_INVITES=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x68980414688F7F9D, "b")end - NETWORK_STORE_INVITE_THROUGH_RESTART=--[[void]] function()return native_invoker.unified_void(0xF814FEC6A19FD6E0, "")end - NETWORK_ALLOW_INVITE_PROCESS_IN_PLAYER_SWITCH=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x6B07B9CE4D390375, "b")end - NETWORK_SET_SCRIPT_READY_FOR_EVENTS=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x7AC752103856FB20, "b")end - NETWORK_IS_OFFLINE_INVITE_PENDING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x74698374C45701D2, "")end - NETWORK_CLEAR_OFFLINE_INVITE_PENDING=--[[void]] function()return native_invoker.unified_void(0x140E6A44870A11CE, "")end - -- Loads up the map that is loaded when beeing in mission creator - -- Player gets placed in a mix between online/offline mode - -- p0 is always 2 in R* scripts. - -- - -- Appears to be patched in gtav b757 (game gets terminated) alonside with most other network natives to prevent online modding ~ghost30812 - NETWORK_SESSION_HOST_SINGLE_PLAYER=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0xC74C33FCA52856D5, "i")end - NETWORK_SESSION_LEAVE_SINGLE_PLAYER=--[[void]] function()return native_invoker.unified_void(0x3442775428FD2DAA, "")end - NETWORK_IS_GAME_IN_PROGRESS=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x10FAB35428CCC9D7, "")end - NETWORK_IS_SESSION_ACTIVE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xD83C2B94E7508980, "")end - NETWORK_IS_IN_SESSION=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xCA97246103B63917, "")end - -- Hardcoded to return 0. - _NETWORK_IS_AMERICAS_VERSION=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x0292BD7F3766CEBC, "")end - -- This checks if player is playing on gta online or not. - -- Please add an if and block your mod if this is "true". - NETWORK_IS_SESSION_STARTED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x9DE624D2FC4B603F, "")end - NETWORK_IS_SESSION_BUSY=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xF4435D66A8E2905E, "")end - NETWORK_CAN_SESSION_END=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x4EEBC3694E49C572, "")end - NETWORK_GET_GAME_MODE=--[[int]] function()return native_invoker.unified_int(0x4C9034162368E206, "")end - NETWORK_SESSION_MARK_VISIBLE=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x271CC6AB59EBF9A5, "b")end - NETWORK_SESSION_IS_VISIBLE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xBA416D68C631496A, "")end - NETWORK_SESSION_BLOCK_JOIN_REQUESTS=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xA73667484D7037C3, "b")end - -- num player slots allowed in session, seems to work? 32 max - NETWORK_SESSION_CHANGE_SLOTS=--[[void]] function(--[[int]] slots,--[[BOOL (bool)]] p1)return native_invoker.unified_void(slots, p1, 0xB4AB419E0D86ACAE, "ib")end - NETWORK_SESSION_GET_PRIVATE_SLOTS=--[[int]] function()return native_invoker.unified_int(0x53AFD64C6758F2F9, "")end - NETWORK_SESSION_VOICE_HOST=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x9C1556705F864230, "")end - NETWORK_SESSION_VOICE_LEAVE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x6793E42BE02B575D, "")end - NETWORK_SESSION_VOICE_CONNECT_TO_PLAYER=--[[void]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_void(gamerHandle, 0xABD5E88B8A2D3DB2, "p")end - NETWORK_SESSION_VOICE_RESPOND_TO_REQUEST=--[[void]] function(--[[BOOL (bool)]] p0,--[[int]] p1)return native_invoker.unified_void(p0, p1, 0x7F8413B7FC2AA6B9, "bi")end - NETWORK_SESSION_VOICE_SET_TIMEOUT=--[[void]] function(--[[int]] timeout)return native_invoker.unified_void(timeout, 0x5B8ED3DB018927B1, "i")end - NETWORK_SESSION_IS_IN_VOICE_SESSION=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x855BC38818F6F684, "")end - NETWORK_SESSION_IS_VOICE_SESSION_ACTIVE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xB5D3453C98456528, "")end - NETWORK_SESSION_IS_VOICE_SESSION_BUSY=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xEF0912DDF7C4CB4B, "")end - -- Message is limited to 64 characters. - NETWORK_SEND_TEXT_MESSAGE=--[[BOOL (bool)]] function(--[[string]] message,--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(message, gamerHandle, 0x3A214F2EC889B100, "sp")end - NETWORK_SET_ACTIVITY_SPECTATOR=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x75138790B4359A74, "b")end - NETWORK_IS_ACTIVITY_SPECTATOR=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x12103B9E0C9F92FB, "")end - NETWORK_SET_ACTIVITY_PLAYER_MAX=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x0E4F77F7B9D74D84, "i")end - NETWORK_SET_ACTIVITY_SPECTATOR_MAX=--[[void]] function(--[[int]] maxSpectators)return native_invoker.unified_void(maxSpectators, 0x9D277B76D1D12222, "i")end - NETWORK_GET_ACTIVITY_PLAYER_NUM=--[[int]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_int(p0, 0x73E2B500410DA5A2, "b")end - NETWORK_IS_ACTIVITY_SPECTATOR_FROM_HANDLE=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0x2763BBAA72A7BCB9, "p")end - -- p0: Unknown int - -- p1: Unknown int - -- p2: Unknown int - -- p3: Unknown int - -- p4: Unknown always 0 in decompiled scripts - -- p5: BOOL purpose unknown, both 0 and 1 are used in decompiled scripts. - -- p6: BOOL purpose unknown, both 0 and 1 are used in decompiled scripts. - -- p7: Unknown int, it's an int according to decompiled scripts, however the value is always 0 or 1. - -- p8: Unknown int, it's an int according to decompiled scripts, however the value is always 0 or 1. - -- p9: Unknown int, sometimes 0, but also 32768 or 16384 appear in decompiled scripst, maybe a flag of some sort? - -- - -- From what I can tell it looks like it does the following: - -- Creates/hosts a new transition to another online session, using this in FiveM will result in other players being disconencted from the server/preventing them from joining. This is most likely because I entered the wrong session parameters since they're pretty much all unknown right now. - -- You also need to use `NetworkJoinTransition(Player player)` and `NetworkLaunchTransition()`. - NETWORK_HOST_TRANSITION=--[[BOOL (bool)]] function(--[[int]] p0,--[[int]] p1,--[[int]] p2,--[[int]] p3,--[[Any (int)]] p4,--[[BOOL (bool)]] p5,--[[BOOL (bool)]] p6,--[[int]] p7,--[[Any (int)]] p8,--[[int]] p9)return native_invoker.unified_bool(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, 0xA60BB5CE242BB254, "iiiiibbiii")end - NETWORK_DO_TRANSITION_QUICKMATCH=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5)return native_invoker.unified_bool(p0, p1, p2, p3, p4, p5, 0x71FB0EBCD4915D56, "iiiiii")end - NETWORK_DO_TRANSITION_QUICKMATCH_ASYNC=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5)return native_invoker.unified_bool(p0, p1, p2, p3, p4, p5, 0xA091A5E44F0072E5, "iiiiii")end - NETWORK_DO_TRANSITION_QUICKMATCH_WITH_GROUP=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any* (pointer)]] p4,--[[Any (int)]] p5,--[[Any (int)]] p6,--[[Any (int)]] p7)return native_invoker.unified_bool(p0, p1, p2, p3, p4, p5, p6, p7, 0x9C4AB58491FDC98A, "iiiipiii")end - NETWORK_JOIN_GROUP_ACTIVITY=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xA06509A691D12BE4, "")end - NETWORK_CLEAR_GROUP_ACTIVITY=--[[void]] function()return native_invoker.unified_void(0x1888694923EF4591, "")end - NETWORK_RETAIN_ACTIVITY_GROUP=--[[void]] function()return native_invoker.unified_void(0xB13E88E655E5A3BC, "")end - NETWORK_IS_TRANSITION_CLOSED_FRIENDS=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x6512765E3BE78C50, "")end - NETWORK_IS_TRANSITION_CLOSED_CREW=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x0DBD5D7E3C5BEC3B, "")end - NETWORK_IS_TRANSITION_SOLO=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x5DC577201723960A, "")end - NETWORK_IS_TRANSITION_PRIVATE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x5A6AA44FF8E931E6, "")end - NETWORK_GET_NUM_TRANSITION_NON_ASYNC_GAMERS=--[[int]] function()return native_invoker.unified_int(0x617F49C2668E6155, "")end - NETWORK_MARK_AS_PREFERRED_ACTIVITY=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x261E97AD7BCF3D40, "b")end - NETWORK_MARK_AS_WAITING_ASYNC=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x39917E1B4CB0F911, "b")end - NETWORK_SET_IN_PROGRESS_FINISH_TIME=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x2CE9D95E4051AECD, "i")end - NETWORK_SET_TRANSITION_CREATOR_HANDLE=--[[void]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_void(p0, 0xEF26739BCD9907D5, "p")end - NETWORK_CLEAR_TRANSITION_CREATOR_HANDLE=--[[void]] function()return native_invoker.unified_void(0xFB3272229A82C759, "")end - NETWORK_INVITE_GAMERS_TO_TRANSITION=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[Any (int)]] p1)return native_invoker.unified_bool(p0, p1, 0x4A595C32F77DFF76, "pi")end - NETWORK_SET_GAMER_INVITED_TO_TRANSITION=--[[void]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_void(gamerHandle, 0xCA2C8073411ECDB6, "p")end - NETWORK_LEAVE_TRANSITION=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xD23A1A815D21DB19, "")end - NETWORK_LAUNCH_TRANSITION=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x2DCF46CB1A4F0884, "")end - -- Appears to set whether a transition should be started when the session is migrating. - NETWORK_SET_DO_NOT_LAUNCH_FROM_JOIN_AS_MIGRATED_HOST=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xA2E9C1AB8A92E8CD, "b")end - NETWORK_CANCEL_TRANSITION_MATCHMAKING=--[[void]] function()return native_invoker.unified_void(0x023782EFC70585EE, "")end - NETWORK_BAIL_TRANSITION=--[[void]] function(--[[int]] p0,--[[int]] p1,--[[int]] p2)return native_invoker.unified_void(p0, p1, p2, 0xEAA572036990CD1B, "iii")end - NETWORK_DO_TRANSITION_TO_GAME=--[[BOOL (bool)]] function(--[[BOOL (bool)]] p0,--[[int]] maxPlayers)return native_invoker.unified_bool(p0, maxPlayers, 0x3E9BB38102A589B0, "bi")end - NETWORK_DO_TRANSITION_TO_NEW_GAME=--[[BOOL (bool)]] function(--[[BOOL (bool)]] p0,--[[int]] maxPlayers,--[[BOOL (bool)]] p2)return native_invoker.unified_bool(p0, maxPlayers, p2, 0x4665F51EFED00034, "bib")end - -- p2 is true 3/4 of the occurrences I found. - -- 'players' is the number of players for a session. On PS3/360 it's always 18. On PC it's 32. - NETWORK_DO_TRANSITION_TO_FREEMODE=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[Any (int)]] p1,--[[BOOL (bool)]] p2,--[[int]] players,--[[BOOL (bool)]] p4)return native_invoker.unified_bool(p0, p1, p2, players, p4, 0x3AAD8B2FCA1E289F, "pibib")end - NETWORK_DO_TRANSITION_TO_NEW_FREEMODE=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[Any (int)]] p1,--[[int]] players,--[[BOOL (bool)]] p3,--[[BOOL (bool)]] p4,--[[BOOL (bool)]] p5)return native_invoker.unified_bool(p0, p1, players, p3, p4, p5, 0x9E80A5BA8109F974, "piibbb")end - NETWORK_IS_TRANSITION_TO_GAME=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x9D7696D8F4FA6CB7, "")end - -- Returns count. - NETWORK_GET_TRANSITION_MEMBERS=--[[int]] function(--[[Any* (pointer)]] data,--[[int]] dataCount)return native_invoker.unified_int(data, dataCount, 0x73B000F7FBC55829, "pi")end - NETWORK_APPLY_TRANSITION_PARAMETER=--[[void]] function(--[[int]] p0,--[[int]] p1)return native_invoker.unified_void(p0, p1, 0x521638ADA1BA0D18, "ii")end - NETWORK_APPLY_TRANSITION_PARAMETER_STRING=--[[void]] function(--[[int]] p0,--[[string]] string,--[[BOOL (bool)]] p2)return native_invoker.unified_void(p0, string, p2, 0xEBEFC2E77084F599, "isb")end - NETWORK_SEND_TRANSITION_GAMER_INSTRUCTION=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle,--[[string]] p1,--[[int]] p2,--[[int]] p3,--[[BOOL (bool)]] p4)return native_invoker.unified_bool(gamerHandle, p1, p2, p3, p4, 0x31D1D2B858D25E6B, "psiib")end - NETWORK_MARK_TRANSITION_GAMER_AS_FULLY_JOINED=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_bool(p0, 0x5728BB6D63E3FF1D, "p")end - NETWORK_IS_TRANSITION_HOST=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x0B824797C9BF2159, "")end - NETWORK_IS_TRANSITION_HOST_FROM_HANDLE=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0x6B5C83BA3EFE6A10, "p")end - NETWORK_GET_TRANSITION_HOST=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0x65042B9774C4435E, "p")end - NETWORK_IS_IN_TRANSITION=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x68049AEFF83D8F0A, "")end - NETWORK_IS_TRANSITION_STARTED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x53FA83401D9C07FE, "")end - NETWORK_IS_TRANSITION_BUSY=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x520F3282A53D26B7, "")end - NETWORK_IS_TRANSITION_MATCHMAKING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x292564C735375EDF, "")end - NETWORK_IS_TRANSITION_LEAVE_POSTPONED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC571D0E77D8BBC29, "")end - NETWORK_TRANSITION_SET_IN_PROGRESS=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x1398582B7F72B3ED, "i")end - NETWORK_TRANSITION_SET_CONTENT_CREATOR=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x1F8E00FB18239600, "i")end - NETWORK_TRANSITION_SET_ACTIVITY_ISLAND=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xF6F4383B7C92F11A, "i")end - NETWORK_OPEN_TRANSITION_MATCHMAKING=--[[void]] function()return native_invoker.unified_void(0x2B3A8F7CA3A38FDE, "")end - NETWORK_CLOSE_TRANSITION_MATCHMAKING=--[[void]] function()return native_invoker.unified_void(0x43F4DBA69710E01E, "")end - NETWORK_IS_TRANSITION_OPEN_TO_MATCHMAKING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x37A4494483B9F5C9, "")end - NETWORK_SET_TRANSITION_VISIBILITY_LOCK=--[[void]] function(--[[BOOL (bool)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0x0C978FDA19692C2C, "bb")end - NETWORK_IS_TRANSITION_VISIBILITY_LOCKED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xD0A484CB2F829FBE, "")end - NETWORK_SET_TRANSITION_ACTIVITY_ID=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x30DE938B516F0AD2, "i")end - NETWORK_CHANGE_TRANSITION_SLOTS=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0xEEEDA5E6D7080987, "ib")end - NETWORK_TRANSITION_BLOCK_JOIN_REQUESTS=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x973D76AA760A6CB6, "b")end - NETWORK_HAS_PLAYER_STARTED_TRANSITION=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x9AC9CCBFA8C29795, "i")end - NETWORK_ARE_TRANSITION_DETAILS_VALID=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x2615AA2A695930C1, "i")end - -- int handle[76]; - -- NETWORK_HANDLE_FROM_FRIEND(iSelectedPlayer, &handle[0], 13); - -- Player uVar2 = NETWORK_GET_PLAYER_FROM_GAMER_HANDLE(&handle[0]); - -- NETWORK_JOIN_TRANSITION(uVar2); - -- nothing doin. - NETWORK_JOIN_TRANSITION=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x9D060B08CD63321A, "i")end - NETWORK_HAS_INVITED_GAMER_TO_TRANSITION=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_bool(p0, 0x7284A47B3540E6CF, "p")end - NETWORK_HAS_TRANSITION_INVITE_BEEN_ACKED=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_bool(p0, 0x3F9990BF5F22759C, "p")end - NETWORK_IS_ACTIVITY_SESSION=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x05095437424397FA, "")end - NETWORK_DISABLE_REALTIME_MULTIPLAYER=--[[void]] function()return native_invoker.unified_void(0x236905C700FDB54D, "")end - -- Does nothing. It's just a nullsub. - NETWORK_SET_PRESENCE_SESSION_INVITES_BLOCKED=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x4A9FDE3A5A6D0437, "b")end - NETWORK_SEND_INVITE_VIA_PRESENCE=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle,--[[string]] p1,--[[int]] dataCount,--[[int]] p3)return native_invoker.unified_bool(gamerHandle, p1, dataCount, p3, 0xC3C7A6AFDB244624, "psii")end - NETWORK_SEND_TRANSITION_INVITE_VIA_PRESENCE=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle,--[[string]] p1,--[[int]] dataCount,--[[int]] p3)return native_invoker.unified_bool(gamerHandle, p1, dataCount, p3, 0xC116FF9B4D488291, "psii")end - -- Contains the string "NETWORK_SEND_PRESENCE_TRANSITION_INVITE" but so does 0xC116FF9B4D488291; seems to fit alphabetically here, tho. - NETWORK_SEND_IMPORTANT_TRANSITION_INVITE_VIA_PRESENCE=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle,--[[string]] p1,--[[int]] dataCount,--[[int]] p3)return native_invoker.unified_bool(gamerHandle, p1, dataCount, p3, 0x1171A97A3D3981B6, "psii")end - NETWORK_GET_PRESENCE_INVITE_INDEX_BY_ID=--[[int]] function(--[[int]] p0)return native_invoker.unified_int(p0, 0x742B58F723233ED9, "i")end - NETWORK_GET_NUM_PRESENCE_INVITES=--[[int]] function()return native_invoker.unified_int(0xCEFA968912D0F78D, "")end - NETWORK_ACCEPT_PRESENCE_INVITE=--[[BOOL (bool)]] function(--[[int]] p0)return native_invoker.unified_bool(p0, 0xFA91550DF9318B22, "i")end - NETWORK_REMOVE_PRESENCE_INVITE=--[[BOOL (bool)]] function(--[[int]] p0)return native_invoker.unified_bool(p0, 0xF0210268DB0974B1, "i")end - NETWORK_GET_PRESENCE_INVITE_ID=--[[int]] function(--[[int]] p0)return native_invoker.unified_int(p0, 0xDFF09646E12EC386, "i")end - NETWORK_GET_PRESENCE_INVITE_INVITER=--[[string]] function(--[[int]] p0)return native_invoker.unified_string(p0, 0x4962CC4AA2F345B7, "i")end - NETWORK_GET_PRESENCE_INVITE_HANDLE=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any* (pointer)]] p1)return native_invoker.unified_bool(p0, p1, 0x38D5B0FEBB086F75, "ip")end - NETWORK_GET_PRESENCE_INVITE_SESSION_ID=--[[int]] function(--[[Any (int)]] p0)return native_invoker.unified_int(p0, 0x26E1CD96B0903D60, "i")end - NETWORK_GET_PRESENCE_INVITE_CONTENT_ID=--[[string]] function(--[[int]] p0)return native_invoker.unified_string(p0, 0x24409FC4C55CB22D, "i")end - NETWORK_GET_PRESENCE_INVITE_PLAYLIST_LENGTH=--[[int]] function(--[[int]] p0)return native_invoker.unified_int(p0, 0xD39B3FFF8FFDD5BF, "i")end - NETWORK_GET_PRESENCE_INVITE_PLAYLIST_CURRENT=--[[int]] function(--[[int]] p0)return native_invoker.unified_int(p0, 0x728C4CC7920CD102, "i")end - NETWORK_GET_PRESENCE_INVITE_FROM_ADMIN=--[[BOOL (bool)]] function(--[[int]] p0)return native_invoker.unified_bool(p0, 0x3DBF2DF0AEB7D289, "i")end - NETWORK_GET_PRESENCE_INVITE_IS_TOURNAMENT=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x8806CEBFABD3CE05, "i")end - NETWORK_HAS_FOLLOW_INVITE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x76D9B976C4C09FDE, "")end - NETWORK_ACTION_FOLLOW_INVITE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC88156EBB786F8D5, "")end - NETWORK_CLEAR_FOLLOW_INVITE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x439BFDE3CD0610F6, "")end - NETWORK_REMOVE_AND_CANCEL_ALL_INVITES=--[[void]] function()return native_invoker.unified_void(0xEBF8284D8CADEB53, "")end - NETWORK_REMOVE_TRANSITION_INVITE=--[[void]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_void(p0, 0x7524B431B2E6F7EE, "p")end - NETWORK_REMOVE_ALL_TRANSITION_INVITE=--[[void]] function()return native_invoker.unified_void(0x726E0375C7A26368, "")end - NETWORK_REMOVE_AND_CANCEL_ALL_TRANSITION_INVITES=--[[void]] function()return native_invoker.unified_void(0xF083835B70BA9BFE, "")end - NETWORK_INVITE_GAMERS=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[Any (int)]] p1,--[[Any* (pointer)]] p2,--[[Any (int)]] p3)return native_invoker.unified_bool(p0, p1, p2, p3, 0x9D80CD1D0E6327DE, "pipi")end - NETWORK_HAS_INVITED_GAMER=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_bool(p0, 0x4D86CD31E8976ECE, "p")end - NETWORK_HAS_MADE_INVITE_DECISION=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0x71DC455F5CD1C2B1, "p")end - NETWORK_GET_INVITE_REPLY_STATUS=--[[int]] function(--[[Any (int)]] p0)return native_invoker.unified_int(p0, 0x3855FB5EB2C5E8B2, "i")end - NETWORK_GET_CURRENTLY_SELECTED_GAMER_HANDLE_FROM_INVITE_MENU=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_bool(p0, 0x74881E6BCAE2327C, "p")end - NETWORK_SET_CURRENTLY_SELECTED_GAMER_HANDLE_FROM_INVITE_MENU=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_bool(p0, 0x7206F674F2A3B1BB, "p")end - NETWORK_SET_INVITE_ON_CALL_FOR_INVITE_MENU=--[[void]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_void(p0, 0x66F010A4B031A331, "p")end - NETWORK_CHECK_DATA_MANAGER_SUCCEEDED_FOR_HANDLE=--[[BOOL (bool)]] function(--[[int]] p0,--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(p0, gamerHandle, 0x44B37CDCAE765AAE, "ip")end - NETWORK_CHECK_DATA_MANAGER_FOR_HANDLE=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(p0, gamerHandle, 0x4AD490AE1536933B, "ip")end - NETWORK_SET_INVITE_FAILED_MESSAGE_FOR_INVITE_MENU=--[[void]] function(--[[Any* (pointer)]] p0,--[[Any* (pointer)]] p1)return native_invoker.unified_void(p0, p1, 0x0D77A82DC2D0DA59, "pp")end - FILLOUT_PM_PLAYER_LIST=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_bool(gamerHandle, p1, p2, 0xCBBD7C4991B64809, "pii")end - FILLOUT_PM_PLAYER_LIST_WITH_NAMES=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[Any* (pointer)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_bool(p0, p1, p2, p3, 0x716B6DB9D1886106, "ppii")end - REFRESH_PLAYER_LIST_STATS=--[[BOOL (bool)]] function(--[[int]] p0)return native_invoker.unified_bool(p0, 0xE26CCFF8094D8C74, "i")end - NETWORK_SET_CURRENT_DATA_MANAGER_HANDLE=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_bool(p0, 0x796A87B3B68D1F3D, "p")end - -- Hardcoded to return false. - NETWORK_IS_IN_PLATFORM_PARTY=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x2FC5650B0271CB57, "")end - NETWORK_GET_PLATFORM_PARTY_MEMBER_COUNT=--[[int]] function()return native_invoker.unified_int(0x01ABCE5E7CBDA196, "")end - NETWORK_GET_PLATFORM_PARTY_MEMBERS=--[[int]] function(--[[Any* (pointer)]] data,--[[int]] dataSize)return native_invoker.unified_int(data, dataSize, 0x120364DE2845DAF8, "pi")end - -- Hardcoded to return false. - NETWORK_IS_IN_PLATFORM_PARTY_CHAT=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xFD8B834A8BA05048, "")end - -- This would be nice to see if someone is in party chat, but 2 sad notes. - -- 1) It only becomes true if said person is speaking in that party at the time. - -- 2) It will never, become true unless you are in that party with said person. - NETWORK_IS_CHATTING_IN_PLATFORM_PARTY=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0x8DE9945BCC9AEC52, "p")end - NETWORK_CAN_QUEUE_FOR_PREVIOUS_SESSION_JOIN=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x2BF66D2E7414F686, "")end - NETWORK_IS_QUEUING_FOR_SESSION_JOIN=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x14922ED3E38761F0, "")end - NETWORK_CLEAR_QUEUED_JOIN_REQUEST=--[[void]] function()return native_invoker.unified_void(0x6CE50E47F5543D0C, "")end - NETWORK_SEND_QUEUED_JOIN_REQUEST=--[[void]] function()return native_invoker.unified_void(0xFA2888E3833C8E96, "")end - NETWORK_REMOVE_ALL_QUEUED_JOIN_REQUESTS=--[[void]] function()return native_invoker.unified_void(0x25D990F8E0E3F13C, "")end - NETWORK_SEED_RANDOM_NUMBER_GENERATOR=--[[void]] function(--[[int]] seed)return native_invoker.unified_void(seed, 0xF1B84178F8674195, "i")end - NETWORK_GET_RANDOM_INT=--[[int]] function()return native_invoker.unified_int(0x599E4FA1F87EB5FF, "")end - -- Same as GET_RANDOM_INT_IN_RANGE - NETWORK_GET_RANDOM_INT_RANGED=--[[int]] function(--[[int]] rangeStart,--[[int]] rangeEnd)return native_invoker.unified_int(rangeStart, rangeEnd, 0xE30CF56F1EFA5F43, "ii")end - _NETWORK_GET_RANDOM_FLOAT_RANGED=--[[float]] function(--[[float]] rangeStart,--[[float]] rangeEnd)return native_invoker.unified_float(rangeStart, rangeEnd, 0x04BD27B5ACB67067, "ff")end - NETWORK_PLAYER_IS_CHEATER=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x655B91F1495A9090, "")end - NETWORK_PLAYER_GET_CHEATER_REASON=--[[int]] function()return native_invoker.unified_int(0x172F75B6EE2233BA, "")end - NETWORK_PLAYER_IS_BADSPORT=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x19D8DA0E5A68045A, "")end - REMOTE_CHEATER_PLAYER_DETECTED=--[[BOOL (bool)]] function(--[[Player (int)]] player,--[[int]] a,--[[int]] b)return native_invoker.unified_bool(player, a, b, 0x472841A026D26D8B, "iii")end - BAD_SPORT_PLAYER_LEFT_DETECTED=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle,--[[int]] event,--[[int]] amountReceived)return native_invoker.unified_bool(gamerHandle, event, amountReceived, 0xEC5E3AF5289DCA81, "pii")end - NETWORK_ADD_INVALID_OBJECT_MODEL=--[[void]] function(--[[Hash (int)]] modelHash)return native_invoker.unified_void(modelHash, 0x7F562DBC212E81F9, "i")end - NETWORK_REMOVE_INVALID_OBJECT_MODEL=--[[void]] function(--[[Hash (int)]] modelHash)return native_invoker.unified_void(modelHash, 0x791EDB5803B2F468, "i")end - NETWORK_CLEAR_INVALID_OBJECT_MODELS=--[[void]] function()return native_invoker.unified_void(0x03B2F03A53D85E41, "")end - NETWORK_APPLY_PED_SCAR_DATA=--[[void]] function(--[[Ped (int)]] ped,--[[int]] p1)return native_invoker.unified_void(ped, p1, 0xE66C690248F11150, "ii")end - NETWORK_SET_THIS_SCRIPT_IS_NETWORK_SCRIPT=--[[void]] function(--[[int]] maxNumMissionParticipants,--[[BOOL (bool)]] p1,--[[int]] instanceId)return native_invoker.unified_void(maxNumMissionParticipants, p1, instanceId, 0x1CA59E306ECB80A5, "ibi")end - NETWORK_TRY_TO_SET_THIS_SCRIPT_IS_NETWORK_SCRIPT=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[Any (int)]] p2)return native_invoker.unified_bool(p0, p1, p2, 0xD1110739EEADB592, "ibi")end - NETWORK_GET_THIS_SCRIPT_IS_NETWORK_SCRIPT=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x2910669969E9535E, "")end - NETWORK_GET_MAX_NUM_PARTICIPANTS=--[[int]] function()return native_invoker.unified_int(0xA6C90FBC38E395EE, "")end - NETWORK_GET_NUM_PARTICIPANTS=--[[int]] function()return native_invoker.unified_int(0x18D0456E86604654, "")end - NETWORK_GET_SCRIPT_STATUS=--[[int]] function()return native_invoker.unified_int(0x57D158647A6BFABF, "")end - NETWORK_REGISTER_HOST_BROADCAST_VARIABLES=--[[void]] function(--[[int* (pointer)]] vars,--[[int]] numVars,--[[string]] debugName)return native_invoker.unified_void(vars, numVars, debugName, 0x3E9B2F01C50DF595, "pis")end - NETWORK_REGISTER_PLAYER_BROADCAST_VARIABLES=--[[void]] function(--[[int* (pointer)]] vars,--[[int]] numVars,--[[string]] debugName)return native_invoker.unified_void(vars, numVars, debugName, 0x3364AA97340CA215, "pis")end - NETWORK_REGISTER_HIGH_FREQUENCY_HOST_BROADCAST_VARIABLES=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xEA8C0DDB10E2822A, "iii")end - NETWORK_REGISTER_HIGH_FREQUENCY_PLAYER_BROADCAST_VARIABLES=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xD6D7478CA62B8D41, "iii")end - NETWORK_FINISH_BROADCASTING_DATA=--[[void]] function()return native_invoker.unified_void(0x64F62AFB081E260D, "")end - NETWORK_HAS_RECEIVED_HOST_BROADCAST_DATA=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x5D10B3795F3FC886, "")end - NETWORK_GET_PLAYER_INDEX=--[[Player (int)]] function(--[[Player (int)]] player)return native_invoker.unified_int(player, 0x24FB80D107371267, "i")end - NETWORK_GET_PARTICIPANT_INDEX=--[[int]] function(--[[int]] index)return native_invoker.unified_int(index, 0x1B84DF6AF2A46938, "i")end - -- Returns the Player associated to a given Ped when in an online session. - NETWORK_GET_PLAYER_INDEX_FROM_PED=--[[Player (int)]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x6C0E2E0125610278, "i")end - -- Returns the amount of players connected in the current session. Only works when connected to a session/server. - NETWORK_GET_NUM_CONNECTED_PLAYERS=--[[int]] function()return native_invoker.unified_int(0xA4A79DD2D9600654, "")end - NETWORK_IS_PLAYER_CONNECTED=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x93DC1BE4E1ABE9D1, "i")end - NETWORK_GET_TOTAL_NUM_PLAYERS=--[[int]] function()return native_invoker.unified_int(0xCF61D4B4702EE9EB, "")end - NETWORK_IS_PARTICIPANT_ACTIVE=--[[BOOL (bool)]] function(--[[int]] p0)return native_invoker.unified_bool(p0, 0x6FF8FF40B6357D45, "i")end - NETWORK_IS_PLAYER_ACTIVE=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0xB8DFD30D6973E135, "i")end - NETWORK_IS_PLAYER_A_PARTICIPANT=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x3CA58F6CB7CBD784, "i")end - NETWORK_IS_HOST_OF_THIS_SCRIPT=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x83CD99A1E6061AB5, "")end - NETWORK_GET_HOST_OF_THIS_SCRIPT=--[[Player (int)]] function()return native_invoker.unified_int(0xC7B4D79B01FA7A5C, "")end - -- scriptName examples: - -- "freemode", "AM_CR_SecurityVan", ... - -- - -- Most of the time, these values are used: - -- instance_id = -1 - -- position_hash = 0 - NETWORK_GET_HOST_OF_SCRIPT=--[[Player (int)]] function(--[[string]] scriptName,--[[int]] instance_id,--[[int]] position_hash)return native_invoker.unified_int(scriptName, instance_id, position_hash, 0x1D6A14F1F9A736FC, "sii")end - NETWORK_SET_MISSION_FINISHED=--[[void]] function()return native_invoker.unified_void(0x3B3D11CD9FFCDFC9, "")end - NETWORK_IS_SCRIPT_ACTIVE=--[[BOOL (bool)]] function(--[[string]] scriptName,--[[int]] instance_id,--[[BOOL (bool)]] p2,--[[int]] position_hash)return native_invoker.unified_bool(scriptName, instance_id, p2, position_hash, 0x9D40DF90FAD26098, "sibi")end - NETWORK_IS_SCRIPT_ACTIVE_BY_HASH=--[[BOOL (bool)]] function(--[[Hash (int)]] scriptHash,--[[int]] p1,--[[BOOL (bool)]] p2,--[[int]] p3)return native_invoker.unified_bool(scriptHash, p1, p2, p3, 0xDA7DE67F5FE5EE13, "iibi")end - NETWORK_IS_THREAD_A_NETWORK_SCRIPT=--[[BOOL (bool)]] function(--[[int]] threadId)return native_invoker.unified_bool(threadId, 0x560B423D73015E77, "i")end - NETWORK_GET_NUM_SCRIPT_PARTICIPANTS=--[[int]] function(--[[string]] scriptName,--[[int]] instance_id,--[[int]] position_hash)return native_invoker.unified_int(scriptName, instance_id, position_hash, 0x3658E8CD94FC121A, "sii")end - NETWORK_GET_INSTANCE_ID_OF_THIS_SCRIPT=--[[int]] function()return native_invoker.unified_int(0x638A3A81733086DB, "")end - NETWORK_GET_POSITION_HASH_OF_THIS_SCRIPT=--[[Hash (int)]] function()return native_invoker.unified_int(0x257ED0FADF750BCF, "")end - NETWORK_IS_PLAYER_A_PARTICIPANT_ON_SCRIPT=--[[BOOL (bool)]] function(--[[Player (int)]] player,--[[string]] script,--[[int]] instance_id)return native_invoker.unified_bool(player, script, instance_id, 0x1AD5B71586B94820, "isi")end - NETWORK_PREVENT_SCRIPT_HOST_MIGRATION=--[[void]] function()return native_invoker.unified_void(0x2302C0264EA58D31, "")end - NETWORK_REQUEST_TO_BE_HOST_OF_THIS_SCRIPT=--[[void]] function()return native_invoker.unified_void(0x741A3D8380319A81, "")end - -- Return the local Participant ID - PARTICIPANT_ID=--[[Player (int)]] function()return native_invoker.unified_int(0x90986E8876CE0A83, "")end - -- Return the local Participant ID. - -- - -- This native is exactly the same as 'PARTICIPANT_ID' native. - PARTICIPANT_ID_TO_INT=--[[int]] function()return native_invoker.unified_int(0x57A3BDDAD8E5AA0A, "")end - NETWORK_GET_KILLER_OF_PLAYER=--[[Player (int)]] function(--[[Player (int)]] player,--[[Hash* (pointer)]] weaponHash)return native_invoker.unified_int(player, weaponHash, 0x2DA41ED6E1FCD7A5, "ip")end - NETWORK_GET_DESTROYER_OF_NETWORK_ID=--[[Player (int)]] function(--[[int]] netId,--[[Hash* (pointer)]] weaponHash)return native_invoker.unified_int(netId, weaponHash, 0x7A1ADEEF01740A24, "ip")end - NETWORK_GET_DESTROYER_OF_ENTITY=--[[Player (int)]] function(--[[Entity (int)]] entity,--[[Hash* (pointer)]] weaponHash)return native_invoker.unified_int(entity, weaponHash, 0xC434133D9BA52777, "ip")end - -- NETWORK_GET_ASSISTED_DAMAGE_OF_ENTITY that ensures the entity is dead (IS_ENTITY_DEAD) - NETWORK_GET_ASSISTED_KILL_OF_ENTITY=--[[BOOL (bool)]] function(--[[Player (int)]] player,--[[Entity (int)]] entity,--[[int* (pointer)]] p2)return native_invoker.unified_bool(player, entity, p2, 0x83660B734994124D, "iip")end - NETWORK_GET_ASSISTED_DAMAGE_OF_ENTITY=--[[BOOL (bool)]] function(--[[Player (int)]] player,--[[Entity (int)]] entity,--[[int* (pointer)]] p2)return native_invoker.unified_bool(player, entity, p2, 0x4CACA84440FA26F6, "iip")end - NETWORK_GET_ENTITY_KILLER_OF_PLAYER=--[[Entity (int)]] function(--[[Player (int)]] player,--[[Hash* (pointer)]] weaponHash)return native_invoker.unified_int(player, weaponHash, 0x42B2DAA6B596F5F8, "ip")end - NETWORK_SET_CURRENT_PUBLIC_CONTENT_ID=--[[void]] function(--[[string]] missionId)return native_invoker.unified_void(missionId, 0x2C863ACDCD12B3DB, "s")end - NETWORK_SET_CURRENT_CHAT_OPTION=--[[void]] function(--[[int]] newChatOption)return native_invoker.unified_void(newChatOption, 0x3DAD00265FBF356B, "i")end - -- mpSettingSpawn: - -- - -- enum eMpSettingSpawn - -- { - -- MP_SETTING_SPAWN_NULL, - -- MP_SETTING_SPAWN_PROPERTY, - -- MP_SETTING_SPAWN_LAST_POSITION, - -- MP_SETTING_SPAWN_GARAGE, - -- MP_SETTING_SPAWN_RANDOM, - -- MP_SETTING_SPAWN_PRIVATE_YACHT, - -- MP_SETTING_SPAWN_OFFICE, - -- MP_SETTING_SPAWN_CLUBHOUSE, - -- MP_SETTING_SPAWN_IE_WAREHOUSE, - -- MP_SETTING_SPAWN_BUNKER, - -- MP_SETTING_SPAWN_HANGAR, - -- MP_SETTING_SPAWN_DEFUNCT_BASE, - -- MP_SETTING_SPAWN_NIGHTCLUB, - -- MP_SETTING_SPAWN_ARENA_GARAGE, - -- MP_SETTING_SPAWN_CASINO_APARTMENT, - -- MP_SETTING_SPAWN_ARCADE, - -- MP_SETTING_SPAWN_SUBMARINE, - -- MP_SETTING_SPAWN_CAR_MEET, - -- MP_SETTING_SPAWN_AUTO_SHOP, - -- MP_SETTING_SPAWN_FIXER_HQ, - -- MP_SETTING_SPAWN_MAX, - -- }; - NETWORK_SET_CURRENT_SPAWN_LOCATION_OPTION=--[[void]] function(--[[Hash (int)]] mpSettingSpawn)return native_invoker.unified_void(mpSettingSpawn, 0xAA6D5451DC3448B6, "i")end - -- Used by MetricVEHICLE_DIST_DRIVEN - NETWORK_SET_VEHICLE_DRIVEN_IN_TEST_DRIVE=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x8C70252FC40F320B, "b")end - -- Sets 'loc' variable used in MetricVEHICLE_DIST_DRIVEN - NETWORK_SET_VEHICLE_DRIVEN_LOCATION=--[[void]] function(--[[Hash (int)]] location)return native_invoker.unified_void(location, 0xA0CE91E47531D3BB, "i")end - NETWORK_RESURRECT_LOCAL_PLAYER=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] heading,--[[BOOL (bool)]] p4,--[[BOOL (bool)]] changetime,--[[BOOL (bool)]] p6,--[[int]] p7,--[[int]] p8)return native_invoker.unified_void(x, y, z, heading, p4, changetime, p6, p7, p8, 0xEA23C49EAA83ACFB, "ffffbbbii")end - NETWORK_SET_LOCAL_PLAYER_INVINCIBLE_TIME=--[[void]] function(--[[int]] time)return native_invoker.unified_void(time, 0x2D95C7E2D7E07307, "i")end - NETWORK_IS_LOCAL_PLAYER_INVINCIBLE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x8A8694B48715B000, "")end - NETWORK_DISABLE_INVINCIBLE_FLASHING=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0x9DD368BF06983221, "ib")end - NETWORK_PATCH_POST_CUTSCENE_HS4F_TUN_ENT=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xF0BC9BCD24A511D5, "i")end - NETWORK_SET_LOCAL_PLAYER_SYNC_LOOK_AT=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x524FF0AEFF9C3973, "b")end - NETWORK_HAS_ENTITY_BEEN_REGISTERED_WITH_THIS_THREAD=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0xB07D3185E11657A5, "i")end - NETWORK_GET_NETWORK_ID_FROM_ENTITY=--[[int]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0xA11700682F3AD45C, "i")end - NETWORK_GET_ENTITY_FROM_NETWORK_ID=--[[Entity (int)]] function(--[[int]] netId)return native_invoker.unified_int(netId, 0xCE4E5D9B0A4FF560, "i")end - NETWORK_GET_ENTITY_IS_NETWORKED=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0xC7827959479DCC78, "i")end - NETWORK_GET_ENTITY_IS_LOCAL=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x0991549DE4D64762, "i")end - NETWORK_REGISTER_ENTITY_AS_NETWORKED=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0x06FAACD625D80CAA, "i")end - NETWORK_UNREGISTER_NETWORKED_ENTITY=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0x7368E683BB9038D6, "i")end - NETWORK_DOES_NETWORK_ID_EXIST=--[[BOOL (bool)]] function(--[[int]] netId)return native_invoker.unified_bool(netId, 0x38CE16C96BD11344, "i")end - NETWORK_DOES_ENTITY_EXIST_WITH_NETWORK_ID=--[[BOOL (bool)]] function(--[[int]] netId)return native_invoker.unified_bool(netId, 0x18A47D074708FD68, "i")end - NETWORK_REQUEST_CONTROL_OF_NETWORK_ID=--[[BOOL (bool)]] function(--[[int]] netId)return native_invoker.unified_bool(netId, 0xA670B3662FAFFBD0, "i")end - NETWORK_HAS_CONTROL_OF_NETWORK_ID=--[[BOOL (bool)]] function(--[[int]] netId)return native_invoker.unified_bool(netId, 0x4D36070FE0215186, "i")end - -- Returns true if the specified network id is controlled by someone else. - NETWORK_IS_NETWORK_ID_REMOTELY_CONTROLLED=--[[BOOL (bool)]] function(--[[int]] netId)return native_invoker.unified_bool(netId, 0x7242F8B741CE1086, "i")end - NETWORK_REQUEST_CONTROL_OF_ENTITY=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0xB69317BF5E782347, "i")end - NETWORK_REQUEST_CONTROL_OF_DOOR=--[[BOOL (bool)]] function(--[[int]] doorID)return native_invoker.unified_bool(doorID, 0x870DDFD5A4A796E4, "i")end - NETWORK_HAS_CONTROL_OF_ENTITY=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x01BF60A500E28887, "i")end - NETWORK_HAS_CONTROL_OF_PICKUP=--[[BOOL (bool)]] function(--[[Pickup (int)]] pickup)return native_invoker.unified_bool(pickup, 0x5BC9495F0B3B6FA6, "i")end - NETWORK_HAS_CONTROL_OF_DOOR=--[[BOOL (bool)]] function(--[[Hash (int)]] doorHash)return native_invoker.unified_bool(doorHash, 0xCB3C68ADB06195DF, "i")end - NETWORK_IS_DOOR_NETWORKED=--[[BOOL (bool)]] function(--[[Hash (int)]] doorHash)return native_invoker.unified_bool(doorHash, 0xC01E93FAC20C3346, "i")end - -- calls from vehicle to net. - -- - VEH_TO_NET=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0xB4C94523F023419C, "i")end - -- gets the network id of a ped - PED_TO_NET=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x0EDEC3C276198689, "i")end - -- Lets objects spawn online simply do it like this: - -- - -- int createdObject = OBJ_TO_NET(CREATE_OBJECT_NO_OFFSET(oball, pCoords.x, pCoords.y, pCoords.z, 1, 0, 0)); - OBJ_TO_NET=--[[int]] function(--[[Object (int)]] object)return native_invoker.unified_int(object, 0x99BFDC94A603E541, "i")end - NET_TO_VEH=--[[Vehicle (int)]] function(--[[int]] netHandle)return native_invoker.unified_int(netHandle, 0x367B936610BA360C, "i")end - -- gets the ped id of a network id - NET_TO_PED=--[[Ped (int)]] function(--[[int]] netHandle)return native_invoker.unified_int(netHandle, 0xBDCD95FC216A8B3E, "i")end - -- gets the object id of a network id - NET_TO_OBJ=--[[Object (int)]] function(--[[int]] netHandle)return native_invoker.unified_int(netHandle, 0xD8515F5FEA14CB3F, "i")end - -- gets the entity id of a network id - NET_TO_ENT=--[[Entity (int)]] function(--[[int]] netHandle)return native_invoker.unified_int(netHandle, 0xBFFEAB45A9A9094A, "i")end - NETWORK_GET_LOCAL_HANDLE=--[[void]] function(--[[Any* (pointer)]] gamerHandle,--[[int]] gamerHandleSize)return native_invoker.unified_void(gamerHandle, gamerHandleSize, 0xE86051786B66CD8E, "pi")end - NETWORK_HANDLE_FROM_USER_ID=--[[void]] function(--[[string]] userId,--[[Any* (pointer)]] gamerHandle,--[[int]] gamerHandleSize)return native_invoker.unified_void(userId, gamerHandle, gamerHandleSize, 0xDCD51DD8F87AEC5C, "spi")end - NETWORK_HANDLE_FROM_MEMBER_ID=--[[void]] function(--[[string]] memberId,--[[Any* (pointer)]] gamerHandle,--[[int]] gamerHandleSize)return native_invoker.unified_void(memberId, gamerHandle, gamerHandleSize, 0xA0FD21BED61E5C4C, "spi")end - NETWORK_HANDLE_FROM_PLAYER=--[[void]] function(--[[Player (int)]] player,--[[Any* (pointer)]] gamerHandle,--[[int]] gamerHandleSize)return native_invoker.unified_void(player, gamerHandle, gamerHandleSize, 0x388EB2B86C73B6B3, "ipi")end - NETWORK_HASH_FROM_PLAYER_HANDLE=--[[Hash (int)]] function(--[[Player (int)]] player)return native_invoker.unified_int(player, 0xBC1D768F2F5D6C05, "i")end - NETWORK_HASH_FROM_GAMER_HANDLE=--[[Hash (int)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_int(gamerHandle, 0x58575AC3CF2CA8EC, "p")end - NETWORK_HANDLE_FROM_FRIEND=--[[void]] function(--[[int]] friendIndex,--[[Any* (pointer)]] gamerHandle,--[[int]] gamerHandleSize)return native_invoker.unified_void(friendIndex, gamerHandle, gamerHandleSize, 0xD45CB817D7E177D2, "ipi")end - NETWORK_GAMERTAG_FROM_HANDLE_START=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0x9F0C0A981D73FA56, "p")end - NETWORK_GAMERTAG_FROM_HANDLE_PENDING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xB071E27958EF4CF0, "")end - NETWORK_GAMERTAG_FROM_HANDLE_SUCCEEDED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xFD00798DBA7523DD, "")end - NETWORK_GET_GAMERTAG_FROM_HANDLE=--[[string]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_string(gamerHandle, 0x426141162EBE5CDB, "p")end - -- Hardcoded to return -1. - NETWORK_DISPLAYNAMES_FROM_HANDLES_START=--[[int]] function(--[[Any* (pointer)]] p0,--[[Any (int)]] p1)return native_invoker.unified_int(p0, p1, 0xD66C9E72B3CC4982, "pi")end - -- This function is hard-coded to always return 0. - NETWORK_GET_DISPLAYNAMES_FROM_HANDLES=--[[int]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_int(p0, p1, p2, 0x58CC181719256197, "iii")end - NETWORK_ARE_HANDLES_THE_SAME=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle1,--[[Any* (pointer)]] gamerHandle2)return native_invoker.unified_bool(gamerHandle1, gamerHandle2, 0x57DBA049E110F217, "pp")end - NETWORK_IS_HANDLE_VALID=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle,--[[int]] gamerHandleSize)return native_invoker.unified_bool(gamerHandle, gamerHandleSize, 0x6F79B93B0A8E4133, "pi")end - NETWORK_GET_PLAYER_FROM_GAMER_HANDLE=--[[Player (int)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_int(gamerHandle, 0xCE5F689CF5A0A49D, "p")end - NETWORK_MEMBER_ID_FROM_GAMER_HANDLE=--[[string]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_string(gamerHandle, 0xC82630132081BB6F, "p")end - NETWORK_IS_GAMER_IN_MY_SESSION=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0x0F10B05DDF8D16E9, "p")end - NETWORK_SHOW_PROFILE_UI=--[[void]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_void(gamerHandle, 0x859ED1CEA343FCA8, "p")end - -- Returns the name of a given player. Returns "**Invalid**" if rlGamerInfo of the given player cannot be retrieved or the player doesn't exist. - NETWORK_PLAYER_GET_NAME=--[[string]] function(--[[Player (int)]] player)return native_invoker.unified_string(player, 0x7718D2E2060837D2, "i")end - -- Returns a string of the player's Rockstar Id. - -- Takes a 24 char buffer. Returns the buffer or "**Invalid**" if rlGamerInfo of the given player cannot be retrieved or the player doesn't exist. - NETWORK_PLAYER_GET_USERID=--[[string]] function(--[[Player (int)]] player,--[[int* (pointer)]] userID)return native_invoker.unified_string(player, userID, 0x4927FC39CD0869A0, "ip")end - -- Checks if a specific value (BYTE) in CNetGamePlayer is nonzero. - -- Returns always false in Singleplayer. - -- - -- No longer used for dev checks since first mods were released on PS3 & 360. - -- R* now checks with the IS_DLC_PRESENT native for the dlc hash 2532323046, - -- if that is present it will unlock dev stuff. - NETWORK_PLAYER_IS_ROCKSTAR_DEV=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x544ABDDA3B409B6D, "i")end - NETWORK_PLAYER_INDEX_IS_CHEATER=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x565E430DB3B05BEC, "i")end - NETWORK_ENTITY_GET_OBJECT_ID=--[[int]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0x815F18AD865F057F, "i")end - -- I've had this return the player's ped handle sometimes, but also other random entities. - -- Whatever p0 is, it's at least not synced to other players. - -- At least not all the time, some p0 values actually output the same entity, (different handle of course, but same entity). - -- But another p0 value may return an entity for player x, but not for player y (it'll just return -1 even if the entity exists on both clients). - -- - -- Returns an entity handle or -1, value changes based on p0's value. - NETWORK_GET_ENTITY_FROM_OBJECT_ID=--[[Entity (int)]] function(--[[Any (int)]] p0)return native_invoker.unified_int(p0, 0x37D5F739FD494675, "i")end - NETWORK_IS_INACTIVE_PROFILE=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_bool(p0, 0x7E58745504313A2E, "p")end - NETWORK_GET_MAX_FRIENDS=--[[int]] function()return native_invoker.unified_int(0xAFEBB0D5D8F687D2, "")end - NETWORK_GET_FRIEND_COUNT=--[[int]] function()return native_invoker.unified_int(0x203F1CFD823B27A4, "")end - NETWORK_GET_FRIEND_NAME=--[[string]] function(--[[int]] friendIndex)return native_invoker.unified_string(friendIndex, 0xE11EBBB2A783FE8B, "i")end - NETWORK_GET_FRIEND_DISPLAY_NAME=--[[string]] function(--[[int]] friendIndex)return native_invoker.unified_string(friendIndex, 0x4164F227D052E293, "i")end - NETWORK_IS_FRIEND_ONLINE=--[[BOOL (bool)]] function(--[[string]] name)return native_invoker.unified_bool(name, 0x425A44533437B64D, "s")end - NETWORK_IS_FRIEND_HANDLE_ONLINE=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0x87EB7A3FFCB314DB, "p")end - -- In scripts R* calls 'NETWORK_GET_FRIEND_NAME' in this param. - NETWORK_IS_FRIEND_IN_SAME_TITLE=--[[BOOL (bool)]] function(--[[string]] friendName)return native_invoker.unified_bool(friendName, 0x2EA9A3BEDF3F17B8, "s")end - NETWORK_IS_FRIEND_IN_MULTIPLAYER=--[[BOOL (bool)]] function(--[[string]] friendName)return native_invoker.unified_bool(friendName, 0x57005C18827F3A28, "s")end - NETWORK_IS_FRIEND=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0x1A24A179F9B31654, "p")end - -- This function is hard-coded to always return 0. - NETWORK_IS_PENDING_FRIEND=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x0BE73DA6984A6E33, "i")end - NETWORK_IS_ADDING_FRIEND=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x6EA101606F6E4D81, "")end - NETWORK_ADD_FRIEND=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle,--[[string]] message)return native_invoker.unified_bool(gamerHandle, message, 0x8E02D73914064223, "ps")end - NETWORK_IS_FRIEND_INDEX_ONLINE=--[[BOOL (bool)]] function(--[[int]] friendIndex)return native_invoker.unified_bool(friendIndex, 0xBAD8F2A42B844821, "i")end - NETWORK_SET_PLAYER_IS_PASSIVE=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x1B857666604B1A74, "b")end - NETWORK_GET_PLAYER_OWNS_WAYPOINT=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x82377B65E943F72D, "i")end - NETWORK_CAN_SET_WAYPOINT=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC927EC229934AF60, "")end - NETWORK_IGNORE_REMOTE_WAYPOINTS=--[[void]] function()return native_invoker.unified_void(0x4C2A9FDC22377075, "")end - -- communicationType: 0 = VOICE; 1 = TEXT_CHAT; 2 = TEXT_MESSAGE; 3 = EMAIL; 4 = USER_CONTENT; 5 = USER_TEXT - _NETWORK_DOES_COMMUNICATION_GROUP_EXIST=--[[BOOL (bool)]] function(--[[int]] communicationType)return native_invoker.unified_bool(communicationType, 0xDBDF80673BBA3D65, "i")end - -- Returns communicationGroupFlag - -- communicationType: see 0xDBDF80673BBA3D65 - -- - -- enum eCommunicationGroupFlag - -- { - -- COMMUNICATION_GROUP_LOCAL_PLAYER = 1 << 0, - -- COMMUNICATION_GROUP_FRIENDS = 1 << 1, - -- COMMUNICATION_GROUP_SMALL_CREW = 1 << 2, - -- COMMUNICATION_GROUP_LARGE_CREW = 1 << 3, - -- COMMUNICATION_GROUP_RECENT_PLAYER = 1 << 4, - -- COMMUNICATION_GROUP_SAME_SESSION = 1 << 5, - -- COMMUNICATION_GROUP_SAME_TEAM = 1 << 6, - -- COMMUNICATION_GROUP_INVALID = 1 << 7, - -- }; - _NETWORK_GET_COMMUNICATION_GROUP_FLAGS=--[[int]] function(--[[int]] communicationType)return native_invoker.unified_int(communicationType, 0x40DF02F371F40883, "i")end - -- communicationType: see 0xDBDF80673BBA3D65 - -- communicationGroupFlag: see 0x40DF02F371F40883 - _NETWORK_SET_COMMUNICATION_GROUP_FLAGS=--[[void]] function(--[[int]] communicationType,--[[int]] communicationGroupFlag)return native_invoker.unified_void(communicationType, communicationGroupFlag, 0xE549F846DE7D32D5, "ii")end - NETWORK_IS_PLAYER_ON_BLOCKLIST=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0xAD4326FCA30D62F8, "p")end - NETWORK_SET_SCRIPT_AUTOMUTED=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0xB309EBEA797E001F, "i")end - NETWORK_HAS_AUTOMUTE_OVERRIDE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x26F07DD83A5F7F98, "")end - NETWORK_HAS_HEADSET=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xE870F9F1F7B4F1FA, "")end - NETWORK_SET_LOOK_AT_TALKERS=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x7D395EA61622E116, "b")end - NETWORK_IS_PUSH_TO_TALK_ACTIVE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC0D2AF00BCC234CA, "")end - NETWORK_GAMER_HAS_HEADSET=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0xF2FD55CB574BCC55, "p")end - NETWORK_IS_GAMER_TALKING=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0x71C33B22606CD88A, "p")end - NETWORK_PERMISSIONS_HAS_GAMER_RECORD=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0x559EBF901A8C68E0, "p")end - NETWORK_CAN_COMMUNICATE_WITH_GAMER=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0x8F5D1AD832AEB06C, "p")end - NETWORK_CAN_TEXT_CHAT_WITH_GAMER=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0xA150A4F065806B1F, "p")end - NETWORK_IS_GAMER_MUTED_BY_ME=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0xCE60DE011B6C7978, "p")end - NETWORK_AM_I_MUTED_BY_GAMER=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0xDF02A2C93F1F26DA, "p")end - NETWORK_IS_GAMER_BLOCKED_BY_ME=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0xE944C4F5AF1B5883, "p")end - NETWORK_AM_I_BLOCKED_BY_GAMER=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0x15337C7C268A27B2, "p")end - NETWORK_CAN_VIEW_GAMER_USER_CONTENT=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0xB57A49545BA53CE7, "p")end - NETWORK_HAS_VIEW_GAMER_USER_CONTENT_RESULT=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0xCCA4318E1AB03F1F, "p")end - NETWORK_CAN_PLAY_MULTIPLAYER_WITH_GAMER=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0x07DD29D5E22763F1, "p")end - NETWORK_CAN_GAMER_PLAY_MULTIPLAYER_WITH_ME=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0x135F9B7B7ADD2185, "p")end - NETWORK_CAN_SEND_LOCAL_INVITE=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0x021ABCBD98EC4320, "p")end - NETWORK_CAN_RECEIVE_LOCAL_INVITE=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0x421E34C55F125964, "p")end - -- returns true if someone is screaming or talking in a microphone - NETWORK_IS_PLAYER_TALKING=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x031E11F3D447647E, "i")end - NETWORK_PLAYER_HAS_HEADSET=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x3FB99A8B08D18FD6, "i")end - NETWORK_IS_PLAYER_MUTED_BY_ME=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x8C71288AE68EDE39, "i")end - NETWORK_AM_I_MUTED_BY_PLAYER=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x9D6981DFC91A8604, "i")end - NETWORK_IS_PLAYER_BLOCKED_BY_ME=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x57AF1F8E27483721, "i")end - NETWORK_AM_I_BLOCKED_BY_PLAYER=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x87F395D957D4353D, "i")end - NETWORK_GET_PLAYER_LOUDNESS=--[[float]] function(--[[Player (int)]] player)return native_invoker.unified_float(player, 0x21A1684A25C2867F, "i")end - NETWORK_SET_TALKER_PROXIMITY=--[[void]] function(--[[float]] value)return native_invoker.unified_void(value, 0xCBF12D65F95AD686, "f")end - NETWORK_GET_TALKER_PROXIMITY=--[[float]] function()return native_invoker.unified_float(0x84F0F13120B4E098, "")end - NETWORK_SET_VOICE_ACTIVE=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xBABEC9E69A91C57B, "b")end - NETWORK_REMAIN_IN_GAME_CHAT=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xCFEB46DCD7D8D5EB, "b")end - NETWORK_OVERRIDE_TRANSITION_CHAT=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xAF66059A131AA269, "b")end - NETWORK_SET_TEAM_ONLY_CHAT=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xD5B4883AC32F24C3, "b")end - NETWORK_SET_SCRIPT_CONTROLLING_TEAMS=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x265559DA40B3F327, "i")end - NETWORK_SET_SAME_TEAM_AS_LOCAL_PLAYER=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_bool(p0, p1, 0x4348BFDA56023A2F, "ii")end - NETWORK_OVERRIDE_TEAM_RESTRICTIONS=--[[void]] function(--[[int]] team,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(team, toggle, 0x6F697A66CE78674E, "ib")end - NETWORK_SET_OVERRIDE_SPECTATOR_MODE=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x70DA3BF8DACD3210, "b")end - NETWORK_SET_OVERRIDE_TUTORIAL_SESSION_CHAT=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x3C5C1E2C2FF814B1, "b")end - NETWORK_SET_PROXIMITY_AFFECTS_TEAM=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x9D7AFCBF21C51712, "b")end - NETWORK_SET_NO_SPECTATOR_CHAT=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xF46A1E03E8755980, "b")end - NETWORK_SET_IGNORE_SPECTATOR_CHAT_LIMITS_SAME_TEAM=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x6A5D89D7769A40D8, "b")end - -- Could possibly bypass being muted or automatically muted - NETWORK_OVERRIDE_CHAT_RESTRICTIONS=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0x3039AE5AD2C9C0C4, "ib")end - -- This is used alongside the native, - -- 'NETWORK_OVERRIDE_RECEIVE_RESTRICTIONS'. Read its description for more info. - NETWORK_OVERRIDE_SEND_RESTRICTIONS=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0x97DD4C5944CC2E6A, "ib")end - NETWORK_OVERRIDE_SEND_RESTRICTIONS_ALL=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x57B192B4D4AD23D5, "b")end - -- R* uses this to hear all player when spectating. - -- It allows you to hear other online players when their chat is on none, crew and or friends - NETWORK_OVERRIDE_RECEIVE_RESTRICTIONS=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0xDDF73E2B1FEC5AB4, "ib")end - -- p0 is always false in scripts. - NETWORK_OVERRIDE_RECEIVE_RESTRICTIONS_ALL=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x0FF2862B61A58AF9, "b")end - NETWORK_SET_VOICE_CHANNEL=--[[void]] function(--[[int]] channel)return native_invoker.unified_void(channel, 0xEF6212C2EFEF1A23, "i")end - NETWORK_CLEAR_VOICE_CHANNEL=--[[void]] function()return native_invoker.unified_void(0xE036A705F989E049, "")end - NETWORK_APPLY_VOICE_PROXIMITY_OVERRIDE=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(x, y, z, 0xDBD2056652689917, "fff")end - NETWORK_CLEAR_VOICE_PROXIMITY_OVERRIDE=--[[void]] function()return native_invoker.unified_void(0xF03755696450470C, "")end - NETWORK_ENABLE_VOICE_BANDWIDTH_RESTRICTION=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0x5E3AA4CA2B6FB0EE, "i")end - NETWORK_DISABLE_VOICE_BANDWIDTH_RESTRICTION=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0xCA575C391FEA25CC, "i")end - -- NETWORK_GET_M[A-U] - NETWORK_GET_MUTE_COUNT_FOR_PLAYER=--[[void]] function(--[[Player (int)]] p0,--[[float* (pointer)]] p1,--[[float* (pointer)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xADB57E5B663CCA8B, "ipp")end - NETWORK_SET_SPECTATOR_TO_NON_SPECTATOR_TEXT_CHAT=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x8EF52ACAECC51D9C, "b")end - -- Same as _IS_TEXT_CHAT_ACTIVE, except it does not check if the text chat HUD component is initialized, and therefore may crash. - NETWORK_TEXT_CHAT_IS_TYPING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x5FCF4D7069B09026, "")end - -- Starts a new singleplayer game (at the prologue). - SHUTDOWN_AND_LAUNCH_SINGLE_PLAYER_GAME=--[[void]] function()return native_invoker.unified_void(0x593850C16A36B692, "")end - -- In singleplayer this will re-load your game. - -- - -- In FiveM / GTA:Online this disconnects you from the session, and starts loading single player, however you still remain connected to the server (only if you're the host, if you're not then you also (most likely) get disconnected from the server) and other players will not be able to join until you exit the game. - -- - -- You might need to DoScreenFadeIn and ShutdownLoadingScreen otherwise you probably won't end up loading into SP at all. - -- - -- Somewhat related note: opening the pause menu after loading into this 'singleplayer' mode crashes the game. - SHUTDOWN_AND_LOAD_MOST_RECENT_SAVE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x9ECA15ADFE141431, "")end - NETWORK_SET_FRIENDLY_FIRE_OPTION=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xF808475FA571D823, "b")end - -- This native does absolutely nothing, just a nullsub - NETWORK_SET_RICH_PRESENCE=--[[void]] function(--[[int]] p0,--[[int]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x1DCCACDCFC569362, "iiii")end - -- This native does absolutely nothing, just a nullsub - NETWORK_SET_RICH_PRESENCE_STRING=--[[void]] function(--[[int]] p0,--[[string]] textLabel)return native_invoker.unified_void(p0, textLabel, 0x3E200C2BCF4164EB, "is")end - NETWORK_GET_TIMEOUT_TIME=--[[int]] function()return native_invoker.unified_int(0x5ED0356A0CE3A34F, "")end - -- p4 and p5 are always 0 in scripts - NETWORK_LEAVE_PED_BEHIND_BEFORE_WARP=--[[void]] function(--[[Player (int)]] player,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] p4,--[[BOOL (bool)]] p5)return native_invoker.unified_void(player, x, y, z, p4, p5, 0x9769F811D1785B03, "ifffbb")end - NETWORK_LEAVE_PED_BEHIND_BEFORE_CUTSCENE=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] p1)return native_invoker.unified_void(player, p1, 0xBF22E0F32968E967, "ib")end - -- entity must be a valid entity; ped can be NULL - REMOVE_ALL_STICKY_BOMBS_FROM_ENTITY=--[[void]] function(--[[Entity (int)]] entity,--[[Ped (int)]] ped)return native_invoker.unified_void(entity, ped, 0x715135F4B82AC90D, "ii")end - NETWORK_KEEP_ENTITY_COLLISION_DISABLED_AFTER_ANIM_SCENE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x17C9E241111A674D, "ii")end - NETWORK_IS_ANY_PLAYER_NEAR=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5,--[[Any (int)]] p6)return native_invoker.unified_bool(p0, p1, p2, p3, p4, p5, p6, 0x2E4C123D1C8A710E, "iiiiiii")end - NETWORK_CLAN_SERVICE_IS_VALID=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x579CCED0265D4896, "")end - NETWORK_CLAN_PLAYER_IS_ACTIVE=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0xB124B57F571D8F18, "p")end - -- bufferSize is 35 in the scripts. - -- - -- bufferSize is the elementCount of p0(desc), sizeof(p0) == 280 == p1*8 == 35 * 8, p2(netHandle) is obtained from NETWORK::NETWORK_HANDLE_FROM_PLAYER. And no, I can't explain why 35 * sizeof(int) == 280 and not 140, but I'll get back to you on that. - -- - -- the answer is: because p0 an int64_t* / int64_t[35]. and FYI p2 is an int64_t[13] - -- - -- https://pastebin.com/cSZniHak - NETWORK_CLAN_PLAYER_GET_DESC=--[[BOOL (bool)]] function(--[[Any* (pointer)]] clanDesc,--[[int]] bufferSize,--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(clanDesc, bufferSize, gamerHandle, 0xEEE6EACBE8874FBA, "pip")end - -- bufferSize is 35 in the scripts. - NETWORK_CLAN_IS_ROCKSTAR_CLAN=--[[BOOL (bool)]] function(--[[Any* (pointer)]] clanDesc,--[[int]] bufferSize)return native_invoker.unified_bool(clanDesc, bufferSize, 0x7543BB439F63792B, "pi")end - -- bufferSize is 35 in the scripts. - NETWORK_CLAN_GET_UI_FORMATTED_TAG=--[[void]] function(--[[Any* (pointer)]] clanDesc,--[[int]] bufferSize,--[[char* (pointer)]] formattedTag)return native_invoker.unified_void(clanDesc, bufferSize, formattedTag, 0xF45352426FF3A4F0, "pip")end - NETWORK_CLAN_GET_LOCAL_MEMBERSHIPS_COUNT=--[[int]] function()return native_invoker.unified_int(0x1F471B79ACC90BEF, "")end - NETWORK_CLAN_GET_MEMBERSHIP_DESC=--[[BOOL (bool)]] function(--[[Any* (pointer)]] memberDesc,--[[int]] p1)return native_invoker.unified_bool(memberDesc, p1, 0x48DE78AF2C8885B8, "pi")end - NETWORK_CLAN_DOWNLOAD_MEMBERSHIP=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0xA989044E70010ABE, "p")end - NETWORK_CLAN_DOWNLOAD_MEMBERSHIP_PENDING=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_bool(p0, 0x5B9E023DC6EBEDC0, "p")end - NETWORK_CLAN_ANY_DOWNLOAD_MEMBERSHIP_PENDING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xB3F64A6A91432477, "")end - NETWORK_CLAN_REMOTE_MEMBERSHIPS_ARE_IN_CACHE=--[[BOOL (bool)]] function(--[[int* (pointer)]] p0)return native_invoker.unified_bool(p0, 0xBB6E6FEE99D866B2, "p")end - NETWORK_CLAN_GET_MEMBERSHIP_COUNT=--[[int]] function(--[[int* (pointer)]] p0)return native_invoker.unified_int(p0, 0xAAB11F6C4ADBC2C1, "p")end - NETWORK_CLAN_GET_MEMBERSHIP_VALID=--[[BOOL (bool)]] function(--[[int* (pointer)]] p0,--[[Any (int)]] p1)return native_invoker.unified_bool(p0, p1, 0x48A59CF88D43DF0E, "pi")end - NETWORK_CLAN_GET_MEMBERSHIP=--[[BOOL (bool)]] function(--[[int* (pointer)]] p0,--[[Any* (pointer)]] clanMembership,--[[int]] p2)return native_invoker.unified_bool(p0, clanMembership, p2, 0xC8BC2011F67B3411, "ppi")end - NETWORK_CLAN_JOIN=--[[BOOL (bool)]] function(--[[int]] clanDesc)return native_invoker.unified_bool(clanDesc, 0x9FAAA4F4FC71F87F, "i")end - -- Only documented... - -- - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - NETWORK_CLAN_CREWINFO_GET_STRING_VALUE=--[[BOOL (bool)]] function(--[[string]] animDict,--[[string]] animName)return native_invoker.unified_bool(animDict, animName, 0x729E3401F0430686, "ss")end - NETWORK_CLAN_CREWINFO_GET_CREWRANKTITLE=--[[BOOL (bool)]] function(--[[int]] p0,--[[string]] p1)return native_invoker.unified_bool(p0, p1, 0x2B51EDBEFC301339, "is")end - NETWORK_CLAN_HAS_CREWINFO_METADATA_BEEN_RECEIVED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC32EA7A2F6CA7557, "")end - NETWORK_CLAN_GET_EMBLEM_TXD_NAME=--[[BOOL (bool)]] function(--[[Any* (pointer)]] netHandle,--[[char* (pointer)]] txdName)return native_invoker.unified_bool(netHandle, txdName, 0x5835D9CD92E83184, "pp")end - NETWORK_CLAN_REQUEST_EMBLEM=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x13518FF1C6B28938, "i")end - NETWORK_CLAN_IS_EMBLEM_READY=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any* (pointer)]] p1)return native_invoker.unified_bool(p0, p1, 0xA134777FF7F33331, "ip")end - NETWORK_CLAN_RELEASE_EMBLEM=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x113E6E3E50E286B0, "i")end - NETWORK_GET_PRIMARY_CLAN_DATA_CLEAR=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x9AA46BADAD0E27ED, "")end - NETWORK_GET_PRIMARY_CLAN_DATA_CANCEL=--[[void]] function()return native_invoker.unified_void(0x042E4B70B93E6054, "")end - NETWORK_GET_PRIMARY_CLAN_DATA_START=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[Any (int)]] p1)return native_invoker.unified_bool(p0, p1, 0xCE86D8191B762107, "pi")end - NETWORK_GET_PRIMARY_CLAN_DATA_PENDING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xB5074DB804E28CE7, "")end - NETWORK_GET_PRIMARY_CLAN_DATA_SUCCESS=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x5B4F04F19376A0BA, "")end - NETWORK_GET_PRIMARY_CLAN_DATA_NEW=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[Any* (pointer)]] p1)return native_invoker.unified_bool(p0, p1, 0xC080FF658B2E41DA, "pp")end - -- Whether or not another player is allowed to take control of the entity - SET_NETWORK_ID_CAN_MIGRATE=--[[void]] function(--[[int]] netId,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(netId, toggle, 0x299EEB23175895FC, "ib")end - SET_NETWORK_ID_EXISTS_ON_ALL_MACHINES=--[[void]] function(--[[int]] netId,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(netId, toggle, 0xE05E81A888FA63C8, "ib")end - SET_NETWORK_ID_ALWAYS_EXISTS_FOR_PLAYER=--[[void]] function(--[[int]] netId,--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(netId, player, toggle, 0xA8A024587329F36A, "iib")end - -- "No Reassign" in CPhysicalScriptGameStateDataNode - SET_NETWORK_ID_CAN_BE_REASSIGNED=--[[void]] function(--[[int]] netId,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(netId, toggle, 0x9D724B400A7E8FFC, "ib")end - NETWORK_SET_ENTITY_CAN_BLEND=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0xD830567D88A1E873, "ib")end - NETWORK_SET_OBJECT_CAN_BLEND_WHEN_FIXED=--[[void]] function(--[[Object (int)]] object,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(object, toggle, 0x0379DAF89BA09AA5, "ib")end - -- if set to true other network players can't see it - -- if set to false other network player can see it - -- ========================================= - -- ^^ I attempted this by grabbing an object with GET_ENTITY_PLAYER_IS_FREE_AIMING_AT and setting this naive no matter the toggle he could still see it. - -- - -- pc or last gen? - -- - -- ^^ last-gen - NETWORK_SET_ENTITY_ONLY_EXISTS_FOR_PARTICIPANTS=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0xF1CA12B18AEF5298, "ib")end - SET_NETWORK_ID_VISIBLE_IN_CUTSCENE=--[[void]] function(--[[int]] netId,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(netId, p1, p2, 0xA6928482543022B4, "ibb")end - SET_NETWORK_ID_VISIBLE_IN_CUTSCENE_HACK=--[[void]] function(--[[int]] netId,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(netId, p1, p2, 0x32EBD154CB6B8B99, "ibb")end - SET_NETWORK_ID_VISIBLE_IN_CUTSCENE_REMAIN_HACK=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x76B3F29D3F967692, "iii")end - SET_NETWORK_CUTSCENE_ENTITIES=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xAAA553E7DD28A457, "b")end - -- Getter for SET_NETWORK_CUTSCENE_ENTITIES. - ARE_CUTSCENE_ENTITIES_NETWORKED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x66D6A5E9C511214A, "")end - SET_NETWORK_ID_PASS_CONTROL_IN_TUTORIAL=--[[void]] function(--[[int]] netId,--[[BOOL (bool)]] state)return native_invoker.unified_void(netId, state, 0x3FA36981311FA4FF, "ib")end - IS_NETWORK_ID_OWNED_BY_PARTICIPANT=--[[BOOL (bool)]] function(--[[int]] netId)return native_invoker.unified_bool(netId, 0xA1607996431332DF, "i")end - SET_REMOTE_PLAYER_VISIBLE_IN_CUTSCENE=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] locallyVisible)return native_invoker.unified_void(player, locallyVisible, 0x96320E6549DAE7B4, "ib")end - SET_LOCAL_PLAYER_VISIBLE_IN_CUTSCENE=--[[void]] function(--[[BOOL (bool)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0xD1065D68947E7B6E, "bb")end - SET_LOCAL_PLAYER_INVISIBLE_LOCALLY=--[[void]] function(--[[BOOL (bool)]] bIncludePlayersVehicle)return native_invoker.unified_void(bIncludePlayersVehicle, 0xE5F773C1A1D9D168, "b")end - SET_LOCAL_PLAYER_VISIBLE_LOCALLY=--[[void]] function(--[[BOOL (bool)]] bIncludePlayersVehicle)return native_invoker.unified_void(bIncludePlayersVehicle, 0x7619364C82D3BF14, "b")end - SET_PLAYER_INVISIBLE_LOCALLY=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] bIncludePlayersVehicle)return native_invoker.unified_void(player, bIncludePlayersVehicle, 0x12B37D54667DB0B8, "ib")end - SET_PLAYER_VISIBLE_LOCALLY=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] bIncludePlayersVehicle)return native_invoker.unified_void(player, bIncludePlayersVehicle, 0xFAA10F1FAFB11AF2, "ib")end - -- Hardcoded to not work in SP. - FADE_OUT_LOCAL_PLAYER=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x416DBD4CD6ED8DD2, "b")end - -- normal - transition like when your coming out of LSC - -- slow - transition like when you walk into a mission - -- - NETWORK_FADE_OUT_ENTITY=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] normal,--[[BOOL (bool)]] slow)return native_invoker.unified_void(entity, normal, slow, 0xDE564951F95E09ED, "ibb")end - -- state - 0 does 5 fades - -- state - 1 does 6 fades - -- - -- p3: setting to 1 made vehicle fade in slower, probably "slow" as per NETWORK_FADE_OUT_ENTITY - NETWORK_FADE_IN_ENTITY=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] state,--[[Any (int)]] p2)return native_invoker.unified_void(entity, state, p2, 0x1F4ED342ACEFE62D, "ibi")end - NETWORK_IS_PLAYER_FADING=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x631DC5DFF4B110E3, "i")end - NETWORK_IS_ENTITY_FADING=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x422F32CC7E56ABAD, "i")end - IS_PLAYER_IN_CUTSCENE=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0xE73092F4157CD126, "i")end - SET_ENTITY_VISIBLE_IN_CUTSCENE=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xE0031D3C8F36AB82, "ibb")end - -- Makes the provided entity visible for yourself for the current frame. - SET_ENTITY_LOCALLY_INVISIBLE=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0xE135A9FF3F5D05D8, "i")end - SET_ENTITY_LOCALLY_VISIBLE=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0x241E289B5C059EDC, "i")end - IS_DAMAGE_TRACKER_ACTIVE_ON_NETWORK_ID=--[[BOOL (bool)]] function(--[[int]] netID)return native_invoker.unified_bool(netID, 0x6E192E33AD436366, "i")end - ACTIVATE_DAMAGE_TRACKER_ON_NETWORK_ID=--[[void]] function(--[[int]] netID,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(netID, toggle, 0xD45B1FFCCD52FF19, "ib")end - IS_DAMAGE_TRACKER_ACTIVE_ON_PLAYER=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0xB2092A1EAA7FD45F, "i")end - ACTIVATE_DAMAGE_TRACKER_ON_PLAYER=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0xBEC0816FF5ACBCDA, "ib")end - IS_SPHERE_VISIBLE_TO_ANOTHER_MACHINE=--[[BOOL (bool)]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3)return native_invoker.unified_bool(p0, p1, p2, p3, 0xD82CF8E64C8729D8, "ffff")end - IS_SPHERE_VISIBLE_TO_PLAYER=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4)return native_invoker.unified_bool(p0, p1, p2, p3, p4, 0xDC3A310219E5DA62, "iffff")end - RESERVE_NETWORK_MISSION_OBJECTS=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0x4E5C93BD0C32FBF8, "i")end - RESERVE_NETWORK_MISSION_PEDS=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0xB60FEBA45333D36F, "i")end - RESERVE_NETWORK_MISSION_VEHICLES=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0x76B02E21ED27A469, "i")end - RESERVE_LOCAL_NETWORK_MISSION_OBJECTS=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0x797F9C5E661D920E, "i")end - RESERVE_LOCAL_NETWORK_MISSION_PEDS=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0x2C8DF5D129595281, "i")end - RESERVE_LOCAL_NETWORK_MISSION_VEHICLES=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0x42613035157E4208, "i")end - CAN_REGISTER_MISSION_OBJECTS=--[[BOOL (bool)]] function(--[[int]] amount)return native_invoker.unified_bool(amount, 0x800DD4721A8B008B, "i")end - CAN_REGISTER_MISSION_PEDS=--[[BOOL (bool)]] function(--[[int]] amount)return native_invoker.unified_bool(amount, 0xBCBF4FEF9FA5D781, "i")end - CAN_REGISTER_MISSION_VEHICLES=--[[BOOL (bool)]] function(--[[int]] amount)return native_invoker.unified_bool(amount, 0x7277F1F2E085EE74, "i")end - CAN_REGISTER_MISSION_PICKUPS=--[[BOOL (bool)]] function(--[[int]] amount)return native_invoker.unified_bool(amount, 0x0A49D1CB6E34AF72, "i")end - CAN_REGISTER_MISSION_DOORS=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0xE16AA70CE9BEEDC3, "i")end - CAN_REGISTER_MISSION_ENTITIES=--[[BOOL (bool)]] function(--[[int]] ped_amt,--[[int]] vehicle_amt,--[[int]] object_amt,--[[int]] pickup_amt)return native_invoker.unified_bool(ped_amt, vehicle_amt, object_amt, pickup_amt, 0x69778E7564BADE6D, "iiii")end - -- p0 appears to be for MP - GET_NUM_RESERVED_MISSION_OBJECTS=--[[int]] function(--[[BOOL (bool)]] p0,--[[Any (int)]] p1)return native_invoker.unified_int(p0, p1, 0xAA81B5F10BC43AC2, "bi")end - -- p0 appears to be for MP - GET_NUM_RESERVED_MISSION_PEDS=--[[int]] function(--[[BOOL (bool)]] p0,--[[Any (int)]] p1)return native_invoker.unified_int(p0, p1, 0x1F13D5AE5CB17E17, "bi")end - -- p0 appears to be for MP - GET_NUM_RESERVED_MISSION_VEHICLES=--[[int]] function(--[[BOOL (bool)]] p0,--[[Any (int)]] p1)return native_invoker.unified_int(p0, p1, 0xCF3A965906452031, "bi")end - GET_NUM_CREATED_MISSION_OBJECTS=--[[int]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_int(p0, 0x12B6281B6C6706C0, "b")end - GET_NUM_CREATED_MISSION_PEDS=--[[int]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_int(p0, 0xCB215C4B56A7FAE7, "b")end - GET_NUM_CREATED_MISSION_VEHICLES=--[[int]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_int(p0, 0x0CD9AB83489430EA, "b")end - GET_RESERVED_MISSION_ENTITIES_IN_AREA=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[Any (int)]] p3,--[[Any* (pointer)]] out1,--[[Any* (pointer)]] out2,--[[Any* (pointer)]] out3)return native_invoker.unified_void(x, y, z, p3, out1, out2, out3, 0xE42D626EEC94E5D9, "fffippp")end - GET_MAX_NUM_NETWORK_OBJECTS=--[[int]] function()return native_invoker.unified_int(0xC7BE335216B5EC7C, "")end - GET_MAX_NUM_NETWORK_PEDS=--[[int]] function()return native_invoker.unified_int(0x0C1F7D49C39D2289, "")end - GET_MAX_NUM_NETWORK_VEHICLES=--[[int]] function()return native_invoker.unified_int(0x0AFCE529F69B21FF, "")end - GET_MAX_NUM_NETWORK_PICKUPS=--[[int]] function()return native_invoker.unified_int(0xA72835064DD63E4C, "")end - NETWORK_SET_OBJECT_SCOPE_DISTANCE=--[[void]] function(--[[Object (int)]] object,--[[float]] range)return native_invoker.unified_void(object, range, 0xBA7F0B77D80A4EB7, "if")end - NETWORK_ALLOW_CLONING_WHILE_IN_TUTORIAL=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x0F1A4B45B7693B95, "ii")end - -- A value between 1.0 and 5.0 - -- - -- _NETWORK_SET_TASK_CUTSCENE_PROXIMITY_SCALE? - NETWORK_SET_TASK_CUTSCENE_INSCOPE_MULTIPLER=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xC6FCEE21C6FCEE21, "i")end - GET_NETWORK_TIME=--[[int]] function()return native_invoker.unified_int(0x7A5487FE9FAA6B48, "")end - -- Returns the same value as GET_NETWORK_TIME in freemode, but as opposed to `GET_NETWORK_TIME` it always gets the most recent time, instead of once per tick. - -- Could be used for benchmarking since it can return times in ticks. - GET_NETWORK_TIME_ACCURATE=--[[int]] function()return native_invoker.unified_int(0x89023FBBF9200E9F, "")end - HAS_NETWORK_TIME_STARTED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x46718ACEEDEAFC84, "")end - -- Adds the first argument to the second. - GET_TIME_OFFSET=--[[int]] function(--[[int]] timeA,--[[int]] timeB)return native_invoker.unified_int(timeA, timeB, 0x017008CCDAD48503, "ii")end - -- Subtracts the second argument from the first, then returns whether the result is negative. - IS_TIME_LESS_THAN=--[[BOOL (bool)]] function(--[[int]] timeA,--[[int]] timeB)return native_invoker.unified_bool(timeA, timeB, 0xCB2CF5148012C8D0, "ii")end - -- Subtracts the first argument from the second, then returns whether the result is negative. - IS_TIME_MORE_THAN=--[[BOOL (bool)]] function(--[[int]] timeA,--[[int]] timeB)return native_invoker.unified_bool(timeA, timeB, 0xDE350F8651E4346C, "ii")end - -- Returns true if the two times are equal; otherwise returns false. - IS_TIME_EQUAL_TO=--[[BOOL (bool)]] function(--[[int]] timeA,--[[int]] timeB)return native_invoker.unified_bool(timeA, timeB, 0xF5BC95857BD6D512, "ii")end - -- Subtracts the second argument from the first. - GET_TIME_DIFFERENCE=--[[int]] function(--[[int]] timeA,--[[int]] timeB)return native_invoker.unified_int(timeA, timeB, 0xA2C6FC031D46FFF0, "ii")end - GET_TIME_AS_STRING=--[[string]] function(--[[int]] time)return native_invoker.unified_string(time, 0x9E23B1777A927DAD, "i")end - -- Same as GET_CLOUD_TIME_AS_INT but returns the value as a hex string (%I64X). - GET_CLOUD_TIME_AS_STRING=--[[string]] function()return native_invoker.unified_string(0xF12E6CD06C73D69E, "")end - -- Returns POSIX timestamp, an int representing the cloud time. - GET_CLOUD_TIME_AS_INT=--[[int]] function()return native_invoker.unified_int(0x9A73240B49945C76, "")end - -- Takes the specified time and writes it to the structure specified in the second argument. - -- - -- struct date_time - -- { - -- int year; - -- int PADDING1; - -- int month; - -- int PADDING2; - -- int day; - -- int PADDING3; - -- int hour; - -- int PADDING4; - -- int minute; - -- int PADDING5; - -- int second; - -- int PADDING6; - -- }; - CONVERT_POSIX_TIME=--[[void]] function(--[[int]] posixTime,--[[Any* (pointer)]] timeStructure)return native_invoker.unified_void(posixTime, timeStructure, 0xAC97AF97FA68E5D5, "ip")end - NETWORK_SET_IN_SPECTATOR_MODE=--[[void]] function(--[[BOOL (bool)]] toggle,--[[Ped (int)]] playerPed)return native_invoker.unified_void(toggle, playerPed, 0x423DE3854BB50894, "bi")end - NETWORK_SET_IN_SPECTATOR_MODE_EXTENDED=--[[void]] function(--[[BOOL (bool)]] toggle,--[[Ped (int)]] playerPed,--[[BOOL (bool)]] p2)return native_invoker.unified_void(toggle, playerPed, p2, 0x419594E137637120, "bib")end - NETWORK_SET_IN_FREE_CAM_MODE=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xFC18DB55AE19E046, "b")end - NETWORK_SET_ANTAGONISTIC_TO_PLAYER=--[[void]] function(--[[BOOL (bool)]] toggle,--[[Player (int)]] player)return native_invoker.unified_void(toggle, player, 0x5C707A667DF8B9FA, "bi")end - NETWORK_IS_IN_SPECTATOR_MODE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x048746E388762E11, "")end - NETWORK_SET_IN_MP_CUTSCENE=--[[void]] function(--[[BOOL (bool)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0x9CA5DE655269FEC4, "bb")end - NETWORK_IS_IN_MP_CUTSCENE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x6CC27C9FA2040220, "")end - NETWORK_IS_PLAYER_IN_MP_CUTSCENE=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x63F9EE203C3619F2, "i")end - NETWORK_HIDE_PROJECTILE_IN_CUTSCENE=--[[void]] function()return native_invoker.unified_void(0xFAC18E7356BD3210, "")end - SET_NETWORK_VEHICLE_RESPOT_TIMER=--[[void]] function(--[[int]] netId,--[[int]] time,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(netId, time, p2, p3, 0xEC51713AB6EC36E8, "iiii")end - IS_NETWORK_VEHICLE_RUNNING_RESPOT_TIMER=--[[BOOL (bool)]] function(--[[int]] networkID)return native_invoker.unified_bool(networkID, 0xDD7CEF5B3A4DA8A6, "i")end - SET_NETWORK_VEHICLE_AS_GHOST=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x6274C4712850841E, "ib")end - -- rage::netBlenderLinInterp::GetPositionMaxForUpdateLevel - SET_NETWORK_VEHICLE_MAX_POSITION_DELTA_MULTIPLIER=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] multiplier)return native_invoker.unified_void(vehicle, multiplier, 0xA2A707979FE754DC, "if")end - -- Enables a periodic ShapeTest within the NetBlender and invokes rage::netBlenderLinInterp::GoStraightToTarget (or some functional wrapper). - SET_NETWORK_ENABLE_HIGH_SPEED_EDGE_FALL_DETECTION=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x838DA0936A24ED4D, "ib")end - SET_LOCAL_PLAYER_AS_GHOST=--[[void]] function(--[[BOOL (bool)]] toggle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(toggle, p1, 0x5FFE9B4144F9712F, "bb")end - IS_ENTITY_A_GHOST=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x21D04D7BC538C146, "i")end - SET_NON_PARTICIPANTS_OF_THIS_SCRIPT_AS_GHOSTS=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x13F1FCB111B820B0, "b")end - -- Enables ghosting between specific players - SET_REMOTE_PLAYER_AS_GHOST=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] p1)return native_invoker.unified_void(player, p1, 0xA7C511FA1C5BDA38, "ib")end - -- Must be a value between 1 and 254 - SET_GHOST_ALPHA=--[[void]] function(--[[int]] alpha)return native_invoker.unified_void(alpha, 0x658500AE6D723A7E, "i")end - -- Resets the entity ghost alpha to the default value (128) - RESET_GHOST_ALPHA=--[[void]] function()return native_invoker.unified_void(0x17330EBF2F2124A8, "")end - SET_ENTITY_GHOSTED_FOR_GHOST_PLAYERS=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0x4BA166079D658ED4, "ib")end - SET_INVERT_GHOSTING=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xD7B6C73CAD419BCF, "b")end - IS_ENTITY_IN_GHOST_COLLISION=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x7EF7649B64D7FF10, "i")end - USE_PLAYER_COLOUR_INSTEAD_OF_TEAM_COLOUR=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x77758139EC9B66C7, "b")end - NETWORK_CREATE_SYNCHRONISED_SCENE=--[[int]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] xRot,--[[float]] yRot,--[[float]] zRot,--[[int]] rotationOrder,--[[BOOL (bool)]] useOcclusionPortal,--[[BOOL (bool)]] looped,--[[float]] p9,--[[float]] animTime,--[[float]] p11)return native_invoker.unified_int(x, y, z, xRot, yRot, zRot, rotationOrder, useOcclusionPortal, looped, p9, animTime, p11, 0x7CD6BC4C2BBDD526, "ffffffibbfff")end - NETWORK_ADD_PED_TO_SYNCHRONISED_SCENE=--[[void]] function(--[[Ped (int)]] ped,--[[int]] netScene,--[[string]] animDict,--[[string]] animnName,--[[float]] speed,--[[float]] speedMultiplier,--[[int]] duration,--[[int]] flag,--[[float]] playbackRate,--[[Any (int)]] p9)return native_invoker.unified_void(ped, netScene, animDict, animnName, speed, speedMultiplier, duration, flag, playbackRate, p9, 0x742A637471BCECD9, "iissffiifi")end - NETWORK_ADD_PED_TO_SYNCHRONISED_SCENE_WITH_IK=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5,--[[Any (int)]] p6,--[[Any (int)]] p7,--[[Any (int)]] p8,--[[Any (int)]] p9)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, 0xA5EAFE473E45C442, "iiiiiiiiii")end - NETWORK_ADD_ENTITY_TO_SYNCHRONISED_SCENE=--[[void]] function(--[[Entity (int)]] entity,--[[int]] netScene,--[[string]] animDict,--[[string]] animName,--[[float]] speed,--[[float]] speedMulitiplier,--[[int]] flag)return native_invoker.unified_void(entity, netScene, animDict, animName, speed, speedMulitiplier, flag, 0xF2404D68CBC855FA, "iissffi")end - -- Similar structure as NETWORK_ADD_ENTITY_TO_SYNCHRONISED_SCENE but it includes this time a hash. - -- In casino_slots it is used one time in a synced scene involving a ped and the slot machine? - NETWORK_ADD_MAP_ENTITY_TO_SYNCHRONISED_SCENE=--[[void]] function(--[[int]] netScene,--[[Hash (int)]] modelHash,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] p5,--[[string]] p6,--[[float]] p7,--[[float]] p8,--[[int]] flags)return native_invoker.unified_void(netScene, modelHash, x, y, z, p5, p6, p7, p8, flags, 0x45F35C0EDC33B03B, "iiffffsffi")end - NETWORK_ADD_SYNCHRONISED_SCENE_CAMERA=--[[void]] function(--[[int]] netScene,--[[string]] animDict,--[[string]] animName)return native_invoker.unified_void(netScene, animDict, animName, 0xCF8BD3B0BD6D42D7, "iss")end - NETWORK_ATTACH_SYNCHRONISED_SCENE_TO_ENTITY=--[[void]] function(--[[int]] netScene,--[[Entity (int)]] entity,--[[int]] bone)return native_invoker.unified_void(netScene, entity, bone, 0x478DCBD2A98B705A, "iii")end - NETWORK_START_SYNCHRONISED_SCENE=--[[void]] function(--[[int]] netScene)return native_invoker.unified_void(netScene, 0x9A1B3FCDB36C8697, "i")end - NETWORK_STOP_SYNCHRONISED_SCENE=--[[void]] function(--[[int]] netScene)return native_invoker.unified_void(netScene, 0xC254481A4574CB2F, "i")end - NETWORK_GET_LOCAL_SCENE_FROM_NETWORK_ID=--[[int]] function(--[[int]] netId)return native_invoker.unified_int(netId, 0x02C40BF885C567B6, "i")end - NETWORK_FORCE_LOCAL_USE_OF_SYNCED_SCENE_CAMERA=--[[void]] function(--[[int]] netScene)return native_invoker.unified_void(netScene, 0xC9B43A33D09CADA7, "i")end - NETWORK_ALLOW_REMOTE_SYNCED_SCENE_LOCAL_PLAYER_REQUESTS=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x144DA052257AE7D8, "i")end - -- p0 is always 0. p1 is pointing to a global. - NETWORK_FIND_LARGEST_BUNCH_OF_PLAYERS=--[[BOOL (bool)]] function(--[[int]] p0,--[[Any (int)]] p1)return native_invoker.unified_bool(p0, p1, 0xFB1F9381E80FA13F, "ii")end - -- One of the first things it does is get the players ped. - -- Then it calls a function that is used in some tasks and ped based functions. - -- p5, p6, p7 is another coordinate (or zero), often related to `GET_BLIP_COORDS, in the decompiled scripts. - NETWORK_START_RESPAWN_SEARCH_FOR_PLAYER=--[[BOOL (bool)]] function(--[[Player (int)]] player,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[float]] p5,--[[float]] p6,--[[float]] p7,--[[int]] flags)return native_invoker.unified_bool(player, x, y, z, radius, p5, p6, p7, flags, 0x5A6FFA2433E2F14C, "ifffffffi")end - -- p8, p9, p10 is another coordinate, or zero, often related to `GET_BLIP_COORDS in the decompiled scripts. - NETWORK_START_RESPAWN_SEARCH_IN_ANGLED_AREA_FOR_PLAYER=--[[BOOL (bool)]] function(--[[Player (int)]] player,--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] width,--[[float]] p8,--[[float]] p9,--[[float]] p10,--[[int]] flags)return native_invoker.unified_bool(player, x1, y1, z1, x2, y2, z2, width, p8, p9, p10, flags, 0x4BA92A18502BCA61, "iffffffffffi")end - NETWORK_QUERY_RESPAWN_RESULTS=--[[int]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_int(p0, 0x3C891A251567DFCE, "p")end - NETWORK_CANCEL_RESPAWN_SEARCH=--[[void]] function()return native_invoker.unified_void(0xFB8F2A6F3DF08CBE, "")end - -- Based on scripts such as in freemode.c how they call their vars vVar and fVar the 2nd and 3rd param it a Vector3 and Float, but the first is based on get_random_int_in_range.. - NETWORK_GET_RESPAWN_RESULT=--[[void]] function(--[[int]] randomInt,--[[Vector3* (pointer)]] coordinates,--[[float* (pointer)]] heading)return native_invoker.unified_void(randomInt, coordinates, heading, 0x371EA43692861CF1, "ipp")end - NETWORK_GET_RESPAWN_RESULT_FLAGS=--[[int]] function(--[[int]] p0)return native_invoker.unified_int(p0, 0x6C34F1208B8923FD, "i")end - NETWORK_START_SOLO_TUTORIAL_SESSION=--[[void]] function()return native_invoker.unified_void(0x17E0198B3882C2CB, "")end - -- teamId must be < 3, instanceId must be < 64 - NETWORK_ALLOW_GANG_TO_JOIN_TUTORIAL_SESSION=--[[void]] function(--[[int]] teamId,--[[int]] instanceId)return native_invoker.unified_void(teamId, instanceId, 0xFB680D403909DC70, "ii")end - NETWORK_END_TUTORIAL_SESSION=--[[void]] function()return native_invoker.unified_void(0xD0AFAFF5A51D72F7, "")end - NETWORK_IS_IN_TUTORIAL_SESSION=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xADA24309FE08DACF, "")end - NETWORK_WAITING_POP_CLEAR_TUTORIAL_SESSION=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xB37E4E6A2388CA7B, "")end - NETWORK_IS_TUTORIAL_SESSION_CHANGE_PENDING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x35F0B98A8387274D, "")end - NETWORK_GET_PLAYER_TUTORIAL_SESSION_INSTANCE=--[[int]] function(--[[Player (int)]] player)return native_invoker.unified_int(player, 0x3B39236746714134, "i")end - NETWORK_ARE_PLAYERS_IN_SAME_TUTORIAL_SESSION=--[[BOOL (bool)]] function(--[[Player (int)]] player,--[[int]] index)return native_invoker.unified_bool(player, index, 0x9DE986FC9A87C474, "ii")end - NETWORK_BLOCK_PROXY_MIGRATION_BETWEEN_TUTORIAL_SESSIONS=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xFEA7A352DDB34D52, "i")end - NETWORK_CONCEAL_PLAYER=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle,--[[BOOL (bool)]] p2)return native_invoker.unified_void(player, toggle, p2, 0xBBDF066252829606, "ibb")end - NETWORK_IS_PLAYER_CONCEALED=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x919B3C98ED8292F9, "i")end - NETWORK_CONCEAL_ENTITY=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0x1632BE0AC1E62876, "ib")end - -- Note: This only works for vehicles, which appears to be a bug (since the setter _does_ work for every entity type and the name is 99% correct). - NETWORK_IS_ENTITY_CONCEALED=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x71302EC70689052A, "i")end - -- Works in Singleplayer too. - -- Passing wrong data (e.g. hours above 23) will cause the game to crash. - NETWORK_OVERRIDE_CLOCK_TIME=--[[void]] function(--[[int]] hours,--[[int]] minutes,--[[int]] seconds)return native_invoker.unified_void(hours, minutes, seconds, 0xE679E3E06E363892, "iii")end - NETWORK_OVERRIDE_CLOCK_RATE=--[[void]] function(--[[int]] ms)return native_invoker.unified_void(ms, 0x42BF1D2E723B6D7E, "i")end - NETWORK_CLEAR_CLOCK_TIME_OVERRIDE=--[[void]] function()return native_invoker.unified_void(0xD972DF67326F966E, "")end - NETWORK_IS_CLOCK_TIME_OVERRIDDEN=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xD7C95D322FF57522, "")end - NETWORK_ADD_ENTITY_AREA=--[[int]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2)return native_invoker.unified_int(x1, y1, z1, x2, y2, z2, 0x494C8FB299290269, "ffffff")end - -- To remove, see: NETWORK_REMOVE_ENTITY_AREA - -- See IS_POINT_IN_ANGLED_AREA for the definition of an angled area. - NETWORK_ADD_ENTITY_ANGLED_AREA=--[[int]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] width)return native_invoker.unified_int(x1, y1, z1, x2, y2, z2, width, 0x376C6375BA60293A, "fffffff")end - NETWORK_ADD_CLIENT_ENTITY_AREA=--[[int]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2)return native_invoker.unified_int(x1, y1, z1, x2, y2, z2, 0x25B99872D588A101, "ffffff")end - NETWORK_ADD_CLIENT_ENTITY_ANGLED_AREA=--[[int]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] radius)return native_invoker.unified_int(x1, y1, z1, x2, y2, z2, radius, 0x2B1C623823DB0D9D, "fffffff")end - NETWORK_REMOVE_ENTITY_AREA=--[[BOOL (bool)]] function(--[[int]] areaHandle)return native_invoker.unified_bool(areaHandle, 0x93CF869BAA0C4874, "i")end - NETWORK_ENTITY_AREA_DOES_EXIST=--[[BOOL (bool)]] function(--[[int]] areaHandle)return native_invoker.unified_bool(areaHandle, 0xE64A3CA08DFA37A9, "i")end - NETWORK_ENTITY_AREA_HAVE_ALL_REPLIED=--[[BOOL (bool)]] function(--[[int]] areaHandle)return native_invoker.unified_bool(areaHandle, 0x4DF7CFFF471A7FB1, "i")end - NETWORK_ENTITY_AREA_IS_OCCUPIED=--[[BOOL (bool)]] function(--[[int]] areaHandle)return native_invoker.unified_bool(areaHandle, 0x4A2D4E8BF4265B0F, "i")end - NETWORK_USE_HIGH_PRECISION_BLENDING=--[[void]] function(--[[int]] netID,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(netID, toggle, 0x2B1813ABA29016C5, "ib")end - NETWORK_SET_CUSTOM_ARENA_BALL_PARAMS=--[[void]] function(--[[int]] netId)return native_invoker.unified_void(netId, 0xA6FCECCF4721D679, "i")end - NETWORK_ENTITY_USE_HIGH_PRECISION_ROTATION=--[[void]] function(--[[int]] netId,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(netId, toggle, 0x95BAF97C82464629, "ib")end - NETWORK_REQUEST_CLOUD_BACKGROUND_SCRIPTS=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x924426BFFD82E915, "")end - NETWORK_IS_CLOUD_BACKGROUND_SCRIPT_REQUEST_PENDING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x8132C0EB8B2B3293, "")end - NETWORK_REQUEST_CLOUD_TUNABLES=--[[void]] function()return native_invoker.unified_void(0x42FB3B532D526E6C, "")end - NETWORK_IS_TUNABLE_CLOUD_REQUEST_PENDING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x0467C11ED88B7D28, "")end - -- Actually returns the version (TUNABLE_VERSION) - NETWORK_GET_TUNABLE_CLOUD_CRC=--[[int]] function()return native_invoker.unified_int(0x10BD227A753B0D84, "")end - NETWORK_DOES_TUNABLE_EXIST=--[[BOOL (bool)]] function(--[[string]] tunableContext,--[[string]] tunableName)return native_invoker.unified_bool(tunableContext, tunableName, 0x85E5F8B9B898B20A, "ss")end - NETWORK_ACCESS_TUNABLE_INT=--[[BOOL (bool)]] function(--[[string]] tunableContext,--[[string]] tunableName,--[[int* (pointer)]] value)return native_invoker.unified_bool(tunableContext, tunableName, value, 0x8BE1146DFD5D4468, "ssp")end - NETWORK_ACCESS_TUNABLE_FLOAT=--[[BOOL (bool)]] function(--[[string]] tunableContext,--[[string]] tunableName,--[[float* (pointer)]] value)return native_invoker.unified_bool(tunableContext, tunableName, value, 0xE5608CA7BC163A5F, "ssp")end - NETWORK_ACCESS_TUNABLE_BOOL=--[[BOOL (bool)]] function(--[[string]] tunableContext,--[[string]] tunableName)return native_invoker.unified_bool(tunableContext, tunableName, 0xAA6A47A573ABB75A, "ss")end - NETWORK_DOES_TUNABLE_EXIST_HASH=--[[BOOL (bool)]] function(--[[Hash (int)]] tunableContext,--[[Hash (int)]] tunableName)return native_invoker.unified_bool(tunableContext, tunableName, 0xE4E53E1419D81127, "ii")end - NETWORK_ACCESS_TUNABLE_MODIFICATION_DETECTION_CLEAR=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xFAFC23AEE23868DB, "")end - NETWORK_ACCESS_TUNABLE_INT_HASH=--[[BOOL (bool)]] function(--[[Hash (int)]] tunableContext,--[[Hash (int)]] tunableName,--[[int* (pointer)]] value)return native_invoker.unified_bool(tunableContext, tunableName, value, 0x40FCE03E50E8DBE8, "iip")end - NETWORK_ACCESS_TUNABLE_INT_MODIFICATION_DETECTION_REGISTRATION_HASH=--[[BOOL (bool)]] function(--[[Hash (int)]] contextHash,--[[Hash (int)]] nameHash,--[[int* (pointer)]] value)return native_invoker.unified_bool(contextHash, nameHash, value, 0x3A8B55FDA4C8DDEF, "iip")end - NETWORK_ACCESS_TUNABLE_FLOAT_HASH=--[[BOOL (bool)]] function(--[[Hash (int)]] tunableContext,--[[Hash (int)]] tunableName,--[[float* (pointer)]] value)return native_invoker.unified_bool(tunableContext, tunableName, value, 0x972BC203BBC4C4D5, "iip")end - NETWORK_ACCESS_TUNABLE_FLOAT_MODIFICATION_DETECTION_REGISTRATION_HASH=--[[BOOL (bool)]] function(--[[Hash (int)]] contextHash,--[[Hash (int)]] nameHash,--[[float* (pointer)]] value)return native_invoker.unified_bool(contextHash, nameHash, value, 0x1950DAE9848A4739, "iip")end - NETWORK_ACCESS_TUNABLE_BOOL_HASH=--[[BOOL (bool)]] function(--[[Hash (int)]] tunableContext,--[[Hash (int)]] tunableName)return native_invoker.unified_bool(tunableContext, tunableName, 0xEA16B69D93D71A45, "ii")end - NETWORK_ACCESS_TUNABLE_BOOL_MODIFICATION_DETECTION_REGISTRATION_HASH=--[[BOOL (bool)]] function(--[[Hash (int)]] contextHash,--[[Hash (int)]] nameHash,--[[BOOL* (pointer)]] value)return native_invoker.unified_bool(contextHash, nameHash, value, 0x697F508861875B42, "iip")end - -- Returns defaultValue if the tunable doesn't exist. - NETWORK_TRY_ACCESS_TUNABLE_BOOL_HASH=--[[BOOL (bool)]] function(--[[Hash (int)]] tunableContext,--[[Hash (int)]] tunableName,--[[BOOL (bool)]] defaultValue)return native_invoker.unified_bool(tunableContext, tunableName, defaultValue, 0xC7420099936CE286, "iib")end - -- Return the content modifier id (the tunables context if you want) of a specific content. - -- - -- It takes the content hash (which is the mission id hash), and return the content modifier id, used as the tunables context. - -- - -- The mission id can be found on the Social club, for example, 'socialclub.rockstargames.com/games/gtav/jobs/job/A8M6Bz8MLEC5xngvDCzGwA' - -- - -- 'A8M6Bz8MLEC5xngvDCzGwA' is the mission id, so the game hash this and use it as the parameter for this native. - -- - NETWORK_GET_CONTENT_MODIFIER_LIST_ID=--[[int]] function(--[[Hash (int)]] contentHash)return native_invoker.unified_int(contentHash, 0x187382F8A3E0A6C3, "i")end - NETWORK_GET_BONE_ID_OF_FATAL_HIT=--[[int]] function()return native_invoker.unified_int(0x7DB53B37A2F211A0, "")end - NETWORK_RESET_BODY_TRACKER=--[[void]] function()return native_invoker.unified_void(0x72433699B4E6DD64, "")end - NETWORK_GET_NUMBER_BODY_TRACKER_HITS=--[[int]] function()return native_invoker.unified_int(0xD38C4A6D047C019D, "")end - NETWORK_HAS_BONE_BEEN_HIT_BY_KILLER=--[[BOOL (bool)]] function(--[[int]] boneIndex)return native_invoker.unified_bool(boneIndex, 0x2E0BF682CC778D49, "i")end - NETWORK_SET_ATTRIBUTE_DAMAGE_TO_PLAYER=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Player (int)]] player)return native_invoker.unified_bool(ped, player, 0x0EDE326D47CD0F3E, "ii")end - -- Allows vehicle wheels to be destructible even when the vehicle entity is invincible. - NETWORK_TRIGGER_DAMAGE_EVENT_FOR_ZERO_DAMAGE=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0x890E2C5ABED7236D, "ib")end - NETWORK_TRIGGER_DAMAGE_EVENT_FOR_ZERO_WEAPON_HASH=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0x38B7C51AB1EDC7D8, "ib")end - NETWORK_SET_NO_LONGER_NEEDED=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0x3FC795691834481D, "ib")end - -- In the console script dumps, this is only referenced once. - -- NETWORK::NETWORK_EXPLODE_VEHICLE(vehicle, 1, 0, 0); - -- - -- ^^^^^ That must be PC script dumps? In X360 Script Dumps it is reference a few times with 2 differences in the parameters. - -- Which as you see below is 1, 0, 0 + 1, 1, 0 + 1, 0, and a *param? - -- - -- am_plane_takedown.c - -- network_explode_vehicle(net_to_veh(Local_40.imm_2), 1, 1, 0); - -- - -- armenian2.c - -- network_explode_vehicle(Local_80[6 <2>], 1, 0, 0); - -- - -- fm_horde_controler.c - -- network_explode_vehicle(net_to_veh(*uParam0), 1, 0, *uParam0); - -- - -- fm_mission_controller.c, has 6 hits so not going to list them. - -- - -- Side note, setting the first parameter to 0 seems to mute sound or so? - -- - -- Seems it's like ADD_EXPLOSION, etc. the first 2 params. The 3rd atm no need to worry since it always seems to be 0. - -- - NETWORK_EXPLODE_VEHICLE=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] isAudible,--[[BOOL (bool)]] isInvisible,--[[int]] netId)return native_invoker.unified_bool(vehicle, isAudible, isInvisible, netId, 0x301A42153C9AD707, "ibbi")end - NETWORK_EXPLODE_HELI=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] isAudible,--[[BOOL (bool)]] isInvisible,--[[int]] netId)return native_invoker.unified_void(vehicle, isAudible, isInvisible, netId, 0x2A5E0621DD815A9A, "ibbi")end - NETWORK_USE_LOGARITHMIC_BLENDING_THIS_FRAME=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0xCD71A4ECAB22709E, "i")end - NETWORK_OVERRIDE_COORDS_AND_HEADING=--[[void]] function(--[[Entity (int)]] entity,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] heading)return native_invoker.unified_void(entity, x, y, z, heading, 0xA7E30DE9272B6D49, "iffff")end - NETWORK_ENABLE_EXTRA_VEHICLE_ORIENTATION_BLEND_CHECKS=--[[void]] function(--[[int]] netId,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(netId, toggle, 0xE6717E652B8C8D8A, "ib")end - NETWORK_DISABLE_PROXIMITY_MIGRATION=--[[void]] function(--[[int]] netID)return native_invoker.unified_void(netID, 0x407091CF6037118E, "i")end - -- value must be < 255 - NETWORK_SET_PROPERTY_ID=--[[void]] function(--[[int]] id)return native_invoker.unified_void(id, 0x1775961C2FBBCB5C, "i")end - NETWORK_CLEAR_PROPERTY_ID=--[[void]] function()return native_invoker.unified_void(0xC2B82527CA77053E, "")end - -- p0 in the decompiled scripts is always the stat mesh_texblend * 0.07 to int - NETWORK_SET_PLAYER_MENTAL_STATE=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0x367EF5E2F439B4C6, "i")end - NETWORK_SET_MINIMUM_RANK_FOR_MISSION=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x94538037EE44F5CF, "b")end - NETWORK_CACHE_LOCAL_PLAYER_HEAD_BLEND_DATA=--[[void]] function()return native_invoker.unified_void(0xBD0BE0BFC927EAC1, "")end - NETWORK_HAS_CACHED_PLAYER_HEAD_BLEND_DATA=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x237D5336A9A54108, "i")end - NETWORK_APPLY_CACHED_PLAYER_HEAD_BLEND_DATA=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Player (int)]] player)return native_invoker.unified_bool(ped, player, 0x99B72C7ABDE5C910, "ii")end - GET_NUM_COMMERCE_ITEMS=--[[int]] function()return native_invoker.unified_int(0xF2EAC213D5EA0623, "")end - IS_COMMERCE_DATA_VALID=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xEA14EEF5B7CD2C30, "")end - -- Does nothing (it's a nullsub). - TRIGGER_COMMERCE_DATA_FETCH=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xB606E6CC59664972, "i")end - IS_COMMERCE_DATA_FETCH_IN_PROGRESS=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x1D4DC17C38FEAFF0, "")end - GET_COMMERCE_ITEM_ID=--[[string]] function(--[[int]] index)return native_invoker.unified_string(index, 0x662635855957C411, "i")end - GET_COMMERCE_ITEM_NAME=--[[string]] function(--[[int]] index)return native_invoker.unified_string(index, 0xB4271092CA7EDF48, "i")end - GET_COMMERCE_PRODUCT_PRICE=--[[string]] function(--[[int]] index)return native_invoker.unified_string(index, 0xCA94551B50B4932C, "i")end - GET_COMMERCE_ITEM_NUM_CATS=--[[int]] function(--[[int]] index)return native_invoker.unified_int(index, 0x2A7776C709904AB0, "i")end - -- index2 is unused - GET_COMMERCE_ITEM_CAT=--[[string]] function(--[[int]] index,--[[int]] index2)return native_invoker.unified_string(index, index2, 0x6F44CBF56D79FAC0, "ii")end - OPEN_COMMERCE_STORE=--[[void]] function(--[[string]] p0,--[[string]] p1,--[[int]] p2)return native_invoker.unified_void(p0, p1, p2, 0x58C21165F6545892, "ssi")end - IS_COMMERCE_STORE_OPEN=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x2EAC52B4019E2782, "")end - -- Access to the store for shark cards etc... - SET_STORE_ENABLED=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x9641A9FF718E9C5E, "b")end - REQUEST_COMMERCE_ITEM_IMAGE=--[[BOOL (bool)]] function(--[[int]] index)return native_invoker.unified_bool(index, 0xA2F952104FC6DD4B, "i")end - RELEASE_ALL_COMMERCE_ITEM_IMAGES=--[[void]] function()return native_invoker.unified_void(0x72D0706CD6CCDB58, "")end - GET_COMMERCE_ITEM_TEXTURENAME=--[[string]] function(--[[int]] index)return native_invoker.unified_string(index, 0x722F5D28B61C5EA8, "i")end - IS_STORE_AVAILABLE_TO_USER=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x883D79C4071E18B3, "")end - DELAY_MP_STORE_OPEN=--[[void]] function()return native_invoker.unified_void(0x265635150FB0D82E, "")end - RESET_STORE_NETWORK_GAME_TRACKING=--[[void]] function()return native_invoker.unified_void(0x444C4525ECE0A4B9, "")end - IS_USER_OLD_ENOUGH_TO_ACCESS_STORE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x59328EB08C5CEB2B, "")end - SET_LAST_VIEWED_SHOP_ITEM=--[[void]] function(--[[Hash (int)]] p0,--[[int]] p1,--[[Hash (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xFAE628F1E9ADB239, "iii")end - -- Checks some commerce stuff - GET_USER_PREMIUM_ACCESS=--[[int]] function()return native_invoker.unified_int(0x754615490A029508, "")end - -- Checks some commerce stuff - GET_USER_STARTER_ACCESS=--[[int]] function()return native_invoker.unified_int(0x155467ACA0F55705, "")end - CLOUD_DELETE_MEMBER_FILE=--[[int]] function(--[[string]] p0)return native_invoker.unified_int(p0, 0xC64DED7EF0D2FE37, "s")end - CLOUD_HAS_REQUEST_COMPLETED=--[[BOOL (bool)]] function(--[[int]] requestId)return native_invoker.unified_bool(requestId, 0x4C61B39930D045DA, "i")end - CLOUD_DID_REQUEST_SUCCEED=--[[BOOL (bool)]] function(--[[int]] requestId)return native_invoker.unified_bool(requestId, 0x3A3D5568AF297CD5, "i")end - -- Downloads prod.cloud.rockstargames.com/titles/gta5/[platform]/check.json - CLOUD_CHECK_AVAILABILITY=--[[void]] function()return native_invoker.unified_void(0x4F18196C8D38768D, "")end - CLOUD_IS_CHECKING_AVAILABILITY=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC7ABAC5DE675EE3B, "")end - CLOUD_GET_AVAILABILITY_CHECK_RESULT=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x0B0CC10720653F3B, "")end - -- This function is hard-coded to always return 0. - GET_CONTENT_TO_LOAD_TYPE=--[[int]] function()return native_invoker.unified_int(0x8B0C2964BA471961, "")end - -- This function is hard-coded to always return 0. - GET_IS_LAUNCH_FROM_LIVE_AREA=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x88B588B41FF7868E, "")end - -- This function is hard-coded to always return 0. - GET_IS_LIVE_AREA_LAUNCH_WITH_CONTENT=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x67FC09BC554A75E5, "")end - -- This native does absolutely nothing, just a nullsub - CLEAR_SERVICE_EVENT_ARGUMENTS=--[[void]] function()return native_invoker.unified_void(0x966DD84FB6A46017, "")end - UGC_COPY_CONTENT=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[Any* (pointer)]] p1)return native_invoker.unified_bool(p0, p1, 0x152D90E4C1B4738A, "pp")end - UGC_IS_CREATING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x9FEDF86898F100E9, "")end - UGC_HAS_CREATE_FINISHED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x5E24341A7F92A74B, "")end - UGC_DID_CREATE_SUCCEED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x24E4E51FC16305F9, "")end - UGC_GET_CREATE_RESULT=--[[int]] function()return native_invoker.unified_int(0xFBC5E768C7A77A6A, "")end - UGC_GET_CREATE_CONTENT_ID=--[[string]] function()return native_invoker.unified_string(0xC55A0B40FFB1ED23, "")end - UGC_CLEAR_CREATE_RESULT=--[[void]] function()return native_invoker.unified_void(0x17440AA15D1D3739, "")end - UGC_QUERY_MY_CONTENT=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any* (pointer)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5)return native_invoker.unified_bool(p0, p1, p2, p3, p4, p5, 0x9BF438815F5D96EA, "iipiii")end - UGC_QUERY_BY_CATEGORY=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[string]] p3,--[[Any (int)]] p4,--[[BOOL (bool)]] p5)return native_invoker.unified_bool(p0, p1, p2, p3, p4, p5, 0x692D58DF40657E8C, "iiisib")end - UGC_QUERY_BY_CONTENT_ID=--[[BOOL (bool)]] function(--[[string]] contentId,--[[BOOL (bool)]] latestVersion,--[[string]] contentTypeName)return native_invoker.unified_bool(contentId, latestVersion, contentTypeName, 0x158EC424F35EC469, "sbs")end - UGC_QUERY_BY_CONTENT_IDS=--[[BOOL (bool)]] function(--[[Any* (pointer)]] data,--[[int]] count,--[[BOOL (bool)]] latestVersion,--[[string]] contentTypeName)return native_invoker.unified_bool(data, count, latestVersion, contentTypeName, 0xC7397A83F7A2A462, "pibs")end - UGC_QUERY_MOST_RECENTLY_CREATED_CONTENT=--[[BOOL (bool)]] function(--[[int]] offset,--[[int]] count,--[[string]] contentTypeName,--[[int]] p3)return native_invoker.unified_bool(offset, count, contentTypeName, p3, 0x6D4CB481FAC835E8, "iisi")end - UGC_GET_BOOKMARKED_CONTENT=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[string]] p2,--[[Any* (pointer)]] p3)return native_invoker.unified_bool(p0, p1, p2, p3, 0xD5A4B59980401588, "iisp")end - UGC_GET_MY_CONTENT=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[string]] p2,--[[Any* (pointer)]] p3)return native_invoker.unified_bool(p0, p1, p2, p3, 0x3195F8DD0D531052, "iisp")end - UGC_GET_FRIEND_CONTENT=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[string]] p2,--[[Any* (pointer)]] p3)return native_invoker.unified_bool(p0, p1, p2, p3, 0xF9E1CCAE8BA4C281, "iisp")end - UGC_GET_CREW_CONTENT=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[string]] p3,--[[Any* (pointer)]] p4)return native_invoker.unified_bool(p0, p1, p2, p3, p4, 0x9F6E2821885CAEE2, "iiisp")end - UGC_GET_GET_BY_CATEGORY=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[string]] p3,--[[Any* (pointer)]] p4)return native_invoker.unified_bool(p0, p1, p2, p3, p4, 0x678BB03C1A3BD51E, "iiisp")end - UGC_GET_GET_BY_CONTENT_ID=--[[BOOL (bool)]] function(--[[string]] contentId,--[[string]] contentTypeName)return native_invoker.unified_bool(contentId, contentTypeName, 0x815E5E3073DA1D67, "ss")end - UGC_GET_GET_BY_CONTENT_IDS=--[[BOOL (bool)]] function(--[[Any* (pointer)]] data,--[[int]] dataCount,--[[string]] contentTypeName)return native_invoker.unified_bool(data, dataCount, contentTypeName, 0xB8322EEB38BE7C26, "pis")end - UGC_GET_MOST_RECENTLY_CREATED_CONTENT=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any* (pointer)]] p2,--[[Any* (pointer)]] p3)return native_invoker.unified_bool(p0, p1, p2, p3, 0xA7862BC5ED1DFD7E, "iipp")end - UGC_GET_MOST_RECENTLY_PLAYED_CONTENT=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any* (pointer)]] p2,--[[Any* (pointer)]] p3)return native_invoker.unified_bool(p0, p1, p2, p3, 0x97A770BEEF227E2B, "iipp")end - UGC_GET_TOP_RATED_CONTENT=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any* (pointer)]] p2,--[[Any* (pointer)]] p3)return native_invoker.unified_bool(p0, p1, p2, p3, 0x5324A0E3E4CE3570, "iipp")end - UGC_CANCEL_QUERY=--[[void]] function()return native_invoker.unified_void(0xE9B99B6853181409, "")end - UGC_IS_GETTING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xD53ACDBEF24A46E8, "")end - UGC_HAS_GET_FINISHED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x02ADA21EA2F6918F, "")end - UGC_DID_GET_SUCCEED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x941E5306BCD7C2C7, "")end - UGC_WAS_QUERY_FORCE_CANCELLED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC87E740D9F3872CC, "")end - UGC_GET_QUERY_RESULT=--[[int]] function()return native_invoker.unified_int(0xEDF7F927136C224B, "")end - UGC_GET_CONTENT_NUM=--[[int]] function()return native_invoker.unified_int(0xE0A6138401BCB837, "")end - UGC_GET_CONTENT_TOTAL=--[[int]] function()return native_invoker.unified_int(0x769951E2455E2EB5, "")end - UGC_GET_CONTENT_HASH=--[[Hash (int)]] function()return native_invoker.unified_int(0x3A17A27D75C74887, "")end - UGC_CLEAR_QUERY_RESULTS=--[[void]] function()return native_invoker.unified_void(0xBA96394A0EECFA65, "")end - UGC_GET_CONTENT_USER_ID=--[[string]] function(--[[int]] p0)return native_invoker.unified_string(p0, 0xCD67AD041A394C9C, "i")end - UGC_GET_CONTENT_CREATOR_GAMER_HANDLE=--[[BOOL (bool)]] function(--[[int]] p0,--[[Any* (pointer)]] p1)return native_invoker.unified_bool(p0, p1, 0x584770794D758C18, "ip")end - UGC_GET_CONTENT_CREATED_BY_LOCAL_PLAYER=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x8C8D2739BA44AF0F, "i")end - UGC_GET_CONTENT_USER_NAME=--[[string]] function(--[[Any (int)]] p0)return native_invoker.unified_string(p0, 0x703F12425ECA8BF5, "i")end - UGC_GET_CONTENT_IS_USING_SC_NICKNAME=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0xAEAB987727C5A8A4, "i")end - UGC_GET_CONTENT_CATEGORY=--[[int]] function(--[[int]] p0)return native_invoker.unified_int(p0, 0xA7BAB11E7C9C6C5A, "i")end - -- Return the mission id of a job. - UGC_GET_CONTENT_ID=--[[string]] function(--[[int]] p0)return native_invoker.unified_string(p0, 0x55AA95F481D694D2, "i")end - -- Return the root content id of a job. - UGC_GET_ROOT_CONTENT_ID=--[[string]] function(--[[int]] p0)return native_invoker.unified_string(p0, 0xC0173D6BFF4E0348, "i")end - UGC_GET_CONTENT_NAME=--[[string]] function(--[[Any (int)]] p0)return native_invoker.unified_string(p0, 0xBF09786A7FCAB582, "i")end - UGC_GET_CONTENT_DESCRIPTION_HASH=--[[int]] function(--[[Any (int)]] p0)return native_invoker.unified_int(p0, 0x7CF0448787B23758, "i")end - UGC_GET_CONTENT_PATH=--[[string]] function(--[[int]] p0,--[[int]] p1)return native_invoker.unified_string(p0, p1, 0xBAF6BABF9E7CCC13, "ii")end - UGC_GET_CONTENT_UPDATED_DATE=--[[void]] function(--[[Any (int)]] p0,--[[Any* (pointer)]] p1)return native_invoker.unified_void(p0, p1, 0xCFD115B373C0DF63, "ip")end - UGC_GET_CONTENT_FILE_VERSION=--[[int]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_int(p0, p1, 0x37025B27D9B658B1, "ii")end - UGC_GET_CONTENT_HAS_LO_RES_PHOTO=--[[BOOL (bool)]] function(--[[int]] p0)return native_invoker.unified_bool(p0, 0x1D610EB0FEA716D9, "i")end - UGC_GET_CONTENT_HAS_HI_RES_PHOTO=--[[BOOL (bool)]] function(--[[int]] p0)return native_invoker.unified_bool(p0, 0x7FCC39C46C3C03BD, "i")end - UGC_GET_CONTENT_LANGUAGE=--[[int]] function(--[[Any (int)]] p0)return native_invoker.unified_int(p0, 0x32DD916F3F7C9672, "i")end - UGC_GET_CONTENT_IS_PUBLISHED=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x3054F114121C21EA, "i")end - UGC_GET_CONTENT_IS_VERIFIED=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0xA9240A96C74CCA13, "i")end - UGC_GET_CONTENT_RATING=--[[float]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_float(p0, p1, 0x1ACCFBA3D8DAB2EE, "ii")end - UGC_GET_CONTENT_RATING_COUNT=--[[int]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_int(p0, p1, 0x759299C5BB31D2A9, "ii")end - UGC_GET_CONTENT_RATING_POSITIVE_COUNT=--[[int]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_int(p0, p1, 0x87E5C46C187FE0AE, "ii")end - UGC_GET_CONTENT_RATING_NEGATIVE_COUNT=--[[int]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_int(p0, p1, 0x4E548C0D7AE39FF9, "ii")end - UGC_GET_CONTENT_HAS_PLAYER_RECORD=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x70EA8DA57840F9BE, "i")end - UGC_GET_CONTENT_HAS_PLAYER_BOOKMARKED=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x993CBE59D350D225, "i")end - UGC_REQUEST_CONTENT_DATA_FROM_INDEX=--[[int]] function(--[[int]] p0,--[[int]] p1)return native_invoker.unified_int(p0, p1, 0x171DF6A0C07FB3DC, "ii")end - UGC_REQUEST_CONTENT_DATA_FROM_PARAMS=--[[int]] function(--[[string]] contentTypeName,--[[string]] contentId,--[[int]] p2,--[[int]] p3,--[[int]] p4)return native_invoker.unified_int(contentTypeName, contentId, p2, p3, p4, 0x7FD2990AF016795E, "ssiii")end - UGC_REQUEST_CACHED_DESCRIPTION=--[[int]] function(--[[int]] p0)return native_invoker.unified_int(p0, 0x5E0165278F6339EE, "i")end - UGC_IS_DESCRIPTION_REQUEST_IN_PROGRESS=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x2D5DC831176D0114, "i")end - UGC_HAS_DESCRIPTION_REQUEST_FINISHED=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0xEBFA8D50ADDC54C4, "i")end - UGC_DID_DESCRIPTION_REQUEST_SUCCEED=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x162C23CA83ED0A62, "i")end - UGC_GET_CACHED_DESCRIPTION=--[[string]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_string(p0, p1, 0x40F7E66472DF3E5C, "ii")end - UGC_RELEASE_CACHED_DESCRIPTION=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x5A34CD9C3C5BEC44, "i")end - UGC_RELEASE_ALL_CACHED_DESCRIPTIONS=--[[void]] function()return native_invoker.unified_void(0x68103E2247887242, "")end - UGC_HAS_PERMISSION_TO_WRITE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC33E7CBC06EC1A8D, "")end - UGC_PUBLISH=--[[BOOL (bool)]] function(--[[string]] contentId,--[[string]] baseContentId,--[[string]] contentTypeName)return native_invoker.unified_bool(contentId, baseContentId, contentTypeName, 0x1DE0F5F50D723CAA, "sss")end - UGC_SET_BOOKMARKED=--[[BOOL (bool)]] function(--[[string]] contentId,--[[BOOL (bool)]] bookmarked,--[[string]] contentTypeName)return native_invoker.unified_bool(contentId, bookmarked, contentTypeName, 0x274A1519DFC1094F, "sbs")end - UGC_SET_DELETED=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[BOOL (bool)]] p1,--[[string]] p2)return native_invoker.unified_bool(p0, p1, p2, 0xD05D1A6C74DA3498, "pbs")end - UGC_IS_MODIFYING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x45E816772E93A9DB, "")end - UGC_HAS_MODIFY_FINISHED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x299EF3C576773506, "")end - UGC_DID_MODIFY_SUCCEED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x793FF272D5B365F4, "")end - UGC_GET_MODIFY_RESULT=--[[int]] function()return native_invoker.unified_int(0x5A0A3D1A186A5508, "")end - UGC_CLEAR_MODIFY_RESULT=--[[void]] function()return native_invoker.unified_void(0xA1E5E0204A6FCC70, "")end - UGC_GET_CREATORS_BY_USER_ID=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[Any* (pointer)]] p1)return native_invoker.unified_bool(p0, p1, 0xB746D20B17F2A229, "pp")end - UGC_HAS_QUERY_CREATORS_FINISHED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x63B406D7884BFA95, "")end - UGC_DID_QUERY_CREATORS_SUCCEED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x4D02279C83BE69FE, "")end - UGC_GET_CREATOR_NUM=--[[int]] function()return native_invoker.unified_int(0x597F8DBA9B206FC7, "")end - UGC_LOAD_OFFLINE_QUERY=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x5CAE833B0EE0C500, "i")end - UGC_CLEAR_OFFLINE_QUERY=--[[void]] function()return native_invoker.unified_void(0x61A885D3F7CFEE9A, "")end - UGC_SET_QUERY_DATA_FROM_OFFLINE=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xF98DDE0A8ED09323, "b")end - UGC_SET_USING_OFFLINE_CONTENT=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xFD75DABC0957BF33, "b")end - UGC_IS_LANGUAGE_SUPPORTED=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0xF53E48461B71EECB, "i")end - FACEBOOK_POST_COMPLETED_HEIST=--[[BOOL (bool)]] function(--[[string]] heistName,--[[int]] cashEarned,--[[int]] xpEarned)return native_invoker.unified_bool(heistName, cashEarned, xpEarned, 0x098AB65B9ED9A9EC, "sii")end - FACEBOOK_POST_CREATE_CHARACTER=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xDC48473142545431, "")end - FACEBOOK_POST_COMPLETED_MILESTONE=--[[BOOL (bool)]] function(--[[int]] milestoneId)return native_invoker.unified_bool(milestoneId, 0x0AE1F1653B554AB9, "i")end - FACEBOOK_HAS_POST_COMPLETED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x62B9FEC9A11F10EF, "")end - FACEBOOK_DID_POST_SUCCEED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xA75E2B6733DA5142, "")end - FACEBOOK_CAN_POST_TO_FACEBOOK=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x43865688AE10F0D7, "")end - TEXTURE_DOWNLOAD_REQUEST=--[[int]] function(--[[Any* (pointer)]] gamerHandle,--[[string]] filePath,--[[string]] name,--[[BOOL (bool)]] p3)return native_invoker.unified_int(gamerHandle, filePath, name, p3, 0x16160DA74A8E74A2, "pssb")end - TITLE_TEXTURE_DOWNLOAD_REQUEST=--[[int]] function(--[[string]] filePath,--[[string]] name,--[[BOOL (bool)]] p2)return native_invoker.unified_int(filePath, name, p2, 0x0B203B4AFDE53A4F, "ssb")end - UGC_TEXTURE_DOWNLOAD_REQUEST=--[[int]] function(--[[string]] p0,--[[int]] p1,--[[int]] p2,--[[int]] p3,--[[string]] p4,--[[BOOL (bool)]] p5)return native_invoker.unified_int(p0, p1, p2, p3, p4, p5, 0x308F96458B7087CC, "siiisb")end - TEXTURE_DOWNLOAD_RELEASE=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0x487EB90B98E9FB19, "i")end - TEXTURE_DOWNLOAD_HAS_FAILED=--[[BOOL (bool)]] function(--[[int]] p0)return native_invoker.unified_bool(p0, 0x5776ED562C134687, "i")end - TEXTURE_DOWNLOAD_GET_NAME=--[[string]] function(--[[int]] p0)return native_invoker.unified_string(p0, 0x3448505B6E35262D, "i")end - -- 0 = succeeded - -- 1 = pending - -- 2 = failed - GET_STATUS_OF_TEXTURE_DOWNLOAD=--[[int]] function(--[[int]] p0)return native_invoker.unified_int(p0, 0x8BD6C6DEA20E82C6, "i")end - -- Returns true if profile setting 901 is set to true and sets it to false. - NETWORK_CHECK_ROS_LINK_WENTDOWN_NOT_NET=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x60EDD13EB3AC1FF3, "")end - -- Returns true if the NAT type is Strict (3) and a certain number of connections have failed. - NETWORK_SHOULD_SHOW_STRICT_NAT_WARNING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x82A2B386716608F1, "")end - NETWORK_IS_CABLE_CONNECTED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xEFFB25453D8600F9, "")end - NETWORK_HAVE_SCS_PRIVATE_MSG_PRIV=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x66B59CFFD78467AF, "")end - NETWORK_HAVE_ROS_SOCIAL_CLUB_PRIV=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x606E4D3E3CCCF3EB, "")end - NETWORK_HAVE_ROS_BANNED_PRIV=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x8020A73847E0CA7D, "")end - NETWORK_HAVE_ROS_CREATE_TICKET_PRIV=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xA0AD7E2AF5349F61, "")end - NETWORK_HAVE_ROS_MULTIPLAYER_PRIV=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x5F91D5D0B36AA310, "")end - NETWORK_HAVE_ROS_LEADERBOARD_WRITE_PRIV=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x422D396F80A96547, "")end - -- index is always 18 in scripts - NETWORK_HAS_ROS_PRIVILEGE=--[[BOOL (bool)]] function(--[[int]] index)return native_invoker.unified_bool(index, 0xA699957E60D80214, "i")end - NETWORK_HAS_ROS_PRIVILEGE_END_DATE=--[[BOOL (bool)]] function(--[[int]] privilege,--[[int* (pointer)]] banType,--[[Any* (pointer)]] timeData)return native_invoker.unified_bool(privilege, banType, timeData, 0xC22912B1D85F26B1, "ipp")end - NETWORK_HAS_ROS_PRIVILEGE_PLAYED_LAST_GEN=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x593570C289A77688, "")end - NETWORK_HAS_ROS_PRIVILEGE_SPECIAL_EDITION_CONTENT=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x91B87C55093DE351, "")end - -- Checks for privilege 29 - _NETWORK_HAS_ROS_PRIVILEGE_MP_TEXT_COMMUNICATION=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xD9719341663C385F, "")end - -- Checks for privilege 30 - _NETWORK_HAS_ROS_PRIVILEGE_MP_VOICE_COMMUNICATION=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x8956A309BE90057C, "")end - NETWORK_START_COMMUNICATION_PERMISSIONS_CHECK=--[[int]] function(--[[Any (int)]] p0)return native_invoker.unified_int(p0, 0x36391F397731595D, "i")end - -- Always returns -1. Seems to be XB1 specific. - NETWORK_START_USER_CONTENT_PERMISSIONS_CHECK=--[[int]] function(--[[Any* (pointer)]] netHandle)return native_invoker.unified_int(netHandle, 0xDEB2B99A1AF1A2A6, "p")end - NETWORK_SKIP_RADIO_RESET_NEXT_CLOSE=--[[void]] function()return native_invoker.unified_void(0x9465E683B12D3F6B, "")end - NETWORK_SKIP_RADIO_RESET_NEXT_OPEN=--[[void]] function()return native_invoker.unified_void(0xCA59CCAE5D01E4CE, "")end - -- Returns true if dinput8.dll is present in the game directory. - -- You will get following error message if that is true: "You are attempting to access GTA Online servers with an altered version of the game." - NETWORK_SKIP_RADIO_WARNING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x659CF2EF7F550C4F, "")end - -- NETWORK_F[I-O] - NETWORK_FORCE_LOCAL_PLAYER_SCAR_SYNC=--[[void]] function()return native_invoker.unified_void(0xB7C7F6AD6424304B, "")end - NETWORK_DISABLE_LEAVE_REMOTE_PED_BEHIND=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xC505036A35AFD01B, "b")end - NETWORK_ALLOW_REMOTE_ATTACHMENT_MODIFICATION=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0x267C78C60E806B9A, "ib")end - -- Does nothing (it's a nullsub). - NETWORK_SHOW_CHAT_RESTRICTION_MSC=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0x6BFF5F84102DF80A, "i")end - -- This native does absolutely nothing, just a nullsub - NETWORK_SHOW_PSN_UGC_RESTRICTION=--[[void]] function()return native_invoker.unified_void(0x5C497525F803486B, "")end - -- This function is hard-coded to always return 0. - NETWORK_IS_TITLE_UPDATE_REQUIRED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x6FB7BB3607D27FA2, "")end - NETWORK_QUIT_MP_TO_DESKTOP=--[[void]] function()return native_invoker.unified_void(0x45A83257ED02D9BC, "")end - NETWORK_IS_CONNECTED_VIA_RELAY=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x16D3D49902F697BB, "i")end - NETWORK_GET_AVERAGE_LATENCY=--[[float]] function(--[[Player (int)]] player)return native_invoker.unified_float(player, 0xD414BE129BB81B32, "i")end - -- Same as NETWORK_GET_AVERAGE_LATENCY - NETWORK_GET_AVERAGE_PING=--[[float]] function(--[[Player (int)]] player)return native_invoker.unified_float(player, 0x0E3A041ED6AC2B45, "i")end - NETWORK_GET_AVERAGE_PACKET_LOSS=--[[float]] function(--[[Player (int)]] player)return native_invoker.unified_float(player, 0x350C23949E43686C, "i")end - NETWORK_GET_NUM_UNACKED_RELIABLES=--[[int]] function(--[[Player (int)]] player)return native_invoker.unified_int(player, 0xFF8FCF9FFC458A1C, "i")end - NETWORK_GET_UNRELIABLE_RESEND_COUNT=--[[int]] function(--[[Player (int)]] player)return native_invoker.unified_int(player, 0x3765C3A3E8192E10, "i")end - NETWORK_GET_HIGHEST_RELIABLE_RESEND_COUNT=--[[int]] function(--[[Player (int)]] player)return native_invoker.unified_int(player, 0x52C1EADAF7B10302, "i")end - NETWORK_REPORT_CODE_TAMPER=--[[void]] function()return native_invoker.unified_void(0x5626D9D6810730D5, "")end - NETWORK_GET_LAST_ENTITY_POS_RECEIVED_OVER_NETWORK=--[[Vector3 (vector3)]] function(--[[Entity (int)]] entity)return native_invoker.unified_vector3(entity, 0x64D779659BC37B19, "i")end - -- Returns the coordinates of another player. - -- Does not work if you enter your own player id as p0 (will return `(0.0, 0.0, 0.0)` in that case). - NETWORK_GET_LAST_PLAYER_POS_RECEIVED_OVER_NETWORK=--[[Vector3 (vector3)]] function(--[[Player (int)]] player)return native_invoker.unified_vector3(player, 0x125E6D638B8605D4, "i")end - -- Used by NetBlender - NETWORK_GET_LAST_VEL_RECEIVED_OVER_NETWORK=--[[Vector3 (vector3)]] function(--[[Entity (int)]] entity)return native_invoker.unified_vector3(entity, 0x33DE49EDF4DDE77A, "i")end - NETWORK_GET_PREDICTED_VELOCITY=--[[Vector3 (vector3)]] function(--[[Entity (int)]] entity,--[[float]] maxSpeedToPredict)return native_invoker.unified_vector3(entity, maxSpeedToPredict, 0xAA5FAFCD2C5F5E47, "if")end - -- Does nothing (it's a nullsub). - NETWORK_DUMP_NET_IF_CONFIG=--[[void]] function()return native_invoker.unified_void(0xAEDF1BC1C133D6E3, "")end - -- Does nothing (it's a nullsub). - NETWORK_GET_SIGNALLING_INFO=--[[void]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_void(p0, 0x2555CF7DA5473794, "p")end - -- Does nothing (it's a nullsub). - NETWORK_GET_NET_STATISTICS_INFO=--[[void]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_void(p0, 0x6FD992C4A1C1B986, "p")end - NETWORK_GET_PLAYER_ACCOUNT_ID=--[[int]] function(--[[Player (int)]] player)return native_invoker.unified_int(player, 0xDB663CC9FF3407A9, "i")end - NETWORK_UGC_NAV=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xC1447451DDB512F0, "ii")end --- OBJECT - -- List of object models that can be created without any additional effort like making sure ytyp is loaded etc: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ObjectList.ini - CREATE_OBJECT=--[[Object (int)]] function(--[[Hash (int)]] modelHash,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] isNetwork,--[[BOOL (bool)]] bScriptHostObj,--[[BOOL (bool)]] dynamic)return native_invoker.unified_int(modelHash, x, y, z, isNetwork, bScriptHostObj, dynamic, 0x509D5878EB39E842, "ifffbbb")end - -- List of object models that can be created without any additional effort like making sure ytyp is loaded etc: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ObjectList.ini - CREATE_OBJECT_NO_OFFSET=--[[Object (int)]] function(--[[Hash (int)]] modelHash,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] isNetwork,--[[BOOL (bool)]] bScriptHostObj,--[[BOOL (bool)]] dynamic)return native_invoker.unified_int(modelHash, x, y, z, isNetwork, bScriptHostObj, dynamic, 0x9A294B2138ABB884, "ifffbbb")end - -- Deletes the specified object, then sets the handle pointed to by the pointer to NULL. - DELETE_OBJECT=--[[void]] function(--[[Object* (pointer)]] object)return native_invoker.unified_void(object, 0x539E0AE3E6634B9F, "p")end - PLACE_OBJECT_ON_GROUND_PROPERLY=--[[BOOL (bool)]] function(--[[Object (int)]] object)return native_invoker.unified_bool(object, 0x58A850EAEE20FAA3, "i")end - PLACE_OBJECT_ON_GROUND_OR_OBJECT_PROPERLY=--[[BOOL (bool)]] function(--[[Object (int)]] object)return native_invoker.unified_bool(object, 0xD76EEEF746057FD6, "i")end - ROTATE_OBJECT=--[[BOOL (bool)]] function(--[[Object (int)]] object,--[[float]] p1,--[[float]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_bool(object, p1, p2, p3, 0xAFE24E4D29249E4A, "iffb")end - -- Returns true if the object has finished moving. - -- - -- If false, moves the object towards the specified X, Y and Z coordinates with the specified X, Y and Z speed. - -- - -- See also: https://gtagmodding.com/opcode-database/opcode/034E/ - -- Has to be looped until it returns true. - SLIDE_OBJECT=--[[BOOL (bool)]] function(--[[Object (int)]] object,--[[float]] toX,--[[float]] toY,--[[float]] toZ,--[[float]] speedX,--[[float]] speedY,--[[float]] speedZ,--[[BOOL (bool)]] collision)return native_invoker.unified_bool(object, toX, toY, toZ, speedX, speedY, speedZ, collision, 0x2FDFF4107B8C1147, "iffffffb")end - SET_OBJECT_TARGETTABLE=--[[void]] function(--[[Object (int)]] object,--[[BOOL (bool)]] targettable,--[[Any (int)]] p2)return native_invoker.unified_void(object, targettable, p2, 0x8A7391690F5AFD81, "ibi")end - -- Overrides a flag on the object which determines if the object should be avoided by a vehicle in task CTaskVehicleGoToPointWithAvoidanceAutomobile. - SET_OBJECT_FORCE_VEHICLES_TO_AVOID=--[[void]] function(--[[Object (int)]] object,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(object, toggle, 0x77F33F2CCF64B3AA, "ib")end - -- Has 8 params in the latest patches. - -- - -- isMission - if true doesn't return mission objects - GET_CLOSEST_OBJECT_OF_TYPE=--[[Object (int)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[Hash (int)]] modelHash,--[[BOOL (bool)]] isMission,--[[BOOL (bool)]] p6,--[[BOOL (bool)]] p7)return native_invoker.unified_int(x, y, z, radius, modelHash, isMission, p6, p7, 0xE143FA2249364369, "ffffibbb")end - HAS_OBJECT_BEEN_BROKEN=--[[BOOL (bool)]] function(--[[Object (int)]] object,--[[Any (int)]] p1)return native_invoker.unified_bool(object, p1, 0x8ABFB70C49CC43E2, "ii")end - HAS_CLOSEST_OBJECT_OF_TYPE_BEEN_BROKEN=--[[BOOL (bool)]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[Hash (int)]] modelHash,--[[Any (int)]] p5)return native_invoker.unified_bool(p0, p1, p2, p3, modelHash, p5, 0x761B0E69AC4D007E, "ffffii")end - HAS_CLOSEST_OBJECT_OF_TYPE_BEEN_COMPLETELY_DESTROYED=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[Hash (int)]] modelHash,--[[BOOL (bool)]] p5)return native_invoker.unified_bool(x, y, z, radius, modelHash, p5, 0x46494A2475701343, "ffffib")end - GET_HAS_OBJECT_BEEN_COMPLETELY_DESTROYED=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x2542269291C6AC84, "i")end - GET_OFFSET_FROM_COORD_AND_HEADING_IN_WORLD_COORDS=--[[Vector3 (vector3)]] function(--[[float]] xPos,--[[float]] yPos,--[[float]] zPos,--[[float]] heading,--[[float]] xOffset,--[[float]] yOffset,--[[float]] zOffset)return native_invoker.unified_vector3(xPos, yPos, zPos, heading, xOffset, yOffset, zOffset, 0x163E252DE035A133, "fffffff")end - GET_COORDS_AND_ROTATION_OF_CLOSEST_OBJECT_OF_TYPE=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[Hash (int)]] modelHash,--[[Vector3* (pointer)]] outPosition,--[[Vector3* (pointer)]] outRotation,--[[int]] rotationOrder)return native_invoker.unified_bool(x, y, z, radius, modelHash, outPosition, outRotation, rotationOrder, 0x163F8B586BC95F2A, "ffffippi")end - -- Hardcoded to not work in multiplayer. - -- - -- - -- Used to lock/unlock doors to interior areas of the game. - -- - -- (Possible) Door Types: - -- - -- https://pastebin.com/9S2m3qA4 - -- - -- Heading is either 1, 0 or -1 in the scripts. Means default closed(0) or opened either into(1) or out(-1) of the interior. - -- Locked means that the heading is locked. - -- p6 is always 0. - -- - -- 225 door types, model names and coords found in stripclub.c4: - -- https://pastebin.com/gywnbzsH - -- - -- get door info: https://pastebin.com/i14rbekD - SET_STATE_OF_CLOSEST_DOOR_OF_TYPE=--[[void]] function(--[[Hash (int)]] type,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] locked,--[[float]] heading,--[[BOOL (bool)]] p6)return native_invoker.unified_void(type, x, y, z, locked, heading, p6, 0xF82D8F1926A02C3D, "ifffbfb")end - -- locked is 0 if no door is found - -- locked is 0 if door is unlocked - -- locked is 1 if door is found and unlocked. - -- - -- ------------- - -- the locked bool is either 0(unlocked)(false) or 1(locked)(true) - GET_STATE_OF_CLOSEST_DOOR_OF_TYPE=--[[void]] function(--[[Hash (int)]] type,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL* (pointer)]] locked,--[[float* (pointer)]] heading)return native_invoker.unified_void(type, x, y, z, locked, heading, 0xEDC1A5B84AEF33FF, "ifffpp")end - -- Hardcoded not to work in multiplayer environments. - -- When you set locked to 0 the door open and to 1 the door close - -- OBJECT::SET_LOCKED_UNSTREAMED_IN_DOOR_OF_TYPE(${prop_gate_prison_01}, 1845.0, 2605.0, 45.0, 0, 0.0, 50.0, 0); //door open - -- - -- OBJECT::SET_LOCKED_UNSTREAMED_IN_DOOR_OF_TYPE(${prop_gate_prison_01}, 1845.0, 2605.0, 45.0, 1, 0.0, 50.0, 0); //door close - SET_LOCKED_UNSTREAMED_IN_DOOR_OF_TYPE=--[[void]] function(--[[Hash (int)]] modelHash,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] locked,--[[float]] xRotMult,--[[float]] yRotMult,--[[float]] zRotMult)return native_invoker.unified_void(modelHash, x, y, z, locked, xRotMult, yRotMult, zRotMult, 0x9B12F9A24FABEDB0, "ifffbfff")end - PLAY_OBJECT_AUTO_START_ANIM=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x006E4B040ED37EC3, "i")end - -- doorHash has to be unique. scriptDoor false; relies upon getNetworkGameScriptHandler. isLocal On true disables the creation CRequestDoorEvent's in DOOR_SYSTEM_SET_DOOR_STATE. - -- p5 only set to true in single player native scripts. - -- If scriptDoor is true, register the door on the script handler host (note: there's a hardcap on the number of script IDs that can be added to the system at a given time). If scriptDoor and isLocal are both false, the door is considered to be in a "Persists w/o netobj" state. - -- - -- door hashes normally look like PROP_[int]_DOOR_[int] for interior doors and PROP_BUILDING_[int]_DOOR_[int] exterior doors but you can just make up your own hash if you want - -- All doors need to be registered with ADD_DOOR_TO_SYSTEM before they can be manipulated with the door natives and the easiest way to get door models is just find the door in codewalker. - -- - -- Example: AddDoorToSystem("PROP_43_DOOR_0", "hei_v_ilev_fh_heistdoor2", -1456.818, -520.5037, 69.67043, 0, 0, 0) - ADD_DOOR_TO_SYSTEM=--[[void]] function(--[[Hash (int)]] doorHash,--[[Hash (int)]] modelHash,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] p5,--[[BOOL (bool)]] scriptDoor,--[[BOOL (bool)]] isLocal)return native_invoker.unified_void(doorHash, modelHash, x, y, z, p5, scriptDoor, isLocal, 0x6F8838D03D1DC226, "iifffbbb")end - -- CDoor and CDoorSystemData still internally allocated (and their associations between doorHash, modelHash, and coordinates). - -- Only its NetObj removed and flag ``*(v2 + 192) |= 8u`` (1604 retail) toggled. - REMOVE_DOOR_FROM_SYSTEM=--[[void]] function(--[[Hash (int)]] doorHash,--[[Any (int)]] p1)return native_invoker.unified_void(doorHash, p1, 0x464D8E1427156FE4, "ii")end - -- Lockstates not applied and CNetObjDoor's not created until DOOR_SYSTEM_GET_IS_PHYSICS_LOADED returns true. - -- `requestDoor` on true, and when door system is configured to, i.e., "persists w/o netobj", generate a CRequestDoorEvent. - -- `forceUpdate` on true, forces an update on the door system (same path as netObjDoor_applyDoorStuff) - -- Door lock states: - -- 0: UNLOCKED - -- 1: LOCKED - -- 2: DOORSTATE_FORCE_LOCKED_UNTIL_OUT_OF_AREA - -- 3: DOORSTATE_FORCE_UNLOCKED_THIS_FRAME - -- 4: DOORSTATE_FORCE_LOCKED_THIS_FRAME - -- 5: DOORSTATE_FORCE_OPEN_THIS_FRAME - -- 6: DOORSTATE_FORCE_CLOSED_THIS_FRAME - DOOR_SYSTEM_SET_DOOR_STATE=--[[void]] function(--[[Hash (int)]] doorHash,--[[int]] state,--[[BOOL (bool)]] requestDoor,--[[BOOL (bool)]] forceUpdate)return native_invoker.unified_void(doorHash, state, requestDoor, forceUpdate, 0x6BAB9442830C7F53, "iibb")end - DOOR_SYSTEM_GET_DOOR_STATE=--[[int]] function(--[[Hash (int)]] doorHash)return native_invoker.unified_int(doorHash, 0x160AA1B32F6139B8, "i")end - DOOR_SYSTEM_GET_DOOR_PENDING_STATE=--[[int]] function(--[[Hash (int)]] doorHash)return native_invoker.unified_int(doorHash, 0x4BC2854478F3A749, "i")end - -- Includes networking check: ownership vs. or the door itself **isn't** networked. - -- `forceUpdate` on true invokes DOOR_SYSTEM_SET_DOOR_STATE otherwise requestDoor is unused. - DOOR_SYSTEM_SET_AUTOMATIC_RATE=--[[void]] function(--[[Hash (int)]] doorHash,--[[float]] rate,--[[BOOL (bool)]] requestDoor,--[[BOOL (bool)]] forceUpdate)return native_invoker.unified_void(doorHash, rate, requestDoor, forceUpdate, 0x03C27E13B42A0E82, "ifbb")end - -- `forceUpdate` on true invokes DOOR_SYSTEM_SET_DOOR_STATE otherwise requestDoor is unused. - DOOR_SYSTEM_SET_AUTOMATIC_DISTANCE=--[[void]] function(--[[Hash (int)]] doorHash,--[[float]] distance,--[[BOOL (bool)]] requestDoor,--[[BOOL (bool)]] forceUpdate)return native_invoker.unified_void(doorHash, distance, requestDoor, forceUpdate, 0x9BA001CB45CBF627, "ifbb")end - -- Sets the ajar angle of a door. - -- Ranges from -1.0 to 1.0, and 0.0 is closed / default. - -- `forceUpdate` on true invokes DOOR_SYSTEM_SET_DOOR_STATE otherwise requestDoor is unused. - DOOR_SYSTEM_SET_OPEN_RATIO=--[[void]] function(--[[Hash (int)]] doorHash,--[[float]] ajar,--[[BOOL (bool)]] requestDoor,--[[BOOL (bool)]] forceUpdate)return native_invoker.unified_void(doorHash, ajar, requestDoor, forceUpdate, 0xB6E6FBA95C7324AC, "ifbb")end - DOOR_SYSTEM_GET_AUTOMATIC_DISTANCE=--[[float]] function(--[[Hash (int)]] doorHash)return native_invoker.unified_float(doorHash, 0xE851471AEFC3374F, "i")end - DOOR_SYSTEM_GET_OPEN_RATIO=--[[float]] function(--[[Hash (int)]] doorHash)return native_invoker.unified_float(doorHash, 0x65499865FCA6E5EC, "i")end - -- Includes networking check: ownership vs. or the door itself **isn't** networked. - -- `forceUpdate` on true invokes DOOR_SYSTEM_SET_DOOR_STATE otherwise requestDoor is unused. - DOOR_SYSTEM_SET_SPRING_REMOVED=--[[void]] function(--[[Hash (int)]] doorHash,--[[BOOL (bool)]] removed,--[[BOOL (bool)]] requestDoor,--[[BOOL (bool)]] forceUpdate)return native_invoker.unified_void(doorHash, removed, requestDoor, forceUpdate, 0xC485E07E4F0B7958, "ibbb")end - -- Includes networking check: ownership vs. or the door itself **isn't** networked. - DOOR_SYSTEM_SET_HOLD_OPEN=--[[void]] function(--[[Hash (int)]] doorHash,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(doorHash, toggle, 0xD9B71952F78A2640, "ib")end - -- Some property related to gates. Native name between ``DOOR_SYSTEM_SET_AUTOMATIC_RATE`` and ``DOOR_SYSTEM_SET_DOOR_STATE``. - DOOR_SYSTEM_SET_DOOR_OPEN_FOR_RACES=--[[void]] function(--[[Hash (int)]] doorHash,--[[BOOL (bool)]] p1)return native_invoker.unified_void(doorHash, p1, 0xA85A21582451E951, "ib")end - -- if (OBJECT::IS_DOOR_REGISTERED_WITH_SYSTEM(doorHash)) - -- { - -- OBJECT::REMOVE_DOOR_FROM_SYSTEM(doorHash); - -- } - IS_DOOR_REGISTERED_WITH_SYSTEM=--[[BOOL (bool)]] function(--[[Hash (int)]] doorHash)return native_invoker.unified_bool(doorHash, 0xC153C43EA202C8C1, "i")end - IS_DOOR_CLOSED=--[[BOOL (bool)]] function(--[[Hash (int)]] doorHash)return native_invoker.unified_bool(doorHash, 0xC531EE8A1145A149, "i")end - OPEN_ALL_BARRIERS_FOR_RACE=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xC7F29CA00F46350E, "b")end - -- Clears the fields sets by 0xC7F29CA00F46350E (1604 retail: 0x1424A7A10, 0x1424A7A11) and iterates over the global CDoor's bucket-list. - -- Related to its "Pre-networked state"? - CLOSE_ALL_BARRIERS_FOR_RACE=--[[void]] function()return native_invoker.unified_void(0x701FDA1E82076BA4, "")end - DOOR_SYSTEM_GET_IS_PHYSICS_LOADED=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0xDF97CDD4FC08FD34, "i")end - -- Search radius: 0.5 - DOOR_SYSTEM_FIND_EXISTING_DOOR=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[Hash (int)]] modelHash,--[[Hash* (pointer)]] outDoorHash)return native_invoker.unified_bool(x, y, z, modelHash, outDoorHash, 0x589F80B325CC82C5, "fffip")end - IS_GARAGE_EMPTY=--[[BOOL (bool)]] function(--[[Hash (int)]] garageHash,--[[BOOL (bool)]] p1,--[[int]] p2)return native_invoker.unified_bool(garageHash, p1, p2, 0x90E47239EA1980B8, "ibi")end - IS_PLAYER_ENTIRELY_INSIDE_GARAGE=--[[BOOL (bool)]] function(--[[Hash (int)]] garageHash,--[[Player (int)]] player,--[[float]] p2,--[[int]] p3)return native_invoker.unified_bool(garageHash, player, p2, p3, 0x024A60DEB0EA69F0, "iifi")end - IS_PLAYER_PARTIALLY_INSIDE_GARAGE=--[[BOOL (bool)]] function(--[[Hash (int)]] garageHash,--[[Player (int)]] player,--[[int]] p2)return native_invoker.unified_bool(garageHash, player, p2, 0x1761DC5D8471CBAA, "iii")end - ARE_ENTITIES_ENTIRELY_INSIDE_GARAGE=--[[BOOL (bool)]] function(--[[Hash (int)]] garageHash,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3,--[[Any (int)]] p4)return native_invoker.unified_bool(garageHash, p1, p2, p3, p4, 0x85B6C850546FDDE2, "ibbbi")end - IS_ANY_ENTITY_ENTIRELY_INSIDE_GARAGE=--[[BOOL (bool)]] function(--[[Hash (int)]] garageHash,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3,--[[Any (int)]] p4)return native_invoker.unified_bool(garageHash, p1, p2, p3, p4, 0x673ED815D6E323B7, "ibbbi")end - -- Despite the name, it does work for any entity type. - IS_OBJECT_ENTIRELY_INSIDE_GARAGE=--[[BOOL (bool)]] function(--[[Hash (int)]] garageHash,--[[Entity (int)]] entity,--[[float]] p2,--[[int]] p3)return native_invoker.unified_bool(garageHash, entity, p2, p3, 0x372EF6699146A1E4, "iifi")end - -- Despite the name, it does work for any entity type. - IS_OBJECT_PARTIALLY_INSIDE_GARAGE=--[[BOOL (bool)]] function(--[[Hash (int)]] garageHash,--[[Entity (int)]] entity,--[[int]] p2)return native_invoker.unified_bool(garageHash, entity, p2, 0xF0EED5A6BC7B237A, "iii")end - CLEAR_GARAGE=--[[void]] function(--[[Hash (int)]] garageHash,--[[BOOL (bool)]] isNetwork)return native_invoker.unified_void(garageHash, isNetwork, 0xDA05194260CDCDF9, "ib")end - CLEAR_OBJECTS_INSIDE_GARAGE=--[[void]] function(--[[Hash (int)]] garageHash,--[[BOOL (bool)]] vehicles,--[[BOOL (bool)]] peds,--[[BOOL (bool)]] objects,--[[BOOL (bool)]] isNetwork)return native_invoker.unified_void(garageHash, vehicles, peds, objects, isNetwork, 0x190428512B240692, "ibbbb")end - -- Sets a flag. A valid id is 0x157DC10D - DISABLE_TIDYING_UP_IN_GARAGE=--[[void]] function(--[[int]] id,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(id, toggle, 0x659F9D71F52843F8, "ib")end - ENABLE_SAVING_IN_GARAGE=--[[void]] function(--[[Hash (int)]] garageHash,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(garageHash, toggle, 0xF2E1A7133DD356A6, "ib")end - CLOSE_SAFEHOUSE_GARAGES=--[[void]] function()return native_invoker.unified_void(0x66A49D021870FE88, "")end - -- p5 is usually 0. - DOES_OBJECT_OF_TYPE_EXIST_AT_COORDS=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[Hash (int)]] hash,--[[BOOL (bool)]] p5)return native_invoker.unified_bool(x, y, z, radius, hash, p5, 0xBFA48E2FF417213F, "ffffib")end - -- An angled area is an X-Z oriented rectangle with three parameters: - -- 1. origin: the mid-point along a base edge of the rectangle; - -- 2. extent: the mid-point of opposite base edge on the other Z; - -- 3. width: the length of the base edge; (named derived from logging strings ``CNetworkRoadNodeWorldStateData``). - -- - -- The oriented rectangle can then be derived from the direction of the two points (``norm(origin - extent)``), its orthonormal, and the width, e.g: - -- 1. golf_mp https://i.imgur.com/JhsQAK9.png - -- 2. am_taxi https://i.imgur.com/TJWCZaT.jpg - IS_POINT_IN_ANGLED_AREA=--[[BOOL (bool)]] function(--[[float]] xPos,--[[float]] yPos,--[[float]] zPos,--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] width,--[[BOOL (bool)]] debug,--[[BOOL (bool)]] includeZ)return native_invoker.unified_bool(xPos, yPos, zPos, x1, y1, z1, x2, y2, z2, width, debug, includeZ, 0x2A70BAE8883E4C81, "ffffffffffbb")end - -- Overrides the climbing/blocking flags of the object, used in the native scripts mostly for "prop_dock_bouy_*" - SET_OBJECT_ALLOW_LOW_LOD_BUOYANCY=--[[void]] function(--[[Object (int)]] object,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(object, toggle, 0x4D89D607CB3DD1D2, "ib")end - -- Adjust the physics parameters of a prop, or otherwise known as "object". This is useful for simulated gravity. - -- - -- Other parameters seem to be unknown. - -- - -- p2: seems to be weight and gravity related. Higher value makes the obj fall faster. Very sensitive? - -- p3: seems similar to p2 - -- p4: makes obj fall slower the higher the value - -- p5: similar to p4 - SET_OBJECT_PHYSICS_PARAMS=--[[void]] function(--[[Object (int)]] object,--[[float]] weight,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[float]] gravity,--[[float]] p7,--[[float]] p8,--[[float]] p9,--[[float]] p10,--[[float]] buoyancy)return native_invoker.unified_void(object, weight, p2, p3, p4, p5, gravity, p7, p8, p9, p10, buoyancy, 0xF6DF6E90DE7DF90F, "ifffffffffff")end - GET_OBJECT_FRAGMENT_DAMAGE_HEALTH=--[[float]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_float(p0, p1, 0xB6FBFD079B8D0596, "ib")end - SET_ACTIVATE_OBJECT_PHYSICS_AS_SOON_AS_IT_IS_UNFROZEN=--[[void]] function(--[[Object (int)]] object,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(object, toggle, 0x406137F8EF90EAF5, "ib")end - IS_ANY_OBJECT_NEAR_POINT=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] range,--[[BOOL (bool)]] p4)return native_invoker.unified_bool(x, y, z, range, p4, 0x397DC58FF00298D1, "ffffb")end - IS_OBJECT_NEAR_POINT=--[[BOOL (bool)]] function(--[[Hash (int)]] objectHash,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] range)return native_invoker.unified_bool(objectHash, x, y, z, range, 0x8C90FE4B381BA60A, "iffff")end - REMOVE_OBJECT_HIGH_DETAIL_MODEL=--[[void]] function(--[[Object (int)]] object)return native_invoker.unified_void(object, 0x4A39DB43E47CF3AA, "i")end - BREAK_OBJECT_FRAGMENT_CHILD=--[[void]] function(--[[Object (int)]] p0,--[[Any (int)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xE7E4C198B0185900, "iib")end - DAMAGE_OBJECT_FRAGMENT_CHILD=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xE05F6AEEFEB0BB02, "iii")end - FIX_OBJECT_FRAGMENT=--[[void]] function(--[[Object (int)]] object)return native_invoker.unified_void(object, 0xF9C1681347C8BD15, "i")end - TRACK_OBJECT_VISIBILITY=--[[void]] function(--[[Object (int)]] object)return native_invoker.unified_void(object, 0xB252BC036B525623, "i")end - IS_OBJECT_VISIBLE=--[[BOOL (bool)]] function(--[[Object (int)]] object)return native_invoker.unified_bool(object, 0x8B32ACE6326A7546, "i")end - SET_OBJECT_IS_SPECIAL_GOLFBALL=--[[void]] function(--[[Object (int)]] object,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(object, toggle, 0xC6033D32241F6FB5, "ib")end - SET_OBJECT_TAKES_DAMAGE_FROM_COLLIDING_WITH_BUILDINGS=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0xEB6F1A9B5510A5D2, "ib")end - ALLOW_DAMAGE_EVENTS_FOR_NON_NETWORKED_OBJECTS=--[[void]] function(--[[BOOL (bool)]] value)return native_invoker.unified_void(value, 0xABDABF4E1EDECBFA, "b")end - -- Requires a component_at_*_flsh to be attached to the weapon object - SET_CUTSCENES_WEAPON_FLASHLIGHT_ON_THIS_FRAME=--[[void]] function(--[[Object (int)]] object,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(object, toggle, 0xBCE595371A5FBAAF, "ib")end - -- Example: - -- OBJECT::GET_RAYFIRE_MAP_OBJECT(-809.9619750976562, 170.919, 75.7406997680664, 3.0, "des_tvsmash"); - GET_RAYFIRE_MAP_OBJECT=--[[Object (int)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[string]] name)return native_invoker.unified_int(x, y, z, radius, name, 0xB48FCED898292E52, "ffffs")end - -- Defines the state of a destructible object. - -- Use the GET_RAYFIRE_MAP_OBJECT native to find an object's handle with its name / coords. - -- State 2 == object just spawned - -- State 4 == Beginning of the animation - -- State 6 == Start animation - -- State 9 == End of the animation - SET_STATE_OF_RAYFIRE_MAP_OBJECT=--[[void]] function(--[[Object (int)]] object,--[[int]] state)return native_invoker.unified_void(object, state, 0x5C29F698D404C5E1, "ii")end - -- Get a destructible object's state. - -- Substract 1 to get the real state. - -- See SET_STATE_OF_RAYFIRE_MAP_OBJECT to see the different states - -- For example, if the object just spawned (state 2), the native will return 3. - GET_STATE_OF_RAYFIRE_MAP_OBJECT=--[[int]] function(--[[Object (int)]] object)return native_invoker.unified_int(object, 0x899BA936634A322E, "i")end - -- Returns true if a destructible object with this handle exists, false otherwise. - DOES_RAYFIRE_MAP_OBJECT_EXIST=--[[BOOL (bool)]] function(--[[Object (int)]] object)return native_invoker.unified_bool(object, 0x52AF537A0C5B8AAD, "i")end - -- `object`: The des-object handle to get the animation progress from. - -- Return value is a float between 0.0 and 1.0, 0.0 is the beginning of the animation, 1.0 is the end. Value resets to 0.0 instantly after reaching 1.0. - GET_RAYFIRE_MAP_OBJECT_ANIM_PHASE=--[[float]] function(--[[Object (int)]] object)return native_invoker.unified_float(object, 0x260EE4FDBDF4DB01, "i")end - -- Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json - CREATE_PICKUP=--[[Pickup (int)]] function(--[[Hash (int)]] pickupHash,--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[int]] p4,--[[int]] value,--[[BOOL (bool)]] p6,--[[Hash (int)]] modelHash)return native_invoker.unified_int(pickupHash, posX, posY, posZ, p4, value, p6, modelHash, 0xFBA08C503DD5FA58, "ifffiibi")end - -- flags: - -- 8 (1 << 3): place on ground - -- 512 (1 << 9): spin around - -- - -- Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json - CREATE_PICKUP_ROTATE=--[[Pickup (int)]] function(--[[Hash (int)]] pickupHash,--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ,--[[int]] flag,--[[int]] amount,--[[Any (int)]] p9,--[[BOOL (bool)]] p10,--[[Hash (int)]] modelHash)return native_invoker.unified_int(pickupHash, posX, posY, posZ, rotX, rotY, rotZ, flag, amount, p9, p10, modelHash, 0x891804727E0A98B7, "iffffffiiibi")end - FORCE_PICKUP_ROTATE_FACE_UP=--[[void]] function()return native_invoker.unified_void(0x394CD08E31313C28, "")end - SET_CUSTOM_PICKUP_WEAPON_HASH=--[[void]] function(--[[Hash (int)]] pickupHash,--[[Pickup (int)]] pickup)return native_invoker.unified_void(pickupHash, pickup, 0x826D1EE4D1CAFC78, "ii")end - -- Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json - CREATE_AMBIENT_PICKUP=--[[Object (int)]] function(--[[Hash (int)]] pickupHash,--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[int]] flags,--[[int]] value,--[[Hash (int)]] modelHash,--[[BOOL (bool)]] p7,--[[BOOL (bool)]] p8)return native_invoker.unified_int(pickupHash, posX, posY, posZ, flags, value, modelHash, p7, p8, 0x673966A0C0FD7171, "ifffiiibb")end - CREATE_NON_NETWORKED_AMBIENT_PICKUP=--[[Object (int)]] function(--[[Hash (int)]] pickupHash,--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[int]] flags,--[[int]] value,--[[Hash (int)]] modelHash,--[[BOOL (bool)]] p7,--[[BOOL (bool)]] p8)return native_invoker.unified_int(pickupHash, posX, posY, posZ, flags, value, modelHash, p7, p8, 0x9C93764223E29C50, "ifffiiibb")end - BLOCK_PLAYERS_FOR_AMBIENT_PICKUP=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x1E3F1B1B891A2AAA, "ii")end - -- Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json - CREATE_PORTABLE_PICKUP=--[[Object (int)]] function(--[[Hash (int)]] pickupHash,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] placeOnGround,--[[Hash (int)]] modelHash)return native_invoker.unified_int(pickupHash, x, y, z, placeOnGround, modelHash, 0x2EAF1FDB2FB55698, "ifffbi")end - -- Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json - CREATE_NON_NETWORKED_PORTABLE_PICKUP=--[[Object (int)]] function(--[[Hash (int)]] pickupHash,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] placeOnGround,--[[Hash (int)]] modelHash)return native_invoker.unified_int(pickupHash, x, y, z, placeOnGround, modelHash, 0x125494B98A21AAF7, "ifffbi")end - ATTACH_PORTABLE_PICKUP_TO_PED=--[[void]] function(--[[Object (int)]] pickupObject,--[[Ped (int)]] ped)return native_invoker.unified_void(pickupObject, ped, 0x8DC39368BDD57755, "ii")end - DETACH_PORTABLE_PICKUP_FROM_PED=--[[void]] function(--[[Object (int)]] pickupObject)return native_invoker.unified_void(pickupObject, 0xCF463D1E9A0AECB1, "i")end - FORCE_PORTABLE_PICKUP_LAST_ACCESSIBLE_POSITION_SETTING=--[[void]] function(--[[Object (int)]] object)return native_invoker.unified_void(object, 0x5CE2E45A5CE2E45A, "i")end - HIDE_PORTABLE_PICKUP_WHEN_DETACHED=--[[void]] function(--[[Object (int)]] pickupObject,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(pickupObject, toggle, 0x867458251D47CCB2, "ib")end - SET_MAX_NUM_PORTABLE_PICKUPS_CARRIED_BY_PLAYER=--[[void]] function(--[[Hash (int)]] modelHash,--[[int]] number)return native_invoker.unified_void(modelHash, number, 0x0BF3B3BD47D79C08, "ii")end - SET_LOCAL_PLAYER_CAN_COLLECT_PORTABLE_PICKUPS=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x78857FC65CADB909, "b")end - GET_SAFE_PICKUP_COORDS=--[[Vector3 (vector3)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] p3,--[[float]] p4)return native_invoker.unified_vector3(x, y, z, p3, p4, 0x6E16BC2503FF1FF0, "fffff")end - -- Adds an area that seems to be related to pickup physics behavior. - -- Max amount of areas is 10. Only works in multiplayer. - ADD_EXTENDED_PICKUP_PROBE_AREA=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius)return native_invoker.unified_void(x, y, z, radius, 0xD4A7A435B3710D05, "ffff")end - -- Clears all areas created by ADD_EXTENDED_PICKUP_PROBE_AREA - CLEAR_EXTENDED_PICKUP_PROBE_AREAS=--[[void]] function()return native_invoker.unified_void(0xB7C6D80FB371659A, "")end - GET_PICKUP_COORDS=--[[Vector3 (vector3)]] function(--[[Pickup (int)]] pickup)return native_invoker.unified_vector3(pickup, 0x225B8B35C88029B3, "i")end - SUPPRESS_PICKUP_SOUND_FOR_PICKUP=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x8DCA505A5C196F05, "ii")end - -- Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json - REMOVE_ALL_PICKUPS_OF_TYPE=--[[void]] function(--[[Hash (int)]] pickupHash)return native_invoker.unified_void(pickupHash, 0x27F9D613092159CF, "i")end - HAS_PICKUP_BEEN_COLLECTED=--[[BOOL (bool)]] function(--[[Pickup (int)]] pickup)return native_invoker.unified_bool(pickup, 0x80EC48E6679313F9, "i")end - REMOVE_PICKUP=--[[void]] function(--[[Pickup (int)]] pickup)return native_invoker.unified_void(pickup, 0x3288D8ACAECD2AB2, "i")end - -- Spawns one or more money pickups. - -- - -- x: The X-component of the world position to spawn the money pickups at. - -- y: The Y-component of the world position to spawn the money pickups at. - -- z: The Z-component of the world position to spawn the money pickups at. - -- value: The combined value of the pickups (in dollars). - -- amount: The number of pickups to spawn. - -- model: The model to use, or 0 for default money model. - -- - -- Example: - -- CREATE_MONEY_PICKUPS(x, y, z, 1000, 3, 0x684a97ae); - -- - -- Spawns 3 spray cans that'll collectively give $1000 when picked up. (Three spray cans, each giving $334, $334, $332 = $1000). - -- - -- ============================================== - -- - -- Max is 2000 in MP. So if you put the amount to 20, but the value to $400,000 eg. They will only be able to pickup 20 - $2,000 bags. So, $40,000 - CREATE_MONEY_PICKUPS=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] value,--[[int]] amount,--[[Hash (int)]] model)return native_invoker.unified_void(x, y, z, value, amount, model, 0x0589B5E791CE9B2B, "fffiii")end - DOES_PICKUP_EXIST=--[[BOOL (bool)]] function(--[[Pickup (int)]] pickup)return native_invoker.unified_bool(pickup, 0xAFC1CA75AD4074D1, "i")end - DOES_PICKUP_OBJECT_EXIST=--[[BOOL (bool)]] function(--[[Object (int)]] pickupObject)return native_invoker.unified_bool(pickupObject, 0xD9EFB6DBF7DAAEA3, "i")end - GET_PICKUP_OBJECT=--[[Object (int)]] function(--[[Pickup (int)]] pickup)return native_invoker.unified_int(pickup, 0x5099BC55630B25AE, "i")end - IS_OBJECT_A_PICKUP=--[[BOOL (bool)]] function(--[[Object (int)]] object)return native_invoker.unified_bool(object, 0xFC481C641EBBD27D, "i")end - IS_OBJECT_A_PORTABLE_PICKUP=--[[BOOL (bool)]] function(--[[Object (int)]] object)return native_invoker.unified_bool(object, 0x0378C08504160D0D, "i")end - -- Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json - DOES_PICKUP_OF_TYPE_EXIST_IN_AREA=--[[BOOL (bool)]] function(--[[Hash (int)]] pickupHash,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius)return native_invoker.unified_bool(pickupHash, x, y, z, radius, 0xF9C36251F6E48E33, "iffff")end - SET_PICKUP_REGENERATION_TIME=--[[void]] function(--[[Pickup (int)]] pickup,--[[int]] duration)return native_invoker.unified_void(pickup, duration, 0x78015C9B4B3ECC9D, "ii")end - FORCE_PICKUP_REGENERATE=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x758A5C1B3B1E1990, "i")end - -- Disabling/enabling a player from getting pickups. From the scripts: - -- - -- OBJECT::SET_PLAYER_PERMITTED_TO_COLLECT_PICKUPS_OF_TYPE(PLAYER::PLAYER_ID(), ${pickup_portable_package}, 0); - -- OBJECT::SET_PLAYER_PERMITTED_TO_COLLECT_PICKUPS_OF_TYPE(PLAYER::PLAYER_ID(), ${pickup_portable_package}, 0); - -- OBJECT::SET_PLAYER_PERMITTED_TO_COLLECT_PICKUPS_OF_TYPE(PLAYER::PLAYER_ID(), ${pickup_portable_package}, 1); - -- OBJECT::SET_PLAYER_PERMITTED_TO_COLLECT_PICKUPS_OF_TYPE(PLAYER::PLAYER_ID(), ${pickup_portable_package}, 0); - -- OBJECT::SET_PLAYER_PERMITTED_TO_COLLECT_PICKUPS_OF_TYPE(PLAYER::PLAYER_ID(), ${pickup_armour_standard}, 0); - -- OBJECT::SET_PLAYER_PERMITTED_TO_COLLECT_PICKUPS_OF_TYPE(PLAYER::PLAYER_ID(), ${pickup_armour_standard}, 1); - -- - -- Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json - SET_PLAYER_PERMITTED_TO_COLLECT_PICKUPS_OF_TYPE=--[[void]] function(--[[Player (int)]] player,--[[Hash (int)]] pickupHash,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, pickupHash, toggle, 0x616093EC6B139DD9, "iib")end - -- Maximum amount of pickup models that can be disallowed is 30. - SET_LOCAL_PLAYER_PERMITTED_TO_COLLECT_PICKUPS_WITH_MODEL=--[[void]] function(--[[Hash (int)]] modelHash,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(modelHash, toggle, 0x88EAEC617CD26926, "ib")end - -- Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json - ALLOW_ALL_PLAYERS_TO_COLLECT_PICKUPS_OF_TYPE=--[[void]] function(--[[Hash (int)]] pickupHash)return native_invoker.unified_void(pickupHash, 0xFDC07C58E8AAB715, "i")end - SET_TEAM_PICKUP_OBJECT=--[[void]] function(--[[Object (int)]] object,--[[Any (int)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(object, p1, p2, 0x53E0DF1A2A3CF0CA, "iib")end - PREVENT_COLLECTION_OF_PORTABLE_PICKUP=--[[void]] function(--[[Object (int)]] object,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(object, p1, p2, 0x92AEFB5F6E294023, "ibb")end - SET_PICKUP_OBJECT_GLOW_WHEN_UNCOLLECTABLE=--[[void]] function(--[[Pickup (int)]] pickup,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(pickup, toggle, 0x27F248C3FEBFAAD3, "ib")end - -- p1 is always 0.51. This native is called before SET_PICKUP_REGENERATION_TIME in all occurances. - SET_PICKUP_GLOW_OFFSET=--[[void]] function(--[[Pickup (int)]] pickup,--[[float]] p1)return native_invoker.unified_void(pickup, p1, 0x0596843B34B95CE5, "if")end - -- p1 is always -0.2 in scripts and p2 is always true in scripts. - SET_PICKUP_OBJECT_GLOW_OFFSET=--[[void]] function(--[[Pickup (int)]] pickup,--[[float]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(pickup, p1, p2, 0xA08FE5E49BDC39DD, "ifb")end - SET_OBJECT_GLOW_IN_SAME_TEAM=--[[void]] function(--[[Pickup (int)]] pickup)return native_invoker.unified_void(pickup, 0x62454A641B41F3C5, "i")end - SET_PICKUP_OBJECT_ARROW_MARKER=--[[void]] function(--[[Pickup (int)]] pickup,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(pickup, toggle, 0x39A5FB7EAF150840, "ib")end - ALLOW_PICKUP_ARROW_MARKER_WHEN_UNCOLLECTABLE=--[[void]] function(--[[Pickup (int)]] pickup,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(pickup, toggle, 0x834344A414C7C85D, "ib")end - GET_DEFAULT_AMMO_FOR_WEAPON_PICKUP=--[[int]] function(--[[Hash (int)]] pickupHash)return native_invoker.unified_int(pickupHash, 0xDB41D07A45A6D4B7, "i")end - SET_PICKUP_GENERATION_RANGE_MULTIPLIER=--[[void]] function(--[[float]] multiplier)return native_invoker.unified_void(multiplier, 0x318516E02DE3ECE2, "f")end - GET_PICKUP_GENERATION_RANGE_MULTIPLIER=--[[float]] function()return native_invoker.unified_float(0xB3ECA65C7317F174, "")end - SET_ONLY_ALLOW_AMMO_COLLECTION_WHEN_LOW=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x31F924B53EADDF65, "b")end - SET_PICKUP_UNCOLLECTABLE=--[[void]] function(--[[Pickup (int)]] pickup,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(pickup, toggle, 0x1C1B69FAE509BA97, "ib")end - SET_PICKUP_TRANSPARENT_WHEN_UNCOLLECTABLE=--[[void]] function(--[[Pickup (int)]] pickup,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(pickup, toggle, 0x858EC9FD25DE04AA, "ib")end - SET_PICKUP_HIDDEN_WHEN_UNCOLLECTABLE=--[[void]] function(--[[Pickup (int)]] pickup,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(pickup, toggle, 0x3ED2B83AB2E82799, "ib")end - SET_PICKUP_OBJECT_TRANSPARENT_WHEN_UNCOLLECTABLE=--[[void]] function(--[[Pickup (int)]] pickup,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(pickup, toggle, 0x8881C98A31117998, "ib")end - -- p0 is either 0 or 50 in scripts. - SET_PICKUP_OBJECT_ALPHA_WHEN_TRANSPARENT=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0x8CFF648FBD7330F1, "i")end - SET_PORTABLE_PICKUP_PERSIST=--[[void]] function(--[[Pickup (int)]] pickup,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(pickup, toggle, 0x46F3ADD1E2D5BAF2, "ib")end - ALLOW_PORTABLE_PICKUP_TO_MIGRATE_TO_NON_PARTICIPANTS=--[[void]] function(--[[Pickup (int)]] pickup,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(pickup, toggle, 0x641F272B52E2F0F8, "ib")end - FORCE_ACTIVATE_PHYSICS_ON_UNFIXED_PICKUP=--[[void]] function(--[[Pickup (int)]] pickup,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(pickup, toggle, 0x4C134B4DF76025D0, "ib")end - ALLOW_PICKUP_BY_NONE_PARTICIPANT=--[[void]] function(--[[Pickup (int)]] pickup,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(pickup, toggle, 0xAA059C615DE9DD03, "ib")end - -- enum ePickupRewardType - -- { - -- PICKUP_REWARD_TYPE_AMMO = (1 << 0), - -- PICKUP_REWARD_TYPE_BULLET_MP = (1 << 1), - -- PICKUP_REWARD_TYPE_MISSILE_MP = (1 << 2), - -- PICKUP_REWARD_TYPE_GRENADE_LAUNCHER_MP = (1 << 3), - -- PICKUP_REWARD_TYPE_ARMOUR = (1 << 4), - -- PICKUP_REWARD_TYPE_HEALTH = (1 << 5), - -- PICKUP_REWARD_TYPE_HEALTH_VARIABLE = PICKUP_REWARD_TYPE_HEALTH, - -- PICKUP_REWARD_TYPE_MONEY_FIXED = (1 << 6), - -- PICKUP_REWARD_TYPE_MONEY_VARIABLE = PICKUP_REWARD_TYPE_MONEY_FIXED, - -- PICKUP_REWARD_TYPE_WEAPON = (1 << 7), - -- PICKUP_REWARD_TYPE_STAT = (1 << 8), - -- PICKUP_REWARD_TYPE_STAT_VARIABLE = PICKUP_REWARD_TYPE_STAT, - -- PICKUP_REWARD_TYPE_VEHICLE_FIX = (1 << 9), - -- PICKUP_REWARD_TYPE_FIREWORK_MP = (1 << 10), - -- }; - SUPPRESS_PICKUP_REWARD_TYPE=--[[void]] function(--[[int]] rewardType,--[[BOOL (bool)]] suppress)return native_invoker.unified_void(rewardType, suppress, 0xF92099527DB8E2A7, "ib")end - CLEAR_ALL_PICKUP_REWARD_TYPE_SUPPRESSION=--[[void]] function()return native_invoker.unified_void(0xA2C1F5E92AFE49ED, "")end - CLEAR_PICKUP_REWARD_TYPE_SUPPRESSION=--[[void]] function(--[[int]] rewardType)return native_invoker.unified_void(rewardType, 0x762DB2D380B48D04, "i")end - -- draws circular marker at pos - -- -1 = none - -- 0 = red - -- 1 = green - -- 2 = blue - -- 3 = green larger - -- 4 = nothing - -- 5 = green small - RENDER_FAKE_PICKUP_GLOW=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] colorIndex)return native_invoker.unified_void(x, y, z, colorIndex, 0x3430676B11CDF21D, "fffi")end - SET_PICKUP_OBJECT_COLLECTABLE_IN_VEHICLE=--[[void]] function(--[[Pickup (int)]] pickup)return native_invoker.unified_void(pickup, 0x7813E8B8C4AE4799, "i")end - SET_PICKUP_TRACK_DAMAGE_EVENTS=--[[void]] function(--[[Pickup (int)]] pickup,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(pickup, toggle, 0xBFFE53AE7E67FCDC, "ib")end - -- Sets entity+38 to C (when false) or 0xFF3f (when true) - SET_ENTITY_FLAG_SUPPRESS_SHADOW=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0xD05A3241B9A86F19, "ib")end - SET_ENTITY_FLAG_RENDER_SMALL_SHADOW=--[[void]] function(--[[Object (int)]] object,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(object, toggle, 0xB2D0BDE54F0E8E5A, "ib")end - -- Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json - GET_WEAPON_TYPE_FROM_PICKUP_TYPE=--[[Hash (int)]] function(--[[Hash (int)]] pickupHash)return native_invoker.unified_int(pickupHash, 0x08F96CA6C551AD51, "i")end - -- Returns the pickup hash for the given weapon hash - GET_PICKUP_TYPE_FROM_WEAPON_HASH=--[[Hash (int)]] function(--[[Hash (int)]] weaponHash)return native_invoker.unified_int(weaponHash, 0xD6429A016084F1A5, "i")end - IS_PICKUP_WEAPON_OBJECT_VALID=--[[BOOL (bool)]] function(--[[Object (int)]] object)return native_invoker.unified_bool(object, 0x11D1E53A726891FE, "i")end - GET_OBJECT_TINT_INDEX=--[[int]] function(--[[Object (int)]] object)return native_invoker.unified_int(object, 0xE84EB93729C5F36A, "i")end - -- enum ObjectPaintVariants - -- { - -- Pacific = 0, - -- Azure = 1, - -- Nautical = 2, - -- Continental = 3, - -- Battleship = 4, - -- Intrepid = 5, - -- Uniform = 6, - -- Classico = 7, - -- Mediterranean = 8, - -- Command = 9, - -- Mariner = 10, - -- Ruby = 11, - -- Vintage = 12, - -- Pristine = 13, - -- Merchant = 14, - -- Voyager = 15 - -- }; - SET_OBJECT_TINT_INDEX=--[[void]] function(--[[Object (int)]] object,--[[int]] textureVariation)return native_invoker.unified_void(object, textureVariation, 0x971DA0055324D033, "ii")end - SET_TINT_INDEX_CLOSEST_BUILDING_OF_TYPE=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[Hash (int)]] modelHash,--[[int]] textureVariation)return native_invoker.unified_bool(x, y, z, radius, modelHash, textureVariation, 0xF12E33034D887F66, "ffffii")end - SET_PROP_TINT_INDEX=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x31574B1B41268673, "ii")end - SET_PROP_LIGHT_COLOR=--[[BOOL (bool)]] function(--[[Object (int)]] object,--[[BOOL (bool)]] p1,--[[int]] r,--[[int]] g,--[[int]] b)return native_invoker.unified_bool(object, p1, r, g, b, 0x5F048334B4A4E774, "ibiii")end - IS_PROP_LIGHT_OVERRIDEN=--[[BOOL (bool)]] function(--[[Object (int)]] object)return native_invoker.unified_bool(object, 0xADF084FB8F075D06, "i")end - SET_OBJECT_IS_VISIBLE_IN_MIRRORS=--[[void]] function(--[[Object (int)]] object,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(object, toggle, 0x3B2FD68DB5F8331C, "ib")end - SET_OBJECT_SPEED_BOOST_AMOUNT=--[[void]] function(--[[Object (int)]] object,--[[Any (int)]] p1)return native_invoker.unified_void(object, p1, 0x96EE0EBA0163DF80, "ii")end - SET_OBJECT_SPEED_BOOST_DURATION=--[[void]] function(--[[Object (int)]] object,--[[float]] duration)return native_invoker.unified_void(object, duration, 0xDF6CA0330F2E737B, "if")end - -- returns pickup hash. - -- - -- Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json - CONVERT_OLD_PICKUP_TYPE_TO_NEW=--[[Hash (int)]] function(--[[Hash (int)]] pickupHash)return native_invoker.unified_int(pickupHash, 0x5EAAD83F8CFB4575, "i")end - SET_FORCE_OBJECT_THIS_FRAME=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] p3)return native_invoker.unified_void(x, y, z, p3, 0xF538081986E49E9D, "ffff")end - -- is this like setting is as no longer needed? - ONLY_CLEAN_UP_OBJECT_WHEN_OUT_OF_RANGE=--[[void]] function(--[[Object (int)]] object)return native_invoker.unified_void(object, 0xADBE4809F19F927A, "i")end - SET_DISABLE_COLLISIONS_BETWEEN_CARS_AND_CAR_PARACHUTE=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x8CAAB2BD3EA58BD4, "i")end - SET_PROJECTILES_SHOULD_EXPLODE_ON_CONTACT=--[[void]] function(--[[Entity (int)]] entity,--[[Any (int)]] p1)return native_invoker.unified_void(entity, p1, 0x63ECF581BC70E363, "ii")end - -- Activate the physics to: "xs_prop_arena_{flipper,wall,bollard,turntable,pit}" - SET_DRIVE_ARTICULATED_JOINT=--[[void]] function(--[[Object (int)]] object,--[[BOOL (bool)]] toggle,--[[int]] p2)return native_invoker.unified_void(object, toggle, p2, 0x911024442F4898F0, "ibi")end - SET_DRIVE_ARTICULATED_JOINT_WITH_INFLICTOR=--[[void]] function(--[[Object (int)]] object,--[[BOOL (bool)]] toggle,--[[int]] p2,--[[Ped (int)]] ped)return native_invoker.unified_void(object, toggle, p2, ped, 0xB20834A7DD3D8896, "ibii")end - SET_OBJECT_IS_A_PRESSURE_PLATE=--[[void]] function(--[[Object (int)]] object,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(object, toggle, 0x734E1714D077DA9A, "ib")end - SET_WEAPON_IMPACTS_APPLY_GREATER_FORCE=--[[void]] function(--[[Object (int)]] object,--[[BOOL (bool)]] p1)return native_invoker.unified_void(object, p1, 0x1A6CBB06E2D0D79D, "ib")end - GET_IS_ARTICULATED_JOINT_AT_MIN_ANGLE=--[[BOOL (bool)]] function(--[[Object (int)]] object,--[[Any (int)]] p1)return native_invoker.unified_bool(object, p1, 0x43C677F1E1158005, "ii")end - GET_IS_ARTICULATED_JOINT_AT_MAX_ANGLE=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_bool(p0, p1, 0x3BD770D281982DB5, "ii")end - SET_IS_OBJECT_ARTICULATED=--[[void]] function(--[[Object (int)]] object,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(object, toggle, 0x1C57C94A6446492A, "ib")end - SET_IS_OBJECT_BALL=--[[void]] function(--[[Object (int)]] object,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(object, toggle, 0xB5B7742424BD4445, "ib")end --- PAD - -- control: 0: PLAYER_CONTROL, 1: CAMERA_CONTROL, 2: FRONTEND_CONTROL - -- For more info, see https://docs.fivem.net/docs/game-references/controls/ - IS_CONTROL_ENABLED=--[[BOOL (bool)]] function(--[[int]] control,--[[int]] action)return native_invoker.unified_bool(control, action, 0x1CEA6BFDF248E5D9, "ii")end - -- Returns whether a control is currently pressed. - -- control: see IS_CONTROL_ENABLED - IS_CONTROL_PRESSED=--[[BOOL (bool)]] function(--[[int]] control,--[[int]] action)return native_invoker.unified_bool(control, action, 0xF3A21BCD95725A4A, "ii")end - -- Returns whether a control is currently _not_ pressed. - -- control: see IS_CONTROL_ENABLED - IS_CONTROL_RELEASED=--[[BOOL (bool)]] function(--[[int]] control,--[[int]] action)return native_invoker.unified_bool(control, action, 0x648EE3E7F38877DD, "ii")end - -- Returns whether a control was newly pressed since the last check. - -- control: see IS_CONTROL_ENABLED - IS_CONTROL_JUST_PRESSED=--[[BOOL (bool)]] function(--[[int]] control,--[[int]] action)return native_invoker.unified_bool(control, action, 0x580417101DDB492F, "ii")end - -- Returns whether a control was newly released since the last check. - -- control: see IS_CONTROL_ENABLED - IS_CONTROL_JUST_RELEASED=--[[BOOL (bool)]] function(--[[int]] control,--[[int]] action)return native_invoker.unified_bool(control, action, 0x50F940259D3841E6, "ii")end - -- control: see IS_CONTROL_ENABLED - GET_CONTROL_VALUE=--[[int]] function(--[[int]] control,--[[int]] action)return native_invoker.unified_int(control, action, 0xD95E79E8686D2C27, "ii")end - -- Returns the value of GET_CONTROL_VALUE normalized (i.e. a real number value between -1 and 1) - -- - -- control: see IS_CONTROL_ENABLED - GET_CONTROL_NORMAL=--[[float]] function(--[[int]] control,--[[int]] action)return native_invoker.unified_float(control, action, 0xEC3C9B8D5327B563, "ii")end - SET_USE_ADJUSTED_MOUSE_COORDS=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x5B73C77D9EB66E24, "b")end - -- Seems to return values between -1 and 1 for controls like gas and steering. - -- - -- control: see IS_CONTROL_ENABLED - GET_CONTROL_UNBOUND_NORMAL=--[[float]] function(--[[int]] control,--[[int]] action)return native_invoker.unified_float(control, action, 0x5B84D09CEC5209C5, "ii")end - -- This is for simulating player input. - -- value is a float value from 0 - 1 - -- - -- control: see IS_CONTROL_ENABLED - SET_CONTROL_VALUE_NEXT_FRAME=--[[BOOL (bool)]] function(--[[int]] control,--[[int]] action,--[[float]] value)return native_invoker.unified_bool(control, action, value, 0xE8A25867FBA3B05E, "iif")end - -- control: see IS_CONTROL_ENABLED - IS_DISABLED_CONTROL_PRESSED=--[[BOOL (bool)]] function(--[[int]] control,--[[int]] action)return native_invoker.unified_bool(control, action, 0xE2587F8CBBD87B1D, "ii")end - -- control: see IS_CONTROL_ENABLED - IS_DISABLED_CONTROL_RELEASED=--[[BOOL (bool)]] function(--[[int]] control,--[[int]] action)return native_invoker.unified_bool(control, action, 0xFB6C4072E9A32E92, "ii")end - -- control: see IS_CONTROL_ENABLED - IS_DISABLED_CONTROL_JUST_PRESSED=--[[BOOL (bool)]] function(--[[int]] control,--[[int]] action)return native_invoker.unified_bool(control, action, 0x91AEF906BCA88877, "ii")end - -- control: see IS_CONTROL_ENABLED - IS_DISABLED_CONTROL_JUST_RELEASED=--[[BOOL (bool)]] function(--[[int]] control,--[[int]] action)return native_invoker.unified_bool(control, action, 0x305C8DCD79DA8B0F, "ii")end - -- control: see IS_CONTROL_ENABLED - GET_DISABLED_CONTROL_NORMAL=--[[float]] function(--[[int]] control,--[[int]] action)return native_invoker.unified_float(control, action, 0x11E65974A982637C, "ii")end - -- The "disabled" variant of GET_CONTROL_UNBOUND_NORMAL. - -- - -- control: see IS_CONTROL_ENABLED - GET_DISABLED_CONTROL_UNBOUND_NORMAL=--[[float]] function(--[[int]] control,--[[int]] action)return native_invoker.unified_float(control, action, 0x4F8A26A890FD62FB, "ii")end - -- Returns time in ms since last input. - -- - -- control: see IS_CONTROL_ENABLED - GET_CONTROL_HOW_LONG_AGO=--[[int]] function(--[[int]] control)return native_invoker.unified_int(control, 0xD7D22F5592AED8BA, "i")end - -- control: unused parameter - IS_USING_KEYBOARD_AND_MOUSE=--[[BOOL (bool)]] function(--[[int]] control)return native_invoker.unified_bool(control, 0xA571D46727E2B718, "i")end - -- control: see IS_CONTROL_ENABLED - IS_USING_CURSOR=--[[BOOL (bool)]] function(--[[int]] control)return native_invoker.unified_bool(control, 0x13337B38DB572509, "i")end - SET_CURSOR_POSITION=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y)return native_invoker.unified_bool(x, y, 0xFC695459D4D0E219, "ff")end - -- control: see IS_CONTROL_ENABLED - -- - -- Hardcoded to return false. - IS_USING_REMOTE_PLAY=--[[BOOL (bool)]] function(--[[int]] control)return native_invoker.unified_bool(control, 0x23F09EADC01449D6, "i")end - -- control: unused parameter - HAVE_CONTROLS_CHANGED=--[[BOOL (bool)]] function(--[[int]] control)return native_invoker.unified_bool(control, 0x6CD79468A1E595C6, "i")end - -- allowXOSwap appears to always be true. - -- - -- EG: - -- GET_CONTROL_INSTRUCTIONAL_BUTTON (2, 201, 1) /*INPUT_FRONTEND_ACCEPT (e.g. Enter button)*/ - -- GET_CONTROL_INSTRUCTIONAL_BUTTON (2, 202, 1) /*INPUT_FRONTEND_CANCEL (e.g. ESC button)*/ - -- GET_CONTROL_INSTRUCTIONAL_BUTTON (2, 51, 1) /*INPUT_CONTEXT (e.g. E button)*/ - -- - -- gtaforums.com/topic/819070-c-draw-instructional-buttons-scaleform-movie/#entry1068197378 - -- - -- control: unused parameter - GET_CONTROL_INSTRUCTIONAL_BUTTONS_STRING=--[[string]] function(--[[int]] control,--[[int]] action,--[[BOOL (bool)]] allowXOSwap)return native_invoker.unified_string(control, action, allowXOSwap, 0x0499D7B09FC9B407, "iib")end - -- control: unused parameter - GET_CONTROL_GROUP_INSTRUCTIONAL_BUTTONS_STRING=--[[string]] function(--[[int]] control,--[[int]] controlGroup,--[[BOOL (bool)]] allowXOSwap)return native_invoker.unified_string(control, controlGroup, allowXOSwap, 0x80C2FD58D720C801, "iib")end - -- control: see IS_CONTROL_ENABLED - SET_CONTROL_LIGHT_EFFECT_COLOR=--[[void]] function(--[[int]] control,--[[int]] red,--[[int]] green,--[[int]] blue)return native_invoker.unified_void(control, red, green, blue, 0x8290252FFF36ACB5, "iiii")end - -- control: see IS_CONTROL_ENABLED - CLEAR_CONTROL_LIGHT_EFFECT=--[[void]] function(--[[int]] control)return native_invoker.unified_void(control, 0xCB0360EFEFB2580D, "i")end - -- control: see IS_CONTROL_ENABLED - -- duration in milliseconds - -- frequency should range from about 10 (slow vibration) to 255 (very fast) - -- - -- example: - -- SET_CONTROL_SHAKE(PLAYER_CONTROL, 100, 200); - SET_CONTROL_SHAKE=--[[void]] function(--[[int]] control,--[[int]] duration,--[[int]] frequency)return native_invoker.unified_void(control, duration, frequency, 0x48B3886C1358D0D5, "iii")end - -- Does nothing (it's a nullsub). - SET_CONTROL_TRIGGER_SHAKE=--[[void]] function(--[[int]] control,--[[int]] leftDuration,--[[int]] leftFrequency,--[[int]] rightDuration,--[[int]] rightFrequency)return native_invoker.unified_void(control, leftDuration, leftFrequency, rightDuration, rightFrequency, 0x14D29BB12D47F68C, "iiiii")end - -- control: see IS_CONTROL_ENABLED - STOP_CONTROL_SHAKE=--[[void]] function(--[[int]] control)return native_invoker.unified_void(control, 0x38C16A305E8CDC8D, "i")end - -- control: see IS_CONTROL_ENABLED - SET_CONTROL_SHAKE_SUPPRESSED_ID=--[[void]] function(--[[int]] control,--[[int]] uniqueId)return native_invoker.unified_void(control, uniqueId, 0xF239400E16C23E08, "ii")end - -- control: see IS_CONTROL_ENABLED - CLEAR_CONTROL_SHAKE_SUPPRESSED_ID=--[[void]] function(--[[int]] control)return native_invoker.unified_void(control, 0xA0CEFCEA390AAB9B, "i")end - IS_LOOK_INVERTED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x77B612531280010D, "")end - -- Used with IS_LOOK_INVERTED() and negates its affect. - -- - -- -- - -- - -- Not sure how the person above got that description, but here's an actual example: - -- - -- if (PAD::IS_USING_KEYBOARD_AND_MOUSE(2)) { - -- if (a_5) { - -- if (PAD::IS_LOOK_INVERTED()) { - -- a_3 *= -1; - -- } - -- if (PAD::IS_MOUSE_LOOK_INVERTED()) { - -- a_3 *= -1; - -- } - -- } - -- } - IS_MOUSE_LOOK_INVERTED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xE1615EC03B3BB4FD, "")end - -- Hard-coded to return 3 if using KBM, otherwise same behavior as GET_LOCAL_PLAYER_GAMEPAD_AIM_STATE. - GET_LOCAL_PLAYER_AIM_STATE=--[[int]] function()return native_invoker.unified_int(0xBB41AFBBBC0A0287, "")end - -- Returns the local player's targeting mode. See PLAYER::SET_PLAYER_TARGETING_MODE. - GET_LOCAL_PLAYER_GAMEPAD_AIM_STATE=--[[int]] function()return native_invoker.unified_int(0x59B9A7AF4C95133C, "")end - GET_IS_USING_ALTERNATE_HANDBRAKE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x25AAA32BDC98F2A3, "")end - -- Returns profile setting 225. - GET_IS_USING_ALTERNATE_DRIVEBY=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x0F70731BACCFBB96, "")end - -- Returns profile setting 17. - GET_ALLOW_MOVEMENT_WHILE_ZOOMED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xFC859E2374407556, "")end - SET_PLAYERPAD_SHAKES_WHEN_CONTROLLER_DISABLED=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x798FDEB5B1575088, "b")end - -- control: see IS_CONTROL_ENABLED - SET_INPUT_EXCLUSIVE=--[[void]] function(--[[int]] control,--[[int]] action)return native_invoker.unified_void(control, action, 0xEDE476E5EE29EDB1, "ii")end - -- control: see IS_CONTROL_ENABLED - DISABLE_CONTROL_ACTION=--[[void]] function(--[[int]] control,--[[int]] action,--[[BOOL (bool)]] disableRelatedActions)return native_invoker.unified_void(control, action, disableRelatedActions, 0xFE99B66D079CF6BC, "iib")end - -- control: see IS_CONTROL_ENABLED - ENABLE_CONTROL_ACTION=--[[void]] function(--[[int]] control,--[[int]] action,--[[BOOL (bool)]] enableRelatedActions)return native_invoker.unified_void(control, action, enableRelatedActions, 0x351220255D64C155, "iib")end - -- control: see IS_CONTROL_ENABLED - DISABLE_ALL_CONTROL_ACTIONS=--[[void]] function(--[[int]] control)return native_invoker.unified_void(control, 0x5F4B6931816E599B, "i")end - -- control: see IS_CONTROL_ENABLED - ENABLE_ALL_CONTROL_ACTIONS=--[[void]] function(--[[int]] control)return native_invoker.unified_void(control, 0xA5FFE9B05F199DE7, "i")end - -- Used in carsteal3 script with schemeName = "Carsteal4_spycar". - INIT_PC_SCRIPTED_CONTROLS=--[[BOOL (bool)]] function(--[[string]] schemeName)return native_invoker.unified_bool(schemeName, 0x3D42B92563939375, "s")end - -- Same as INIT_PC_SCRIPTED_CONTROLS - SWITCH_PC_SCRIPTED_CONTROLS=--[[BOOL (bool)]] function(--[[string]] schemeName)return native_invoker.unified_bool(schemeName, 0x4683149ED1DDE7A1, "s")end - SHUTDOWN_PC_SCRIPTED_CONTROLS=--[[void]] function()return native_invoker.unified_void(0x643ED62D5EA3BEBD, "")end - -- control: see IS_CONTROL_ENABLED - ALLOW_ALTERNATIVE_SCRIPT_CONTROLS_LAYOUT=--[[void]] function(--[[int]] control)return native_invoker.unified_void(control, 0x7F4724035FDCA1DD, "i")end --- PATHFIND - -- When nodeEnabled is set to false, all nodes in the area get disabled. - -- `GET_VEHICLE_NODE_IS_SWITCHED_OFF` returns true afterwards. - -- If it's true, `GET_VEHICLE_NODE_IS_SWITCHED_OFF` returns false. - SET_ROADS_IN_AREA=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[BOOL (bool)]] nodeEnabled,--[[BOOL (bool)]] unknown2)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, nodeEnabled, unknown2, 0xBF1A602B5BA52FEE, "ffffffbb")end - -- unknown3 is related to `SEND_SCRIPT_WORLD_STATE_EVENT > CNetworkRoadNodeWorldStateData` in networked environments. - -- See IS_POINT_IN_ANGLED_AREA for the definition of an angled area. - SET_ROADS_IN_ANGLED_AREA=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] width,--[[BOOL (bool)]] unknown1,--[[BOOL (bool)]] unknown2,--[[BOOL (bool)]] unknown3)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, width, unknown1, unknown2, unknown3, 0x1A5AA1208AF5DB59, "fffffffbbb")end - SET_PED_PATHS_IN_AREA=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[BOOL (bool)]] p6,--[[Any (int)]] p7)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, p6, p7, 0x34F060F4BF92E018, "ffffffbi")end - -- Flags are: - -- 1 = 1 = B02_IsFootpath - -- 2 = 4 = !B15_InteractionUnk - -- 4 = 0x20 = !B14_IsInterior - -- 8 = 0x40 = !B07_IsWater - -- 16 = 0x200 = B17_IsFlatGround - -- When onGround == true outPosition is a position located on the nearest pavement. - -- - -- When a safe coord could not be found the result of a function is false and outPosition == Vector3.Zero. - -- - -- In the scripts these flags are used: 0, 14, 12, 16, 20, 21, 28. 0 is most commonly used, then 16. - -- - -- 16 works for me, 0 crashed the script. - GET_SAFE_COORD_FOR_PED=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] onGround,--[[Vector3* (pointer)]] outPosition,--[[int]] flags)return native_invoker.unified_bool(x, y, z, onGround, outPosition, flags, 0xB61C8E878A4199CA, "fffbpi")end - -- https://gtaforums.com/topic/843561-pathfind-node-types - GET_CLOSEST_VEHICLE_NODE=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[Vector3* (pointer)]] outPosition,--[[int]] nodeFlags,--[[float]] p5,--[[float]] p6)return native_invoker.unified_bool(x, y, z, outPosition, nodeFlags, p5, p6, 0x240A18690AE96513, "fffpiff")end - -- Get the closest vehicle node to a given position. - GET_CLOSEST_MAJOR_VEHICLE_NODE=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[Vector3* (pointer)]] outPosition,--[[float]] unknown1,--[[float]] unknown2)return native_invoker.unified_bool(x, y, z, outPosition, unknown1, unknown2, 0x2EABE3B06F58C1BE, "fffpff")end - -- p5, p6 and p7 seems to be about the same as p4, p5 and p6 for GET_CLOSEST_VEHICLE_NODE. p6 and/or p7 has something to do with finding a node on the same path/road and same direction(at least for this native, something to do with the heading maybe). Edit this when you find out more. - -- - -- nodeType: 0 = main roads, 1 = any dry path, 3 = water - -- p6 is always 3.0 - -- p7 is always 0 - -- - -- gtaforums.com/topic/843561-pathfind-node-types - -- - -- Example of usage, moving vehicle to closest path/road: - -- Vector3 coords = ENTITY::GET_ENTITY_COORDS(playerVeh, true); - -- Vector3 closestVehicleNodeCoords; - -- float roadHeading; - -- PATHFIND::GET_CLOSEST_VEHICLE_NODE_WITH_HEADING(coords.x, coords.y, coords.z, &closestVehicleNodeCoords, &roadHeading, 1, 3, 0); - -- ENTITY::SET_ENTITY_HEADING(playerVeh, roadHeading); - -- ENTITY::SET_ENTITY_COORDS(playerVeh, closestVehicleNodeCoords.x, closestVehicleNodeCoords.y, closestVehicleNodeCoords.z, 1, 0, 0, 1); - -- VEHICLE::SET_VEHICLE_ON_GROUND_PROPERLY(playerVeh); - -- - -- ------------------------------------------------------------------ - -- C# Example (ins1de) : https://pastebin.com/fxtMWAHD - GET_CLOSEST_VEHICLE_NODE_WITH_HEADING=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[Vector3* (pointer)]] outPosition,--[[float* (pointer)]] outHeading,--[[int]] nodeType,--[[float]] p6,--[[float]] p7)return native_invoker.unified_bool(x, y, z, outPosition, outHeading, nodeType, p6, p7, 0xFF071FB798B803B0, "fffppiff")end - GET_NTH_CLOSEST_VEHICLE_NODE=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] nthClosest,--[[Vector3* (pointer)]] outPosition,--[[int]] nodeFlags,--[[float]] unknown1,--[[float]] unknown2)return native_invoker.unified_bool(x, y, z, nthClosest, outPosition, nodeFlags, unknown1, unknown2, 0xE50E52416CCF948B, "fffipiff")end - -- Returns the id. - GET_NTH_CLOSEST_VEHICLE_NODE_ID=--[[int]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] nth,--[[int]] nodeFlags,--[[float]] p5,--[[float]] p6)return native_invoker.unified_int(x, y, z, nth, nodeFlags, p5, p6, 0x22D7275A79FE8215, "fffiiff")end - -- Get the nth closest vehicle node and its heading. - GET_NTH_CLOSEST_VEHICLE_NODE_WITH_HEADING=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] nthClosest,--[[Vector3* (pointer)]] outPosition,--[[float* (pointer)]] outHeading,--[[int* (pointer)]] outNumLanes,--[[int]] nodeFlags,--[[float]] unknown3,--[[float]] unknown4)return native_invoker.unified_bool(x, y, z, nthClosest, outPosition, outHeading, outNumLanes, nodeFlags, unknown3, unknown4, 0x80CA6A8B6C094CC4, "fffipppiff")end - GET_NTH_CLOSEST_VEHICLE_NODE_ID_WITH_HEADING=--[[int]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] nthClosest,--[[Vector3* (pointer)]] outPosition,--[[float* (pointer)]] outHeading,--[[int]] nodeFlags,--[[float]] p7,--[[float]] p8)return native_invoker.unified_int(x, y, z, nthClosest, outPosition, outHeading, nodeFlags, p7, p8, 0x6448050E9C2A7207, "fffippiff")end - -- See gtaforums.com/topic/843561-pathfind-node-types for node type info. 0 = paved road only, 1 = any road, 3 = water - -- - -- p10 always equals 3.0 - -- p11 always equals 0 - GET_NTH_CLOSEST_VEHICLE_NODE_FAVOUR_DIRECTION=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] desiredX,--[[float]] desiredY,--[[float]] desiredZ,--[[int]] nthClosest,--[[Vector3* (pointer)]] outPosition,--[[float* (pointer)]] outHeading,--[[int]] nodeFlags,--[[float]] p10,--[[float]] p11)return native_invoker.unified_bool(x, y, z, desiredX, desiredY, desiredZ, nthClosest, outPosition, outHeading, nodeFlags, p10, p11, 0x45905BE8654AE067, "ffffffippiff")end - -- Gets the density and flags of the closest node to the specified position. - -- Density is a value between 0 and 15, indicating how busy the road is. - -- Flags is a bit field. - GET_VEHICLE_NODE_PROPERTIES=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[int* (pointer)]] density,--[[int* (pointer)]] flags)return native_invoker.unified_bool(x, y, z, density, flags, 0x0568566ACBB5DEDC, "fffpp")end - -- Returns true if the id is non zero. - IS_VEHICLE_NODE_ID_VALID=--[[BOOL (bool)]] function(--[[int]] vehicleNodeId)return native_invoker.unified_bool(vehicleNodeId, 0x1EAF30FCFBF5AF74, "i")end - -- Calling this with an invalid node id, will crash the game. - -- Note that IS_VEHICLE_NODE_ID_VALID simply checks if nodeId is not zero. It does not actually ensure that the id is valid. - -- Eg. IS_VEHICLE_NODE_ID_VALID(1) will return true, but will crash when calling GET_VEHICLE_NODE_POSITION(). - GET_VEHICLE_NODE_POSITION=--[[void]] function(--[[int]] nodeId,--[[Vector3* (pointer)]] outPosition)return native_invoker.unified_void(nodeId, outPosition, 0x703123E5E7D429C2, "ip")end - -- Returns false for nodes that aren't used for GPS routes. - -- Example: - -- Nodes in Fort Zancudo and LSIA are false - GET_VEHICLE_NODE_IS_GPS_ALLOWED=--[[BOOL (bool)]] function(--[[int]] nodeID)return native_invoker.unified_bool(nodeID, 0xA2AE5C478B96E3B6, "i")end - -- Returns true when the node is Offroad. Alleys, some dirt roads, and carparks return true. - -- Normal roads where plenty of Peds spawn will return false - GET_VEHICLE_NODE_IS_SWITCHED_OFF=--[[BOOL (bool)]] function(--[[int]] nodeID)return native_invoker.unified_bool(nodeID, 0x4F5070AA58F69279, "i")end - -- p1 seems to be always 1.0f in the scripts - GET_CLOSEST_ROAD=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] p3,--[[int]] p4,--[[Vector3* (pointer)]] p5,--[[Vector3* (pointer)]] p6,--[[Any* (pointer)]] p7,--[[Any* (pointer)]] p8,--[[float* (pointer)]] p9,--[[BOOL (bool)]] p10)return native_invoker.unified_bool(x, y, z, p3, p4, p5, p6, p7, p8, p9, p10, 0x132F52BBA570FE92, "ffffipppppb")end - LOAD_ALL_PATH_NODES=--[[BOOL (bool)]] function(--[[BOOL (bool)]] set)return native_invoker.unified_bool(set, 0xC2AB6BFE34E92F8B, "b")end - SET_ALLOW_STREAM_PROLOGUE_NODES=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x228E5C6AD4D74BFD, "b")end - -- Activates Cayo Perico path nodes if passed `1`. GPS navigation will start working, maybe more stuff will change, not sure. It seems if you try to unload (pass `0`) when close to the island, your game might crash. - SET_ALLOW_STREAM_HEIST_ISLAND_NODES=--[[void]] function(--[[int]] type)return native_invoker.unified_void(type, 0xF74B1FFA4A15FBEA, "i")end - ARE_NODES_LOADED_FOR_AREA=--[[BOOL (bool)]] function(--[[float]] x1,--[[float]] y1,--[[float]] x2,--[[float]] y2)return native_invoker.unified_bool(x1, y1, x2, y2, 0xF7B79A50B905A30D, "ffff")end - -- Used internally for long range tasks - REQUEST_PATH_NODES_IN_AREA_THIS_FRAME=--[[BOOL (bool)]] function(--[[float]] x1,--[[float]] y1,--[[float]] x2,--[[float]] y2)return native_invoker.unified_bool(x1, y1, x2, y2, 0x07FB139B592FA687, "ffff")end - SET_ROADS_BACK_TO_ORIGINAL=--[[void]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[Any (int)]] p6)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, 0x1EE7063B80FFC77C, "ffffffi")end - -- See IS_POINT_IN_ANGLED_AREA for the definition of an angled area. - -- bool p7 - always 1 - SET_ROADS_BACK_TO_ORIGINAL_IN_ANGLED_AREA=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] width,--[[Any (int)]] p7)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, width, p7, 0x0027501B9F3B407E, "fffffffi")end - SET_AMBIENT_PED_RANGE_MULTIPLIER_THIS_FRAME=--[[void]] function(--[[float]] multiplier)return native_invoker.unified_void(multiplier, 0x0B919E1FB47CC4E0, "f")end - ADJUST_AMBIENT_PED_SPAWN_DENSITIES_THIS_FRAME=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5,--[[Any (int)]] p6)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, 0xAA76052DDA9BFC3E, "iiiiiii")end - -- p6 is always 0 - SET_PED_PATHS_BACK_TO_ORIGINAL=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[Any (int)]] p6)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, p6, 0xE04B48F2CC926253, "ffffffi")end - GET_RANDOM_VEHICLE_NODE=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[BOOL (bool)]] p4,--[[BOOL (bool)]] p5,--[[BOOL (bool)]] p6,--[[Vector3* (pointer)]] outPosition,--[[int* (pointer)]] nodeId)return native_invoker.unified_bool(x, y, z, radius, p4, p5, p6, outPosition, nodeId, 0x93E0DB8440B73A7D, "ffffbbbpp")end - GET_SPAWN_COORDS_FOR_VEHICLE_NODE=--[[Vector3 (vector3)]] function(--[[int]] nodeAddress,--[[float]] towardsCoorsX,--[[float]] towardsCoorsY,--[[float]] towardsCoorsZ,--[[Vector3* (pointer)]] centrePoint,--[[float* (pointer)]] heading)return native_invoker.unified_vector3(nodeAddress, towardsCoorsX, towardsCoorsY, towardsCoorsZ, centrePoint, heading, 0x809549AFC7AEC597, "ifffpp")end - -- Determines the name of the street which is the closest to the given coordinates. - -- - -- x,y,z - the coordinates of the street - -- streetName - returns a hash to the name of the street the coords are on - -- crossingRoad - if the coordinates are on an intersection, a hash to the name of the crossing road - -- - -- Note: the names are returned as hashes, the strings can be returned using the function HUD::GET_STREET_NAME_FROM_HASH_KEY. - GET_STREET_NAME_AT_COORD=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[Hash* (pointer)]] streetName,--[[Hash* (pointer)]] crossingRoad)return native_invoker.unified_void(x, y, z, streetName, crossingRoad, 0x2EB41072B4C1E4C0, "fffpp")end - -- p3 is 0 in the only game script occurrence (trevor3) but 1 doesn't seem to make a difference - -- - -- distToNxJunction seems to be the distance in metres * 10.0f - -- - -- direction: - -- 0 = This happens randomly during the drive for seemingly no reason but if you consider that this native is only used in trevor3, it seems to mean "Next frame, stop whatever's being said and tell the player the direction." - -- 1 = Route is being calculated or the player is going in the wrong direction - -- 2 = Please Proceed the Highlighted Route - -- 3 = In (distToNxJunction) Turn Left - -- 4 = In (distToNxJunction) Turn Right - -- 5 = In (distToNxJunction) Keep Straight - -- 6 = In (distToNxJunction) Turn Sharply To The Left - -- 7 = In (distToNxJunction) Turn Sharply To The Right - -- 8 = Route is being recalculated or the navmesh is confusing. This happens randomly during the drive but consistently at {2044.0358, 2996.6116, 44.9717} if you face towards the bar and the route needs you to turn right. In that particular case, it could be a bug with how the turn appears to be 270 deg. CCW instead of "right." Either way, this seems to be the engine saying "I don't know the route right now." - -- - -- return value set to 0 always - GENERATE_DIRECTIONS_TO_COORD=--[[int]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] p3,--[[int* (pointer)]] direction,--[[float* (pointer)]] p5,--[[float* (pointer)]] distToNxJunction)return native_invoker.unified_int(x, y, z, p3, direction, p5, distToNxJunction, 0xF90125F1F79ECDF8, "fffbppp")end - SET_IGNORE_NO_GPS_FLAG=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x72751156E7678833, "b")end - -- See: SET_BLIP_ROUTE - SET_IGNORE_NO_GPS_FLAG_UNTIL_FIRST_NORMAL_NODE=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x1FC289A0C3FF470F, "b")end - SET_GPS_DISABLED_ZONE=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z3)return native_invoker.unified_void(x1, y1, z1, x2, y2, z3, 0xDC20483CD3DD5201, "ffffff")end - GET_GPS_BLIP_ROUTE_LENGTH=--[[int]] function()return native_invoker.unified_int(0xBBB45C3CF5C8AA85, "")end - -- p3 can be 0, 1 or 2. - GET_POS_ALONG_GPS_TYPE_ROUTE=--[[BOOL (bool)]] function(--[[Vector3* (pointer)]] result,--[[BOOL (bool)]] p1,--[[float]] p2,--[[int]] p3)return native_invoker.unified_bool(result, p1, p2, p3, 0xF3162836C28F9DA5, "pbfi")end - GET_GPS_BLIP_ROUTE_FOUND=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x869DAACBBE9FA006, "")end - GET_ROAD_BOUNDARY_USING_HEADING=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] heading,--[[Vector3* (pointer)]] outPosition)return native_invoker.unified_bool(x, y, z, heading, outPosition, 0xA0F8A7517A273C05, "ffffp")end - GET_POSITION_BY_SIDE_OF_ROAD=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] p3,--[[Vector3* (pointer)]] outPosition)return native_invoker.unified_bool(x, y, z, p3, outPosition, 0x16F46FB18C8009E4, "fffip")end - -- Gets a value indicating whether the specified position is on a road. - -- The vehicle parameter is not implemented (ignored). - IS_POINT_ON_ROAD=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(x, y, z, vehicle, 0x125BF4ABFC536B09, "fffi")end - -- Gets the next zone that has been disabled using SET_GPS_DISABLED_ZONE_AT_INDEX. - GET_NEXT_GPS_DISABLED_ZONE_INDEX=--[[int]] function()return native_invoker.unified_int(0xD3A6A0EF48823A8C, "")end - -- Disables the GPS route displayed on the minimap while within a certain zone (area). When in a disabled zone and creating a waypoint, the GPS route is not shown on the minimap until you are outside of the zone. When disabled, the direct distance is shown on minimap opposed to distance to travel. Seems to only work before setting a waypoint. - -- You can clear the disabled zone with CLEAR_GPS_DISABLED_ZONE_AT_INDEX. - -- - -- **Setting a waypoint at the same coordinate:** - -- Disabled Zone: https://i.imgur.com/P9VUuxM.png - -- Enabled Zone (normal): https://i.imgur.com/BPi24aw.png - SET_GPS_DISABLED_ZONE_AT_INDEX=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[int]] index)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, index, 0xD0BC1C6FB18EE154, "ffffffi")end - -- Clears a disabled GPS route area from a certain index previously set using `SET_GPS_DISABLED_ZONE_AT_INDEX`. - CLEAR_GPS_DISABLED_ZONE_AT_INDEX=--[[void]] function(--[[int]] index)return native_invoker.unified_void(index, 0x2801D0012266DF07, "i")end - ADD_NAVMESH_REQUIRED_REGION=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] radius)return native_invoker.unified_void(x, y, radius, 0x387EAD7EE42F6685, "fff")end - REMOVE_NAVMESH_REQUIRED_REGIONS=--[[void]] function()return native_invoker.unified_void(0x916F0A3CDEC3445E, "")end - IS_NAVMESH_REQUIRED_REGION_IN_USE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x705A844002B39DC0, "")end - -- Set toggle true to disable navmesh. - -- Set toggle false to enable navmesh. - DISABLE_NAVMESH_IN_AREA=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, toggle, 0x4C8872D8CDBE1B8B, "ffffffb")end - ARE_ALL_NAVMESH_REGIONS_LOADED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x8415D95B194A3AEA, "")end - -- Returns whether navmesh for the region is loaded. The region is a rectangular prism defined by it's top left deepest corner to it's bottom right shallowest corner. - -- - -- If you can re-word this so it makes more sense, please do. I'm horrible with words sometimes... - IS_NAVMESH_LOADED_IN_AREA=--[[BOOL (bool)]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2)return native_invoker.unified_bool(x1, y1, z1, x2, y2, z2, 0xF813C7E63F9062A5, "ffffff")end - GET_NUM_NAVMESHES_EXISTING_IN_AREA=--[[int]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2)return native_invoker.unified_int(x1, y1, z1, x2, y2, z2, 0x01708E8DD3FF8C65, "ffffff")end - ADD_NAVMESH_BLOCKING_OBJECT=--[[int]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[float]] p6,--[[BOOL (bool)]] p7,--[[Any (int)]] p8)return native_invoker.unified_int(p0, p1, p2, p3, p4, p5, p6, p7, p8, 0xFCD5C8E06E502F5A, "fffffffbi")end - UPDATE_NAVMESH_BLOCKING_OBJECT=--[[void]] function(--[[Any (int)]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[float]] p6,--[[float]] p7,--[[Any (int)]] p8)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, p7, p8, 0x109E99373F290687, "ifffffffi")end - REMOVE_NAVMESH_BLOCKING_OBJECT=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x46399A7895957C0E, "i")end - DOES_NAVMESH_BLOCKING_OBJECT_EXIST=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x0EAEB0DB4B132399, "i")end - -- Returns CGameWorldHeightMap's maximum Z value at specified point (grid node). - GET_APPROX_HEIGHT_FOR_POINT=--[[float]] function(--[[float]] x,--[[float]] y)return native_invoker.unified_float(x, y, 0x29C24BFBED8AB8FB, "ff")end - -- Returns CGameWorldHeightMap's maximum Z among all grid nodes that intersect with the specified rectangle. - GET_APPROX_HEIGHT_FOR_AREA=--[[float]] function(--[[float]] x1,--[[float]] y1,--[[float]] x2,--[[float]] y2)return native_invoker.unified_float(x1, y1, x2, y2, 0x8ABE8608576D9CE3, "ffff")end - -- Returns CGameWorldHeightMap's minimum Z value at specified point (grid node). - GET_APPROX_FLOOR_FOR_POINT=--[[float]] function(--[[float]] x,--[[float]] y)return native_invoker.unified_float(x, y, 0x336511A34F2E5185, "ff")end - -- Returns CGameWorldHeightMap's minimum Z among all grid nodes that intersect with the specified rectangle. - GET_APPROX_FLOOR_FOR_AREA=--[[float]] function(--[[float]] x1,--[[float]] y1,--[[float]] x2,--[[float]] y2)return native_invoker.unified_float(x1, y1, x2, y2, 0x3599D741C9AC6310, "ffff")end - -- Calculates the travel distance between a set of points. - -- - -- Doesn't seem to correlate with distance on gps sometimes. - -- This function returns the value 100000.0 over long distances, seems to be a failure mode result, potentially occurring when not all path nodes are loaded into pathfind. - CALCULATE_TRAVEL_DISTANCE_BETWEEN_POINTS=--[[float]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2)return native_invoker.unified_float(x1, y1, z1, x2, y2, z2, 0xADD95C7005C4A197, "ffffff")end --- PED - -- https://alloc8or.re/gta5/doc/enums/ePedType.txt - -- - -- Full list of peds by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/peds.json - CREATE_PED=--[[Ped (int)]] function(--[[int]] pedType,--[[Hash (int)]] modelHash,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] heading,--[[BOOL (bool)]] isNetwork,--[[BOOL (bool)]] bScriptHostPed)return native_invoker.unified_int(pedType, modelHash, x, y, z, heading, isNetwork, bScriptHostPed, 0xD49F9B0955C367DE, "iiffffbb")end - -- Deletes the specified ped, then sets the handle pointed to by the pointer to NULL. - DELETE_PED=--[[void]] function(--[[Ped* (pointer)]] ped)return native_invoker.unified_void(ped, 0x9614299DCB53E54B, "p")end - CLONE_PED=--[[Ped (int)]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] isNetwork,--[[BOOL (bool)]] bScriptHostPed,--[[BOOL (bool)]] copyHeadBlendFlag)return native_invoker.unified_int(ped, isNetwork, bScriptHostPed, copyHeadBlendFlag, 0xEF29A16337FACADB, "ibbb")end - CLONE_PED_ALT=--[[Ped (int)]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] isNetwork,--[[BOOL (bool)]] bScriptHostPed,--[[BOOL (bool)]] copyHeadBlendFlag,--[[BOOL (bool)]] p4)return native_invoker.unified_int(ped, isNetwork, bScriptHostPed, copyHeadBlendFlag, p4, 0x668FD40BCBA5DE48, "ibbbb")end - -- Copies ped's components and props to targetPed. - CLONE_PED_TO_TARGET=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] targetPed)return native_invoker.unified_void(ped, targetPed, 0xE952D6431689AD9A, "ii")end - CLONE_PED_TO_TARGET_ALT=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] targetPed,--[[BOOL (bool)]] p2)return native_invoker.unified_void(ped, targetPed, p2, 0x148B08C2D2ACB884, "iib")end - -- Gets a value indicating whether the specified ped is in the specified vehicle. - -- - -- If 'atGetIn' is false, the function will not return true until the ped is sitting in the vehicle and is about to close the door. If it's true, the function returns true the moment the ped starts to get onto the seat (after opening the door). Eg. if false, and the ped is getting into a submersible, the function will not return true until the ped has descended down into the submersible and gotten into the seat, while if it's true, it'll return true the moment the hatch has been opened and the ped is about to descend into the submersible. - IS_PED_IN_VEHICLE=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] atGetIn)return native_invoker.unified_bool(ped, vehicle, atGetIn, 0xA3EE4A07279BB9DB, "iib")end - IS_PED_IN_MODEL=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Hash (int)]] modelHash)return native_invoker.unified_bool(ped, modelHash, 0x796D90EFB19AA332, "ii")end - -- Gets a value indicating whether the specified ped is in any vehicle. - -- - -- If 'atGetIn' is false, the function will not return true until the ped is sitting in the vehicle and is about to close the door. If it's true, the function returns true the moment the ped starts to get onto the seat (after opening the door). Eg. if false, and the ped is getting into a submersible, the function will not return true until the ped has descended down into the submersible and gotten into the seat, while if it's true, it'll return true the moment the hatch has been opened and the ped is about to descend into the submersible. - IS_PED_IN_ANY_VEHICLE=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] atGetIn)return native_invoker.unified_bool(ped, atGetIn, 0x997ABD671D25CA0B, "ib")end - -- xyz - relative to the world origin. - IS_COP_PED_IN_AREA_3D=--[[BOOL (bool)]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2)return native_invoker.unified_bool(x1, y1, z1, x2, y2, z2, 0x16EC4839969F9F5E, "ffffff")end - -- Gets a value indicating whether this ped's health is below its injured threshold. - -- - -- The default threshold is 100. - IS_PED_INJURED=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x84A2DD9AC37C35C1, "i")end - -- Returns whether the specified ped is hurt. - IS_PED_HURT=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x5983BB449D7FDB12, "i")end - -- Gets a value indicating whether this ped's health is below its fatally injured threshold. The default threshold is 100. - -- If the handle is invalid, the function returns true. - IS_PED_FATALLY_INJURED=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xD839450756ED5A80, "i")end - -- Seems to consistently return true if the ped is dead. - -- - -- p1 is always passed 1 in the scripts. - -- - -- I suggest to remove "OR_DYING" part, because it does not detect dying phase. - -- - -- That's what the devs call it, cry about it. - -- - -- lol - IS_PED_DEAD_OR_DYING=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1)return native_invoker.unified_bool(ped, p1, 0x3317DEDB88C95038, "ib")end - IS_CONVERSATION_PED_DEAD=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xE0A0AEC214B1FABA, "i")end - IS_PED_AIMING_FROM_COVER=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x3998B1276A3300E5, "i")end - -- Returns whether the specified ped is reloading. - IS_PED_RELOADING=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x24B100C68C645951, "i")end - -- Returns true if the given ped has a valid pointer to CPlayerInfo in its CPed class. That's all. - IS_PED_A_PLAYER=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x12534C348C6CB68B, "i")end - -- pedType: see CREATE_PED - -- - -- Full list of peds by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/peds.json - CREATE_PED_INSIDE_VEHICLE=--[[Ped (int)]] function(--[[Vehicle (int)]] vehicle,--[[int]] pedType,--[[Hash (int)]] modelHash,--[[int]] seat,--[[BOOL (bool)]] isNetwork,--[[BOOL (bool)]] bScriptHostPed)return native_invoker.unified_int(vehicle, pedType, modelHash, seat, isNetwork, bScriptHostPed, 0x7DD959874C1FD534, "iiiibb")end - SET_PED_DESIRED_HEADING=--[[void]] function(--[[Ped (int)]] ped,--[[float]] heading)return native_invoker.unified_void(ped, heading, 0xAA5A7ECE2AA8FE70, "if")end - FORCE_ALL_HEADING_VALUES_TO_ALIGN=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xFF287323B0E2C69A, "i")end - -- angle is ped's view cone - IS_PED_FACING_PED=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Ped (int)]] otherPed,--[[float]] angle)return native_invoker.unified_bool(ped, otherPed, angle, 0xD71649DB0A545AA3, "iif")end - -- Notes: The function only returns true while the ped is: - -- A.) Swinging a random melee attack (including pistol-whipping) - -- - -- B.) Reacting to being hit by a melee attack (including pistol-whipping) - -- - -- C.) Is locked-on to an enemy (arms up, strafing/skipping in the default fighting-stance, ready to dodge+counter). - -- - -- You don't have to be holding the melee-targetting button to be in this stance; you stay in it by default for a few seconds after swinging at someone. If you do a sprinting punch, it returns true for the duration of the punch animation and then returns false again, even if you've punched and made-angry many peds - IS_PED_IN_MELEE_COMBAT=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x4E209B2C1EAD5159, "i")end - -- Returns true if the ped doesn't do any movement. If the ped is being pushed forwards by using APPLY_FORCE_TO_ENTITY for example, the function returns false. - IS_PED_STOPPED=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x530944F6F4B8A214, "i")end - IS_PED_SHOOTING_IN_AREA=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[BOOL (bool)]] p7,--[[BOOL (bool)]] p8)return native_invoker.unified_bool(ped, x1, y1, z1, x2, y2, z2, p7, p8, 0x7E9DFE24AC1E58EF, "iffffffbb")end - IS_ANY_PED_SHOOTING_IN_AREA=--[[BOOL (bool)]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[BOOL (bool)]] p6,--[[BOOL (bool)]] p7)return native_invoker.unified_bool(x1, y1, z1, x2, y2, z2, p6, p7, 0xA0D3D71EA1086C55, "ffffffbb")end - -- Returns whether the specified ped is shooting. - IS_PED_SHOOTING=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x34616828CD07F1A1, "i")end - -- accuracy = 0-100, 100 being perfectly accurate - SET_PED_ACCURACY=--[[void]] function(--[[Ped (int)]] ped,--[[int]] accuracy)return native_invoker.unified_void(ped, accuracy, 0x7AEFB85C1D49DEB6, "ii")end - GET_PED_ACCURACY=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x37F4AD56ECBC0CD6, "i")end - SET_AMBIENT_LAW_PED_ACCURACY_MODIFIER=--[[void]] function(--[[float]] multiplier)return native_invoker.unified_void(multiplier, 0x87DDEB611B329A9C, "f")end - IS_PED_MODEL=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Hash (int)]] modelHash)return native_invoker.unified_bool(ped, modelHash, 0xC9D55B1A358A5BF7, "ii")end - -- Forces the ped to fall back and kills it. - -- - -- It doesn't really explode the ped's head but it kills the ped - EXPLODE_PED_HEAD=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash)return native_invoker.unified_void(ped, weaponHash, 0x2D05CED3A38D0F3A, "ii")end - -- Judging purely from a quick disassembly, if the ped is in a vehicle, the ped will be deleted immediately. If not, it'll be marked as no longer needed. - very elegant.. - REMOVE_PED_ELEGANTLY=--[[void]] function(--[[Ped* (pointer)]] ped)return native_invoker.unified_void(ped, 0xAC6D445B994DF95E, "p")end - -- Same as SET_PED_ARMOUR, but ADDS 'amount' to the armor the Ped already has. - ADD_ARMOUR_TO_PED=--[[void]] function(--[[Ped (int)]] ped,--[[int]] amount)return native_invoker.unified_void(ped, amount, 0x5BA652A0CD14DF2F, "ii")end - -- Sets the armor of the specified ped. - -- - -- ped: The Ped to set the armor of. - -- amount: A value between 0 and 100 indicating the value to set the Ped's armor to. - SET_PED_ARMOUR=--[[void]] function(--[[Ped (int)]] ped,--[[int]] amount)return native_invoker.unified_void(ped, amount, 0xCEA04D83135264CC, "ii")end - -- Ped: The ped to warp. - -- vehicle: The vehicle to warp the ped into. - -- Seat_Index: [-1 is driver seat, -2 first free passenger seat] - -- - -- Moreinfo of Seat Index - -- DriverSeat = -1 - -- Passenger = 0 - -- Left Rear = 1 - -- RightRear = 2 - SET_PED_INTO_VEHICLE=--[[void]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] vehicle,--[[int]] seatIndex)return native_invoker.unified_void(ped, vehicle, seatIndex, 0xF75B0D629E1C063D, "iii")end - SET_PED_ALLOW_VEHICLES_OVERRIDE=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x3C028C636A414ED9, "ib")end - CAN_CREATE_RANDOM_PED=--[[BOOL (bool)]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_bool(p0, 0x3E8349C08E4B82E4, "b")end - -- vb.net - -- Dim ped_handle As Integer - -- With Game.Player.Character - -- Dim pos As Vector3 = .Position + .ForwardVector * 3 - -- ped_handle = Native.Function.Call(Of Integer)(Hash.CREATE_RANDOM_PED, pos.X, pos.Y, pos.Z) - -- End With - -- - -- Creates a Ped at the specified location, returns the Ped Handle. - -- Ped will not act until SET_PED_AS_NO_LONGER_NEEDED is called. - CREATE_RANDOM_PED=--[[Ped (int)]] function(--[[float]] posX,--[[float]] posY,--[[float]] posZ)return native_invoker.unified_int(posX, posY, posZ, 0xB4AC7D0CF06BFE8F, "fff")end - CREATE_RANDOM_PED_AS_DRIVER=--[[Ped (int)]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] returnHandle)return native_invoker.unified_int(vehicle, returnHandle, 0x9B62392B474F44A0, "ib")end - CAN_CREATE_RANDOM_DRIVER=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xB8EB95E5B4E56978, "")end - CAN_CREATE_RANDOM_BIKE_RIDER=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xEACEEDA81751915C, "")end - SET_PED_MOVE_ANIMS_BLEND_OUT=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x9E8C908F41584ECD, "i")end - SET_PED_CAN_BE_DRAGGED_OUT=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xC1670E958EEE24E5, "ib")end - -- ntoggle was always false except in one instance (b678). - -- - -- The one time this is set to true seems to do with when you fail the mission. - SET_PED_ALLOW_HURT_COMBAT_FOR_ALL_MISSION_PEDS=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xF2BEBCDFAFDAA19E, "b")end - -- Returns true/false if the ped is/isn't male. - IS_PED_MALE=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x6D9F5FAA7488BA46, "i")end - -- Returns true/false if the ped is/isn't humanoid. - IS_PED_HUMAN=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xB980061DA992779D, "i")end - -- Gets the vehicle the specified Ped is in. Returns 0 if the ped is/was not in a vehicle. - GET_VEHICLE_PED_IS_IN=--[[Vehicle (int)]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] includeEntering)return native_invoker.unified_int(ped, includeEntering, 0x9A9112A0FE9A4713, "ib")end - -- Resets the value for the last vehicle driven by the Ped. - RESET_PED_LAST_VEHICLE=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xBB8DE8CF6A8DD8BB, "i")end - SET_PED_DENSITY_MULTIPLIER_THIS_FRAME=--[[void]] function(--[[float]] multiplier)return native_invoker.unified_void(multiplier, 0x95E3D6257B166CF2, "f")end - SET_SCENARIO_PED_DENSITY_MULTIPLIER_THIS_FRAME=--[[void]] function(--[[float]] p0,--[[float]] p1)return native_invoker.unified_void(p0, p1, 0x7A556143A1C03898, "ff")end - SUPPRESS_AMBIENT_PED_AGGRESSIVE_CLEANUP_THIS_FRAME=--[[void]] function()return native_invoker.unified_void(0x5A7F62FDA59759BD, "")end - SET_SCRIPTED_CONVERSION_COORD_THIS_FRAME=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(x, y, z, 0x5086C7843552CF85, "fff")end - -- The distance between these points, is the diagonal of a box (remember it's 3D). - SET_PED_NON_CREATION_AREA=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, 0xEE01041D559983EA, "ffffff")end - CLEAR_PED_NON_CREATION_AREA=--[[void]] function()return native_invoker.unified_void(0x2E05208086BA0651, "")end - INSTANTLY_FILL_PED_POPULATION=--[[void]] function()return native_invoker.unified_void(0x4759CC730F947C81, "")end - -- Same function call as PED::GET_MOUNT, aka just returns 0 - IS_PED_ON_MOUNT=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x460BC76A0E10655E, "i")end - -- - -- Function just returns 0 - -- void __fastcall ped__get_mount(NativeContext *a1) - -- { - -- NativeContext *v1; // rbx@1 - -- - -- v1 = a1; - -- GetAddressOfPedFromScriptHandle(a1->Args->Arg1); - -- v1->Returns->Item1= 0; - -- } - GET_MOUNT=--[[Ped (int)]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0xE7E11B8DCBED1058, "i")end - -- Gets a value indicating whether the specified ped is on top of any vehicle. - -- - -- Return 1 when ped is on vehicle. - -- Return 0 when ped is not on a vehicle. - -- - IS_PED_ON_VEHICLE=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x67722AEB798E5FAB, "i")end - IS_PED_ON_SPECIFIC_VEHICLE=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(ped, vehicle, 0xEC5F66E459AF3BB2, "ii")end - -- Maximum possible amount of money on MP is 2000. ~JX - -- - -- ----------------------------------------------------------------------------- - -- - -- Maximum amount that a ped can theoretically have is 65535 (0xFFFF) since the amount is stored as an unsigned short (uint16_t) value. - SET_PED_MONEY=--[[void]] function(--[[Ped (int)]] ped,--[[int]] amount)return native_invoker.unified_void(ped, amount, 0xA9C8960E8684C1B5, "ii")end - GET_PED_MONEY=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x3F69145BBA87BAE7, "i")end - -- Related to Peds dropping pickup_health_snack; p0 is a value between [0.0, 1.0] that corresponds to drop rate - SET_HEALTH_SNACKS_CARRIED_BY_ALL_NEW_PEDS=--[[void]] function(--[[float]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xFF4803BC019852D9, "fi")end - SET_AMBIENT_PEDS_DROP_MONEY=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x6B0E6172C9A4D902, "b")end - SET_BLOCKING_OF_NON_TEMPORARY_EVENTS_FOR_AMBIENT_PEDS_THIS_FRAME=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x9911F4A24485F653, "b")end - -- Ped no longer takes critical damage modifiers if set to FALSE. - -- Example: Headshotting a player no longer one shots them. Instead they will take the same damage as a torso shot. - SET_PED_SUFFERS_CRITICAL_HITS=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xEBD76F2359F190AC, "ib")end - SET_PED_UPPER_BODY_DAMAGE_ONLY=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xAFC976FD0580C7B3, "ib")end - -- Detect if ped is sitting in the specified vehicle - -- [True/False] - IS_PED_SITTING_IN_VEHICLE=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(ped, vehicle, 0xA808AA1D79230FC2, "ii")end - -- Detect if ped is in any vehicle - -- [True/False] - IS_PED_SITTING_IN_ANY_VEHICLE=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x826AA586EDB9FEF8, "i")end - IS_PED_ON_FOOT=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x01FEE67DB37F59B2, "i")end - IS_PED_ON_ANY_BIKE=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x94495889E22C6479, "i")end - IS_PED_PLANTING_BOMB=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xC70B5FAE151982D8, "i")end - GET_DEAD_PED_PICKUP_COORDS=--[[Vector3 (vector3)]] function(--[[Ped (int)]] ped,--[[float]] p1,--[[float]] p2)return native_invoker.unified_vector3(ped, p1, p2, 0xCD5003B097200F36, "iff")end - IS_PED_IN_ANY_BOAT=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x2E0E1C2B4F6CB339, "i")end - IS_PED_IN_ANY_SUB=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xFBFC01CCFB35D99E, "i")end - IS_PED_IN_ANY_HELI=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x298B91AE825E5705, "i")end - IS_PED_IN_ANY_PLANE=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x5FFF4CFC74D8FB80, "i")end - IS_PED_IN_FLYING_VEHICLE=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x9134873537FA419C, "i")end - SET_PED_DIES_IN_WATER=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x56CEF0AC79073BDE, "ib")end - GET_PED_DIES_IN_WATER=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x65671A4FB8218930, "i")end - SET_PED_DIES_IN_SINKING_VEHICLE=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xD718A22995E2B4BC, "ib")end - GET_PED_ARMOUR=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x9483AF821605B1D8, "i")end - SET_PED_STAY_IN_VEHICLE_WHEN_JACKED=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xEDF4079F9D54C9A1, "ib")end - SET_PED_CAN_BE_SHOT_IN_VEHICLE=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xC7EF1BA83230BA07, "ib")end - GET_PED_LAST_DAMAGE_BONE=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[int* (pointer)]] outBone)return native_invoker.unified_bool(ped, outBone, 0xD75960F6BD9EA49C, "ip")end - CLEAR_PED_LAST_DAMAGE_BONE=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x8EF6B7AC68E2F01B, "i")end - SET_AI_WEAPON_DAMAGE_MODIFIER=--[[void]] function(--[[float]] value)return native_invoker.unified_void(value, 0x1B1E2A40A65B8521, "f")end - RESET_AI_WEAPON_DAMAGE_MODIFIER=--[[void]] function()return native_invoker.unified_void(0xEA16670E7BA4743C, "")end - SET_AI_MELEE_WEAPON_DAMAGE_MODIFIER=--[[void]] function(--[[float]] modifier)return native_invoker.unified_void(modifier, 0x66460DEDDD417254, "f")end - RESET_AI_MELEE_WEAPON_DAMAGE_MODIFIER=--[[void]] function()return native_invoker.unified_void(0x46E56A7CD1D63C3F, "")end - SET_TREAT_AS_AMBIENT_PED_FOR_DRIVER_LOCKON=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1)return native_invoker.unified_void(ped, p1, 0x2F3C3D9F50681DE4, "ib")end - SET_PED_CAN_BE_TARGETTED=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x63F58F7C80513AAD, "ib")end - SET_PED_CAN_BE_TARGETTED_BY_TEAM=--[[void]] function(--[[Ped (int)]] ped,--[[int]] team,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, team, toggle, 0xBF1CA77833E58F2C, "iib")end - SET_PED_CAN_BE_TARGETTED_BY_PLAYER=--[[void]] function(--[[Ped (int)]] ped,--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, player, toggle, 0x66B57B72E0836A76, "iib")end - SET_ALLOW_LOCKON_TO_PED_IF_FRIENDLY=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x061CB768363D6424, "ib")end - SET_USE_CAMERA_HEADING_FOR_DESIRED_DIRECTION_LOCK_ON_TEST=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xFD325494792302D7, "ib")end - IS_PED_IN_ANY_POLICE_VEHICLE=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x0BD04E29640C9C12, "i")end - FORCE_PED_TO_OPEN_PARACHUTE=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x16E42E800B472221, "i")end - IS_PED_IN_PARACHUTE_FREE_FALL=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x7DCE8BDA0F1C1200, "i")end - IS_PED_FALLING=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xFB92A102F1C4DFA3, "i")end - IS_PED_JUMPING=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xCEDABC5900A0BF97, "i")end - IS_PED_LANDING=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x412F1364FA066CFB, "i")end - IS_PED_DOING_A_BEAST_JUMP=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x451D05012CCEC234, "i")end - IS_PED_CLIMBING=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x53E8CB4F48BFE623, "i")end - IS_PED_VAULTING=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x117C70D1F5730B5E, "i")end - IS_PED_DIVING=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x5527B8246FEF9B11, "i")end - IS_PED_JUMPING_OUT_OF_VEHICLE=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x433DDFFE2044B636, "i")end - -- Returns true if the ped is currently opening a door (CTaskOpenDoor). - IS_PED_OPENING_DOOR=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x26AF0E8E30BD2A2C, "i")end - -- Returns: - -- - -- -1: Normal - -- 0: Wearing parachute on back - -- 1: Parachute opening - -- 2: Parachute open - -- 3: Falling to doom (e.g. after exiting parachute) - -- - -- Normal means no parachute? - GET_PED_PARACHUTE_STATE=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x79CFD9827CC979B6, "i")end - -- -1: no landing - -- 0: landing on both feet - -- 1: stumbling - -- 2: rolling - -- 3: ragdoll - GET_PED_PARACHUTE_LANDING_TYPE=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x8B9F1FC6AE8166C0, "i")end - SET_PED_PARACHUTE_TINT_INDEX=--[[void]] function(--[[Ped (int)]] ped,--[[int]] tintIndex)return native_invoker.unified_void(ped, tintIndex, 0x333FC8DB079B7186, "ii")end - GET_PED_PARACHUTE_TINT_INDEX=--[[void]] function(--[[Ped (int)]] ped,--[[int* (pointer)]] outTintIndex)return native_invoker.unified_void(ped, outTintIndex, 0xEAF5F7E5AE7C6C9D, "ip")end - SET_PED_RESERVE_PARACHUTE_TINT_INDEX=--[[void]] function(--[[Ped (int)]] ped,--[[Any (int)]] p1)return native_invoker.unified_void(ped, p1, 0xE88DA0751C22A2AD, "ii")end - CREATE_PARACHUTE_BAG_OBJECT=--[[Object (int)]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_int(ped, p1, p2, 0x8C4F3BF23B6237DB, "ibb")end - -- This is the SET_CHAR_DUCKING from GTA IV, that makes Peds duck. This function does nothing in GTA V. It cannot set the ped as ducking in vehicles, and IS_PED_DUCKING will always return false. - SET_PED_DUCKING=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x030983CA930B692D, "ib")end - IS_PED_DUCKING=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xD125AE748725C6BC, "i")end - IS_PED_IN_ANY_TAXI=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x6E575D6A898AB852, "i")end - SET_PED_ID_RANGE=--[[void]] function(--[[Ped (int)]] ped,--[[float]] value)return native_invoker.unified_void(ped, value, 0xF107E836A70DCE05, "if")end - SET_PED_HIGHLY_PERCEPTIVE=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x52D59AB61DDC05DD, "ib")end - SET_COP_PERCEPTION_OVERRIDES=--[[void]] function(--[[float]] seeingRange,--[[float]] seeingRangePeripheral,--[[float]] hearingRange,--[[float]] visualFieldMinAzimuthAngle,--[[float]] visualFieldMaxAzimuthAngle,--[[float]] fieldOfGazeMaxAngle,--[[float]] p6)return native_invoker.unified_void(seeingRange, seeingRangePeripheral, hearingRange, visualFieldMinAzimuthAngle, visualFieldMaxAzimuthAngle, fieldOfGazeMaxAngle, p6, 0x2F074C904D85129E, "fffffff")end - SET_PED_INJURED_ON_GROUND_BEHAVIOUR=--[[void]] function(--[[Ped (int)]] ped,--[[float]] p1)return native_invoker.unified_void(ped, p1, 0xEC4B4B3B9908052A, "if")end - DISABLE_PED_INJURED_ON_GROUND_BEHAVIOUR=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x733C87D4CE22BEA2, "i")end - SET_PED_SEEING_RANGE=--[[void]] function(--[[Ped (int)]] ped,--[[float]] value)return native_invoker.unified_void(ped, value, 0xF29CF591C4BF6CEE, "if")end - SET_PED_HEARING_RANGE=--[[void]] function(--[[Ped (int)]] ped,--[[float]] value)return native_invoker.unified_void(ped, value, 0x33A8F7F7D5F7F33C, "if")end - SET_PED_VISUAL_FIELD_MIN_ANGLE=--[[void]] function(--[[Ped (int)]] ped,--[[float]] value)return native_invoker.unified_void(ped, value, 0x2DB492222FB21E26, "if")end - SET_PED_VISUAL_FIELD_MAX_ANGLE=--[[void]] function(--[[Ped (int)]] ped,--[[float]] value)return native_invoker.unified_void(ped, value, 0x70793BDCA1E854D4, "if")end - -- This native refers to the field of vision the ped has below them, starting at 0 degrees. The angle value should be negative. - -- -90f should let the ped see 90 degrees below them, for example. - SET_PED_VISUAL_FIELD_MIN_ELEVATION_ANGLE=--[[void]] function(--[[Ped (int)]] ped,--[[float]] angle)return native_invoker.unified_void(ped, angle, 0x7A276EB2C224D70F, "if")end - -- This native refers to the field of vision the ped has above them, starting at 0 degrees. 90f would let the ped see enemies directly above of them. - SET_PED_VISUAL_FIELD_MAX_ELEVATION_ANGLE=--[[void]] function(--[[Ped (int)]] ped,--[[float]] angle)return native_invoker.unified_void(ped, angle, 0x78D0B67629D75856, "if")end - SET_PED_VISUAL_FIELD_PERIPHERAL_RANGE=--[[void]] function(--[[Ped (int)]] ped,--[[float]] range)return native_invoker.unified_void(ped, range, 0x9C74B0BC831B753A, "if")end - SET_PED_VISUAL_FIELD_CENTER_ANGLE=--[[void]] function(--[[Ped (int)]] ped,--[[float]] angle)return native_invoker.unified_void(ped, angle, 0x3B6405E8AB34A907, "if")end - GET_PED_VISUAL_FIELD_CENTER_ANGLE=--[[float]] function(--[[Ped (int)]] ped)return native_invoker.unified_float(ped, 0xEF2C71A32CAD5FBD, "i")end - -- p1 is usually 0 in the scripts. action is either 0 or a pointer to "DEFAULT_ACTION". - SET_PED_STEALTH_MOVEMENT=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1,--[[string]] action)return native_invoker.unified_void(ped, p1, action, 0x88CBB5CEB96B7BD2, "ibs")end - -- Returns whether the entity is in stealth mode - GET_PED_STEALTH_MOVEMENT=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x7C2AC9CA66575FBF, "i")end - -- Creates a new ped group. - -- Groups can contain up to 8 peds. - -- - -- The parameter is unused. - -- - -- Returns a handle to the created group, or 0 if a group couldn't be created. - CREATE_GROUP=--[[int]] function(--[[int]] unused)return native_invoker.unified_int(unused, 0x90370EBE0FEE1A3D, "i")end - SET_PED_AS_GROUP_LEADER=--[[void]] function(--[[Ped (int)]] ped,--[[int]] groupId)return native_invoker.unified_void(ped, groupId, 0x2A7819605465FBCE, "ii")end - SET_PED_AS_GROUP_MEMBER=--[[void]] function(--[[Ped (int)]] ped,--[[int]] groupId)return native_invoker.unified_void(ped, groupId, 0x9F3480FE65DB31B5, "ii")end - -- This only will teleport the ped to the group leader if the group leader teleports (sets coords). - -- - -- Only works in singleplayer - SET_PED_CAN_TELEPORT_TO_GROUP_LEADER=--[[void]] function(--[[Ped (int)]] pedHandle,--[[int]] groupHandle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(pedHandle, groupHandle, toggle, 0x2E2F4240B3F24647, "iib")end - REMOVE_GROUP=--[[void]] function(--[[int]] groupId)return native_invoker.unified_void(groupId, 0x8EB2F69076AF7053, "i")end - REMOVE_PED_FROM_GROUP=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xED74007FFB146BC2, "i")end - IS_PED_GROUP_MEMBER=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[int]] groupId)return native_invoker.unified_bool(ped, groupId, 0x9BB01E3834671191, "ii")end - IS_PED_HANGING_ON_TO_VEHICLE=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x1C86D8AEF8254B78, "i")end - -- Sets the range at which members will automatically leave the group. - SET_GROUP_SEPARATION_RANGE=--[[void]] function(--[[int]] groupHandle,--[[float]] separationRange)return native_invoker.unified_void(groupHandle, separationRange, 0x4102C7858CFEE4E4, "if")end - -- Ped will stay on the ground after being stunned for at lest ms time. (in milliseconds) - SET_PED_MIN_GROUND_TIME_FOR_STUNGUN=--[[void]] function(--[[Ped (int)]] ped,--[[int]] ms)return native_invoker.unified_void(ped, ms, 0xFA0675AB151073FA, "ii")end - IS_PED_PRONE=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xD6A86331A537A7B9, "i")end - -- Checks to see if ped and target are in combat with eachother. Only goes one-way: if target is engaged in combat with ped but ped has not yet reacted, the function will return false until ped starts fighting back. - -- - -- p1 is usually 0 in the scripts because it gets the ped id during the task sequence. For instance: PED::IS_PED_IN_COMBAT(l_42E[4/*14*/], PLAYER::PLAYER_PED_ID()) // armenian2.ct4: 43794 - IS_PED_IN_COMBAT=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Ped (int)]] target)return native_invoker.unified_bool(ped, target, 0x4859F1FC66A6278E, "ii")end - GET_PED_TARGET_FROM_COMBAT_PED=--[[Entity (int)]] function(--[[Ped (int)]] ped,--[[Any (int)]] p1)return native_invoker.unified_int(ped, p1, 0x32C27A11307B01CC, "ii")end - CAN_PED_IN_COMBAT_SEE_TARGET=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Ped (int)]] target)return native_invoker.unified_bool(ped, target, 0xEAD42DE3610D0721, "ii")end - IS_PED_DOING_DRIVEBY=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xB2C086CC1BF8F2BF, "i")end - IS_PED_JACKING=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x4AE4FF911DFB61DA, "i")end - IS_PED_BEING_JACKED=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x9A497FE2DF198913, "i")end - -- p1 is always 0 - IS_PED_BEING_STUNNED=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[int]] p1)return native_invoker.unified_bool(ped, p1, 0x4FBACCE3B4138EE8, "ii")end - GET_PEDS_JACKER=--[[Ped (int)]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x9B128DC36C1E04CF, "i")end - GET_JACK_TARGET=--[[Ped (int)]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x5486A79D9FBD342D, "i")end - IS_PED_FLEEING=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xBBCCE00B381F8482, "i")end - -- p1 is nearly always 0 in the scripts. - IS_PED_IN_COVER=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] exceptUseWeapon)return native_invoker.unified_bool(ped, exceptUseWeapon, 0x60DFD0691A170B88, "ib")end - IS_PED_IN_COVER_FACING_LEFT=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x845333B3150583AB, "i")end - IS_PED_IN_HIGH_COVER=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x6A03BF943D767C93, "i")end - IS_PED_GOING_INTO_COVER=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x9F65DBC537E59AD5, "i")end - -- i could be time. Only example in the decompiled scripts uses it as -1. - SET_PED_PINNED_DOWN=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] pinned,--[[int]] i)return native_invoker.unified_bool(ped, pinned, i, 0xAAD6D1ACF08F4612, "ibi")end - _HAS_PED_CLEAR_LOS_TO_ENTITY=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Entity (int)]] entity,--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] p5,--[[BOOL (bool)]] p6,--[[BOOL (bool)]] p7)return native_invoker.unified_bool(ped, entity, x, y, z, p5, p6, p7, 0xA32ABFEB2A03B306, "iifffibb")end - GET_SEAT_PED_IS_TRYING_TO_ENTER=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x6F4C85ACD641BCD2, "i")end - GET_VEHICLE_PED_IS_TRYING_TO_ENTER=--[[Vehicle (int)]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x814FA8BE5449445D, "i")end - -- Returns the Entity (Ped, Vehicle, or ?Object?) that killed the 'ped' - -- - -- Is best to check if the Ped is dead before asking for its killer. - GET_PED_SOURCE_OF_DEATH=--[[Entity (int)]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x93C8B64DEB84728C, "i")end - -- Returns the hash of the weapon/model/object that killed the ped. - GET_PED_CAUSE_OF_DEATH=--[[Hash (int)]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x16FFE42AB2D2DC59, "i")end - GET_PED_TIME_OF_DEATH=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x1E98817B311AE98A, "i")end - COUNT_PEDS_IN_COMBAT_WITH_TARGET=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x5407B7288D0478B7, "i")end - COUNT_PEDS_IN_COMBAT_WITH_TARGET_WITHIN_RADIUS=--[[int]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius)return native_invoker.unified_int(ped, x, y, z, radius, 0x336B3D200AB007CB, "iffff")end - SET_PED_RELATIONSHIP_GROUP_DEFAULT_HASH=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] hash)return native_invoker.unified_void(ped, hash, 0xADB3F206518799E8, "ii")end - SET_PED_RELATIONSHIP_GROUP_HASH=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] hash)return native_invoker.unified_void(ped, hash, 0xC80A74AC829DDD92, "ii")end - -- Sets the relationship between two groups. This should be called twice (once for each group). - -- - -- Relationship types: - -- 0 = Companion - -- 1 = Respect - -- 2 = Like - -- 3 = Neutral - -- 4 = Dislike - -- 5 = Hate - -- 255 = Pedestrians - -- - -- Example: - -- PED::SET_RELATIONSHIP_BETWEEN_GROUPS(2, l_1017, 0xA49E591C); - -- PED::SET_RELATIONSHIP_BETWEEN_GROUPS(2, 0xA49E591C, l_1017); - SET_RELATIONSHIP_BETWEEN_GROUPS=--[[void]] function(--[[int]] relationship,--[[Hash (int)]] group1,--[[Hash (int)]] group2)return native_invoker.unified_void(relationship, group1, group2, 0xBF25EB89375A37AD, "iii")end - -- Clears the relationship between two groups. This should be called twice (once for each group). - -- - -- Relationship types: - -- 0 = Companion - -- 1 = Respect - -- 2 = Like - -- 3 = Neutral - -- 4 = Dislike - -- 5 = Hate - -- 255 = Pedestrians - -- (Credits: Inco) - -- - -- Example: - -- PED::CLEAR_RELATIONSHIP_BETWEEN_GROUPS(2, l_1017, 0xA49E591C); - -- PED::CLEAR_RELATIONSHIP_BETWEEN_GROUPS(2, 0xA49E591C, l_1017); - CLEAR_RELATIONSHIP_BETWEEN_GROUPS=--[[void]] function(--[[int]] relationship,--[[Hash (int)]] group1,--[[Hash (int)]] group2)return native_invoker.unified_void(relationship, group1, group2, 0x5E29243FB56FC6D4, "iii")end - -- Can't select void. This function returns nothing. The hash of the created relationship group is output in the second parameter. - ADD_RELATIONSHIP_GROUP=--[[BOOL (bool)]] function(--[[string]] name,--[[Hash* (pointer)]] groupHash)return native_invoker.unified_bool(name, groupHash, 0xF372BC22FCB88606, "sp")end - REMOVE_RELATIONSHIP_GROUP=--[[void]] function(--[[Hash (int)]] groupHash)return native_invoker.unified_void(groupHash, 0xB6BA2444AB393DA2, "i")end - DOES_RELATIONSHIP_GROUP_EXIST=--[[BOOL (bool)]] function(--[[Hash (int)]] groupHash)return native_invoker.unified_bool(groupHash, 0xCC6E3B6BB69501F1, "i")end - -- Gets the relationship between two peds. This should be called twice (once for each ped). - -- - -- Relationship types: - -- 0 = Companion - -- 1 = Respect - -- 2 = Like - -- 3 = Neutral - -- 4 = Dislike - -- 5 = Hate - -- 255 = Pedestrians - -- (Credits: Inco) - -- - -- Example: - -- PED::GET_RELATIONSHIP_BETWEEN_PEDS(2, l_1017, 0xA49E591C); - -- PED::GET_RELATIONSHIP_BETWEEN_PEDS(2, 0xA49E591C, l_1017); - GET_RELATIONSHIP_BETWEEN_PEDS=--[[int]] function(--[[Ped (int)]] ped1,--[[Ped (int)]] ped2)return native_invoker.unified_int(ped1, ped2, 0xEBA5AD3A0EAF7121, "ii")end - GET_PED_RELATIONSHIP_GROUP_DEFAULT_HASH=--[[Hash (int)]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x42FDD0F017B1E38E, "i")end - GET_PED_RELATIONSHIP_GROUP_HASH=--[[Hash (int)]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x7DBDD04862D95F04, "i")end - -- Gets the relationship between two groups. This should be called twice (once for each group). - -- - -- Relationship types: - -- 0 = Companion - -- 1 = Respect - -- 2 = Like - -- 3 = Neutral - -- 4 = Dislike - -- 5 = Hate - -- 255 = Pedestrians - -- - -- Example: - -- PED::GET_RELATIONSHIP_BETWEEN_GROUPS(l_1017, 0xA49E591C); - -- PED::GET_RELATIONSHIP_BETWEEN_GROUPS(0xA49E591C, l_1017); - GET_RELATIONSHIP_BETWEEN_GROUPS=--[[int]] function(--[[Hash (int)]] group1,--[[Hash (int)]] group2)return native_invoker.unified_int(group1, group2, 0x9E6B70061662AE5C, "ii")end - SET_RELATIONSHIP_GROUP_AFFECTS_WANTED_LEVEL=--[[void]] function(--[[Hash (int)]] group,--[[BOOL (bool)]] p1)return native_invoker.unified_void(group, p1, 0x5615E0C5EB2BC6E2, "ib")end - TELL_GROUP_PEDS_IN_AREA_TO_ATTACK=--[[void]] function(--[[Ped (int)]] ped,--[[Any (int)]] p1,--[[float]] p2,--[[Hash (int)]] hash,--[[Any (int)]] p4,--[[Any (int)]] p5)return native_invoker.unified_void(ped, p1, p2, hash, p4, p5, 0xAD27D957598E49E9, "iifiii")end - SET_PED_CAN_BE_TARGETED_WITHOUT_LOS=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x4328652AE5769C71, "ib")end - SET_PED_TO_INFORM_RESPECTED_FRIENDS=--[[void]] function(--[[Ped (int)]] ped,--[[float]] radius,--[[int]] maxFriends)return native_invoker.unified_void(ped, radius, maxFriends, 0x112942C6E708F70B, "ifi")end - IS_PED_RESPONDING_TO_EVENT=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Any (int)]] event)return native_invoker.unified_bool(ped, event, 0x625B774D75C87068, "ii")end - GET_POS_FROM_FIRED_EVENT=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[int]] eventType,--[[Any* (pointer)]] outData)return native_invoker.unified_bool(ped, eventType, outData, 0xBA656A3BB01BDEA3, "iip")end - -- FIRING_PATTERN_BURST_FIRE = 0xD6FF6D61 ( 1073727030 ) - -- FIRING_PATTERN_BURST_FIRE_IN_COVER = 0x026321F1 ( 40051185 ) - -- FIRING_PATTERN_BURST_FIRE_DRIVEBY = 0xD31265F2 ( -753768974 ) - -- FIRING_PATTERN_FROM_GROUND = 0x2264E5D6 ( 577037782 ) - -- FIRING_PATTERN_DELAY_FIRE_BY_ONE_SEC = 0x7A845691 ( 2055493265 ) - -- FIRING_PATTERN_FULL_AUTO = 0xC6EE6B4C ( -957453492 ) - -- FIRING_PATTERN_SINGLE_SHOT = 0x5D60E4E0 ( 1566631136 ) - -- FIRING_PATTERN_BURST_FIRE_PISTOL = 0xA018DB8A ( -1608983670 ) - -- FIRING_PATTERN_BURST_FIRE_SMG = 0xD10DADEE ( 1863348768 ) - -- FIRING_PATTERN_BURST_FIRE_RIFLE = 0x9C74B406 ( -1670073338 ) - -- FIRING_PATTERN_BURST_FIRE_MG = 0xB573C5B4 ( -1250703948 ) - -- FIRING_PATTERN_BURST_FIRE_PUMPSHOTGUN = 0x00BAC39B ( 12239771 ) - -- FIRING_PATTERN_BURST_FIRE_HELI = 0x914E786F ( -1857128337 ) - -- FIRING_PATTERN_BURST_FIRE_MICRO = 0x42EF03FD ( 1122960381 ) - -- FIRING_PATTERN_SHORT_BURSTS = 0x1A92D7DF ( 445831135 ) - -- FIRING_PATTERN_SLOW_FIRE_TANK = 0xE2CA3A71 ( -490063247 ) - -- - -- Firing pattern info: https://pastebin.com/Px036isB - SET_PED_FIRING_PATTERN=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] patternHash)return native_invoker.unified_void(ped, patternHash, 0x9AC577F5A12AD8A9, "ii")end - -- shootRate 0-1000 - SET_PED_SHOOT_RATE=--[[void]] function(--[[Ped (int)]] ped,--[[int]] shootRate)return native_invoker.unified_void(ped, shootRate, 0x614DA022990752DC, "ii")end - -- combatType can be between 0-14. See GET_COMBAT_FLOAT below for a list of possible parameters. - SET_COMBAT_FLOAT=--[[void]] function(--[[Ped (int)]] ped,--[[int]] combatType,--[[float]] p2)return native_invoker.unified_void(ped, combatType, p2, 0xFF41B4B141ED981C, "iif")end - -- p0: Ped Handle - -- p1: int i | 0 <= i <= 27 - -- - -- p1 probably refers to the attributes configured in combatbehavior.meta. There are 13. Example: - -- - -- - -- - -- - -- - -- - -- - -- - -- - -- - -- - -- - -- - -- - -- - -- -------------Confirmed by editing combatbehavior.meta: - -- p1: - -- 0=BlindFireChance - -- 1=BurstDurationInCover - -- 3=TimeBetweenBurstsInCover - -- 4=TimeBetweenPeeks - -- 5=StrafeWhenMovingChance - -- 8=WalkWhenStrafingChance - -- 11=AttackWindowDistanceForCover - -- 12=TimeToInvalidateInjuredTarget - -- 16=OptimalCoverDistance - -- - GET_COMBAT_FLOAT=--[[float]] function(--[[Ped (int)]] ped,--[[int]] p1)return native_invoker.unified_float(ped, p1, 0x52DFF8A10508090A, "ii")end - -- p1 may be a BOOL representing whether or not the group even exists - GET_GROUP_SIZE=--[[void]] function(--[[int]] groupID,--[[Any* (pointer)]] p1,--[[int* (pointer)]] sizeInMembers)return native_invoker.unified_void(groupID, p1, sizeInMembers, 0x8DE69FE35CA09A45, "ipp")end - DOES_GROUP_EXIST=--[[BOOL (bool)]] function(--[[int]] groupId)return native_invoker.unified_bool(groupId, 0x7C6B0C22F9F40BBE, "i")end - -- Returns the group id of which the specified ped is a member of. - GET_PED_GROUP_INDEX=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0xF162E133B4E7A675, "i")end - IS_PED_IN_GROUP=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x5891CAC5D4ACFF74, "i")end - GET_PLAYER_PED_IS_FOLLOWING=--[[Player (int)]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x6A3975DEA89F9A17, "i")end - -- 0: Default - -- 1: Circle Around Leader - -- 2: Alternative Circle Around Leader - -- 3: Line, with Leader at center - SET_GROUP_FORMATION=--[[void]] function(--[[int]] groupId,--[[int]] formationType)return native_invoker.unified_void(groupId, formationType, 0xCE2F5FC3AF7E8C1E, "ii")end - SET_GROUP_FORMATION_SPACING=--[[void]] function(--[[int]] groupId,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(groupId, x, y, z, 0x1D9D45004C28C916, "ifff")end - RESET_GROUP_FORMATION_DEFAULT_SPACING=--[[void]] function(--[[int]] groupHandle)return native_invoker.unified_void(groupHandle, 0x63DAB4CCB3273205, "i")end - -- Gets ID of vehicle player using. It means it can get ID at any interaction with vehicle. Enter\exit for example. And that means it is faster than GET_VEHICLE_PED_IS_IN but less safe. - GET_VEHICLE_PED_IS_USING=--[[Vehicle (int)]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x6094AD011A2EA87D, "i")end - GET_VEHICLE_PED_IS_ENTERING=--[[Vehicle (int)]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0xF92691AED837A5FC, "i")end - -- enable or disable the gravity of a ped - -- - -- Examples: - -- PED::SET_PED_GRAVITY(PLAYER::PLAYER_PED_ID(), 0x00000001); - -- PED::SET_PED_GRAVITY(Local_289[iVar0 /*20*/], 0x00000001); - SET_PED_GRAVITY=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x9FF447B6B6AD960A, "ib")end - -- damages a ped with the given amount - APPLY_DAMAGE_TO_PED=--[[void]] function(--[[Ped (int)]] ped,--[[int]] damageAmount,--[[BOOL (bool)]] p2,--[[Any (int)]] p3,--[[Hash (int)]] weaponType)return native_invoker.unified_void(ped, damageAmount, p2, p3, weaponType, 0x697157CED63F18D4, "iibii")end - GET_TIME_PED_DAMAGED_BY_WEAPON=--[[int]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash)return native_invoker.unified_int(ped, weaponHash, 0x36B77BB84687C318, "ii")end - SET_PED_ALLOWED_TO_DUCK=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xDA1F1B7BE1A8766F, "ib")end - SET_PED_NEVER_LEAVES_GROUP=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x3DBFC55D5C9BB447, "ib")end - -- https://alloc8or.re/gta5/doc/enums/ePedType.txt - GET_PED_TYPE=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0xFF059E1E4C01E63C, "i")end - -- Turns the desired ped into a cop. If you use this on the player ped, you will become almost invisible to cops dispatched for you. You will also report your own crimes, get a generic cop voice, get a cop-vision-cone on the radar, and you will be unable to shoot at other cops. SWAT and Army will still shoot at you. Toggling ped as "false" has no effect; you must change p0's ped model to disable the effect. - SET_PED_AS_COP=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xBB03C38DD3FB7FFD, "ib")end - SET_PED_HEALTH_PENDING_LAST_DAMAGE_EVENT_OVERRIDE_FLAG=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xB3352E018D6F89DF, "b")end - -- Sets the maximum health of a ped. - SET_PED_MAX_HEALTH=--[[void]] function(--[[Ped (int)]] ped,--[[int]] value)return native_invoker.unified_void(ped, value, 0xF5F6378C4F3419D3, "ii")end - GET_PED_MAX_HEALTH=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x4700A416E8324EF3, "i")end - SET_PED_MAX_TIME_IN_WATER=--[[void]] function(--[[Ped (int)]] ped,--[[float]] value)return native_invoker.unified_void(ped, value, 0x43C851690662113D, "if")end - SET_PED_MAX_TIME_UNDERWATER=--[[void]] function(--[[Ped (int)]] ped,--[[float]] value)return native_invoker.unified_void(ped, value, 0x6BA428C528D9E522, "if")end - SET_CORPSE_RAGDOLL_FRICTION=--[[void]] function(--[[Ped (int)]] ped,--[[float]] p1)return native_invoker.unified_void(ped, p1, 0x2735233A786B1BEF, "if")end - -- seatIndex must be <= 2 - SET_PED_VEHICLE_FORCED_SEAT_USAGE=--[[void]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] vehicle,--[[int]] seatIndex,--[[int]] flags,--[[Any (int)]] p4)return native_invoker.unified_void(ped, vehicle, seatIndex, flags, p4, 0x952F06BEECD775CC, "iiiii")end - CLEAR_ALL_PED_VEHICLE_FORCED_SEAT_USAGE=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xE6CA85E7259CE16B, "i")end - -- This native does absolutely nothing, just a nullsub - SET_PED_CAN_BE_KNOCKED_OFF_BIKE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xB282749D5E028163, "ii")end - -- state: https://alloc8or.re/gta5/doc/enums/eKnockOffVehicle.txt - SET_PED_CAN_BE_KNOCKED_OFF_VEHICLE=--[[void]] function(--[[Ped (int)]] ped,--[[int]] state)return native_invoker.unified_void(ped, state, 0x7A6535691B477C48, "ii")end - CAN_KNOCK_PED_OFF_VEHICLE=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x51AC07A44D4F5B8A, "i")end - KNOCK_PED_OFF_VEHICLE=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x45BBCBA77C29A841, "i")end - SET_PED_COORDS_NO_GANG=--[[void]] function(--[[Ped (int)]] ped,--[[float]] posX,--[[float]] posY,--[[float]] posZ)return native_invoker.unified_void(ped, posX, posY, posZ, 0x87052FE446E07247, "ifff")end - -- from fm_mission_controller.c4 (variable names changed for clarity): - -- - -- int groupID = PLAYER::GET_PLAYER_GROUP(PLAYER::PLAYER_ID()); - -- PED::GET_GROUP_SIZE(group, &unused, &groupSize); - -- if (groupSize >= 1) { - -- . . . . for (int memberNumber = 0; memberNumber < groupSize; memberNumber++) { - -- . . . . . . . . Ped ped1 = PED::GET_PED_AS_GROUP_MEMBER(groupID, memberNumber); - -- . . . . . . . . //and so on - GET_PED_AS_GROUP_MEMBER=--[[Ped (int)]] function(--[[int]] groupID,--[[int]] memberNumber)return native_invoker.unified_int(groupID, memberNumber, 0x51455483CF23ED97, "ii")end - GET_PED_AS_GROUP_LEADER=--[[Ped (int)]] function(--[[int]] groupID)return native_invoker.unified_int(groupID, 0x5CCE68DBD5FE93EC, "i")end - SET_PED_KEEP_TASK=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x971D38760FBC02EF, "ib")end - SET_PED_ALLOW_MINOR_REACTIONS_AS_MISSION_PED=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x49E50BDB8BA4DAB2, "ib")end - IS_PED_SWIMMING=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x9DE327631295B4C2, "i")end - IS_PED_SWIMMING_UNDER_WATER=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xC024869A53992F34, "i")end - -- teleports ped to coords along with the vehicle ped is in - SET_PED_COORDS_KEEP_VEHICLE=--[[void]] function(--[[Ped (int)]] ped,--[[float]] posX,--[[float]] posY,--[[float]] posZ)return native_invoker.unified_void(ped, posX, posY, posZ, 0x9AFEFF481A85AB2E, "ifff")end - SET_PED_DIES_IN_VEHICLE=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x2A30922C90C9B42C, "ib")end - SET_CREATE_RANDOM_COPS=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x102E68B2024D536D, "b")end - SET_CREATE_RANDOM_COPS_NOT_ON_SCENARIOS=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x8A4986851C4EF6E7, "b")end - SET_CREATE_RANDOM_COPS_ON_SCENARIOS=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x444CB7D7DBE6973D, "b")end - CAN_CREATE_RANDOM_COPS=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x5EE2CAFF7F17770D, "")end - SET_PED_AS_ENEMY=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x02A0C9720B854BFA, "ib")end - SET_PED_CAN_SMASH_GLASS=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(ped, p1, p2, 0x1CCE141467FF42A2, "ibb")end - IS_PED_IN_ANY_TRAIN=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x6F972C1AB75A1ED0, "i")end - IS_PED_GETTING_INTO_A_VEHICLE=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xBB062B2B5722478E, "i")end - IS_PED_TRYING_TO_ENTER_A_LOCKED_VEHICLE=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x44D28D5DDFE5F68C, "i")end - -- ped can not pull out a weapon when true - SET_ENABLE_HANDCUFFS=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xDF1AF8B5D56542FA, "ib")end - -- Used with SET_ENABLE_HANDCUFFS in decompiled scripts. From my observations, I have noticed that while being ragdolled you are not able to get up but you can still run. Your legs can also bend. - SET_ENABLE_BOUND_ANKLES=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xC52E0F855C58FC2E, "ib")end - -- Enables diving motion when underwater. - SET_ENABLE_SCUBA=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xF99F62004024D506, "ib")end - -- Setting ped to true allows the ped to shoot "friendlies". - -- - -- p2 set to true when toggle is also true seams to make peds permanently unable to aim at, even if you set p2 back to false. - -- - -- p1 = false & p2 = false for unable to aim at. - -- p1 = true & p2 = false for able to aim at. - SET_CAN_ATTACK_FRIENDLY=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle,--[[BOOL (bool)]] p2)return native_invoker.unified_void(ped, toggle, p2, 0xB3B1CB349FF9C75D, "ibb")end - -- Returns the ped's alertness (0-3). - -- - -- Values : - -- - -- 0 : Neutral - -- 1 : Heard something (gun shot, hit, etc) - -- 2 : Knows (the origin of the event) - -- 3 : Fully alerted (is facing the event?) - -- - -- If the Ped does not exist, returns -1. - GET_PED_ALERTNESS=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0xF6AA118530443FD2, "i")end - -- value ranges from 0 to 3. - SET_PED_ALERTNESS=--[[void]] function(--[[Ped (int)]] ped,--[[int]] value)return native_invoker.unified_void(ped, value, 0xDBA71115ED9941A6, "ii")end - SET_PED_GET_OUT_UPSIDE_DOWN_VEHICLE=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xBC0ED94165A48BC2, "ib")end - -- transitionSpeed is the time in seconds it takes to transition from one movement clipset to another. ransitionSpeed is usually 1.0f - -- - -- List of movement clipsets: - -- Thanks to elsewhat for list. - -- - -- "ANIM_GROUP_MOVE_BALLISTIC" - -- "ANIM_GROUP_MOVE_LEMAR_ALLEY" - -- "clipset@move@trash_fast_turn" - -- "FEMALE_FAST_RUNNER" - -- "missfbi4prepp1_garbageman" - -- "move_characters@franklin@fire" - -- "move_characters@Jimmy@slow@" - -- "move_characters@michael@fire" - -- "move_f@flee@a" - -- "move_f@scared" - -- "move_f@sexy@a" - -- "move_heist_lester" - -- "move_injured_generic" - -- "move_lester_CaneUp" - -- "move_m@bag" - -- "MOVE_M@BAIL_BOND_NOT_TAZERED" - -- "MOVE_M@BAIL_BOND_TAZERED" - -- "move_m@brave" - -- "move_m@casual@d" - -- "move_m@drunk@moderatedrunk" - -- "MOVE_M@DRUNK@MODERATEDRUNK" - -- "MOVE_M@DRUNK@MODERATEDRUNK_HEAD_UP" - -- "MOVE_M@DRUNK@SLIGHTLYDRUNK" - -- "MOVE_M@DRUNK@VERYDRUNK" - -- "move_m@fire" - -- "move_m@gangster@var_e" - -- "move_m@gangster@var_f" - -- "move_m@gangster@var_i" - -- "move_m@JOG@" - -- "MOVE_M@PRISON_GAURD" - -- "MOVE_P_M_ONE" - -- "MOVE_P_M_ONE_BRIEFCASE" - -- "move_p_m_zero_janitor" - -- "move_p_m_zero_slow" - -- "move_ped_bucket" - -- "move_ped_crouched" - -- "move_ped_mop" - -- "MOVE_M@FEMME@" - -- "MOVE_F@FEMME@" - -- "MOVE_M@GANGSTER@NG" - -- "MOVE_F@GANGSTER@NG" - -- "MOVE_M@POSH@" - -- "MOVE_F@POSH@" - -- "MOVE_M@TOUGH_GUY@" - -- "MOVE_F@TOUGH_GUY@" - -- - -- ~ NotCrunchyTaco - -- - -- Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json - SET_PED_MOVEMENT_CLIPSET=--[[void]] function(--[[Ped (int)]] ped,--[[string]] clipSet,--[[float]] transitionSpeed)return native_invoker.unified_void(ped, clipSet, transitionSpeed, 0xAF8A94EDE7712BEF, "isf")end - -- If p1 is 0.0, I believe you are back to normal. - -- If p1 is 1.0, it looks like you can only rotate the ped, not walk. - -- - -- Using the following code to reset back to normal - -- PED::RESET_PED_MOVEMENT_CLIPSET(PLAYER::PLAYER_PED_ID(), 0.0); - RESET_PED_MOVEMENT_CLIPSET=--[[void]] function(--[[Ped (int)]] ped,--[[float]] p1)return native_invoker.unified_void(ped, p1, 0xAA74EC0CB0AAEA2C, "if")end - -- Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json - SET_PED_STRAFE_CLIPSET=--[[void]] function(--[[Ped (int)]] ped,--[[string]] clipSet)return native_invoker.unified_void(ped, clipSet, 0x29A28F3F8CF6D854, "is")end - RESET_PED_STRAFE_CLIPSET=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x20510814175EA477, "i")end - SET_PED_WEAPON_MOVEMENT_CLIPSET=--[[void]] function(--[[Ped (int)]] ped,--[[string]] clipSet)return native_invoker.unified_void(ped, clipSet, 0x2622E35B77D3ACA2, "is")end - RESET_PED_WEAPON_MOVEMENT_CLIPSET=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x97B0DB5B4AA74E77, "i")end - SET_PED_DRIVE_BY_CLIPSET_OVERRIDE=--[[void]] function(--[[Ped (int)]] ped,--[[string]] clipset)return native_invoker.unified_void(ped, clipset, 0xED34AB6C5CB36520, "is")end - CLEAR_PED_DRIVE_BY_CLIPSET_OVERRIDE=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x4AFE3690D7E0B5AC, "i")end - -- Found in the b617d scripts: - -- PED::SET_PED_MOTION_IN_COVER_CLIPSET_OVERRIDE(v_7, "trevor_heist_cover_2h"); - SET_PED_MOTION_IN_COVER_CLIPSET_OVERRIDE=--[[void]] function(--[[Ped (int)]] ped,--[[string]] p1)return native_invoker.unified_void(ped, p1, 0x9DBA107B4937F809, "is")end - CLEAR_PED_MOTION_IN_COVER_CLIPSET_OVERRIDE=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xC79196DCB36F6121, "i")end - CLEAR_PED_FALL_UPPER_BODY_CLIPSET_OVERRIDE=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x80054D7FCC70EEC6, "i")end - -- PED::SET_PED_IN_VEHICLE_CONTEXT(l_128, MISC::GET_HASH_KEY("MINI_PROSTITUTE_LOW_PASSENGER")); - -- PED::SET_PED_IN_VEHICLE_CONTEXT(l_128, MISC::GET_HASH_KEY("MINI_PROSTITUTE_LOW_RESTRICTED_PASSENGER")); - -- PED::SET_PED_IN_VEHICLE_CONTEXT(l_3212, MISC::GET_HASH_KEY("MISS_FAMILY1_JIMMY_SIT")); - -- PED::SET_PED_IN_VEHICLE_CONTEXT(l_3212, MISC::GET_HASH_KEY("MISS_FAMILY1_JIMMY_SIT_REAR")); - -- PED::SET_PED_IN_VEHICLE_CONTEXT(l_95, MISC::GET_HASH_KEY("MISS_FAMILY2_JIMMY_BICYCLE")); - -- PED::SET_PED_IN_VEHICLE_CONTEXT(num3, MISC::GET_HASH_KEY("MISSFBI2_MICHAEL_DRIVEBY")); - -- PED::SET_PED_IN_VEHICLE_CONTEXT(PLAYER::PLAYER_PED_ID(), MISC::GET_HASH_KEY("MISS_ARMENIAN3_FRANKLIN_TENSE")); - -- PED::SET_PED_IN_VEHICLE_CONTEXT(PLAYER::PLAYER_PED_ID(), MISC::GET_HASH_KEY("MISSFBI5_TREVOR_DRIVING")); - SET_PED_IN_VEHICLE_CONTEXT=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] context)return native_invoker.unified_void(ped, context, 0x530071295899A8C6, "ii")end - RESET_PED_IN_VEHICLE_CONTEXT=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x22EF8FF8778030EB, "i")end - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - IS_SCRIPTED_SCENARIO_PED_USING_CONDITIONAL_ANIM=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[string]] animDict,--[[string]] anim)return native_invoker.unified_bool(ped, animDict, anim, 0x6EC47A344923E1ED, "iss")end - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - -- - -- Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json - SET_PED_ALTERNATE_WALK_ANIM=--[[void]] function(--[[Ped (int)]] ped,--[[string]] animDict,--[[string]] animName,--[[float]] p3,--[[BOOL (bool)]] p4)return native_invoker.unified_void(ped, animDict, animName, p3, p4, 0x6C60394CB4F75E9A, "issfb")end - CLEAR_PED_ALTERNATE_WALK_ANIM=--[[void]] function(--[[Ped (int)]] ped,--[[float]] p1)return native_invoker.unified_void(ped, p1, 0x8844BBFCE30AA9E9, "if")end - -- stance: - -- 0 = idle - -- 1 = walk - -- 2 = running - -- - -- p5 = usually set to true - -- - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - -- - -- Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json - SET_PED_ALTERNATE_MOVEMENT_ANIM=--[[void]] function(--[[Ped (int)]] ped,--[[int]] stance,--[[string]] animDictionary,--[[string]] animationName,--[[float]] p4,--[[BOOL (bool)]] p5)return native_invoker.unified_void(ped, stance, animDictionary, animationName, p4, p5, 0x90A43CC281FFAB46, "iissfb")end - CLEAR_PED_ALTERNATE_MOVEMENT_ANIM=--[[void]] function(--[[Ped (int)]] ped,--[[int]] stance,--[[float]] p2)return native_invoker.unified_void(ped, stance, p2, 0xD8D19675ED5FBDCE, "iif")end - -- From the scripts: - -- PED::SET_PED_GESTURE_GROUP(PLAYER::PLAYER_PED_ID(), - -- "ANIM_GROUP_GESTURE_MISS_FRA0"); - -- PED::SET_PED_GESTURE_GROUP(PLAYER::PLAYER_PED_ID(), - -- "ANIM_GROUP_GESTURE_MISS_DocksSetup1"); - SET_PED_GESTURE_GROUP=--[[void]] function(--[[Ped (int)]] ped,--[[string]] animGroupGesture)return native_invoker.unified_void(ped, animGroupGesture, 0xDDF803377F94AAA8, "is")end - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - GET_ANIM_INITIAL_OFFSET_POSITION=--[[Vector3 (vector3)]] function(--[[string]] animDict,--[[string]] animName,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] xRot,--[[float]] yRot,--[[float]] zRot,--[[float]] p8,--[[int]] p9)return native_invoker.unified_vector3(animDict, animName, x, y, z, xRot, yRot, zRot, p8, p9, 0xBE22B26DD764C040, "ssfffffffi")end - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - GET_ANIM_INITIAL_OFFSET_ROTATION=--[[Vector3 (vector3)]] function(--[[string]] animDict,--[[string]] animName,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] xRot,--[[float]] yRot,--[[float]] zRot,--[[float]] p8,--[[int]] p9)return native_invoker.unified_vector3(animDict, animName, x, y, z, xRot, yRot, zRot, p8, p9, 0x4B805E6046EE9E47, "ssfffffffi")end - -- Ids - -- 0 - Head - -- 1 - Beard - -- 2 - Hair - -- 3 - Torso - -- 4 - Legs - -- 5 - Hands - -- 6 - Foot - -- 7 - ------ - -- 8 - Accessories 1 - -- 9 - Accessories 2 - -- 10- Decals - -- 11 - Auxiliary parts for torso - GET_PED_DRAWABLE_VARIATION=--[[int]] function(--[[Ped (int)]] ped,--[[int]] componentId)return native_invoker.unified_int(ped, componentId, 0x67F3780DD425D4FC, "ii")end - -- List of component/props ID - -- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - GET_NUMBER_OF_PED_DRAWABLE_VARIATIONS=--[[int]] function(--[[Ped (int)]] ped,--[[int]] componentId)return native_invoker.unified_int(ped, componentId, 0x27561561732A7842, "ii")end - -- List of component/props ID - -- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - GET_PED_TEXTURE_VARIATION=--[[int]] function(--[[Ped (int)]] ped,--[[int]] componentId)return native_invoker.unified_int(ped, componentId, 0x04A355E041E004E6, "ii")end - -- List of component/props ID - -- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - GET_NUMBER_OF_PED_TEXTURE_VARIATIONS=--[[int]] function(--[[Ped (int)]] ped,--[[int]] componentId,--[[int]] drawableId)return native_invoker.unified_int(ped, componentId, drawableId, 0x8F7156A3142A6BAD, "iii")end - -- List of component/props ID - -- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - GET_NUMBER_OF_PED_PROP_DRAWABLE_VARIATIONS=--[[int]] function(--[[Ped (int)]] ped,--[[int]] propId)return native_invoker.unified_int(ped, propId, 0x5FAF9754E789FB47, "ii")end - -- Need to check behavior when drawableId = -1 - -- - -- - Doofy.Ass - -- Why this function doesn't work and return nill value? - -- GET_NUMBER_OF_PED_PROP_TEXTURE_VARIATIONS(PLAYER.PLAYER_PED_ID(), 0, 5) - -- - -- tick: scripts/addins/menu_execute.lua:51: attempt to call field 'GET_NUMBER_OF_PED_PROP_TEXTURE_VARIATIONS' (a nil value) - -- - -- - -- List of component/props ID - -- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - GET_NUMBER_OF_PED_PROP_TEXTURE_VARIATIONS=--[[int]] function(--[[Ped (int)]] ped,--[[int]] propId,--[[int]] drawableId)return native_invoker.unified_int(ped, propId, drawableId, 0xA6E7F1CEB523E171, "iii")end - -- List of component/props ID - -- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - GET_PED_PALETTE_VARIATION=--[[int]] function(--[[Ped (int)]] ped,--[[int]] componentId)return native_invoker.unified_int(ped, componentId, 0xE3DD5F2A84B42281, "ii")end - GET_MP_OUTFIT_DATA_FROM_METADATA=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[Any* (pointer)]] p1)return native_invoker.unified_bool(p0, p1, 0x9E30E91FB03A2CAF, "pp")end - GET_FM_MALE_SHOP_PED_APPAREL_ITEM_INDEX=--[[int]] function(--[[int]] p0)return native_invoker.unified_int(p0, 0x1E77FA7A62EE6C4C, "i")end - GET_FM_FEMALE_SHOP_PED_APPAREL_ITEM_INDEX=--[[int]] function(--[[int]] p0)return native_invoker.unified_int(p0, 0xF033419D1B81FAE8, "i")end - -- Checks if the component variation is valid, this works great for randomizing components using loops. - -- - -- List of component/props ID - -- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - -- - -- Full list of ped components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedComponentVariations.json - IS_PED_COMPONENT_VARIATION_VALID=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[int]] componentId,--[[int]] drawableId,--[[int]] textureId)return native_invoker.unified_bool(ped, componentId, drawableId, textureId, 0xE825F6B6CEA7671D, "iiii")end - -- paletteId: 0 to 3. - -- - -- componentId: - -- enum ePedVarComp - -- { - -- PV_COMP_INVALID = -1, - -- PV_COMP_HEAD, - -- PV_COMP_BERD, - -- PV_COMP_HAIR, - -- PV_COMP_UPPR, - -- PV_COMP_LOWR, - -- PV_COMP_HAND, - -- PV_COMP_FEET, - -- PV_COMP_TEEF, - -- PV_COMP_ACCS, - -- PV_COMP_TASK, - -- PV_COMP_DECL, - -- PV_COMP_JBIB, - -- PV_COMP_MAX - -- }; - -- - -- Examples: https://gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - -- - -- Full list of ped components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedComponentVariations.json - SET_PED_COMPONENT_VARIATION=--[[void]] function(--[[Ped (int)]] ped,--[[int]] componentId,--[[int]] drawableId,--[[int]] textureId,--[[int]] paletteId)return native_invoker.unified_void(ped, componentId, drawableId, textureId, paletteId, 0x262B14F48D29DE80, "iiiii")end - -- p1 is always 0 in R* scripts. - -- - -- List of component/props ID - -- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - SET_PED_RANDOM_COMPONENT_VARIATION=--[[void]] function(--[[Ped (int)]] ped,--[[int]] p1)return native_invoker.unified_void(ped, p1, 0xC8A9481A01E63C28, "ii")end - -- List of component/props ID - -- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - SET_PED_RANDOM_PROPS=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xC44AA05345C992C6, "i")end - -- Sets Ped Default Clothes - SET_PED_DEFAULT_COMPONENT_VARIATION=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x45EEE61580806D63, "i")end - SET_PED_BLEND_FROM_PARENTS=--[[void]] function(--[[Ped (int)]] ped,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[float]] p3,--[[float]] p4)return native_invoker.unified_void(ped, p1, p2, p3, p4, 0x137BBD05230DB22D, "iiiff")end - -- The "shape" parameters control the shape of the ped's face. The "skin" parameters control the skin tone. ShapeMix and skinMix control how much the first and second IDs contribute,(typically mother and father.) ThirdMix overrides the others in favor of the third IDs. IsParent is set for "children" of the player character's grandparents during old-gen character creation. It has unknown effect otherwise. - -- - -- The IDs start at zero and go Male Non-DLC, Female Non-DLC, Male DLC, and Female DLC. - -- - -- !!!Can someone add working example for this??? - -- - -- try this: - -- headBlendData headData; - -- GET_PED_HEAD_BLEND_DATA(PLAYER_PED_ID(), &headData); - -- - -- SET_PED_HEAD_BLEND_DATA(PLAYER_PED_ID(), headData.shapeFirst, headData.shapeSecond, headData.shapeThird, headData.skinFirst, headData.skinSecond - -- , headData.skinThird, headData.shapeMix, headData.skinMix, headData.skinThird, 0); - -- - -- - -- For more info please refer to this topic. - -- gtaforums.com/topic/858970-all-gtao-face-ids-pedset-ped-head-blend-data-explained - SET_PED_HEAD_BLEND_DATA=--[[void]] function(--[[Ped (int)]] ped,--[[int]] shapeFirstID,--[[int]] shapeSecondID,--[[int]] shapeThirdID,--[[int]] skinFirstID,--[[int]] skinSecondID,--[[int]] skinThirdID,--[[float]] shapeMix,--[[float]] skinMix,--[[float]] thirdMix,--[[BOOL (bool)]] isParent)return native_invoker.unified_void(ped, shapeFirstID, shapeSecondID, shapeThirdID, skinFirstID, skinSecondID, skinThirdID, shapeMix, skinMix, thirdMix, isParent, 0x9414E18B9434C2FE, "iiiiiiifffb")end - -- The pointer is to a padded struct that matches the arguments to SET_PED_HEAD_BLEND_DATA(...). There are 4 bytes of padding after each field. - -- pass this struct in the second parameter - -- struct headBlendData - -- { - -- int shapeFirst; - -- int padding1; - -- int shapeSecond; - -- int padding2; - -- int shapeThird; - -- int padding3; - -- int skinFirst; - -- int padding4; - -- int skinSecond; - -- int padding5; - -- int skinThird; - -- int padding6; - -- float shapeMix; - -- int padding7; - -- float skinMix; - -- int padding8; - -- float thirdMix; - -- int padding9; - -- bool isParent; - -- }; - GET_PED_HEAD_BLEND_DATA=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Any* (pointer)]] headBlendData)return native_invoker.unified_bool(ped, headBlendData, 0x2746BD9D88C5C5D0, "ip")end - -- See SET_PED_HEAD_BLEND_DATA(). - UPDATE_PED_HEAD_BLEND_DATA=--[[void]] function(--[[Ped (int)]] ped,--[[float]] shapeMix,--[[float]] skinMix,--[[float]] thirdMix)return native_invoker.unified_void(ped, shapeMix, skinMix, thirdMix, 0x723538F61C647C5A, "ifff")end - -- Used for freemode (online) characters. - -- - -- For some reason, the scripts use a rounded float for the index. - -- Indexes: - -- 1. black - -- 2. very light blue/green - -- 3. dark blue - -- 4. brown - -- 5. darker brown - -- 6. light brown - -- 7. blue - -- 8. light blue - -- 9. pink - -- 10. yellow - -- 11. purple - -- 12. black - -- 13. dark green - -- 14. light brown - -- 15. yellow/black pattern - -- 16. light colored spiral pattern - -- 17. shiny red - -- 18. shiny half blue/half red - -- 19. half black/half light blue - -- 20. white/red perimter - -- 21. green snake - -- 22. red snake - -- 23. dark blue snake - -- 24. dark yellow - -- 25. bright yellow - -- 26. all black - -- 28. red small pupil - -- 29. devil blue/black - -- 30. white small pupil - -- 31. glossed over - SET_HEAD_BLEND_EYE_COLOR=--[[void]] function(--[[Ped (int)]] ped,--[[int]] index)return native_invoker.unified_void(ped, index, 0x50B56988B170AFDF, "ii")end - -- A getter for _SET_PED_EYE_COLOR. Returns -1 if fails to get. - GET_HEAD_BLEND_EYE_COLOR=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x76BBA2CEE66D47E9, "i")end - -- OverlayID ranges from 0 to 12, index from 0 to _GET_NUM_OVERLAY_VALUES(overlayID)-1, and opacity from 0.0 to 1.0. - -- - -- overlayID Part Index, to disable - -- 0 Blemishes 0 - 23, 255 - -- 1 Facial Hair 0 - 28, 255 - -- 2 Eyebrows 0 - 33, 255 - -- 3 Ageing 0 - 14, 255 - -- 4 Makeup 0 - 74, 255 - -- 5 Blush 0 - 6, 255 - -- 6 Complexion 0 - 11, 255 - -- 7 Sun Damage 0 - 10, 255 - -- 8 Lipstick 0 - 9, 255 - -- 9 Moles/Freckles 0 - 17, 255 - -- 10 Chest Hair 0 - 16, 255 - -- 11 Body Blemishes 0 - 11, 255 - -- 12 Add Body Blemishes 0 - 1, 255 - SET_PED_HEAD_OVERLAY=--[[void]] function(--[[Ped (int)]] ped,--[[int]] overlayID,--[[int]] index,--[[float]] opacity)return native_invoker.unified_void(ped, overlayID, index, opacity, 0x48F44967FA05CC1E, "iiif")end - -- Likely a char, if that overlay is not set, e.i. "None" option, returns 255; - -- - -- This might be the once removed native GET_PED_HEAD_OVERLAY. - GET_PED_HEAD_OVERLAY=--[[int]] function(--[[Ped (int)]] ped,--[[int]] overlayID)return native_invoker.unified_int(ped, overlayID, 0xA60EF3B6461A4D43, "ii")end - GET_PED_HEAD_OVERLAY_NUM=--[[int]] function(--[[int]] overlayID)return native_invoker.unified_int(overlayID, 0xCF1CE768BB43480E, "i")end - -- - -- - -- ColorType is 1 for eyebrows, beards, and chest hair; 2 for blush and lipstick; and 0 otherwise, though not called in those cases. - -- - -- Called after SET_PED_HEAD_OVERLAY(). - SET_PED_HEAD_OVERLAY_TINT=--[[void]] function(--[[Ped (int)]] ped,--[[int]] overlayID,--[[int]] colorType,--[[int]] colorID,--[[int]] secondColorID)return native_invoker.unified_void(ped, overlayID, colorType, colorID, secondColorID, 0x497BF74A7B9CB952, "iiiii")end - SET_PED_HAIR_TINT=--[[void]] function(--[[Ped (int)]] ped,--[[int]] colorID,--[[int]] highlightColorID)return native_invoker.unified_void(ped, colorID, highlightColorID, 0x4CFFC65454C93A49, "iii")end - GET_NUM_PED_HAIR_TINTS=--[[int]] function()return native_invoker.unified_int(0xE5C0CF872C2AD150, "")end - GET_NUM_PED_MAKEUP_TINTS=--[[int]] function()return native_invoker.unified_int(0xD1F7CA1535D22818, "")end - -- Input: Haircolor index, value between 0 and 63 (inclusive). - -- Output: RGB values for the haircolor specified in the input. - -- - -- This is used with the hair color swatches scaleform. - -- Use `GET_PED_MAKEUP_TINT_COLOR` to get the makeup colors. - GET_PED_HAIR_TINT_COLOR=--[[void]] function(--[[int]] hairColorIndex,--[[int* (pointer)]] outR,--[[int* (pointer)]] outG,--[[int* (pointer)]] outB)return native_invoker.unified_void(hairColorIndex, outR, outG, outB, 0x4852FC386E2E1BB5, "ippp")end - -- Input: Makeup color index, value between 0 and 63 (inclusive). - -- Output: RGB values for the makeup color specified in the input. - -- - -- This is used with the makeup color swatches scaleform. - -- Use `GET_PED_HAIR_TINT_COLOR` to get the hair colors. - GET_PED_MAKEUP_TINT_COLOR=--[[void]] function(--[[int]] makeupColorIndex,--[[int* (pointer)]] outR,--[[int* (pointer)]] outG,--[[int* (pointer)]] outB)return native_invoker.unified_void(makeupColorIndex, outR, outG, outB, 0x013E5CFC38CD5387, "ippp")end - IS_PED_HAIR_TINT_FOR_CREATOR=--[[BOOL (bool)]] function(--[[int]] colorId)return native_invoker.unified_bool(colorId, 0xED6D8E27A43B8CDE, "i")end - GET_DEFAULT_SECONDARY_TINT_FOR_CREATOR=--[[int]] function(--[[int]] colorId)return native_invoker.unified_int(colorId, 0xEA9960D07DADCF10, "i")end - IS_PED_LIPSTICK_TINT_FOR_CREATOR=--[[BOOL (bool)]] function(--[[int]] colorId)return native_invoker.unified_bool(colorId, 0x3E802F11FBE27674, "i")end - IS_PED_BLUSH_TINT_FOR_CREATOR=--[[BOOL (bool)]] function(--[[int]] colorId)return native_invoker.unified_bool(colorId, 0xF41B5D290C99A3D6, "i")end - IS_PED_HAIR_TINT_FOR_BARBER=--[[BOOL (bool)]] function(--[[int]] colorID)return native_invoker.unified_bool(colorID, 0xE0D36E5D9E99CC21, "i")end - GET_DEFAULT_SECONDARY_TINT_FOR_BARBER=--[[int]] function(--[[int]] colorID)return native_invoker.unified_int(colorID, 0xAAA6A3698A69E048, "i")end - IS_PED_LIPSTICK_TINT_FOR_BARBER=--[[BOOL (bool)]] function(--[[int]] colorID)return native_invoker.unified_bool(colorID, 0x0525A2C2562F3CD4, "i")end - IS_PED_BLUSH_TINT_FOR_BARBER=--[[BOOL (bool)]] function(--[[int]] colorID)return native_invoker.unified_bool(colorID, 0x604E810189EE3A59, "i")end - IS_PED_BLUSH_FACEPAINT_TINT_FOR_BARBER=--[[BOOL (bool)]] function(--[[int]] colorId)return native_invoker.unified_bool(colorId, 0x09E7ECA981D9B210, "i")end - GET_TINT_INDEX_FOR_LAST_GEN_HAIR_TEXTURE=--[[int]] function(--[[Hash (int)]] modelHash,--[[int]] drawableId,--[[int]] textureId)return native_invoker.unified_int(modelHash, drawableId, textureId, 0xC56FBF2F228E1DAC, "iii")end - -- Sets the various freemode face features, e.g. nose length, chin shape. Scale ranges from -1.0 to 1.0. - -- - -- - -- - -- 0 - Nose Width (Thin/Wide) - -- - -- 1 - Nose Peak (Up/Down) - -- - -- 2 - Nose Length (Long/Short) - -- - -- 3 - Nose Bone Curveness (Crooked/Curved) - -- - -- 4 - Nose Tip (Up/Down) - -- - -- 5 - Nose Bone Twist (Left/Right) - -- - -- 6 - Eyebrow (Up/Down) - -- - -- 7 - Eyebrow (In/Out) - -- - -- 8 - Cheek Bones (Up/Down) - -- - -- 9 - Cheek Sideways Bone Size (In/Out) - -- - -- 10 - Cheek Bones Width (Puffed/Gaunt) - -- - -- 11 - Eye Opening (Both) (Wide/Squinted) - -- - -- 12 - Lip Thickness (Both) (Fat/Thin) - -- - -- 13 - Jaw Bone Width (Narrow/Wide) - -- - -- 14 - Jaw Bone Shape (Round/Square) - -- - -- 15 - Chin Bone (Up/Down) - -- - -- 16 - Chin Bone Length (In/Out or Backward/Forward) - -- - -- 17 - Chin Bone Shape (Pointed/Square) - -- - -- 18 - Chin Hole (Chin Bum) - -- - -- 19 - Neck Thickness (Thin/Thick) - SET_PED_MICRO_MORPH=--[[void]] function(--[[Ped (int)]] ped,--[[int]] index,--[[float]] scale)return native_invoker.unified_void(ped, index, scale, 0x71A5C1DBA060049E, "iif")end - HAS_PED_HEAD_BLEND_FINISHED=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x654CD0A825161131, "i")end - FINALIZE_HEAD_BLEND=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x4668D80430D6C299, "i")end - -- p4 seems to vary from 0 to 3. - -- Preview: https://gfycat.com/MaleRareAmazonparrot - SET_HEAD_BLEND_PALETTE_COLOR=--[[void]] function(--[[Ped (int)]] ped,--[[int]] r,--[[int]] g,--[[int]] b,--[[int]] id)return native_invoker.unified_void(ped, r, g, b, id, 0xCC9682B8951C5229, "iiiii")end - DISABLE_HEAD_BLEND_PALETTE_COLOR=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xA21C118553BBDF02, "i")end - -- Type equals 0 for male non-dlc, 1 for female non-dlc, 2 for male dlc, and 3 for female dlc. - -- - -- Used when calling SET_PED_HEAD_BLEND_DATA. - GET_PED_HEAD_BLEND_FIRST_INDEX=--[[int]] function(--[[int]] type)return native_invoker.unified_int(type, 0x68D353AB88B97E0C, "i")end - -- Type equals 0 for male non-dlc, 1 for female non-dlc, 2 for male dlc, and 3 for female dlc. - GET_PED_HEAD_BLEND_NUM_HEADS=--[[int]] function(--[[int]] type)return native_invoker.unified_int(type, 0x5EF37013A6539C9D, "i")end - -- from extreme3.c4 - -- PED::SET_PED_PRELOAD_VARIATION_DATA(PLAYER::PLAYER_PED_ID(), 8, PED::GET_PED_DRAWABLE_VARIATION(PLAYER::PLAYER_PED_ID(), 8), PED::GET_PED_TEXTURE_VARIATION(PLAYER::PLAYER_PED_ID(), 8)); - -- - -- p1 is probably componentId - SET_PED_PRELOAD_VARIATION_DATA=--[[int]] function(--[[Ped (int)]] ped,--[[int]] slot,--[[int]] drawableId,--[[int]] textureId)return native_invoker.unified_int(ped, slot, drawableId, textureId, 0x39D55A620FCB6A3A, "iiii")end - HAS_PED_PRELOAD_VARIATION_DATA_FINISHED=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x66680A92700F43DF, "i")end - RELEASE_PED_PRELOAD_VARIATION_DATA=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x5AAB586FFEC0FD96, "i")end - -- List of component/props ID - -- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - SET_PED_PRELOAD_PROP_DATA=--[[int]] function(--[[Ped (int)]] ped,--[[int]] componentId,--[[int]] drawableId,--[[int]] TextureId)return native_invoker.unified_int(ped, componentId, drawableId, TextureId, 0x2B16A3BFF1FBCE49, "iiii")end - HAS_PED_PRELOAD_PROP_DATA_FINISHED=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x784002A632822099, "i")end - RELEASE_PED_PRELOAD_PROP_DATA=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xF79F9DEF0AADE61A, "i")end - -- List of component/props ID - -- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - GET_PED_PROP_INDEX=--[[int]] function(--[[Ped (int)]] ped,--[[int]] componentId,--[[Any (int)]] p2)return native_invoker.unified_int(ped, componentId, p2, 0x898CC20EA75BACD8, "iii")end - -- ComponentId can be set to various things based on what category you're wanting to set - -- enum PedPropsData - -- { - -- PED_PROP_HATS = 0, - -- PED_PROP_GLASSES = 1, - -- PED_PROP_EARS = 2, - -- PED_PROP_WATCHES = 3, - -- }; - -- Usage: SET_PED_PROP_INDEX(playerPed, PED_PROP_HATS, GET_NUMBER_OF_PED_PROP_DRAWABLE_VARIATIONS(playerPed, PED_PROP_HATS), GET_NUMBER_OF_PED_PROP_TEXTURE_VARIATIONS(playerPed, PED_PROP_HATS, 0), TRUE); - -- - -- List of component/props ID - -- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - SET_PED_PROP_INDEX=--[[void]] function(--[[Ped (int)]] ped,--[[int]] componentId,--[[int]] drawableId,--[[int]] TextureId,--[[BOOL (bool)]] attach,--[[Any (int)]] p5)return native_invoker.unified_void(ped, componentId, drawableId, TextureId, attach, p5, 0x93376B65A266EB5F, "iiiibi")end - -- List of component/props ID - -- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - KNOCK_OFF_PED_PROP=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3,--[[BOOL (bool)]] p4)return native_invoker.unified_void(ped, p1, p2, p3, p4, 0x6FD7816A36615F48, "ibbbb")end - -- List of component/props ID - -- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - CLEAR_PED_PROP=--[[void]] function(--[[Ped (int)]] ped,--[[int]] propId,--[[Any (int)]] p2)return native_invoker.unified_void(ped, propId, p2, 0x0943E5B8E078E76E, "iii")end - -- List of component/props ID - -- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - CLEAR_ALL_PED_PROPS=--[[void]] function(--[[Ped (int)]] ped,--[[Any (int)]] p1)return native_invoker.unified_void(ped, p1, 0xCD8A7537A9B52F06, "ii")end - DROP_AMBIENT_PROP=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xAFF4710E2A0A6C12, "i")end - -- List of component/props ID - -- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - GET_PED_PROP_TEXTURE_INDEX=--[[int]] function(--[[Ped (int)]] ped,--[[int]] componentId)return native_invoker.unified_int(ped, componentId, 0xE131A28626F81AB2, "ii")end - CLEAR_PED_PARACHUTE_PACK_VARIATION=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x1280804F7CFD2D6C, "i")end - -- This native sets a scuba mask for freemode models and an oxygen bottle for player_* models. It works on freemode and player_* models. - SET_PED_SCUBA_GEAR_VARIATION=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x36C6984C3ED0C911, "i")end - -- Removes the scubagear (for mp male: component id: 8, drawableId: 123, textureId: any) from peds. Does not play the 'remove scuba gear' animation, but instantly removes it. - CLEAR_PED_SCUBA_GEAR_VARIATION=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xB50EB4CCB29704AC, "i")end - IS_USING_PED_SCUBA_GEAR_VARIATION=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0xFEC9A3B1820F3331, "i")end - -- works with TASK::TASK_SET_BLOCKING_OF_NON_TEMPORARY_EVENTS to make a ped completely oblivious to all events going on around him - SET_BLOCKING_OF_NON_TEMPORARY_EVENTS=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x9F8AA94D6D97DBF4, "ib")end - SET_PED_BOUNDS_ORIENTATION=--[[void]] function(--[[Ped (int)]] ped,--[[float]] p1,--[[float]] p2,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(ped, p1, p2, x, y, z, 0x4F5F651ACCC9C4CF, "ifffff")end - -- PED::REGISTER_TARGET(l_216, PLAYER::PLAYER_PED_ID()); from re_prisonbreak.txt. - -- - -- l_216 = RECSBRobber1 - REGISTER_TARGET=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] target)return native_invoker.unified_void(ped, target, 0x2F25D9AEFA34FBA2, "ii")end - -- Based on TASK_COMBAT_HATED_TARGETS_AROUND_PED, the parameters are likely similar (PedHandle, and area to attack in). - REGISTER_HATED_TARGETS_AROUND_PED=--[[void]] function(--[[Ped (int)]] ped,--[[float]] radius)return native_invoker.unified_void(ped, radius, 0x9222F300BF8354FE, "if")end - -- Gets a random ped in the x/y/zRadius near the x/y/z coordinates passed. - -- - -- Ped Types: - -- Any = -1 - -- Player = 1 - -- Male = 4 - -- Female = 5 - -- Cop = 6 - -- Human = 26 - -- SWAT = 27 - -- Animal = 28 - -- Army = 29 - GET_RANDOM_PED_AT_COORD=--[[Ped (int)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] xRadius,--[[float]] yRadius,--[[float]] zRadius,--[[int]] pedType)return native_invoker.unified_int(x, y, z, xRadius, yRadius, zRadius, pedType, 0x876046A8E3A4B71C, "ffffffi")end - -- Gets the closest ped in a radius. - -- - -- Ped Types: - -- Any ped = -1 - -- Player = 1 - -- Male = 4 - -- Female = 5 - -- Cop = 6 - -- Human = 26 - -- SWAT = 27 - -- Animal = 28 - -- Army = 29 - -- - -- ------------------ - -- P4 P5 P7 P8 - -- 1 0 x x = return nearest walking Ped - -- 1 x 0 x = return nearest walking Ped - -- x 1 1 x = return Ped you are using - -- 0 0 x x = no effect - -- 0 x 0 x = no effect - -- - -- x = can be 1 or 0. Does not have any obvious changes. - -- - -- This function does not return ped who is: - -- 1. Standing still - -- 2. Driving - -- 3. Fleeing - -- 4. Attacking - -- - -- This function only work if the ped is: - -- 1. walking normally. - -- 2. waiting to cross a road. - -- - -- Note: PED::GET_PED_NEARBY_PEDS works for more peds. - GET_CLOSEST_PED=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[BOOL (bool)]] p4,--[[BOOL (bool)]] p5,--[[Ped* (pointer)]] outPed,--[[BOOL (bool)]] p7,--[[BOOL (bool)]] p8,--[[int]] pedType)return native_invoker.unified_bool(x, y, z, radius, p4, p5, outPed, p7, p8, pedType, 0xC33AB876A77F8164, "ffffbbpbbi")end - -- Sets a value indicating whether scenario peds should be returned by the next call to a command that returns peds. Eg. GET_CLOSEST_PED. - SET_SCENARIO_PEDS_TO_BE_RETURNED_BY_NEXT_COMMAND=--[[void]] function(--[[BOOL (bool)]] value)return native_invoker.unified_void(value, 0x14F19A8782C8071E, "b")end - GET_CAN_PED_BE_GRABBED_BY_SCRIPT=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3,--[[BOOL (bool)]] p4,--[[BOOL (bool)]] p5,--[[BOOL (bool)]] p6,--[[BOOL (bool)]] p7,--[[Any (int)]] p8)return native_invoker.unified_bool(ped, p1, p2, p3, p4, p5, p6, p7, p8, 0x03EA03AF85A85CB7, "ibbbbbbbi")end - -- Scripts use 0.2, 0.5 and 1.0. Value must be >= 0.0 && <= 1.0 - SET_DRIVER_RACING_MODIFIER=--[[void]] function(--[[Ped (int)]] driver,--[[float]] modifier)return native_invoker.unified_void(driver, modifier, 0xDED5AF5A0EA4B297, "if")end - -- The function specifically verifies the value is equal to, or less than 1.0f. If it is greater than 1.0f, the function does nothing at all. - SET_DRIVER_ABILITY=--[[void]] function(--[[Ped (int)]] driver,--[[float]] ability)return native_invoker.unified_void(driver, ability, 0xB195FFA8042FC5C3, "if")end - -- range 0.0f - 1.0f - SET_DRIVER_AGGRESSIVENESS=--[[void]] function(--[[Ped (int)]] driver,--[[float]] aggressiveness)return native_invoker.unified_void(driver, aggressiveness, 0xA731F608CA104E3C, "if")end - -- Prevents the ped from going limp. - -- - -- [Example: Can prevent peds from falling when standing on moving vehicles.] - CAN_PED_RAGDOLL=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x128F79EDCECE4FD5, "i")end - -- p4/p5: Unused in TU27 - -- Ragdoll Types: - -- **0**: CTaskNMRelax - -- **1**: CTaskNMScriptControl: Hardcoded not to work in networked environments. - -- **Else**: CTaskNMBalance - -- time1- Time(ms) Ped is in ragdoll mode; only applies to ragdoll types 0 and not 1. - -- - -- time2- Unknown time, in milliseconds - -- - -- ragdollType- - -- 0 : Normal ragdoll - -- 1 : Falls with stiff legs/body - -- 2 : Narrow leg stumble(may not fall) - -- 3 : Wide leg stumble(may not fall) - -- - -- p4, p5, p6- No idea. In R*'s scripts they are usually either "true, true, false" or "false, false, false". - -- - -- - -- - -- - -- EDIT 3/11/16: unclear what 'mircoseconds' mean-- a microsecond is 1000x a ms, so time2 must be 1000x time1? more testing needed. -sob - -- - -- Edit Mar 21, 2017: removed part about time2 being the microseconds version of time1. this just isn't correct. time2 is in milliseconds, and time1 and time2 don't seem to be connected in any way. - SET_PED_TO_RAGDOLL=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[int]] time1,--[[int]] time2,--[[int]] ragdollType,--[[BOOL (bool)]] p4,--[[BOOL (bool)]] p5,--[[BOOL (bool)]] p6)return native_invoker.unified_bool(ped, time1, time2, ragdollType, p4, p5, p6, 0xAE99FB955581844A, "iiiibbb")end - -- Return variable is never used in R*'s scripts. - -- - -- Not sure what p2 does. It seems like it would be a time judging by it's usage in R*'s scripts, but didn't seem to affect anything in my testings. - -- - -- enum eRagdollType - -- { - -- RD_MALE=0, - -- RD_FEMALE = 1, - -- RD_MALE_LARGE = 2, - -- RD_CUSTOM = 3, - -- } - -- - -- x, y, and z are coordinates, most likely to where the ped will fall. - -- - -- p8 to p13 are always 0f in R*'s scripts. - -- - -- (Simplified) Example of the usage of the function from R*'s scripts: - -- ped::set_ped_to_ragdoll_with_fall(ped, 1500, 2000, 1, -entity::get_entity_forward_vector(ped), 1f, 0f, 0f, 0f, 0f, 0f, 0f); - -- - SET_PED_TO_RAGDOLL_WITH_FALL=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[int]] time,--[[int]] p2,--[[int]] ragdollType,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] velocity,--[[float]] p8,--[[float]] p9,--[[float]] p10,--[[float]] p11,--[[float]] p12,--[[float]] p13)return native_invoker.unified_bool(ped, time, p2, ragdollType, x, y, z, velocity, p8, p9, p10, p11, p12, p13, 0xD76632D99E4966C8, "iiiiffffffffff")end - -- Causes Ped to ragdoll on collision with any object (e.g Running into trashcan). If applied to player you will sometimes trip on the sidewalk. - SET_PED_RAGDOLL_ON_COLLISION=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xF0A4F1BBF4FA7497, "ib")end - -- If the ped handle passed through the parenthesis is in a ragdoll state this will return true. - IS_PED_RAGDOLL=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x47E4E977581C5B55, "i")end - IS_PED_RUNNING_RAGDOLL_TASK=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xE3B6097CC25AA69E, "i")end - SET_PED_RAGDOLL_FORCE_FALL=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x01F6594B923B9251, "i")end - RESET_PED_RAGDOLL_TIMER=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x9FA4664CF62E47E8, "i")end - SET_PED_CAN_RAGDOLL=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xB128377056A54E2A, "ib")end - IS_PED_RUNNING_MELEE_TASK=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xD1871251F3B5ACD7, "i")end - IS_PED_RUNNING_MOBILE_PHONE_TASK=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x2AFE52F782F25775, "i")end - IS_MOBILE_PHONE_TO_PED_EAR=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xA3F3564A5B3646C0, "i")end - -- Works for both player and peds, - -- - -- enum eRagdollBlockingFlags - -- { - -- RBF_BULLET_IMPACT = 0, - -- RBF_VEHICLE_IMPACT = 1, - -- RBF_FIRE = 2, - -- RBF_ELECTROCUTION = 3, - -- RBF_PLAYER_IMPACT = 4, - -- RBF_EXPLOSION = 5,0 - -- RBF_IMPACT_OBJECT = 6, - -- RBF_MELEE = 7, - -- RBF_RUBBER_BULLET = 8, - -- RBF_FALLING = 9, - -- RBF_WATER_JET = 10, - -- RBF_DROWNING = 11, - -- _0x9F52E2C4 = 12, - -- RBF_PLAYER_BUMP = 13, - -- RBF_PLAYER_RAGDOLL_BUMP = 14, - -- RBF_PED_RAGDOLL_BUMP = 15, - -- RBF_VEHICLE_GRAB = 16, - -- RBF_SMOKE_GRENADE = 17, - -- }; - -- - -- - SET_RAGDOLL_BLOCKING_FLAGS=--[[void]] function(--[[Ped (int)]] ped,--[[int]] blockingFlag)return native_invoker.unified_void(ped, blockingFlag, 0x26695EC767728D84, "ii")end - -- See SET_RAGDOLL_BLOCKING_FLAGS for flags - CLEAR_RAGDOLL_BLOCKING_FLAGS=--[[void]] function(--[[Ped (int)]] ped,--[[int]] blockingFlag)return native_invoker.unified_void(ped, blockingFlag, 0xD86D101FCFD00A4B, "ii")end - SET_PED_ANGLED_DEFENSIVE_AREA=--[[void]] function(--[[Ped (int)]] ped,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[float]] p6,--[[float]] p7,--[[BOOL (bool)]] p8,--[[BOOL (bool)]] p9)return native_invoker.unified_void(ped, p1, p2, p3, p4, p5, p6, p7, p8, p9, 0xC7F76DF27A5045A1, "ifffffffbb")end - SET_PED_SPHERE_DEFENSIVE_AREA=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[BOOL (bool)]] p5,--[[BOOL (bool)]] p6)return native_invoker.unified_void(ped, x, y, z, radius, p5, p6, 0x9D3151A373974804, "iffffbb")end - SET_PED_DEFENSIVE_SPHERE_ATTACHED_TO_PED=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] target,--[[float]] xOffset,--[[float]] yOffset,--[[float]] zOffset,--[[float]] radius,--[[BOOL (bool)]] p6)return native_invoker.unified_void(ped, target, xOffset, yOffset, zOffset, radius, p6, 0xF9B8F91AAD3B953E, "iiffffb")end - SET_PED_DEFENSIVE_SPHERE_ATTACHED_TO_VEHICLE=--[[void]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] target,--[[float]] xOffset,--[[float]] yOffset,--[[float]] zOffset,--[[float]] radius,--[[BOOL (bool)]] p6)return native_invoker.unified_void(ped, target, xOffset, yOffset, zOffset, radius, p6, 0xE4723DB6E736CCFF, "iiffffb")end - SET_PED_DEFENSIVE_AREA_ATTACHED_TO_PED=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] attachPed,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[float]] p6,--[[float]] p7,--[[float]] p8,--[[BOOL (bool)]] p9,--[[BOOL (bool)]] p10)return native_invoker.unified_void(ped, attachPed, p2, p3, p4, p5, p6, p7, p8, p9, p10, 0x4EF47FE21698A8B6, "iifffffffbb")end - SET_PED_DEFENSIVE_AREA_DIRECTION=--[[void]] function(--[[Ped (int)]] ped,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[BOOL (bool)]] p4)return native_invoker.unified_void(ped, p1, p2, p3, p4, 0x413C6C763A4AFFAD, "ifffb")end - -- Ped will no longer get angry when you stay near him. - REMOVE_PED_DEFENSIVE_AREA=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x74D4E028107450A9, "ib")end - GET_PED_DEFENSIVE_AREA_POSITION=--[[Vector3 (vector3)]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1)return native_invoker.unified_vector3(ped, p1, 0x3C06B8786DD94CD1, "ib")end - IS_PED_DEFENSIVE_AREA_ACTIVE=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1)return native_invoker.unified_bool(ped, p1, 0xBA63D9FE45412247, "ib")end - SET_PED_PREFERRED_COVER_SET=--[[void]] function(--[[Ped (int)]] ped,--[[Any (int)]] itemSet)return native_invoker.unified_void(ped, itemSet, 0x8421EB4DA7E391B9, "ii")end - REMOVE_PED_PREFERRED_COVER_SET=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xFDDB234CF74073D9, "i")end - -- It will revive/cure the injured ped. The condition is ped must not be dead. - -- - -- Upon setting and converting the health int, found, if health falls below 5, the ped will lay on the ground in pain(Maximum default health is 100). - -- - -- This function is well suited there. - REVIVE_INJURED_PED=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x8D8ACD8388CD99CE, "i")end - -- This function will simply bring the dead person back to life. - -- - -- Try not to use it alone, since using this function alone, will make peds fall through ground in hell(well for the most of the times). - -- - -- Instead, before calling this function, you may want to declare the position, where your Resurrected ped to be spawn at.(For instance, Around 2 floats of Player's current position.) - -- - -- Also, disabling any assigned task immediately helped in the number of scenarios, where If you want peds to perform certain decided tasks. - RESURRECT_PED=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x71BC8E838B9C6035, "i")end - -- NOTE: Debugging functions are not present in the retail version of the game. - -- - -- *untested but char *name could also be a hash for a localized string - SET_PED_NAME_DEBUG=--[[void]] function(--[[Ped (int)]] ped,--[[string]] name)return native_invoker.unified_void(ped, name, 0x98EFA132A4117BE1, "is")end - -- Gets the offset the specified ped has moved since the previous tick. - -- - -- If worldSpace is false, the returned offset is relative to the ped. That is, if the ped has moved 1 meter right and 5 meters forward, it'll return 1,5,0. - -- - -- If worldSpace is true, the returned offset is relative to the world. That is, if the ped has moved 1 meter on the X axis and 5 meters on the Y axis, it'll return 1,5,0. - GET_PED_EXTRACTED_DISPLACEMENT=--[[Vector3 (vector3)]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] worldSpace)return native_invoker.unified_vector3(ped, worldSpace, 0xE0AF41401ADF87E3, "ib")end - SET_PED_DIES_WHEN_INJURED=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x5BA7919BED300023, "ib")end - SET_PED_ENABLE_WEAPON_BLOCKING=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x97A790315D3831FD, "ib")end - -- p1 was always 1 (true). - -- - -- Kicks the ped from the current vehicle and keeps the rendering-focus on this ped (also disables its collision). If doing this for your player ped, you'll still be able to drive the vehicle. - SPECIAL_FUNCTION_DO_NOT_USE=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1)return native_invoker.unified_void(ped, p1, 0xF9ACF4A08098EA25, "ib")end - RESET_PED_VISIBLE_DAMAGE=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x3AC1F7B898F30C05, "i")end - APPLY_PED_BLOOD_DAMAGE_BY_ZONE=--[[void]] function(--[[Ped (int)]] ped,--[[Any (int)]] p1,--[[float]] p2,--[[float]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(ped, p1, p2, p3, p4, 0x816F6981C60BF53B, "iiffi")end - -- woundTypes: - -- - soak_splat - -- - wound_sheet - -- - BulletSmall - -- - BulletLarge - -- - ShotgunSmall - -- - ShotgunSmallMonolithic - -- - ShotgunLarge - -- - ShotgunLargeMonolithic - -- - NonFatalHeadshot - -- - stab - -- - BasicSlash - -- - Scripted_Ped_Splash_Back - -- - BackSplash - APPLY_PED_BLOOD=--[[void]] function(--[[Ped (int)]] ped,--[[int]] boneIndex,--[[float]] xRot,--[[float]] yRot,--[[float]] zRot,--[[string]] woundType)return native_invoker.unified_void(ped, boneIndex, xRot, yRot, zRot, woundType, 0x83F7E01C7B769A26, "iifffs")end - APPLY_PED_BLOOD_BY_ZONE=--[[void]] function(--[[Ped (int)]] ped,--[[int]] p1,--[[float]] p2,--[[float]] p3,--[[string]] p4)return native_invoker.unified_void(ped, p1, p2, p3, p4, 0x3311E47B91EDCBBC, "iiffs")end - APPLY_PED_BLOOD_SPECIFIC=--[[void]] function(--[[Ped (int)]] ped,--[[int]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[int]] p6,--[[float]] p7,--[[string]] p8)return native_invoker.unified_void(ped, p1, p2, p3, p4, p5, p6, p7, p8, 0xEF0D582CBF2D9B0F, "iiffffifs")end - -- enum eDamageZone - -- { - -- DZ_Torso = 0, - -- DZ_Head, - -- DZ_LeftArm, - -- DZ_RightArm, - -- DZ_LeftLeg, - -- DZ_RightLeg, - -- }; - -- - -- Decal Names: - -- scar - -- blushing - -- cs_flush_anger - -- cs_flush_anger_face - -- bruise - -- bruise_large - -- herpes - -- ArmorBullet - -- basic_dirt_cloth - -- basic_dirt_skin - -- cs_trev1_dirt - -- - -- APPLY_PED_DAMAGE_DECAL(ped, 1, 0.5f, 0.513f, 0f, 1f, unk, 0, 0, "blushing"); - APPLY_PED_DAMAGE_DECAL=--[[void]] function(--[[Ped (int)]] ped,--[[int]] damageZone,--[[float]] xOffset,--[[float]] yOffset,--[[float]] heading,--[[float]] scale,--[[float]] alpha,--[[int]] variation,--[[BOOL (bool)]] fadeIn,--[[string]] decalName)return native_invoker.unified_void(ped, damageZone, xOffset, yOffset, heading, scale, alpha, variation, fadeIn, decalName, 0x397C38AA7B4A5F83, "iifffffibs")end - -- Damage Packs: - -- - -- "SCR_TrevorTreeBang" - -- "HOSPITAL_0" - -- "HOSPITAL_1" - -- "HOSPITAL_2" - -- "HOSPITAL_3" - -- "HOSPITAL_4" - -- "HOSPITAL_5" - -- "HOSPITAL_6" - -- "HOSPITAL_7" - -- "HOSPITAL_8" - -- "HOSPITAL_9" - -- "SCR_Dumpster" - -- "BigHitByVehicle" - -- "SCR_Finale_Michael_Face" - -- "SCR_Franklin_finb" - -- "SCR_Finale_Michael" - -- "SCR_Franklin_finb2" - -- "Explosion_Med" - -- "SCR_Torture" - -- "SCR_TracySplash" - -- "Skin_Melee_0" - -- - -- Additional damage packs: - -- - -- gist.github.com/alexguirre/f3f47f75ddcf617f416f3c8a55ae2227 - -- Full list of ped damage packs by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedDamagePacks.json - APPLY_PED_DAMAGE_PACK=--[[void]] function(--[[Ped (int)]] ped,--[[string]] damagePack,--[[float]] damage,--[[float]] mult)return native_invoker.unified_void(ped, damagePack, damage, mult, 0x46DF918788CB093F, "isff")end - CLEAR_PED_BLOOD_DAMAGE=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x8FE22675A5A45817, "i")end - -- Somehow related to changing ped's clothes. - CLEAR_PED_BLOOD_DAMAGE_BY_ZONE=--[[void]] function(--[[Ped (int)]] ped,--[[int]] p1)return native_invoker.unified_void(ped, p1, 0x56E3B78C5408D9F4, "ii")end - HIDE_PED_BLOOD_DAMAGE_BY_ZONE=--[[void]] function(--[[Ped (int)]] ped,--[[Any (int)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(ped, p1, p2, 0x62AB793144DE75DC, "iib")end - -- p1: from 0 to 5 in the b617d scripts. - -- p2: "blushing" and "ALL" found in the b617d scripts. - CLEAR_PED_DAMAGE_DECAL_BY_ZONE=--[[void]] function(--[[Ped (int)]] ped,--[[int]] p1,--[[string]] p2)return native_invoker.unified_void(ped, p1, p2, 0x523C79AEEFCC4A2A, "iis")end - GET_PED_DECORATIONS_STATE=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x71EAB450D86954A1, "i")end - MARK_PED_DECORATIONS_AS_CLONED_FROM_LOCAL_PLAYER=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1)return native_invoker.unified_void(ped, p1, 0x2B694AFCF64E6994, "ib")end - -- It clears the wetness of the selected Ped/Player. Clothes have to be wet to notice the difference. - CLEAR_PED_WETNESS=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x9C720776DAA43E7E, "i")end - -- It adds the wetness level to the player clothing/outfit. As if player just got out from water surface. - -- - -- - SET_PED_WETNESS_HEIGHT=--[[void]] function(--[[Ped (int)]] ped,--[[float]] height)return native_invoker.unified_void(ped, height, 0x44CB6447D2571AA0, "if")end - -- combined with PED::SET_PED_WETNESS_HEIGHT(), this native makes the ped drenched in water up to the height specified in the other function - SET_PED_WETNESS_ENABLED_THIS_FRAME=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xB5485E4907B53019, "i")end - SET_PED_WETNESS=--[[void]] function(--[[Ped (int)]] ped,--[[float]] wetLevel)return native_invoker.unified_void(ped, wetLevel, 0xAC0BB4D87777CAE2, "if")end - CLEAR_PED_ENV_DIRT=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x6585D955A68452A5, "i")end - -- Sweat is set to 100.0 or 0.0 in the decompiled scripts. - SET_PED_SWEAT=--[[void]] function(--[[Ped (int)]] ped,--[[float]] sweat)return native_invoker.unified_void(ped, sweat, 0x27B0405F59637D1F, "if")end - -- Applies an Item from a PedDecorationCollection to a ped. These include tattoos and shirt decals. - -- - -- collection - PedDecorationCollection filename hash - -- overlay - Item name hash - -- - -- Example: - -- Entry inside "mpbeach_overlays.xml" - - -- - -- - -- - -- - -- FM_Hair_Fuzz - -- mp_hair_fuzz - -- mp_hair_fuzz - -- ZONE_HEAD - -- TYPE_TATTOO - -- FM - -- All - -- GENDER_DONTCARE - -- - -- - -- - -- - -- Code: - -- PED::ADD_PED_DECORATION_FROM_HASHES(PLAYER::PLAYER_PED_ID(), MISC::GET_HASH_KEY("mpbeach_overlays"), MISC::GET_HASH_KEY("fm_hair_fuzz")) - -- - -- Full list of ped overlays / decorations by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedOverlayCollections.json - ADD_PED_DECORATION_FROM_HASHES=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] collection,--[[Hash (int)]] overlay)return native_invoker.unified_void(ped, collection, overlay, 0x5F5D1665E352A839, "iii")end - -- Full list of ped overlays / decorations by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedOverlayCollections.json - ADD_PED_DECORATION_FROM_HASHES_IN_CORONA=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] collection,--[[Hash (int)]] overlay)return native_invoker.unified_void(ped, collection, overlay, 0x5619BFA07CFD7833, "iii")end - -- Returns the zoneID for the overlay if it is a member of collection. - -- enum ePedDecorationZone - -- { - -- ZONE_TORSO = 0, - -- ZONE_HEAD = 1, - -- ZONE_LEFT_ARM = 2, - -- ZONE_RIGHT_ARM = 3, - -- ZONE_LEFT_LEG = 4, - -- ZONE_RIGHT_LEG = 5, - -- ZONE_MEDALS = 6, - -- ZONE_INVALID = 7 - -- }; - -- - -- Full list of ped overlays / decorations by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedOverlayCollections.json - GET_PED_DECORATION_ZONE_FROM_HASHES=--[[int]] function(--[[Hash (int)]] collection,--[[Hash (int)]] overlay)return native_invoker.unified_int(collection, overlay, 0x9FD452BFBE7A7A8B, "ii")end - CLEAR_PED_DECORATIONS=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x0E5173C163976E38, "i")end - CLEAR_PED_DECORATIONS_LEAVE_SCARS=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xE3B27E70CEAB9F0C, "i")end - -- Despite this function's name, it simply returns whether the specified handle is a Ped. - WAS_PED_SKELETON_UPDATED=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x11B499C1E0FF8559, "i")end - -- Gets the position of the specified bone of the specified ped. - -- - -- ped: The ped to get the position of a bone from. - -- boneId: The ID of the bone to get the position from. This is NOT the index. - -- offsetX: The X-component of the offset to add to the position relative to the bone's rotation. - -- offsetY: The Y-component of the offset to add to the position relative to the bone's rotation. - -- offsetZ: The Z-component of the offset to add to the position relative to the bone's rotation. - GET_PED_BONE_COORDS=--[[Vector3 (vector3)]] function(--[[Ped (int)]] ped,--[[int]] boneId,--[[float]] offsetX,--[[float]] offsetY,--[[float]] offsetZ)return native_invoker.unified_vector3(ped, boneId, offsetX, offsetY, offsetZ, 0x17C07FC640E86B4E, "iifff")end - -- Creates a new NaturalMotion message. - -- - -- startImmediately: If set to true, the character will perform the message the moment it receives it by GIVE_PED_NM_MESSAGE. If false, the Ped will get the message but won't perform it yet. While it's a boolean value, if negative, the message will not be initialized. - -- messageId: The ID of the NaturalMotion message. - -- - -- If a message already exists, this function does nothing. A message exists until the point it has been successfully dispatched by GIVE_PED_NM_MESSAGE. - CREATE_NM_MESSAGE=--[[void]] function(--[[BOOL (bool)]] startImmediately,--[[int]] messageId)return native_invoker.unified_void(startImmediately, messageId, 0x418EF2A1BCE56685, "bi")end - -- Sends the message that was created by a call to CREATE_NM_MESSAGE to the specified Ped. - -- - -- If a message hasn't been created already, this function does nothing. - -- If the Ped is not ragdolled with Euphoria enabled, this function does nothing. - -- The following call can be used to ragdoll the Ped with Euphoria enabled: SET_PED_TO_RAGDOLL(ped, 4000, 5000, 1, 1, 1, 0); - -- - -- Call order: - -- SET_PED_TO_RAGDOLL - -- CREATE_NM_MESSAGE - -- GIVE_PED_NM_MESSAGE - -- - -- Multiple messages can be chained. Eg. to make the ped stagger and swing his arms around, the following calls can be made: - -- SET_PED_TO_RAGDOLL(ped, 4000, 5000, 1, 1, 1, 0); - -- CREATE_NM_MESSAGE(true, 0); // stopAllBehaviours - Stop all other behaviours, in case the Ped is already doing some Euphoria stuff. - -- GIVE_PED_NM_MESSAGE(ped); // Dispatch message to Ped. - -- CREATE_NM_MESSAGE(true, 1151); // staggerFall - Attempt to walk while falling. - -- GIVE_PED_NM_MESSAGE(ped); // Dispatch message to Ped. - -- CREATE_NM_MESSAGE(true, 372); // armsWindmill - Swing arms around. - -- GIVE_PED_NM_MESSAGE(ped); // Dispatch message to Ped. - GIVE_PED_NM_MESSAGE=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xB158DFCCC56E5C5B, "i")end - ADD_SCENARIO_BLOCKING_AREA=--[[int]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[BOOL (bool)]] p6,--[[BOOL (bool)]] p7,--[[BOOL (bool)]] p8,--[[BOOL (bool)]] p9,--[[Any (int)]] p10)return native_invoker.unified_int(x1, y1, z1, x2, y2, z2, p6, p7, p8, p9, p10, 0x1B5C85C612E5256E, "ffffffbbbbi")end - REMOVE_SCENARIO_BLOCKING_AREAS=--[[void]] function()return native_invoker.unified_void(0xD37401D78A929A49, "")end - REMOVE_SCENARIO_BLOCKING_AREA=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0x31D16B74C6E29D66, "ib")end - SET_SCENARIO_PEDS_SPAWN_IN_SPHERE_AREA=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] range,--[[int]] p4)return native_invoker.unified_void(x, y, z, range, p4, 0x28157D43CF600981, "ffffi")end - DOES_SCENARIO_BLOCKING_AREA_EXISTS=--[[BOOL (bool)]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2)return native_invoker.unified_bool(x1, y1, z1, x2, y2, z2, 0x8A24B067D175A7BD, "ffffff")end - -- Full list of ped scenarios by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenariosCompact.json - IS_PED_USING_SCENARIO=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[string]] scenario)return native_invoker.unified_bool(ped, scenario, 0x1BF094736DD62C2E, "is")end - IS_PED_USING_ANY_SCENARIO=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x57AB4A3080F85143, "i")end - SET_PED_PANIC_EXIT_SCENARIO=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_bool(p0, p1, p2, p3, 0xFE07FF6495D52E2A, "iiii")end - TOGGLE_SCENARIO_PED_COWER_IN_PLACE=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x9A77DFD295E29B09, "ib")end - TRIGGER_PED_SCENARIO_PANICEXITTOFLEE=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_bool(p0, p1, p2, p3, 0x25361A96E0F7E419, "iiii")end - SET_PED_SHOULD_PLAY_DIRECTED_NORMAL_SCENARIO_EXIT=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_bool(p0, p1, p2, p3, 0xEC6935EBE0847B90, "iiii")end - SET_PED_SHOULD_PLAY_NORMAL_SCENARIO_EXIT=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xA3A9299C4F2ADB98, "i")end - SET_PED_SHOULD_PLAY_IMMEDIATE_SCENARIO_EXIT=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xF1C03A5352243A30, "i")end - SET_PED_SHOULD_PLAY_FLEE_SCENARIO_EXIT=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_bool(ped, p1, p2, p3, 0xEEED8FAFEC331A70, "iiii")end - SET_PED_SHOULD_IGNORE_SCENARIO_EXIT_COLLISION_CHECKS=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1)return native_invoker.unified_void(ped, p1, 0x425AECF167663F48, "ib")end - SET_PED_SHOULD_IGNORE_SCENARIO_NAV_CHECKS=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0x5B6010B3CBC29095, "ib")end - SET_PED_SHOULD_PROBE_FOR_SCENARIO_EXITS_IN_ONE_FRAME=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0xCEDA60A74219D064, "ib")end - IS_PED_GESTURING=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0xC30BDAEE47256C13, "i")end - RESET_FACIAL_IDLE_ANIM=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x007FDE5A7897E426, "i")end - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - PLAY_FACIAL_ANIM=--[[void]] function(--[[Ped (int)]] ped,--[[string]] animName,--[[string]] animDict)return native_invoker.unified_void(ped, animName, animDict, 0xE1E65CA8AC9C00ED, "iss")end - -- Clipsets: - -- facials@gen_female@base - -- facials@gen_male@base - -- facials@p_m_zero@base - -- - -- Typically followed with SET_FACIAL_IDLE_ANIM_OVERRIDE: - -- mood_drunk_1 - -- mood_stressed_1 - -- mood_happy_1 - -- mood_talking_1 - -- - SET_FACIAL_CLIPSET=--[[void]] function(--[[Ped (int)]] ped,--[[string]] animDict)return native_invoker.unified_void(ped, animDict, 0x5687C7F05B39E401, "is")end - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - SET_FACIAL_IDLE_ANIM_OVERRIDE=--[[void]] function(--[[Ped (int)]] ped,--[[string]] animName,--[[string]] animDict)return native_invoker.unified_void(ped, animName, animDict, 0xFFC24B988B938B38, "iss")end - CLEAR_FACIAL_IDLE_ANIM_OVERRIDE=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x726256CC1EEB182F, "i")end - SET_PED_CAN_PLAY_GESTURE_ANIMS=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xBAF20C5432058024, "ib")end - -- p2 usually 0 - SET_PED_CAN_PLAY_VISEME_ANIMS=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle,--[[BOOL (bool)]] p2)return native_invoker.unified_void(ped, toggle, p2, 0xF833DDBA3B104D43, "ibb")end - SET_PED_IS_IGNORED_BY_AUTO_OPEN_DOORS=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1)return native_invoker.unified_void(ped, p1, 0x33A60D8BDD6E508C, "ib")end - SET_PED_CAN_PLAY_AMBIENT_ANIMS=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x6373D1349925A70E, "ib")end - SET_PED_CAN_PLAY_AMBIENT_BASE_ANIMS=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x0EB0585D15254740, "ib")end - TRIGGER_IDLE_ANIMATION_ON_PED=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xC2EE020F5FB4DB53, "i")end - SET_PED_CAN_ARM_IK=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x6C3B4D6D13B4C841, "ib")end - SET_PED_CAN_HEAD_IK=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xC11C18092C5530DC, "ib")end - SET_PED_CAN_LEG_IK=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x73518ECE2485412B, "ib")end - SET_PED_CAN_TORSO_IK=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xF2B7106D37947CE0, "ib")end - SET_PED_CAN_TORSO_REACT_IK=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1)return native_invoker.unified_void(ped, p1, 0xF5846EDB26A98A24, "ib")end - SET_PED_CAN_TORSO_VEHICLE_IK=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1)return native_invoker.unified_void(ped, p1, 0x6647C5F6F5792496, "ib")end - SET_PED_CAN_USE_AUTO_CONVERSATION_LOOKAT=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xEC4686EC06434678, "ib")end - IS_PED_HEADTRACKING_PED=--[[BOOL (bool)]] function(--[[Ped (int)]] ped1,--[[Ped (int)]] ped2)return native_invoker.unified_bool(ped1, ped2, 0x5CD3CB88A7F8850D, "ii")end - IS_PED_HEADTRACKING_ENTITY=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Entity (int)]] entity)return native_invoker.unified_bool(ped, entity, 0x813A0A7C9D2E831F, "ii")end - -- This is only called once in the scripts. - -- - -- sub_1CD9(&l_49, 0, getElem(3, &l_34, 4), "MICHAEL", 0, 1); - -- sub_1CA8("WORLD_HUMAN_SMOKING", 2); - -- PED::SET_PED_PRIMARY_LOOKAT(getElem(3, &l_34, 4), PLAYER::PLAYER_PED_ID()); - SET_PED_PRIMARY_LOOKAT=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] lookAt)return native_invoker.unified_void(ped, lookAt, 0xCD17B554996A8D9E, "ii")end - SET_PED_CLOTH_PIN_FRAMES=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x78C4E9961DB3EB5B, "ii")end - SET_PED_CLOTH_PACKAGE_INDEX=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x82A3D6D9CC2CB8E3, "ii")end - SET_PED_CLOTH_PRONE=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0xA660FAF550EB37E5, "ib")end - -- enum ePedConfigFlags - -- { - -- _CPED_CONFIG_FLAG_0xC63DE95E = 1, - -- CPED_CONFIG_FLAG_NoCriticalHits = 2, - -- CPED_CONFIG_FLAG_DrownsInWater = 3, - -- CPED_CONFIG_FLAG_DisableReticuleFixedLockon = 4, - -- _CPED_CONFIG_FLAG_0x37D196F4 = 5, - -- _CPED_CONFIG_FLAG_0xE2462399 = 6, - -- CPED_CONFIG_FLAG_UpperBodyDamageAnimsOnly = 7, - -- _CPED_CONFIG_FLAG_0xEDDEB838 = 8, - -- _CPED_CONFIG_FLAG_0xB398B6FD = 9, - -- _CPED_CONFIG_FLAG_0xF6664E68 = 10, - -- _CPED_CONFIG_FLAG_0xA05E7CA3 = 11, - -- _CPED_CONFIG_FLAG_0xCE394045 = 12, - -- CPED_CONFIG_FLAG_NeverLeavesGroup = 13, - -- _CPED_CONFIG_FLAG_0xCD8D1411 = 14, - -- _CPED_CONFIG_FLAG_0xB031F1A9 = 15, - -- _CPED_CONFIG_FLAG_0xFE65BEE3 = 16, - -- CPED_CONFIG_FLAG_BlockNonTemporaryEvents = 17, - -- _CPED_CONFIG_FLAG_0x380165BD = 18, - -- _CPED_CONFIG_FLAG_0x07C045C7 = 19, - -- _CPED_CONFIG_FLAG_0x583B5E2D = 20, - -- _CPED_CONFIG_FLAG_0x475EDA58 = 21, - -- _CPED_CONFIG_FLAG_0x8629D05B = 22, - -- _CPED_CONFIG_FLAG_0x1522968B = 23, - -- CPED_CONFIG_FLAG_IgnoreSeenMelee = 24, - -- _CPED_CONFIG_FLAG_0x4CC09C4B = 25, - -- _CPED_CONFIG_FLAG_0x034F3053 = 26, - -- _CPED_CONFIG_FLAG_0xD91BA7CC = 27, - -- _CPED_CONFIG_FLAG_0x5C8DC66E = 28, - -- CPED_CONFIG_FLAG_GetOutUndriveableVehicle = 29, - -- _CPED_CONFIG_FLAG_0x6580B9D2 = 30, - -- _CPED_CONFIG_FLAG_0x0EF7A297 = 31, - -- CPED_CONFIG_FLAG_WillFlyThruWindscreen = 32, - -- CPED_CONFIG_FLAG_DieWhenRagdoll = 33, - -- CPED_CONFIG_FLAG_HasHelmet = 34, - -- CPED_CONFIG_FLAG_UseHelmet = 35, - -- CPED_CONFIG_FLAG_DontTakeOffHelmet = 36, - -- _CPED_CONFIG_FLAG_0xB130D17B = 37, - -- _CPED_CONFIG_FLAG_0x5F071200 = 38, - -- CPED_CONFIG_FLAG_DisableEvasiveDives = 39, - -- _CPED_CONFIG_FLAG_0xC287AAFF = 40, - -- _CPED_CONFIG_FLAG_0x203328CC = 41, - -- CPED_CONFIG_FLAG_DontInfluenceWantedLevel = 42, - -- CPED_CONFIG_FLAG_DisablePlayerLockon = 43, - -- CPED_CONFIG_FLAG_DisableLockonToRandomPeds = 44, - -- CPED_CONFIG_FLAG_AllowLockonToFriendlyPlayers = 45, - -- _CPED_CONFIG_FLAG_0xDB115BFA = 46, - -- CPED_CONFIG_FLAG_PedBeingDeleted = 47, - -- CPED_CONFIG_FLAG_BlockWeaponSwitching = 48, - -- _CPED_CONFIG_FLAG_0xF8E99565 = 49, - -- _CPED_CONFIG_FLAG_0xDD17FEE6 = 50, - -- _CPED_CONFIG_FLAG_0x7ED9B2C9 = 51, - -- _CPED_CONFIG_FLAG_NoCollison = 52, - -- _CPED_CONFIG_FLAG_0x5A6C1F6E = 53, - -- _CPED_CONFIG_FLAG_0xD749FC41 = 54, - -- _CPED_CONFIG_FLAG_0x357F63F3 = 55, - -- _CPED_CONFIG_FLAG_0xC5E60961 = 56, - -- _CPED_CONFIG_FLAG_0x29275C3E = 57, - -- CPED_CONFIG_FLAG_IsFiring = 58, - -- CPED_CONFIG_FLAG_WasFiring = 59, - -- CPED_CONFIG_FLAG_IsStanding = 60, - -- CPED_CONFIG_FLAG_WasStanding = 61, - -- CPED_CONFIG_FLAG_InVehicle = 62, - -- CPED_CONFIG_FLAG_OnMount = 63, - -- CPED_CONFIG_FLAG_AttachedToVehicle = 64, - -- CPED_CONFIG_FLAG_IsSwimming = 65, - -- CPED_CONFIG_FLAG_WasSwimming = 66, - -- CPED_CONFIG_FLAG_IsSkiing = 67, - -- CPED_CONFIG_FLAG_IsSitting = 68, - -- CPED_CONFIG_FLAG_KilledByStealth = 69, - -- CPED_CONFIG_FLAG_KilledByTakedown = 70, - -- CPED_CONFIG_FLAG_Knockedout = 71, - -- _CPED_CONFIG_FLAG_0x3E3C4560 = 72, - -- _CPED_CONFIG_FLAG_0x2994C7B7 = 73, - -- _CPED_CONFIG_FLAG_0x6D59D275 = 74, - -- CPED_CONFIG_FLAG_UsingCoverPoint = 75, - -- CPED_CONFIG_FLAG_IsInTheAir = 76, - -- _CPED_CONFIG_FLAG_0x2D493FB7 = 77, - -- CPED_CONFIG_FLAG_IsAimingGun = 78, - -- _CPED_CONFIG_FLAG_0x14D69875 = 79, - -- _CPED_CONFIG_FLAG_0x40B05311 = 80, - -- _CPED_CONFIG_FLAG_0x8B230BC5 = 81, - -- _CPED_CONFIG_FLAG_0xC74E5842 = 82, - -- _CPED_CONFIG_FLAG_0x9EA86147 = 83, - -- _CPED_CONFIG_FLAG_0x674C746C = 84, - -- _CPED_CONFIG_FLAG_0x3E56A8C2 = 85, - -- _CPED_CONFIG_FLAG_0xC144A1EF = 86, - -- _CPED_CONFIG_FLAG_0x0548512D = 87, - -- _CPED_CONFIG_FLAG_0x31C93909 = 88, - -- _CPED_CONFIG_FLAG_0xA0269315 = 89, - -- _CPED_CONFIG_FLAG_0xD4D59D4D = 90, - -- _CPED_CONFIG_FLAG_0x411D4420 = 91, - -- _CPED_CONFIG_FLAG_0xDF4AEF0D = 92, - -- CPED_CONFIG_FLAG_ForcePedLoadCover = 93, - -- _CPED_CONFIG_FLAG_0x300E4CD3 = 94, - -- _CPED_CONFIG_FLAG_0xF1C5BF04 = 95, - -- _CPED_CONFIG_FLAG_0x89C2EF13 = 96, - -- CPED_CONFIG_FLAG_VaultFromCover = 97, - -- _CPED_CONFIG_FLAG_0x02A852C8 = 98, - -- _CPED_CONFIG_FLAG_0x3D9407F1 = 99, - -- _CPED_CONFIG_FLAG_IsDrunk = 100, // 0x319B4558 - -- CPED_CONFIG_FLAG_ForcedAim = 101, - -- _CPED_CONFIG_FLAG_0xB942D71A = 102, - -- _CPED_CONFIG_FLAG_0xD26C55A8 = 103, - -- CPED_CONFIG_FLAG_OpenDoorArmIK = 104, - -- CPED_CONFIG_FLAG_ForceReload = 105, - -- CPED_CONFIG_FLAG_DontActivateRagdollFromVehicleImpact = 106, - -- CPED_CONFIG_FLAG_DontActivateRagdollFromBulletImpact = 107, - -- CPED_CONFIG_FLAG_DontActivateRagdollFromExplosions = 108, - -- CPED_CONFIG_FLAG_DontActivateRagdollFromFire = 109, - -- CPED_CONFIG_FLAG_DontActivateRagdollFromElectrocution = 110, - -- _CPED_CONFIG_FLAG_0x83C0A4BF = 111, - -- _CPED_CONFIG_FLAG_0x0E0FAF8C = 112, - -- CPED_CONFIG_FLAG_KeepWeaponHolsteredUnlessFired = 113, - -- _CPED_CONFIG_FLAG_0x43B80B79 = 114, - -- _CPED_CONFIG_FLAG_0x0D2A9309 = 115, - -- CPED_CONFIG_FLAG_GetOutBurningVehicle = 116, - -- CPED_CONFIG_FLAG_BumpedByPlayer = 117, - -- CPED_CONFIG_FLAG_RunFromFiresAndExplosions = 118, - -- CPED_CONFIG_FLAG_TreatAsPlayerDuringTargeting = 119, - -- CPED_CONFIG_FLAG_IsHandCuffed = 120, - -- CPED_CONFIG_FLAG_IsAnkleCuffed = 121, - -- CPED_CONFIG_FLAG_DisableMelee = 122, - -- CPED_CONFIG_FLAG_DisableUnarmedDrivebys = 123, - -- CPED_CONFIG_FLAG_JustGetsPulledOutWhenElectrocuted = 124, - -- _CPED_CONFIG_FLAG_0x5FED6BFD = 125, - -- CPED_CONFIG_FLAG_WillNotHotwireLawEnforcementVehicle = 126, - -- CPED_CONFIG_FLAG_WillCommandeerRatherThanJack = 127, - -- CPED_CONFIG_FLAG_CanBeAgitated = 128, - -- CPED_CONFIG_FLAG_ForcePedToFaceLeftInCover = 129, - -- CPED_CONFIG_FLAG_ForcePedToFaceRightInCover = 130, - -- CPED_CONFIG_FLAG_BlockPedFromTurningInCover = 131, - -- CPED_CONFIG_FLAG_KeepRelationshipGroupAfterCleanUp = 132, - -- CPED_CONFIG_FLAG_ForcePedToBeDragged = 133, - -- CPED_CONFIG_FLAG_PreventPedFromReactingToBeingJacked = 134, - -- CPED_CONFIG_FLAG_IsScuba = 135, - -- CPED_CONFIG_FLAG_WillArrestRatherThanJack = 136, - -- CPED_CONFIG_FLAG_RemoveDeadExtraFarAway = 137, - -- CPED_CONFIG_FLAG_RidingTrain = 138, - -- CPED_CONFIG_FLAG_ArrestResult = 139, - -- CPED_CONFIG_FLAG_CanAttackFriendly = 140, - -- CPED_CONFIG_FLAG_WillJackAnyPlayer = 141, - -- _CPED_CONFIG_FLAG_0x6901E731 = 142, - -- _CPED_CONFIG_FLAG_0x9EC9BF6C = 143, - -- CPED_CONFIG_FLAG_WillJackWantedPlayersRatherThanStealCar = 144, - -- CPED_CONFIG_FLAG_ShootingAnimFlag = 145, - -- CPED_CONFIG_FLAG_DisableLadderClimbing = 146, - -- CPED_CONFIG_FLAG_StairsDetected = 147, - -- CPED_CONFIG_FLAG_SlopeDetected = 148, - -- _CPED_CONFIG_FLAG_0x1A15670B = 149, - -- CPED_CONFIG_FLAG_CowerInsteadOfFlee = 150, - -- CPED_CONFIG_FLAG_CanActivateRagdollWhenVehicleUpsideDown = 151, - -- CPED_CONFIG_FLAG_AlwaysRespondToCriesForHelp = 152, - -- CPED_CONFIG_FLAG_DisableBloodPoolCreation = 153, - -- CPED_CONFIG_FLAG_ShouldFixIfNoCollision = 154, - -- CPED_CONFIG_FLAG_CanPerformArrest = 155, - -- CPED_CONFIG_FLAG_CanPerformUncuff = 156, - -- CPED_CONFIG_FLAG_CanBeArrested = 157, - -- _CPED_CONFIG_FLAG_0xF7960FF5 = 158, - -- CPED_CONFIG_FLAG_PlayerPreferFrontSeatMP = 159, - -- _CPED_CONFIG_FLAG_0x0C6C3099 = 160, - -- _CPED_CONFIG_FLAG_0x645F927A = 161, - -- _CPED_CONFIG_FLAG_0xA86549B9 = 162, - -- _CPED_CONFIG_FLAG_0x8AAF337A = 163, - -- _CPED_CONFIG_FLAG_0x13BAA6E7 = 164, - -- _CPED_CONFIG_FLAG_0x5FB9D1F5 = 165, - -- CPED_CONFIG_FLAG_IsInjured = 166, - -- CPED_CONFIG_FLAG_DontEnterVehiclesInPlayersGroup = 167, - -- _CPED_CONFIG_FLAG_0xD8072639 = 168, - -- CPED_CONFIG_FLAG_PreventAllMeleeTaunts = 169, - -- CPED_CONFIG_FLAG_ForceDirectEntry = 170, - -- CPED_CONFIG_FLAG_AlwaysSeeApproachingVehicles = 171, - -- CPED_CONFIG_FLAG_CanDiveAwayFromApproachingVehicles = 172, - -- CPED_CONFIG_FLAG_AllowPlayerToInterruptVehicleEntryExit = 173, - -- CPED_CONFIG_FLAG_OnlyAttackLawIfPlayerIsWanted = 174, - -- _CPED_CONFIG_FLAG_0x90008BFA = 175, - -- _CPED_CONFIG_FLAG_0x07C7A910 = 176, - -- CPED_CONFIG_FLAG_PedsJackingMeDontGetIn = 177, - -- _CPED_CONFIG_FLAG_0xCE4E8BE2 = 178, - -- CPED_CONFIG_FLAG_PedIgnoresAnimInterruptEvents = 179, - -- CPED_CONFIG_FLAG_IsInCustody = 180, - -- CPED_CONFIG_FLAG_ForceStandardBumpReactionThresholds = 181, - -- CPED_CONFIG_FLAG_LawWillOnlyAttackIfPlayerIsWanted = 182, - -- CPED_CONFIG_FLAG_IsAgitated = 183, - -- CPED_CONFIG_FLAG_PreventAutoShuffleToDriversSeat = 184, - -- CPED_CONFIG_FLAG_UseKinematicModeWhenStationary = 185, - -- CPED_CONFIG_FLAG_EnableWeaponBlocking = 186, - -- CPED_CONFIG_FLAG_HasHurtStarted = 187, - -- CPED_CONFIG_FLAG_DisableHurt = 188, - -- CPED_CONFIG_FLAG_PlayerIsWeird = 189, - -- _CPED_CONFIG_FLAG_0x32FC208B = 190, - -- _CPED_CONFIG_FLAG_0x0C296E5A = 191, - -- _CPED_CONFIG_FLAG_0xE63B73EC = 192, - -- CPED_CONFIG_FLAG_DoNothingWhenOnFootByDefault = 193, - -- CPED_CONFIG_FLAG_UsingScenario = 194, - -- CPED_CONFIG_FLAG_VisibleOnScreen = 195, - -- _CPED_CONFIG_FLAG_0xD88C58A1 = 196, - -- _CPED_CONFIG_FLAG_0x5A3DCF43 = 197, - -- _CPED_CONFIG_FLAG_0xEA02B420 = 198, - -- CPED_CONFIG_FLAG_DontActivateRagdollOnVehicleCollisionWhenDead = 199, - -- CPED_CONFIG_FLAG_HasBeenInArmedCombat = 200, - -- _CPED_CONFIG_FLAG_0x5E6466F6 = 201, - -- CPED_CONFIG_FLAG_Avoidance_Ignore_All = 202, - -- CPED_CONFIG_FLAG_Avoidance_Ignored_by_All = 203, - -- CPED_CONFIG_FLAG_Avoidance_Ignore_Group1 = 204, - -- CPED_CONFIG_FLAG_Avoidance_Member_of_Group1 = 205, - -- CPED_CONFIG_FLAG_ForcedToUseSpecificGroupSeatIndex = 206, - -- _CPED_CONFIG_FLAG_0x415B26B9 = 207, - -- CPED_CONFIG_FLAG_DisableExplosionReactions = 208, - -- CPED_CONFIG_FLAG_DodgedPlayer = 209, - -- CPED_CONFIG_FLAG_WaitingForPlayerControlInterrupt = 210, - -- CPED_CONFIG_FLAG_ForcedToStayInCover = 211, - -- CPED_CONFIG_FLAG_GeneratesSoundEvents = 212, - -- CPED_CONFIG_FLAG_ListensToSoundEvents = 213, - -- CPED_CONFIG_FLAG_AllowToBeTargetedInAVehicle = 214, - -- CPED_CONFIG_FLAG_WaitForDirectEntryPointToBeFreeWhenExiting = 215, - -- CPED_CONFIG_FLAG_OnlyRequireOnePressToExitVehicle = 216, - -- CPED_CONFIG_FLAG_ForceExitToSkyDive = 217, - -- _CPED_CONFIG_FLAG_0x3C7DF9DF = 218, - -- _CPED_CONFIG_FLAG_0x848FFEF2 = 219, - -- CPED_CONFIG_FLAG_DontEnterLeadersVehicle = 220, - -- CPED_CONFIG_FLAG_DisableExitToSkyDive = 221, - -- _CPED_CONFIG_FLAG_0x84F722FA = 222, - -- _CPED_CONFIG_FLAG_Shrink = 223, // 0xD1B87B1F - -- _CPED_CONFIG_FLAG_0x728AA918 = 224, - -- CPED_CONFIG_FLAG_DisablePotentialToBeWalkedIntoResponse = 225, - -- CPED_CONFIG_FLAG_DisablePedAvoidance = 226, - -- CPED_CONFIG_FLAG_ForceRagdollUponDeath = 227, - -- _CPED_CONFIG_FLAG_0x1EA7225F = 228, - -- CPED_CONFIG_FLAG_DisablePanicInVehicle = 229, - -- CPED_CONFIG_FLAG_AllowedToDetachTrailer = 230, - -- _CPED_CONFIG_FLAG_0xFC3E572D = 231, - -- _CPED_CONFIG_FLAG_0x08E9F9CF = 232, - -- _CPED_CONFIG_FLAG_0x2D3BA52D = 233, - -- _CPED_CONFIG_FLAG_0xFD2F53EA = 234, - -- _CPED_CONFIG_FLAG_0x31A1B03B = 235, - -- CPED_CONFIG_FLAG_IsHoldingProp = 236, - -- CPED_CONFIG_FLAG_BlocksPathingWhenDead = 237, - -- _CPED_CONFIG_FLAG_0xCE57C9A3 = 238, - -- _CPED_CONFIG_FLAG_0x26149198 = 239, - -- CPED_CONFIG_FLAG_ForceSkinCharacterCloth = 240, - -- CPED_CONFIG_FLAG_LeaveEngineOnWhenExitingVehicles = 241, - -- CPED_CONFIG_FLAG_PhoneDisableTextingAnimations = 242, - -- CPED_CONFIG_FLAG_PhoneDisableTalkingAnimations = 243, - -- CPED_CONFIG_FLAG_PhoneDisableCameraAnimations = 244, - -- CPED_CONFIG_FLAG_DisableBlindFiringInShotReactions = 245, - -- CPED_CONFIG_FLAG_AllowNearbyCoverUsage = 246, - -- _CPED_CONFIG_FLAG_0x0C754ACA = 247, - -- CPED_CONFIG_FLAG_CanPlayInCarIdles = 248, - -- CPED_CONFIG_FLAG_CanAttackNonWantedPlayerAsLaw = 249, - -- CPED_CONFIG_FLAG_WillTakeDamageWhenVehicleCrashes = 250, - -- CPED_CONFIG_FLAG_AICanDrivePlayerAsRearPassenger = 251, - -- CPED_CONFIG_FLAG_PlayerCanJackFriendlyPlayers = 252, - -- CPED_CONFIG_FLAG_OnStairs = 253, - -- _CPED_CONFIG_FLAG_0xE1A2F73F = 254, - -- CPED_CONFIG_FLAG_AIDriverAllowFriendlyPassengerSeatEntry = 255, - -- _CPED_CONFIG_FLAG_0xF1EB20A9 = 256, - -- CPED_CONFIG_FLAG_AllowMissionPedToUseInjuredMovement = 257, - -- _CPED_CONFIG_FLAG_0x329DCF1A = 258, - -- _CPED_CONFIG_FLAG_0x8D90DD1B = 259, - -- _CPED_CONFIG_FLAG_0xB8A292B7 = 260, - -- CPED_CONFIG_FLAG_PreventUsingLowerPrioritySeats = 261, - -- _CPED_CONFIG_FLAG_0x2AF558F0 = 262, - -- _CPED_CONFIG_FLAG_0x82251455 = 263, - -- _CPED_CONFIG_FLAG_0x30CF498B = 264, - -- _CPED_CONFIG_FLAG_0xE1CD50AF = 265, - -- _CPED_CONFIG_FLAG_0x72E4AE48 = 266, - -- _CPED_CONFIG_FLAG_0xC2657EA1 = 267, - -- CPED_CONFIG_FLAG_TeleportToLeaderVehicle = 268, - -- CPED_CONFIG_FLAG_Avoidance_Ignore_WeirdPedBuffer = 269, - -- CPED_CONFIG_FLAG_OnStairSlope = 270, - -- _CPED_CONFIG_FLAG_0xA0897933 = 271, - -- CPED_CONFIG_FLAG_DontBlipCop = 272, - -- CPED_CONFIG_FLAG_ClimbedShiftedFence = 273, - -- _CPED_CONFIG_FLAG_0xF7823618 = 274, - -- CPED_CONFIG_FLAG_KillWhenTrapped = 275, - -- CPED_CONFIG_FLAG_EdgeDetected = 276, - -- _CPED_CONFIG_FLAG_0x92B67896 = 277, - -- _CPED_CONFIG_FLAG_0xCAD677C9 = 278, - -- CPED_CONFIG_FLAG_AvoidTearGas = 279, - -- _CPED_CONFIG_FLAG_0x5276AC7B = 280, - -- CPED_CONFIG_FLAG_DisableGoToWritheWhenInjured = 281, - -- CPED_CONFIG_FLAG_OnlyUseForcedSeatWhenEnteringHeliInGroup = 282, - -- _CPED_CONFIG_FLAG_0x9139724D = 283, - -- _CPED_CONFIG_FLAG_0xA1457461 = 284, - -- CPED_CONFIG_FLAG_DisableWeirdPedEvents = 285, - -- CPED_CONFIG_FLAG_ShouldChargeNow = 286, - -- CPED_CONFIG_FLAG_RagdollingOnBoat = 287, - -- CPED_CONFIG_FLAG_HasBrandishedWeapon = 288, - -- _CPED_CONFIG_FLAG_0x1B9EE8A1 = 289, - -- _CPED_CONFIG_FLAG_0xF3F5758C = 290, - -- _CPED_CONFIG_FLAG_0x2A9307F1 = 291, - -- _CPED_CONFIG_FLAG_FreezePosition = 292, // 0x7403D216 - -- _CPED_CONFIG_FLAG_0xA06A3C6C = 293, - -- CPED_CONFIG_FLAG_DisableShockingEvents = 294, - -- _CPED_CONFIG_FLAG_0xF8DA25A5 = 295, - -- CPED_CONFIG_FLAG_NeverReactToPedOnRoof = 296, - -- _CPED_CONFIG_FLAG_0xB31F1187 = 297, - -- _CPED_CONFIG_FLAG_0x84315402 = 298, - -- CPED_CONFIG_FLAG_DisableShockingDrivingOnPavementEvents = 299, - -- _CPED_CONFIG_FLAG_0xC7829B67 = 300, - -- CPED_CONFIG_FLAG_DisablePedConstraints = 301, - -- CPED_CONFIG_FLAG_ForceInitialPeekInCover = 302, - -- _CPED_CONFIG_FLAG_0x2ADA871B = 303, - -- _CPED_CONFIG_FLAG_0x47BC8A58 = 304, - -- CPED_CONFIG_FLAG_DisableJumpingFromVehiclesAfterLeader = 305, - -- _CPED_CONFIG_FLAG_0x4A133C50 = 306, - -- _CPED_CONFIG_FLAG_0xC58099C3 = 307, - -- _CPED_CONFIG_FLAG_0xF3D76D41 = 308, - -- _CPED_CONFIG_FLAG_0xB0EEE9F2 = 309, - -- CPED_CONFIG_FLAG_IsInCluster = 310, - -- CPED_CONFIG_FLAG_ShoutToGroupOnPlayerMelee = 311, - -- CPED_CONFIG_FLAG_IgnoredByAutoOpenDoors = 312, - -- _CPED_CONFIG_FLAG_0xD4136C22 = 313, - -- CPED_CONFIG_FLAG_ForceIgnoreMeleeActiveCombatant = 314, - -- CPED_CONFIG_FLAG_CheckLoSForSoundEvents = 315, - -- _CPED_CONFIG_FLAG_0xD5C98277 = 316, - -- CPED_CONFIG_FLAG_CanSayFollowedByPlayerAudio = 317, - -- CPED_CONFIG_FLAG_ActivateRagdollFromMinorPlayerContact = 318, - -- _CPED_CONFIG_FLAG_0xD8BE1D54 = 319, - -- CPED_CONFIG_FLAG_ForcePoseCharacterCloth = 320, - -- CPED_CONFIG_FLAG_HasClothCollisionBounds = 321, - -- CPED_CONFIG_FLAG_HasHighHeels = 322, - -- _CPED_CONFIG_FLAG_0x86B01E54 = 323, - -- CPED_CONFIG_FLAG_DontBehaveLikeLaw = 324, - -- _CPED_CONFIG_FLAG_0xC03B736C = 325, // SpawnedAtScenario? - -- CPED_CONFIG_FLAG_DisablePoliceInvestigatingBody = 326, - -- CPED_CONFIG_FLAG_DisableWritheShootFromGround = 327, - -- CPED_CONFIG_FLAG_LowerPriorityOfWarpSeats = 328, - -- CPED_CONFIG_FLAG_DisableTalkTo = 329, - -- CPED_CONFIG_FLAG_DontBlip = 330, - -- CPED_CONFIG_FLAG_IsSwitchingWeapon = 331, - -- CPED_CONFIG_FLAG_IgnoreLegIkRestrictions = 332, - -- _CPED_CONFIG_FLAG_0x150468FD = 333, - -- _CPED_CONFIG_FLAG_0x914EBD6B = 334, - -- _CPED_CONFIG_FLAG_0x79AF3B6D = 335, - -- _CPED_CONFIG_FLAG_0x75C7A632 = 336, - -- _CPED_CONFIG_FLAG_0x52D530E2 = 337, - -- _CPED_CONFIG_FLAG_0xDB2A90E0 = 338, - -- CPED_CONFIG_FLAG_AllowTaskDoNothingTimeslicing = 339, - -- _CPED_CONFIG_FLAG_0x12ADB567 = 340, - -- _CPED_CONFIG_FLAG_0x105C8518 = 341, - -- CPED_CONFIG_FLAG_NotAllowedToJackAnyPlayers = 342, - -- _CPED_CONFIG_FLAG_0xED152C3E = 343, - -- _CPED_CONFIG_FLAG_0xA0EFE6A8 = 344, - -- CPED_CONFIG_FLAG_AlwaysLeaveTrainUponArrival = 345, - -- _CPED_CONFIG_FLAG_0xCDDFE830 = 346, - -- CPED_CONFIG_FLAG_OnlyWritheFromWeaponDamage = 347, - -- CPED_CONFIG_FLAG_UseSloMoBloodVfx = 348, - -- CPED_CONFIG_FLAG_EquipJetpack = 349, - -- CPED_CONFIG_FLAG_PreventDraggedOutOfCarThreatResponse = 350, - -- _CPED_CONFIG_FLAG_0xE13D1F7C = 351, - -- _CPED_CONFIG_FLAG_0x40E25FB9 = 352, - -- _CPED_CONFIG_FLAG_0x930629D9 = 353, - -- _CPED_CONFIG_FLAG_0xECCF0C7F = 354, - -- _CPED_CONFIG_FLAG_0xB6E9613B = 355, - -- CPED_CONFIG_FLAG_ForceDeepSurfaceCheck = 356, - -- CPED_CONFIG_FLAG_DisableDeepSurfaceAnims = 357, - -- CPED_CONFIG_FLAG_DontBlipNotSynced = 358, - -- CPED_CONFIG_FLAG_IsDuckingInVehicle = 359, - -- CPED_CONFIG_FLAG_PreventAutoShuffleToTurretSeat = 360, - -- CPED_CONFIG_FLAG_DisableEventInteriorStatusCheck = 361, - -- CPED_CONFIG_FLAG_HasReserveParachute = 362, - -- CPED_CONFIG_FLAG_UseReserveParachute = 363, - -- CPED_CONFIG_FLAG_TreatDislikeAsHateWhenInCombat = 364, - -- CPED_CONFIG_FLAG_OnlyUpdateTargetWantedIfSeen = 365, - -- CPED_CONFIG_FLAG_AllowAutoShuffleToDriversSeat = 366, - -- _CPED_CONFIG_FLAG_0xD7E07D37 = 367, - -- _CPED_CONFIG_FLAG_0x03C4FD24 = 368, - -- _CPED_CONFIG_FLAG_0x7675789A = 369, - -- _CPED_CONFIG_FLAG_0xB7288A88 = 370, - -- _CPED_CONFIG_FLAG_0xC06B6291 = 371, - -- CPED_CONFIG_FLAG_PreventReactingToSilencedCloneBullets = 372, - -- CPED_CONFIG_FLAG_DisableInjuredCryForHelpEvents = 373, - -- CPED_CONFIG_FLAG_NeverLeaveTrain = 374, - -- CPED_CONFIG_FLAG_DontDropJetpackOnDeath = 375, - -- _CPED_CONFIG_FLAG_0x147F1FFB = 376, - -- _CPED_CONFIG_FLAG_0x4376DD79 = 377, - -- _CPED_CONFIG_FLAG_0xCD3DB518 = 378, - -- _CPED_CONFIG_FLAG_0xFE4BA4B6 = 379, - -- CPED_CONFIG_FLAG_DisableAutoEquipHelmetsInBikes = 380, - -- _CPED_CONFIG_FLAG_0xBCD816CD = 381, - -- _CPED_CONFIG_FLAG_0xCF02DD69 = 382, - -- _CPED_CONFIG_FLAG_0xF73AFA2E = 383, - -- _CPED_CONFIG_FLAG_0x80B9A9D0 = 384, - -- _CPED_CONFIG_FLAG_0xF601F7EE = 385, - -- _CPED_CONFIG_FLAG_0xA91350FC = 386, - -- _CPED_CONFIG_FLAG_0x3AB23B96 = 387, - -- CPED_CONFIG_FLAG_IsClimbingLadder = 388, - -- CPED_CONFIG_FLAG_HasBareFeet = 389, - -- CPED_CONFIG_FLAG_UNUSED_REPLACE_ME_2 = 390, - -- CPED_CONFIG_FLAG_GoOnWithoutVehicleIfItIsUnableToGetBackToRoad = 391, - -- CPED_CONFIG_FLAG_BlockDroppingHealthSnacksOnDeath = 392, - -- _CPED_CONFIG_FLAG_0xC11D3E8F = 393, - -- CPED_CONFIG_FLAG_ForceThreatResponseToNonFriendToFriendMeleeActions = 394, - -- CPED_CONFIG_FLAG_DontRespondToRandomPedsDamage = 395, - -- CPED_CONFIG_FLAG_AllowContinuousThreatResponseWantedLevelUpdates = 396, - -- CPED_CONFIG_FLAG_KeepTargetLossResponseOnCleanup = 397, - -- CPED_CONFIG_FLAG_PlayersDontDragMeOutOfCar = 398, - -- CPED_CONFIG_FLAG_BroadcastRepondedToThreatWhenGoingToPointShooting = 399, - -- CPED_CONFIG_FLAG_IgnorePedTypeForIsFriendlyWith = 400, - -- CPED_CONFIG_FLAG_TreatNonFriendlyAsHateWhenInCombat = 401, - -- CPED_CONFIG_FLAG_DontLeaveVehicleIfLeaderNotInVehicle = 402, - -- _CPED_CONFIG_FLAG_0x5E5B9591 = 403, - -- CPED_CONFIG_FLAG_AllowMeleeReactionIfMeleeProofIsOn = 404, - -- _CPED_CONFIG_FLAG_0x77840177 = 405, - -- _CPED_CONFIG_FLAG_0x1C7ACAC4 = 406, - -- CPED_CONFIG_FLAG_UseNormalExplosionDamageWhenBlownUpInVehicle = 407, - -- CPED_CONFIG_FLAG_DisableHomingMissileLockForVehiclePedInside = 408, - -- CPED_CONFIG_FLAG_DisableTakeOffScubaGear = 409, - -- CPED_CONFIG_FLAG_IgnoreMeleeFistWeaponDamageMult = 410, - -- CPED_CONFIG_FLAG_LawPedsCanFleeFromNonWantedPlayer = 411, - -- CPED_CONFIG_FLAG_ForceBlipSecurityPedsIfPlayerIsWanted = 412, - -- CPED_CONFIG_FLAG_IsHolsteringWeapon = 413, - -- CPED_CONFIG_FLAG_UseGoToPointForScenarioNavigation = 414, - -- CPED_CONFIG_FLAG_DontClearLocalPassengersWantedLevel = 415, - -- CPED_CONFIG_FLAG_BlockAutoSwapOnWeaponPickups = 416, - -- CPED_CONFIG_FLAG_ThisPedIsATargetPriorityForAI = 417, - -- CPED_CONFIG_FLAG_IsSwitchingHelmetVisor = 418, - -- CPED_CONFIG_FLAG_ForceHelmetVisorSwitch = 419, - -- _CPED_CONFIG_FLAG_0xCFF5F6DE = 420, - -- CPED_CONFIG_FLAG_UseOverrideFootstepPtFx = 421, - -- CPED_CONFIG_FLAG_DisableVehicleCombat = 422, - -- _CPED_CONFIG_FLAG_0xFE401D26 = 423, - -- CPED_CONFIG_FLAG_FallsLikeAircraft = 424, - -- _CPED_CONFIG_FLAG_0x2B42AE82 = 425, - -- CPED_CONFIG_FLAG_UseLockpickVehicleEntryAnimations = 426, - -- CPED_CONFIG_FLAG_IgnoreInteriorCheckForSprinting = 427, - -- CPED_CONFIG_FLAG_SwatHeliSpawnWithinLastSpottedLocation = 428, - -- CPED_CONFIG_FLAG_DisableStartEngine = 429, - -- CPED_CONFIG_FLAG_IgnoreBeingOnFire = 430, - -- CPED_CONFIG_FLAG_DisableTurretOrRearSeatPreference = 431, - -- CPED_CONFIG_FLAG_DisableWantedHelicopterSpawning = 432, - -- CPED_CONFIG_FLAG_UseTargetPerceptionForCreatingAimedAtEvents = 433, - -- CPED_CONFIG_FLAG_DisableHomingMissileLockon = 434, - -- CPED_CONFIG_FLAG_ForceIgnoreMaxMeleeActiveSupportCombatants = 435, - -- CPED_CONFIG_FLAG_StayInDefensiveAreaWhenInVehicle = 436, - -- CPED_CONFIG_FLAG_DontShoutTargetPosition = 437, - -- CPED_CONFIG_FLAG_DisableHelmetArmor = 438, - -- _CPED_CONFIG_FLAG_0xCB7F3A1E = 439, - -- _CPED_CONFIG_FLAG_0x50178878 = 440, - -- CPED_CONFIG_FLAG_PreventVehExitDueToInvalidWeapon = 441, - -- CPED_CONFIG_FLAG_IgnoreNetSessionFriendlyFireCheckForAllowDamage = 442, - -- CPED_CONFIG_FLAG_DontLeaveCombatIfTargetPlayerIsAttackedByPolice = 443, - -- CPED_CONFIG_FLAG_CheckLockedBeforeWarp = 444, - -- CPED_CONFIG_FLAG_DontShuffleInVehicleToMakeRoom = 445, - -- CPED_CONFIG_FLAG_GiveWeaponOnGetup = 446, - -- CPED_CONFIG_FLAG_DontHitVehicleWithProjectiles = 447, - -- CPED_CONFIG_FLAG_DisableForcedEntryForOpenVehiclesFromTryLockedDoor = 448, - -- CPED_CONFIG_FLAG_FiresDummyRockets = 449, - -- CPED_CONFIG_FLAG_PedIsArresting = 450, - -- CPED_CONFIG_FLAG_IsDecoyPed = 451, - -- CPED_CONFIG_FLAG_HasEstablishedDecoy = 452, - -- CPED_CONFIG_FLAG_BlockDispatchedHelicoptersFromLanding = 453, - -- CPED_CONFIG_FLAG_DontCryForHelpOnStun = 454, - -- _CPED_CONFIG_FLAG_0xB68D3EAB = 455, - -- CPED_CONFIG_FLAG_CanBeIncapacitated = 456, - -- _CPED_CONFIG_FLAG_0x4BD5EBAD = 457, - -- CPED_CONFIG_FLAG_DontChangeTargetFromMelee = 458, - -- }; - SET_PED_CONFIG_FLAG=--[[void]] function(--[[Ped (int)]] ped,--[[int]] flagId,--[[BOOL (bool)]] value)return native_invoker.unified_void(ped, flagId, value, 0x1913FE4CBF41C463, "iib")end - -- PED::SET_PED_RESET_FLAG(PLAYER::PLAYER_PED_ID(), 240, 1); - -- Known values: - -- PRF_PreventGoingIntoStillInVehicleState = 236 *(fanatic2.c)* - SET_PED_RESET_FLAG=--[[void]] function(--[[Ped (int)]] ped,--[[int]] flagId,--[[BOOL (bool)]] doReset)return native_invoker.unified_void(ped, flagId, doReset, 0xC1E8A365BF3B29F2, "iib")end - -- See SET_PED_CONFIG_FLAG - GET_PED_CONFIG_FLAG=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[int]] flagId,--[[BOOL (bool)]] p2)return native_invoker.unified_bool(ped, flagId, p2, 0x7EE53118C892B513, "iib")end - GET_PED_RESET_FLAG=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[int]] flagId)return native_invoker.unified_bool(ped, flagId, 0xAF9E59B1B1FBF2A0, "ii")end - SET_PED_GROUP_MEMBER_PASSENGER_INDEX=--[[void]] function(--[[Ped (int)]] ped,--[[int]] index)return native_invoker.unified_void(ped, index, 0x0BDDB8D9EC6BCF3C, "ii")end - SET_PED_CAN_EVASIVE_DIVE=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x6B7A646C242A7059, "ib")end - -- Presumably returns the Entity that the Ped is currently diving out of the way of. - -- - -- var num3; - -- if (PED::IS_PED_EVASIVE_DIVING(A_0, &num3) != 0) - -- if (ENTITY::IS_ENTITY_A_VEHICLE(num3) != 0) - IS_PED_EVASIVE_DIVING=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Entity* (pointer)]] evadingEntity)return native_invoker.unified_bool(ped, evadingEntity, 0x414641C26E105898, "ip")end - SET_PED_SHOOTS_AT_COORD=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, x, y, z, toggle, 0x96A05E4FB321B1BA, "ifffb")end - -- Full list of peds by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/peds.json - SET_PED_MODEL_IS_SUPPRESSED=--[[void]] function(--[[Hash (int)]] modelHash,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(modelHash, toggle, 0xE163A4BCE4DE6F11, "ib")end - STOP_ANY_PED_MODEL_BEING_SUPPRESSED=--[[void]] function()return native_invoker.unified_void(0xB47BD05FA66B40CF, "")end - SET_PED_CAN_BE_TARGETED_WHEN_INJURED=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x638C03B0F9878F57, "ib")end - SET_PED_GENERATES_DEAD_BODY_EVENTS=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x7FB17BA2E7DECA5B, "ib")end - BLOCK_PED_FROM_GENERATING_DEAD_BODY_EVENTS_WHEN_DEAD=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xE43A13C9E4CCCBCF, "ib")end - SET_PED_WILL_ONLY_ATTACK_WANTED_PLAYER=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x3E9679C1DFCF422C, "ii")end - SET_PED_CAN_RAGDOLL_FROM_PLAYER_IMPACT=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xDF993EE5E90ABA25, "ib")end - -- PoliceMotorcycleHelmet 1024 - -- RegularMotorcycleHelmet 4096 - -- FiremanHelmet 16384 - -- PilotHeadset 32768 - -- PilotHelmet 65536 - -- -- - -- p2 is generally 4096 or 16384 in the scripts. p1 varies between 1 and 0. - GIVE_PED_HELMET=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] cannotRemove,--[[int]] helmetFlag,--[[int]] textureIndex)return native_invoker.unified_void(ped, cannotRemove, helmetFlag, textureIndex, 0x54C7C4A94367717E, "ibii")end - REMOVE_PED_HELMET=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] instantly)return native_invoker.unified_void(ped, instantly, 0xA7B2458D0AD6DED8, "ib")end - IS_PED_TAKING_OFF_HELMET=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x14590DDBEDB1EC85, "i")end - SET_PED_HELMET=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] canWearHelmet)return native_invoker.unified_void(ped, canWearHelmet, 0x560A43136EB58105, "ib")end - SET_PED_HELMET_FLAG=--[[void]] function(--[[Ped (int)]] ped,--[[int]] helmetFlag)return native_invoker.unified_void(ped, helmetFlag, 0xC0E78D5C2CE3EB25, "ii")end - -- List of component/props ID - -- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - SET_PED_HELMET_PROP_INDEX=--[[void]] function(--[[Ped (int)]] ped,--[[int]] propIndex,--[[BOOL (bool)]] p2)return native_invoker.unified_void(ped, propIndex, p2, 0x26D83693ED99291C, "iib")end - SET_PED_HELMET_VISOR_PROP_INDICES=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1,--[[int]] p2,--[[int]] p3)return native_invoker.unified_void(ped, p1, p2, p3, 0x3F7325574E41B44D, "ibii")end - IS_PED_HELMET_VISOR_UP=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xB9496CE47546DB2C, "i")end - SET_PED_HELMET_TEXTURE_INDEX=--[[void]] function(--[[Ped (int)]] ped,--[[int]] textureIndex)return native_invoker.unified_void(ped, textureIndex, 0xF1550C4BD22582E2, "ii")end - -- Returns true if the ped passed through the parenthesis is wearing a helmet. - IS_PED_WEARING_HELMET=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xF33BDFE19B309B19, "i")end - CLEAR_PED_STORED_HAT_PROP=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x687C0B594907D2E8, "i")end - GET_PED_HELMET_STORED_HAT_PROP_INDEX=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x451294E859ECC018, "i")end - GET_PED_HELMET_STORED_HAT_TEX_INDEX=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x9D728C1E12BF5518, "i")end - IS_CURRENT_HEAD_PROP_A_HELMET=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0xF2385935BFFD4D92, "i")end - SET_PED_TO_LOAD_COVER=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x332B562EEDA62399, "ib")end - -- It simply makes the said ped to cower behind cover object(wall, desk, car) - -- - -- Peds flee attributes must be set to not to flee, first. Else, most of the peds, will just flee from gunshot sounds or any other panic situations. - SET_PED_CAN_COWER_IN_COVER=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xCB7553CDCEF4A735, "ib")end - SET_PED_CAN_PEEK_IN_COVER=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xC514825C507E3736, "ib")end - -- This native does absolutely nothing, just a nullsub - SET_PED_PLAYS_HEAD_ON_HORN_ANIM_WHEN_DIES_IN_VEHICLE=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x94D94BF1A75AED3D, "ib")end - -- "IK" stands for "Inverse kinematics." I assume this has something to do with how the ped uses his legs to balance. In the scripts, the second parameter is always an int with a value of 2, 0, or sometimes 1 - SET_PED_LEG_IK_MODE=--[[void]] function(--[[Ped (int)]] ped,--[[int]] mode)return native_invoker.unified_void(ped, mode, 0xC396F5B86FF9FEBD, "ii")end - SET_PED_MOTION_BLUR=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x0A986918B102B448, "ib")end - SET_PED_CAN_SWITCH_WEAPON=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xED7F7EFE9FABF340, "ib")end - SET_PED_DIES_INSTANTLY_IN_WATER=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xEEB64139BA29A7CF, "ib")end - -- Only appears in lamar1 script. - SET_LADDER_CLIMB_INPUT_STATE=--[[void]] function(--[[Ped (int)]] ped,--[[int]] p1)return native_invoker.unified_void(ped, p1, 0x1A330D297AAC6BC1, "ii")end - STOP_PED_WEAPON_FIRING_WHEN_DROPPED=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xC158D28142A34608, "i")end - SET_SCRIPTED_ANIM_SEAT_OFFSET=--[[void]] function(--[[Ped (int)]] ped,--[[float]] p1)return native_invoker.unified_void(ped, p1, 0x5917BBA32D06C230, "if")end - -- enum eCombatMovement // 0x4F456B61 - -- { - -- CM_Stationary, - -- CM_Defensive, - -- CM_WillAdvance, - -- CM_WillRetreat - -- }; - SET_PED_COMBAT_MOVEMENT=--[[void]] function(--[[Ped (int)]] ped,--[[int]] combatMovement)return native_invoker.unified_void(ped, combatMovement, 0x4D9CA1009AFBD057, "ii")end - -- See SET_PED_COMBAT_MOVEMENT - GET_PED_COMBAT_MOVEMENT=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0xDEA92412FCAEB3F5, "i")end - -- enum eCombatAbility // 0xE793438C - -- { - -- CA_Poor, - -- CA_Average, - -- CA_Professional, - -- CA_NumTypes - -- }; - SET_PED_COMBAT_ABILITY=--[[void]] function(--[[Ped (int)]] ped,--[[int]] abilityLevel)return native_invoker.unified_void(ped, abilityLevel, 0xC7622C0D36B2FDA8, "ii")end - -- enum eCombatRange // 0xB69160F5 - -- { - -- CR_Near, - -- CR_Medium, - -- CR_Far, - -- CR_VeryFar, - -- CR_NumRanges - -- }; - SET_PED_COMBAT_RANGE=--[[void]] function(--[[Ped (int)]] ped,--[[int]] combatRange)return native_invoker.unified_void(ped, combatRange, 0x3C606747B23E497B, "ii")end - -- See SET_PED_COMBAT_RANGE - GET_PED_COMBAT_RANGE=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0xF9D9F7F2DB8E2FA0, "i")end - -- enum eCombatAttributes // 0x0E8E7201 - -- { - -- BF_CanUseCover = 0, - -- BF_CanUseVehicles = 1, - -- BF_CanDoDrivebys = 2, - -- BF_CanLeaveVehicle = 3, - -- BF_CanUseDynamicStrafeDecisions = 4, - -- BF_AlwaysFight = 5, - -- BF_0x66BB9FCC = 6, - -- BF_0x6837DA41 = 7, - -- BF_0xB4A13A5A = 8, - -- BF_0xEE326AAD = 9, - -- BF_0x7DF2CCFA = 10, - -- BF_0x0036D422 = 11, - -- BF_BlindFireWhenInCover = 12, - -- BF_Aggressive = 13, - -- BF_CanInvestigate = 14, - -- BF_HasRadio = 15, - -- BF_0x6BDE28D1 = 16, - -- BF_AlwaysFlee = 17, - -- BF_0x7852797D = 18, - -- BF_0x33497B95 = 19, - -- BF_CanTauntInVehicle = 20, - -- BF_CanChaseTargetOnFoot = 21, - -- BF_WillDragInjuredPedsToSafety = 22, - -- BF_0xCD7168B8 = 23, - -- BF_UseProximityFiringRate = 24, - -- BF_0x48F914F8 = 25, - -- BF_0x2EA543D0 = 26, - -- BF_PerfectAccuracy = 27, - -- BF_CanUseFrustratedAdvance = 28, - -- BF_0x3D131AC1 = 29, - -- BF_0x3AD95F27 = 30, - -- BF_MaintainMinDistanceToTarget = 31, - -- BF_0xEAD68AD2 = 32, - -- BF_0xA206C2E0 = 33, - -- BF_CanUsePeekingVariations = 34, - -- BF_0xA5715184 = 35, - -- BF_0xD5265533 = 36, - -- BF_0x2B84C2BF = 37, - -- BF_DisableBulletReactions = 38, - -- BF_CanBust = 39, - -- BF_0xAA525726 = 40, - -- BF_CanCommandeerVehicles = 41, - -- BF_CanFlank = 42, - -- BF_SwitchToAdvanceIfCantFindCover = 43, - -- BF_SwitchToDefensiveIfInCover = 44, - -- BF_0xEB4786A0 = 45, - -- BF_CanFightArmedPedsWhenNotArmed = 46, - -- BF_0xA08E9402 = 47, - -- BF_0x952EAD7D = 48, - -- BF_UseEnemyAccuracyScaling = 49, - -- BF_CanCharge = 50, - -- BF_0xDA8C2BD3 = 51, - -- BF_0x6562F017 = 52, - -- BF_0xA2C3D53B = 53, - -- BF_AlwaysEquipBestWeapon = 54, - -- BF_CanSeeUnderwaterPeds = 55, - -- BF_0xF619486B = 56, - -- BF_0x61EB63A3 = 57, - -- BF_DisableFleeFromCombat = 58, - -- BF_0x8976D12B = 59, - -- BF_CanThrowSmokeGrenade = 60, - -- BF_NonMissionPedsFleeFromThisPedUnlessArmed = 61, - -- BF_0x5452A10C = 62, - -- BF_FleesFromInvincibleOpponents = 63, - -- BF_DisableBlockFromPursueDuringVehicleChase = 64, - -- BF_DisableSpinOutDuringVehicleChase = 65, - -- BF_DisableCruiseInFrontDuringBlockDuringVehicleChase = 66, - -- BF_0x0B404731 = 67, - -- BF_DisableReactToBuddyShot = 68, - -- BF_0x7FFD6AEB = 69, - -- BF_0x51F4AEF8 = 70, - -- BF_PermitChargeBeyondDefensiveArea = 71, - -- BF_0x63E0A8E2 = 72, - -- BF_0xDF974436 = 73, - -- BF_0x556C080B = 74, - -- BF_0xA4D50035 = 75, - -- BF_SetDisableShoutTargetPositionOnCombatStart = 76, - -- BF_DisableRespondedToThreatBroadcast = 77, - -- BF_0xCBB01765 = 78, - -- BF_0x4F862ED4 = 79, - -- BF_0xEF9C7C40 = 80, - -- BF_0xE51B494F = 81, - -- BF_0x054D0199 = 82, - -- BF_0xD36BCE94 = 83, - -- BF_0xFB11F690 = 84, - -- BF_0xD208A9AD = 85, - -- BF_AllowDogFighting = 86, - -- BF_0x07A6E531 = 87, - -- BF_0x34F9317B = 88, - -- BF_0x4240F5A9 = 89, - -- BF_0xEE129DBD = 90, - -- BF_0x053AEAD9 = 91 - -- }; - SET_PED_COMBAT_ATTRIBUTES=--[[void]] function(--[[Ped (int)]] ped,--[[int]] attributeId,--[[BOOL (bool)]] enabled)return native_invoker.unified_void(ped, attributeId, enabled, 0x9F7794730795E019, "iib")end - -- enum eTargetLossResponseType - -- { - -- TLR_ExitTask, - -- TLR_NeverLoseTarget, - -- TLR_SearchForTarget - -- }; - SET_PED_TARGET_LOSS_RESPONSE=--[[void]] function(--[[Ped (int)]] ped,--[[int]] responseType)return native_invoker.unified_void(ped, responseType, 0x0703B9079823DA4A, "ii")end - IS_PED_PERFORMING_MELEE_ACTION=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xDCCA191DF9980FD7, "i")end - IS_PED_PERFORMING_STEALTH_KILL=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xFD4CCDBCC59941B7, "i")end - IS_PED_PERFORMING_A_COUNTER_ATTACK=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xEBD0EDBA5BE957CF, "i")end - IS_PED_BEING_STEALTH_KILLED=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x863B23EFDE9C5DF2, "i")end - GET_MELEE_TARGET_FOR_PED=--[[Ped (int)]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x18A3E9EE1297FD39, "i")end - WAS_PED_KILLED_BY_STEALTH=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xF9800AA1A771B000, "i")end - WAS_PED_KILLED_BY_TAKEDOWN=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x7F08E26039C7347C, "i")end - WAS_PED_KNOCKED_OUT=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x61767F73EACEED21, "i")end - -- bit 1 (0x2) = use vehicle - -- bit 15 (0x8000) = force cower - SET_PED_FLEE_ATTRIBUTES=--[[void]] function(--[[Ped (int)]] ped,--[[int]] attributeFlags,--[[BOOL (bool)]] enable)return native_invoker.unified_void(ped, attributeFlags, enable, 0x70A2D1137C8ED7C9, "iib")end - -- p1: Only "CODE_HUMAN_STAND_COWER" found in the b617d scripts. - SET_PED_COWER_HASH=--[[void]] function(--[[Ped (int)]] ped,--[[string]] p1)return native_invoker.unified_void(ped, p1, 0xA549131166868ED3, "is")end - SET_PED_STEERS_AROUND_DEAD_BODIES=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x2016C603D6B8987C, "ib")end - SET_PED_STEERS_AROUND_PEDS=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x46F2193B3AD1D891, "ib")end - SET_PED_STEERS_AROUND_OBJECTS=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x1509C089ADC208BF, "ib")end - SET_PED_STEERS_AROUND_VEHICLES=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xEB6FB9D48DDE23EC, "ib")end - SET_PED_IS_AVOIDED_BY_OTHERS=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0xA9B61A329BFDCBEA, "ib")end - SET_PED_INCREASED_AVOIDANCE_RADIUS=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x570389D1C3DE3C6B, "i")end - SET_PED_BLOCKS_PATHING_WHEN_DEAD=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x576594E8D64375E2, "ib")end - SET_PED_NO_TIME_DELAY_BEFORE_SHOT=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xA52D5247A4227E14, "i")end - IS_ANY_PED_NEAR_POINT=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius)return native_invoker.unified_bool(x, y, z, radius, 0x083961498679DC9F, "ffff")end - FORCE_PED_AI_AND_ANIMATION_UPDATE=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(ped, p1, p2, 0x2208438012482A1A, "ibb")end - IS_PED_HEADING_TOWARDS_POSITION=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] p4)return native_invoker.unified_bool(ped, x, y, z, p4, 0xFCF37A457CB96DC0, "iffff")end - REQUEST_PED_VISIBILITY_TRACKING=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x7D7A2E43E74E2EB8, "i")end - REQUEST_PED_VEHICLE_VISIBILITY_TRACKING=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1)return native_invoker.unified_void(ped, p1, 0x2BC338A7B21F4608, "ib")end - REQUEST_PED_RESTRICTED_VEHICLE_VISIBILITY_TRACKING=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1)return native_invoker.unified_void(ped, p1, 0xCD018C591F94CB43, "ib")end - REQUEST_PED_USE_SMALL_BBOX_VISIBILITY_TRACKING=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1)return native_invoker.unified_void(ped, p1, 0x75BA1CB3B7D40CAF, "ib")end - -- returns whether or not a ped is visible within your FOV, not this check auto's to false after a certain distance. - -- - -- - -- Target needs to be tracked.. won't work otherwise. - IS_TRACKED_PED_VISIBLE=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x91C8E617F64188AC, "i")end - GET_TRACKED_PED_PIXELCOUNT=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x511F1A683387C7E2, "i")end - IS_PED_TRACKED=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x4C5E1F087CD10BB7, "i")end - HAS_PED_RECEIVED_EVENT=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[int]] eventId)return native_invoker.unified_bool(ped, eventId, 0x8507BCB710FA6DC0, "ii")end - CAN_PED_SEE_HATED_PED=--[[BOOL (bool)]] function(--[[Ped (int)]] ped1,--[[Ped (int)]] ped2)return native_invoker.unified_bool(ped1, ped2, 0x6CD5A433374D4CFB, "ii")end - CAN_PED_SHUFFLE_TO_OR_FROM_TURRET_SEAT=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[int* (pointer)]] p1)return native_invoker.unified_bool(ped, p1, 0x9C6A6C19B6C0C496, "ip")end - CAN_PED_SHUFFLE_TO_OR_FROM_EXTRA_SEAT=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[int* (pointer)]] p1)return native_invoker.unified_bool(ped, p1, 0x2DFC81C9B9608549, "ip")end - -- no bone= -1 - -- - -- boneIds: - -- SKEL_ROOT = 0x0, - -- SKEL_Pelvis = 0x2e28, - -- SKEL_L_Thigh = 0xe39f, - -- SKEL_L_Calf = 0xf9bb, - -- SKEL_L_Foot = 0x3779, - -- SKEL_L_Toe0 = 0x83c, - -- IK_L_Foot = 0xfedd, - -- PH_L_Foot = 0xe175, - -- MH_L_Knee = 0xb3fe, - -- SKEL_R_Thigh = 0xca72, - -- SKEL_R_Calf = 0x9000, - -- SKEL_R_Foot = 0xcc4d, - -- SKEL_R_Toe0 = 0x512d, - -- IK_R_Foot = 0x8aae, - -- PH_R_Foot = 0x60e6, - -- MH_R_Knee = 0x3fcf, - -- RB_L_ThighRoll = 0x5c57, - -- RB_R_ThighRoll = 0x192a, - -- SKEL_Spine_Root = 0xe0fd, - -- SKEL_Spine0 = 0x5c01, - -- SKEL_Spine1 = 0x60f0, - -- SKEL_Spine2 = 0x60f1, - -- SKEL_Spine3 = 0x60f2, - -- SKEL_L_Clavicle = 0xfcd9, - -- SKEL_L_UpperArm = 0xb1c5, - -- SKEL_L_Forearm = 0xeeeb, - -- SKEL_L_Hand = 0x49d9, - -- SKEL_L_Finger00 = 0x67f2, - -- SKEL_L_Finger01 = 0xff9, - -- SKEL_L_Finger02 = 0xffa, - -- SKEL_L_Finger10 = 0x67f3, - -- SKEL_L_Finger11 = 0x1049, - -- SKEL_L_Finger12 = 0x104a, - -- SKEL_L_Finger20 = 0x67f4, - -- SKEL_L_Finger21 = 0x1059, - -- SKEL_L_Finger22 = 0x105a, - -- SKEL_L_Finger30 = 0x67f5, - -- SKEL_L_Finger31 = 0x1029, - -- SKEL_L_Finger32 = 0x102a, - -- SKEL_L_Finger40 = 0x67f6, - -- SKEL_L_Finger41 = 0x1039, - -- SKEL_L_Finger42 = 0x103a, - -- PH_L_Hand = 0xeb95, - -- IK_L_Hand = 0x8cbd, - -- RB_L_ForeArmRoll = 0xee4f, - -- RB_L_ArmRoll = 0x1470, - -- MH_L_Elbow = 0x58b7, - -- SKEL_R_Clavicle = 0x29d2, - -- SKEL_R_UpperArm = 0x9d4d, - -- SKEL_R_Forearm = 0x6e5c, - -- SKEL_R_Hand = 0xdead, - -- SKEL_R_Finger00 = 0xe5f2, - -- SKEL_R_Finger01 = 0xfa10, - -- SKEL_R_Finger02 = 0xfa11, - -- SKEL_R_Finger10 = 0xe5f3, - -- SKEL_R_Finger11 = 0xfa60, - -- SKEL_R_Finger12 = 0xfa61, - -- SKEL_R_Finger20 = 0xe5f4, - -- SKEL_R_Finger21 = 0xfa70, - -- SKEL_R_Finger22 = 0xfa71, - -- SKEL_R_Finger30 = 0xe5f5, - -- SKEL_R_Finger31 = 0xfa40, - -- SKEL_R_Finger32 = 0xfa41, - -- SKEL_R_Finger40 = 0xe5f6, - -- SKEL_R_Finger41 = 0xfa50, - -- SKEL_R_Finger42 = 0xfa51, - -- PH_R_Hand = 0x6f06, - -- IK_R_Hand = 0x188e, - -- RB_R_ForeArmRoll = 0xab22, - -- RB_R_ArmRoll = 0x90ff, - -- MH_R_Elbow = 0xbb0, - -- SKEL_Neck_1 = 0x9995, - -- SKEL_Head = 0x796e, - -- IK_Head = 0x322c, - -- FACIAL_facialRoot = 0xfe2c, - -- FB_L_Brow_Out_000 = 0xe3db, - -- FB_L_Lid_Upper_000 = 0xb2b6, - -- FB_L_Eye_000 = 0x62ac, - -- FB_L_CheekBone_000 = 0x542e, - -- FB_L_Lip_Corner_000 = 0x74ac, - -- FB_R_Lid_Upper_000 = 0xaa10, - -- FB_R_Eye_000 = 0x6b52, - -- FB_R_CheekBone_000 = 0x4b88, - -- FB_R_Brow_Out_000 = 0x54c, - -- FB_R_Lip_Corner_000 = 0x2ba6, - -- FB_Brow_Centre_000 = 0x9149, - -- FB_UpperLipRoot_000 = 0x4ed2, - -- FB_UpperLip_000 = 0xf18f, - -- FB_L_Lip_Top_000 = 0x4f37, - -- FB_R_Lip_Top_000 = 0x4537, - -- FB_Jaw_000 = 0xb4a0, - -- FB_LowerLipRoot_000 = 0x4324, - -- FB_LowerLip_000 = 0x508f, - -- FB_L_Lip_Bot_000 = 0xb93b, - -- FB_R_Lip_Bot_000 = 0xc33b, - -- FB_Tongue_000 = 0xb987, - -- RB_Neck_1 = 0x8b93, - -- IK_Root = 0xdd1c - GET_PED_BONE_INDEX=--[[int]] function(--[[Ped (int)]] ped,--[[int]] boneId)return native_invoker.unified_int(ped, boneId, 0x3F428D08BE5AAE31, "ii")end - GET_PED_RAGDOLL_BONE_INDEX=--[[int]] function(--[[Ped (int)]] ped,--[[int]] bone)return native_invoker.unified_int(ped, bone, 0x2057EF813397A772, "ii")end - -- Values look to be between 0.0 and 1.0 - -- From decompiled scripts: 0.0, 0.6, 0.65, 0.8, 1.0 - -- - -- You are correct, just looked in IDA it breaks from the function if it's less than 0.0f or greater than 1.0f. - SET_PED_ENVEFF_SCALE=--[[void]] function(--[[Ped (int)]] ped,--[[float]] value)return native_invoker.unified_void(ped, value, 0xBF29516833893561, "if")end - GET_PED_ENVEFF_SCALE=--[[float]] function(--[[Ped (int)]] ped)return native_invoker.unified_float(ped, 0x9C14D30395A51A3C, "i")end - SET_ENABLE_PED_ENVEFF_SCALE=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xD2C5AA0C0E8D0F1E, "ib")end - -- In agency_heist3b.c4, its like this 90% of the time: - -- - -- PED::SET_PED_ENVEFF_CPV_ADD(ped, 0.099); - -- PED::SET_PED_ENVEFF_SCALE(ped, 1.0); - -- PED::SET_PED_ENVEFF_CPV_ADD(ped, 87, 81, 68); - -- PED::SET_ENABLE_PED_ENVEFF_SCALE(ped, 1); - -- - -- and its like this 10% of the time: - -- - -- PED::SET_PED_ENVEFF_CPV_ADD(ped, 0.2); - -- PED::SET_PED_ENVEFF_SCALE(ped, 0.65); - -- PED::SET_PED_ENVEFF_COLOR_MODULATOR(ped, 74, 69, 60); - -- PED::SET_ENABLE_PED_ENVEFF_SCALE(ped, 1); - SET_PED_ENVEFF_CPV_ADD=--[[void]] function(--[[Ped (int)]] ped,--[[float]] p1)return native_invoker.unified_void(ped, p1, 0x110F526AB784111F, "if")end - -- Something related to the environmental effects natives. - -- In the "agency_heist3b" script, p1 - p3 are always under 100 - usually they are {87, 81, 68}. If SET_PED_ENVEFF_SCALE is set to 0.65 (instead of the usual 1.0), they use {74, 69, 60} - SET_PED_ENVEFF_COLOR_MODULATOR=--[[void]] function(--[[Ped (int)]] ped,--[[int]] p1,--[[int]] p2,--[[int]] p3)return native_invoker.unified_void(ped, p1, p2, p3, 0xD69411AA0CEBF9E9, "iiii")end - -- intensity: 0.0f - 1.0f - -- - -- This native sets the emissive intensity for the given ped. It is used for different 'glow' levels on illuminated clothing. - SET_PED_EMISSIVE_SCALE=--[[void]] function(--[[Ped (int)]] ped,--[[float]] intensity)return native_invoker.unified_void(ped, intensity, 0x4E90D746056E273D, "if")end - -- Use 0x4E90D746056E273D to set the illuminated clothing glow intensity for a specific ped. - -- Returns a float between 0.0 and 1.0 representing the current illuminated clothing glow intensity. - GET_PED_EMISSIVE_SCALE=--[[float]] function(--[[Ped (int)]] ped)return native_invoker.unified_float(ped, 0x1461B28A06717D68, "i")end - IS_PED_SHADER_READY=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x81AA517FBBA05D39, "i")end - SET_PED_ENABLE_CREW_EMBLEM=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xE906EC930F5FE7C8, "ib")end - -- This native does absolutely nothing, just a nullsub - REQUEST_RAGDOLL_BOUNDS_UPDATE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x1216E0BFA72CC703, "ii")end - -- Enable/disable ped shadow (ambient occlusion). https://gfycat.com/thankfulesteemedgecko - SET_PED_AO_BLOB_RENDERING=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x2B5AA717A181FB4C, "ib")end - IS_PED_SHELTERED=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xB8B52E498014F5B0, "i")end - -- p6 always 2 (but it doesnt seem to matter...) - -- - -- roll and pitch 0 - -- yaw to Ped.rotation - CREATE_SYNCHRONIZED_SCENE=--[[int]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] roll,--[[float]] pitch,--[[float]] yaw,--[[int]] p6)return native_invoker.unified_int(x, y, z, roll, pitch, yaw, p6, 0x8C18E0F9080ADD73, "ffffffi")end - CREATE_SYNCHRONIZED_SCENE_AT_MAP_OBJECT=--[[int]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[Hash (int)]] object)return native_invoker.unified_int(x, y, z, radius, object, 0x62EC273D00187DCA, "ffffi")end - -- Returns true if a synchronized scene is running - IS_SYNCHRONIZED_SCENE_RUNNING=--[[BOOL (bool)]] function(--[[int]] sceneId)return native_invoker.unified_bool(sceneId, 0x25D39B935A038A26, "i")end - SET_SYNCHRONIZED_SCENE_ORIGIN=--[[void]] function(--[[int]] sceneID,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] roll,--[[float]] pitch,--[[float]] yaw,--[[BOOL (bool)]] p7)return native_invoker.unified_void(sceneID, x, y, z, roll, pitch, yaw, p7, 0x6ACF6B7225801CD7, "iffffffb")end - SET_SYNCHRONIZED_SCENE_PHASE=--[[void]] function(--[[int]] sceneID,--[[float]] phase)return native_invoker.unified_void(sceneID, phase, 0x734292F4F0ABF6D0, "if")end - GET_SYNCHRONIZED_SCENE_PHASE=--[[float]] function(--[[int]] sceneID)return native_invoker.unified_float(sceneID, 0xE4A310B1D7FA73CC, "i")end - SET_SYNCHRONIZED_SCENE_RATE=--[[void]] function(--[[int]] sceneID,--[[float]] rate)return native_invoker.unified_void(sceneID, rate, 0xB6C49F8A5E295A5D, "if")end - GET_SYNCHRONIZED_SCENE_RATE=--[[float]] function(--[[int]] sceneID)return native_invoker.unified_float(sceneID, 0xD80932D577274D40, "i")end - SET_SYNCHRONIZED_SCENE_LOOPED=--[[void]] function(--[[int]] sceneID,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(sceneID, toggle, 0xD9A897A4C6C2974F, "ib")end - IS_SYNCHRONIZED_SCENE_LOOPED=--[[BOOL (bool)]] function(--[[int]] sceneID)return native_invoker.unified_bool(sceneID, 0x62522002E0C391BA, "i")end - SET_SYNCHRONIZED_SCENE_HOLD_LAST_FRAME=--[[void]] function(--[[int]] sceneID,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(sceneID, toggle, 0x394B9CD12435C981, "ib")end - IS_SYNCHRONIZED_SCENE_HOLD_LAST_FRAME=--[[BOOL (bool)]] function(--[[int]] sceneID)return native_invoker.unified_bool(sceneID, 0x7F2F4F13AC5257EF, "i")end - ATTACH_SYNCHRONIZED_SCENE_TO_ENTITY=--[[void]] function(--[[int]] sceneID,--[[Entity (int)]] entity,--[[int]] boneIndex)return native_invoker.unified_void(sceneID, entity, boneIndex, 0x272E4723B56A3B96, "iii")end - DETACH_SYNCHRONIZED_SCENE=--[[void]] function(--[[int]] sceneID)return native_invoker.unified_void(sceneID, 0x6D38F1F04CBB37EA, "i")end - TAKE_OWNERSHIP_OF_SYNCHRONIZED_SCENE=--[[void]] function(--[[int]] scene)return native_invoker.unified_void(scene, 0xCD9CC7E200A52A6F, "i")end - -- Regarding p2, p3 and p4: Most common is 0, 0, 0); followed by 0, 1, 0); and 1, 1, 0); in R* scripts. p4 is very rarely something other than 0. - -- - -- enum eMotionState // 0x92A659FE - -- { - -- MotionState_None = 0xEE717723, - -- MotionState_Idle = 0x9072A713, - -- MotionState_Walk = 0xD827C3DB, - -- MotionState_Run = 0xFFF7E7A4, - -- MotionState_Sprint = 0xBD8817DB, - -- MotionState_Crouch_Idle = 0x43FB099E, - -- MotionState_Crouch_Walk = 0x08C31A98, - -- MotionState_Crouch_Run = 0x3593CF09, - -- MotionState_DoNothing = 0x0EC17E58, - -- MotionState_AnimatedVelocity = 0x551AAC43, - -- MotionState_InVehicle = 0x94D9D58D, - -- MotionState_Aiming = 0x3F67C6AF, - -- MotionState_Diving_Idle = 0x4848CDED, - -- MotionState_Diving_Swim = 0x916E828C, - -- MotionState_Swimming_TreadWater = 0xD1BF11C7, - -- MotionState_Dead = 0x0DBB071C, - -- MotionState_Stealth_Idle = 0x422D7A25, - -- MotionState_Stealth_Walk = 0x042AB6A2, - -- MotionState_Stealth_Run = 0xFB0B79E1, - -- MotionState_Parachuting = 0xBAC0F10B, - -- MotionState_ActionMode_Idle = 0xDA40A0DC, - -- MotionState_ActionMode_Walk = 0xD2905EA7, - -- MotionState_ActionMode_Run = 0x31BADE14, - -- MotionState_Jetpack = 0x535E6A5E - -- }; - FORCE_PED_MOTION_STATE=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Hash (int)]] motionStateHash,--[[BOOL (bool)]] p2,--[[int]] p3,--[[BOOL (bool)]] p4)return native_invoker.unified_bool(ped, motionStateHash, p2, p3, p4, 0xF28965D04F570DCA, "iibib")end - GET_PED_CURRENT_MOVE_BLEND_RATIO=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[float* (pointer)]] speedX,--[[float* (pointer)]] speedY)return native_invoker.unified_bool(ped, speedX, speedY, 0xF60165E1D2C5370B, "ipp")end - SET_PED_MAX_MOVE_BLEND_RATIO=--[[void]] function(--[[Ped (int)]] ped,--[[float]] value)return native_invoker.unified_void(ped, value, 0x433083750C5E064A, "if")end - SET_PED_MIN_MOVE_BLEND_RATIO=--[[void]] function(--[[Ped (int)]] ped,--[[float]] value)return native_invoker.unified_void(ped, value, 0x01A898D26E2333DD, "if")end - -- Min: 0.00 - -- Max: 10.00 - -- - -- Can be used in combo with fast run cheat. - -- - -- When value is set to 10.00: - -- Sprinting without fast run cheat: 66 m/s - -- Sprinting with fast run cheat: 77 m/s - -- - -- Needs to be looped! - -- - -- Note: According to IDA for the Xbox360 xex, when they check bgt they seem to have the min to 0.0f, but the max set to 1.15f not 10.0f. - SET_PED_MOVE_RATE_OVERRIDE=--[[void]] function(--[[Ped (int)]] ped,--[[float]] value)return native_invoker.unified_void(ped, value, 0x085BF80FA50A39D1, "if")end - SET_PED_MOVE_RATE_IN_WATER_OVERRIDE=--[[void]] function(--[[Ped (int)]] ped,--[[float]] p1)return native_invoker.unified_void(ped, p1, 0x0B3E35AC043707D9, "if")end - -- Checks if the specified sexiness flag is set - -- - -- enum eSexinessFlags - -- { - -- SF_JEER_AT_HOT_PED = 0, - -- SF_HURRIEDFEMALES_SEXY = 1, - -- SF_HOT_PERSON = 2, - -- }; - PED_HAS_SEXINESS_FLAG_SET=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[int]] sexinessFlag)return native_invoker.unified_bool(ped, sexinessFlag, 0x46B05BCAE43856B0, "ii")end - -- Returns size of array, passed into the second variable. - -- - -- See below for usage information. - -- - -- This function actually requires a struct, where the first value is the maximum number of elements to return. Here is a sample of how I was able to get it to work correctly, without yet knowing the struct format. - -- - -- //Setup the array - -- const int numElements = 10; - -- const int arrSize = numElements * 2 + 2; - -- Any veh[arrSize]; - -- //0 index is the size of the array - -- veh[0] = numElements; - -- - -- int count = PED::GET_PED_NEARBY_VEHICLES(PLAYER::PLAYER_PED_ID(), veh); - -- - -- if (veh != NULL) - -- { - -- //Simple loop to go through results - -- for (int i = 0; i < count; i++) - -- { - -- int offsettedID = i * 2 + 2; - -- //Make sure it exists - -- if (veh[offsettedID] != NULL && ENTITY::DOES_ENTITY_EXIST(veh[offsettedID])) - -- { - -- //Do something - -- } - -- } - -- } - GET_PED_NEARBY_VEHICLES=--[[int]] function(--[[Ped (int)]] ped,--[[Any* (pointer)]] sizeAndVehs)return native_invoker.unified_int(ped, sizeAndVehs, 0xCFF869CBFA210D82, "ip")end - -- sizeAndPeds - is a pointer to an array. The array is filled with peds found nearby the ped supplied to the first argument. - -- ignore - ped type to ignore - -- - -- Return value is the number of peds found and added to the array passed. - -- - -- ----------------------------------- - -- - -- To make this work in most menu bases at least in C++ do it like so, - -- - -- Formatted Example: https://pastebin.com/D8an9wwp - -- - -- ----------------------------------- - -- - -- Example: gtaforums.com/topic/789788-function-args-to-pedget-ped-nearby-peds/?p=1067386687 - GET_PED_NEARBY_PEDS=--[[int]] function(--[[Ped (int)]] ped,--[[Any* (pointer)]] sizeAndPeds,--[[int]] ignore)return native_invoker.unified_int(ped, sizeAndPeds, ignore, 0x23F8F5FC7E8C4A6B, "ipi")end - HAVE_ALL_STREAMING_REQUESTS_COMPLETED=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x7350823473013C02, "i")end - IS_PED_USING_ACTION_MODE=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x00E73468D085F745, "i")end - -- p2 is usually -1 in the scripts. action is either 0 or "DEFAULT_ACTION". - SET_PED_USING_ACTION_MODE=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1,--[[int]] p2,--[[string]] action)return native_invoker.unified_void(ped, p1, p2, action, 0xD75ACCF5E0FB5367, "ibis")end - -- name: "MP_FEMALE_ACTION" found multiple times in the b617d scripts. - SET_MOVEMENT_MODE_OVERRIDE=--[[void]] function(--[[Ped (int)]] ped,--[[string]] name)return native_invoker.unified_void(ped, name, 0x781DE8FA214E87D2, "is")end - -- Overrides the ped's collision capsule radius for the current tick. - -- Must be called every tick to be effective. - -- - -- Setting this to 0.001 will allow warping through some objects. - SET_PED_CAPSULE=--[[void]] function(--[[Ped (int)]] ped,--[[float]] value)return native_invoker.unified_void(ped, value, 0x364DF566EC833DE2, "if")end - -- gtaforums.com/topic/885580-ped-headshotmugshot-txd/ - REGISTER_PEDHEADSHOT=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x4462658788425076, "i")end - REGISTER_PEDHEADSHOT_HIRES=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0xBA8805A1108A2515, "i")end - -- Similar to REGISTER_PEDHEADSHOT but creates a transparent background instead of black. Example: https://i.imgur.com/iHz8ztn.png - REGISTER_PEDHEADSHOT_TRANSPARENT=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x953563CE563143AF, "i")end - -- gtaforums.com/topic/885580-ped-headshotmugshot-txd/ - UNREGISTER_PEDHEADSHOT=--[[void]] function(--[[int]] id)return native_invoker.unified_void(id, 0x96B1361D9B24C2FF, "i")end - -- gtaforums.com/topic/885580-ped-headshotmugshot-txd/ - IS_PEDHEADSHOT_VALID=--[[BOOL (bool)]] function(--[[int]] id)return native_invoker.unified_bool(id, 0xA0A9668F158129A2, "i")end - -- gtaforums.com/topic/885580-ped-headshotmugshot-txd/ - IS_PEDHEADSHOT_READY=--[[BOOL (bool)]] function(--[[int]] id)return native_invoker.unified_bool(id, 0x7085228842B13A67, "i")end - -- gtaforums.com/topic/885580-ped-headshotmugshot-txd/ - GET_PEDHEADSHOT_TXD_STRING=--[[string]] function(--[[int]] id)return native_invoker.unified_string(id, 0xDB4EACD4AD0A5D6B, "i")end - REQUEST_PEDHEADSHOT_IMG_UPLOAD=--[[BOOL (bool)]] function(--[[int]] id)return native_invoker.unified_bool(id, 0xF0DAEF2F545BEE25, "i")end - RELEASE_PEDHEADSHOT_IMG_UPLOAD=--[[void]] function(--[[int]] id)return native_invoker.unified_void(id, 0x5D517B27CF6ECD04, "i")end - IS_PEDHEADSHOT_IMG_UPLOAD_AVAILABLE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xEBB376779A760AA8, "")end - HAS_PEDHEADSHOT_IMG_UPLOAD_FAILED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x876928DDDFCCC9CD, "")end - HAS_PEDHEADSHOT_IMG_UPLOAD_SUCCEEDED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xE8A169E666CBC541, "")end - SET_PED_HEATSCALE_OVERRIDE=--[[void]] function(--[[Ped (int)]] ped,--[[float]] heatScale)return native_invoker.unified_void(ped, heatScale, 0xC1F6EBF9A3D55538, "if")end - DISABLE_PED_HEATSCALE_OVERRIDE=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x600048C60D5C2C51, "i")end - SPAWNPOINTS_START_SEARCH=--[[void]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[int]] interiorFlags,--[[float]] scale,--[[int]] duration)return native_invoker.unified_void(p0, p1, p2, p3, p4, interiorFlags, scale, duration, 0x2DF9038C90AD5264, "fffffifi")end - SPAWNPOINTS_START_SEARCH_IN_ANGLED_AREA=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] width,--[[int]] interiorFlags,--[[float]] scale,--[[int]] duration)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, width, interiorFlags, scale, duration, 0xB2AFF10216DEFA2F, "fffffffifi")end - SPAWNPOINTS_CANCEL_SEARCH=--[[void]] function()return native_invoker.unified_void(0xFEE4A5459472A9F8, "")end - SPAWNPOINTS_IS_SEARCH_ACTIVE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x3C67506996001F5E, "")end - SPAWNPOINTS_IS_SEARCH_COMPLETE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xA586FBEB32A53DBB, "")end - SPAWNPOINTS_IS_SEARCH_FAILED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xF445DE8DA80A1792, "")end - SPAWNPOINTS_GET_NUM_SEARCH_RESULTS=--[[int]] function()return native_invoker.unified_int(0xA635C11B8C44AFC2, "")end - SPAWNPOINTS_GET_SEARCH_RESULT=--[[void]] function(--[[int]] randomInt,--[[float* (pointer)]] x,--[[float* (pointer)]] y,--[[float* (pointer)]] z)return native_invoker.unified_void(randomInt, x, y, z, 0x280C7E3AC7F56E90, "ippp")end - SPAWNPOINTS_GET_SEARCH_RESULT_FLAGS=--[[void]] function(--[[int]] p0,--[[int* (pointer)]] p1)return native_invoker.unified_void(p0, p1, 0xB782F8238512BAD5, "ip")end - SET_IK_TARGET=--[[void]] function(--[[Ped (int)]] ped,--[[int]] ikIndex,--[[Entity (int)]] entityLookAt,--[[int]] boneLookAt,--[[float]] offsetX,--[[float]] offsetY,--[[float]] offsetZ,--[[Any (int)]] p7,--[[int]] blendInDuration,--[[int]] blendOutDuration)return native_invoker.unified_void(ped, ikIndex, entityLookAt, boneLookAt, offsetX, offsetY, offsetZ, p7, blendInDuration, blendOutDuration, 0xC32779C16FCEECD9, "iiiifffiii")end - FORCE_INSTANT_LEG_IK_SETUP=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xED3C76ADFA6D07C4, "i")end - REQUEST_ACTION_MODE_ASSET=--[[void]] function(--[[string]] asset)return native_invoker.unified_void(asset, 0x290E2780BB7AA598, "s")end - HAS_ACTION_MODE_ASSET_LOADED=--[[BOOL (bool)]] function(--[[string]] asset)return native_invoker.unified_bool(asset, 0xE4B5F4BF2CB24E65, "s")end - REMOVE_ACTION_MODE_ASSET=--[[void]] function(--[[string]] asset)return native_invoker.unified_void(asset, 0x13E940F88470FA51, "s")end - REQUEST_STEALTH_MODE_ASSET=--[[void]] function(--[[string]] asset)return native_invoker.unified_void(asset, 0x2A0A62FCDEE16D4F, "s")end - HAS_STEALTH_MODE_ASSET_LOADED=--[[BOOL (bool)]] function(--[[string]] asset)return native_invoker.unified_bool(asset, 0xE977FC5B08AF3441, "s")end - REMOVE_STEALTH_MODE_ASSET=--[[void]] function(--[[string]] asset)return native_invoker.unified_void(asset, 0x9219857D21F0E842, "s")end - SET_PED_LOD_MULTIPLIER=--[[void]] function(--[[Ped (int)]] ped,--[[float]] multiplier)return native_invoker.unified_void(ped, multiplier, 0xDC2C5C242AAC342B, "if")end - SET_PED_CAN_LOSE_PROPS_ON_DAMAGE=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle,--[[int]] p2)return native_invoker.unified_void(ped, toggle, p2, 0xE861D0B05C7662B8, "ibi")end - SET_FORCE_FOOTSTEP_UPDATE=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x129466ED55140F8D, "ib")end - SET_FORCE_STEP_TYPE=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1,--[[int]] type,--[[int]] p3)return native_invoker.unified_void(ped, p1, type, p3, 0xCB968B53FC7F916D, "ibii")end - IS_ANY_HOSTILE_PED_NEAR_POINT=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius)return native_invoker.unified_bool(ped, x, y, z, radius, 0x68772DB2B2526F9F, "iffff")end - -- Toggles config flag CPED_CONFIG_FLAG_CanPlayInCarIdles. - SET_PED_CAN_PLAY_IN_CAR_IDLES=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x820E9892A77E97CD, "ib")end - IS_TARGET_PED_IN_PERCEPTION_AREA=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Ped (int)]] targetPed,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5)return native_invoker.unified_bool(ped, targetPed, p2, p3, p4, p5, 0x06087579E7AA85A9, "iiffff")end - -- Min and max are usually 100.0 and 200.0 - SET_POP_CONTROL_SPHERE_THIS_FRAME=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] min,--[[float]] max)return native_invoker.unified_void(x, y, z, min, max, 0xD8C3BE3EE94CAF2D, "fffff")end - FORCE_ZERO_MASS_IN_COLLISIONS=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xD33DAA36272177C4, "i")end - SET_DISABLE_HIGH_FALL_DEATH=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x711794453CFD692B, "ib")end - SET_PED_PHONE_PALETTE_IDX=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x83A169EABCDB10A2, "ii")end - SET_PED_STEER_BIAS=--[[void]] function(--[[Ped (int)]] ped,--[[float]] value)return native_invoker.unified_void(ped, value, 0x288DF530C92DAD6F, "if")end - IS_PED_SWITCHING_WEAPON=--[[BOOL (bool)]] function(--[[Ped (int)]] Ped)return native_invoker.unified_bool(Ped, 0x3795688A307E1EB6, "i")end - SET_PED_TREATED_AS_FRIENDLY=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x0F62619393661D6E, "iii")end - SET_DISABLE_PED_MAP_COLLISION=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xDFE68C4B787E1BFB, "i")end - ENABLE_MP_LIGHT=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xEE2476B9EE4A094F, "ib")end - GET_MP_LIGHT_ENABLED=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x88274C11CF0D866D, "i")end - CLEAR_COVER_POINT_FOR_PED=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x637822DC2AFEEBF8, "i")end - SET_ALLOW_STUNT_JUMP_CAMERA=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xFAB944D4D481ACCB, "ib")end --- PHYSICS - -- Creates a rope at the specific position, that extends in the specified direction when not attached to any entities. - -- __ - -- - -- Add_Rope(pos.x,pos.y,pos.z,0.0,0.0,0.0,20.0,4,20.0,1.0,0.0,false,false,false,5.0,false,NULL) - -- - -- When attached, Position does not matter - -- When attached, Angle does not matter - -- - -- Rope Type: - -- 4 and bellow is a thick rope - -- 5 and up are small metal wires - -- 0 crashes the game - -- - -- Max_length - Rope is forced to this length, generally best to keep this the same as your rope length. - -- - -- windingSpeed - Speed the Rope is being winded, using native START_ROPE_WINDING. Set positive for winding and negative for unwinding. - -- - -- Rigid - If max length is zero, and this is set to false the rope will become rigid (it will force a specific distance, what ever length is, between the objects). - -- - -- breakable - Whether or not shooting the rope will break it. - -- - -- unkPtr - unknown ptr, always 0 in orig scripts - -- __ - -- - -- Lengths can be calculated like so: - -- - -- float distance = abs(x1 - x2) + abs(y1 - y2) + abs(z1 - z2); // Rope length - -- - -- - -- NOTES: - -- - -- Rope does NOT interact with anything you attach it to, in some cases it make interact with the world AFTER it breaks (seems to occur if you set the type to -1). - -- - -- Rope will sometimes contract and fall to the ground like you'd expect it to, but since it doesn't interact with the world the effect is just jaring. - ADD_ROPE=--[[int]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ,--[[float]] length,--[[int]] ropeType,--[[float]] maxLength,--[[float]] minLength,--[[float]] windingSpeed,--[[BOOL (bool)]] p11,--[[BOOL (bool)]] p12,--[[BOOL (bool)]] rigid,--[[float]] p14,--[[BOOL (bool)]] breakWhenShot,--[[Any* (pointer)]] unkPtr)return native_invoker.unified_int(x, y, z, rotX, rotY, rotZ, length, ropeType, maxLength, minLength, windingSpeed, p11, p12, rigid, p14, breakWhenShot, unkPtr, 0xE832D760399EB220, "fffffffifffbbbfbp")end - DELETE_ROPE=--[[void]] function(--[[int* (pointer)]] ropeId)return native_invoker.unified_void(ropeId, 0x52B4829281364649, "p")end - DELETE_CHILD_ROPE=--[[void]] function(--[[int]] ropeId)return native_invoker.unified_void(ropeId, 0xAA5D6B1888E4DB20, "i")end - DOES_ROPE_EXIST=--[[BOOL (bool)]] function(--[[int* (pointer)]] ropeId)return native_invoker.unified_bool(ropeId, 0xFD5448BE3111ED96, "p")end - ROPE_DRAW_ENABLED=--[[void]] function(--[[int* (pointer)]] ropeId,--[[BOOL (bool)]] p1)return native_invoker.unified_void(ropeId, p1, 0xA1AE736541B0FCA3, "pb")end - ROPE_DRAW_SHADOW_ENABLED=--[[void]] function(--[[int* (pointer)]] ropeId,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ropeId, toggle, 0xF159A63806BB5BA8, "pb")end - -- Rope presets can be found in the gamefiles. One example is "ropeFamily3", it is NOT a hash but rather a string. - LOAD_ROPE_DATA=--[[void]] function(--[[int]] ropeId,--[[string]] rope_preset)return native_invoker.unified_void(ropeId, rope_preset, 0xCBB203C04D1ABD27, "is")end - PIN_ROPE_VERTEX=--[[void]] function(--[[int]] ropeId,--[[int]] vertex,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(ropeId, vertex, x, y, z, 0x2B320CF14146B69A, "iifff")end - UNPIN_ROPE_VERTEX=--[[void]] function(--[[int]] ropeId,--[[int]] vertex)return native_invoker.unified_void(ropeId, vertex, 0x4B5AE2EEE4A8F180, "ii")end - GET_ROPE_VERTEX_COUNT=--[[int]] function(--[[int]] ropeId)return native_invoker.unified_int(ropeId, 0x3655F544CD30F0B5, "i")end - -- Attaches entity 1 to entity 2. - ATTACH_ENTITIES_TO_ROPE=--[[void]] function(--[[int]] ropeId,--[[Entity (int)]] ent1,--[[Entity (int)]] ent2,--[[float]] ent1_x,--[[float]] ent1_y,--[[float]] ent1_z,--[[float]] ent2_x,--[[float]] ent2_y,--[[float]] ent2_z,--[[float]] length,--[[BOOL (bool)]] p10,--[[BOOL (bool)]] p11,--[[Any* (pointer)]] p12,--[[Any* (pointer)]] p13)return native_invoker.unified_void(ropeId, ent1, ent2, ent1_x, ent1_y, ent1_z, ent2_x, ent2_y, ent2_z, length, p10, p11, p12, p13, 0x3D95EC8B6D940AC3, "iiifffffffbbpp")end - -- The position supplied can be anywhere, and the entity should anchor relative to that point from it's origin. - ATTACH_ROPE_TO_ENTITY=--[[void]] function(--[[int]] ropeId,--[[Entity (int)]] entity,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] p5)return native_invoker.unified_void(ropeId, entity, x, y, z, p5, 0x4B490A6832559A65, "iifffb")end - DETACH_ROPE_FROM_ENTITY=--[[void]] function(--[[int]] ropeId,--[[Entity (int)]] entity)return native_invoker.unified_void(ropeId, entity, 0xBCF3026912A8647D, "ii")end - ROPE_SET_UPDATE_PINVERTS=--[[void]] function(--[[int]] ropeId)return native_invoker.unified_void(ropeId, 0xC8D667EE52114ABA, "i")end - ROPE_SET_UPDATE_ORDER=--[[void]] function(--[[int]] ropeId,--[[Any (int)]] p1)return native_invoker.unified_void(ropeId, p1, 0xDC57A637A20006ED, "ii")end - ROPE_SET_SMOOTH_REELIN=--[[void]] function(--[[int]] ropeId,--[[BOOL (bool)]] p1)return native_invoker.unified_void(ropeId, p1, 0x36CCB9BE67B970FD, "ib")end - IS_ROPE_ATTACHED_AT_BOTH_ENDS=--[[BOOL (bool)]] function(--[[int* (pointer)]] ropeId)return native_invoker.unified_bool(ropeId, 0x84DE3B5FB3E666F0, "p")end - GET_ROPE_LAST_VERTEX_COORD=--[[Vector3 (vector3)]] function(--[[int]] ropeId)return native_invoker.unified_vector3(ropeId, 0x21BB0FBD3E217C2D, "i")end - GET_ROPE_VERTEX_COORD=--[[Vector3 (vector3)]] function(--[[int]] ropeId,--[[int]] vertex)return native_invoker.unified_vector3(ropeId, vertex, 0xEA61CA8E80F09E4D, "ii")end - START_ROPE_WINDING=--[[void]] function(--[[int]] ropeId)return native_invoker.unified_void(ropeId, 0x1461C72C889E343E, "i")end - STOP_ROPE_WINDING=--[[void]] function(--[[int]] ropeId)return native_invoker.unified_void(ropeId, 0xCB2D4AB84A19AA7C, "i")end - START_ROPE_UNWINDING_FRONT=--[[void]] function(--[[int]] ropeId)return native_invoker.unified_void(ropeId, 0x538D1179EC1AA9A9, "i")end - STOP_ROPE_UNWINDING_FRONT=--[[void]] function(--[[int]] ropeId)return native_invoker.unified_void(ropeId, 0xFFF3A50779EFBBB3, "i")end - ROPE_CONVERT_TO_SIMPLE=--[[void]] function(--[[int]] ropeId)return native_invoker.unified_void(ropeId, 0x5389D48EFA2F079A, "i")end - -- Loads rope textures for all ropes in the current scene. - ROPE_LOAD_TEXTURES=--[[void]] function()return native_invoker.unified_void(0x9B9039DBF2D258C1, "")end - ROPE_ARE_TEXTURES_LOADED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xF2D0E6A75CC05597, "")end - -- Unloads rope textures for all ropes in the current scene. - ROPE_UNLOAD_TEXTURES=--[[void]] function()return native_invoker.unified_void(0x6CE36C35C1AC8163, "")end - DOES_SCRIPT_OWN_ROPE=--[[BOOL (bool)]] function(--[[int]] ropeId)return native_invoker.unified_bool(ropeId, 0x271C9D3ACA5D6409, "i")end - ROPE_ATTACH_VIRTUAL_BOUND_GEOM=--[[void]] function(--[[int]] ropeId,--[[int]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[float]] p6,--[[float]] p7,--[[float]] p8,--[[float]] p9,--[[float]] p10,--[[float]] p11,--[[float]] p12,--[[float]] p13)return native_invoker.unified_void(ropeId, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, 0xBC0CE682D4D05650, "iiffffffffffff")end - ROPE_CHANGE_SCRIPT_OWNER=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xB1B6216CA2E7B55E, "ibb")end - ROPE_SET_REFFRAMEVELOCITY_COLLIDERORDER=--[[void]] function(--[[int]] ropeId,--[[int]] p1)return native_invoker.unified_void(ropeId, p1, 0xB743F735C03D7810, "ii")end - ROPE_GET_DISTANCE_BETWEEN_ENDS=--[[float]] function(--[[int]] ropeId)return native_invoker.unified_float(ropeId, 0x73040398DFF9A4A6, "i")end - -- Forces a rope to a certain length. - ROPE_FORCE_LENGTH=--[[void]] function(--[[int]] ropeId,--[[float]] length)return native_invoker.unified_void(ropeId, length, 0xD009F759A723DB1B, "if")end - -- Reset a rope to a certain length. - ROPE_RESET_LENGTH=--[[void]] function(--[[int]] ropeId,--[[float]] length)return native_invoker.unified_void(ropeId, length, 0xC16DE94D9BEA14A0, "if")end - APPLY_IMPULSE_TO_CLOTH=--[[void]] function(--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[float]] vecX,--[[float]] vecY,--[[float]] vecZ,--[[float]] impulse)return native_invoker.unified_void(posX, posY, posZ, vecX, vecY, vecZ, impulse, 0xE37F721824571784, "fffffff")end - SET_DAMPING=--[[void]] function(--[[Entity (int)]] entity,--[[int]] vertex,--[[float]] value)return native_invoker.unified_void(entity, vertex, value, 0xEEA3B200A6FEB65B, "iif")end - ACTIVATE_PHYSICS=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0x710311ADF0E20730, "i")end - SET_CGOFFSET=--[[void]] function(--[[Entity (int)]] entity,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(entity, x, y, z, 0xD8FA3908D7B86904, "ifff")end - GET_CGOFFSET=--[[Vector3 (vector3)]] function(--[[Entity (int)]] entity)return native_invoker.unified_vector3(entity, 0x8214A4B5A7A33612, "i")end - SET_CG_AT_BOUNDCENTER=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0xBE520D9761FF811F, "i")end - BREAK_ENTITY_GLASS=--[[void]] function(--[[Entity (int)]] entity,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[float]] p6,--[[float]] p7,--[[float]] p8,--[[Any (int)]] p9,--[[BOOL (bool)]] p10)return native_invoker.unified_void(entity, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, 0x2E648D16F6E308F3, "iffffffffib")end - GET_IS_ENTITY_A_FRAG=--[[BOOL (bool)]] function(--[[Object (int)]] object)return native_invoker.unified_bool(object, 0x0C112765300C7E1E, "i")end - SET_DISABLE_BREAKING=--[[void]] function(--[[Object (int)]] object,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(object, toggle, 0x5CEC1A84620E7D5B, "ib")end - RESET_DISABLE_BREAKING=--[[void]] function(--[[Object (int)]] object)return native_invoker.unified_void(object, 0xCC6E963682533882, "i")end - SET_DISABLE_FRAG_DAMAGE=--[[void]] function(--[[Object (int)]] object,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(object, toggle, 0x01BA3AED21C16CFB, "ib")end - -- PED_RAGDOLL_BUMP Proof? - SET_USE_KINEMATIC_PHYSICS=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0x15F944730C832252, "ib")end - SET_IN_STUNT_MODE=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x9EBD751E5787BAF2, "b")end - -- Related to the lower-end of a vehicles fTractionCurve, e.g., from standing starts and acceleration from low/zero speeds. - SET_IN_ARENA_MODE=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xAA6A6098851C396F, "b")end --- PLAYER - -- Gets the ped for a specified player index. - GET_PLAYER_PED=--[[Ped (int)]] function(--[[Player (int)]] player)return native_invoker.unified_int(player, 0x43A66C31C68491C0, "i")end - -- Does the same like PLAYER::GET_PLAYER_PED - GET_PLAYER_PED_SCRIPT_INDEX=--[[Ped (int)]] function(--[[Player (int)]] player)return native_invoker.unified_int(player, 0x50FAC3A3E030A6E1, "i")end - -- Set the model for a specific Player. Be aware that this will destroy the current Ped for the Player and create a new one, any reference to the old ped should be reset - -- Make sure to request the model first and wait until it has loaded. - SET_PLAYER_MODEL=--[[void]] function(--[[Player (int)]] player,--[[Hash (int)]] model)return native_invoker.unified_void(player, model, 0x00A1CADD00108836, "ii")end - CHANGE_PLAYER_PED=--[[void]] function(--[[Player (int)]] player,--[[Ped (int)]] ped,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] resetDamage)return native_invoker.unified_void(player, ped, p2, resetDamage, 0x048189FAC643DEEE, "iibb")end - GET_PLAYER_RGB_COLOUR=--[[void]] function(--[[Player (int)]] player,--[[int* (pointer)]] r,--[[int* (pointer)]] g,--[[int* (pointer)]] b)return native_invoker.unified_void(player, r, g, b, 0xE902EF951DCE178F, "ippp")end - -- Gets the number of players in the current session. - -- If not multiplayer, always returns 1. - GET_NUMBER_OF_PLAYERS=--[[int]] function()return native_invoker.unified_int(0x407C7F91DDB46C16, "")end - -- Gets the player's team. - -- Does nothing in singleplayer. - GET_PLAYER_TEAM=--[[int]] function(--[[Player (int)]] player)return native_invoker.unified_int(player, 0x37039302F4E0A008, "i")end - -- Set player team on deathmatch and last team standing.. - SET_PLAYER_TEAM=--[[void]] function(--[[Player (int)]] player,--[[int]] team)return native_invoker.unified_void(player, team, 0x0299FA38396A4940, "ii")end - GET_NUMBER_OF_PLAYERS_IN_TEAM=--[[int]] function(--[[int]] team)return native_invoker.unified_int(team, 0x1FC200409F10E6F1, "i")end - GET_PLAYER_NAME=--[[string]] function(--[[Player (int)]] player)return native_invoker.unified_string(player, 0x6D0DE6A7B5DA71F8, "i")end - -- Remnant from GTA IV. Does nothing in GTA V. - GET_WANTED_LEVEL_RADIUS=--[[float]] function(--[[Player (int)]] player)return native_invoker.unified_float(player, 0x085DEB493BE80812, "i")end - GET_PLAYER_WANTED_CENTRE_POSITION=--[[Vector3 (vector3)]] function(--[[Player (int)]] player)return native_invoker.unified_vector3(player, 0x0C92BA89F1AF26F8, "i")end - -- # Predominant call signatures - -- PLAYER::SET_PLAYER_WANTED_CENTRE_POSITION(PLAYER::PLAYER_ID(), ENTITY::GET_ENTITY_COORDS(PLAYER::PLAYER_PED_ID(), 1)); - -- - -- # Parameter value ranges - -- P0: PLAYER::PLAYER_ID() - -- P1: ENTITY::GET_ENTITY_COORDS(PLAYER::PLAYER_PED_ID(), 1) - -- P2: Not set by any call - SET_PLAYER_WANTED_CENTRE_POSITION=--[[void]] function(--[[Player (int)]] player,--[[Vector3* (pointer)]] position,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(player, position, p2, p3, 0x520E541A97A13354, "ipbb")end - -- Drft - GET_WANTED_LEVEL_THRESHOLD=--[[int]] function(--[[int]] wantedLevel)return native_invoker.unified_int(wantedLevel, 0xFDD179EAF45B556C, "i")end - -- Call SET_PLAYER_WANTED_LEVEL_NOW for immediate effect - -- - -- wantedLevel is an integer value representing 0 to 5 stars even though the game supports the 6th wanted level but no police will appear since no definitions are present for it in the game files - -- - -- disableNoMission- Disables When Off Mission- appears to always be false - -- - SET_PLAYER_WANTED_LEVEL=--[[void]] function(--[[Player (int)]] player,--[[int]] wantedLevel,--[[BOOL (bool)]] disableNoMission)return native_invoker.unified_void(player, wantedLevel, disableNoMission, 0x39FF19C64EF7DA5B, "iib")end - -- p2 is always false in R* scripts - SET_PLAYER_WANTED_LEVEL_NO_DROP=--[[void]] function(--[[Player (int)]] player,--[[int]] wantedLevel,--[[BOOL (bool)]] p2)return native_invoker.unified_void(player, wantedLevel, p2, 0x340E61DE7F471565, "iib")end - -- Forces any pending wanted level to be applied to the specified player immediately. - -- - -- Call SET_PLAYER_WANTED_LEVEL with the desired wanted level, followed by SET_PLAYER_WANTED_LEVEL_NOW. - -- - -- Second parameter is unknown (always false). - SET_PLAYER_WANTED_LEVEL_NOW=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] p1)return native_invoker.unified_void(player, p1, 0xE0A7D1E497FFCD6F, "ib")end - ARE_PLAYER_FLASHING_STARS_ABOUT_TO_DROP=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0xAFAF86043E5874E9, "i")end - ARE_PLAYER_STARS_GREYED_OUT=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x0A6EB355EE14A2DB, "i")end - IS_WANTED_AND_HAS_BEEN_SEEN_BY_COPS=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x7E07C78925D5FD96, "i")end - SET_DISPATCH_COPS_FOR_PLAYER=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0xDB172424876553F4, "ib")end - IS_PLAYER_WANTED_LEVEL_GREATER=--[[BOOL (bool)]] function(--[[Player (int)]] player,--[[int]] wantedLevel)return native_invoker.unified_bool(player, wantedLevel, 0x238DB2A2C23EE9EF, "ii")end - -- This executes at the same as speed as PLAYER::SET_PLAYER_WANTED_LEVEL(player, 0, false); - -- - -- PLAYER::GET_PLAYER_WANTED_LEVEL(player); executes in less than half the time. Which means that it's worth first checking if the wanted level needs to be cleared before clearing. However, this is mostly about good code practice and can important in other situations. The difference in time in this example is negligible. - CLEAR_PLAYER_WANTED_LEVEL=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0xB302540597885499, "i")end - IS_PLAYER_DEAD=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x424D4687FA1E5652, "i")end - IS_PLAYER_PRESSING_HORN=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0xFA1E2BF8B10598F9, "i")end - -- Flags: - -- SPC_AMBIENT_SCRIPT = (1 << 1), - -- SPC_CLEAR_TASKS = (1 << 2), - -- SPC_REMOVE_FIRES = (1 << 3), - -- SPC_REMOVE_EXPLOSIONS = (1 << 4), - -- SPC_REMOVE_PROJECTILES = (1 << 5), - -- SPC_DEACTIVATE_GADGETS = (1 << 6), - -- SPC_REENABLE_CONTROL_ON_DEATH = (1 << 7), - -- SPC_LEAVE_CAMERA_CONTROL_ON = (1 << 8), - -- SPC_ALLOW_PLAYER_DAMAGE = (1 << 9), - -- SPC_DONT_STOP_OTHER_CARS_AROUND_PLAYER = (1 << 10), - -- SPC_PREVENT_EVERYBODY_BACKOFF = (1 << 11), - -- SPC_ALLOW_PAD_SHAKE = (1 << 12) - -- - -- See: https://alloc8or.re/gta5/doc/enums/eSetPlayerControlFlag.txt - SET_PLAYER_CONTROL=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] bHasControl,--[[int]] flags)return native_invoker.unified_void(player, bHasControl, flags, 0x8D32347D6D4C40A2, "ibi")end - GET_PLAYER_WANTED_LEVEL=--[[int]] function(--[[Player (int)]] player)return native_invoker.unified_int(player, 0xE28E54788CE8F12D, "i")end - SET_MAX_WANTED_LEVEL=--[[void]] function(--[[int]] maxWantedLevel)return native_invoker.unified_void(maxWantedLevel, 0xAA5F02DB48D704B9, "i")end - -- If toggle is set to false: - -- The police won't be shown on the (mini)map - -- - -- If toggle is set to true: - -- The police will be shown on the (mini)map - SET_POLICE_RADAR_BLIPS=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x43286D561B72B8BF, "b")end - -- The player will be ignored by the police if toggle is set to true - SET_POLICE_IGNORE_PLAYER=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0x32C62AA929C2DA6A, "ib")end - -- Checks whether the specified player has a Ped, the Ped is not dead, is not injured and is not arrested. - IS_PLAYER_PLAYING=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x5E9564D8246B909A, "i")end - SET_EVERYONE_IGNORE_PLAYER=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0x8EEDA153AD141BA4, "ib")end - SET_ALL_RANDOM_PEDS_FLEE=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0x056E0FE8534C2949, "ib")end - SET_ALL_RANDOM_PEDS_FLEE_THIS_FRAME=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0x471D2FF42A94B4F2, "i")end - SET_ALL_NEUTRAL_RANDOM_PEDS_FLEE=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0xDE45D1A1EF45EE61, "ib")end - -- - This is called after SET_ALL_RANDOM_PEDS_FLEE_THIS_FRAME - -- - SET_ALL_NEUTRAL_RANDOM_PEDS_FLEE_THIS_FRAME=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0xC3376F42B1FACCC6, "i")end - SET_LAW_PEDS_CAN_ATTACK_NON_WANTED_PLAYER_THIS_FRAME=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0xFAC75988A7D078D3, "i")end - SET_IGNORE_LOW_PRIORITY_SHOCKING_EVENTS=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0x596976B02B6B5700, "ib")end - SET_WANTED_LEVEL_MULTIPLIER=--[[void]] function(--[[float]] multiplier)return native_invoker.unified_void(multiplier, 0x020E5F00CDA207BA, "f")end - -- Max value is 1.0 - SET_WANTED_LEVEL_DIFFICULTY=--[[void]] function(--[[Player (int)]] player,--[[float]] difficulty)return native_invoker.unified_void(player, difficulty, 0x9B0BB33B04405E7A, "if")end - RESET_WANTED_LEVEL_DIFFICULTY=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0xB9D0DD990DC141DD, "i")end - GET_WANTED_LEVEL_TIME_TO_ESCAPE=--[[int]] function()return native_invoker.unified_int(0xA72200F51875FEA4, "")end - SET_WANTED_LEVEL_HIDDEN_ESCAPE_TIME=--[[void]] function(--[[Player (int)]] player,--[[int]] wantedLevel,--[[int]] lossTime)return native_invoker.unified_void(player, wantedLevel, lossTime, 0x49B856B1360C47C7, "iii")end - RESET_WANTED_LEVEL_HIDDEN_ESCAPE_TIME=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0x823EC8E82BA45986, "i")end - START_FIRING_AMNESTY=--[[void]] function(--[[int]] duration)return native_invoker.unified_void(duration, 0xBF9BD71691857E48, "i")end - -- PLAYER::REPORT_CRIME(PLAYER::PLAYER_ID(), 37, PLAYER::GET_WANTED_LEVEL_THRESHOLD(1)); - -- - -- From am_armybase.ysc.c4: - -- - -- PLAYER::REPORT_CRIME(PLAYER::PLAYER_ID(4), 36, PLAYER::GET_WANTED_LEVEL_THRESHOLD(4)); - -- - -- ----- - -- - -- This was taken from the GTAV.exe v1.334. The function is called sub_140592CE8. For a full decompilation of the function, see here: https://pastebin.com/09qSMsN7 - -- - -- ----- - -- crimeType: - -- 1: Firearms possession - -- 2: Person running a red light ("5-0-5") - -- 3: Reckless driver - -- 4: Speeding vehicle (a "5-10") - -- 5: Traffic violation (a "5-0-5") - -- 6: Motorcycle rider without a helmet - -- 7: Vehicle theft (a "5-0-3") - -- 8: Grand Theft Auto - -- 9: ??? - -- 10: ??? - -- 11: Assault on a civilian (a "2-40") - -- 12: Assault on an officer - -- 13: Assault with a deadly weapon (a "2-45") - -- 14: Officer shot (a "2-45") - -- 15: Pedestrian struck by a vehicle - -- 16: Officer struck by a vehicle - -- 17: Helicopter down (an "AC"?) - -- 18: Civilian on fire (a "2-40") - -- 19: Officer set on fire (a "10-99") - -- 20: Car on fire - -- 21: Air unit down (an "AC"?) - -- 22: An explosion (a "9-96") - -- 23: A stabbing (a "2-45") (also something else I couldn't understand) - -- 24: Officer stabbed (also something else I couldn't understand) - -- 25: Attack on a vehicle ("MDV"?) - -- 26: Damage to property - -- 27: Suspect threatening officer with a firearm - -- 28: Shots fired - -- 29: ??? - -- 30: ??? - -- 31: ??? - -- 32: ??? - -- 33: ??? - -- 34: A "2-45" - -- 35: ??? - -- 36: A "9-25" - -- 37: ??? - -- 38: ??? - -- 39: ??? - -- 40: ??? - -- 41: ??? - -- 42: ??? - -- 43: Possible disturbance - -- 44: Civilian in need of assistance - -- 45: ??? - -- 46: ??? - REPORT_CRIME=--[[void]] function(--[[Player (int)]] player,--[[int]] crimeType,--[[int]] wantedLvlThresh)return native_invoker.unified_void(player, crimeType, wantedLvlThresh, 0xE9B09589827545E7, "iii")end - -- crimeType: see REPORT_CRIME - SUPPRESS_CRIME_THIS_FRAME=--[[void]] function(--[[Player (int)]] player,--[[int]] crimeType)return native_invoker.unified_void(player, crimeType, 0x9A987297ED8BD838, "ii")end - -- This native is used in both singleplayer and multiplayer scripts. - -- - -- Always used like this in scripts - -- PLAYER::UPDATE_WANTED_POSITION_THIS_FRAME(PLAYER::PLAYER_ID()); - UPDATE_WANTED_POSITION_THIS_FRAME=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0xBC9490CA15AEA8FB, "i")end - -- This has been found in use in the decompiled files. - SUPPRESS_LOSING_WANTED_LEVEL_IF_HIDDEN_THIS_FRAME=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0x4669B3ED80F24B4E, "i")end - ALLOW_EVASION_HUD_IF_DISABLING_HIDDEN_EVASION_THIS_FRAME=--[[void]] function(--[[Player (int)]] player,--[[Any (int)]] p1)return native_invoker.unified_void(player, p1, 0x2F41A3BAE005E5FA, "ii")end - -- This has been found in use in the decompiled files. - FORCE_START_HIDDEN_EVASION=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0xAD73CE5A09E42D12, "i")end - SUPPRESS_WITNESSES_CALLING_POLICE_THIS_FRAME=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0x36F1B38855F2A8DF, "i")end - REPORT_POLICE_SPOTTED_PLAYER=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0xDC64D2C53493ED12, "i")end - -- PLAYER::SET_LAW_RESPONSE_DELAY_OVERRIDE(rPtr((&l_122) + 71)); // Found in decompilation - -- - -- *** - -- - -- In "am_hold_up.ysc" used once: - -- - -- l_8d._f47 = MISC::GET_RANDOM_FLOAT_IN_RANGE(18.0, 28.0); - -- PLAYER::SET_LAW_RESPONSE_DELAY_OVERRIDE((l_8d._f47)); - SET_LAW_RESPONSE_DELAY_OVERRIDE=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0xB45EFF719D8427A6, "f")end - -- 2 matches in 1 script - am_hold_up - -- - -- Used in multiplayer scripts? - RESET_LAW_RESPONSE_DELAY_OVERRIDE=--[[void]] function()return native_invoker.unified_void(0x0032A6DBA562C518, "")end - CAN_PLAYER_START_MISSION=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0xDE7465A27D403C06, "i")end - IS_PLAYER_READY_FOR_CUTSCENE=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x908CBECC2CAA3690, "i")end - IS_PLAYER_TARGETTING_ENTITY=--[[BOOL (bool)]] function(--[[Player (int)]] player,--[[Entity (int)]] entity)return native_invoker.unified_bool(player, entity, 0x7912F7FC4F6264B6, "ii")end - -- Assigns the handle of locked-on melee target to *entity that you pass it. - -- Returns false if no entity found. - GET_PLAYER_TARGET_ENTITY=--[[BOOL (bool)]] function(--[[Player (int)]] player,--[[Entity* (pointer)]] entity)return native_invoker.unified_bool(player, entity, 0x13EDE1A5DBF797C9, "ip")end - -- Gets a value indicating whether the specified player is currently aiming freely. - IS_PLAYER_FREE_AIMING=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x2E397FD2ECD37C87, "i")end - -- Gets a value indicating whether the specified player is currently aiming freely at the specified entity. - IS_PLAYER_FREE_AIMING_AT_ENTITY=--[[BOOL (bool)]] function(--[[Player (int)]] player,--[[Entity (int)]] entity)return native_invoker.unified_bool(player, entity, 0x3C06B5C839B38F7B, "ii")end - -- Returns TRUE if it found an entity in your crosshair within range of your weapon. Assigns the handle of the target to the *entity that you pass it. - -- Returns false if no entity found. - GET_ENTITY_PLAYER_IS_FREE_AIMING_AT=--[[BOOL (bool)]] function(--[[Player (int)]] player,--[[Entity* (pointer)]] entity)return native_invoker.unified_bool(player, entity, 0x2975C866E6713290, "ip")end - -- Affects the range of auto aim target. - SET_PLAYER_LOCKON_RANGE_OVERRIDE=--[[void]] function(--[[Player (int)]] player,--[[float]] range)return native_invoker.unified_void(player, range, 0x29961D490E5814FD, "if")end - -- Set whether this player should be able to do drive-bys. - -- - -- "A drive-by is when a ped is aiming/shooting from vehicle. This includes middle finger taunts. By setting this value to false I confirm the player is unable to do all that. Tested on tick." - -- - SET_PLAYER_CAN_DO_DRIVE_BY=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0x6E8834B52EC20C77, "ib")end - -- Sets whether this player can be hassled by gangs. - SET_PLAYER_CAN_BE_HASSLED_BY_GANGS=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0xD5E460AD7020A246, "ib")end - -- Sets whether this player can take cover. - SET_PLAYER_CAN_USE_COVER=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0xD465A8599DFF6814, "ib")end - -- Gets the maximum wanted level the player can get. - -- Ranges from 0 to 5. - GET_MAX_WANTED_LEVEL=--[[int]] function()return native_invoker.unified_int(0x462E0DB9B137DC5F, "")end - IS_PLAYER_TARGETTING_ANYTHING=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x78CFE51896B6B8A4, "i")end - SET_PLAYER_SPRINT=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0xA01B8075D8B92DF4, "ib")end - RESET_PLAYER_STAMINA=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0xA6F312FCCE9C1DFE, "i")end - RESTORE_PLAYER_STAMINA=--[[void]] function(--[[Player (int)]] player,--[[float]] p1)return native_invoker.unified_void(player, p1, 0xA352C1B864CAFD33, "if")end - GET_PLAYER_SPRINT_STAMINA_REMAINING=--[[float]] function(--[[Player (int)]] player)return native_invoker.unified_float(player, 0x3F9F16F8E65A7ED7, "i")end - GET_PLAYER_SPRINT_TIME_REMAINING=--[[float]] function(--[[Player (int)]] player)return native_invoker.unified_float(player, 0x1885BC9B108B4C99, "i")end - GET_PLAYER_UNDERWATER_TIME_REMAINING=--[[float]] function(--[[Player (int)]] player)return native_invoker.unified_float(player, 0xA1FCF8E6AF40B731, "i")end - SET_PLAYER_UNDERWATER_BREATH_PERCENT_REMAINING=--[[float]] function(--[[Player (int)]] player,--[[float]] time)return native_invoker.unified_float(player, time, 0xA0D3E4F7AAFB7E78, "if")end - -- Returns the group ID the player is member of. - GET_PLAYER_GROUP=--[[int]] function(--[[Player (int)]] player)return native_invoker.unified_int(player, 0x0D127585F77030AF, "i")end - GET_PLAYER_MAX_ARMOUR=--[[int]] function(--[[Player (int)]] player)return native_invoker.unified_int(player, 0x92659B4CE1863CB3, "i")end - -- Can the player control himself, used to disable controls for player for things like a cutscene. - -- - -- --- - -- - -- You can't disable controls with this, use SET_PLAYER_CONTROL(...) for this. - IS_PLAYER_CONTROL_ON=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x49C32D60007AFA47, "i")end - -- Returns true when the player is not able to control the cam i.e. when running a benchmark test, switching the player or viewing a cutscene. - -- - -- Note: I am not 100% sure if the native actually checks if the cam control is disabled but it seems promising. - GET_ARE_CAMERA_CONTROLS_DISABLED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x7C814D2FB49F40C0, "")end - IS_PLAYER_SCRIPT_CONTROL_ON=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x8A876A65283DD7D7, "i")end - -- Returns TRUE if the player ('s ped) is climbing at the moment. - IS_PLAYER_CLIMBING=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x95E8F73DC65EFB9C, "i")end - -- Return true while player is being arrested / busted. - -- - -- If atArresting is set to 1, this function will return 1 when player is being arrested (while player is putting his hand up, but still have control) - -- - -- If atArresting is set to 0, this function will return 1 only when the busted screen is shown. - IS_PLAYER_BEING_ARRESTED=--[[BOOL (bool)]] function(--[[Player (int)]] player,--[[BOOL (bool)]] atArresting)return native_invoker.unified_bool(player, atArresting, 0x388A47C51ABDAC8E, "ib")end - RESET_PLAYER_ARREST_STATE=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0x2D03E13C460760D6, "i")end - -- Alternative: GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID(), 1); - GET_PLAYERS_LAST_VEHICLE=--[[Vehicle (int)]] function()return native_invoker.unified_int(0xB6997A7EB3F5C8C0, "")end - -- Returns the same as PLAYER_ID and NETWORK_PLAYER_ID_TO_INT - GET_PLAYER_INDEX=--[[Player (int)]] function()return native_invoker.unified_int(0xA5EDC40EF369B48D, "")end - -- Simply returns whatever is passed to it (Regardless of whether the handle is valid or not). - INT_TO_PLAYERINDEX=--[[Player (int)]] function(--[[int]] value)return native_invoker.unified_int(value, 0x41BD2A6B006AF756, "i")end - -- Simply returns whatever is passed to it (Regardless of whether the handle is valid or not). - -- -------------------------------------------------------- - -- if (NETWORK::NETWORK_IS_PARTICIPANT_ACTIVE(PLAYER::INT_TO_PARTICIPANTINDEX(i))) - -- - INT_TO_PARTICIPANTINDEX=--[[int]] function(--[[int]] value)return native_invoker.unified_int(value, 0x9EC6603812C24710, "i")end - GET_TIME_SINCE_PLAYER_HIT_VEHICLE=--[[int]] function(--[[Player (int)]] player)return native_invoker.unified_int(player, 0x5D35ECF3A81A0EE0, "i")end - GET_TIME_SINCE_PLAYER_HIT_PED=--[[int]] function(--[[Player (int)]] player)return native_invoker.unified_int(player, 0xE36A25322DC35F42, "i")end - GET_TIME_SINCE_PLAYER_DROVE_ON_PAVEMENT=--[[int]] function(--[[Player (int)]] player)return native_invoker.unified_int(player, 0xD559D2BE9E37853B, "i")end - GET_TIME_SINCE_PLAYER_DROVE_AGAINST_TRAFFIC=--[[int]] function(--[[Player (int)]] player)return native_invoker.unified_int(player, 0xDB89591E290D9182, "i")end - IS_PLAYER_FREE_FOR_AMBIENT_TASK=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0xDCCFD3F106C36AB4, "i")end - -- This returns YOUR 'identity' as a Player type. - -- - -- Always returns 0 in story mode. - PLAYER_ID=--[[Player (int)]] function()return native_invoker.unified_int(0x4F8644AF03D0E0D6, "")end - -- Returns current player ped - PLAYER_PED_ID=--[[Ped (int)]] function()return native_invoker.unified_int(0xD80958FC74E988A6, "")end - -- Does exactly the same thing as PLAYER_ID() - NETWORK_PLAYER_ID_TO_INT=--[[int]] function()return native_invoker.unified_int(0xEE68096F9F37341E, "")end - HAS_FORCE_CLEANUP_OCCURRED=--[[BOOL (bool)]] function(--[[int]] cleanupFlags)return native_invoker.unified_bool(cleanupFlags, 0xC968670BFACE42D9, "i")end - -- used with 1,2,8,64,128 in the scripts - FORCE_CLEANUP=--[[void]] function(--[[int]] cleanupFlags)return native_invoker.unified_void(cleanupFlags, 0xBC8983F38F78ED51, "i")end - -- PLAYER::FORCE_CLEANUP_FOR_ALL_THREADS_WITH_THIS_NAME("pb_prostitute", 1); // Found in decompilation - FORCE_CLEANUP_FOR_ALL_THREADS_WITH_THIS_NAME=--[[void]] function(--[[string]] name,--[[int]] cleanupFlags)return native_invoker.unified_void(name, cleanupFlags, 0x4C68DDDDF0097317, "si")end - FORCE_CLEANUP_FOR_THREAD_WITH_THIS_ID=--[[void]] function(--[[int]] id,--[[int]] cleanupFlags)return native_invoker.unified_void(id, cleanupFlags, 0xF745B37630DF176B, "ii")end - GET_CAUSE_OF_MOST_RECENT_FORCE_CLEANUP=--[[int]] function()return native_invoker.unified_int(0x9A41CF4674A12272, "")end - SET_PLAYER_MAY_ONLY_ENTER_THIS_VEHICLE=--[[void]] function(--[[Player (int)]] player,--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(player, vehicle, 0x8026FF78F208978A, "ii")end - SET_PLAYER_MAY_NOT_ENTER_ANY_VEHICLE=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0x1DE37BBF9E9CC14A, "i")end - -- 1 - Welcome to Los Santos - -- 2 - A Friendship Resurrected - -- 3 - A Fair Day's Pay - -- 4 - The Moment of Truth - -- 5 - To Live or Die in Los Santos - -- 6 - Diamond Hard - -- 7 - Subversive - -- 8 - Blitzed - -- 9 - Small Town, Big Job - -- 10 - The Government Gimps - -- 11 - The Big One! - -- 12 - Solid Gold, Baby! - -- 13 - Career Criminal - -- 14 - San Andreas Sightseer - -- 15 - All's Fare in Love and War - -- 16 - TP Industries Arms Race - -- 17 - Multi-Disciplined - -- 18 - From Beyond the Stars - -- 19 - A Mystery, Solved - -- 20 - Waste Management - -- 21 - Red Mist - -- 22 - Show Off - -- 23 - Kifflom! - -- 24 - Three Man Army - -- 25 - Out of Your Depth - -- 26 - Altruist Acolyte - -- 27 - A Lot of Cheddar - -- 28 - Trading Pure Alpha - -- 29 - Pimp My Sidearm - -- 30 - Wanted: Alive Or Alive - -- 31 - Los Santos Customs - -- 32 - Close Shave - -- 33 - Off the Plane - -- 34 - Three-Bit Gangster - -- 35 - Making Moves - -- 36 - Above the Law - -- 37 - Numero Uno - -- 38 - The Midnight Club - -- 39 - Unnatural Selection - -- 40 - Backseat Driver - -- 41 - Run Like The Wind - -- 42 - Clean Sweep - -- 43 - Decorated - -- 44 - Stick Up Kid - -- 45 - Enjoy Your Stay - -- 46 - Crew Cut - -- 47 - Full Refund - -- 48 - Dialling Digits - -- 49 - American Dream - -- 50 - A New Perspective - -- 51 - Be Prepared - -- 52 - In the Name of Science - -- 53 - Dead Presidents - -- 54 - Parole Day - -- 55 - Shot Caller - -- 56 - Four Way - -- 57 - Live a Little - -- 58 - Can't Touch This - -- 59 - Mastermind - -- 60 - Vinewood Visionary - -- 61 - Majestic - -- 62 - Humans of Los Santos - -- 63 - First Time Director - -- 64 - Animal Lover - -- 65 - Ensemble Piece - -- 66 - Cult Movie - -- 67 - Location Scout - -- 68 - Method Actor - -- 69 - Cryptozoologist - -- 70 - Getting Started - -- 71 - The Data Breaches - -- 72 - The Bogdan Problem - -- 73 - The Doomsday Scenario - -- 74 - A World Worth Saving - -- 75 - Orbital Obliteration - -- 76 - Elitist - -- 77 - Masterminds - GIVE_ACHIEVEMENT_TO_PLAYER=--[[BOOL (bool)]] function(--[[int]] achievementId)return native_invoker.unified_bool(achievementId, 0xBEC7076D64130195, "i")end - -- For Steam. - -- Does nothing and always returns false in the retail version of the game. - SET_ACHIEVEMENT_PROGRESS=--[[BOOL (bool)]] function(--[[int]] achievementId,--[[int]] progress)return native_invoker.unified_bool(achievementId, progress, 0xC2AFFFDABBDC2C5C, "ii")end - -- For Steam. - -- Always returns 0 in retail version of the game. - GET_ACHIEVEMENT_PROGRESS=--[[int]] function(--[[int]] achievementId)return native_invoker.unified_int(achievementId, 0x1C186837D0619335, "i")end - -- See GIVE_ACHIEVEMENT_TO_PLAYER - HAS_ACHIEVEMENT_BEEN_PASSED=--[[BOOL (bool)]] function(--[[int]] achievementId)return native_invoker.unified_bool(achievementId, 0x867365E111A3B6EB, "i")end - -- Returns TRUE if the game is in online mode and FALSE if in offline mode. - -- - -- This is an alias for NETWORK_IS_SIGNED_ONLINE. - IS_PLAYER_ONLINE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xF25D331DC2627BBC, "")end - -- this function is hard-coded to always return 0. - IS_PLAYER_LOGGING_IN_NP=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x74556E1420867ECA, "")end - -- Purpose of the BOOL currently unknown. - -- Both, true and false, work - DISPLAY_SYSTEM_SIGNIN_UI=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x94DD7888C10A979E, "b")end - IS_SYSTEM_UI_BEING_DISPLAYED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x5D511E3867C87139, "")end - -- Simply sets you as invincible (Health will not deplete). - -- - -- Use 0x733A643B5B0C53C1 instead if you want Ragdoll enabled, which is equal to: - -- *(DWORD *)(playerPedAddress + 0x188) |= (1 << 9); - SET_PLAYER_INVINCIBLE=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0x239528EACDC3E7DE, "ib")end - -- Returns the Player's Invincible status. - -- - -- This function will always return false if 0x733A643B5B0C53C1 is used to set the invincibility status. To always get the correct result, use this: - -- - -- bool IsPlayerInvincible(Player player) - -- { - -- auto addr = getScriptHandleBaseAddress(GET_PLAYER_PED(player)); - -- - -- if (addr) - -- { - -- DWORD flag = *(DWORD *)(addr + 0x188); - -- return ((flag & (1 << 8)) != 0) || ((flag & (1 << 9)) != 0); - -- } - -- - -- return false; - -- } - -- - -- - GET_PLAYER_INVINCIBLE=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0xB721981B2B939E07, "i")end - -- Always returns false. - GET_PLAYER_DEBUG_INVINCIBLE=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0xDCC07526B8EC45AF, "i")end - SET_PLAYER_INVINCIBLE_BUT_HAS_REACTIONS=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0x6BC97F4F4BB3C04B, "ib")end - SET_PLAYER_CAN_COLLECT_DROPPED_MONEY=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] p1)return native_invoker.unified_void(player, p1, 0xCAC57395B151135F, "ib")end - REMOVE_PLAYER_HELMET=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] p2)return native_invoker.unified_void(player, p2, 0xF3AC26D3CC576528, "ib")end - GIVE_PLAYER_RAGDOLL_CONTROL=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0x3C49C870E66F0A28, "ib")end - -- Example from fm_mission_controler.ysc.c4: - -- - -- PLAYER::SET_PLAYER_LOCKON(PLAYER::PLAYER_ID(), 1); - -- - -- All other decompiled scripts using this seem to be using the player id as the first parameter, so I feel the need to confirm it as so. - -- - -- No need to confirm it says PLAYER_ID() so it uses PLAYER_ID() lol. - SET_PLAYER_LOCKON=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0x5C8B2F450EE4328E, "ib")end - -- Sets your targeting mode. - -- 0 = Assisted Aim - Full - -- 1 = Assisted Aim - Partial - -- 2 = Free Aim - Assisted - -- 3 = Free Aim - SET_PLAYER_TARGETING_MODE=--[[void]] function(--[[int]] targetMode)return native_invoker.unified_void(targetMode, 0xB1906895227793F3, "i")end - -- Returns targeting mode. See SET_PLAYER_TARGETING_MODE - GET_PLAYER_TARGETING_MODE=--[[int]] function()return native_invoker.unified_int(0x875BDD898B99C8CE, "")end - SET_PLAYER_TARGET_LEVEL=--[[void]] function(--[[int]] targetLevel)return native_invoker.unified_void(targetLevel, 0x5702B917B99DB1CD, "i")end - -- Returns profile setting 237. - GET_IS_USING_FPS_THIRD_PERSON_COVER=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xB9CF1F793A9F1BF1, "")end - -- Returns profile setting 243. - GET_IS_USING_HOOD_CAMERA=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xCB645E85E97EA48B, "")end - CLEAR_PLAYER_HAS_DAMAGED_AT_LEAST_ONE_PED=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0xF0B67A4DE6AB5F98, "i")end - HAS_PLAYER_DAMAGED_AT_LEAST_ONE_PED=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x20CE80B0C2BF4ACC, "i")end - CLEAR_PLAYER_HAS_DAMAGED_AT_LEAST_ONE_NON_ANIMAL_PED=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0x4AACB96203D11A31, "i")end - HAS_PLAYER_DAMAGED_AT_LEAST_ONE_NON_ANIMAL_PED=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0xE4B90F367BD81752, "i")end - -- This can be between 1.0f - 14.9f - -- - -- You can change the max in IDA from 15.0. I say 15.0 as the function blrs if what you input is greater than or equal to 15.0 hence why it's 14.9 max default. - -- - -- - SET_AIR_DRAG_MULTIPLIER_FOR_PLAYERS_VEHICLE=--[[void]] function(--[[Player (int)]] player,--[[float]] multiplier)return native_invoker.unified_void(player, multiplier, 0xCA7DC8329F0A1E9E, "if")end - -- Swim speed multiplier. - -- Multiplier goes up to 1.49 - -- - -- Just call it one time, it is not required to be called once every tick. - Note copied from below native. - -- - -- Note: At least the IDA method if you change the max float multiplier from 1.5 it will change it for both this and RUN_SPRINT below. I say 1.5 as the function blrs if what you input is greater than or equal to 1.5 hence why it's 1.49 max default. - SET_SWIM_MULTIPLIER_FOR_PLAYER=--[[void]] function(--[[Player (int)]] player,--[[float]] multiplier)return native_invoker.unified_void(player, multiplier, 0xA91C6F0FF7D16A13, "if")end - -- Multiplier goes up to 1.49 any value above will be completely overruled by the game and the multiplier will not take effect, this can be edited in memory however. - -- - -- Just call it one time, it is not required to be called once every tick. - -- - -- Note: At least the IDA method if you change the max float multiplier from 1.5 it will change it for both this and SWIM above. I say 1.5 as the function blrs if what you input is greater than or equal to 1.5 hence why it's 1.49 max default. - SET_RUN_SPRINT_MULTIPLIER_FOR_PLAYER=--[[void]] function(--[[Player (int)]] player,--[[float]] multiplier)return native_invoker.unified_void(player, multiplier, 0x6DB47AA77FD94E09, "if")end - -- Returns the time since the character was arrested in (ms) milliseconds. - -- - -- example - -- - -- var time = Function.call(Hash.GET_TIME_SINCE_LAST_ARREST(); - -- - -- UI.DrawSubtitle(time.ToString()); - -- - -- if player has not been arrested, the int returned will be -1. - GET_TIME_SINCE_LAST_ARREST=--[[int]] function()return native_invoker.unified_int(0x5063F92F07C2A316, "")end - -- Returns the time since the character died in (ms) milliseconds. - -- - -- example - -- - -- var time = Function.call(Hash.GET_TIME_SINCE_LAST_DEATH(); - -- - -- UI.DrawSubtitle(time.ToString()); - -- - -- if player has not died, the int returned will be -1. - GET_TIME_SINCE_LAST_DEATH=--[[int]] function()return native_invoker.unified_int(0xC7034807558DDFCA, "")end - ASSISTED_MOVEMENT_CLOSE_ROUTE=--[[void]] function()return native_invoker.unified_void(0xAEBF081FFC0A0E5E, "")end - ASSISTED_MOVEMENT_FLUSH_ROUTE=--[[void]] function()return native_invoker.unified_void(0x8621390F0CDCFE1F, "")end - SET_PLAYER_FORCED_AIM=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0x0FEE4F80AC44A726, "ib")end - SET_PLAYER_FORCED_ZOOM=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0x75E7D505F2B15902, "ib")end - SET_PLAYER_FORCE_SKIP_AIM_INTRO=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0x7651BC64AE59E128, "ib")end - -- Inhibits the player from using any method of combat including melee and firearms. - -- - -- NOTE: Only disables the firing for one frame - DISABLE_PLAYER_FIRING=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0x5E6CC07646BBEAB8, "ib")end - -- Used only once in R* scripts (freemode.ysc). - DISABLE_PLAYER_THROW_GRENADE_WHILE_USING_GUN=--[[void]] function()return native_invoker.unified_void(0xB885852C39CC265D, "")end - SET_DISABLE_AMBIENT_MELEE_MOVE=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0x2E8AABFA40A84F8C, "ib")end - -- Default is 100. Use player id and not ped id. For instance: PLAYER::SET_PLAYER_MAX_ARMOUR(PLAYER::PLAYER_ID(), 100); // main_persistent.ct4 - SET_PLAYER_MAX_ARMOUR=--[[void]] function(--[[Player (int)]] player,--[[int]] value)return native_invoker.unified_void(player, value, 0x77DFCCF5948B8C71, "ii")end - -- p1 is always 0 in the scripts - SPECIAL_ABILITY_ACTIVATE=--[[void]] function(--[[Player (int)]] player,--[[int]] p1)return native_invoker.unified_void(player, p1, 0x821FDC827D6F4090, "ii")end - SET_SPECIAL_ABILITY_MP=--[[void]] function(--[[Player (int)]] player,--[[int]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(player, p1, p2, 0xB214D570EAD7F81A, "iii")end - -- p1 is always 0 in the scripts - SPECIAL_ABILITY_DEACTIVATE_MP=--[[void]] function(--[[Player (int)]] player,--[[int]] p1)return native_invoker.unified_void(player, p1, 0x17F7471EACA78290, "ii")end - SPECIAL_ABILITY_DEACTIVATE=--[[void]] function(--[[Player (int)]] player,--[[Any (int)]] p1)return native_invoker.unified_void(player, p1, 0xD6A953C6D1492057, "ii")end - SPECIAL_ABILITY_DEACTIVATE_FAST=--[[void]] function(--[[Player (int)]] player,--[[Any (int)]] p1)return native_invoker.unified_void(player, p1, 0x9CB5CE07A3968D5A, "ii")end - SPECIAL_ABILITY_RESET=--[[void]] function(--[[Player (int)]] player,--[[Any (int)]] p1)return native_invoker.unified_void(player, p1, 0x375F0E738F861A94, "ii")end - SPECIAL_ABILITY_CHARGE_ON_MISSION_FAILED=--[[void]] function(--[[Player (int)]] player,--[[Any (int)]] p1)return native_invoker.unified_void(player, p1, 0xC9A763D8FE87436A, "ii")end - -- Every occurrence of p1 & p2 were both true. - SPECIAL_ABILITY_CHARGE_SMALL=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(player, p1, p2, p3, 0x2E7B9B683481687D, "ibbi")end - -- Only 1 match. Both p1 & p2 were true. - SPECIAL_ABILITY_CHARGE_MEDIUM=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(player, p1, p2, p3, 0xF113E3AA9BC54613, "ibbi")end - -- 2 matches. p1 was always true. - SPECIAL_ABILITY_CHARGE_LARGE=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(player, p1, p2, p3, 0xF733F45FA4497D93, "ibbi")end - -- p1 appears to always be 1 (only comes up twice) - SPECIAL_ABILITY_CHARGE_CONTINUOUS=--[[void]] function(--[[Player (int)]] player,--[[Ped (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(player, p1, p2, 0xED481732DFF7E997, "iii")end - -- p1 appears as 5, 10, 15, 25, or 30. p2 is always true. - SPECIAL_ABILITY_CHARGE_ABSOLUTE=--[[void]] function(--[[Player (int)]] player,--[[int]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(player, p1, p2, p3, 0xB7B0870EB531D08D, "iibi")end - -- - -- normalizedValue is from 0.0 - 1.0 - -- p2 is always 1 - SPECIAL_ABILITY_CHARGE_NORMALIZED=--[[void]] function(--[[Player (int)]] player,--[[float]] normalizedValue,--[[BOOL (bool)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(player, normalizedValue, p2, p3, 0xA0696A65F009EE18, "ifbi")end - -- Also known as _RECHARGE_SPECIAL_ABILITY - SPECIAL_ABILITY_FILL_METER=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(player, p1, p2, 0x3DACA8DDC6FD4980, "ibi")end - -- p1 was always true. - SPECIAL_ABILITY_DEPLETE_METER=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(player, p1, p2, 0x1D506DBBBC51E64B, "ibi")end - SPECIAL_ABILITY_LOCK=--[[void]] function(--[[Hash (int)]] playerModel,--[[Any (int)]] p1)return native_invoker.unified_void(playerModel, p1, 0x6A09D0D590A47D13, "ii")end - SPECIAL_ABILITY_UNLOCK=--[[void]] function(--[[Hash (int)]] playerModel,--[[Any (int)]] p1)return native_invoker.unified_void(playerModel, p1, 0xF145F3BE2EFA9A3B, "ii")end - IS_SPECIAL_ABILITY_UNLOCKED=--[[BOOL (bool)]] function(--[[Hash (int)]] playerModel)return native_invoker.unified_bool(playerModel, 0xC6017F6A6CDFA694, "i")end - IS_SPECIAL_ABILITY_ACTIVE=--[[BOOL (bool)]] function(--[[Player (int)]] player,--[[Any (int)]] p1)return native_invoker.unified_bool(player, p1, 0x3E5F7FC85D854E15, "ii")end - IS_SPECIAL_ABILITY_METER_FULL=--[[BOOL (bool)]] function(--[[Player (int)]] player,--[[Any (int)]] p1)return native_invoker.unified_bool(player, p1, 0x05A1FE504B7F2587, "ii")end - ENABLE_SPECIAL_ABILITY=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle,--[[Any (int)]] p2)return native_invoker.unified_void(player, toggle, p2, 0x181EC197DAEFE121, "ibi")end - IS_SPECIAL_ABILITY_ENABLED=--[[BOOL (bool)]] function(--[[Player (int)]] player,--[[Any (int)]] p1)return native_invoker.unified_bool(player, p1, 0xB1D200FE26AEF3CB, "ii")end - SET_SPECIAL_ABILITY_MULTIPLIER=--[[void]] function(--[[float]] multiplier)return native_invoker.unified_void(multiplier, 0xA49C426ED0CA4AB7, "f")end - UPDATE_SPECIAL_ABILITY_FROM_STAT=--[[void]] function(--[[Player (int)]] player,--[[Any (int)]] p1)return native_invoker.unified_void(player, p1, 0xFFEE8FA29AB9A18E, "ii")end - -- Appears once in "re_dealgonewrong" - GET_IS_PLAYER_DRIVING_ON_HIGHWAY=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x5FC472C501CCADB3, "i")end - -- Only 1 occurrence. p1 was 2. - GET_IS_PLAYER_DRIVING_WRECKLESS=--[[BOOL (bool)]] function(--[[Player (int)]] player,--[[int]] p1)return native_invoker.unified_bool(player, p1, 0xF10B44FD479D69F3, "ii")end - -- 2 occurrences in agency_heist3a. p1 was 0.7f then 0.4f. - GET_IS_MOPPING_AREA_FREE_IN_FRONT_OF_PLAYER=--[[BOOL (bool)]] function(--[[Player (int)]] player,--[[float]] p1)return native_invoker.unified_bool(player, p1, 0xDD2620B7B9D16FF1, "if")end - -- `findCollisionLand`: This teleports the player to land when set to true and will not consider the Z coordinate parameter provided by you. It will automatically put the Z coordinate so that you don't fall from sky. - START_PLAYER_TELEPORT=--[[void]] function(--[[Player (int)]] player,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] heading,--[[BOOL (bool)]] p5,--[[BOOL (bool)]] findCollisionLand,--[[BOOL (bool)]] p7)return native_invoker.unified_void(player, x, y, z, heading, p5, findCollisionLand, p7, 0xAD15F075A4DA0FDE, "iffffbbb")end - UPDATE_PLAYER_TELEPORT=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0xE23D5873C2394C61, "i")end - -- Disables the player's teleportation - STOP_PLAYER_TELEPORT=--[[void]] function()return native_invoker.unified_void(0xC449EDED9D73009C, "")end - IS_PLAYER_TELEPORT_ACTIVE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x02B15662D7F8886F, "")end - GET_PLAYER_CURRENT_STEALTH_NOISE=--[[float]] function(--[[Player (int)]] player)return native_invoker.unified_float(player, 0x2F395D61F3A1F877, "i")end - -- `regenRate`: The recharge multiplier, a value between 0.0 and 1.0. - -- Use 1.0 to reset it back to normal - SET_PLAYER_HEALTH_RECHARGE_MULTIPLIER=--[[void]] function(--[[Player (int)]] player,--[[float]] regenRate)return native_invoker.unified_void(player, regenRate, 0x5DB660B38DD98A31, "if")end - GET_PLAYER_HEALTH_RECHARGE_MAX_PERCENT=--[[float]] function(--[[Player (int)]] player)return native_invoker.unified_float(player, 0x8BC515BAE4AAF8FF, "i")end - SET_PLAYER_HEALTH_RECHARGE_MAX_PERCENT=--[[void]] function(--[[Player (int)]] player,--[[float]] limit)return native_invoker.unified_void(player, limit, 0xC388A0F065F5BC34, "if")end - -- Needs to be called every frame. - DISABLE_PLAYER_HEALTH_RECHARGE=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0xBCB06442F7E52666, "i")end - SET_PLAYER_FALL_DISTANCE_TO_TRIGGER_RAGDOLL_OVERRIDE=--[[void]] function(--[[Player (int)]] player,--[[float]] p1)return native_invoker.unified_void(player, p1, 0xEFD79FA81DFBA9CB, "if")end - -- This modifies the damage value of your weapon. Whether it is a multiplier or base damage is unknown. - -- - -- Based on tests, it is unlikely to be a multiplier. - -- - -- modifier's min value is 0.1 - SET_PLAYER_WEAPON_DAMAGE_MODIFIER=--[[void]] function(--[[Player (int)]] player,--[[float]] modifier)return native_invoker.unified_void(player, modifier, 0xCE07B9F7817AADA3, "if")end - -- modifier's min value is 0.1 - SET_PLAYER_WEAPON_DEFENSE_MODIFIER=--[[void]] function(--[[Player (int)]] player,--[[float]] modifier)return native_invoker.unified_void(player, modifier, 0x2D83BC011CA14A3C, "if")end - -- modifier's min value is 0.1 - SET_PLAYER_WEAPON_MINIGUN_DEFENSE_MODIFIER=--[[void]] function(--[[Player (int)]] player,--[[float]] modifier)return native_invoker.unified_void(player, modifier, 0xBCFDE9EDE4CF27DC, "if")end - -- modifier's min value is 0.1 - SET_PLAYER_MELEE_WEAPON_DAMAGE_MODIFIER=--[[void]] function(--[[Player (int)]] player,--[[float]] modifier,--[[BOOL (bool)]] p2)return native_invoker.unified_void(player, modifier, p2, 0x4A3DC7ECCC321032, "ifb")end - -- modifier's min value is 0.1 - SET_PLAYER_MELEE_WEAPON_DEFENSE_MODIFIER=--[[void]] function(--[[Player (int)]] player,--[[float]] modifier)return native_invoker.unified_void(player, modifier, 0xAE540335B4ABC4E2, "if")end - -- modifier's min value is 0.1 - SET_PLAYER_VEHICLE_DAMAGE_MODIFIER=--[[void]] function(--[[Player (int)]] player,--[[float]] modifier)return native_invoker.unified_void(player, modifier, 0xA50E117CDDF82F0C, "if")end - -- modifier's min value is 0.1 - SET_PLAYER_VEHICLE_DEFENSE_MODIFIER=--[[void]] function(--[[Player (int)]] player,--[[float]] modifier)return native_invoker.unified_void(player, modifier, 0x4C60E6EFDAFF2462, "if")end - SET_PLAYER_MAX_EXPLOSIVE_DAMAGE=--[[void]] function(--[[Player (int)]] player,--[[float]] p1)return native_invoker.unified_void(player, p1, 0x8D768602ADEF2245, "if")end - SET_PLAYER_EXPLOSIVE_DAMAGE_MODIFIER=--[[void]] function(--[[Player (int)]] player,--[[Any (int)]] p1)return native_invoker.unified_void(player, p1, 0xD821056B9ACF8052, "ii")end - SET_PLAYER_WEAPON_TAKEDOWN_DEFENSE_MODIFIER=--[[void]] function(--[[Player (int)]] player,--[[float]] p1)return native_invoker.unified_void(player, p1, 0x31E90B8873A4CD3B, "if")end - -- Tints: - -- None = -1, - -- Rainbow = 0, - -- Red = 1, - -- SeasideStripes = 2, - -- WidowMaker = 3, - -- Patriot = 4, - -- Blue = 5, - -- Black = 6, - -- Hornet = 7, - -- AirFocce = 8, - -- Desert = 9, - -- Shadow = 10, - -- HighAltitude = 11, - -- Airbone = 12, - -- Sunrise = 13, - -- - SET_PLAYER_PARACHUTE_TINT_INDEX=--[[void]] function(--[[Player (int)]] player,--[[int]] tintIndex)return native_invoker.unified_void(player, tintIndex, 0xA3D0E54541D9A5E5, "ii")end - -- Tints: - -- None = -1, - -- Rainbow = 0, - -- Red = 1, - -- SeasideStripes = 2, - -- WidowMaker = 3, - -- Patriot = 4, - -- Blue = 5, - -- Black = 6, - -- Hornet = 7, - -- AirFocce = 8, - -- Desert = 9, - -- Shadow = 10, - -- HighAltitude = 11, - -- Airbone = 12, - -- Sunrise = 13, - GET_PLAYER_PARACHUTE_TINT_INDEX=--[[void]] function(--[[Player (int)]] player,--[[int* (pointer)]] tintIndex)return native_invoker.unified_void(player, tintIndex, 0x75D3F7A1B0D9B145, "ip")end - -- Tints: - -- None = -1, - -- Rainbow = 0, - -- Red = 1, - -- SeasideStripes = 2, - -- WidowMaker = 3, - -- Patriot = 4, - -- Blue = 5, - -- Black = 6, - -- Hornet = 7, - -- AirFocce = 8, - -- Desert = 9, - -- Shadow = 10, - -- HighAltitude = 11, - -- Airbone = 12, - -- Sunrise = 13, - SET_PLAYER_RESERVE_PARACHUTE_TINT_INDEX=--[[void]] function(--[[Player (int)]] player,--[[int]] index)return native_invoker.unified_void(player, index, 0xAF04C87F5DC1DF38, "ii")end - -- Tints: - -- None = -1, - -- Rainbow = 0, - -- Red = 1, - -- SeasideStripes = 2, - -- WidowMaker = 3, - -- Patriot = 4, - -- Blue = 5, - -- Black = 6, - -- Hornet = 7, - -- AirFocce = 8, - -- Desert = 9, - -- Shadow = 10, - -- HighAltitude = 11, - -- Airbone = 12, - -- Sunrise = 13, - GET_PLAYER_RESERVE_PARACHUTE_TINT_INDEX=--[[void]] function(--[[Player (int)]] player,--[[int* (pointer)]] index)return native_invoker.unified_void(player, index, 0xD5A016BC3C09CF40, "ip")end - -- tints 0- 13 - -- 0 - unkown - -- 1 - unkown - -- 2 - unkown - -- 3 - unkown - -- 4 - unkown - SET_PLAYER_PARACHUTE_PACK_TINT_INDEX=--[[void]] function(--[[Player (int)]] player,--[[int]] tintIndex)return native_invoker.unified_void(player, tintIndex, 0x93B0FB27C9A04060, "ii")end - GET_PLAYER_PARACHUTE_PACK_TINT_INDEX=--[[void]] function(--[[Player (int)]] player,--[[int* (pointer)]] tintIndex)return native_invoker.unified_void(player, tintIndex, 0x6E9C742F340CE5A2, "ip")end - SET_PLAYER_HAS_RESERVE_PARACHUTE=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0x7DDAB28D31FAC363, "i")end - GET_PLAYER_HAS_RESERVE_PARACHUTE=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x5DDFE2FF727F3CA3, "i")end - SET_PLAYER_CAN_LEAVE_PARACHUTE_SMOKE_TRAIL=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] enabled)return native_invoker.unified_void(player, enabled, 0xF401B182DBA8AF53, "ib")end - SET_PLAYER_PARACHUTE_SMOKE_TRAIL_COLOR=--[[void]] function(--[[Player (int)]] player,--[[int]] r,--[[int]] g,--[[int]] b)return native_invoker.unified_void(player, r, g, b, 0x8217FD371A4625CF, "iiii")end - GET_PLAYER_PARACHUTE_SMOKE_TRAIL_COLOR=--[[void]] function(--[[Player (int)]] player,--[[int* (pointer)]] r,--[[int* (pointer)]] g,--[[int* (pointer)]] b)return native_invoker.unified_void(player, r, g, b, 0xEF56DBABD3CD4887, "ippp")end - -- example: - -- - -- flags: 0-6 - -- - -- PLAYER::SET_PLAYER_RESET_FLAG_PREFER_REAR_SEATS(PLAYER::PLAYER_ID(), 6); - -- - -- wouldnt the flag be the seatIndex? - SET_PLAYER_PHONE_PALETTE_IDX=--[[void]] function(--[[Player (int)]] player,--[[int]] flags)return native_invoker.unified_void(player, flags, 0x11D5F725F0E780E0, "ii")end - SET_PLAYER_NOISE_MULTIPLIER=--[[void]] function(--[[Player (int)]] player,--[[float]] multiplier)return native_invoker.unified_void(player, multiplier, 0xDB89EF50FF25FCE9, "if")end - -- Values around 1.0f to 2.0f used in game scripts. - SET_PLAYER_SNEAKING_NOISE_MULTIPLIER=--[[void]] function(--[[Player (int)]] player,--[[float]] multiplier)return native_invoker.unified_void(player, multiplier, 0xB2C1A29588A9F47C, "if")end - CAN_PED_HEAR_PLAYER=--[[BOOL (bool)]] function(--[[Player (int)]] player,--[[Ped (int)]] ped)return native_invoker.unified_bool(player, ped, 0xF297383AA91DCA29, "ii")end - -- This is to make the player walk without accepting input from INPUT. - -- - -- gaitType is in increments of 100s. 2000, 500, 300, 200, etc. - -- - -- p4 is always 1 and p5 is always 0. - -- - -- C# Example : - -- - -- Function.Call(Hash.SIMULATE_PLAYER_INPUT_GAIT, Game.Player, 1.0f, 100, 1.0f, 1, 0); //Player will go forward for 100ms - SIMULATE_PLAYER_INPUT_GAIT=--[[void]] function(--[[Player (int)]] player,--[[float]] amount,--[[int]] gaitType,--[[float]] speed,--[[BOOL (bool)]] p4,--[[BOOL (bool)]] p5,--[[Any (int)]] p6)return native_invoker.unified_void(player, amount, gaitType, speed, p4, p5, p6, 0x477D5D63E63ECA5D, "ififbbi")end - RESET_PLAYER_INPUT_GAIT=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0x19531C47A2ABD691, "i")end - SET_AUTO_GIVE_PARACHUTE_WHEN_ENTER_PLANE=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0x9F343285A00B4BB6, "ib")end - SET_AUTO_GIVE_SCUBA_GEAR_WHEN_EXIT_VEHICLE=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0xD2B315B6689D537D, "ib")end - SET_PLAYER_STEALTH_PERCEPTION_MODIFIER=--[[void]] function(--[[Player (int)]] player,--[[float]] value)return native_invoker.unified_void(player, value, 0x4E9021C1FCDD507A, "if")end - IS_REMOTE_PLAYER_IN_NON_CLONED_VEHICLE=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x690A61A6D13583F6, "i")end - INCREASE_PLAYER_JUMP_SUPPRESSION_RANGE=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0x9EDD76E87D5D51BA, "i")end - SET_PLAYER_SIMULATE_AIMING=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0xC54C95DA968EC5B5, "ib")end - SET_PLAYER_CLOTH_PIN_FRAMES=--[[void]] function(--[[Player (int)]] player,--[[int]] p1)return native_invoker.unified_void(player, p1, 0x749FADDF97DFE930, "ii")end - -- Every occurrence was either 0 or 2. - SET_PLAYER_CLOTH_PACKAGE_INDEX=--[[void]] function(--[[int]] index)return native_invoker.unified_void(index, 0x9F7BBA2EA6372500, "i")end - -- 6 matches across 4 scripts. 5 occurrences were 240. The other was 255. - SET_PLAYER_CLOTH_LOCK_COUNTER=--[[void]] function(--[[int]] value)return native_invoker.unified_void(value, 0x14D913B777DFF5DA, "i")end - -- Only 1 match. ob_sofa_michael. - -- - -- PLAYER::PLAYER_ATTACH_VIRTUAL_BOUND(-804.5928f, 173.1801f, 71.68436f, 0f, 0f, 0.590625f, 1f, 0.7f);1.0.335.2, 1.0.350.1/2, 1.0.372.2, 1.0.393.2, 1.0.393.4, 1.0.463.1; - PLAYER_ATTACH_VIRTUAL_BOUND=--[[void]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[float]] p6,--[[float]] p7)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, p7, 0xED51733DC73AED51, "ffffffff")end - -- 1.0.335.2, 1.0.350.1/2, 1.0.372.2, 1.0.393.2, 1.0.393.4, 1.0.463.1; - PLAYER_DETACH_VIRTUAL_BOUND=--[[void]] function()return native_invoker.unified_void(0x1DD5897E2FA6E7C9, "")end - HAS_PLAYER_BEEN_SPOTTED_IN_STOLEN_VEHICLE=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0xD705740BB0A1CF4C, "i")end - -- Returns true if an unk value is greater than 0.0f - IS_PLAYER_BATTLE_AWARE=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x38D28DA81E4E9BF9, "i")end - GET_PLAYER_RECEIVED_BATTLE_EVENT_RECENTLY=--[[BOOL (bool)]] function(--[[Player (int)]] player,--[[int]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_bool(player, p1, p2, 0xBC0753C9CA14B506, "iib")end - -- Appears only 3 times in the scripts, more specifically in michael1.ysc - -- - -- - - -- This can be used to prevent dying if you are "out of the world" - EXTEND_WORLD_BOUNDARY_FOR_PLAYER=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(x, y, z, 0x5006D96C995A5827, "fff")end - RESET_WORLD_BOUNDARY_FOR_PLAYER=--[[void]] function()return native_invoker.unified_void(0xDA1DF03D5A315F4E, "")end - -- Returns true if the player is riding a train. - IS_PLAYER_RIDING_TRAIN=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x4EC12697209F2196, "i")end - HAS_PLAYER_LEFT_THE_WORLD=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0xD55DDFB47991A294, "i")end - SET_PLAYER_LEAVE_PED_BEHIND=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0xFF300C7649724A0B, "ib")end - -- p1 was always 5. - -- p4 was always false. - SET_PLAYER_PARACHUTE_VARIATION_OVERRIDE=--[[void]] function(--[[Player (int)]] player,--[[int]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[BOOL (bool)]] p4)return native_invoker.unified_void(player, p1, p2, p3, p4, 0xD9284A8C0D48352C, "iiiib")end - CLEAR_PLAYER_PARACHUTE_VARIATION_OVERRIDE=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0x0F4CC924CF8C7B21, "i")end - SET_PLAYER_PARACHUTE_MODEL_OVERRIDE=--[[void]] function(--[[Player (int)]] player,--[[Hash (int)]] model)return native_invoker.unified_void(player, model, 0x977DB4641F6FC3DB, "ii")end - SET_PLAYER_RESERVE_PARACHUTE_MODEL_OVERRIDE=--[[void]] function(--[[Player (int)]] player,--[[Hash (int)]] model)return native_invoker.unified_void(player, model, 0x0764486AEDE748DB, "ii")end - GET_PLAYER_PARACHUTE_MODEL_OVERRIDE=--[[Hash (int)]] function(--[[Player (int)]] player)return native_invoker.unified_int(player, 0xC219887CA3E65C41, "i")end - GET_PLAYER_RESERVE_PARACHUTE_MODEL_OVERRIDE=--[[Hash (int)]] function(--[[Player (int)]] player)return native_invoker.unified_int(player, 0x37FAAA68DCA9D08D, "i")end - CLEAR_PLAYER_PARACHUTE_MODEL_OVERRIDE=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0x8753997EB5F6EE3F, "i")end - CLEAR_PLAYER_RESERVE_PARACHUTE_MODEL_OVERRIDE=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0x290D248E25815AE8, "i")end - SET_PLAYER_PARACHUTE_PACK_MODEL_OVERRIDE=--[[void]] function(--[[Player (int)]] player,--[[Hash (int)]] model)return native_invoker.unified_void(player, model, 0xDC80A4C2F18A2B64, "ii")end - CLEAR_PLAYER_PARACHUTE_PACK_MODEL_OVERRIDE=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0x10C54E4389C12B42, "i")end - DISABLE_PLAYER_VEHICLE_REWARDS=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0xC142BE3BB9CE125F, "i")end - SET_PLAYER_SPECTATED_VEHICLE_RADIO_OVERRIDE=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x2F7CEB6520288061, "b")end - SET_PLAYER_BLUETOOTH_STATE=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] state)return native_invoker.unified_void(player, state, 0x5DC40A8869C22141, "ib")end - IS_PLAYER_BLUETOOTH_ENABLE=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x65FAEE425DE637B0, "i")end - DISABLE_CAMERA_VIEW_MODE_CYCLE=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0x5501B7A5CDB79D37, "i")end - GET_PLAYER_FAKE_WANTED_LEVEL=--[[int]] function(--[[Player (int)]] player)return native_invoker.unified_int(player, 0x56105E599CAB0EFA, "i")end - SET_PLAYER_CAN_DAMAGE_PLAYER=--[[void]] function(--[[Player (int)]] player1,--[[Player (int)]] player2,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player1, player2, toggle, 0x55FCC0C390620314, "iib")end - SET_APPLY_WAYPOINT_OF_PLAYER=--[[void]] function(--[[Player (int)]] player,--[[int]] hudColor)return native_invoker.unified_void(player, hudColor, 0x2382AB11450AE7BA, "ii")end - IS_PLAYER_VEHICLE_WEAPON_TOGGLED_TO_NON_HOMING=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x6E4361FF3E8CD7CA, "i")end - -- Unsets playerPed+330 if the current weapon has certain flags. - SET_PLAYER_VEHICLE_WEAPON_TO_NON_HOMING=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x237440E46D918649, "i")end - SET_PLAYER_HOMING_DISABLED_FOR_ALL_VEHICLE_WEAPONS=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xEE4EBDD2593BA844, "ii")end - ADD_PLAYER_TARGETABLE_ENTITY=--[[void]] function(--[[Player (int)]] player,--[[Entity (int)]] entity)return native_invoker.unified_void(player, entity, 0x9097EB6D4BB9A12A, "ii")end - REMOVE_PLAYER_TARGETABLE_ENTITY=--[[void]] function(--[[Player (int)]] player,--[[Entity (int)]] entity)return native_invoker.unified_void(player, entity, 0x9F260BFB59ADBCA3, "ii")end - SET_PLAYER_PREVIOUS_VARIATION_DATA=--[[void]] function(--[[Player (int)]] player,--[[int]] p1,--[[int]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5)return native_invoker.unified_void(player, p1, p2, p3, p4, p5, 0x7BAE68775557AE0B, "iiiiii")end - -- Resets values set by SET_SCRIPT_FIRE_POSITION - REMOVE_SCRIPT_FIRE_POSITION=--[[void]] function()return native_invoker.unified_void(0x7148E0F43D11F0D9, "")end - SET_SCRIPT_FIRE_POSITION=--[[void]] function(--[[float]] coordX,--[[float]] coordY,--[[float]] coordZ)return native_invoker.unified_void(coordX, coordY, coordZ, 0x70A382ADEC069DD3, "fff")end --- RECORDING - REPLAY_START_EVENT=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0x48621C9FCA3EBD28, "i")end - REPLAY_STOP_EVENT=--[[void]] function()return native_invoker.unified_void(0x81CBAE94390F9F89, "")end - REPLAY_CANCEL_EVENT=--[[void]] function()return native_invoker.unified_void(0x13B350B8AD0EEE10, "")end - REPLAY_RECORD_BACK_FOR_TIME=--[[void]] function(--[[float]] p0,--[[float]] p1,--[[int]] p2)return native_invoker.unified_void(p0, p1, p2, 0x293220DA1B46CEBC, "ffi")end - -- -This function appears to be deprecated/ unused. Tracing the call internally leads to a _nullsub - - -- - -- first one seems to be a string of a mission name, second one seems to be a bool/toggle - -- - -- p1 was always 0. - -- - REPLAY_CHECK_FOR_EVENT_THIS_FRAME=--[[void]] function(--[[string]] missionNameLabel,--[[Any (int)]] p1)return native_invoker.unified_void(missionNameLabel, p1, 0x208784099002BC30, "si")end - -- This disable the recording feature and has to be called every frame. - REPLAY_PREVENT_RECORDING_THIS_FRAME=--[[void]] function()return native_invoker.unified_void(0xEB2D525B57F42B40, "")end - REPLAY_RESET_EVENT_INFO=--[[void]] function()return native_invoker.unified_void(0xF854439EFBB3B583, "")end - -- This will disable the ability to make camera changes in R* Editor. - REPLAY_DISABLE_CAMERA_MOVEMENT_THIS_FRAME=--[[void]] function()return native_invoker.unified_void(0xAF66DCEE6609B148, "")end - -- Does nothing (it's a nullsub). - RECORD_GREATEST_MOMENT=--[[void]] function(--[[int]] p0,--[[int]] p1,--[[int]] p2)return native_invoker.unified_void(p0, p1, p2, 0x66972397E0757E7A, "iii")end - -- Starts recording a replay. - -- If mode is 0, turns on action replay. - -- If mode is 1, starts recording. - -- If already recording a replay, does nothing. - START_REPLAY_RECORDING=--[[void]] function(--[[int]] mode)return native_invoker.unified_void(mode, 0xC3AC2FFF9612AC81, "i")end - -- Stops recording and saves the recorded clip. - STOP_REPLAY_RECORDING=--[[void]] function()return native_invoker.unified_void(0x071A5197D6AFC8B3, "")end - -- Stops recording and discards the recorded clip. - CANCEL_REPLAY_RECORDING=--[[void]] function()return native_invoker.unified_void(0x88BB3507ED41A240, "")end - SAVE_REPLAY_RECORDING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x644546EC5287471B, "")end - -- Checks if you're recording, returns TRUE when you start recording (F1) or turn on action replay (F2) - -- - -- mov al, cs:g_bIsRecordingGameplay // byte_141DD0CD0 in b944 - -- retn - IS_REPLAY_RECORDING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x1897CA71995A90B4, "")end - IS_REPLAY_INITIALIZED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xDF4B952F7D381B95, "")end - IS_REPLAY_AVAILABLE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x4282E08174868BE3, "")end - IS_REPLAY_RECORD_SPACE_AVAILABLE=--[[BOOL (bool)]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_bool(p0, 0x33D47E85B476ABCD, "b")end --- REPLAY - -- Does nothing (it's a nullsub). - REGISTER_EFFECT_FOR_REPLAY_EDITOR=--[[void]] function(--[[string]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0x7E2BD3EF6C205F09, "sb")end - -- Returns a bool if interior rendering is disabled, if yes, all "normal" rendered interiors are invisible - REPLAY_SYSTEM_HAS_REQUESTED_A_SCRIPT_CLEANUP=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x95AB8B5C992C7B58, "")end - -- Disables some other rendering (internal) - SET_SCRIPTS_HAVE_CLEANED_UP_FOR_REPLAY_SYSTEM=--[[void]] function()return native_invoker.unified_void(0x5AD3932DAEB1E5D3, "")end - SET_REPLAY_SYSTEM_PAUSED_FOR_SAVE=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xE058175F8EAFE79A, "b")end - -- Sets (almost, not sure) all Rockstar Editor values (bIsRecording etc) to 0. - REPLAY_CONTROL_SHUTDOWN=--[[void]] function()return native_invoker.unified_void(0x3353D13F09307691, "")end - -- Please note that you will need to call DO_SCREEN_FADE_IN after exiting the Rockstar Editor when you call this. - ACTIVATE_ROCKSTAR_EDITOR=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0x49DA8145672B2725, "i")end --- SAVEMIGRATION - SAVEMIGRATION_IS_MP_ENABLED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x84B418E93894AC1C, "")end - SAVEMIGRATION_MP_REQUEST_ACCOUNTS=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x85F41F9225D08C72, "")end - SAVEMIGRATION_MP_GET_ACCOUNTS_STATUS=--[[int]] function()return native_invoker.unified_int(0xC8CB5999919EA2CA, "")end - SAVEMIGRATION_MP_NUM_ACCOUNTS=--[[int]] function()return native_invoker.unified_int(0x77A16200E18E0C55, "")end - SAVEMIGRATION_MP_GET_ACCOUNT=--[[BOOL (bool)]] function(--[[int]] p0,--[[Any* (pointer)]] p1)return native_invoker.unified_bool(p0, p1, 0xFCE2747EEF1D05FC, "ip")end - SAVEMIGRATION_MP_REQUEST_STATUS=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xE5E9746A66359F9D, "")end - SAVEMIGRATION_MP_GET_STATUS=--[[int]] function()return native_invoker.unified_int(0x690B76BD2763E068, "")end --- SCRIPT - REQUEST_SCRIPT=--[[void]] function(--[[string]] scriptName)return native_invoker.unified_void(scriptName, 0x6EB5F71AA68F2E8E, "s")end - SET_SCRIPT_AS_NO_LONGER_NEEDED=--[[void]] function(--[[string]] scriptName)return native_invoker.unified_void(scriptName, 0xC90D2DCACD56184C, "s")end - -- Returns if a script has been loaded into the game. Used to see if a script was loaded after requesting. - HAS_SCRIPT_LOADED=--[[BOOL (bool)]] function(--[[string]] scriptName)return native_invoker.unified_bool(scriptName, 0xE6CC9F3BA0FB9EF1, "s")end - DOES_SCRIPT_EXIST=--[[BOOL (bool)]] function(--[[string]] scriptName)return native_invoker.unified_bool(scriptName, 0xFC04745FBE67C19A, "s")end - -- formerly _REQUEST_STREAMED_SCRIPT - REQUEST_SCRIPT_WITH_NAME_HASH=--[[void]] function(--[[Hash (int)]] scriptHash)return native_invoker.unified_void(scriptHash, 0xD62A67D26D9653E6, "i")end - SET_SCRIPT_WITH_NAME_HASH_AS_NO_LONGER_NEEDED=--[[void]] function(--[[Hash (int)]] scriptHash)return native_invoker.unified_void(scriptHash, 0xC5BC038960E9DB27, "i")end - HAS_SCRIPT_WITH_NAME_HASH_LOADED=--[[BOOL (bool)]] function(--[[Hash (int)]] scriptHash)return native_invoker.unified_bool(scriptHash, 0x5F0F0C783EB16C04, "i")end - DOES_SCRIPT_WITH_NAME_HASH_EXIST=--[[BOOL (bool)]] function(--[[Hash (int)]] scriptHash)return native_invoker.unified_bool(scriptHash, 0xF86AA3C56BA31381, "i")end - TERMINATE_THREAD=--[[void]] function(--[[int]] threadId)return native_invoker.unified_void(threadId, 0xC8B189ED9138BCD4, "i")end - IS_THREAD_ACTIVE=--[[BOOL (bool)]] function(--[[int]] threadId)return native_invoker.unified_bool(threadId, 0x46E9AE36D8FA6417, "i")end - GET_NAME_OF_SCRIPT_WITH_THIS_ID=--[[string]] function(--[[int]] threadId)return native_invoker.unified_string(threadId, 0x05A42BA9FC8DA96B, "i")end - -- Starts a new iteration of the current threads. - -- Call this first, then SCRIPT_THREAD_ITERATOR_GET_NEXT_THREAD_ID (0x30B4FA1C82DD4B9F) - SCRIPT_THREAD_ITERATOR_RESET=--[[void]] function()return native_invoker.unified_void(0xDADFADA5A20143A8, "")end - -- If the function returns 0, the end of the iteration has been reached. - SCRIPT_THREAD_ITERATOR_GET_NEXT_THREAD_ID=--[[int]] function()return native_invoker.unified_int(0x30B4FA1C82DD4B9F, "")end - GET_ID_OF_THIS_THREAD=--[[int]] function()return native_invoker.unified_int(0xC30338E8088E2E21, "")end - TERMINATE_THIS_THREAD=--[[void]] function()return native_invoker.unified_void(0x1090044AD1DA76FA, "")end - -- Gets the number of instances of the specified script is currently running. - -- - -- Actually returns numRefs - 1. - -- if (program) - -- v3 = rage::scrProgram::GetNumRefs(program) - 1; - -- return v3; - GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH=--[[int]] function(--[[Hash (int)]] scriptHash)return native_invoker.unified_int(scriptHash, 0x2C83A9DA6BFFC4F9, "i")end - GET_THIS_SCRIPT_NAME=--[[string]] function()return native_invoker.unified_string(0x442E0A7EDE4A738A, "")end - GET_HASH_OF_THIS_SCRIPT_NAME=--[[Hash (int)]] function()return native_invoker.unified_int(0x8A1C8B1738FFE87E, "")end - -- eventGroup: 0 = SCRIPT_EVENT_QUEUE_AI (CEventGroupScriptAI), 1 = SCRIPT_EVENT_QUEUE_NETWORK (CEventGroupScriptNetwork) - GET_NUMBER_OF_EVENTS=--[[int]] function(--[[int]] eventGroup)return native_invoker.unified_int(eventGroup, 0x5F92A689A06620AA, "i")end - -- eventGroup: 0 = SCRIPT_EVENT_QUEUE_AI (CEventGroupScriptAI), 1 = SCRIPT_EVENT_QUEUE_NETWORK (CEventGroupScriptNetwork) - GET_EVENT_EXISTS=--[[BOOL (bool)]] function(--[[int]] eventGroup,--[[int]] eventIndex)return native_invoker.unified_bool(eventGroup, eventIndex, 0x936E6168A9BCEDB5, "ii")end - -- eventGroup: 0 = SCRIPT_EVENT_QUEUE_AI (CEventGroupScriptAI), 1 = SCRIPT_EVENT_QUEUE_NETWORK (CEventGroupScriptNetwork) - GET_EVENT_AT_INDEX=--[[int]] function(--[[int]] eventGroup,--[[int]] eventIndex)return native_invoker.unified_int(eventGroup, eventIndex, 0xD8F66A3A60C62153, "ii")end - -- eventGroup: 0 = SCRIPT_EVENT_QUEUE_AI (CEventGroupScriptAI), 1 = SCRIPT_EVENT_QUEUE_NETWORK (CEventGroupScriptNetwork) - -- - -- Note: eventDataSize is NOT the size in bytes, it is the size determined by the SIZE_OF operator (RAGE Script operator, not C/C++ sizeof). That is, the size in bytes divided by 8 (script variables are always 8-byte aligned!). - GET_EVENT_DATA=--[[BOOL (bool)]] function(--[[int]] eventGroup,--[[int]] eventIndex,--[[Any* (pointer)]] eventData,--[[int]] eventDataSize)return native_invoker.unified_bool(eventGroup, eventIndex, eventData, eventDataSize, 0x2902843FCD2B2D79, "iipi")end - -- eventGroup: 0 = SCRIPT_EVENT_QUEUE_AI (CEventGroupScriptAI), 1 = SCRIPT_EVENT_QUEUE_NETWORK (CEventGroupScriptNetwork) - -- - -- Note: eventDataSize is NOT the size in bytes, it is the size determined by the SIZE_OF operator (RAGE Script operator, not C/C++ sizeof). That is, the size in bytes divided by 8 (script variables are always 8-byte aligned!). - -- - -- playerBits (also known as playersToBroadcastTo) is a bitset that indicates which players this event should be sent to. In order to send the event to specific players only, use (1 << playerIndex). Set all bits if it should be broadcast to all players. - TRIGGER_SCRIPT_EVENT=--[[void]] function(--[[int]] eventGroup,--[[Any* (pointer)]] eventData,--[[int]] eventDataSize,--[[int]] playerBits)return native_invoker.unified_void(eventGroup, eventData, eventDataSize, playerBits, 0x5AE99C571D5BBE5D, "ipii")end - SHUTDOWN_LOADING_SCREEN=--[[void]] function()return native_invoker.unified_void(0x078EBE9809CCD637, "")end - SET_NO_LOADING_SCREEN=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x5262CC1995D07E09, "b")end - GET_NO_LOADING_SCREEN=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x18C1270EA7F199BC, "")end - COMMIT_TO_LOADINGSCREEN_SELCTION=--[[void]] function()return native_invoker.unified_void(0xB1577667C3708F9B, "")end - -- Returns true if bit 0 in GtaThread+0x154 is set. - BG_IS_EXITFLAG_SET=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x836B62713E0534CA, "")end - -- Sets bit 1 in GtaThread+0x154 - BG_SET_EXITFLAG_RESPONSE=--[[void]] function()return native_invoker.unified_void(0x760910B49D2B98EA, "")end - -- Hashed version of BG_START_CONTEXT. - BG_START_CONTEXT_HASH=--[[void]] function(--[[Hash (int)]] contextHash)return native_invoker.unified_void(contextHash, 0x75B18E49607874C7, "i")end - -- Hashed version of BG_END_CONTEXT. - BG_END_CONTEXT_HASH=--[[void]] function(--[[Hash (int)]] contextHash)return native_invoker.unified_void(contextHash, 0x107E5CC7CA942BC1, "i")end - -- Inserts the given context into the background scripts context map. - BG_START_CONTEXT=--[[void]] function(--[[string]] contextName)return native_invoker.unified_void(contextName, 0x9D5A25BADB742ACD, "s")end - -- Deletes the given context from the background scripts context map. - BG_END_CONTEXT=--[[void]] function(--[[string]] contextName)return native_invoker.unified_void(contextName, 0xDC2BACD920D0A0DD, "s")end - BG_DOES_LAUNCH_PARAM_EXIST=--[[BOOL (bool)]] function(--[[int]] scriptIndex,--[[string]] p1)return native_invoker.unified_bool(scriptIndex, p1, 0x0F6F1EBBC4E1D5E6, "is")end - BG_GET_LAUNCH_PARAM_VALUE=--[[int]] function(--[[int]] scriptIndex,--[[string]] p1)return native_invoker.unified_int(scriptIndex, p1, 0x22E21FBCFC88C149, "is")end - BG_GET_SCRIPT_ID_FROM_NAME_HASH=--[[int]] function(--[[Hash (int)]] p0)return native_invoker.unified_int(p0, 0x829CD22E043A2577, "i")end - -- New variant of SEND_TU_SCRIPT_EVENT that automatically initializes the event data header. - -- See TRIGGER_SCRIPT_EVENT for more info. - _SEND_TU_SCRIPT_EVENT_NEW=--[[void]] function(--[[int]] eventGroup,--[[Any* (pointer)]] eventData,--[[int]] eventDataSize,--[[int]] playerBits,--[[Hash (int)]] eventType)return native_invoker.unified_void(eventGroup, eventData, eventDataSize, playerBits, eventType, 0x71A6F836422FDD2B, "ipiii")end --- SECURITY - -- Registers a protected variable that will be checked for modifications by the anticheat - REGISTER_SCRIPT_VARIABLE=--[[void]] function(--[[Any* (pointer)]] variable)return native_invoker.unified_void(variable, 0x40EB1EFD921822BC, "p")end - UNREGISTER_SCRIPT_VARIABLE=--[[void]] function(--[[Any* (pointer)]] variable)return native_invoker.unified_void(variable, 0x340A36A700E99699, "p")end - FORCE_CHECK_SCRIPT_VARIABLES=--[[void]] function()return native_invoker.unified_void(0x8E580AB902917360, "")end --- SHAPETEST - -- Asynchronously starts a line-of-sight (raycast) world probe shape test. - -- - -- Use the handle with 0x3D87450E15D98694 or 0x65287525D951F6BE until it returns 0 or 2. - -- - -- p8 is a bit mask with bits 1, 2 and/or 4, relating to collider types; 4 should usually be used. - START_SHAPE_TEST_LOS_PROBE=--[[int]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[int]] flags,--[[Entity (int)]] entity,--[[int]] p8)return native_invoker.unified_int(x1, y1, z1, x2, y2, z2, flags, entity, p8, 0x7EE9F5D83DD4F90E, "ffffffiii")end - -- Does the same as 0x7EE9F5D83DD4F90E, except blocking until the shape test completes. - START_EXPENSIVE_SYNCHRONOUS_SHAPE_TEST_LOS_PROBE=--[[int]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[int]] flags,--[[Entity (int)]] entity,--[[int]] p8)return native_invoker.unified_int(x1, y1, z1, x2, y2, z2, flags, entity, p8, 0x377906D8A31E5586, "ffffffiii")end - START_SHAPE_TEST_BOUNDING_BOX=--[[int]] function(--[[Entity (int)]] entity,--[[int]] flags1,--[[int]] flags2)return native_invoker.unified_int(entity, flags1, flags2, 0x052837721A854EC7, "iii")end - START_SHAPE_TEST_BOX=--[[int]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] dimX,--[[float]] dimY,--[[float]] dimZ,--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ,--[[Any (int)]] p9,--[[int]] flags,--[[Entity (int)]] entity,--[[Any (int)]] p12)return native_invoker.unified_int(x, y, z, dimX, dimY, dimZ, rotX, rotY, rotZ, p9, flags, entity, p12, 0xFE466162C4401D18, "fffffffffiiii")end - START_SHAPE_TEST_BOUND=--[[int]] function(--[[Entity (int)]] entity,--[[int]] flags1,--[[int]] flags2)return native_invoker.unified_int(entity, flags1, flags2, 0x37181417CE7C8900, "iii")end - -- Raycast from point to point, where the ray has a radius. - -- - -- flags: - -- vehicles=10 - -- peds =12 - -- - -- Iterating through flags yields many ped / vehicle/ object combinations - -- - -- p9 = 7, but no idea what it does - -- - -- Entity is an entity to ignore - START_SHAPE_TEST_CAPSULE=--[[int]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] radius,--[[int]] flags,--[[Entity (int)]] entity,--[[int]] p9)return native_invoker.unified_int(x1, y1, z1, x2, y2, z2, radius, flags, entity, p9, 0x28579D1B8F8AAC80, "fffffffiii")end - START_SHAPE_TEST_SWEPT_SPHERE=--[[int]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] radius,--[[int]] flags,--[[Entity (int)]] entity,--[[Any (int)]] p9)return native_invoker.unified_int(x1, y1, z1, x2, y2, z2, radius, flags, entity, p9, 0xE6AC6C45FBE83004, "fffffffiii")end - -- Returns a ShapeTest handle that can be used with GET_SHAPE_TEST_RESULT. - -- - -- In its only usage in game scripts its called with flag set to 511, entity to player_ped_id and flag2 set to 7 - START_SHAPE_TEST_MOUSE_CURSOR_LOS_PROBE=--[[int]] function(--[[Vector3* (pointer)]] pVec1,--[[Vector3* (pointer)]] pVec2,--[[int]] flag,--[[Entity (int)]] entity,--[[int]] flag2)return native_invoker.unified_int(pVec1, pVec2, flag, entity, flag2, 0xFF6BE494C7987F34, "ppiii")end - -- Returns the result of a shape test: 0 if the handle is invalid, 1 if the shape test is still pending, or 2 if the shape test has completed, and the handle should be invalidated. - -- - -- When used with an asynchronous shape test, this native should be looped until returning 0 or 2, after which the handle is invalidated. - GET_SHAPE_TEST_RESULT=--[[int]] function(--[[int]] shapeTestHandle,--[[BOOL* (pointer)]] hit,--[[Vector3* (pointer)]] endCoords,--[[Vector3* (pointer)]] surfaceNormal,--[[Entity* (pointer)]] entityHit)return native_invoker.unified_int(shapeTestHandle, hit, endCoords, surfaceNormal, entityHit, 0x3D87450E15D98694, "ipppp")end - -- Returns the result of a shape test, also returning the material of any touched surface. - -- - -- When used with an asynchronous shape test, this native should be looped until returning 0 or 2, after which the handle is invalidated. - -- - -- Unless the return value is 2, the other return values are undefined. - GET_SHAPE_TEST_RESULT_INCLUDING_MATERIAL=--[[int]] function(--[[int]] shapeTestHandle,--[[BOOL* (pointer)]] hit,--[[Vector3* (pointer)]] endCoords,--[[Vector3* (pointer)]] surfaceNormal,--[[Hash* (pointer)]] materialHash,--[[Entity* (pointer)]] entityHit)return native_invoker.unified_int(shapeTestHandle, hit, endCoords, surfaceNormal, materialHash, entityHit, 0x65287525D951F6BE, "ippppp")end - -- Invalidates the entity handle passed by removing the fwScriptGuid from the entity. This should be used when receiving an ambient entity from shape testing natives, but can also be used for other natives returning an 'irrelevant' entity handle. - RELEASE_SCRIPT_GUID_FROM_ENTITY=--[[void]] function(--[[Entity (int)]] entityHit)return native_invoker.unified_void(entityHit, 0x2B3334BCA57CD799, "i")end --- SOCIALCLUB - SC_INBOX_GET_TOTAL_NUM_MESSAGES=--[[int]] function()return native_invoker.unified_int(0x03A93FF1A2CA0864, "")end - SC_INBOX_GET_MESSAGE_TYPE_AT_INDEX=--[[Hash (int)]] function(--[[int]] msgIndex)return native_invoker.unified_int(msgIndex, 0xBB8EA16ECBC976C4, "i")end - SC_INBOX_GET_MESSAGE_IS_READ_AT_INDEX=--[[BOOL (bool)]] function(--[[int]] msgIndex)return native_invoker.unified_bool(msgIndex, 0x93028F1DB42BFD08, "i")end - SC_INBOX_SET_MESSAGE_AS_READ_AT_INDEX=--[[BOOL (bool)]] function(--[[int]] msgIndex)return native_invoker.unified_bool(msgIndex, 0x2C015348CF19CA1D, "i")end - SC_INBOX_MESSAGE_GET_DATA_INT=--[[BOOL (bool)]] function(--[[int]] p0,--[[string]] context,--[[int* (pointer)]] out)return native_invoker.unified_bool(p0, context, out, 0xA00EFE4082C4056E, "isp")end - SC_INBOX_MESSAGE_GET_DATA_BOOL=--[[BOOL (bool)]] function(--[[int]] p0,--[[string]] p1)return native_invoker.unified_bool(p0, p1, 0xFFE5C16F402D851D, "is")end - SC_INBOX_MESSAGE_GET_DATA_STRING=--[[BOOL (bool)]] function(--[[int]] p0,--[[string]] context,--[[char* (pointer)]] out)return native_invoker.unified_bool(p0, context, out, 0x7572EF42FC6A9B6D, "isp")end - SC_INBOX_MESSAGE_DO_APPLY=--[[BOOL (bool)]] function(--[[int]] p0)return native_invoker.unified_bool(p0, 0x9A2C8064B6C1E41A, "i")end - SC_INBOX_MESSAGE_GET_RAW_TYPE_AT_INDEX=--[[string]] function(--[[int]] p0)return native_invoker.unified_string(p0, 0xF3E31D16CBDCB304, "i")end - SC_INBOX_MESSAGE_PUSH_GAMER_T0_RECIP_LIST=--[[void]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_void(gamerHandle, 0xDA024BDBD600F44A, "p")end - SC_INBOX_SEND_UGCSTATUPDATE_TO_RECIP_LIST=--[[void]] function(--[[Any* (pointer)]] data)return native_invoker.unified_void(data, 0xA68D3D229F4F3B06, "p")end - SC_INBOX_MESSAGE_GET_UGCDATA=--[[BOOL (bool)]] function(--[[int]] p0,--[[Any* (pointer)]] p1)return native_invoker.unified_bool(p0, p1, 0x69D82604A1A5A254, "ip")end - SC_INBOX_GET_BOUNTY_DATA_AT_INDEX=--[[BOOL (bool)]] function(--[[int]] index,--[[Any* (pointer)]] outData)return native_invoker.unified_bool(index, outData, 0x87E0052F08BD64E6, "ip")end - SC_EMAIL_RETRIEVE_EMAILS=--[[void]] function(--[[int]] offset,--[[int]] limit)return native_invoker.unified_void(offset, limit, 0x040ADDCBAFA1018A, "ii")end - SC_EMAIL_GET_RETRIEVAL_STATUS=--[[int]] function()return native_invoker.unified_int(0x16DA8172459434AA, "")end - SC_EMAIL_GET_NUM_RETRIEVED_EMAILS=--[[int]] function()return native_invoker.unified_int(0x7DB18CA8CAD5B098, "")end - SC_EMAIL_GET_EMAIL_AT_INDEX=--[[BOOL (bool)]] function(--[[int]] p0,--[[Any* (pointer)]] p1)return native_invoker.unified_bool(p0, p1, 0x4737980E8A283806, "ip")end - SC_EMAIL_DELETE_EMAILS=--[[void]] function(--[[Any* (pointer)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x44ACA259D67651DB, "pi")end - SC_EMAIL_MESSAGE_PUSH_GAMER_TO_RECIP_LIST=--[[void]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_void(gamerHandle, 0x2330C12A7A605D16, "p")end - SC_EMAIL_MESSAGE_CLEAR_RECIP_LIST=--[[void]] function()return native_invoker.unified_void(0x55DF6DB45179236E, "")end - SC_EMAIL_SEND_EMAIL=--[[void]] function(--[[string]] p0)return native_invoker.unified_void(p0, 0x116FB94DC4B79F17, "s")end - SC_EMAIL_SET_CURRENT_EMAIL_TAG=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x07DBD622D9533857, "i")end - SC_CACHE_NEW_ROCKSTAR_MSGS=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xBFA0A56A817C6C7D, "b")end - SC_HAS_NEW_ROCKSTAR_MSG=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xBC1CC91205EC8D6E, "")end - SC_GET_NEW_ROCKSTAR_MSG=--[[string]] function()return native_invoker.unified_string(0xDF649C4E9AFDD788, "")end - SC_PRESENCE_ATTR_SET_INT=--[[BOOL (bool)]] function(--[[Hash (int)]] attrHash,--[[int]] value)return native_invoker.unified_bool(attrHash, value, 0x1F1E9682483697C7, "ii")end - SC_PRESENCE_ATTR_SET_FLOAT=--[[BOOL (bool)]] function(--[[Hash (int)]] attrHash,--[[float]] value)return native_invoker.unified_bool(attrHash, value, 0xC4C4575F62534A24, "if")end - SC_PRESENCE_ATTR_SET_STRING=--[[BOOL (bool)]] function(--[[Hash (int)]] attrHash,--[[string]] value)return native_invoker.unified_bool(attrHash, value, 0x287F1F75D2803595, "is")end - SC_PRESENCE_SET_ACTIVITY_RATING=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[float]] p1)return native_invoker.unified_bool(p0, p1, 0x487912FD248EFDDF, "if")end - SC_GAMERDATA_GET_INT=--[[BOOL (bool)]] function(--[[string]] name,--[[int* (pointer)]] value)return native_invoker.unified_bool(name, value, 0xC85A7127E7AD02AA, "sp")end - SC_GAMERDATA_GET_FLOAT=--[[BOOL (bool)]] function(--[[string]] name,--[[float* (pointer)]] value)return native_invoker.unified_bool(name, value, 0xA770C8EEC6FB2AC5, "sp")end - SC_GAMERDATA_GET_BOOL=--[[BOOL (bool)]] function(--[[string]] name)return native_invoker.unified_bool(name, 0x8416FE4E4629D7D7, "s")end - SC_GAMERDATA_GET_STRING=--[[BOOL (bool)]] function(--[[string]] name,--[[char* (pointer)]] value)return native_invoker.unified_bool(name, value, 0x7FFCBFEE44ECFABF, "sp")end - SC_GAMERDATA_GET_ACTIVE_XP_BONUS=--[[BOOL (bool)]] function(--[[float* (pointer)]] value)return native_invoker.unified_bool(value, 0x2D874D4AE612A65F, "p")end - -- Starts a task to check an entered string for profanity on the ROS/Social Club services. - -- - -- See also: 1753344C770358AE, 82E4A58BABC15AE7. - SC_PROFANITY_CHECK_STRING=--[[BOOL (bool)]] function(--[[string]] string,--[[int* (pointer)]] token)return native_invoker.unified_bool(string, token, 0x75632C5ECD7ED843, "sp")end - SC_PROFANITY_CHECK_STRING_UGC=--[[BOOL (bool)]] function(--[[string]] string,--[[int* (pointer)]] token)return native_invoker.unified_bool(string, token, 0xEB2BF817463DFA28, "sp")end - SC_PROFANITY_GET_CHECK_IS_VALID=--[[BOOL (bool)]] function(--[[int]] token)return native_invoker.unified_bool(token, 0x1753344C770358AE, "i")end - SC_PROFANITY_GET_CHECK_IS_PENDING=--[[BOOL (bool)]] function(--[[int]] token)return native_invoker.unified_bool(token, 0x82E4A58BABC15AE7, "i")end - SC_PROFANITY_GET_STRING_PASSED=--[[BOOL (bool)]] function(--[[int]] token)return native_invoker.unified_bool(token, 0x85535ACF97FC0969, "i")end - SC_PROFANITY_GET_STRING_STATUS=--[[int]] function(--[[int]] token)return native_invoker.unified_int(token, 0x930DE22F07B1CCE3, "i")end - SC_LICENSEPLATE_CHECK_STRING=--[[BOOL (bool)]] function(--[[string]] p0,--[[int* (pointer)]] p1)return native_invoker.unified_bool(p0, p1, 0xF6BAAAF762E1BF40, "sp")end - SC_LICENSEPLATE_GET_CHECK_IS_VALID=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0xF22CA0FD74B80E7A, "i")end - SC_LICENSEPLATE_GET_CHECK_IS_PENDING=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x9237E334F6E43156, "i")end - SC_LICENSEPLATE_GET_COUNT=--[[int]] function(--[[int]] token)return native_invoker.unified_int(token, 0x700569DBA175A77C, "i")end - SC_LICENSEPLATE_GET_PLATE=--[[string]] function(--[[int]] token,--[[int]] plateIndex)return native_invoker.unified_string(token, plateIndex, 0x1D4446A62D35B0D0, "ii")end - SC_LICENSEPLATE_GET_PLATE_DATA=--[[string]] function(--[[int]] token,--[[int]] plateIndex)return native_invoker.unified_string(token, plateIndex, 0x2E89990DDFF670C3, "ii")end - SC_LICENSEPLATE_SET_PLATE_DATA=--[[BOOL (bool)]] function(--[[string]] oldPlateText,--[[string]] newPlateText,--[[Any* (pointer)]] plateData)return native_invoker.unified_bool(oldPlateText, newPlateText, plateData, 0xD0EE05FE193646EA, "ssp")end - SC_LICENSEPLATE_ADD=--[[BOOL (bool)]] function(--[[string]] plateText,--[[Any* (pointer)]] plateData,--[[int* (pointer)]] token)return native_invoker.unified_bool(plateText, plateData, token, 0x1989C6E6F67E76A8, "spp")end - SC_LICENSEPLATE_GET_ADD_IS_PENDING=--[[BOOL (bool)]] function(--[[int]] token)return native_invoker.unified_bool(token, 0x07C61676E5BB52CD, "i")end - SC_LICENSEPLATE_GET_ADD_STATUS=--[[int]] function(--[[int]] token)return native_invoker.unified_int(token, 0x8147FFF6A718E1AD, "i")end - SC_LICENSEPLATE_ISVALID=--[[BOOL (bool)]] function(--[[string]] plateText,--[[int* (pointer)]] token)return native_invoker.unified_bool(plateText, token, 0x0F73393BAC7E6730, "sp")end - SC_LICENSEPLATE_GET_ISVALID_IS_PENDING=--[[BOOL (bool)]] function(--[[int]] token)return native_invoker.unified_bool(token, 0xD302E99EDF0449CF, "i")end - SC_LICENSEPLATE_GET_ISVALID_STATUS=--[[int]] function(--[[int]] token)return native_invoker.unified_int(token, 0x5C4EBFFA98BDB41C, "i")end - SC_COMMUNITY_EVENT_IS_ACTIVE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xFF8F3A92B75ED67A, "")end - SC_COMMUNITY_EVENT_GET_EVENT_ID=--[[int]] function()return native_invoker.unified_int(0x4ED9C8D6DA297639, "")end - SC_COMMUNITY_EVENT_GET_EXTRA_DATA_INT=--[[BOOL (bool)]] function(--[[string]] p0,--[[int* (pointer)]] p1)return native_invoker.unified_bool(p0, p1, 0x710BCDA8071EDED1, "sp")end - SC_COMMUNITY_EVENT_GET_EXTRA_DATA_FLOAT=--[[BOOL (bool)]] function(--[[string]] p0,--[[float* (pointer)]] p1)return native_invoker.unified_bool(p0, p1, 0x50A8A36201DBF83E, "sp")end - SC_COMMUNITY_EVENT_GET_EXTRA_DATA_STRING=--[[BOOL (bool)]] function(--[[string]] p0,--[[char* (pointer)]] p1)return native_invoker.unified_bool(p0, p1, 0x9DE5D2F723575ED0, "sp")end - SC_COMMUNITY_EVENT_GET_DISPLAY_NAME=--[[BOOL (bool)]] function(--[[char* (pointer)]] p0)return native_invoker.unified_bool(p0, 0xC2C97EA97711D1AE, "p")end - SC_COMMUNITY_EVENT_IS_ACTIVE_FOR_TYPE=--[[BOOL (bool)]] function(--[[string]] p0)return native_invoker.unified_bool(p0, 0x450819D8CF90C416, "s")end - SC_COMMUNITY_EVENT_GET_EVENT_ID_FOR_TYPE=--[[int]] function(--[[string]] p0)return native_invoker.unified_int(p0, 0x4A7D6E727F941747, "s")end - SC_COMMUNITY_EVENT_GET_EXTRA_DATA_INT_FOR_TYPE=--[[BOOL (bool)]] function(--[[string]] p0,--[[int* (pointer)]] p1,--[[string]] p2)return native_invoker.unified_bool(p0, p1, p2, 0xE75A4A2E5E316D86, "sps")end - SC_COMMUNITY_EVENT_GET_EXTRA_DATA_FLOAT_FOR_TYPE=--[[BOOL (bool)]] function(--[[string]] p0,--[[float* (pointer)]] p1,--[[string]] p2)return native_invoker.unified_bool(p0, p1, p2, 0x2570E26BE63964E3, "sps")end - SC_COMMUNITY_EVENT_GET_EXTRA_DATA_STRING_FOR_TYPE=--[[BOOL (bool)]] function(--[[string]] p0,--[[char* (pointer)]] p1,--[[string]] p2)return native_invoker.unified_bool(p0, p1, p2, 0x1D12A56FC95BE92E, "sps")end - SC_COMMUNITY_EVENT_GET_DISPLAY_NAME_FOR_TYPE=--[[BOOL (bool)]] function(--[[char* (pointer)]] p0,--[[string]] p1)return native_invoker.unified_bool(p0, p1, 0x33DF47CC0642061B, "ps")end - SC_COMMUNITY_EVENT_IS_ACTIVE_BY_ID=--[[BOOL (bool)]] function(--[[int]] p0)return native_invoker.unified_bool(p0, 0xA468E0BE12B12C70, "i")end - SC_COMMUNITY_EVENT_GET_EXTRA_DATA_INT_BY_ID=--[[BOOL (bool)]] function(--[[int]] p0,--[[string]] p1,--[[int* (pointer)]] p2)return native_invoker.unified_bool(p0, p1, p2, 0x8CC469AB4D349B7C, "isp")end - SC_COMMUNITY_EVENT_GET_EXTRA_DATA_FLOAT_BY_ID=--[[BOOL (bool)]] function(--[[int]] p0,--[[string]] p1,--[[float* (pointer)]] p2)return native_invoker.unified_bool(p0, p1, p2, 0xC5A35C73B68F3C49, "isp")end - SC_COMMUNITY_EVENT_GET_EXTRA_DATA_STRING_BY_ID=--[[BOOL (bool)]] function(--[[int]] p0,--[[string]] p1,--[[char* (pointer)]] p2)return native_invoker.unified_bool(p0, p1, p2, 0x699E4A5C8C893A18, "isp")end - SC_COMMUNITY_EVENT_GET_DISPLAY_NAME_BY_ID=--[[BOOL (bool)]] function(--[[int]] p0,--[[char* (pointer)]] p1)return native_invoker.unified_bool(p0, p1, 0x19853B5B17D77BCA, "ip")end - SC_TRANSITION_NEWS_SHOW=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x6BFB12CE158E3DD4, "i")end - SC_TRANSITION_NEWS_SHOW_TIMED=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_bool(p0, p1, 0xFE4C1D0D3B9CC17E, "ii")end - SC_TRANSITION_NEWS_SHOW_NEXT_ITEM=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xD8122C407663B995, "")end - SC_TRANSITION_NEWS_HAS_EXTRA_DATA_TU=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x3001BEF2FECA3680, "")end - SC_TRANSITION_NEWS_GET_EXTRA_DATA_INT_TU=--[[BOOL (bool)]] function(--[[string]] p0,--[[int* (pointer)]] p1)return native_invoker.unified_bool(p0, p1, 0x92DA6E70EF249BD1, "sp")end - SC_TRANSITION_NEWS_END=--[[void]] function()return native_invoker.unified_void(0x675721C9F644D161, "")end - SC_PAUSE_NEWS_INIT_STARTER_PACK=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0xE4F6E8D07A2F0F51, "i")end - -- Fills some 0x30 sized struct - SC_PAUSE_NEWS_GET_PENDING_STORY=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x8A4416C0DB05FA66, "i")end - SC_PAUSE_NEWS_SHUTDOWN=--[[void]] function()return native_invoker.unified_void(0xEA95C0853A27888E, "")end - -- Returns the nickname of the logged-in Rockstar Social Club account. - SC_ACCOUNT_INFO_GET_NICKNAME=--[[string]] function()return native_invoker.unified_string(0x198D161F458ECC7F, "")end - SC_ACHIEVEMENT_INFO_STATUS=--[[BOOL (bool)]] function(--[[int* (pointer)]] p0)return native_invoker.unified_bool(p0, 0x225798743970412B, "p")end - -- Same as HAS_ACHIEVEMENT_BEEN_PASSED - SC_HAS_ACHIEVEMENT_BEEN_PASSED=--[[BOOL (bool)]] function(--[[int]] achievementId)return native_invoker.unified_bool(achievementId, 0x418DC16FAE452C1C, "i")end --- STATS - -- Example: - -- - -- for (v_2 = 0; v_2 <= 4; v_2 += 1) { - -- STATS::STAT_CLEAR_SLOT_FOR_RELOAD(v_2); - -- } - STAT_CLEAR_SLOT_FOR_RELOAD=--[[BOOL (bool)]] function(--[[int]] statSlot)return native_invoker.unified_bool(statSlot, 0xEB0A72181D4AA4AD, "i")end - STAT_LOAD=--[[BOOL (bool)]] function(--[[int]] statSlot)return native_invoker.unified_bool(statSlot, 0xA651443F437B1CE6, "i")end - STAT_SAVE=--[[BOOL (bool)]] function(--[[int]] p0,--[[BOOL (bool)]] p1,--[[int]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_bool(p0, p1, p2, p3, 0xE07BCA305B82D2FD, "ibib")end - STAT_SET_OPEN_SAVETYPE_IN_JOB=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0x5688585E6D563CD8, "i")end - STAT_LOAD_PENDING=--[[BOOL (bool)]] function(--[[int]] statSlot)return native_invoker.unified_bool(statSlot, 0xA1750FFAFA181661, "i")end - STAT_SAVE_PENDING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x7D3A583856F2C5AC, "")end - STAT_SAVE_PENDING_OR_REQUESTED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xBBB6AD006F1BBEA3, "")end - -- p0 is characterSlot? seems range from 0 to 2 - STAT_DELETE_SLOT=--[[BOOL (bool)]] function(--[[int]] p0)return native_invoker.unified_bool(p0, 0x49A49BED12794D70, "i")end - STAT_SLOT_IS_LOADED=--[[BOOL (bool)]] function(--[[int]] statSlot)return native_invoker.unified_bool(statSlot, 0x0D0A9F0E7BD91E3C, "i")end - STAT_CLOUD_SLOT_LOAD_FAILED=--[[BOOL (bool)]] function(--[[int]] p0)return native_invoker.unified_bool(p0, 0x7F2C4CDF2E82DF4C, "i")end - STAT_CLOUD_SLOT_LOAD_FAILED_CODE=--[[int]] function(--[[Any (int)]] p0)return native_invoker.unified_int(p0, 0xE496A53BA5F50A56, "i")end - STAT_SET_BLOCK_SAVES=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xF434A10BA01C37D0, "b")end - STAT_GET_BLOCK_SAVES=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x6A7F19756F1A9016, "")end - STAT_CLOUD_SLOT_SAVE_FAILED=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x7E6946F68A38B74F, "i")end - STAT_CLEAR_PENDING_SAVES=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xA8733668D1047B51, "i")end - STAT_LOAD_DIRTY_READ_DETECTED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xECB41AC6AB754401, "")end - STAT_CLEAR_DIRTY_READ_DETECTED=--[[void]] function()return native_invoker.unified_void(0x9B4BD21D69B1E609, "")end - STAT_GET_LOAD_SAFE_TO_PROGRESS_TO_MP_FROM_SP=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC0E0D686DDFC6EAE, "")end - -- Returns stat hash based on dataType, statIndex/statId and characterSlot. Related to CStatsMpCharacterMappingData - _GET_STAT_HASH_FOR_CHARACTER_STAT=--[[Hash (int)]] function(--[[int]] dataType,--[[int]] statIndex,--[[int]] charSlot)return native_invoker.unified_int(dataType, statIndex, charSlot, 0xD69CE161FE614531, "iii")end - -- Example: - -- STATS::STAT_SET_INT(MISC::GET_HASH_KEY("MPPLY_KILLS_PLAYERS"), 1337, true); - STAT_SET_INT=--[[BOOL (bool)]] function(--[[Hash (int)]] statName,--[[int]] value,--[[BOOL (bool)]] save)return native_invoker.unified_bool(statName, value, save, 0xB3271D7AB655B441, "iib")end - -- Example: - -- STATS::STAT_SET_FLOAT(MISC::GET_HASH_KEY("MP0_WEAPON_ACCURACY"), 66.6f, true); - STAT_SET_FLOAT=--[[BOOL (bool)]] function(--[[Hash (int)]] statName,--[[float]] value,--[[BOOL (bool)]] save)return native_invoker.unified_bool(statName, value, save, 0x4851997F37FE9B3C, "ifb")end - -- Example: - -- STATS::STAT_SET_BOOL(MISC::GET_HASH_KEY("MPPLY_MELEECHLENGECOMPLETED"), trur, true); - STAT_SET_BOOL=--[[BOOL (bool)]] function(--[[Hash (int)]] statName,--[[BOOL (bool)]] value,--[[BOOL (bool)]] save)return native_invoker.unified_bool(statName, value, save, 0x4B33C4243DE0C432, "ibb")end - -- The following values have been found in the decompiled scripts: - -- "RC_ABI1" - -- "RC_ABI2" - -- "RC_BA1" - -- "RC_BA2" - -- "RC_BA3" - -- "RC_BA3A" - -- "RC_BA3C" - -- "RC_BA4" - -- "RC_DRE1" - -- "RC_EPS1" - -- "RC_EPS2" - -- "RC_EPS3" - -- "RC_EPS4" - -- "RC_EPS5" - -- "RC_EPS6" - -- "RC_EPS7" - -- "RC_EPS8" - -- "RC_EXT1" - -- "RC_EXT2" - -- "RC_EXT3" - -- "RC_EXT4" - -- "RC_FAN1" - -- "RC_FAN2" - -- "RC_FAN3" - -- "RC_HAO1" - -- "RC_HUN1" - -- "RC_HUN2" - -- "RC_JOS1" - -- "RC_JOS2" - -- "RC_JOS3" - -- "RC_JOS4" - -- "RC_MAU1" - -- "RC_MIN1" - -- "RC_MIN2" - -- "RC_MIN3" - -- "RC_MRS1" - -- "RC_MRS2" - -- "RC_NI1" - -- "RC_NI1A" - -- "RC_NI1B" - -- "RC_NI1C" - -- "RC_NI1D" - -- "RC_NI2" - -- "RC_NI3" - -- "RC_OME1" - -- "RC_OME2" - -- "RC_PA1" - -- "RC_PA2" - -- "RC_PA3" - -- "RC_PA3A" - -- "RC_PA3B" - -- "RC_PA4" - -- "RC_RAM1" - -- "RC_RAM2" - -- "RC_RAM3" - -- "RC_RAM4" - -- "RC_RAM5" - -- "RC_SAS1" - -- "RC_TON1" - -- "RC_TON2" - -- "RC_TON3" - -- "RC_TON4" - -- "RC_TON5" - STAT_SET_GXT_LABEL=--[[BOOL (bool)]] function(--[[Hash (int)]] statName,--[[string]] value,--[[BOOL (bool)]] save)return native_invoker.unified_bool(statName, value, save, 0x17695002FD8B2AE0, "isb")end - -- 'value' is a structure to a structure, 'numFields' is how many fields there are in said structure (usually 7). - -- - -- The structure looks like this: - -- - -- int year - -- int month - -- int day - -- int hour - -- int minute - -- int second - -- int millisecond - -- - -- The decompiled scripts use TIME::GET_POSIX_TIME to fill this structure. - STAT_SET_DATE=--[[BOOL (bool)]] function(--[[Hash (int)]] statName,--[[Any* (pointer)]] value,--[[int]] numFields,--[[BOOL (bool)]] save)return native_invoker.unified_bool(statName, value, numFields, save, 0x2C29BFB64F4FCBE4, "ipib")end - STAT_SET_STRING=--[[BOOL (bool)]] function(--[[Hash (int)]] statName,--[[string]] value,--[[BOOL (bool)]] save)return native_invoker.unified_bool(statName, value, save, 0xA87B2335D12531D7, "isb")end - STAT_SET_POS=--[[BOOL (bool)]] function(--[[Hash (int)]] statName,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] save)return native_invoker.unified_bool(statName, x, y, z, save, 0xDB283FDE680FE72E, "ifffb")end - STAT_SET_MASKED_INT=--[[BOOL (bool)]] function(--[[Hash (int)]] statName,--[[int]] p1,--[[int]] p2,--[[int]] p3,--[[BOOL (bool)]] save)return native_invoker.unified_bool(statName, p1, p2, p3, save, 0x7BBB1B54583ED410, "iiiib")end - STAT_SET_USER_ID=--[[BOOL (bool)]] function(--[[Hash (int)]] statName,--[[string]] value,--[[BOOL (bool)]] save)return native_invoker.unified_bool(statName, value, save, 0x8CDDF1E452BABE11, "isb")end - -- p1 always true. - STAT_SET_CURRENT_POSIX_TIME=--[[BOOL (bool)]] function(--[[Hash (int)]] statName,--[[BOOL (bool)]] p1)return native_invoker.unified_bool(statName, p1, 0xC2F84B7F9C4D0C61, "ib")end - -- p2 appears to always be -1 - -- - STAT_GET_INT=--[[BOOL (bool)]] function(--[[Hash (int)]] statHash,--[[int* (pointer)]] outValue,--[[int]] p2)return native_invoker.unified_bool(statHash, outValue, p2, 0x767FBC2AC802EF3D, "ipi")end - STAT_GET_FLOAT=--[[BOOL (bool)]] function(--[[Hash (int)]] statHash,--[[float* (pointer)]] outValue,--[[Any (int)]] p2)return native_invoker.unified_bool(statHash, outValue, p2, 0xD7AE6C9C9C6AC54C, "ipi")end - STAT_GET_BOOL=--[[BOOL (bool)]] function(--[[Hash (int)]] statHash,--[[BOOL* (pointer)]] outValue,--[[Any (int)]] p2)return native_invoker.unified_bool(statHash, outValue, p2, 0x11B5E6D2AE73F48E, "ipi")end - -- p3 is probably characterSlot or BOOL save, always -1 - STAT_GET_DATE=--[[BOOL (bool)]] function(--[[Hash (int)]] statHash,--[[Any* (pointer)]] outValue,--[[int]] numFields,--[[Any (int)]] p3)return native_invoker.unified_bool(statHash, outValue, numFields, p3, 0x8B0FACEFC36C824B, "ipii")end - -- p1 is always -1 in the script files - STAT_GET_STRING=--[[string]] function(--[[Hash (int)]] statHash,--[[int]] p1)return native_invoker.unified_string(statHash, p1, 0xE50384ACC2C3DB74, "ii")end - -- p3 is probably characterSlot or BOOL save, always -1 - STAT_GET_POS=--[[BOOL (bool)]] function(--[[Hash (int)]] statName,--[[float* (pointer)]] outX,--[[float* (pointer)]] outY,--[[float* (pointer)]] outZ,--[[Any (int)]] p4)return native_invoker.unified_bool(statName, outX, outY, outZ, p4, 0x350F82CCB186AA1B, "ipppi")end - -- p4 is probably characterSlot or BOOL save - STAT_GET_MASKED_INT=--[[BOOL (bool)]] function(--[[Hash (int)]] statHash,--[[int* (pointer)]] outValue,--[[int]] p2,--[[int]] p3,--[[Any (int)]] p4)return native_invoker.unified_bool(statHash, outValue, p2, p3, p4, 0x655185A06D9EEAAB, "ipiii")end - -- Returns the rockstar ID (user id) value of a given stat. Returns "STAT_UNKNOWN" if the statHash is invalid or the stat has no userId - STAT_GET_USER_ID=--[[string]] function(--[[Hash (int)]] statHash)return native_invoker.unified_string(statHash, 0x2365C388E393BBE2, "i")end - STAT_GET_LICENSE_PLATE=--[[string]] function(--[[Hash (int)]] statName)return native_invoker.unified_string(statName, 0x5473D4195058B2E4, "i")end - STAT_SET_LICENSE_PLATE=--[[BOOL (bool)]] function(--[[Hash (int)]] statName,--[[string]] str)return native_invoker.unified_bool(statName, str, 0x69FF13266D7296DA, "is")end - STAT_INCREMENT=--[[void]] function(--[[Hash (int)]] statName,--[[float]] value)return native_invoker.unified_void(statName, value, 0x9B5A68C6489E9909, "if")end - STAT_COMMUNITY_START_SYNCH=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x5A556B229A169402, "")end - STAT_COMMUNITY_SYNCH_IS_PENDING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xB1D2BB1E1631F5B1, "")end - STAT_COMMUNITY_GET_HISTORY=--[[BOOL (bool)]] function(--[[Hash (int)]] statName,--[[int]] p1,--[[float* (pointer)]] outValue)return native_invoker.unified_bool(statName, p1, outValue, 0xBED9F5693F34ED17, "iip")end - -- p0 seems to range from 0 to 7 - STAT_RESET_ALL_ONLINE_CHARACTER_STATS=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0x26D7399B9587FE89, "i")end - -- p0 seems to range from 0 to 7 - STAT_LOCAL_RESET_ALL_ONLINE_CHARACTER_STATS=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0xA78B8FA58200DA56, "i")end - STAT_GET_NUMBER_OF_DAYS=--[[int]] function(--[[Hash (int)]] statName)return native_invoker.unified_int(statName, 0xE0E854F5280FB769, "i")end - STAT_GET_NUMBER_OF_HOURS=--[[int]] function(--[[Hash (int)]] statName)return native_invoker.unified_int(statName, 0xF2D4B2FE415AAFC3, "i")end - STAT_GET_NUMBER_OF_MINUTES=--[[int]] function(--[[Hash (int)]] statName)return native_invoker.unified_int(statName, 0x7583B4BE4C5A41B5, "i")end - STAT_GET_NUMBER_OF_SECONDS=--[[int]] function(--[[Hash (int)]] statName)return native_invoker.unified_int(statName, 0x2CE056FF3723F00B, "i")end - -- Does not take effect immediately, unfortunately. - -- - -- profileSetting seems to only be 936, 937 and 938 in scripts - STAT_SET_PROFILE_SETTING_VALUE=--[[void]] function(--[[int]] profileSetting,--[[int]] value)return native_invoker.unified_void(profileSetting, value, 0x68F01422BE1D838F, "ii")end - -- This native does absolutely nothing, just a nullsub - STATS_COMPLETED_CHARACTER_CREATION=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xC01D2470F22CDE5A, "i")end - -- Needs more research. Possibly used to calculate the "mask" when calling "STAT_SET_MASKED_INT"? - PACKED_STAT_GET_INT_STAT_INDEX=--[[int]] function(--[[int]] p0)return native_invoker.unified_int(p0, 0x94F12ABF9C79E339, "i")end - GET_PACKED_INT_STAT_KEY=--[[Hash (int)]] function(--[[int]] index,--[[BOOL (bool)]] spStat,--[[BOOL (bool)]] charStat,--[[int]] character)return native_invoker.unified_int(index, spStat, charStat, character, 0x61E111E323419E07, "ibbi")end - GET_PACKED_TU_INT_STAT_KEY=--[[Hash (int)]] function(--[[int]] index,--[[BOOL (bool)]] spStat,--[[BOOL (bool)]] charStat,--[[int]] character)return native_invoker.unified_int(index, spStat, charStat, character, 0xD16C2AD6B8E32854, "ibbi")end - -- Needs more research. Gets the stat name of a masked int? - -- - -- section - values used in the decompiled scripts: - -- "_NGPSTAT_INT" - -- "_MP_NGPSTAT_INT" - -- "_MP_LRPSTAT_INT" - -- "_MP_APAPSTAT_INT" - -- "_MP_LR2PSTAT_INT" - -- "_MP_BIKEPSTAT_INT" - -- "_MP_IMPEXPPSTAT_INT" - -- "_MP_GUNRPSTAT_INT" - -- "_NGDLCPSTAT_INT" - -- "_MP_NGDLCPSTAT_INT" - -- "_DLCSMUGCHARPSTAT_INT" - -- "_GANGOPSPSTAT_INT" - -- "_BUSINESSBATPSTAT_INT" - -- "_ARENAWARSPSTAT_INT" - -- "_CASINOPSTAT_INT" - -- "_CASINOHSTPSTAT_INT" - GET_PACKED_NG_INT_STAT_KEY=--[[Hash (int)]] function(--[[int]] index,--[[BOOL (bool)]] spStat,--[[BOOL (bool)]] charStat,--[[int]] character,--[[string]] section)return native_invoker.unified_int(index, spStat, charStat, character, section, 0x2B4CDCA6F07FF3DA, "ibbis")end - GET_PACKED_STAT_BOOL_CODE=--[[BOOL (bool)]] function(--[[int]] index,--[[int]] characterSlot)return native_invoker.unified_bool(index, characterSlot, 0xDA7EBFC49AE3F1B0, "ii")end - GET_PACKED_STAT_INT_CODE=--[[int]] function(--[[int]] index,--[[int]] characterSlot)return native_invoker.unified_int(index, characterSlot, 0x0BC900A6FE73770C, "ii")end - SET_PACKED_STAT_BOOL_CODE=--[[void]] function(--[[int]] index,--[[BOOL (bool)]] value,--[[int]] characterSlot)return native_invoker.unified_void(index, value, characterSlot, 0xDB8A58AEAA67CD07, "ibi")end - SET_PACKED_STAT_INT_CODE=--[[void]] function(--[[int]] index,--[[int]] value,--[[int]] characterSlot)return native_invoker.unified_void(index, value, characterSlot, 0x1581503AE529CD2E, "iii")end - PLAYSTATS_BACKGROUND_SCRIPT_ACTION=--[[void]] function(--[[string]] action,--[[int]] value)return native_invoker.unified_void(action, value, 0x5009DFD741329729, "si")end - -- p3: VehicleConversion, SCAdminCashGift - -- p4: 0 - _PLAYSTATS_FLOW_LOW=--[[void]] function(--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[string]] p3,--[[Any (int)]] p4,--[[int]] amount)return native_invoker.unified_void(posX, posY, posZ, p3, p4, amount, 0xE6A27CDA42887F93, "fffsii")end - -- interiorAction: can either be InteriorEntry or InteriorExit - _PLAYSTATS_FLOW_MEDIUM=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[string]] interiorAction,--[[int]] p4,--[[Hash (int)]] p5)return native_invoker.unified_void(x, y, z, interiorAction, p4, p5, 0xC4493521BAA12CCE, "fffsii")end - PLAYSTATS_NPC_INVITE=--[[void]] function(--[[string]] p0)return native_invoker.unified_void(p0, 0x93054C88E6AA7C44, "s")end - PLAYSTATS_AWARD_XP=--[[void]] function(--[[int]] amount,--[[Hash (int)]] type,--[[Hash (int)]] category)return native_invoker.unified_void(amount, type, category, 0x46F917F6B4128FE4, "iii")end - PLAYSTATS_RANK_UP=--[[void]] function(--[[int]] rank)return native_invoker.unified_void(rank, 0xC7F2DE41D102BFB4, "i")end - PLAYSTATS_STARTED_SESSION_IN_OFFLINEMODE=--[[void]] function()return native_invoker.unified_void(0x098760C7461724CD, "")end - PLAYSTATS_ACTIVITY_DONE=--[[void]] function(--[[int]] p0,--[[int]] activityId,--[[Any (int)]] p2)return native_invoker.unified_void(p0, activityId, p2, 0xA071E0ED98F91286, "iii")end - PLAYSTATS_LEAVE_JOB_CHAIN=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0xC5BE134EC7BA96A0, "iiiii")end - PLAYSTATS_MISSION_STARTED=--[[void]] function(--[[string]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xC19A2925C34D2231, "siib")end - PLAYSTATS_MISSION_OVER=--[[void]] function(--[[string]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[BOOL (bool)]] p3,--[[BOOL (bool)]] p4,--[[BOOL (bool)]] p5)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, 0x7C4BB33A8CED7324, "siibbb")end - PLAYSTATS_MISSION_CHECKPOINT=--[[void]] function(--[[string]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xC900596A63978C1D, "siii")end - PLAYSTATS_RANDOM_MISSION_DONE=--[[void]] function(--[[string]] name,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(name, p1, p2, p3, 0x71862B1D855F32E1, "siii")end - PLAYSTATS_ROS_BET=--[[void]] function(--[[int]] amount,--[[int]] act,--[[Player (int)]] player,--[[float]] cm)return native_invoker.unified_void(amount, act, player, cm, 0x121FB4DDDC2D5291, "iiif")end - PLAYSTATS_RACE_CHECKPOINT=--[[void]] function(--[[Vehicle (int)]] p0,--[[Any (int)]] p1,--[[int]] p2,--[[int]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0x9C375C315099DDE4, "iiiii")end - PLAYSTATS_CREATE_MATCH_HISTORY_ID_2=--[[BOOL (bool)]] function(--[[int* (pointer)]] playerAccountId,--[[int* (pointer)]] posixTime)return native_invoker.unified_bool(playerAccountId, posixTime, 0x6DEE77AFF8C21BD1, "pp")end - PLAYSTATS_MATCH_STARTED=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xBC80E22DED931E3D, "iii")end - PLAYSTATS_SHOP_ITEM=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0x176852ACAAC173D1, "iiiii")end - PLAYSTATS_CRATE_DROP_MISSION_DONE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5,--[[Any (int)]] p6,--[[Any (int)]] p7)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, p7, 0x1CAE5D2E3F9A07F0, "iiiiiiii")end - PLAYSTATS_CRATE_CREATED=--[[void]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2)return native_invoker.unified_void(p0, p1, p2, 0xAFC7E5E075A96F46, "fff")end - PLAYSTATS_HOLD_UP_MISSION_DONE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xCB00196B31C39EB1, "iiii")end - PLAYSTATS_IMPORT_EXPORT_MISSION_DONE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x2B69F5074C894811, "iiii")end - PLAYSTATS_RACE_TO_POINT_MISSION_DONE=--[[void]] function(--[[int]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xADDD1C754E2E2914, "iiii")end - PLAYSTATS_ACQUIRED_HIDDEN_PACKAGE=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x79AB33F0FBFAC40C, "i")end - PLAYSTATS_WEBSITE_VISITED=--[[void]] function(--[[Hash (int)]] scaleformHash,--[[int]] p1)return native_invoker.unified_void(scaleformHash, p1, 0xDDF24D535060F811, "ii")end - PLAYSTATS_FRIEND_ACTIVITY=--[[void]] function(--[[int]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0x0F71DE29AB2258F1, "ib")end - -- This native does absolutely nothing, just a nullsub - PLAYSTATS_ODDJOB_DONE=--[[void]] function(--[[int]] totalTimeMs,--[[int]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(totalTimeMs, p1, p2, 0x69DEA3E9DB727B4C, "iib")end - PLAYSTATS_PROP_CHANGE=--[[void]] function(--[[Ped (int)]] p0,--[[int]] p1,--[[int]] p2,--[[int]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xBA739D6D5A05D6E7, "iiii")end - PLAYSTATS_CLOTH_CHANGE=--[[void]] function(--[[Ped (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0x34B973047A2268B9, "iiiii")end - -- This is a typo made by R*. It's supposed to be called PLAYSTATS_WEAPON_MOD_CHANGE. - PLAYSTATS_WEAPON_MODE_CHANGE=--[[void]] function(--[[Hash (int)]] weaponHash,--[[Hash (int)]] componentHashTo,--[[Hash (int)]] componentHashFrom)return native_invoker.unified_void(weaponHash, componentHashTo, componentHashFrom, 0xE95C8A1875A02CA4, "iii")end - PLAYSTATS_CHEAT_APPLIED=--[[void]] function(--[[string]] cheat)return native_invoker.unified_void(cheat, 0x6058665D72302D3F, "s")end - PLAYSTATS_JOB_ACTIVITY_END=--[[void]] function(--[[Any* (pointer)]] p0,--[[Any* (pointer)]] p1,--[[Any* (pointer)]] p2,--[[Any* (pointer)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xF8C54A461C3E11DC, "pppp")end - PLAYSTATS_JOB_BEND=--[[void]] function(--[[Any* (pointer)]] p0,--[[Any* (pointer)]] p1,--[[Any* (pointer)]] p2,--[[Any* (pointer)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xF5BB8DAC426A52C0, "pppp")end - PLAYSTATS_JOB_LTS_END=--[[void]] function(--[[Any* (pointer)]] p0,--[[Any* (pointer)]] p1,--[[Any* (pointer)]] p2,--[[Any* (pointer)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xA736CF7FB7C5BFF4, "pppp")end - PLAYSTATS_JOB_LTS_ROUND_END=--[[void]] function(--[[Any* (pointer)]] p0,--[[Any* (pointer)]] p1,--[[Any* (pointer)]] p2,--[[Any* (pointer)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x14E0B2D1AD1044E0, "pppp")end - PLAYSTATS_QUICKFIX_TOOL=--[[void]] function(--[[int]] element,--[[string]] item)return native_invoker.unified_void(element, item, 0x90D0622866E80445, "is")end - PLAYSTATS_IDLE_KICK=--[[void]] function(--[[int]] msStoodIdle)return native_invoker.unified_void(msStoodIdle, 0x5DA3A8DE8CB6226F, "i")end - PLAYSTATS_SET_JOIN_TYPE=--[[void]] function(--[[int]] joinType)return native_invoker.unified_void(joinType, 0xD1032E482629049E, "i")end - PLAYSTATS_HEIST_SAVE_CHEAT=--[[void]] function(--[[Hash (int)]] hash,--[[int]] p1)return native_invoker.unified_void(hash, p1, 0xF4FF020A08BC8863, "ii")end - PLAYSTATS_APPEND_DIRECTOR_METRIC=--[[void]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_void(p0, 0x46326E13DA4E0546, "p")end - PLAYSTATS_AWARD_BAD_SPORT=--[[void]] function(--[[int]] id)return native_invoker.unified_void(id, 0x47B32F5611E6E483, "i")end - PLAYSTATS_PEGASUS_AS_PERSONAL_AIRCRAFT=--[[void]] function(--[[Hash (int)]] modelHash)return native_invoker.unified_void(modelHash, 0x9572BD4DD6B72122, "i")end - _PLAYSTATS_SHOPMENU_NAV=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xF96E9EA876D9DC92, "iiii")end - PLAYSTATS_FM_EVENT_CHALLENGES=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x6A60E43998228229, "i")end - PLAYSTATS_FM_EVENT_VEHICLETARGET=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xBFAFDB5FAAA5C5AB, "i")end - PLAYSTATS_FM_EVENT_URBANWARFARE=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x8C9D11605E59D955, "i")end - PLAYSTATS_FM_EVENT_CHECKPOINTCOLLECTION=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x3DE3AA516FB126A4, "i")end - PLAYSTATS_FM_EVENT_ATOB=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xBAA2F0490E146BE8, "i")end - PLAYSTATS_FM_EVENT_PENNEDIN=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x1A7CE7CD3E653485, "i")end - PLAYSTATS_FM_EVENT_PASSTHEPARCEL=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x419615486BBF1956, "i")end - PLAYSTATS_FM_EVENT_HOTPROPERTY=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x84DFC579C2FC214C, "i")end - PLAYSTATS_FM_EVENT_DEADDROP=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x0A9C7F36E5D7B683, "i")end - PLAYSTATS_FM_EVENT_KINGOFTHECASTLE=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x164C5FF663790845, "i")end - PLAYSTATS_FM_EVENT_CRIMINALDAMAGE=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xEDBF6C9B0D2C65C8, "i")end - PLAYSTATS_FM_EVENT_COMPETITIVEURBANWARFARE=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x6551B1F7F6CD46EA, "i")end - PLAYSTATS_FM_EVENT_HUNTBEAST=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x2CD90358F67D0AA8, "i")end - PLAYSTATS_PIMENU_HIDE_OPTIONS=--[[void]] function(--[[Any* (pointer)]] data)return native_invoker.unified_void(data, 0x203B381133817079, "p")end - LEADERBOARDS_GET_NUMBER_OF_COLUMNS=--[[int]] function(--[[int]] p0,--[[Any (int)]] p1)return native_invoker.unified_int(p0, p1, 0x117B45156D7EFF2E, "ii")end - LEADERBOARDS_GET_COLUMN_ID=--[[int]] function(--[[int]] p0,--[[int]] p1,--[[int]] p2)return native_invoker.unified_int(p0, p1, p2, 0xC4B5467A1886EA7E, "iii")end - LEADERBOARDS_GET_COLUMN_TYPE=--[[int]] function(--[[int]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_int(p0, p1, p2, 0xBF4FEF46DB7894D3, "iii")end - LEADERBOARDS_READ_CLEAR_ALL=--[[int]] function()return native_invoker.unified_int(0xA34CB6E6F0DF4A0B, "")end - LEADERBOARDS_READ_CLEAR=--[[int]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_int(p0, p1, p2, 0x7CCE5C737A665701, "iii")end - LEADERBOARDS_READ_PENDING=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_bool(p0, p1, p2, 0xAC392C8483342AC2, "iii")end - LEADERBOARDS_READ_ANY_PENDING=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xA31FD15197B192BD, "")end - LEADERBOARDS_READ_SUCCESSFUL=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_bool(p0, p1, p2, 0x2FB19228983E832C, "iii")end - LEADERBOARDS2_READ_FRIENDS_BY_ROW=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[Any* (pointer)]] p1,--[[Any (int)]] p2,--[[BOOL (bool)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5)return native_invoker.unified_bool(p0, p1, p2, p3, p4, p5, 0x918B101666F9CB83, "ppibii")end - LEADERBOARDS2_READ_BY_HANDLE=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[Any* (pointer)]] p1)return native_invoker.unified_bool(p0, p1, 0xC30713A383BFBF0E, "pp")end - LEADERBOARDS2_READ_BY_RANK=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_bool(p0, p1, p2, 0xBA2C7DB0C129449A, "pii")end - LEADERBOARDS2_READ_BY_RADIUS=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[Any (int)]] p1,--[[Any* (pointer)]] p2)return native_invoker.unified_bool(p0, p1, p2, 0x5CE587FB5A42C8C4, "pip")end - LEADERBOARDS2_READ_BY_SCORE_INT=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_bool(p0, p1, p2, 0x7EEC7E4F6984A16A, "pii")end - LEADERBOARDS2_READ_BY_SCORE_FLOAT=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[float]] p1,--[[Any (int)]] p2)return native_invoker.unified_bool(p0, p1, p2, 0xE662C8B759D08F3C, "pfi")end - LEADERBOARDS2_READ_RANK_PREDICTION=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[Any* (pointer)]] p1,--[[Any* (pointer)]] p2)return native_invoker.unified_bool(p0, p1, p2, 0xC38DC1E90D22547C, "ppp")end - LEADERBOARDS2_READ_BY_PLAFORM=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[string]] gamerHandleCsv,--[[string]] platformName)return native_invoker.unified_bool(p0, gamerHandleCsv, platformName, 0xF1AE5DCDBFCA2721, "pss")end - LEADERBOARDS2_READ_GET_ROW_DATA_START=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_bool(p0, 0xA0F93D5465B3094D, "p")end - LEADERBOARDS2_READ_GET_ROW_DATA_END=--[[void]] function()return native_invoker.unified_void(0x71B008056E5692D6, "")end - LEADERBOARDS2_READ_GET_ROW_DATA_INFO=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any* (pointer)]] p1)return native_invoker.unified_bool(p0, p1, 0x34770B9CE0E03B91, "ip")end - LEADERBOARDS2_READ_GET_ROW_DATA_INT=--[[int]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_int(p0, p1, 0x88578F6EC36B4A3A, "ii")end - LEADERBOARDS2_READ_GET_ROW_DATA_FLOAT=--[[float]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_float(p0, p1, 0x38491439B6BA7F7D, "ii")end - LEADERBOARDS2_WRITE_DATA=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_bool(p0, 0xAE2206545888AE49, "p")end - LEADERBOARDS_WRITE_ADD_COLUMN=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[float]] p2)return native_invoker.unified_void(p0, p1, p2, 0x0BCA1D2C47B0D269, "iif")end - LEADERBOARDS_WRITE_ADD_COLUMN_LONG=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x2E65248609523599, "iii")end - LEADERBOARDS_CACHE_DATA_ROW=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_bool(p0, 0xB9BB18E2C40142ED, "p")end - LEADERBOARDS_CLEAR_CACHE_DATA=--[[void]] function()return native_invoker.unified_void(0xD4B02A6B476E1FDC, "")end - LEADERBOARDS_CLEAR_CACHE_DATA_ID=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x8EC74CEB042E7CFF, "i")end - LEADERBOARDS_GET_CACHE_EXISTS=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x9C51349BE6CDFE2C, "i")end - LEADERBOARDS_GET_CACHE_TIME=--[[int]] function(--[[Any (int)]] p0)return native_invoker.unified_int(p0, 0xF04C1C27DA35F6C8, "i")end - LEADERBOARDS_GET_CACHE_NUMBER_OF_ROWS=--[[int]] function(--[[Any (int)]] p0)return native_invoker.unified_int(p0, 0x58A651CD201D89AD, "i")end - LEADERBOARDS_GET_CACHE_DATA_ROW=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any* (pointer)]] p2)return native_invoker.unified_bool(p0, p1, p2, 0x9120E8DBA3D69273, "iip")end - PRESENCE_EVENT_UPDATESTAT_INT=--[[void]] function(--[[Hash (int)]] statHash,--[[int]] value,--[[int]] p2)return native_invoker.unified_void(statHash, value, p2, 0x11FF1C80276097ED, "iii")end - PRESENCE_EVENT_UPDATESTAT_FLOAT=--[[void]] function(--[[Hash (int)]] statHash,--[[float]] value,--[[int]] p2)return native_invoker.unified_void(statHash, value, p2, 0x30A6614C1F7799B8, "ifi")end - PRESENCE_EVENT_UPDATESTAT_INT_WITH_STRING=--[[void]] function(--[[Hash (int)]] statHash,--[[int]] value,--[[int]] p2,--[[string]] string)return native_invoker.unified_void(statHash, value, p2, string, 0x6483C25849031C4F, "iiis")end - GET_PLAYER_HAS_DRIVEN_ALL_VEHICLES=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x5EAD2BF6484852E4, "")end - SET_HAS_POSTED_ALL_VEHICLES_DRIVEN=--[[void]] function()return native_invoker.unified_void(0xC141B8917E0017EC, "")end - SET_PROFILE_SETTING_PROLOGUE_COMPLETE=--[[void]] function()return native_invoker.unified_void(0xB475F27C6A994D65, "")end - -- Sets profile setting 939 - SET_PROFILE_SETTING_SP_CHOP_MISSION_COMPLETE=--[[void]] function()return native_invoker.unified_void(0xC67E2DA1CBE759E2, "")end - -- Sets profile setting 933 - SET_PROFILE_SETTING_CREATOR_RACES_DONE=--[[void]] function(--[[int]] value)return native_invoker.unified_void(value, 0xF1A1803D3476F215, "i")end - -- Sets profile setting 934 - SET_PROFILE_SETTING_CREATOR_DM_DONE=--[[void]] function(--[[int]] value)return native_invoker.unified_void(value, 0x38BAAA5DD4C9D19F, "i")end - -- Sets profile setting 935 - SET_PROFILE_SETTING_CREATOR_CTF_DONE=--[[void]] function(--[[int]] value)return native_invoker.unified_void(value, 0x55384438FC55AD8E, "i")end - SET_JOB_ACTIVITY_ID_STARTED=--[[void]] function(--[[Any (int)]] p0,--[[int]] characterSlot)return native_invoker.unified_void(p0, characterSlot, 0x723C1CE13FBFDB67, "ii")end - SET_FREEMODE_PROLOGUE_DONE=--[[void]] function(--[[Any (int)]] p0,--[[int]] characterSlot)return native_invoker.unified_void(p0, characterSlot, 0x0D01D20616FC73FB, "ii")end - -- Sets profile setting 940 and 941 - SET_FREEMODE_STRAND_PROGRESSION_STATUS=--[[void]] function(--[[int]] profileSetting,--[[int]] settingValue)return native_invoker.unified_void(profileSetting, settingValue, 0x79D310A861697CC9, "ii")end - STAT_NETWORK_INCREMENT_ON_SUICIDE=--[[void]] function(--[[Any (int)]] p0,--[[float]] p1)return native_invoker.unified_void(p0, p1, 0x428EAF89E24F6C36, "if")end - STAT_SET_CHEAT_IS_ACTIVE=--[[void]] function()return native_invoker.unified_void(0x047CBED6F6F8B63C, "")end - LEADERBOARDS2_WRITE_DATA_FOR_EVENT_TYPE=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[Any* (pointer)]] p1)return native_invoker.unified_bool(p0, p1, 0xC980E62E33DF1D5C, "pp")end - FORCE_CLOUD_MP_STATS_DOWNLOAD_AND_OVERWRITE_LOCAL_SAVE=--[[void]] function()return native_invoker.unified_void(0x6F361B8889A792A3, "")end - STAT_MIGRATE_CLEAR_FOR_RESTART=--[[void]] function()return native_invoker.unified_void(0xC847B43F369AC0B5, "")end - -- platformName must be one of the following: ps3, xbox360, ps4, xboxone - STAT_MIGRATE_SAVEGAME_START=--[[BOOL (bool)]] function(--[[string]] platformName)return native_invoker.unified_bool(platformName, 0xA5C80D8E768A9E66, "s")end - STAT_MIGRATE_SAVEGAME_GET_STATUS=--[[int]] function()return native_invoker.unified_int(0x9A62EC95AE10E011, "")end - STAT_MIGRATE_CHECK_ALREADY_DONE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x4C89FE2BDEB3F169, "")end - STAT_MIGRATE_CHECK_START=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC6E0E2616A7576BB, "")end - STAT_MIGRATE_CHECK_GET_IS_PLATFORM_AVAILABLE=--[[int]] function(--[[int]] p0)return native_invoker.unified_int(p0, 0x5BD5F255321C4AAF, "i")end - STAT_MIGRATE_CHECK_GET_PLATFORM_STATUS=--[[int]] function(--[[int]] p0,--[[Any* (pointer)]] p1)return native_invoker.unified_int(p0, p1, 0xDEAAF77EB3687E97, "ip")end - STAT_GET_SAVE_MIGRATION_STATUS=--[[int]] function(--[[Any* (pointer)]] data)return native_invoker.unified_int(data, 0x886913BBEACA68C1, "p")end - STAT_SAVE_MIGRATION_CANCEL_PENDING_OPERATION=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x4FEF53183C3C6414, "")end - STAT_GET_CANCEL_SAVE_MIGRATION_STATUS=--[[int]] function()return native_invoker.unified_int(0x567384DFA67029E6, "")end - STAT_SAVE_MIGRATION_CONSUME_CONTENT=--[[BOOL (bool)]] function(--[[Hash (int)]] contentId,--[[string]] srcPlatform,--[[string]] srcGamerHandle)return native_invoker.unified_bool(contentId, srcPlatform, srcGamerHandle, 0x3270F67EED31FBC1, "iss")end - STAT_GET_SAVE_MIGRATION_CONSUME_CONTENT_STATUS=--[[int]] function(--[[int* (pointer)]] p0)return native_invoker.unified_int(p0, 0xCE5AA445ABA8DEE0, "p")end - STAT_ENABLE_STATS_TRACKING=--[[void]] function()return native_invoker.unified_void(0x98E2BC1CA26287C3, "")end - -- Prevents updates to CStatsMgr (e.g., STAT_SET_* natives) - STAT_DISABLE_STATS_TRACKING=--[[void]] function()return native_invoker.unified_void(0x629526ABA383BCAA, "")end - STAT_IS_STATS_TRACKING_ENABLED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xBE3DB208333D9844, "")end - -- enum StatTrackingType - -- { - -- LongestWheelie = 1, - -- LongestStoppie = 2, - -- NoCrashes = 3, - -- HighestSpeed = 4, - -- _MostFlips = 5, - -- _LongestSpin = 6, - -- _HighestJumpReached = 7, - -- LongestJump = 8, - -- _NearMissesNoCrash = 9, - -- LongestFallSurvived = 10, - -- LowestParachute = 11, - -- ReverseDriving = 12, - -- LongestFreefall = 13, - -- VehiclesStolen = 14, - -- _SomeCFireEventCount = 15, - -- _Unk16 = 16, - -- _LowFlyingTime = 17, - -- LowFlying = 18, - -- _InvertedFlyingTime = 19, - -- InvertedFlying = 20, - -- _PlaneSpinCount = 21, - -- MeleeKills = 22, // Players - -- _LongestSniperKill = 23, - -- SniperSkills = 24, // Players - -- DrivebyKills = 25, // Players - -- HeadshotKills = 26, // Players - -- LongestBail = 27, - -- _TotalRammedByCar = 28, - -- NearMissesPrecise = 29, - -- _FreefallTime = 30, - -- Unk31 = 31, - -- } - -- - -- enum StatTrackingValueType - -- { - -- Total, - -- Max, - -- Min - -- } - STAT_START_RECORD_STAT=--[[BOOL (bool)]] function(--[[int]] statType,--[[int]] valueType)return native_invoker.unified_bool(statType, valueType, 0x33D72899E24C3365, "ii")end - STAT_STOP_RECORD_STAT=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xA761D4AC6115623D, "")end - STAT_GET_RECORDED_VALUE=--[[BOOL (bool)]] function(--[[float* (pointer)]] value)return native_invoker.unified_bool(value, 0xF11F01D98113536A, "p")end - STAT_IS_RECORDING_STAT=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x8B9CDBD6C566C38C, "")end - -- Perform the most near misses with other vehicles in a land vehicle without crashing - STAT_GET_CURRENT_NEAR_MISS_NOCRASH_PRECISE=--[[int]] function()return native_invoker.unified_int(0xE8853FBCE7D8D0D6, "")end - -- Perform the longest wheelie on a motorcycle - STAT_GET_CURRENT_REAR_WHEEL_DISTANCE=--[[float]] function()return native_invoker.unified_float(0xA943FD1722E11EFD, "")end - -- Perform the longest stoppie on a motorcycle - STAT_GET_CURRENT_FRONT_WHEEL_DISTANCE=--[[float]] function()return native_invoker.unified_float(0x84A810B375E69C0E, "")end - -- Perform the longest jump in a land vehicle - STAT_GET_CURRENT_JUMP_DISTANCE=--[[float]] function()return native_invoker.unified_float(0x9EC8858184CD253A, "")end - -- Drive the furthest distance in a land vehicle without crashing - STAT_GET_CURRENT_DRIVE_NOCRASH_DISTANCE=--[[float]] function()return native_invoker.unified_float(0xBA9749CC94C1FD85, "")end - -- Achieve the highest speed in a land vehicle - STAT_GET_CURRENT_SPEED=--[[float]] function()return native_invoker.unified_float(0x55A8BECAF28A4EB7, "")end - -- Reverse the longest distance without crashing - STAT_GET_CURRENT_DRIVING_REVERSE_DISTANCE=--[[float]] function()return native_invoker.unified_float(0x32CAC93C9DE73D32, "")end - -- Fall the longest distance with a parachute before opening it - STAT_GET_CURRENT_SKYDIVING_DISTANCE=--[[float]] function()return native_invoker.unified_float(0xAFF47709F1D5DCCE, "")end - -- Fly low to the ground for the longest distance - STAT_GET_CHALLENGE_FLYING_DIST=--[[float]] function()return native_invoker.unified_float(0x6E0A5253375C4584, "")end - STAT_GET_FLYING_ALTITUDE=--[[BOOL (bool)]] function(--[[float* (pointer)]] outValue)return native_invoker.unified_bool(outValue, 0x1A8EA222F9C67DBB, "p")end - -- Or non-flyable area - STAT_IS_PLAYER_VEHICLE_ABOVE_OCEAN=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xF9F2922717B819EC, "")end - -- Travel the furthest distance when bailing from a vehicle - STAT_GET_VEHICLE_BAIL_DISTANCE=--[[float]] function()return native_invoker.unified_float(0x0B8B7F74BF061C6D, "")end - -- This function is hard-coded to always return 1. - STAT_ROLLBACK_SAVE_MIGRATION=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xB3DA2606774A8E2D, "")end - -- Sets profile setting 866 - SET_HAS_SPECIALEDITION_CONTENT=--[[void]] function(--[[int]] value)return native_invoker.unified_void(value, 0xDAC073C7901F9E15, "i")end - -- Sets profile setting 501 - SET_SAVE_MIGRATION_TRANSACTION_ID_WARNING=--[[void]] function(--[[int]] transactionId)return native_invoker.unified_void(transactionId, 0xF6792800AC95350D, "i")end - GET_BOSS_GOON_UUID=--[[void]] function(--[[int]] characterSlot,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(characterSlot, p1, p2, 0x6BC0ACD0673ACEBE, "iii")end - PLAYSTATS_BW_BOSSONBOSSDEATHMATCH=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x8D8ADB562F09A245, "i")end - PLAYSTATS_BW_YATCHATTACK=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xD1A1EE3B4FA8E760, "i")end - PLAYSTATS_BW_HUNT_THE_BOSS=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x88087EE1F28024AE, "i")end - PLAYSTATS_BW_SIGHTSEER=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xFCC228E07217FCAC, "i")end - PLAYSTATS_BW_ASSAULT=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x678F86D8FC040BDB, "i")end - PLAYSTATS_BW_BELLY_OF_THE_BEAST=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xA6F54BB2FFCA35EA, "i")end - PLAYSTATS_BW_HEAD_HUNTER=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x5FF2C33B13A02A11, "i")end - PLAYSTATS_BW_FRAGILE_GOODS=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x282B6739644F4347, "i")end - PLAYSTATS_BW_AIR_FREIGHT=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xF06A6F41CB445443, "i")end - PLAYSTATS_BC_CAR_JACKING=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x7B18DA61F6BAE9D5, "i")end - PLAYSTATS_BC_SMASH_AND_GRAB=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x06EAF70AE066441E, "i")end - PLAYSTATS_BC_PROTECTION_RACKET=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x14EDA9EE27BD1626, "i")end - PLAYSTATS_BC_MOST_WANTED=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x930F504203F561C9, "i")end - PLAYSTATS_BC_FINDERS_KEEPERS=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xE3261D791EB44ACB, "i")end - PLAYSTATS_BC_POINT_TO_POINT=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x73001E34F85137F8, "i")end - PLAYSTATS_BC_CASHING=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x53CAE13E9B426993, "i")end - PLAYSTATS_BC_SALVAGE=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x7D36291161859389, "i")end - PLAYSTATS_SPENT_PI_CUSTOM_LOADOUT=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0xBE509B0A3693DE8B, "i")end - PLAYSTATS_BUY_CONTRABAND_MISSION=--[[void]] function(--[[Any* (pointer)]] data)return native_invoker.unified_void(data, 0xD6781E42755531F7, "p")end - PLAYSTATS_SELL_CONTRABAND_MISSION=--[[void]] function(--[[Any* (pointer)]] data)return native_invoker.unified_void(data, 0xC729991A9065376E, "p")end - PLAYSTATS_DEFEND_CONTRABAND_MISSION=--[[void]] function(--[[Any* (pointer)]] data)return native_invoker.unified_void(data, 0x2605663BD4F23B5D, "p")end - PLAYSTATS_RECOVER_CONTRABAND_MISSION=--[[void]] function(--[[Any* (pointer)]] data)return native_invoker.unified_void(data, 0x04D90BA8207ADA2D, "p")end - PLAYSTATS_HIT_CONTRABAND_DESTROY_LIMIT=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x60EEDC12AF66E846, "i")end - START_BEING_BOSS=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x3EBEAC6C3F81F6BD, "iii")end - START_BEING_GOON=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x96E6D5150DBF1C09, "iii")end - END_BEING_BOSS=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xA3C53804BDB68ED2, "iii")end - END_BEING_GOON=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0x6BCCF9948492FD85, "iiiii")end - HIRED_LIMO=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x792271AB35C356A4, "ii")end - ORDER_BOSS_VEHICLE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Hash (int)]] vehicleHash)return native_invoker.unified_void(p0, p1, vehicleHash, 0xCEA553E35C2246E1, "iii")end - CHANGE_UNIFORM=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xD1C9B92BDD3F151D, "iii")end - CHANGE_GOON_LOOKING_FOR_WORK=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x44919CC079BB60BF, "i")end - SEND_METRIC_GHOSTING_TO_PLAYER=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x7033EEFD9B28088E, "i")end - SEND_METRIC_VIP_POACH=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xAA525DFF66BB82F5, "iii")end - SEND_METRIC_PUNISH_BODYGUARD=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x015B03EE1C43E6EC, "i")end - -- Allows CEventNetworkStuntPerformed to be triggered. - PLAYSTATS_START_TRACKING_STUNTS=--[[void]] function()return native_invoker.unified_void(0x928DBFB892638EF3, "")end - -- Disallows CEventNetworkStuntPerformed to be triggered. - PLAYSTATS_STOP_TRACKING_STUNTS=--[[void]] function()return native_invoker.unified_void(0x8A800DACCC0DA55D, "")end - PLAYSTATS_MISSION_ENDED=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xBF371CD2B64212FD, "i")end - PLAYSTATS_IMPEXP_MISSION_ENDED=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x7D8BA05688AD64C7, "i")end - PLAYSTATS_CHANGE_MC_ROLE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[int]] role,--[[int]] p5,--[[Any (int)]] p6)return native_invoker.unified_void(p0, p1, p2, p3, role, p5, p6, 0x0B565B0AAE56A0E8, "iiiiiii")end - PLAYSTATS_CHANGE_MC_OUTFIT=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0x28ECB8AC2F607DB2, "iiiii")end - PLAYSTATS_SWITCH_MC_EMBLEM=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0x0A50D2604E05CB94, "iiiii")end - PLAYSTATS_MC_REQUEST_BIKE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0xCC25A4553DFBF9EA, "iiiii")end - PLAYSTATS_MC_KILLED_RIVAL_MC_MEMBER=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0xF534D94DFA2EAD26, "iiiii")end - PLAYSTATS_ABANDONED_MC=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0xD558BEC0BBA7E8D2, "iiiii")end - PLAYSTATS_EARNED_MC_POINTS=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, 0x501478855A6074CE, "iiiiii")end - PLAYSTATS_MC_FORMATION_ENDS=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5,--[[Any (int)]] p6)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, 0x03C2EEBB04B3FB72, "iiiiiii")end - PLAYSTATS_MC_CLUBHOUSE_ACTIVITY=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5,--[[Any (int)]] p6,--[[Any (int)]] p7)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, p7, 0x8989CBD7B4E82534, "iiiiiiii")end - PLAYSTATS_RIVAL_BEHAVIOR=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5,--[[Any (int)]] p6,--[[Any (int)]] p7,--[[Any (int)]] p8,--[[Any (int)]] p9)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, 0x27AA1C973CACFE63, "iiiiiiiiii")end - PLAYSTATS_COPY_RANK_INTO_NEW_SLOT=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5,--[[Any (int)]] p6)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, 0xB7257BA2550EA10A, "iiiiiii")end - PLAYSTATS_DUPE_DETECTED=--[[void]] function(--[[Any* (pointer)]] data)return native_invoker.unified_void(data, 0x848B66100EE33B05, "p")end - PLAYSTATS_BAN_ALERT=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0x516FC96EB88EEFE5, "i")end - PLAYSTATS_GUNRUNNING_MISSION_ENDED=--[[void]] function(--[[Any* (pointer)]] data)return native_invoker.unified_void(data, 0x0EACDF8487D5155A, "p")end - PLAYSTATS_GUNRUNNING_RND=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xDAF80797FC534BEC, "i")end - PLAYSTATS_BUSINESS_BATTLE_ENDED=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x316DB59CD14C1774, "i")end - PLAYSTATS_WAREHOUSE_MISSION_ENDED=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x2D7A9B577E72385E, "i")end - PLAYSTATS_NIGHTCLUB_MISSION_ENDED=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x830C3A44EB3F2CF9, "i")end - PLAYSTATS_DJ_USAGE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xB26F670685631727, "ii")end - PLAYSTATS_MINIGAME_USAGE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xC14BD9F5337219B2, "iii")end - PLAYSTATS_STONE_HATCHET_ENDED=--[[void]] function(--[[Any* (pointer)]] data)return native_invoker.unified_void(data, 0x35E39E5570358630, "p")end - PLAYSTATS_SMUGGLER_MISSION_ENDED=--[[void]] function(--[[Any* (pointer)]] data)return native_invoker.unified_void(data, 0x320C35147D5B5DDD, "p")end - PLAYSTATS_FM_HEIST_PREP_ENDED=--[[void]] function(--[[Any* (pointer)]] data)return native_invoker.unified_void(data, 0xD8AFB345A9C5CCBB, "p")end - PLAYSTATS_INSTANCED_HEIST_ENDED=--[[void]] function(--[[Any* (pointer)]] data,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(data, p1, p2, p3, 0x1E1497D0D2108115, "piii")end - PLAYSTATS_DAR_CHECKPOINT=--[[void]] function(--[[Any* (pointer)]] data)return native_invoker.unified_void(data, 0x0BC254FF3A911501, "p")end - PLAYSTATS_ENTER_SESSION_PACK=--[[void]] function(--[[Any* (pointer)]] data)return native_invoker.unified_void(data, 0x878FF156D36E9956, "p")end - PLAYSTATS_DRONE_USAGE=--[[void]] function(--[[int]] p0,--[[int]] p1,--[[int]] p2)return native_invoker.unified_void(p0, p1, p2, 0x66C7BB2416ED3FCE, "iii")end - PLAYSTATS_SPIN_WHEEL=--[[void]] function(--[[int]] p0,--[[int]] p1,--[[int]] p2,--[[int]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x6731DE84A38BFAD0, "iiii")end - PLAYSTATS_ARENA_WARS_SPECTATOR=--[[void]] function(--[[int]] p0,--[[int]] p1,--[[int]] p2,--[[int]] p3,--[[int]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0x6F4F599753F8200A, "iiiii")end - PLAYSTATS_ARENA_WARS_ENDED=--[[void]] function(--[[Any* (pointer)]] data)return native_invoker.unified_void(data, 0xB479D9F0D48A1BC5, "p")end - PLAYSTATS_SWITCH_PASSIVE_MODE=--[[void]] function(--[[BOOL (bool)]] p0,--[[int]] p1,--[[int]] p2,--[[int]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x35EEC6C2BC821A71, "biii")end - PLAYSTATS_COLLECTIBLE_PICKED_UP=--[[void]] function(--[[int]] p0,--[[Hash (int)]] objectHash,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[int]] moneyAmount,--[[int]] rpAmount,--[[int]] chipsAmount,--[[Any (int)]] p7,--[[int]] p8,--[[Any (int)]] p9,--[[Any (int)]] p10)return native_invoker.unified_void(p0, objectHash, p2, p3, moneyAmount, rpAmount, chipsAmount, p7, p8, p9, p10, 0xCD0A8A9338681CF2, "iiiiiiiiiii")end - PLAYSTATS_CASINO_STORY_MISSION_ENDED=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xFCCCAC2BD3C1F180, "ii")end - PLAYSTATS_CASINO_CHIP=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x0999F3F090EC5012, "i")end - PLAYSTATS_CASINO_ROULETTE=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x95101C443A84E7F1, "i")end - PLAYSTATS_CASINO_BLACKJACK=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x3EAE97309727E7AD, "i")end - PLAYSTATS_CASINO_THREE_CARD_POKER=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xF740FB339D471C35, "i")end - PLAYSTATS_CASINO_SLOT_MACHINE=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xEF5EC67D392B830A, "i")end - PLAYSTATS_CASINO_INSIDE_TRACK=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x049F059625058A86, "i")end - PLAYSTATS_CASINO_LUCKY_SEVEN=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x0C432C1435F5E4FA, "i")end - PLAYSTATS_CASINO_ROULETTE_LIGHT=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x6572ABA3DE1197FC, "i")end - PLAYSTATS_CASINO_BLACKJACK_LIGHT=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xD5451C7BF151EB6F, "i")end - PLAYSTATS_CASINO_THREE_CARD_POKER_LIGHT=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xC9001364B4388F22, "i")end - PLAYSTATS_CASINO_SLOT_MACHINE_LIGHT=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xE60054A0FAE8227F, "i")end - PLAYSTATS_CASINO_INSIDE_TRACK_LIGHT=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x23A3CBCD50D54E47, "i")end - PLAYSTATS_ARCADE_GAME=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5,--[[Any (int)]] p6)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, 0x533A7D1EA58DF958, "iiiiiii")end - PLAYSTATS_ARCADE_LOVE_MATCH=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x4FCDBD3F0A813C25, "ii")end - PLAYSTATS_FREEMODE_CASINO_MISSION_ENDED=--[[void]] function(--[[Any* (pointer)]] data)return native_invoker.unified_void(data, 0x1A0D4A6C336B7BC5, "p")end - PLAYSTATS_HEIST3_DRONE=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xDFBD93BF2943E29B, "i")end - PLAYSTATS_HEIST3_HACK=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, 0x92FC0EEDFAC04A14, "iiiiii")end - PLAYSTATS_NPC_PHONE=--[[void]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_void(p0, 0x0077F15613D36993, "p")end - PLAYSTATS_ARCADE_CABINET=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xF9096193DF1F99D4, "i")end - PLAYSTATS_HEIST3_FINALE=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x2E0259BABC27A327, "i")end - PLAYSTATS_HEIST3_PREP=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x53C31853EC9531FF, "i")end - PLAYSTATS_MASTER_CONTROL=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x810B5FCC52EC7FF0, "iiii")end - PLAYSTATS_QUIT_MODE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0x5BF29846C6527C54, "iiiii")end - PLAYSTATS_MISSION_VOTE=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xC03FAB2C2F92289B, "i")end - PLAYSTATS_NJVS_VOTE=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x5CDAED54B34B0ED0, "i")end - PLAYSTATS_KILL_YOURSELF=--[[void]] function()return native_invoker.unified_void(0x4AFF7E02E485E92B, "")end - PLAYSTATS_FM_MISSION_END=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x46A70777BE6CEAB9, "iiii")end - PLAYSTATS_HEIST4_PREP=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xDFCDB14317A9B361, "i")end - PLAYSTATS_HEIST4_FINALE=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xC1E963C58664B556, "i")end - PLAYSTATS_HEIST4_HACK=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0x2FA3173480008493, "iiiii")end - PLAYSTATS_SUB_WEAP=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xD4367D310F079DB0, "iiii")end - PLAYSTATS_FAST_TRVL=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5,--[[Any (int)]] p6,--[[Any (int)]] p7,--[[Any (int)]] p8,--[[Any (int)]] p9,--[[Any (int)]] p10)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, 0x4DC416F246A41FC8, "iiiiiiiiiii")end - PLAYSTATS_HUB_ENTRY=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x2818FF6638CB09DE, "i")end - PLAYSTATS_DJ_MISSION_ENDED=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xD6CA58B3B53A0F22, "i")end - PLAYSTATS_ROBBERY_PREP=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x1A67DFBF1F5C3835, "i")end - PLAYSTATS_ROBBERY_FINALE=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xBBA55BE9AAAABF44, "i")end - PLAYSTATS_EXTRA_EVENT=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xFA5B74BAB8A7EF99, "i")end - PLAYSTATS_CARCLUB_POINTS=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xFF14D6FEEC507BBE, "i")end - PLAYSTATS_CARCLUB_CHALLENGE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x1187CB58D7F3BED7, "iiii")end - PLAYSTATS_CARCLUB_PRIZE=--[[void]] function(--[[int]] p0,--[[Hash (int)]] vehicleModel)return native_invoker.unified_void(p0, vehicleModel, 0x69C922B677621428, "ii")end - PLAYSTATS_AWARD_NAV=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x70F52471E758EBAE, "iiii")end - PLAYSTATS_INST_MISSION_END=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xFEA3F7E83C0610FA, "i")end - PLAYSTATS_HUB_EXIT=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x5A46ACE5C4661132, "i")end - PLAYSTATS_VEH_DEL=--[[void]] function(--[[int]] bossId1,--[[int]] bossId2,--[[int]] bossType,--[[int]] vehicleID,--[[int]] reason)return native_invoker.unified_void(bossId1, bossId2, bossType, vehicleID, reason, 0x10A691F5756416D0, "iiiii")end - PLAYSTATS_INVENTORY=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x887DAD63CF5B7908, "i")end - _PLAYSTATS_ACID_MISSION_END=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x8A23D1324F6B2BAC, "i")end - _PLAYSTATS_ACID_RND=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xCEACCF0550FDC5BA, "i")end - _PLAYSTATS_IDLE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xEC9553A178E8F1D1, "iii")end - _PLAYSTATS_PLAYER_STYLE=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x48FAC5DC7AC6EA99, "i")end - _PLAYSTATS_RANDOM_EVENT=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x7EA06F970F999394, "i")end - _PLAYSTATS_ALERT=--[[void]] function(--[[Any* (pointer)]] data)return native_invoker.unified_void(data, 0x5649CA22AF74E019, "p")end - _PLAYSTATS_ATTRITION_STAGE_END=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xBD642335A732F1A8, "i")end - _PLAYSTATS_SHOWROOM_NAV=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Hash (int)]] entity)return native_invoker.unified_void(p0, p1, entity, 0x961D4157B9B428DB, "iii")end - -- Data struct contains various tunables related to test drives at Simeons Showroom or Luxury Showcase. - _PLAYSTATS_SHOWROOM_OVERVIEW=--[[void]] function(--[[Any* (pointer)]] data)return native_invoker.unified_void(data, 0x151D6C04C9E2742F, "p")end --- STREAMING - LOAD_ALL_OBJECTS_NOW=--[[void]] function()return native_invoker.unified_void(0xBD6E84632DD4CB3F, "")end - LOAD_SCENE=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(x, y, z, 0x4448EB75B4904BDB, "fff")end - NETWORK_UPDATE_LOAD_SCENE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC4582015556D1C46, "")end - IS_NETWORK_LOADING_SCENE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x41CA5A33160EA4AB, "")end - SET_INTERIOR_ACTIVE=--[[void]] function(--[[int]] interiorID,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(interiorID, toggle, 0xE37B76C387BE28ED, "ib")end - -- Request a model to be loaded into memory. - -- - REQUEST_MODEL=--[[void]] function(--[[Hash (int)]] model)return native_invoker.unified_void(model, 0x963D27A58DF860AC, "i")end - REQUEST_MENU_PED_MODEL=--[[void]] function(--[[Hash (int)]] model)return native_invoker.unified_void(model, 0xA0261AEF7ACFC51E, "i")end - -- Checks if the specified model has loaded into memory. - HAS_MODEL_LOADED=--[[BOOL (bool)]] function(--[[Hash (int)]] model)return native_invoker.unified_bool(model, 0x98A4EB5D89A0C952, "i")end - -- STREAMING::REQUEST_MODELS_IN_ROOM(l_13BC, "V_FIB01_cur_elev"); - -- STREAMING::REQUEST_MODELS_IN_ROOM(l_13BC, "limbo"); - -- STREAMING::REQUEST_MODELS_IN_ROOM(l_13BB, "V_Office_gnd_lifts"); - -- STREAMING::REQUEST_MODELS_IN_ROOM(l_13BB, "limbo"); - -- STREAMING::REQUEST_MODELS_IN_ROOM(l_13BC, "v_fib01_jan_elev"); - -- STREAMING::REQUEST_MODELS_IN_ROOM(l_13BC, "limbo"); - REQUEST_MODELS_IN_ROOM=--[[void]] function(--[[Interior (int)]] interior,--[[string]] roomName)return native_invoker.unified_void(interior, roomName, 0x8A7A40100EDFEC58, "is")end - -- Unloads model from memory - SET_MODEL_AS_NO_LONGER_NEEDED=--[[void]] function(--[[Hash (int)]] model)return native_invoker.unified_void(model, 0xE532F5D78798DAAB, "i")end - -- Check if model is in cdimage(rpf) - IS_MODEL_IN_CDIMAGE=--[[BOOL (bool)]] function(--[[Hash (int)]] model)return native_invoker.unified_bool(model, 0x35B9E0803292B641, "i")end - -- Returns whether the specified model exists in the game. - IS_MODEL_VALID=--[[BOOL (bool)]] function(--[[Hash (int)]] model)return native_invoker.unified_bool(model, 0xC0296A2EDF545E92, "i")end - IS_MODEL_A_PED=--[[BOOL (bool)]] function(--[[Hash (int)]] model)return native_invoker.unified_bool(model, 0x75816577FEA6DAD5, "i")end - -- Returns whether the specified model represents a vehicle. - IS_MODEL_A_VEHICLE=--[[BOOL (bool)]] function(--[[Hash (int)]] model)return native_invoker.unified_bool(model, 0x19AAC8F07BFEC53E, "i")end - REQUEST_COLLISION_AT_COORD=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(x, y, z, 0x07503F7948F491A7, "fff")end - REQUEST_COLLISION_FOR_MODEL=--[[void]] function(--[[Hash (int)]] model)return native_invoker.unified_void(model, 0x923CB32A3B874FCB, "i")end - HAS_COLLISION_FOR_MODEL_LOADED=--[[BOOL (bool)]] function(--[[Hash (int)]] model)return native_invoker.unified_bool(model, 0x22CCA434E368F03A, "i")end - -- Alias of REQUEST_COLLISION_AT_COORD. - REQUEST_ADDITIONAL_COLLISION_AT_COORD=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(x, y, z, 0xC9156DC11411A9EA, "fff")end - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - DOES_ANIM_DICT_EXIST=--[[BOOL (bool)]] function(--[[string]] animDict)return native_invoker.unified_bool(animDict, 0x2DA49C3B79856961, "s")end - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - REQUEST_ANIM_DICT=--[[void]] function(--[[string]] animDict)return native_invoker.unified_void(animDict, 0xD3BD40951412FEF6, "s")end - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - HAS_ANIM_DICT_LOADED=--[[BOOL (bool)]] function(--[[string]] animDict)return native_invoker.unified_bool(animDict, 0xD031A9162D01088C, "s")end - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - REMOVE_ANIM_DICT=--[[void]] function(--[[string]] animDict)return native_invoker.unified_void(animDict, 0xF66A602F829E2A06, "s")end - -- Starts loading the specified animation set. An animation set provides movement animations for a ped. See SET_PED_MOVEMENT_CLIPSET. - -- - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - -- - -- Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json - REQUEST_ANIM_SET=--[[void]] function(--[[string]] animSet)return native_invoker.unified_void(animSet, 0x6EA47DAE7FAD0EED, "s")end - -- Gets whether the specified animation set has finished loading. An animation set provides movement animations for a ped. See SET_PED_MOVEMENT_CLIPSET. - -- - -- Animation set and clip set are synonymous. - -- - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - -- - -- Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json - HAS_ANIM_SET_LOADED=--[[BOOL (bool)]] function(--[[string]] animSet)return native_invoker.unified_bool(animSet, 0xC4EA073D86FB29B0, "s")end - -- Unloads the specified animation set. An animation set provides movement animations for a ped. See SET_PED_MOVEMENT_CLIPSET. - -- - -- Animation set and clip set are synonymous. - -- - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - -- - -- Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json - REMOVE_ANIM_SET=--[[void]] function(--[[string]] animSet)return native_invoker.unified_void(animSet, 0x16350528F93024B3, "s")end - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - -- - -- Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json - REQUEST_CLIP_SET=--[[void]] function(--[[string]] clipSet)return native_invoker.unified_void(clipSet, 0xD2A71E1A77418A49, "s")end - -- Alias for HAS_ANIM_SET_LOADED. - -- - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - -- - -- Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json - HAS_CLIP_SET_LOADED=--[[BOOL (bool)]] function(--[[string]] clipSet)return native_invoker.unified_bool(clipSet, 0x318234F4F3738AF3, "s")end - -- Alias for REMOVE_ANIM_SET. - -- - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - -- - -- Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json - REMOVE_CLIP_SET=--[[void]] function(--[[string]] clipSet)return native_invoker.unified_void(clipSet, 0x01F73A131C18CD94, "s")end - -- Exemple: REQUEST_IPL("TrevorsTrailerTrash"); - -- - -- Full list of IPLs and interior entity sets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ipls.json - REQUEST_IPL=--[[void]] function(--[[string]] iplName)return native_invoker.unified_void(iplName, 0x41B4893843BBDB74, "s")end - -- Removes an IPL from the map. - -- - -- Full list of IPLs and interior entity sets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ipls.json - -- - -- Example: - -- C#: - -- Function.Call(Hash.REMOVE_IPL, "trevorstrailertidy"); - -- - -- C++: - -- STREAMING::REMOVE_IPL("trevorstrailertidy"); - -- - -- iplName = Name of IPL you want to remove. - REMOVE_IPL=--[[void]] function(--[[string]] iplName)return native_invoker.unified_void(iplName, 0xEE6C5AD3ECE0A82D, "s")end - -- Full list of IPLs and interior entity sets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ipls.json - IS_IPL_ACTIVE=--[[BOOL (bool)]] function(--[[string]] iplName)return native_invoker.unified_bool(iplName, 0x88A741E44A2B3495, "s")end - SET_STREAMING=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x6E0C692677008888, "b")end - -- 0 - default - -- 1 - HeistIsland - LOAD_GLOBAL_WATER_FILE=--[[void]] function(--[[int]] waterType)return native_invoker.unified_void(waterType, 0x7E3F55ED251B76D3, "i")end - GET_GLOBAL_WATER_FILE=--[[int]] function()return native_invoker.unified_int(0xF741BD853611592D, "")end - SET_GAME_PAUSES_FOR_STREAMING=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x717CD6E6FAEBBEDC, "b")end - SET_REDUCE_PED_MODEL_BUDGET=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x77B5F9A36BF96710, "b")end - SET_REDUCE_VEHICLE_MODEL_BUDGET=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x80C527893080CCF3, "b")end - -- This is a NOP function. It does nothing at all. - SET_DITCH_POLICE_MODELS=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x42CBE54462D92634, "b")end - GET_NUMBER_OF_STREAMING_REQUESTS=--[[int]] function()return native_invoker.unified_int(0x4060057271CEBC89, "")end - -- maps script name (thread + 0xD0) by lookup via scriptfx.dat - does nothing when script name is empty - REQUEST_PTFX_ASSET=--[[void]] function()return native_invoker.unified_void(0x944955FB2A3935C8, "")end - HAS_PTFX_ASSET_LOADED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xCA7D9B86ECA7481B, "")end - REMOVE_PTFX_ASSET=--[[void]] function()return native_invoker.unified_void(0x88C6814073DD4A73, "")end - -- From the b678d decompiled scripts: - -- - -- STREAMING::REQUEST_NAMED_PTFX_ASSET("core_snow"); - -- STREAMING::REQUEST_NAMED_PTFX_ASSET("fm_mission_controler"); - -- STREAMING::REQUEST_NAMED_PTFX_ASSET("proj_xmas_firework"); - -- STREAMING::REQUEST_NAMED_PTFX_ASSET("scr_apartment_mp"); - -- STREAMING::REQUEST_NAMED_PTFX_ASSET("scr_biolab_heist"); - -- STREAMING::REQUEST_NAMED_PTFX_ASSET("scr_indep_fireworks"); - -- STREAMING::REQUEST_NAMED_PTFX_ASSET("scr_indep_parachute"); - -- STREAMING::REQUEST_NAMED_PTFX_ASSET("scr_indep_wheelsmoke"); - -- STREAMING::REQUEST_NAMED_PTFX_ASSET("scr_mp_cig_plane"); - -- STREAMING::REQUEST_NAMED_PTFX_ASSET("scr_mp_creator"); - -- STREAMING::REQUEST_NAMED_PTFX_ASSET("scr_mp_tankbattle"); - -- STREAMING::REQUEST_NAMED_PTFX_ASSET("scr_ornate_heist"); - -- STREAMING::REQUEST_NAMED_PTFX_ASSET("scr_prison_break_heist_station"); - REQUEST_NAMED_PTFX_ASSET=--[[void]] function(--[[string]] fxName)return native_invoker.unified_void(fxName, 0xB80D8756B4668AB6, "s")end - HAS_NAMED_PTFX_ASSET_LOADED=--[[BOOL (bool)]] function(--[[string]] fxName)return native_invoker.unified_bool(fxName, 0x8702416E512EC454, "s")end - REMOVE_NAMED_PTFX_ASSET=--[[void]] function(--[[string]] fxName)return native_invoker.unified_void(fxName, 0x5F61EBBE1A00F96D, "s")end - SET_VEHICLE_POPULATION_BUDGET=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0xCB9E1EB3BE2AF4E9, "i")end - -- Control how many new (ambient?) peds will spawn in the game world. - -- Range for p0 seems to be 0-3, where 0 is none and 3 is the normal level. - SET_PED_POPULATION_BUDGET=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0x8C95333CFC3340F3, "i")end - CLEAR_FOCUS=--[[void]] function()return native_invoker.unified_void(0x31B73D1EA9F01DA2, "")end - -- Override the area where the camera will render the terrain. - -- p3, p4 and p5 are usually set to 0.0 - -- - SET_FOCUS_POS_AND_VEL=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] offsetX,--[[float]] offsetY,--[[float]] offsetZ)return native_invoker.unified_void(x, y, z, offsetX, offsetY, offsetZ, 0xBB7454BAFF08FE25, "ffffff")end - -- It seems to make the entity's coords mark the point from which LOD-distances are measured. In my testing, setting a vehicle as the focus entity and moving that vehicle more than 300 distance units away from the player will make the level of detail around the player go down drastically (shadows disappear, textures go extremely low res, etc). The player seems to be the default focus entity. - SET_FOCUS_ENTITY=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0x198F77705FA0931D, "i")end - IS_ENTITY_FOCUS=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x2DDFF3FB9075D747, "i")end - SET_RESTORE_FOCUS_ENTITY=--[[void]] function(--[[Entity (int)]] p0)return native_invoker.unified_void(p0, 0x0811381EF5062FEC, "i")end - -- Possible p0 values: - -- - -- "prologue" - -- "Prologue_Main" - SET_MAPDATACULLBOX_ENABLED=--[[void]] function(--[[string]] name,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(name, toggle, 0xAF12610C644A35C9, "sb")end - -- This native does absolutely nothing, just a nullsub - SET_ALL_MAPDATA_CULLED=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x4E52E752C76E7E7A, "i")end - -- Always returns zero. - STREAMVOL_CREATE_SPHERE=--[[int]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] rad,--[[Any (int)]] p4,--[[Any (int)]] p5)return native_invoker.unified_int(x, y, z, rad, p4, p5, 0x219C7B8D53E429FD, "ffffii")end - -- Always returns zero. - STREAMVOL_CREATE_FRUSTUM=--[[int]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[float]] p6,--[[Any (int)]] p7,--[[Any (int)]] p8)return native_invoker.unified_int(p0, p1, p2, p3, p4, p5, p6, p7, p8, 0x1F3F018BC3AFA77C, "fffffffii")end - -- Always returns zero. - STREAMVOL_CREATE_LINE=--[[int]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[Any (int)]] p6)return native_invoker.unified_int(p0, p1, p2, p3, p4, p5, p6, 0x0AD9710CEE2F590F, "ffffffi")end - STREAMVOL_DELETE=--[[void]] function(--[[Any (int)]] unused)return native_invoker.unified_void(unused, 0x1EE7D8DF4425F053, "i")end - STREAMVOL_HAS_LOADED=--[[BOOL (bool)]] function(--[[Any (int)]] unused)return native_invoker.unified_bool(unused, 0x7D41E9D2D17C5B2D, "i")end - STREAMVOL_IS_VALID=--[[BOOL (bool)]] function(--[[Any (int)]] unused)return native_invoker.unified_bool(unused, 0x07C313F94746702C, "i")end - IS_STREAMVOL_ACTIVE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xBC9823AB80A3DCAC, "")end - -- `radius` value is usually between `3f` and `7000f` in original 1868 scripts. - -- `p7` is 0, 1, 2, 3 or 4 used in decompiled scripts, 0 is by far the most common. - -- Returns True if success, used only 7 times in decompiled scripts of 1868 - NEW_LOAD_SCENE_START=--[[BOOL (bool)]] function(--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[float]] offsetX,--[[float]] offsetY,--[[float]] offsetZ,--[[float]] radius,--[[int]] p7)return native_invoker.unified_bool(posX, posY, posZ, offsetX, offsetY, offsetZ, radius, p7, 0x212A8D0D2BABFAC2, "fffffffi")end - NEW_LOAD_SCENE_START_SPHERE=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[Any (int)]] p4)return native_invoker.unified_bool(x, y, z, radius, p4, 0xACCFB4ACF53551B0, "ffffi")end - NEW_LOAD_SCENE_STOP=--[[void]] function()return native_invoker.unified_void(0xC197616D221FF4A4, "")end - IS_NEW_LOAD_SCENE_ACTIVE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xA41A05B6CB741B85, "")end - IS_NEW_LOAD_SCENE_LOADED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x01B8247A7A8B9AD1, "")end - IS_SAFE_TO_START_PLAYER_SWITCH=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x71E7B2E657449AAD, "")end - -- // this enum comes directly from R* so don't edit this - -- enum ePlayerSwitchTypes - -- { - -- SWITCH_TYPE_AUTO, - -- SWITCH_TYPE_LONG, - -- SWITCH_TYPE_MEDIUM, - -- SWITCH_TYPE_SHORT - -- }; - -- - -- Use GET_IDEAL_PLAYER_SWITCH_TYPE for the best switch type. - -- - -- ---------------------------------------------------- - -- - -- Examples from the decompiled scripts: - -- - -- STREAMING::START_PLAYER_SWITCH(l_832._f3, PLAYER::PLAYER_PED_ID(), 0, 3); - -- STREAMING::START_PLAYER_SWITCH(l_832._f3, PLAYER::PLAYER_PED_ID(), 2050, 3); - -- STREAMING::START_PLAYER_SWITCH(PLAYER::PLAYER_PED_ID(), l_832._f3, 1024, 3); - -- STREAMING::START_PLAYER_SWITCH(g_141F27, PLAYER::PLAYER_PED_ID(), 513, v_14); - -- - -- Note: DO NOT, use SWITCH_TYPE_LONG with flag 513. It leaves you stuck in the clouds. You'll have to call STOP_PLAYER_SWITCH() to return to your ped. - -- - -- Flag 8 w/ SWITCH_TYPE_LONG will zoom out 3 steps, then zoom in 2/3 steps and stop on the 3rd and just hang there. - -- Flag 8 w/ SWITCH_TYPE_MEDIUM will zoom out 1 step, and just hang there. - START_PLAYER_SWITCH=--[[void]] function(--[[Ped (int)]] from,--[[Ped (int)]] to,--[[int]] flags,--[[int]] switchType)return native_invoker.unified_void(from, to, flags, switchType, 0xFAA23F2CBA159D67, "iiii")end - STOP_PLAYER_SWITCH=--[[void]] function()return native_invoker.unified_void(0x95C0A5BBDC189AA1, "")end - -- Returns true if the player is currently switching, false otherwise. - -- (When the camera is in the sky moving from Trevor to Franklin for example) - IS_PLAYER_SWITCH_IN_PROGRESS=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xD9D2CFFF49FAB35F, "")end - GET_PLAYER_SWITCH_TYPE=--[[int]] function()return native_invoker.unified_int(0xB3C94A90D9FC9E62, "")end - -- x1, y1, z1 -- Coords of your ped model - -- x2, y2, z2 -- Coords of the ped you want to switch to - GET_IDEAL_PLAYER_SWITCH_TYPE=--[[int]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2)return native_invoker.unified_int(x1, y1, z1, x2, y2, z2, 0xB5D7B26B45720E05, "ffffff")end - GET_PLAYER_SWITCH_STATE=--[[int]] function()return native_invoker.unified_int(0x470555300D10B2A5, "")end - GET_PLAYER_SHORT_SWITCH_STATE=--[[int]] function()return native_invoker.unified_int(0x20F898A5D9782800, "")end - SET_PLAYER_SHORT_SWITCH_STYLE=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0x5F2013F8BC24EE69, "i")end - GET_PLAYER_SWITCH_JUMP_CUT_INDEX=--[[int]] function()return native_invoker.unified_int(0x78C0D93253149435, "")end - SET_PLAYER_SWITCH_OUTRO=--[[void]] function(--[[float]] cameraCoordX,--[[float]] cameraCoordY,--[[float]] cameraCoordZ,--[[float]] camRotationX,--[[float]] camRotationY,--[[float]] camRotationZ,--[[float]] camFov,--[[float]] camFarClip,--[[int]] rotationOrder)return native_invoker.unified_void(cameraCoordX, cameraCoordY, cameraCoordZ, camRotationX, camRotationY, camRotationZ, camFov, camFarClip, rotationOrder, 0xC208B673CE446B61, "ffffffffi")end - -- All names can be found in playerswitchestablishingshots.meta - SET_PLAYER_SWITCH_ESTABLISHING_SHOT=--[[void]] function(--[[string]] name)return native_invoker.unified_void(name, 0x0FDE9DBFC0A6BC65, "s")end - ALLOW_PLAYER_SWITCH_PAN=--[[void]] function()return native_invoker.unified_void(0x43D1680C6D19A8E9, "")end - ALLOW_PLAYER_SWITCH_OUTRO=--[[void]] function()return native_invoker.unified_void(0x74DE2E8739086740, "")end - ALLOW_PLAYER_SWITCH_ASCENT=--[[void]] function()return native_invoker.unified_void(0x8E2A065ABDAE6994, "")end - ALLOW_PLAYER_SWITCH_DESCENT=--[[void]] function()return native_invoker.unified_void(0xAD5FDF34B81BFE79, "")end - IS_SWITCH_READY_FOR_DESCENT=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xDFA80CB25D0A19B3, "")end - ENABLE_SWITCH_PAUSE_BEFORE_DESCENT=--[[void]] function()return native_invoker.unified_void(0xD4793DFF3AF2ABCD, "")end - DISABLE_SWITCH_OUTRO_FX=--[[void]] function()return native_invoker.unified_void(0xBD605B8E0E18B3BB, "")end - -- doesn't act normally when used on mount chilliad - -- Flags is a bitflag: - -- 2^n - Enabled Functionality: - -- 0 - Skip camera rotate up - -- 3 - Wait for SET_PLAYER_SWITCH_ESTABLISHING_SHOT / hang at last step. You will still need to run 0x74DE2E8739086740 to exit "properly" and then STOP_PLAYER_SWITCH - -- 6 - Invert Switch Direction (false = out, true = in) - -- 8 - Hang above ped - -- - -- switchType: 0 - 3 - -- 0: 1 step towards ped - -- 1: 3 steps out from ped - -- 2: 1 step out from ped - -- 3: 1 step towards ped - SWITCH_TO_MULTI_FIRSTPART=--[[void]] function(--[[Ped (int)]] ped,--[[int]] flags,--[[int]] switchType)return native_invoker.unified_void(ped, flags, switchType, 0xAAB3200ED59016BC, "iii")end - SWITCH_TO_MULTI_SECONDPART=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xD8295AF639FD9CB8, "i")end - IS_SWITCH_TO_MULTI_FIRSTPART_FINISHED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x933BBEEB8C61B5F4, "")end - GET_PLAYER_SWITCH_INTERP_OUT_DURATION=--[[int]] function()return native_invoker.unified_int(0x08C2D6C52A3104BB, "")end - GET_PLAYER_SWITCH_INTERP_OUT_CURRENT_TIME=--[[int]] function()return native_invoker.unified_int(0x5B48A06DD0E792A5, "")end - IS_SWITCH_SKIPPING_DESCENT=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x5B74EA8CFD5E3E7E, "")end - SET_SCENE_STREAMING_TRACKS_CAM_POS_THIS_FRAME=--[[void]] function()return native_invoker.unified_void(0x1E9057A74FD73E23, "")end - GET_LODSCALE=--[[float]] function()return native_invoker.unified_float(0x0C15B0E443B2349D, "")end - -- This allows you to override "extended distance scaling" setting. Needs to be called each frame. - -- Max scaling seems to be 200.0, normal is 1.0 - -- See https://gfycat.com/DetailedHauntingIncatern - OVERRIDE_LODSCALE_THIS_FRAME=--[[void]] function(--[[float]] scaling)return native_invoker.unified_void(scaling, 0xA76359FC80B2438E, "f")end - REMAP_LODSCALE_RANGE_THIS_FRAME=--[[void]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xBED8CA5FF5E04113, "ffff")end - SUPPRESS_HD_MAP_STREAMING_THIS_FRAME=--[[void]] function()return native_invoker.unified_void(0x472397322E92A856, "")end - SET_RENDER_HD_ONLY=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x40AEFD1A244741F2, "b")end - FORCE_ALLOW_TIME_BASED_FADING_THIS_FRAME=--[[void]] function()return native_invoker.unified_void(0x03F1A106BDA7DD3E, "")end - IPL_GROUP_SWAP_START=--[[void]] function(--[[string]] iplName1,--[[string]] iplName2)return native_invoker.unified_void(iplName1, iplName2, 0x95A7DABDDBB78AE7, "ss")end - IPL_GROUP_SWAP_CANCEL=--[[void]] function()return native_invoker.unified_void(0x63EB2B972A218CAC, "")end - IPL_GROUP_SWAP_IS_READY=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xFB199266061F820A, "")end - IPL_GROUP_SWAP_FINISH=--[[void]] function()return native_invoker.unified_void(0xF4A0DADB70F57FA6, "")end - IPL_GROUP_SWAP_IS_ACTIVE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x5068F488DDB54DD8, "")end - -- This native is used to attribute the SRL that BEGIN_SRL is going to load. This is usually used for 'in-game' cinematics (not cutscenes but camera stuff) instead of SET_FOCUS_POS_AND_VEL because it loads a specific area of the map which is pretty useful when the camera moves from distant areas. - -- For instance, GTA:O opening cutscene. - -- https://pastebin.com/2EeKVeLA : a list of SRL found in srllist.meta - -- https://pastebin.com/zd9XYUWY here is the content of a SRL file opened with codewalker. - PREFETCH_SRL=--[[void]] function(--[[string]] srl)return native_invoker.unified_void(srl, 0x3D245789CE12982C, "s")end - -- Returns true when the srl from BEGIN_SRL is loaded. - IS_SRL_LOADED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xD0263801A4C5B0BB, "")end - BEGIN_SRL=--[[void]] function()return native_invoker.unified_void(0x9BADDC94EF83B823, "")end - -- Clear the current srl and stop rendering the area selected by PREFETCH_SRL and started with BEGIN_SRL. - END_SRL=--[[void]] function()return native_invoker.unified_void(0x0A41540E63C9EE17, "")end - SET_SRL_TIME=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0xA74A541C6884E7B8, "f")end - SET_SRL_POST_CUTSCENE_CAMERA=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, 0xEF39EE20C537E98C, "iiiiii")end - SET_SRL_READAHEAD_TIMES=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xBEB2D9A1D9A8F55A, "iiii")end - SET_SRL_LONG_JUMP_MODE=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x20C6C7E4EB082A7F, "b")end - SET_SRL_FORCE_PRESTREAM=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xF8155A7F03DDFC8E, "i")end - SET_HD_AREA=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius)return native_invoker.unified_void(x, y, z, radius, 0xB85F26619073E775, "ffff")end - CLEAR_HD_AREA=--[[void]] function()return native_invoker.unified_void(0xCE58B1CFB9290813, "")end - INIT_CREATOR_BUDGET=--[[void]] function()return native_invoker.unified_void(0xB5A4DB34FE89B88A, "")end - SHUTDOWN_CREATOR_BUDGET=--[[void]] function()return native_invoker.unified_void(0xCCE26000E9A6FAD7, "")end - ADD_MODEL_TO_CREATOR_BUDGET=--[[BOOL (bool)]] function(--[[Hash (int)]] modelHash)return native_invoker.unified_bool(modelHash, 0x0BC3144DEB678666, "i")end - REMOVE_MODEL_FROM_CREATOR_BUDGET=--[[void]] function(--[[Hash (int)]] modelHash)return native_invoker.unified_void(modelHash, 0xF086AD9354FAC3A3, "i")end - -- 0.0 = no memory used - -- 1.0 = all memory used - -- - -- Maximum model memory (as defined in common\data\missioncreatordata.meta) is 100 MiB - GET_USED_CREATOR_BUDGET=--[[float]] function()return native_invoker.unified_float(0x3D3D8B3BE5A83D35, "")end - -- Enables the specified island. For more information, see islandhopper.meta - SET_ISLAND_ENABLED=--[[void]] function(--[[string]] name,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(name, toggle, 0x9A9D1BA639675CF1, "sb")end --- TASK - -- Stand still (?) - TASK_PAUSE=--[[void]] function(--[[Ped (int)]] ped,--[[int]] ms)return native_invoker.unified_void(ped, ms, 0xE73A266DB0CA9042, "ii")end - -- Makes the specified ped stand still for (time) milliseconds. - TASK_STAND_STILL=--[[void]] function(--[[Ped (int)]] ped,--[[int]] time)return native_invoker.unified_void(ped, time, 0x919BE13EED931959, "ii")end - -- Definition is wrong. This has 4 parameters (Not sure when they were added. v350 has 2, v678 has 4). - -- - -- v350: Ped ped, bool unused - -- v678: Ped ped, bool unused, bool flag1, bool flag2 - -- - -- flag1 = super jump, flag2 = do nothing if flag1 is false and doubles super jump height if flag1 is true. - TASK_JUMP=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] usePlayerLaunchForce,--[[BOOL (bool)]] doSuperJump,--[[BOOL (bool)]] useFullSuperJumpForce)return native_invoker.unified_void(ped, usePlayerLaunchForce, doSuperJump, useFullSuperJumpForce, 0x0AE4086104E067B1, "ibbb")end - TASK_COWER=--[[void]] function(--[[Ped (int)]] ped,--[[int]] duration)return native_invoker.unified_void(ped, duration, 0x3EB1FE9E8E908E15, "ii")end - -- In the scripts, p3 was always -1. - -- - -- p3 seems to be duration or timeout of turn animation. - -- Also facingPed can be 0 or -1 so ped will just raise hands up. - TASK_HANDS_UP=--[[void]] function(--[[Ped (int)]] ped,--[[int]] duration,--[[Ped (int)]] facingPed,--[[int]] timeToFacePed,--[[int]] flags)return native_invoker.unified_void(ped, duration, facingPed, timeToFacePed, flags, 0xF2EAB31979A7F910, "iiiii")end - UPDATE_TASK_HANDS_UP_DURATION=--[[void]] function(--[[Ped (int)]] ped,--[[int]] duration)return native_invoker.unified_void(ped, duration, 0xA98FCAFD7893C834, "ii")end - -- The given ped will try to open the nearest door to 'seat'. - -- Example: telling the ped to open the door for the driver seat does not necessarily mean it will open the driver door, it may choose to open the passenger door instead if that one is closer. - TASK_OPEN_VEHICLE_DOOR=--[[void]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] vehicle,--[[int]] timeOut,--[[int]] seat,--[[float]] speed)return native_invoker.unified_void(ped, vehicle, timeOut, seat, speed, 0x965791A9A488A062, "iiiif")end - -- speed 1.0 = walk, 2.0 = run - -- p5 1 = normal, 3 = teleport to vehicle, 16 = teleport directly into vehicle - -- p6 is always 0 - -- - -- Usage of seat - -- -1 = driver - -- 0 = passenger - -- 1 = left back seat - -- 2 = right back seat - -- 3 = outside left - -- 4 = outside right - TASK_ENTER_VEHICLE=--[[void]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] vehicle,--[[int]] timeout,--[[int]] seat,--[[float]] speed,--[[int]] flag,--[[string]] overrideEntryClipsetName,--[[Any (int)]] p7)return native_invoker.unified_void(ped, vehicle, timeout, seat, speed, flag, overrideEntryClipsetName, p7, 0xC20E50AA46D09CA8, "iiiifisi")end - -- Flags from decompiled scripts: - -- 0 = normal exit and closes door. - -- 1 = normal exit and closes door. - -- 16 = teleports outside, door kept closed. - -- 64 = normal exit and closes door, maybe a bit slower animation than 0. - -- 256 = normal exit but does not close the door. - -- 4160 = ped is throwing himself out, even when the vehicle is still. - -- 262144 = ped moves to passenger seat first, then exits normally - -- - -- Others to be tried out: 320, 512, 131072. - TASK_LEAVE_VEHICLE=--[[void]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] vehicle,--[[int]] flags)return native_invoker.unified_void(ped, vehicle, flags, 0xD3DBCE61A490BE02, "iii")end - TASK_GET_OFF_BOAT=--[[void]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] boat)return native_invoker.unified_void(ped, boat, 0x9C00E77AF14B2DFF, "ii")end - TASK_SKY_DIVE=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] instant)return native_invoker.unified_void(ped, instant, 0x601736CFE536B0A0, "ib")end - -- Second parameter is unused. - -- - -- second parameter was for jetpack in the early stages of gta and the hard coded code is now removed - TASK_PARACHUTE=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] giveParachuteItem,--[[BOOL (bool)]] instant)return native_invoker.unified_void(ped, giveParachuteItem, instant, 0xD2F1C53C97EE81AB, "ibb")end - -- makes ped parachute to coords x y z. Works well with PATHFIND::GET_SAFE_COORD_FOR_PED - TASK_PARACHUTE_TO_TARGET=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(ped, x, y, z, 0xB33E291AFA6BD03A, "ifff")end - SET_PARACHUTE_TASK_TARGET=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(ped, x, y, z, 0xC313379AF0FCEDA7, "ifff")end - SET_PARACHUTE_TASK_THRUST=--[[void]] function(--[[Ped (int)]] ped,--[[float]] thrust)return native_invoker.unified_void(ped, thrust, 0x0729BAC1B8C64317, "if")end - -- minHeightAboveGround: the minimum height above ground the heli must be at before the ped can start rappelling - -- - -- Only appears twice in the scripts. - -- - -- TASK::TASK_RAPPEL_FROM_HELI(PLAYER::PLAYER_PED_ID(), 10.0f); - -- TASK::TASK_RAPPEL_FROM_HELI(a_0, 10.0f); - TASK_RAPPEL_FROM_HELI=--[[void]] function(--[[Ped (int)]] ped,--[[float]] minHeightAboveGround)return native_invoker.unified_void(ped, minHeightAboveGround, 0x09693B0312F91649, "if")end - -- info about driving modes: https://gtaforums.com/topic/822314-guide-driving-styles/ - TASK_VEHICLE_DRIVE_TO_COORD=--[[void]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] vehicle,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] speed,--[[Any (int)]] p6,--[[Hash (int)]] vehicleModel,--[[int]] drivingMode,--[[float]] stopRange,--[[float]] straightLineDistance)return native_invoker.unified_void(ped, vehicle, x, y, z, speed, p6, vehicleModel, drivingMode, stopRange, straightLineDistance, 0xE2A2AA2F659D77A7, "iiffffiiiff")end - TASK_VEHICLE_DRIVE_TO_COORD_LONGRANGE=--[[void]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] vehicle,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] speed,--[[int]] driveMode,--[[float]] stopRange)return native_invoker.unified_void(ped, vehicle, x, y, z, speed, driveMode, stopRange, 0x158BB33F920D360C, "iiffffif")end - TASK_VEHICLE_DRIVE_WANDER=--[[void]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] vehicle,--[[float]] speed,--[[int]] drivingStyle)return native_invoker.unified_void(ped, vehicle, speed, drivingStyle, 0x480142959D337D00, "iifi")end - -- p6 always -1 - -- p7 always 10.0 - -- p8 always 1 - TASK_FOLLOW_TO_OFFSET_OF_ENTITY=--[[void]] function(--[[Ped (int)]] ped,--[[Entity (int)]] entity,--[[float]] offsetX,--[[float]] offsetY,--[[float]] offsetZ,--[[float]] movementSpeed,--[[int]] timeout,--[[float]] stoppingRange,--[[BOOL (bool)]] persistFollowing)return native_invoker.unified_void(ped, entity, offsetX, offsetY, offsetZ, movementSpeed, timeout, stoppingRange, persistFollowing, 0x304AE42E357B8C7E, "iiffffifb")end - TASK_GO_STRAIGHT_TO_COORD=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] speed,--[[int]] timeout,--[[float]] targetHeading,--[[float]] distanceToSlide)return native_invoker.unified_void(ped, x, y, z, speed, timeout, targetHeading, distanceToSlide, 0xD76B57B44F1E6F8B, "iffffiff")end - TASK_GO_STRAIGHT_TO_COORD_RELATIVE_TO_ENTITY=--[[void]] function(--[[Ped (int)]] ped,--[[Entity (int)]] entity,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] moveBlendRatio,--[[int]] time)return native_invoker.unified_void(ped, entity, x, y, z, moveBlendRatio, time, 0x61E360B7E040D12E, "iiffffi")end - -- Makes the specified ped achieve the specified heading. - -- - -- pedHandle: The handle of the ped to assign the task to. - -- heading: The desired heading. - -- timeout: The time, in milliseconds, to allow the task to complete. If the task times out, it is cancelled, and the ped will stay at the heading it managed to reach in the time. - TASK_ACHIEVE_HEADING=--[[void]] function(--[[Ped (int)]] ped,--[[float]] heading,--[[int]] timeout)return native_invoker.unified_void(ped, heading, timeout, 0x93B93A37987F1F3D, "ifi")end - -- MulleKD19: Clears the current point route. Call this before TASK_EXTEND_ROUTE and TASK_FOLLOW_POINT_ROUTE. - TASK_FLUSH_ROUTE=--[[void]] function()return native_invoker.unified_void(0x841142A1376E9006, "")end - -- MulleKD19: Adds a new point to the current point route. Call TASK_FLUSH_ROUTE before the first call to this. Call TASK_FOLLOW_POINT_ROUTE to make the Ped go the route. - -- - -- A maximum of 8 points can be added. - TASK_EXTEND_ROUTE=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(x, y, z, 0x1E7889778264843A, "fff")end - -- MulleKD19: Makes the ped go on the created point route. - -- - -- ped: The ped to give the task to. - -- speed: The speed to move at in m/s. - -- int: Unknown. Can be 0, 1, 2 or 3. - -- - -- Example: - -- TASK_FLUSH_ROUTE(); - -- TASK_EXTEND_ROUTE(0f, 0f, 70f); - -- TASK_EXTEND_ROUTE(10f, 0f, 70f); - -- TASK_EXTEND_ROUTE(10f, 10f, 70f); - -- TASK_FOLLOW_POINT_ROUTE(GET_PLAYER_PED(), 1f, 0); - TASK_FOLLOW_POINT_ROUTE=--[[void]] function(--[[Ped (int)]] ped,--[[float]] speed,--[[int]] mode)return native_invoker.unified_void(ped, speed, mode, 0x595583281858626E, "ifi")end - -- The entity will move towards the target until time is over (duration) or get in target's range (distance). p5 and p6 are unknown, but you could leave p5 = 1073741824 or 100 or even 0 (didn't see any difference but on the decompiled scripts, they use 1073741824 mostly) and p6 = 0 - -- - -- Note: I've only tested it on entity -> ped and target -> vehicle. It could work differently on other entities, didn't try it yet. - -- - -- Example: TASK::TASK_GO_TO_ENTITY(pedHandle, vehicleHandle, 5000, 4.0, 100, 1073741824, 0) - -- - -- Ped will run towards the vehicle for 5 seconds and stop when time is over or when he gets 4 meters(?) around the vehicle (with duration = -1, the task duration will be ignored). - -- - -- enum EGOTO_ENTITY_SCRIPT_FLAGS - -- { - -- EGOTO_ENTITY_NEVER_SLOW_FOR_PATH_LENGTH = 0x01, - -- }; - TASK_GO_TO_ENTITY=--[[void]] function(--[[Entity (int)]] entity,--[[Entity (int)]] target,--[[int]] duration,--[[float]] distance,--[[float]] moveBlendRatio,--[[float]] slowDownDistance,--[[int]] flags)return native_invoker.unified_void(entity, target, duration, distance, moveBlendRatio, slowDownDistance, flags, 0x6A071245EB0D1882, "iiifffi")end - -- Makes the specified ped flee the specified distance from the specified position. - TASK_SMART_FLEE_COORD=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] distance,--[[int]] time,--[[BOOL (bool)]] preferPavements,--[[BOOL (bool)]] quitIfOutOfRange)return native_invoker.unified_void(ped, x, y, z, distance, time, preferPavements, quitIfOutOfRange, 0x94587F17E9C365D5, "iffffibb")end - -- Makes a ped run away from another ped (fleeTarget). - -- - -- distance = ped will flee this distance. - -- fleeTime = ped will flee for this amount of time, set to "-1" to flee forever - TASK_SMART_FLEE_PED=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] fleeTarget,--[[float]] safeDistance,--[[int]] fleeTime,--[[BOOL (bool)]] preferPavements,--[[BOOL (bool)]] updateToNearestHatedPed)return native_invoker.unified_void(ped, fleeTarget, safeDistance, fleeTime, preferPavements, updateToNearestHatedPed, 0x22B0D0E37CCB840D, "iifibb")end - TASK_REACT_AND_FLEE_PED=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] fleeTarget)return native_invoker.unified_void(ped, fleeTarget, 0x72C896464915D1B1, "ii")end - TASK_SHOCKING_EVENT_REACT=--[[void]] function(--[[Ped (int)]] ped,--[[int]] eventHandle)return native_invoker.unified_void(ped, eventHandle, 0x452419CBD838065B, "ii")end - TASK_WANDER_IN_AREA=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[float]] minimalLength,--[[float]] timeBetweenWalks)return native_invoker.unified_void(ped, x, y, z, radius, minimalLength, timeBetweenWalks, 0xE054346CA3A0F315, "iffffff")end - -- Makes ped walk around the area. - -- - -- set p1 to 10.0f and p2 to 10 if you want the ped to walk anywhere without a duration. - TASK_WANDER_STANDARD=--[[void]] function(--[[Ped (int)]] ped,--[[float]] heading,--[[int]] flags)return native_invoker.unified_void(ped, heading, flags, 0xBB9CE077274F6A1B, "ifi")end - TASK_WANDER_SPECIFIC=--[[void]] function(--[[Ped (int)]] ped,--[[string]] conditionalAnimGroupStr,--[[string]] conditionalAnimStr,--[[float]] heading)return native_invoker.unified_void(ped, conditionalAnimGroupStr, conditionalAnimStr, heading, 0x6919A2F136426098, "issf")end - -- Modes: - -- 0 - ignore heading - -- 1 - park forward - -- 2 - park backwards - -- - -- Depending on the angle of approach, the vehicle can park at the specified heading or at its exact opposite (-180) angle. - -- - -- Radius seems to define how close the vehicle has to be -after parking- to the position for this task considered completed. If the value is too small, the vehicle will try to park again until it's exactly where it should be. 20.0 Works well but lower values don't, like the radius is measured in centimeters or something. - TASK_VEHICLE_PARK=--[[void]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] vehicle,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] heading,--[[int]] mode,--[[float]] radius,--[[BOOL (bool)]] keepEngineOn)return native_invoker.unified_void(ped, vehicle, x, y, z, heading, mode, radius, keepEngineOn, 0x0F3E34E968EA374E, "iiffffifb")end - -- known "killTypes" are: "AR_stealth_kill_knife" and "AR_stealth_kill_a". - TASK_STEALTH_KILL=--[[void]] function(--[[Ped (int)]] killer,--[[Ped (int)]] target,--[[Hash (int)]] stealthKillActionResultHash,--[[float]] desiredMoveBlendRatio,--[[int]] stealthFlags)return native_invoker.unified_void(killer, target, stealthKillActionResultHash, desiredMoveBlendRatio, stealthFlags, 0xAA5DC05579D60BD9, "iiifi")end - TASK_PLANT_BOMB=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] heading)return native_invoker.unified_void(ped, x, y, z, heading, 0x965FEC691D55E9BF, "iffff")end - -- If no timeout, set timeout to -1. - TASK_FOLLOW_NAV_MESH_TO_COORD=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] moveBlendRatio,--[[int]] time,--[[float]] targetRadius,--[[int]] flags,--[[float]] targetHeading)return native_invoker.unified_void(ped, x, y, z, moveBlendRatio, time, targetRadius, flags, targetHeading, 0x15D3A79D4E44B913, "iffffifif")end - TASK_FOLLOW_NAV_MESH_TO_COORD_ADVANCED=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] moveBlendRatio,--[[int]] time,--[[float]] targetRadius,--[[int]] flags,--[[float]] slideToCoordHeading,--[[float]] maxSlopeNavigable,--[[float]] clampMaxSearchDistance,--[[float]] targetHeading)return native_invoker.unified_void(ped, x, y, z, moveBlendRatio, time, targetRadius, flags, slideToCoordHeading, maxSlopeNavigable, clampMaxSearchDistance, targetHeading, 0x17F58B88D085DBAC, "iffffififfff")end - SET_PED_PATH_CAN_USE_CLIMBOVERS=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] Toggle)return native_invoker.unified_void(ped, Toggle, 0x8E06A6FE76C9EFF4, "ib")end - SET_PED_PATH_CAN_USE_LADDERS=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] Toggle)return native_invoker.unified_void(ped, Toggle, 0x77A5B103C87F476E, "ib")end - SET_PED_PATH_CAN_DROP_FROM_HEIGHT=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] Toggle)return native_invoker.unified_void(ped, Toggle, 0xE361C5C71C431A4F, "ib")end - -- Default modifier is 1.0, minimum is 0.0 and maximum is 10.0. - SET_PED_PATH_CLIMB_COST_MODIFIER=--[[void]] function(--[[Ped (int)]] ped,--[[float]] modifier)return native_invoker.unified_void(ped, modifier, 0x88E32DB8C1A4AA4B, "if")end - SET_PED_PATH_MAY_ENTER_WATER=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] mayEnterWater)return native_invoker.unified_void(ped, mayEnterWater, 0xF35425A4204367EC, "ib")end - SET_PED_PATH_PREFER_TO_AVOID_WATER=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] avoidWater)return native_invoker.unified_void(ped, avoidWater, 0x38FE1EC73743793C, "ib")end - SET_PED_PATH_AVOID_FIRE=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] avoidFire)return native_invoker.unified_void(ped, avoidFire, 0x4455517B28441E60, "ib")end - -- Needs to be looped! And yes, it does work and is not a hash collision. - -- Birds will try to reach the given height. - SET_GLOBAL_MIN_BIRD_FLIGHT_HEIGHT=--[[void]] function(--[[float]] height)return native_invoker.unified_void(height, 0x6C6B148586F934F7, "f")end - -- Looks like the last parameter returns true if the path has been calculated, while the first returns the remaining distance to the end of the path. - -- Return value of native is the same as GET_NAVMESH_ROUTE_RESULT - -- Looks like the native returns an int for the path's state: - -- 1 - ??? - -- 2 - ??? - -- 3 - Finished Generating - GET_NAVMESH_ROUTE_DISTANCE_REMAINING=--[[int]] function(--[[Ped (int)]] ped,--[[float* (pointer)]] distanceRemaining,--[[BOOL* (pointer)]] isPathReady)return native_invoker.unified_int(ped, distanceRemaining, isPathReady, 0xC6F5C0BCDC74D62D, "ipp")end - -- See GET_NAVMESH_ROUTE_DISTANCE_REMAINING for more details. - GET_NAVMESH_ROUTE_RESULT=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x632E831F382A0FA8, "i")end - IS_CONTROLLED_VEHICLE_UNABLE_TO_GET_TO_ROAD=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x3E38E28A1D80DDF6, "i")end - -- example from fm_mission_controller - -- - -- TASK::TASK_GO_TO_COORD_ANY_MEANS(l_649, sub_f7e86(-1, 0), 1.0, 0, 0, 786603, 0xbf800000); - -- - TASK_GO_TO_COORD_ANY_MEANS=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] moveBlendRatio,--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] useLongRangeVehiclePathing,--[[int]] drivingFlags,--[[float]] maxRangeToShootTargets)return native_invoker.unified_void(ped, x, y, z, moveBlendRatio, vehicle, useLongRangeVehiclePathing, drivingFlags, maxRangeToShootTargets, 0x5BC448CB78FA3E88, "iffffibif")end - TASK_GO_TO_COORD_ANY_MEANS_EXTRA_PARAMS=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] moveBlendRatio,--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] useLongRangeVehiclePathing,--[[int]] drivingFlags,--[[float]] maxRangeToShootTargets,--[[float]] extraVehToTargetDistToPreferVehicle,--[[float]] driveStraightLineDistance,--[[int]] extraFlags,--[[float]] warpTimerMS)return native_invoker.unified_void(ped, x, y, z, moveBlendRatio, vehicle, useLongRangeVehiclePathing, drivingFlags, maxRangeToShootTargets, extraVehToTargetDistToPreferVehicle, driveStraightLineDistance, extraFlags, warpTimerMS, 0x1DD45F9ECFDB1BC9, "iffffibifffif")end - TASK_GO_TO_COORD_ANY_MEANS_EXTRA_PARAMS_WITH_CRUISE_SPEED=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] moveBlendRatio,--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] useLongRangeVehiclePathing,--[[int]] drivingFlags,--[[float]] maxRangeToShootTargets,--[[float]] extraVehToTargetDistToPreferVehicle,--[[float]] driveStraightLineDistance,--[[int]] extraFlags,--[[float]] cruiseSpeed,--[[float]] targetArriveDist)return native_invoker.unified_void(ped, x, y, z, moveBlendRatio, vehicle, useLongRangeVehiclePathing, drivingFlags, maxRangeToShootTargets, extraVehToTargetDistToPreferVehicle, driveStraightLineDistance, extraFlags, cruiseSpeed, targetArriveDist, 0xB8ECD61F531A7B02, "iffffibifffiff")end - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - -- - -- float speed > normal speed is 8.0f - -- ---------------------- - -- - -- float speedMultiplier > multiply the playback speed - -- ---------------------- - -- - -- int duration: time in millisecond - -- ---------------------- - -- -1 _ _ _ _ _ _ _> Default (see flag) - -- 0 _ _ _ _ _ _ _ > Not play at all - -- Small value _ _ > Slow down animation speed - -- Other _ _ _ _ _ > freeze player control until specific time (ms) has - -- _ _ _ _ _ _ _ _ _ passed. (No effect if flag is set to be - -- _ _ _ _ _ _ _ _ _ controllable.) - -- - -- int flag: - -- ---------------------- - -- enum eAnimationFlags - -- { - -- ANIM_FLAG_NORMAL = 0, - -- ANIM_FLAG_REPEAT = 1, - -- ANIM_FLAG_STOP_LAST_FRAME = 2, - -- ANIM_FLAG_UPPERBODY = 16, - -- ANIM_FLAG_ENABLE_PLAYER_CONTROL = 32, - -- ANIM_FLAG_CANCELABLE = 120, - -- }; - -- Odd number : loop infinitely - -- Even number : Freeze at last frame - -- Multiple of 4: Freeze at last frame but controllable - -- - -- 01 to 15 > Full body - -- 10 to 31 > Upper body - -- 32 to 47 > Full body > Controllable - -- 48 to 63 > Upper body > Controllable - -- ... - -- 001 to 255 > Normal - -- 256 to 511 > Garbled - -- ... - -- - -- playbackRate: - -- - -- values are between 0.0 and 1.0 - -- - -- - -- lockX: - -- - -- 0 in most cases 1 for rcmepsilonism8 and rcmpaparazzo_3 - -- > 1 for mini@sprunk - -- - -- - -- lockY: - -- - -- 0 in most cases - -- 1 for missfam5_yoga, missfra1mcs_2_crew_react - -- - -- - -- lockZ: - -- - -- 0 for single player - -- Can be 1 but only for MP - TASK_PLAY_ANIM=--[[void]] function(--[[Ped (int)]] ped,--[[string]] animDictionary,--[[string]] animationName,--[[float]] blendInSpeed,--[[float]] blendOutSpeed,--[[int]] duration,--[[int]] flag,--[[float]] playbackRate,--[[BOOL (bool)]] lockX,--[[BOOL (bool)]] lockY,--[[BOOL (bool)]] lockZ)return native_invoker.unified_void(ped, animDictionary, animationName, blendInSpeed, blendOutSpeed, duration, flag, playbackRate, lockX, lockY, lockZ, 0xEA47FE3719165B94, "issffiifbbb")end - -- It's similar to TASK_PLAY_ANIM, except the first 6 floats let you specify the initial position and rotation of the task. (Ped gets teleported to the position). - -- - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - TASK_PLAY_ANIM_ADVANCED=--[[void]] function(--[[Ped (int)]] ped,--[[string]] animDict,--[[string]] animName,--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ,--[[float]] animEnterSpeed,--[[float]] animExitSpeed,--[[int]] duration,--[[Any (int)]] flag,--[[float]] animTime,--[[int]] rotOrder,--[[int]] ikFlags)return native_invoker.unified_void(ped, animDict, animName, posX, posY, posZ, rotX, rotY, rotZ, animEnterSpeed, animExitSpeed, duration, flag, animTime, rotOrder, ikFlags, 0x83CDB10EA29B370B, "issffffffffiifii")end - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - STOP_ANIM_TASK=--[[void]] function(--[[Entity (int)]] entity,--[[string]] animDictionary,--[[string]] animationName,--[[float]] blendDelta)return native_invoker.unified_void(entity, animDictionary, animationName, blendDelta, 0x97FF36A1D40EA00A, "issf")end - -- From fm_mission_controller.c: - -- reserve_network_mission_objects(get_num_reserved_mission_objects(0) + 1); - -- vVar28 = {0.094f, 0.02f, -0.005f}; - -- vVar29 = {-92.24f, 63.64f, 150.24f}; - -- func_253(&uVar30, joaat("prop_ld_case_01"), Global_1592429.imm_34757[iParam1 <268>], 1, 1, 0, 1); - -- set_entity_lod_dist(net_to_ent(uVar30), 500); - -- attach_entity_to_entity(net_to_ent(uVar30), iParam0, get_ped_bone_index(iParam0, 28422), vVar28, vVar29, 1, 0, 0, 0, 2, 1); - -- Var31.imm_4 = 1065353216; - -- Var31.imm_5 = 1065353216; - -- Var31.imm_9 = 1065353216; - -- Var31.imm_10 = 1065353216; - -- Var31.imm_14 = 1065353216; - -- Var31.imm_15 = 1065353216; - -- Var31.imm_17 = 1040187392; - -- Var31.imm_18 = 1040187392; - -- Var31.imm_19 = -1; - -- Var32.imm_4 = 1065353216; - -- Var32.imm_5 = 1065353216; - -- Var32.imm_9 = 1065353216; - -- Var32.imm_10 = 1065353216; - -- Var32.imm_14 = 1065353216; - -- Var32.imm_15 = 1065353216; - -- Var32.imm_17 = 1040187392; - -- Var32.imm_18 = 1040187392; - -- Var32.imm_19 = -1; - -- Var31 = 1; - -- Var31.imm_1 = "weapons@misc@jerrycan@mp_male"; - -- Var31.imm_2 = "idle"; - -- Var31.imm_20 = 1048633; - -- Var31.imm_4 = 0.5f; - -- Var31.imm_16 = get_hash_key("BONEMASK_ARMONLY_R"); - -- task_scripted_animation(iParam0, &Var31, &Var32, &Var32, 0f, 0.25f); - -- set_model_as_no_longer_needed(joaat("prop_ld_case_01")); - -- remove_anim_dict("anim@heists@biolab@"); - TASK_SCRIPTED_ANIMATION=--[[void]] function(--[[Ped (int)]] ped,--[[int* (pointer)]] priorityLowData,--[[int* (pointer)]] priorityMidData,--[[int* (pointer)]] priorityHighData,--[[float]] blendInDelta,--[[float]] blendOutDelta)return native_invoker.unified_void(ped, priorityLowData, priorityMidData, priorityHighData, blendInDelta, blendOutDelta, 0x126EF75F1E17ABE5, "ipppff")end - PLAY_ENTITY_SCRIPTED_ANIM=--[[void]] function(--[[Entity (int)]] entity,--[[int* (pointer)]] priorityLowData,--[[int* (pointer)]] priorityMidData,--[[int* (pointer)]] priorityHighData,--[[float]] blendInDelta,--[[float]] blendOutDelta)return native_invoker.unified_void(entity, priorityLowData, priorityMidData, priorityHighData, blendInDelta, blendOutDelta, 0x77A1EEC547E7FCF1, "ipppff")end - -- Looks like p1 may be a flag, still need to do some research, though. - STOP_ANIM_PLAYBACK=--[[void]] function(--[[Entity (int)]] entity,--[[int]] priority,--[[BOOL (bool)]] secondary)return native_invoker.unified_void(entity, priority, secondary, 0xEE08C992D238C5D1, "iib")end - SET_ANIM_WEIGHT=--[[void]] function(--[[Entity (int)]] entity,--[[float]] weight,--[[int]] priority,--[[int]] index,--[[BOOL (bool)]] secondary)return native_invoker.unified_void(entity, weight, priority, index, secondary, 0x207F1A47C0342F48, "ifiib")end - SET_ANIM_PHASE=--[[void]] function(--[[Entity (int)]] entity,--[[float]] phase,--[[int]] priority,--[[BOOL (bool)]] secondary)return native_invoker.unified_void(entity, phase, priority, secondary, 0xDDF3CB5A0A4C0B49, "ifib")end - SET_ANIM_RATE=--[[void]] function(--[[Entity (int)]] entity,--[[float]] rate,--[[int]] priority,--[[BOOL (bool)]] secondary)return native_invoker.unified_void(entity, rate, priority, secondary, 0x032D49C5E359C847, "ifib")end - SET_ANIM_LOOPED=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] looped,--[[int]] priority,--[[BOOL (bool)]] secondary)return native_invoker.unified_void(entity, looped, priority, secondary, 0x70033C3CC29A1FF4, "ibib")end - -- Example from the scripts: - -- TASK::TASK_PLAY_PHONE_GESTURE_ANIMATION(PLAYER::PLAYER_PED_ID(), v_3, v_2, v_4, 0.25, 0.25, 0, 0); - -- - -- ========================================================= - -- ^^ No offense, but Idk how that would really help anyone. - -- - -- As for the animDict & animation, they're both store in a global in all 5 scripts. So if anyone would be so kind as to read that global and comment what strings they use. Thanks. - -- - -- Known boneMaskTypes' - -- "BONEMASK_HEADONLY" - -- "BONEMASK_HEAD_NECK_AND_ARMS" - -- "BONEMASK_HEAD_NECK_AND_L_ARM" - -- "BONEMASK_HEAD_NECK_AND_R_ARM" - -- - -- p4 known args - 0.0f, 0.5f, 0.25f - -- p5 known args - 0.0f, 0.25f - -- p6 known args - 1 if a global if check is passed. - -- p7 known args - 1 if a global if check is passed. - -- - -- The values found above, I found within the 5 scripts this is ever called in. (fmmc_launcher, fm_deathmatch_controller, fm_impromptu_dm_controller, fm_mission_controller, and freemode). - -- ========================================================= - -- - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - TASK_PLAY_PHONE_GESTURE_ANIMATION=--[[void]] function(--[[Ped (int)]] ped,--[[string]] animDict,--[[string]] animation,--[[string]] boneMaskType,--[[float]] blendInDuration,--[[float]] blendOutDuration,--[[BOOL (bool)]] isLooping,--[[BOOL (bool)]] holdLastFrame)return native_invoker.unified_void(ped, animDict, animation, boneMaskType, blendInDuration, blendOutDuration, isLooping, holdLastFrame, 0x8FBB6758B3B3E9EC, "isssffbb")end - TASK_STOP_PHONE_GESTURE_ANIMATION=--[[void]] function(--[[Ped (int)]] ped,--[[float]] blendOutOverride)return native_invoker.unified_void(ped, blendOutOverride, 0x3FA00D4F4641BFAE, "if")end - IS_PLAYING_PHONE_GESTURE_ANIM=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xB8EBB1E9D3588C10, "i")end - GET_PHONE_GESTURE_ANIM_CURRENT_TIME=--[[float]] function(--[[Ped (int)]] ped)return native_invoker.unified_float(ped, 0x47619ABE8B268C60, "i")end - GET_PHONE_GESTURE_ANIM_TOTAL_TIME=--[[float]] function(--[[Ped (int)]] ped)return native_invoker.unified_float(ped, 0x1EE0F68A7C25DEC6, "i")end - -- Most probably plays a specific animation on vehicle. For example getting chop out of van etc... - -- - -- Here's how its used - - -- - -- TASK::TASK_VEHICLE_PLAY_ANIM(l_325, "rcmnigel1b", "idle_speedo"); - -- - -- TASK::TASK_VEHICLE_PLAY_ANIM(l_556[0/*1*/], "missfra0_chop_drhome", "InCar_GetOutofBack_Speedo"); - -- - -- FYI : Speedo is the name of van in which chop was put in the mission. - TASK_VEHICLE_PLAY_ANIM=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[string]] animationSet,--[[string]] animationName)return native_invoker.unified_void(vehicle, animationSet, animationName, 0x69F5C3BD0F3EBD89, "iss")end - -- enum eScriptLookatFlags - -- { - -- SLF_SLOW_TURN_RATE = 1, // turn the head toward the target slowly - -- SLF_FAST_TURN_RATE = 2, // turn the head toward the target quickly - -- SLF_EXTEND_YAW_LIMIT = 4, // wide yaw head limits - -- SLF_EXTEND_PITCH_LIMIT = 8, // wide pitch head limit - -- SLF_WIDEST_YAW_LIMIT = 16, // widest yaw head limit - -- SLF_WIDEST_PITCH_LIMIT = 32, // widest pitch head limit - -- SLF_NARROW_YAW_LIMIT = 64, // narrow yaw head limits - -- SLF_NARROW_PITCH_LIMIT = 128, // narrow pitch head limit - -- SLF_NARROWEST_YAW_LIMIT = 256, // narrowest yaw head limit - -- SLF_NARROWEST_PITCH_LIMIT = 512, // narrowest pitch head limit - -- SLF_USE_TORSO = 1024, // use the torso aswell as the neck and head (currently disabled) - -- SLF_WHILE_NOT_IN_FOV = 2048, // keep tracking the target even if they are not in the hard coded FOV - -- SLF_USE_CAMERA_FOCUS = 4096, // use the camera as the target - -- SLF_USE_EYES_ONLY = 8192, // only track the target with the eyes - -- SLF_USE_LOOK_DIR = 16384, // use information in look dir DOF - -- SLF_FROM_SCRIPT = 32768, // internal use only - -- SLF_USE_REF_DIR_ABSOLUTE = 65536 // use absolute reference direction mode for solver - -- }; - TASK_LOOK_AT_COORD=--[[void]] function(--[[Entity (int)]] entity,--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] duration,--[[int]] flags,--[[int]] priority)return native_invoker.unified_void(entity, x, y, z, duration, flags, priority, 0x6FA46612594F7973, "ifffiii")end - -- For flags, please refer to TASK_LOOK_AT_COORD. - TASK_LOOK_AT_ENTITY=--[[void]] function(--[[Ped (int)]] ped,--[[Entity (int)]] lookAt,--[[int]] duration,--[[int]] flags,--[[int]] priority)return native_invoker.unified_void(ped, lookAt, duration, flags, priority, 0x69F4BE8C8CC4796C, "iiiii")end - TASK_CLEAR_LOOK_AT=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x0F804F1DB19B9689, "i")end - OPEN_SEQUENCE_TASK=--[[void]] function(--[[int* (pointer)]] taskSequenceId)return native_invoker.unified_void(taskSequenceId, 0xE8854A4326B9E12B, "p")end - CLOSE_SEQUENCE_TASK=--[[void]] function(--[[int]] taskSequenceId)return native_invoker.unified_void(taskSequenceId, 0x39E72BC99E6360CB, "i")end - TASK_PERFORM_SEQUENCE=--[[void]] function(--[[Ped (int)]] ped,--[[int]] taskSequenceId)return native_invoker.unified_void(ped, taskSequenceId, 0x5ABA3986D90D8A3B, "ii")end - TASK_PERFORM_SEQUENCE_LOCALLY=--[[void]] function(--[[Ped (int)]] ped,--[[int]] taskSequenceId)return native_invoker.unified_void(ped, taskSequenceId, 0x8C33220C8D78CA0D, "ii")end - CLEAR_SEQUENCE_TASK=--[[void]] function(--[[int* (pointer)]] taskSequenceId)return native_invoker.unified_void(taskSequenceId, 0x3841422E9C488D8C, "p")end - SET_SEQUENCE_TO_REPEAT=--[[void]] function(--[[int]] taskSequenceId,--[[BOOL (bool)]] _repeat)return native_invoker.unified_void(taskSequenceId, _repeat, 0x58C70CF3A41E4AE7, "ib")end - -- returned values: - -- 0 to 7 = task that's currently in progress, 0 meaning the first one. - -- -1 no task sequence in progress. - GET_SEQUENCE_PROGRESS=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x00A9010CFE1E3533, "i")end - -- Task index enum: https://alloc8or.re/gta5/doc/enums/eTaskTypeIndex.txt - GET_IS_TASK_ACTIVE=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[int]] taskIndex)return native_invoker.unified_bool(ped, taskIndex, 0xB0760331C7AA4155, "ii")end - -- Gets the status of a script-assigned task. - -- taskHash: https://alloc8or.re/gta5/doc/enums/eScriptTaskHash.txt - GET_SCRIPT_TASK_STATUS=--[[int]] function(--[[Ped (int)]] ped,--[[Hash (int)]] taskHash)return native_invoker.unified_int(ped, taskHash, 0x77F1BEB8863288D5, "ii")end - -- https://alloc8or.re/gta5/doc/enums/eVehicleMissionType.txt - GET_ACTIVE_VEHICLE_MISSION_TYPE=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x534AEBA6E5ED4CAB, "i")end - -- Flags are the same flags used in TASK_LEAVE_VEHICLE - TASK_LEAVE_ANY_VEHICLE=--[[void]] function(--[[Ped (int)]] ped,--[[int]] delayTime,--[[int]] flags)return native_invoker.unified_void(ped, delayTime, flags, 0x504D54DF3F6F2247, "iii")end - TASK_AIM_GUN_SCRIPTED=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] scriptTask,--[[BOOL (bool)]] disableBlockingClip,--[[BOOL (bool)]] instantBlendToAim)return native_invoker.unified_void(ped, scriptTask, disableBlockingClip, instantBlendToAim, 0x7A192BE16D373D00, "iibb")end - TASK_AIM_GUN_SCRIPTED_WITH_TARGET=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] target,--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] gunTaskType,--[[BOOL (bool)]] disableBlockingClip,--[[BOOL (bool)]] forceAim)return native_invoker.unified_void(ped, target, x, y, z, gunTaskType, disableBlockingClip, forceAim, 0x8605AF0DE8B3A5AC, "iifffibb")end - UPDATE_TASK_AIM_GUN_SCRIPTED_TARGET=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] target,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] disableBlockingClip)return native_invoker.unified_void(ped, target, x, y, z, disableBlockingClip, 0x9724FB59A3E72AD0, "iifffb")end - GET_CLIP_SET_FOR_SCRIPTED_GUN_TASK=--[[string]] function(--[[int]] gunTaskType)return native_invoker.unified_string(gunTaskType, 0x3A8CADC7D37AACC5, "i")end - -- duration: the amount of time in milliseconds to do the task. -1 will keep the task going until either another task is applied, or CLEAR_ALL_TASKS() is called with the ped - TASK_AIM_GUN_AT_ENTITY=--[[void]] function(--[[Ped (int)]] ped,--[[Entity (int)]] entity,--[[int]] duration,--[[BOOL (bool)]] instantBlendToAim)return native_invoker.unified_void(ped, entity, duration, instantBlendToAim, 0x9B53BB6E8943AF53, "iiib")end - -- duration: the amount of time in milliseconds to do the task. -1 will keep the task going until either another task is applied, or CLEAR_ALL_TASKS() is called with the ped - TASK_TURN_PED_TO_FACE_ENTITY=--[[void]] function(--[[Ped (int)]] ped,--[[Entity (int)]] entity,--[[int]] duration)return native_invoker.unified_void(ped, entity, duration, 0x5AD23D40115353AC, "iii")end - TASK_AIM_GUN_AT_COORD=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] time,--[[BOOL (bool)]] instantBlendToAim,--[[BOOL (bool)]] playAnimIntro)return native_invoker.unified_void(ped, x, y, z, time, instantBlendToAim, playAnimIntro, 0x6671F3EEC681BDA1, "ifffibb")end - -- Firing Pattern Hash Information: https://pastebin.com/Px036isB - TASK_SHOOT_AT_COORD=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] duration,--[[Hash (int)]] firingPattern)return native_invoker.unified_void(ped, x, y, z, duration, firingPattern, 0x46A6CC01E0826106, "ifffii")end - -- Makes the specified ped shuffle to the next vehicle seat. - -- The ped MUST be in a vehicle and the vehicle parameter MUST be the ped's current vehicle. - TASK_SHUFFLE_TO_NEXT_VEHICLE_SEAT=--[[void]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] useAlternateShuffle)return native_invoker.unified_void(ped, vehicle, useAlternateShuffle, 0x7AA80209BDA643EB, "iib")end - CLEAR_PED_TASKS=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xE1EF3C1216AFF2CD, "i")end - CLEAR_PED_SECONDARY_TASK=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x176CECF6F920D707, "i")end - TASK_EVERYONE_LEAVE_VEHICLE=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x7F93691AB4B92272, "i")end - -- enum ESEEK_ENTITY_OFFSET_FLAGS - -- { - -- ESEEK_OFFSET_ORIENTATES_WITH_ENTITY = 0x01, - -- ESEEK_KEEP_TO_PAVEMENTS = 0x02 - -- }; - TASK_GOTO_ENTITY_OFFSET=--[[void]] function(--[[Ped (int)]] ped,--[[Entity (int)]] entity,--[[int]] time,--[[float]] seekRadius,--[[float]] seekAngleDeg,--[[float]] moveBlendRatio,--[[int]] gotoEntityOffsetFlags)return native_invoker.unified_void(ped, entity, time, seekRadius, seekAngleDeg, moveBlendRatio, gotoEntityOffsetFlags, 0xE39B4FF4FDEBDE27, "iiifffi")end - TASK_GOTO_ENTITY_OFFSET_XY=--[[void]] function(--[[Ped (int)]] ped,--[[Entity (int)]] entity,--[[int]] duration,--[[float]] targetRadius,--[[float]] offsetX,--[[float]] offsetY,--[[float]] moveBlendRatio,--[[int]] gotoEntityOffsetFlags)return native_invoker.unified_void(ped, entity, duration, targetRadius, offsetX, offsetY, moveBlendRatio, gotoEntityOffsetFlags, 0x338E7EF52B6095A9, "iiiffffi")end - -- duration in milliseconds - TASK_TURN_PED_TO_FACE_COORD=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] duration)return native_invoker.unified_void(ped, x, y, z, duration, 0x1DDA930A0AC38571, "ifffi")end - -- '1 - brake - -- '3 - brake + reverse - -- '4 - turn left 90 + braking - -- '5 - turn right 90 + braking - -- '6 - brake strong (handbrake?) until time ends - -- '7 - turn left + accelerate - -- '8 - turn right + accelerate - -- '9 - weak acceleration - -- '10 - turn left + restore wheel pos to center in the end - -- '11 - turn right + restore wheel pos to center in the end - -- '13 - turn left + go reverse - -- '14 - turn left + go reverse - -- '16 - crash the game after like 2 seconds :) - -- '17 - keep actual state, game crashed after few tries - -- '18 - game crash - -- '19 - strong brake + turn left/right - -- '20 - weak brake + turn left then turn right - -- '21 - weak brake + turn right then turn left - -- '22 - brake + reverse - -- '23 - accelerate fast - -- '24 - brake - -- '25 - brake turning left then when almost stopping it turns left more - -- '26 - brake turning right then when almost stopping it turns right more - -- '27 - brake until car stop or until time ends - -- '28 - brake + strong reverse acceleration - -- '30 - performs a burnout (brake until stop + brake and accelerate) - -- '31 - accelerate + handbrake - -- '32 - accelerate very strong - -- - -- Seems to be this: - -- Works on NPCs, but overrides their current task. If inside a task sequence (and not being the last task), "time" will work, otherwise the task will be performed forever until tasked with something else - TASK_VEHICLE_TEMP_ACTION=--[[void]] function(--[[Ped (int)]] driver,--[[Vehicle (int)]] vehicle,--[[int]] action,--[[int]] time)return native_invoker.unified_void(driver, vehicle, action, time, 0xC429DCEEB339E129, "iiii")end - -- missionType: https://alloc8or.re/gta5/doc/enums/eVehicleMissionType.txt - TASK_VEHICLE_MISSION=--[[void]] function(--[[Ped (int)]] driver,--[[Vehicle (int)]] vehicle,--[[Vehicle (int)]] vehicleTarget,--[[int]] missionType,--[[float]] cruiseSpeed,--[[int]] drivingStyle,--[[float]] targetReached,--[[float]] straightLineDistance,--[[BOOL (bool)]] DriveAgainstTraffic)return native_invoker.unified_void(driver, vehicle, vehicleTarget, missionType, cruiseSpeed, drivingStyle, targetReached, straightLineDistance, DriveAgainstTraffic, 0x659427E0EF36BCDE, "iiiififfb")end - -- See TASK_VEHICLE_MISSION - TASK_VEHICLE_MISSION_PED_TARGET=--[[void]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] vehicle,--[[Ped (int)]] pedTarget,--[[int]] missionType,--[[float]] maxSpeed,--[[int]] drivingStyle,--[[float]] minDistance,--[[float]] straightLineDistance,--[[BOOL (bool)]] DriveAgainstTraffic)return native_invoker.unified_void(ped, vehicle, pedTarget, missionType, maxSpeed, drivingStyle, minDistance, straightLineDistance, DriveAgainstTraffic, 0x9454528DF15D657A, "iiiififfb")end - -- See TASK_VEHICLE_MISSION - TASK_VEHICLE_MISSION_COORS_TARGET=--[[void]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] vehicle,--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] mission,--[[float]] cruiseSpeed,--[[int]] drivingStyle,--[[float]] targetReached,--[[float]] straightLineDistance,--[[BOOL (bool)]] DriveAgainstTraffic)return native_invoker.unified_void(ped, vehicle, x, y, z, mission, cruiseSpeed, drivingStyle, targetReached, straightLineDistance, DriveAgainstTraffic, 0xF0AF20AA7731F8C3, "iifffififfb")end - -- Makes a ped follow the targetVehicle with in between. - -- - -- note: minDistance is ignored if drivingstyle is avoiding traffic, but Rushed is fine. - -- - -- Mode: The mode defines the relative position to the targetVehicle. The ped will try to position its vehicle there. - -- -1 = behind - -- 0 = ahead - -- 1 = left - -- 2 = right - -- 3 = back left - -- 4 = back right - -- - -- if the target is closer than noRoadsDistance, the driver will ignore pathing/roads and follow you directly. - -- - -- Driving Styles guide: gtaforums.com/topic/822314-guide-driving-styles/ - TASK_VEHICLE_ESCORT=--[[void]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] vehicle,--[[Vehicle (int)]] targetVehicle,--[[int]] mode,--[[float]] speed,--[[int]] drivingStyle,--[[float]] minDistance,--[[int]] minHeightAboveTerrain,--[[float]] noRoadsDistance)return native_invoker.unified_void(ped, vehicle, targetVehicle, mode, speed, drivingStyle, minDistance, minHeightAboveTerrain, noRoadsDistance, 0x0FA6E4B75F302400, "iiiififif")end - -- Makes a ped in a vehicle follow an entity (ped, vehicle, etc.) - -- - -- drivingStyle: http://gtaforums.com/topic/822314-guide-driving-styles/ - TASK_VEHICLE_FOLLOW=--[[void]] function(--[[Ped (int)]] driver,--[[Vehicle (int)]] vehicle,--[[Entity (int)]] targetEntity,--[[float]] speed,--[[int]] drivingStyle,--[[int]] minDistance)return native_invoker.unified_void(driver, vehicle, targetEntity, speed, drivingStyle, minDistance, 0xFC545A9F0626E3B6, "iiifii")end - -- chases targetEnt fast and aggressively - -- -- - -- Makes ped (needs to be in vehicle) chase targetEnt. - TASK_VEHICLE_CHASE=--[[void]] function(--[[Ped (int)]] driver,--[[Entity (int)]] targetEnt)return native_invoker.unified_void(driver, targetEnt, 0x3C08A8E30363B353, "ii")end - -- pilot, vehicle and altitude are rather self-explanatory. - -- - -- p4: is unused variable in the function. - -- - -- entityToFollow: you can provide a Vehicle entity or a Ped entity, the heli will protect them. - -- - -- 'targetSpeed': The pilot will dip the nose AS MUCH AS POSSIBLE so as to reach this value AS FAST AS POSSIBLE. As such, you'll want to modulate it as opposed to calling it via a hard-wired, constant #. - -- - -- 'radius' isn't just "stop within radius of X of target" like with ground vehicles. In this case, the pilot will fly an entire circle around 'radius' and continue to do so. - -- - -- NOT CONFIRMED: p7 appears to be a FlyingStyle enum. Still investigating it as of this writing, but playing around with values here appears to result in different -behavior- as opposed to offsetting coordinates, altitude, target speed, etc. - -- - -- NOTE: If the pilot finds enemies, it will engage them until it kills them, but will return to protect the ped/vehicle given shortly thereafter. - TASK_VEHICLE_HELI_PROTECT=--[[void]] function(--[[Ped (int)]] pilot,--[[Vehicle (int)]] vehicle,--[[Entity (int)]] entityToFollow,--[[float]] targetSpeed,--[[int]] drivingFlags,--[[float]] radius,--[[int]] altitude,--[[int]] heliFlags)return native_invoker.unified_void(pilot, vehicle, entityToFollow, targetSpeed, drivingFlags, radius, altitude, heliFlags, 0x1E09C32048FEFD1C, "iiififii")end - -- Flag 8: Medium-aggressive boxing tactic with a bit of PIT - -- Flag 1: Aggressive ramming of suspect - -- Flag 2: Ram attempts - -- Flag 32: Stay back from suspect, no tactical contact. Convoy-like. - -- Flag 16: Ramming, seems to be slightly less aggressive than 1-2. - SET_TASK_VEHICLE_CHASE_BEHAVIOR_FLAG=--[[void]] function(--[[Ped (int)]] ped,--[[int]] flag,--[[BOOL (bool)]] set)return native_invoker.unified_void(ped, flag, set, 0xCC665AAC360D31E7, "iib")end - SET_TASK_VEHICLE_CHASE_IDEAL_PURSUIT_DISTANCE=--[[void]] function(--[[Ped (int)]] ped,--[[float]] distance)return native_invoker.unified_void(ped, distance, 0x639B642FACBE4EDD, "if")end - -- Ped pilot should be in a heli. - -- EntityToFollow can be a vehicle or Ped. - -- - -- x,y,z appear to be how close to the EntityToFollow the heli should be. Scripts use 0.0, 0.0, 80.0. Then the heli tries to position itself 80 units above the EntityToFollow. If you reduce it to -5.0, it tries to go below (if the EntityToFollow is a heli or plane) - -- - -- - -- NOTE: If the pilot finds enemies, it will engage them, then remain there idle, not continuing to chase the Entity given. - TASK_HELI_CHASE=--[[void]] function(--[[Ped (int)]] pilot,--[[Entity (int)]] entityToFollow,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(pilot, entityToFollow, x, y, z, 0xAC83B1DB38D0ADA0, "iifff")end - TASK_PLANE_CHASE=--[[void]] function(--[[Ped (int)]] pilot,--[[Entity (int)]] entityToFollow,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(pilot, entityToFollow, x, y, z, 0x2D2386F273FF7A25, "iifff")end - TASK_PLANE_LAND=--[[void]] function(--[[Ped (int)]] pilot,--[[Vehicle (int)]] plane,--[[float]] runwayStartX,--[[float]] runwayStartY,--[[float]] runwayStartZ,--[[float]] runwayEndX,--[[float]] runwayEndY,--[[float]] runwayEndZ)return native_invoker.unified_void(pilot, plane, runwayStartX, runwayStartY, runwayStartZ, runwayEndX, runwayEndY, runwayEndZ, 0xBF19721FA34D32C0, "iiffffff")end - CLEAR_DEFAULT_PRIMARY_TASK=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x6100B3CEFD43452E, "i")end - -- This native is very useful when switching the player to a ped inside a vehicle that has a task assigned prior to the player switch. - -- It is necessary to clear the ped's tasks AND call this native with the vehicle the player is switching into in order to allow the player to control the vehicle after the player switches. - CLEAR_PRIMARY_VEHICLE_TASK=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0xDBBC7A2432524127, "i")end - CLEAR_VEHICLE_CRASH_TASK=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x53DDC75BC3AC0A90, "i")end - TASK_PLANE_GOTO_PRECISE_VTOL=--[[void]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] vehicle,--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] flightHeight,--[[int]] minHeightAboveTerrain,--[[BOOL (bool)]] useDesiredOrientation,--[[float]] desiredOrientation,--[[BOOL (bool)]] autopilot)return native_invoker.unified_void(ped, vehicle, x, y, z, flightHeight, minHeightAboveTerrain, useDesiredOrientation, desiredOrientation, autopilot, 0xF7F9DCCA89E7505B, "iifffiibfb")end - -- Used in am_vehicle_spawn.ysc and am_mp_submarine.ysc. - -- - -- p0 is always 0, p5 is always 1 - -- - -- p1 is the vehicle handle of the submarine. Submarine must have a driver, but the ped handle is not passed to the native. - -- - -- Speed can be set by calling SET_DRIVE_TASK_CRUISE_SPEED after - TASK_SUBMARINE_GOTO_AND_STOP=--[[void]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] submarine,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] autopilot)return native_invoker.unified_void(ped, submarine, x, y, z, autopilot, 0xC22B40579A498CA4, "iifffb")end - -- Must have targetVehicle, targetPed, OR destination X/Y/Z set - -- Will follow targeted vehicle/ped, or fly to destination - -- Set whichever is not being used to 0 - -- - -- - -- Mission mode type: - -- - 4, 7: Forces heli to snap to the heading if set, flies to destination or tracks specified entity (mode 4 only works for coordinates, 7 works for coordinates OR ped/vehicle) - -- - 6: Attacks the target ped/vehicle with mounted weapons. If radius is set, will maintain that distance from target. - -- - 8: Makes the heli flee from the ped/vehicle/coordinate - -- - 9: Circles around target ped/vehicle, snaps to angle if set. Behavior flag (last parameter) of 2048 switches from counter-clockwise to clockwise circling. Does not work with coordinate destination. - -- - 10, 11: Follows ped/vehicle target and imitates target heading. Only works with ped/vehicle target, not coord target - -- - 19: Heli lands at specified coordinate, ignores heading (lands facing whatever direction it is facing when the task is started) - -- - 20: Makes the heli land when near target ped. It won't resume chasing. - -- - 21: Emulates a helicopter crash - -- - 23: makes the heli circle erratically around ped - -- - -- - -- Heli will fly at maxSpeed (up to actual maximum speed defined by the model's handling config) - -- You can use SET_DRIVE_TASK_CRUISE_SPEED to modulate the speed based on distance to the target without having to re-invoke the task native. Setting to 8.0 when close to the destination results in a much smoother approach. - -- - -- If minHeight and maxHeight are set, heli will fly between those specified elevations, relative to ground level and any obstructions/buildings below. You can specify -1 for either if you only want to specify one. Usually it is easiest to leave maxHeight at -1, and specify a reasonable minHeight to ensure clearance over any obstacles. Note this MUST be passed as an INT, not a FLOAT. - -- - -- Radius affects how closely the heli will follow tracked ped/vehicle, and when circling (mission type 9) sets the radius (in meters) that it will circle the target from - -- - -- Heading is -1.0 for default behavior, which will point the nose of the helicopter towards the destination. Set a heading and the heli will lock to that direction when near its destination/target, but may still turn towards the destination when flying at higher speed from a further distance. - -- - -- Behavior Flags is a bitwise value that modifies the AI behavior. Not clear what all flags do, but here are some guesses/notes: - -- 1: Forces heading to face E - -- 2: Unknown - -- 4: Tight circles around coordinate destination - -- 8: Unknown - -- 16: Circles around coordinate destination facing towards destination - -- 32: Flys to normally, then lands at coordinate destination and stays on the ground (using mission type 4) - -- 64: Ignores obstacles when flying, will follow at specified minHeight above ground level but will not avoid buildings, vehicles, etc. - -- 128: Unknown - -- 256: Unknown - -- 512: Unknown - -- 1024: Unknown - -- 2048: Reverses direction of circling (mission type 9) to clockwise - -- 4096: Hugs closer to the ground, maintains minHeight from ground generally, but barely clears buildings and dips down more between buildings instead of taking a more efficient/safe route - -- 8192: Unknown - -- - -- Unk3 is a float value, you may see -1082130432 for this value in decompiled native scripts, this is the equivalent to -1.0f. Seems to affect acceleration/aggressiveness, but not sure exactly how it works. Higher value seems to result in lower acceleration/less aggressive flying. Almost always -1.0 in native scripts, occasionally 20.0 or 50.0. Setting to 400.0 seems to work well for making the pilot not overshoot the destination when using coordinate destination. - -- - -- Notes updated by PNWParksFan, May 2021 - -- - TASK_HELI_MISSION=--[[void]] function(--[[Ped (int)]] pilot,--[[Vehicle (int)]] aircraft,--[[Vehicle (int)]] targetVehicle,--[[Ped (int)]] targetPed,--[[float]] destinationX,--[[float]] destinationY,--[[float]] destinationZ,--[[int]] missionFlag,--[[float]] maxSpeed,--[[float]] radius,--[[float]] targetHeading,--[[int]] maxHeight,--[[int]] minHeight,--[[float]] slowDownDistance,--[[int]] behaviorFlags)return native_invoker.unified_void(pilot, aircraft, targetVehicle, targetPed, destinationX, destinationY, destinationZ, missionFlag, maxSpeed, radius, targetHeading, maxHeight, minHeight, slowDownDistance, behaviorFlags, 0xDAD029E187A2BEB4, "iiiifffifffiifi")end - TASK_HELI_ESCORT_HELI=--[[void]] function(--[[Ped (int)]] pilot,--[[Vehicle (int)]] heli1,--[[Vehicle (int)]] heli2,--[[float]] offsetX,--[[float]] offsetY,--[[float]] offsetZ)return native_invoker.unified_void(pilot, heli1, heli2, offsetX, offsetY, offsetZ, 0xB385523325077210, "iiifff")end - -- EXAMPLE USAGE: - -- - -- Fly around target (Precautiously, keeps high altitude): - -- Function.Call(Hash.TASK_PLANE_MISSION, pilot, selectedAirplane, 0, 0, Target.X, Target.Y, Target.Z, 4, 100f, 0f, 90f, 0, 200f); - -- - -- Fly around target (Dangerously, keeps VERY low altitude): - -- Function.Call(Hash.TASK_PLANE_MISSION, pilot, selectedAirplane, 0, 0, Target.X, Target.Y, Target.Z, 4, 100f, 0f, 90f, 0, -500f); - -- - -- Fly directly into target: - -- Function.Call(Hash.TASK_PLANE_MISSION, pilot, selectedAirplane, 0, 0, Target.X, Target.Y, Target.Z, 4, 100f, 0f, 90f, 0, -5000f); - -- - -- EXPANDED INFORMATION FOR ADVANCED USAGE (custom pilot) - -- - -- 'physicsSpeed': (THIS IS NOT YOUR ORDINARY SPEED PARAMETER: READ!!) - -- Think of this -first- as a radius value, not a true speed value. The ACTUAL effective speed of the plane will be that of the maximum speed permissible to successfully fly in a -circle- with a radius of 'physicsSpeed'. This also means that the plane must complete a circle before it can begin its "bombing run", its straight line pass towards the target. p9 appears to influence the angle at which a "bombing run" begins, although I can't confirm yet. - -- - -- VERY IMPORTANT: A "bombing run" will only occur if a plane can successfully determine a possible navigable route (the slower the value of 'physicsSpeed', the more precise the pilot can be due to less influence of physics on flightpath). Otherwise, the pilot will continue to patrol around Destination (be it a dynamic Entity position vector or a fixed world coordinate vector.) - -- - -- 0 = Plane's physics are almost entirely frozen, plane appears to "orbit" around precise destination point - -- 1-299 = Blend of "frozen, small radius" vs. normal vs. "accelerated, hyperfast, large radius" - -- 300+ = Vehicle behaves entirely like a normal gameplay plane. - -- - -- 'patrolBlend' (The lower the value, the more the Destination is treated as a "fly AT" rather than a "fly AROUND point".) - -- - -- Scenario: Destination is an Entity on ground level, wide open field - -- -5000 = Pilot kamikazes directly into Entity - -- -1000 = Pilot flies extremely low -around- Entity, very prone to crashing - -- -200 = Pilot flies lower than average around Entity. - -- 0 = Pilot flies around Entity, normal altitude - -- 200 = Pilot flies an extra eighty units or so higher than 0 while flying around Destination (this doesn't seem to correlate directly into distance units.) - -- - -- -- Valid mission types found in the exe: -- - -- - -- 0 = None - -- 1 = Unk - -- 2 = CTaskVehicleRam - -- 3 = CTaskVehicleBlock - -- 4 = CTaskVehicleGoToPlane - -- 5 = CTaskVehicleStop - -- 6 = CTaskVehicleAttack - -- 7 = CTaskVehicleFollow - -- 8 = CTaskVehicleFleeAirborne - -- 9= CTaskVehicleCircle - -- 10 = CTaskVehicleEscort - -- 15 = CTaskVehicleFollowRecording - -- 16 = CTaskVehiclePoliceBehaviour - -- 17 = CTaskVehicleCrash - TASK_PLANE_MISSION=--[[void]] function(--[[Ped (int)]] pilot,--[[Vehicle (int)]] aircraft,--[[Vehicle (int)]] targetVehicle,--[[Ped (int)]] targetPed,--[[float]] destinationX,--[[float]] destinationY,--[[float]] destinationZ,--[[int]] missionFlag,--[[float]] angularDrag,--[[float]] targetReached,--[[float]] targetHeading,--[[float]] maxZ,--[[float]] minZ,--[[BOOL (bool)]] precise)return native_invoker.unified_void(pilot, aircraft, targetVehicle, targetPed, destinationX, destinationY, destinationZ, missionFlag, angularDrag, targetReached, targetHeading, maxZ, minZ, precise, 0x23703CD154E83B88, "iiiifffifffffb")end - TASK_PLANE_TAXI=--[[void]] function(--[[Ped (int)]] pilot,--[[Vehicle (int)]] aircraft,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] cruiseSpeed,--[[float]] targetReached)return native_invoker.unified_void(pilot, aircraft, x, y, z, cruiseSpeed, targetReached, 0x92C360B5F15D2302, "iifffff")end - -- You need to call PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS after TASK_BOAT_MISSION in order for the task to execute. - -- - -- Working example - -- float vehicleMaxSpeed = VEHICLE::GET_VEHICLE_ESTIMATED_MAX_SPEED(ENTITY::GET_ENTITY_MODEL(pedVehicle)); - -- TASK::TASK_BOAT_MISSION(pedDriver, pedVehicle, 0, 0, waypointCoord.x, waypointCoord.y, waypointCoord.z, 4, vehicleMaxSpeed, 786469, -1.0, 7); - -- PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedDriver, 1); - -- - -- P8 appears to be driving style flag - see gtaforums.com/topic/822314-guide-driving-styles/ for documentation - TASK_BOAT_MISSION=--[[void]] function(--[[Ped (int)]] pedDriver,--[[Vehicle (int)]] vehicle,--[[Vehicle (int)]] targetVehicle,--[[Ped (int)]] targetPed,--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] mission,--[[float]] maxSpeed,--[[int]] drivingStyle,--[[float]] targetReached,--[[Any (int)]] boatFlags)return native_invoker.unified_void(pedDriver, vehicle, targetVehicle, targetPed, x, y, z, mission, maxSpeed, drivingStyle, targetReached, boatFlags, 0x15C86013127CE63F, "iiiifffififi")end - -- Example: - -- - -- TASK::TASK_DRIVE_BY(l_467[1/*22*/], PLAYER::PLAYER_PED_ID(), 0, 0.0, 0.0, 2.0, 300.0, 100, 0, ${firing_pattern_burst_fire_driveby}); - -- - -- - -- - -- - -- Needs working example. Doesn't seem to do anything. - -- - -- I marked p2 as targetVehicle as all these shooting related tasks seem to have that in common. - -- I marked p6 as distanceToShoot as if you think of GTA's Logic with the native SET_VEHICLE_SHOOT natives, it won't shoot till it gets within a certain distance of the target. - -- I marked p7 as pedAccuracy as it seems it's mostly 100 (Completely Accurate), 75, 90, etc. Although this could be the ammo count within the gun, but I highly doubt it. I will change this comment once I find out if it's ammo count or not. - TASK_DRIVE_BY=--[[void]] function(--[[Ped (int)]] driverPed,--[[Ped (int)]] targetPed,--[[Vehicle (int)]] targetVehicle,--[[float]] targetX,--[[float]] targetY,--[[float]] targetZ,--[[float]] distanceToShoot,--[[int]] pedAccuracy,--[[BOOL (bool)]] pushUnderneathDrivingTaskIfDriving,--[[Hash (int)]] firingPattern)return native_invoker.unified_void(driverPed, targetPed, targetVehicle, targetX, targetY, targetZ, distanceToShoot, pedAccuracy, pushUnderneathDrivingTaskIfDriving, firingPattern, 0x2F8AF0E82773A171, "iiiffffibi")end - -- For p1 & p2 (Ped, Vehicle). I could be wrong, as the only time this native is called in scripts is once and both are 0, but I assume this native will work like SET_MOUNTED_WEAPON_TARGET in which has the same exact amount of parameters and the 1st and last 3 parameters are right and the same for both natives. - SET_DRIVEBY_TASK_TARGET=--[[void]] function(--[[Ped (int)]] shootingPed,--[[Ped (int)]] targetPed,--[[Vehicle (int)]] targetVehicle,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(shootingPed, targetPed, targetVehicle, x, y, z, 0xE5B302114D8162EE, "iiifff")end - CLEAR_DRIVEBY_TASK_UNDERNEATH_DRIVING_TASK=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xC35B5CDB2824CF69, "i")end - IS_DRIVEBY_TASK_UNDERNEATH_DRIVING_TASK=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x8785E6E40C7A8818, "i")end - -- Forces the ped to use the mounted weapon. - -- Returns false if task is not possible. - CONTROL_MOUNTED_WEAPON=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xDCFE42068FE0135A, "i")end - -- Note: Look in decompiled scripts and the times that p1 and p2 aren't 0. They are filled with vars. If you look through out that script what other natives those vars are used in, you can tell p1 is a ped and p2 is a vehicle. Which most likely means if you want the mounted weapon to target a ped set targetVehicle to 0 or vice-versa. - SET_MOUNTED_WEAPON_TARGET=--[[void]] function(--[[Ped (int)]] shootingPed,--[[Ped (int)]] targetPed,--[[Vehicle (int)]] targetVehicle,--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] taskMode,--[[BOOL (bool)]] ignoreTargetVehDeadCheck)return native_invoker.unified_void(shootingPed, targetPed, targetVehicle, x, y, z, taskMode, ignoreTargetVehDeadCheck, 0xCCD892192C6D2BB9, "iiifffib")end - IS_MOUNTED_WEAPON_TASK_UNDERNEATH_DRIVING_TASK=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xA320EF046186FA3B, "i")end - -- Actually has 3 params, not 2. - -- - -- p0: Ped - -- p1: int (or bool?) - -- p2: int - TASK_USE_MOBILE_PHONE=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] usePhone,--[[int]] desiredPhoneMode)return native_invoker.unified_void(ped, usePhone, desiredPhoneMode, 0xBD2A8EC3AF4DE7DB, "ibi")end - TASK_USE_MOBILE_PHONE_TIMED=--[[void]] function(--[[Ped (int)]] ped,--[[int]] duration)return native_invoker.unified_void(ped, duration, 0x5EE02954A14C69DB, "ii")end - -- p2 tend to be 16, 17 or 1 - -- p3 to p7 tend to be 0.0 - TASK_CHAT_TO_PED=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] target,--[[int]] flags,--[[float]] goToLocationX,--[[float]] goToLocationY,--[[float]] goToLocationZ,--[[float]] headingDegs,--[[float]] idleTime)return native_invoker.unified_void(ped, target, flags, goToLocationX, goToLocationY, goToLocationZ, headingDegs, idleTime, 0x8C338E0263E4FD19, "iiifffff")end - -- Seat Numbers - -- ------------------------------- - -- Driver = -1 - -- Any = -2 - -- Left-Rear = 1 - -- Right-Front = 0 - -- Right-Rear = 2 - -- Extra seats = 3-14(This may differ from vehicle type e.g. Firetruck Rear Stand, Ambulance Rear) - TASK_WARP_PED_INTO_VEHICLE=--[[void]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] vehicle,--[[int]] seat)return native_invoker.unified_void(ped, vehicle, seat, 0x9A7D091411C5F684, "iii")end - -- //this part of the code is to determine at which entity the player is aiming, for example if you want to create a mod where you give orders to peds - -- Entity aimedentity; - -- Player player = PLAYER::PLAYER_ID(); - -- PLAYER::_GET_AIMED_ENTITY(player, &aimedentity); - -- - -- //bg is an array of peds - -- TASK::TASK_SHOOT_AT_ENTITY(bg[i], aimedentity, 5000, MISC::GET_HASH_KEY("FIRING_PATTERN_FULL_AUTO")); - -- - -- in practical usage, getting the entity the player is aiming at and then task the peds to shoot at the entity, at a button press event would be better. - -- - -- Firing Pattern Hash Information: https://pastebin.com/Px036isB - TASK_SHOOT_AT_ENTITY=--[[void]] function(--[[Entity (int)]] entity,--[[Entity (int)]] target,--[[int]] duration,--[[Hash (int)]] firingPattern)return native_invoker.unified_void(entity, target, duration, firingPattern, 0x08DA95E8298AE772, "iiii")end - -- Climbs or vaults the nearest thing. - -- usePlayerLaunchForce is unused. - TASK_CLIMB=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] usePlayerLaunchForce)return native_invoker.unified_void(ped, usePlayerLaunchForce, 0x89D9FCC2435112F1, "ib")end - TASK_CLIMB_LADDER=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] fast)return native_invoker.unified_void(ped, fast, 0xB6C987F9285A3814, "ib")end - -- Attaches a ped to a rope and allows player control to rappel down a wall. Disables all collisions while on the rope. - -- p10: Usually 1 in the scripts, clipSet: Clipset to use for the task, minZ: Minimum Z that the player can descend to, ropeHandle: Rope to attach this task to created with ADD_ROPE - TASK_RAPPEL_DOWN_WALL_USING_CLIPSET_OVERRIDE=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] minZ,--[[int]] ropeHandle,--[[string]] clipSet,--[[Any (int)]] p10,--[[Any (int)]] p11)return native_invoker.unified_void(ped, x1, y1, z1, x2, y2, z2, minZ, ropeHandle, clipSet, p10, p11, 0xEAF66ACDDC794793, "ifffffffisii")end - GET_TASK_RAPPEL_DOWN_WALL_STATE=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x9D252648778160DF, "i")end - -- Immediately stops the pedestrian from whatever it's doing. They stop fighting, animations, etc. they forget what they were doing. - CLEAR_PED_TASKS_IMMEDIATELY=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xAAA34F8A7CB32098, "i")end - TASK_PERFORM_SEQUENCE_FROM_PROGRESS=--[[void]] function(--[[Ped (int)]] ped,--[[int]] taskIndex,--[[int]] progress1,--[[int]] progress2)return native_invoker.unified_void(ped, taskIndex, progress1, progress2, 0x89221B16730234F0, "iiii")end - -- This native does absolutely nothing, just a nullsub - -- - -- R* Comment: - -- SET_NEXT_DESIRED_MOVE_STATE - Function is deprecated - do not use anymore - SET_NEXT_DESIRED_MOVE_STATE=--[[void]] function(--[[float]] nextMoveState)return native_invoker.unified_void(nextMoveState, 0xF1B9F16E89E2C93A, "f")end - SET_PED_DESIRED_MOVE_BLEND_RATIO=--[[void]] function(--[[Ped (int)]] ped,--[[float]] newMoveBlendRatio)return native_invoker.unified_void(ped, newMoveBlendRatio, 0x1E982AC8716912C5, "if")end - GET_PED_DESIRED_MOVE_BLEND_RATIO=--[[float]] function(--[[Ped (int)]] ped)return native_invoker.unified_float(ped, 0x8517D4A6CA8513ED, "i")end - -- eg - -- - -- TASK::TASK_GOTO_ENTITY_AIMING(v_2, PLAYER::PLAYER_PED_ID(), 5.0, 25.0); - -- - -- ped = Ped you want to perform this task. - -- target = the Entity they should aim at. - -- distanceToStopAt = distance from the target, where the ped should stop to aim. - -- StartAimingDist = distance where the ped should start to aim. - TASK_GOTO_ENTITY_AIMING=--[[void]] function(--[[Ped (int)]] ped,--[[Entity (int)]] target,--[[float]] distanceToStopAt,--[[float]] StartAimingDist)return native_invoker.unified_void(ped, target, distanceToStopAt, StartAimingDist, 0xA9DA48FAB8A76C12, "iiff")end - -- p1 is always GET_HASH_KEY("empty") in scripts, for the rare times this is used - TASK_SET_DECISION_MAKER=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] decisionMakerId)return native_invoker.unified_void(ped, decisionMakerId, 0xEB8517DDA73720DA, "ii")end - TASK_SET_SPHERE_DEFENSIVE_AREA=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius)return native_invoker.unified_void(ped, x, y, z, radius, 0x933C06518B52A9A4, "iffff")end - TASK_CLEAR_DEFENSIVE_AREA=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x95A6C46A31D1917D, "i")end - TASK_PED_SLIDE_TO_COORD=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] heading,--[[float]] speed)return native_invoker.unified_void(ped, x, y, z, heading, speed, 0xD04FE6765D990A06, "ifffff")end - TASK_PED_SLIDE_TO_COORD_HDG_RATE=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] heading,--[[float]] speed,--[[float]] headingChangeRate)return native_invoker.unified_void(ped, x, y, z, heading, speed, headingChangeRate, 0x5A4A6A6D3DC64F52, "iffffff")end - ADD_COVER_POINT=--[[ScrHandle (int)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] direction,--[[int]] usage,--[[int]] height,--[[int]] arc,--[[BOOL (bool)]] isPriority)return native_invoker.unified_int(x, y, z, direction, usage, height, arc, isPriority, 0xD5C12A75C7B9497F, "ffffiiib")end - REMOVE_COVER_POINT=--[[void]] function(--[[ScrHandle (int)]] coverpoint)return native_invoker.unified_void(coverpoint, 0xAE287C923D891715, "i")end - -- Checks if there is a cover point at position - DOES_SCRIPTED_COVER_POINT_EXIST_AT_COORDS=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_bool(x, y, z, 0xA98B8E3C088E5A31, "fff")end - GET_SCRIPTED_COVER_POINT_COORDS=--[[Vector3 (vector3)]] function(--[[ScrHandle (int)]] coverpoint)return native_invoker.unified_vector3(coverpoint, 0x594A1028FC2A3E85, "i")end - ADD_SCRIPTED_COVER_AREA=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius)return native_invoker.unified_void(x, y, z, radius, 0x28B7B9BFDAF274AA, "ffff")end - -- Makes the specified ped attack the target ped. - -- p2 should be 0 - -- p3 should be 16 - TASK_COMBAT_PED=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] targetPed,--[[int]] combatFlags,--[[int]] threatResponseFlags)return native_invoker.unified_void(ped, targetPed, combatFlags, threatResponseFlags, 0xF166E48407BAC484, "iiii")end - TASK_COMBAT_PED_TIMED=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] target,--[[int]] time,--[[int]] flags)return native_invoker.unified_void(ped, target, time, flags, 0x944F30DCB7096BDE, "iiii")end - TASK_SEEK_COVER_FROM_POS=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] duration,--[[BOOL (bool)]] allowPeekingAndFiring)return native_invoker.unified_void(ped, x, y, z, duration, allowPeekingAndFiring, 0x75AC2B60386D89F2, "ifffib")end - TASK_SEEK_COVER_FROM_PED=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] target,--[[int]] duration,--[[BOOL (bool)]] allowPeekingAndFiring)return native_invoker.unified_void(ped, target, duration, allowPeekingAndFiring, 0x84D32B3BEC531324, "iiib")end - -- p5 is always -1 - TASK_SEEK_COVER_TO_COVER_POINT=--[[void]] function(--[[Ped (int)]] ped,--[[ScrHandle (int)]] coverpoint,--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] time,--[[BOOL (bool)]] allowPeekingAndFiring)return native_invoker.unified_void(ped, coverpoint, x, y, z, time, allowPeekingAndFiring, 0xD43D95C7A869447F, "iifffib")end - -- p8 causes the ped to take the shortest route to the cover position. It may have something to do with navmesh or pathfinding mechanics. - -- - -- from michael2: - -- TASK::TASK_SEEK_COVER_TO_COORDS(ped, 967.5164794921875, -2121.603515625, 30.479299545288086, 978.94677734375, -2125.84130859375, 29.4752, -1, 1); - -- - -- - -- appears to be shorter variation - -- from michael3: - -- TASK::TASK_SEEK_COVER_TO_COORDS(ped, -2231.011474609375, 263.6326599121094, 173.60195922851562, -1, 0); - TASK_SEEK_COVER_TO_COORDS=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[int]] timeout,--[[BOOL (bool)]] shortRoute)return native_invoker.unified_void(ped, x1, y1, z1, x2, y2, z2, timeout, shortRoute, 0x39246A6958EF072C, "iffffffib")end - TASK_PUT_PED_DIRECTLY_INTO_COVER=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] time,--[[BOOL (bool)]] allowPeekingAndFiring,--[[float]] blendInDuration,--[[BOOL (bool)]] forceInitialFacingDirection,--[[BOOL (bool)]] forceFaceLeft,--[[int]] identifier,--[[BOOL (bool)]] doEntry)return native_invoker.unified_void(ped, x, y, z, time, allowPeekingAndFiring, blendInDuration, forceInitialFacingDirection, forceFaceLeft, identifier, doEntry, 0x4172393E6BE1FECE, "ifffibfbbib")end - TASK_WARP_PED_DIRECTLY_INTO_COVER=--[[void]] function(--[[Ped (int)]] ped,--[[int]] time,--[[BOOL (bool)]] allowPeekingAndFiring,--[[BOOL (bool)]] forceInitialFacingDirection,--[[BOOL (bool)]] forceFaceLeft,--[[int]] identifier)return native_invoker.unified_void(ped, time, allowPeekingAndFiring, forceInitialFacingDirection, forceFaceLeft, identifier, 0x6E01E9E8D89F8276, "iibbbi")end - -- p1 is 1, 2, or 3 in scripts - TASK_EXIT_COVER=--[[void]] function(--[[Ped (int)]] ped,--[[int]] exitType,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(ped, exitType, x, y, z, 0x79B258E397854D29, "iifff")end - -- from armenian3.c4 - -- - -- TASK::TASK_PUT_PED_DIRECTLY_INTO_MELEE(PlayerPed, armenianPed, 0.0, -1.0, 0.0, 0); - -- - TASK_PUT_PED_DIRECTLY_INTO_MELEE=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] meleeTarget,--[[float]] blendInDuration,--[[float]] timeInMelee,--[[float]] strafePhaseSync,--[[int]] aiCombatFlags)return native_invoker.unified_void(ped, meleeTarget, blendInDuration, timeInMelee, strafePhaseSync, aiCombatFlags, 0x1C6CD14A876FFE39, "iifffi")end - -- used in sequence task - -- - -- both parameters seems to be always 0 - TASK_TOGGLE_DUCK=--[[void]] function(--[[Ped (int)]] ped,--[[int]] toggleType)return native_invoker.unified_void(ped, toggleType, 0xAC96609B9995EDF8, "ii")end - -- From re_prisonvanbreak: - -- - -- TASK::TASK_GUARD_CURRENT_POSITION(l_DD, 35.0, 35.0, 1); - TASK_GUARD_CURRENT_POSITION=--[[void]] function(--[[Ped (int)]] ped,--[[float]] maxPatrolProximity,--[[float]] defensiveAreaRadius,--[[BOOL (bool)]] setDefensiveArea)return native_invoker.unified_void(ped, maxPatrolProximity, defensiveAreaRadius, setDefensiveArea, 0x4A58A47A72E3FCB4, "iffb")end - TASK_GUARD_ASSIGNED_DEFENSIVE_AREA=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] heading,--[[float]] maxPatrolProximity,--[[int]] timer)return native_invoker.unified_void(ped, x, y, z, heading, maxPatrolProximity, timer, 0xD2A207EEBDF9889B, "ifffffi")end - TASK_GUARD_SPHERE_DEFENSIVE_AREA=--[[void]] function(--[[Ped (int)]] ped,--[[float]] defendPositionX,--[[float]] defendPositionY,--[[float]] defendPositionZ,--[[float]] heading,--[[float]] maxPatrolProximity,--[[int]] time,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] defensiveAreaRadius)return native_invoker.unified_void(ped, defendPositionX, defendPositionY, defendPositionZ, heading, maxPatrolProximity, time, x, y, z, defensiveAreaRadius, 0xC946FE14BE0EB5E2, "ifffffiffff")end - -- scenarioName example: "WORLD_HUMAN_GUARD_STAND" - TASK_STAND_GUARD=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] heading,--[[string]] scenarioName)return native_invoker.unified_void(ped, x, y, z, heading, scenarioName, 0xAE032F8BBA959E90, "iffffs")end - SET_DRIVE_TASK_CRUISE_SPEED=--[[void]] function(--[[Ped (int)]] driver,--[[float]] cruiseSpeed)return native_invoker.unified_void(driver, cruiseSpeed, 0x5C9B84BD7D31D908, "if")end - SET_DRIVE_TASK_MAX_CRUISE_SPEED=--[[void]] function(--[[Ped (int)]] ped,--[[float]] speed)return native_invoker.unified_void(ped, speed, 0x404A5AA9B9F0B746, "if")end - -- This native is used to set the driving style for specific ped. - -- - -- Driving styles id seems to be: - -- 786468 - -- 262144 - -- 786469 - -- - -- http://gtaforums.com/topic/822314-guide-driving-styles/ - SET_DRIVE_TASK_DRIVING_STYLE=--[[void]] function(--[[Ped (int)]] ped,--[[int]] drivingStyle)return native_invoker.unified_void(ped, drivingStyle, 0xDACE1BE37D88AF67, "ii")end - ADD_COVER_BLOCKING_AREA=--[[void]] function(--[[float]] startX,--[[float]] startY,--[[float]] startZ,--[[float]] endX,--[[float]] endY,--[[float]] endZ,--[[BOOL (bool)]] blockObjects,--[[BOOL (bool)]] blockVehicles,--[[BOOL (bool)]] blockMap,--[[BOOL (bool)]] blockPlayer)return native_invoker.unified_void(startX, startY, startZ, endX, endY, endZ, blockObjects, blockVehicles, blockMap, blockPlayer, 0x45C597097DD7CB81, "ffffffbbbb")end - REMOVE_ALL_COVER_BLOCKING_AREAS=--[[void]] function()return native_invoker.unified_void(0xDB6708C0B46F56D8, "")end - REMOVE_COVER_BLOCKING_AREAS_AT_POSITION=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(x, y, z, 0xFA83CA6776038F64, "fff")end - REMOVE_SPECIFIC_COVER_BLOCKING_AREAS=--[[void]] function(--[[float]] startX,--[[float]] startY,--[[float]] startZ,--[[float]] endX,--[[float]] endY,--[[float]] endZ,--[[BOOL (bool)]] blockObjects,--[[BOOL (bool)]] blockVehicles,--[[BOOL (bool)]] blockMap,--[[BOOL (bool)]] blockPlayer)return native_invoker.unified_void(startX, startY, startZ, endX, endY, endZ, blockObjects, blockVehicles, blockMap, blockPlayer, 0x1F351CF1C6475734, "ffffffbbbb")end - -- Plays a scenario on a Ped at their current location. - -- - -- unkDelay - Usually 0 or -1, doesn't seem to have any effect. Might be a delay between sequences. - -- playEnterAnim - Plays the "Enter" anim if true, otherwise plays the "Exit" anim. Scenarios that don't have any "Enter" anims won't play if this is set to true. - -- - -- ---- - -- - -- From "am_hold_up.ysc.c4" at line 339: - -- - -- TASK::TASK_START_SCENARIO_IN_PLACE(NETWORK::NET_TO_PED(l_8D._f4), sub_adf(), 0, 1); - -- - -- I'm unsure of what the last two parameters are, however sub_adf() randomly returns 1 of 3 scenarios, those being: - -- WORLD_HUMAN_SMOKING - -- WORLD_HUMAN_HANG_OUT_STREET - -- WORLD_HUMAN_STAND_MOBILE - -- - -- This makes sense, as these are what I commonly see when going by a liquor store. - -- ------------------------- - -- List of scenarioNames: https://pastebin.com/6mrYTdQv - -- (^ Thank you so fucking much for this) - -- - -- Also these: - -- WORLD_FISH_FLEE - -- DRIVE - -- WORLD_HUMAN_HIKER - -- WORLD_VEHICLE_ATTRACTOR - -- WORLD_VEHICLE_BICYCLE_MOUNTAIN - -- WORLD_VEHICLE_BIKE_OFF_ROAD_RACE - -- WORLD_VEHICLE_BIKER - -- WORLD_VEHICLE_CONSTRUCTION_PASSENGERS - -- WORLD_VEHICLE_CONSTRUCTION_SOLO - -- WORLD_VEHICLE_DRIVE_PASSENGERS - -- WORLD_VEHICLE_DRIVE_SOLO - -- WORLD_VEHICLE_EMPTY - -- WORLD_VEHICLE_PARK_PARALLEL - -- WORLD_VEHICLE_PARK_PERPENDICULAR_NOSE_IN - -- WORLD_VEHICLE_POLICE_BIKE - -- WORLD_VEHICLE_POLICE_CAR - -- WORLD_VEHICLE_POLICE_NEXT_TO_CAR - -- WORLD_VEHICLE_SALTON_DIRT_BIKE - -- WORLD_VEHICLE_TRUCK_LOGS - -- - -- Full list of ped scenarios by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenariosCompact.json - TASK_START_SCENARIO_IN_PLACE=--[[void]] function(--[[Ped (int)]] ped,--[[string]] scenarioName,--[[int]] unkDelay,--[[BOOL (bool)]] playEnterAnim)return native_invoker.unified_void(ped, scenarioName, unkDelay, playEnterAnim, 0x142A02425FF02BD9, "isib")end - -- Full list of ped scenarios by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenariosCompact.json - -- - -- Also a few more listed at TASK::TASK_START_SCENARIO_IN_PLACE just above. - -- --------------- - -- The first parameter in every scenario has always been a Ped of some sort. The second like TASK_START_SCENARIO_IN_PLACE is the name of the scenario. - -- - -- The next 4 parameters were harder to decipher. After viewing "hairdo_shop_mp.ysc.c4", and being confused from seeing the case in other scripts, they passed the first three of the arguments as one array from a function, and it looked like it was obviously x, y, and z. - -- - -- I haven't seen the sixth parameter go to or over 360, making me believe that it is rotation, but I really can't confirm anything. - -- - -- I have no idea what the last 3 parameters are, but I'll try to find out. - -- - -- -going on the last 3 parameters, they appear to always be "0, 0, 1" - -- - -- p6 -1 also used in scrips - -- - -- p7 used for sitting scenarios - -- - -- p8 teleports ped to position - TASK_START_SCENARIO_AT_POSITION=--[[void]] function(--[[Ped (int)]] ped,--[[string]] scenarioName,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] heading,--[[int]] duration,--[[BOOL (bool)]] sittingScenario,--[[BOOL (bool)]] teleport)return native_invoker.unified_void(ped, scenarioName, x, y, z, heading, duration, sittingScenario, teleport, 0xFA4EFC79F69D4F07, "isffffibb")end - -- Updated variables - -- - -- An alternative to TASK::TASK_USE_NEAREST_SCENARIO_TO_COORD_WARP. Makes the ped walk to the scenario instead. - TASK_USE_NEAREST_SCENARIO_TO_COORD=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] distance,--[[int]] duration)return native_invoker.unified_void(ped, x, y, z, distance, duration, 0x277F471BA9DB000B, "iffffi")end - TASK_USE_NEAREST_SCENARIO_TO_COORD_WARP=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[int]] timeToLeave)return native_invoker.unified_void(ped, x, y, z, radius, timeToLeave, 0x58E2E0F23F6B76C3, "iffffi")end - -- p5 is always 0 in scripts - TASK_USE_NEAREST_SCENARIO_CHAIN_TO_COORD=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] maxRange,--[[int]] timeToLeave)return native_invoker.unified_void(ped, x, y, z, maxRange, timeToLeave, 0x9FDA1B3D7E7028B3, "iffffi")end - -- p5 is always -1 or 0 in scripts - TASK_USE_NEAREST_SCENARIO_CHAIN_TO_COORD_WARP=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[int]] timeToLeave)return native_invoker.unified_void(ped, x, y, z, radius, timeToLeave, 0x97A28E63F0BA5631, "iffffi")end - DOES_SCENARIO_EXIST_IN_AREA=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[BOOL (bool)]] mustBeFree)return native_invoker.unified_bool(x, y, z, radius, mustBeFree, 0x5A59271FFADD33C1, "ffffb")end - DOES_SCENARIO_OF_TYPE_EXIST_IN_AREA=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[string]] scenarioName,--[[float]] radius,--[[BOOL (bool)]] mustBeFree)return native_invoker.unified_bool(x, y, z, scenarioName, radius, mustBeFree, 0x0A9D0C2A3BBC86C1, "fffsfb")end - IS_SCENARIO_OCCUPIED=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] maxRange,--[[BOOL (bool)]] onlyUsersActuallyAtScenario)return native_invoker.unified_bool(x, y, z, maxRange, onlyUsersActuallyAtScenario, 0x788756D73AC2E07C, "ffffb")end - PED_HAS_USE_SCENARIO_TASK=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x295E3CCEC879CCD7, "i")end - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - PLAY_ANIM_ON_RUNNING_SCENARIO=--[[void]] function(--[[Ped (int)]] ped,--[[string]] animDict,--[[string]] animName)return native_invoker.unified_void(ped, animDict, animName, 0x748040460F8DF5DC, "iss")end - -- Full list of scenario groups used in scripts by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenarioGroupNames.json - -- Occurrences in the b617d scripts: - -- - -- "ARMY_GUARD", - -- "ARMY_HELI", - -- "Cinema_Downtown", - -- "Cinema_Morningwood", - -- "Cinema_Textile", - -- "City_Banks", - -- "Countryside_Banks", - -- "DEALERSHIP", - -- "GRAPESEED_PLANES", - -- "KORTZ_SECURITY", - -- "LOST_BIKERS", - -- "LSA_Planes", - -- "LSA_Planes", - -- "MP_POLICE", - -- "Observatory_Bikers", - -- "POLICE_POUND1", - -- "POLICE_POUND2", - -- "POLICE_POUND3", - -- "POLICE_POUND4", - -- "POLICE_POUND5" - -- "QUARRY", - -- "SANDY_PLANES", - -- "SCRAP_SECURITY", - -- "SEW_MACHINE", - -- "SOLOMON_GATE", - -- "Triathlon_1_Start", - -- "Triathlon_2_Start", - -- "Triathlon_3_Start" - -- - -- Sometimes used with IS_SCENARIO_GROUP_ENABLED: - -- if (TASK::DOES_SCENARIO_GROUP_EXIST("Observatory_Bikers") && (!TASK::IS_SCENARIO_GROUP_ENABLED("Observatory_Bikers"))) { - -- else if (TASK::IS_SCENARIO_GROUP_ENABLED("BLIMP")) { - -- - DOES_SCENARIO_GROUP_EXIST=--[[BOOL (bool)]] function(--[[string]] scenarioGroup)return native_invoker.unified_bool(scenarioGroup, 0xF9034C136C9E00D3, "s")end - -- Full list of scenario groups used in scripts by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenarioGroupNames.json - -- Occurrences in the b617d scripts: - -- - -- "ARMY_GUARD", - -- "ARMY_HELI", - -- "BLIMP", - -- "Cinema_Downtown", - -- "Cinema_Morningwood", - -- "Cinema_Textile", - -- "City_Banks", - -- "Countryside_Banks", - -- "DEALERSHIP", - -- "KORTZ_SECURITY", - -- "LSA_Planes", - -- "MP_POLICE", - -- "Observatory_Bikers", - -- "POLICE_POUND1", - -- "POLICE_POUND2", - -- "POLICE_POUND3", - -- "POLICE_POUND4", - -- "POLICE_POUND5", - -- "Rampage1", - -- "SANDY_PLANES", - -- "SCRAP_SECURITY", - -- "SEW_MACHINE", - -- "SOLOMON_GATE" - -- - -- Sometimes used with DOES_SCENARIO_GROUP_EXIST: - -- if (TASK::DOES_SCENARIO_GROUP_EXIST("Observatory_Bikers") && (!TASK::IS_SCENARIO_GROUP_ENABLED("Observatory_Bikers"))) { - -- else if (TASK::IS_SCENARIO_GROUP_ENABLED("BLIMP")) { - IS_SCENARIO_GROUP_ENABLED=--[[BOOL (bool)]] function(--[[string]] scenarioGroup)return native_invoker.unified_bool(scenarioGroup, 0x367A09DED4E05B99, "s")end - -- Full list of scenario groups used in scripts by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenarioGroupNames.json - -- Occurrences in the b617d scripts: https://pastebin.com/Tvg2PRHU - SET_SCENARIO_GROUP_ENABLED=--[[void]] function(--[[string]] scenarioGroup,--[[BOOL (bool)]] enabled)return native_invoker.unified_void(scenarioGroup, enabled, 0x02C8E5B49848664E, "sb")end - RESET_SCENARIO_GROUPS_ENABLED=--[[void]] function()return native_invoker.unified_void(0xDD902D0349AFAD3A, "")end - -- Full list of scenario groups used in scripts by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenarioGroupNames.json - -- Groups found in the scripts used with this native: - -- - -- "AMMUNATION", - -- "QUARRY", - -- "Triathlon_1", - -- "Triathlon_2", - -- "Triathlon_3" - SET_EXCLUSIVE_SCENARIO_GROUP=--[[void]] function(--[[string]] scenarioGroup)return native_invoker.unified_void(scenarioGroup, 0x535E97E1F7FC0C6A, "s")end - RESET_EXCLUSIVE_SCENARIO_GROUP=--[[void]] function()return native_invoker.unified_void(0x4202BBCB8684563D, "")end - -- Full list of scenario types used in scripts by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenariosCompact.json - -- Occurrences in the b617d scripts: - -- "PROP_HUMAN_SEAT_CHAIR", - -- "WORLD_HUMAN_DRINKING", - -- "WORLD_HUMAN_HANG_OUT_STREET", - -- "WORLD_HUMAN_SMOKING", - -- "WORLD_MOUNTAIN_LION_WANDER", - -- "WORLD_HUMAN_DRINKING" - -- - -- Sometimes used together with MISC::IS_STRING_NULL_OR_EMPTY in the scripts. - -- - -- scenarioType could be the same as scenarioName, used in for example TASK::TASK_START_SCENARIO_AT_POSITION. - -- - IS_SCENARIO_TYPE_ENABLED=--[[BOOL (bool)]] function(--[[string]] scenarioType)return native_invoker.unified_bool(scenarioType, 0x3A815DB3EA088722, "s")end - -- Full list of scenario types used in scripts by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenariosCompact.json - -- seems to enable/disable specific scenario-types from happening in the game world. - -- - -- Here are some scenario types from the scripts: - -- "WORLD_MOUNTAIN_LION_REST" - -- "WORLD_MOUNTAIN_LION_WANDER" - -- "DRIVE" - -- "WORLD_VEHICLE_POLICE_BIKE" - -- "WORLD_VEHICLE_POLICE_CAR" - -- "WORLD_VEHICLE_POLICE_NEXT_TO_CAR" - -- "WORLD_VEHICLE_DRIVE_SOLO" - -- "WORLD_VEHICLE_BIKER" - -- "WORLD_VEHICLE_DRIVE_PASSENGERS" - -- "WORLD_VEHICLE_SALTON_DIRT_BIKE" - -- "WORLD_VEHICLE_BICYCLE_MOUNTAIN" - -- "PROP_HUMAN_SEAT_CHAIR" - -- "WORLD_VEHICLE_ATTRACTOR" - -- "WORLD_HUMAN_LEANING" - -- "WORLD_HUMAN_HANG_OUT_STREET" - -- "WORLD_HUMAN_DRINKING" - -- "WORLD_HUMAN_SMOKING" - -- "WORLD_HUMAN_GUARD_STAND" - -- "WORLD_HUMAN_CLIPBOARD" - -- "WORLD_HUMAN_HIKER" - -- "WORLD_VEHICLE_EMPTY" - -- "WORLD_VEHICLE_BIKE_OFF_ROAD_RACE" - -- "WORLD_HUMAN_PAPARAZZI" - -- "WORLD_VEHICLE_PARK_PERPENDICULAR_NOSE_IN" - -- "WORLD_VEHICLE_PARK_PARALLEL" - -- "WORLD_VEHICLE_CONSTRUCTION_SOLO" - -- "WORLD_VEHICLE_CONSTRUCTION_PASSENGERS" - -- "WORLD_VEHICLE_TRUCK_LOGS" - -- - -- scenarioType could be the same as scenarioName, used in for example TASK::TASK_START_SCENARIO_AT_POSITION. - SET_SCENARIO_TYPE_ENABLED=--[[void]] function(--[[string]] scenarioType,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(scenarioType, toggle, 0xEB47EC4E34FB7EE1, "sb")end - RESET_SCENARIO_TYPES_ENABLED=--[[void]] function()return native_invoker.unified_void(0x0D40EE2A7F2B2D6D, "")end - IS_PED_ACTIVE_IN_SCENARIO=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xAA135F9482C82CC3, "i")end - -- Used only once (am_mp_property_int) - -- - -- ped was PLAYER_PED_ID() - -- - -- Related to CTaskAmbientClips. - IS_PED_PLAYING_BASE_CLIP_IN_SCENARIO=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x621C6E4729388E41, "i")end - -- Appears only in fm_mission_controller and used only 3 times. - -- - -- ped was always PLAYER_PED_ID() - -- p1 was always true - -- p2 was always true - SET_PED_CAN_PLAY_AMBIENT_IDLES=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] blockIdleClips,--[[BOOL (bool)]] removeIdleClipIfPlaying)return native_invoker.unified_void(ped, blockIdleClips, removeIdleClipIfPlaying, 0x8FD89A6240813FD0, "ibb")end - -- Despite its name, it only attacks ONE hated target. The one closest to the specified position. - TASK_COMBAT_HATED_TARGETS_IN_AREA=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[int]] combatFlags)return native_invoker.unified_void(ped, x, y, z, radius, combatFlags, 0x4CF5F55DAC3280A0, "iffffi")end - -- Despite its name, it only attacks ONE hated target. The one closest hated target. - -- - -- p2 seems to be always 0 - TASK_COMBAT_HATED_TARGETS_AROUND_PED=--[[void]] function(--[[Ped (int)]] ped,--[[float]] radius,--[[int]] combatFlags)return native_invoker.unified_void(ped, radius, combatFlags, 0x7BF835BB9E2698C8, "ifi")end - TASK_COMBAT_HATED_TARGETS_AROUND_PED_TIMED=--[[void]] function(--[[Ped (int)]] ped,--[[float]] radius,--[[int]] time,--[[int]] combatFlags)return native_invoker.unified_void(ped, radius, time, combatFlags, 0x2BBA30B854534A0C, "ifii")end - -- In every case of this native, I've only seen the first parameter passed as 0, although I believe it's a Ped after seeing tasks around it using 0. That's because it's used in a Sequence Task. - -- - -- The last 3 parameters are definitely coordinates after seeing them passed in other scripts, and even being used straight from the player's coordinates. - -- --- - -- It seems that - in the decompiled scripts - this native was used on a ped who was in a vehicle to throw a projectile out the window at the player. This is something any ped will naturally do if they have a throwable and they are doing driveby-combat (although not very accurately). - -- It is possible, however, that this is how SWAT throws smoke grenades at the player when in cover. - -- ---------------------------------------------------- - -- The first comment is right it definately is the ped as if you look in script finale_heist2b.c line 59628 in Xbox Scripts atleast you will see task_throw_projectile and the first param is Local_559[2 <14>] if you look above it a little bit line 59622 give_weapon_to_ped uses the same exact param Local_559[2 <14>] and we all know the first param of that native is ped. So it guaranteed has to be ped. 0 just may mean to use your ped by default for some reason. - TASK_THROW_PROJECTILE=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] ignoreCollisionEntityIndex,--[[BOOL (bool)]] createInvincibleProjectile)return native_invoker.unified_void(ped, x, y, z, ignoreCollisionEntityIndex, createInvincibleProjectile, 0x7285951DBF6B5A51, "ifffib")end - TASK_SWAP_WEAPON=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] drawWeapon)return native_invoker.unified_void(ped, drawWeapon, 0xA21C51255B205245, "ib")end - -- The 2nd param (drawWeapon) is not implemented. - -- - -- ----------------------------------------------------------------------- - -- - -- The only occurrence I found in a R* script ("assassin_construction.ysc.c4"): - -- - -- if (((v_3 < v_4) && (TASK::GET_SCRIPT_TASK_STATUS(PLAYER::PLAYER_PED_ID(), 0x6a67a5cc) != 1)) && (v_5 > v_3)) { - -- TASK::TASK_RELOAD_WEAPON(PLAYER::PLAYER_PED_ID(), 1); - -- } - TASK_RELOAD_WEAPON=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] drawWeapon)return native_invoker.unified_void(ped, drawWeapon, 0x62D2916F56B9CD2D, "ib")end - IS_PED_GETTING_UP=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x2A74E1D5F2F00EEC, "i")end - -- EX: Function.Call(Ped1, Ped2, Time, 0); - -- - -- The last parameter is always 0 for some reason I do not know. The first parameter is the pedestrian who will writhe to the pedestrian in the other parameter. The third paremeter is how long until the Writhe task ends. When the task ends, the ped will die. If set to -1, he will not die automatically, and the task will continue until something causes it to end. This can be being touched by an entity, being shot, explosion, going into ragdoll, having task cleared. Anything that ends the current task will kill the ped at this point. - -- - -- - -- - -- Third parameter does not appear to be time. The last parameter is not implemented (It's not used, regardless of value). - TASK_WRITHE=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] target,--[[int]] minFireLoops,--[[int]] startState,--[[BOOL (bool)]] forceShootOnGround,--[[int]] shootFromGroundTimer)return native_invoker.unified_void(ped, target, minFireLoops, startState, forceShootOnGround, shootFromGroundTimer, 0xCDDC2B77CE54AC6E, "iiiibi")end - -- This native checks if a ped is on the ground, in pain from a (gunshot) wound. - -- Returns `true` if the ped is in writhe, `false` otherwise. - IS_PED_IN_WRITHE=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xDEB6D52126E7D640, "i")end - -- patrolRoutes found in the b617d scripts: - -- "miss_Ass0", - -- "miss_Ass1", - -- "miss_Ass2", - -- "miss_Ass3", - -- "miss_Ass4", - -- "miss_Ass5", - -- "miss_Ass6", - -- "MISS_PATROL_6", - -- "MISS_PATROL_7", - -- "MISS_PATROL_8", - -- "MISS_PATROL_9", - -- "miss_Tower_01", - -- "miss_Tower_02", - -- "miss_Tower_03", - -- "miss_Tower_04", - -- "miss_Tower_05", - -- "miss_Tower_06", - -- "miss_Tower_07", - -- "miss_Tower_08", - -- "miss_Tower_10" - OPEN_PATROL_ROUTE=--[[void]] function(--[[string]] patrolRoute)return native_invoker.unified_void(patrolRoute, 0xA36BFB5EE89F3D82, "s")end - CLOSE_PATROL_ROUTE=--[[void]] function()return native_invoker.unified_void(0xB043ECA801B8CBC1, "")end - -- Example: - -- TASK::ADD_PATROL_ROUTE_NODE(2, "WORLD_HUMAN_GUARD_STAND", -193.4915, -2378.864990234375, 10.9719, -193.4915, -2378.864990234375, 10.9719, 3000); - -- - -- p0 is between 0 and 4 in the scripts. - -- - -- p1 is "WORLD_HUMAN_GUARD_STAND" or "StandGuard". - -- - -- p2, p3 and p4 is only one parameter sometimes in the scripts. Most likely a Vector3 hence p2, p3 and p4 are coordinates. - -- Examples: - -- TASK::ADD_PATROL_ROUTE_NODE(1, "WORLD_HUMAN_GUARD_STAND", l_739[7/*3*/], 0.0, 0.0, 0.0, 0); - -- - -- TASK::ADD_PATROL_ROUTE_NODE(1, "WORLD_HUMAN_GUARD_STAND", l_B0[17/*44*/]._f3, l_B0[17/*44*/]._f3, 2000); - -- - -- p5, p6 and p7 are for example set to: 1599.0406494140625, 2713.392578125, 44.4309. - -- - -- p8 is an int, often random set to for example: MISC::GET_RANDOM_INT_IN_RANGE(5000, 10000). - ADD_PATROL_ROUTE_NODE=--[[void]] function(--[[int]] nodeId,--[[string]] nodeType,--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[float]] headingX,--[[float]] headingY,--[[float]] headingZ,--[[int]] duration)return native_invoker.unified_void(nodeId, nodeType, posX, posY, posZ, headingX, headingY, headingZ, duration, 0x8EDF950167586B7C, "isffffffi")end - ADD_PATROL_ROUTE_LINK=--[[void]] function(--[[int]] nodeId1,--[[int]] nodeId2)return native_invoker.unified_void(nodeId1, nodeId2, 0x23083260DEC3A551, "ii")end - CREATE_PATROL_ROUTE=--[[void]] function()return native_invoker.unified_void(0xAF8A443CCC8018DC, "")end - -- From the b617d scripts: - -- - -- TASK::DELETE_PATROL_ROUTE("miss_merc0"); - -- TASK::DELETE_PATROL_ROUTE("miss_merc1"); - -- TASK::DELETE_PATROL_ROUTE("miss_merc2"); - -- TASK::DELETE_PATROL_ROUTE("miss_dock"); - DELETE_PATROL_ROUTE=--[[void]] function(--[[string]] patrolRoute)return native_invoker.unified_void(patrolRoute, 0x7767DD9D65E91319, "s")end - GET_PATROL_TASK_INFO=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[int* (pointer)]] timeLeftAtNode,--[[int* (pointer)]] nodeId)return native_invoker.unified_bool(ped, timeLeftAtNode, nodeId, 0x52F734CEBE20DFBA, "ipp")end - -- After looking at some scripts the second parameter seems to be an id of some kind. Here are some I found from some R* scripts: - -- - -- "miss_Tower_01" (this went from 01 - 10) - -- "miss_Ass0" (0, 4, 6, 3) - -- "MISS_PATROL_8" - -- - -- I think they're patrol routes, but I'm not sure. And I believe the 3rd parameter is a BOOL, but I can't confirm other than only seeing 0 and 1 being passed. - -- - -- - -- As far as I can see the patrol routes names such as "miss_Ass0" have been defined earlier in the scripts. This leads me to believe we can defined our own new patrol routes by following the same approach. - -- From the scripts - -- - -- TASK::OPEN_PATROL_ROUTE("miss_Ass0"); - -- TASK::ADD_PATROL_ROUTE_NODE(0, "WORLD_HUMAN_GUARD_STAND", l_738[0/*3*/], -139.4076690673828, -993.4732055664062, 26.2754, MISC::GET_RANDOM_INT_IN_RANGE(5000, 10000)); - -- TASK::ADD_PATROL_ROUTE_NODE(1, "WORLD_HUMAN_GUARD_STAND", l_738[1/*3*/], -116.1391830444336, -987.4984130859375, 26.38541030883789, MISC::GET_RANDOM_INT_IN_RANGE(5000, 10000)); - -- TASK::ADD_PATROL_ROUTE_NODE(2, "WORLD_HUMAN_GUARD_STAND", l_738[2/*3*/], -128.46847534179688, -979.0340576171875, 26.2754, MISC::GET_RANDOM_INT_IN_RANGE(5000, 10000)); - -- TASK::ADD_PATROL_ROUTE_LINK(0, 1); - -- TASK::ADD_PATROL_ROUTE_LINK(1, 2); - -- TASK::ADD_PATROL_ROUTE_LINK(2, 0); - -- TASK::CLOSE_PATROL_ROUTE(); - -- TASK::CREATE_PATROL_ROUTE(); - -- - -- - TASK_PATROL=--[[void]] function(--[[Ped (int)]] ped,--[[string]] patrolRouteName,--[[int]] alertState,--[[BOOL (bool)]] canChatToPeds,--[[BOOL (bool)]] useHeadLookAt)return native_invoker.unified_void(ped, patrolRouteName, alertState, canChatToPeds, useHeadLookAt, 0xBDA5DF49D080FE4E, "isibb")end - -- Makes the ped run to take cover - TASK_STAY_IN_COVER=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xE5DA8615A6180789, "i")end - -- x, y, z: offset in world coords from some entity. - ADD_VEHICLE_SUBTASK_ATTACK_COORD=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(ped, x, y, z, 0x5CF0D8F9BBA0DD75, "ifff")end - ADD_VEHICLE_SUBTASK_ATTACK_PED=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] target)return native_invoker.unified_void(ped, target, 0x85F462BADC7DA47F, "ii")end - TASK_VEHICLE_SHOOT_AT_PED=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] target,--[[float]] fireTolerance)return native_invoker.unified_void(ped, target, fireTolerance, 0x10AB107B887214D8, "iif")end - TASK_VEHICLE_AIM_AT_PED=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] target)return native_invoker.unified_void(ped, target, 0xE41885592B08B097, "ii")end - TASK_VEHICLE_SHOOT_AT_COORD=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] fireTolerance)return native_invoker.unified_void(ped, x, y, z, fireTolerance, 0x5190796ED39C9B6D, "iffff")end - TASK_VEHICLE_AIM_AT_COORD=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(ped, x, y, z, 0x447C1E9EF844BC0F, "ifff")end - -- Differs from TASK_VEHICLE_DRIVE_TO_COORDS in that it will pick the shortest possible road route without taking one-way streets and other "road laws" into consideration. - -- - -- WARNING: - -- A behaviorFlag value of 0 will result in a clunky, stupid driver! - -- - -- Recommended settings: - -- speed = 30.0f, - -- behaviorFlag = 156, - -- stoppingRange = 5.0f; - -- - -- If you simply want to have your driver move to a fixed location, call it only once, or, when necessary in the event of interruption. - -- - -- If using this to continually follow a Ped who is on foot: You will need to run this in a tick loop. Call it in with the Ped's updated coordinates every 20 ticks or so and you will have one hell of a smart, fast-reacting NPC driver -- provided he doesn't get stuck. If your update frequency is too fast, the Ped may not have enough time to figure his way out of being stuck, and thus, remain stuck. One way around this would be to implement an "anti-stuck" mechanism, which allows the driver to realize he's stuck, temporarily pause the tick, unstuck, then resume the tick. - -- - -- EDIT: This is being discussed in more detail at http://gtaforums.com/topic/818504-any-idea-on-how-to-make-peds-clever-and-insanely-fast-c/ - TASK_VEHICLE_GOTO_NAVMESH=--[[void]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] vehicle,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] speed,--[[int]] behaviorFlag,--[[float]] stoppingRange)return native_invoker.unified_void(ped, vehicle, x, y, z, speed, behaviorFlag, stoppingRange, 0x195AEEB13CEFE2EE, "iiffffif")end - -- movement_speed: mostly 2f, but also 1/1.2f, etc. - -- p8: always false - -- p9: 2f - -- p10: 0.5f - -- p11: true - -- p12: 0 / 512 / 513, etc. - -- p13: 0 - -- firing_pattern: ${firing_pattern_full_auto}, 0xC6EE6B4C - TASK_GO_TO_COORD_WHILE_AIMING_AT_COORD=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] aimAtX,--[[float]] aimAtY,--[[float]] aimAtZ,--[[float]] moveBlendRatio,--[[BOOL (bool)]] shoot,--[[float]] targetRadius,--[[float]] slowDistance,--[[BOOL (bool)]] useNavMesh,--[[int]] navFlags,--[[BOOL (bool)]] instantBlendToAim,--[[Hash (int)]] firingPattern)return native_invoker.unified_void(ped, x, y, z, aimAtX, aimAtY, aimAtZ, moveBlendRatio, shoot, targetRadius, slowDistance, useNavMesh, navFlags, instantBlendToAim, firingPattern, 0x11315AB3385B8AC0, "ifffffffbffbibi")end - TASK_GO_TO_COORD_WHILE_AIMING_AT_ENTITY=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[Entity (int)]] aimAtID,--[[float]] moveBlendRatio,--[[BOOL (bool)]] shoot,--[[float]] targetRadius,--[[float]] slowDistance,--[[BOOL (bool)]] useNavMesh,--[[int]] navFlags,--[[BOOL (bool)]] instantBlendToAim,--[[Hash (int)]] firingPattern,--[[int]] time)return native_invoker.unified_void(ped, x, y, z, aimAtID, moveBlendRatio, shoot, targetRadius, slowDistance, useNavMesh, navFlags, instantBlendToAim, firingPattern, time, 0xB2A16444EAD9AE47, "ifffifbffbibii")end - -- The ped will walk or run towards goToLocation, aiming towards goToLocation or focusLocation (depending on the aimingFlag) and shooting if shootAtEnemies = true to any enemy in his path. - -- - -- If the ped is closer than noRoadsDistance, the ped will ignore pathing/navmesh and go towards goToLocation directly. This could cause the ped to get stuck behind tall walls if the goToLocation is on the other side. To avoid this, use 0.0f and the ped will always use pathing/navmesh to reach his destination. - -- - -- If the speed is set to 0.0f, the ped will just stand there while aiming, if set to 1.0f he will walk while aiming, 2.0f will run while aiming. - -- - -- The ped will stop aiming when he is closer than distanceToStopAt to goToLocation. - -- - -- I still can't figure out what unkTrue is used for. I don't notice any difference if I set it to false but in the decompiled scripts is always true. - -- - -- I think that unkFlag, like the driving styles, could be a flag that "work as a list of 32 bits converted to a decimal integer. Each bit acts as a flag, and enables or disables a function". What leads me to this conclusion is the fact that in the decompiled scripts, unkFlag takes values like: 0, 1, 5 (101 in binary) and 4097 (4096 + 1 or 1000000000001 in binary). For now, I don't know what behavior enable or disable this possible flag so I leave it at 0. - -- - -- Note: After some testing, using unkFlag = 16 (0x10) enables the use of sidewalks while moving towards goToLocation. - -- - -- The aimingFlag takes 2 values: 0 to aim at the focusLocation, 1 to aim at where the ped is heading (goToLocation). - -- - -- Example: - -- - -- enum AimFlag - -- { - -- AimAtFocusLocation, - -- AimAtGoToLocation - -- }; - -- - -- Vector3 goToLocation1 = { 996.2867f, 0, -2143.044f, 0, 28.4763f, 0 }; // remember the padding. - -- - -- Vector3 goToLocation2 = { 990.2867f, 0, -2140.044f, 0, 28.4763f, 0 }; // remember the padding. - -- - -- Vector3 focusLocation = { 994.3478f, 0, -2136.118f, 0, 29.2463f, 0 }; // the coord z should be a little higher, around +1.0f to avoid aiming at the ground - -- - -- // 1st example - -- TASK::TASK_GO_TO_COORD_AND_AIM_AT_HATED_ENTITIES_NEAR_COORD(pedHandle, goToLocation1.x, goToLocation1.y, goToLocation1.z, focusLocation.x, focusLocation.y, focusLocation.z, 2.0f /*run*/, true /*shoot*/, 3.0f /*stop at*/, 0.0f /*noRoadsDistance*/, true /*always true*/, 0 /*possible flag*/, AimFlag::AimAtGoToLocation, -957453492 /*FullAuto pattern*/); - -- - -- // 2nd example - -- TASK::TASK_GO_TO_COORD_AND_AIM_AT_HATED_ENTITIES_NEAR_COORD(pedHandle, goToLocation2.x, goToLocation2.y, goToLocation2.z, focusLocation.x, focusLocation.y, focusLocation.z, 1.0f /*walk*/, false /*don't shoot*/, 3.0f /*stop at*/, 0.0f /*noRoadsDistance*/, true /*always true*/, 0 /*possible flag*/, AimFlag::AimAtFocusLocation, -957453492 /*FullAuto pattern*/); - -- - -- - -- 1st example: The ped (pedhandle) will run towards goToLocation1. While running and aiming towards goToLocation1, the ped will shoot on sight to any enemy in his path, using "FullAuto" firing pattern. The ped will stop once he is closer than distanceToStopAt to goToLocation1. - -- - -- 2nd example: The ped will walk towards goToLocation2. This time, while walking towards goToLocation2 and aiming at focusLocation, the ped will point his weapon on sight to any enemy in his path without shooting. The ped will stop once he is closer than distanceToStopAt to goToLocation2. - TASK_GO_TO_COORD_AND_AIM_AT_HATED_ENTITIES_NEAR_COORD=--[[void]] function(--[[Ped (int)]] pedHandle,--[[float]] goToLocationX,--[[float]] goToLocationY,--[[float]] goToLocationZ,--[[float]] focusLocationX,--[[float]] focusLocationY,--[[float]] focusLocationZ,--[[float]] speed,--[[BOOL (bool)]] shootAtEnemies,--[[float]] distanceToStopAt,--[[float]] noRoadsDistance,--[[BOOL (bool)]] useNavMesh,--[[int]] navFlags,--[[int]] taskFlags,--[[Hash (int)]] firingPattern)return native_invoker.unified_void(pedHandle, goToLocationX, goToLocationY, goToLocationZ, focusLocationX, focusLocationY, focusLocationZ, speed, shootAtEnemies, distanceToStopAt, noRoadsDistance, useNavMesh, navFlags, taskFlags, firingPattern, 0xA55547801EB331FC, "ifffffffbffbiii")end - TASK_GO_TO_ENTITY_WHILE_AIMING_AT_COORD=--[[void]] function(--[[Ped (int)]] ped,--[[Entity (int)]] entity,--[[float]] aimX,--[[float]] aimY,--[[float]] aimZ,--[[float]] moveBlendRatio,--[[BOOL (bool)]] shoot,--[[float]] targetRadius,--[[float]] slowDistance,--[[BOOL (bool)]] useNavMesh,--[[BOOL (bool)]] instantBlendToAim,--[[Hash (int)]] firingPattern)return native_invoker.unified_void(ped, entity, aimX, aimY, aimZ, moveBlendRatio, shoot, targetRadius, slowDistance, useNavMesh, instantBlendToAim, firingPattern, 0x04701832B739DCE5, "iiffffbffbbi")end - -- shootatEntity: - -- If true, peds will shoot at Entity till it is dead. - -- If false, peds will just walk till they reach the entity and will cease shooting. - TASK_GO_TO_ENTITY_WHILE_AIMING_AT_ENTITY=--[[void]] function(--[[Ped (int)]] ped,--[[Entity (int)]] entityToWalkTo,--[[Entity (int)]] entityToAimAt,--[[float]] speed,--[[BOOL (bool)]] shootatEntity,--[[float]] targetRadius,--[[float]] slowDistance,--[[BOOL (bool)]] useNavMesh,--[[BOOL (bool)]] instantBlendToAim,--[[Hash (int)]] firingPattern)return native_invoker.unified_void(ped, entityToWalkTo, entityToAimAt, speed, shootatEntity, targetRadius, slowDistance, useNavMesh, instantBlendToAim, firingPattern, 0x97465886D35210E9, "iiifbffbbi")end - -- Makes the ped ragdoll like when falling from a great height - SET_HIGH_FALL_TASK=--[[void]] function(--[[Ped (int)]] ped,--[[int]] minTime,--[[int]] maxTime,--[[int]] entryType)return native_invoker.unified_void(ped, minTime, maxTime, entryType, 0x8C825BDC7741D37C, "iiii")end - -- Full list of waypoint recordings by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/waypointRecordings.json - -- For a full list of the points, see here: goo.gl/wIH0vn - -- - -- Max number of loaded recordings is 32. - REQUEST_WAYPOINT_RECORDING=--[[void]] function(--[[string]] name)return native_invoker.unified_void(name, 0x9EEFB62EB27B5792, "s")end - -- Full list of waypoint recordings by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/waypointRecordings.json - GET_IS_WAYPOINT_RECORDING_LOADED=--[[BOOL (bool)]] function(--[[string]] name)return native_invoker.unified_bool(name, 0xCB4E8BE8A0063C5D, "s")end - -- Full list of waypoint recordings by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/waypointRecordings.json - REMOVE_WAYPOINT_RECORDING=--[[void]] function(--[[string]] name)return native_invoker.unified_void(name, 0xFF1B8B4AA1C25DC8, "s")end - -- Full list of waypoint recordings by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/waypointRecordings.json - -- For a full list of the points, see here: goo.gl/wIH0vn - WAYPOINT_RECORDING_GET_NUM_POINTS=--[[BOOL (bool)]] function(--[[string]] name,--[[int* (pointer)]] points)return native_invoker.unified_bool(name, points, 0x5343532C01A07234, "sp")end - -- Full list of waypoint recordings by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/waypointRecordings.json - -- For a full list of the points, see here: goo.gl/wIH0vn - WAYPOINT_RECORDING_GET_COORD=--[[BOOL (bool)]] function(--[[string]] name,--[[int]] point,--[[Vector3* (pointer)]] coord)return native_invoker.unified_bool(name, point, coord, 0x2FB897405C90B361, "sip")end - -- Full list of waypoint recordings by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/waypointRecordings.json - WAYPOINT_RECORDING_GET_SPEED_AT_POINT=--[[float]] function(--[[string]] name,--[[int]] point)return native_invoker.unified_float(name, point, 0x005622AEBC33ACA9, "si")end - -- Full list of waypoint recordings by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/waypointRecordings.json - -- For a full list of the points, see here: goo.gl/wIH0vn - WAYPOINT_RECORDING_GET_CLOSEST_WAYPOINT=--[[BOOL (bool)]] function(--[[string]] name,--[[float]] x,--[[float]] y,--[[float]] z,--[[int* (pointer)]] point)return native_invoker.unified_bool(name, x, y, z, point, 0xB629A298081F876F, "sfffp")end - TASK_FOLLOW_WAYPOINT_RECORDING=--[[void]] function(--[[Ped (int)]] ped,--[[string]] name,--[[int]] p2,--[[int]] p3,--[[int]] p4)return native_invoker.unified_void(ped, name, p2, p3, p4, 0x0759591819534F7B, "isiii")end - IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_PED=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xE03B3F2D3DC59B64, "i")end - GET_PED_WAYPOINT_PROGRESS=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x2720AAA75001E094, "i")end - GET_PED_WAYPOINT_DISTANCE=--[[float]] function(--[[Any (int)]] p0)return native_invoker.unified_float(p0, 0xE6A877C64CAF1BC5, "i")end - SET_PED_WAYPOINT_ROUTE_OFFSET=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_bool(ped, x, y, z, 0xED98E10B0AFCE4B4, "ifff")end - GET_WAYPOINT_DISTANCE_ALONG_ROUTE=--[[float]] function(--[[string]] name,--[[int]] point)return native_invoker.unified_float(name, point, 0xA5B769058763E497, "si")end - WAYPOINT_PLAYBACK_GET_IS_PAUSED=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x701375A7D43F01CB, "i")end - WAYPOINT_PLAYBACK_PAUSE=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x0F342546AA06FED5, "ibb")end - WAYPOINT_PLAYBACK_RESUME=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x244F70C84C547D2D, "ibii")end - WAYPOINT_PLAYBACK_OVERRIDE_SPEED=--[[void]] function(--[[Any (int)]] p0,--[[float]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x7D7D2B47FA788E85, "ifb")end - WAYPOINT_PLAYBACK_USE_DEFAULT_SPEED=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x6599D834B12D0800, "i")end - USE_WAYPOINT_RECORDING_AS_ASSISTED_MOVEMENT_ROUTE=--[[void]] function(--[[string]] name,--[[BOOL (bool)]] p1,--[[float]] p2,--[[float]] p3)return native_invoker.unified_void(name, p1, p2, p3, 0x5A353B8E6B1095B5, "sbff")end - WAYPOINT_PLAYBACK_START_AIMING_AT_PED=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] target,--[[BOOL (bool)]] p2)return native_invoker.unified_void(ped, target, p2, 0x20E330937C399D29, "iib")end - WAYPOINT_PLAYBACK_START_AIMING_AT_COORD=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] p4)return native_invoker.unified_void(ped, x, y, z, p4, 0x8968400D900ED8B3, "ifffb")end - WAYPOINT_PLAYBACK_START_SHOOTING_AT_PED=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] ped2,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(ped, ped2, p2, p3, 0xE70BA7B90F8390DC, "iibb")end - WAYPOINT_PLAYBACK_START_SHOOTING_AT_COORD=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] p4,--[[Hash (int)]] firingPattern)return native_invoker.unified_void(ped, x, y, z, p4, firingPattern, 0x057A25CFCC9DB671, "ifffbi")end - WAYPOINT_PLAYBACK_STOP_AIMING_OR_SHOOTING=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x47EFA040EBB8E2EA, "i")end - -- Routes: "1_FIBStairs", "2_FIBStairs", "3_FIBStairs", "4_FIBStairs", "5_FIBStairs", "5_TowardsFire", "6a_FIBStairs", "7_FIBStairs", "8_FIBStairs", "Aprtmnt_1", "AssAfterLift", "ATM_1", "coroner2", "coroner_stairs", "f5_jimmy1", "fame1", "family5b", "family5c", "Family5d", "family5d", "FIB_Glass1", "FIB_Glass2", "FIB_Glass3", "finaBroute1A", "finalb1st", "finalB1sta", "finalbround", "finalbroute2", "Hairdresser1", "jan_foyet_ft_door", "Jo_3", "Lemar1", "Lemar2", "mansion_1", "Mansion_1", "pols_1", "pols_2", "pols_3", "pols_4", "pols_5", "pols_6", "pols_7", "pols_8", "Pro_S1", "Pro_S1a", "Pro_S2", "Towards_case", "trev_steps", "tunrs1", "tunrs2", "tunrs3", "Wave01457s" - ASSISTED_MOVEMENT_REQUEST_ROUTE=--[[void]] function(--[[string]] route)return native_invoker.unified_void(route, 0x817268968605947A, "s")end - ASSISTED_MOVEMENT_REMOVE_ROUTE=--[[void]] function(--[[string]] route)return native_invoker.unified_void(route, 0x3548536485DD792B, "s")end - ASSISTED_MOVEMENT_IS_ROUTE_LOADED=--[[BOOL (bool)]] function(--[[string]] route)return native_invoker.unified_bool(route, 0x60F9A4393A21F741, "s")end - ASSISTED_MOVEMENT_SET_ROUTE_PROPERTIES=--[[void]] function(--[[string]] route,--[[int]] props)return native_invoker.unified_void(route, props, 0xD5002D78B7162E1B, "si")end - ASSISTED_MOVEMENT_OVERRIDE_LOAD_DISTANCE_THIS_FRAME=--[[void]] function(--[[float]] dist)return native_invoker.unified_void(dist, 0x13945951E16EF912, "f")end - -- - -- - -- p2 = Waypoint recording string (found in update\update.rpf\x64\levels\gta5\waypointrec.rpf - -- p3 = 786468 - -- p4 = 0 - -- p5 = 16 - -- p6 = -1 (angle?) - -- p7/8/9 = usually v3.zero - -- p10 = bool (repeat?) - -- p11 = 1073741824 - -- - -- Full list of waypoint recordings by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/waypointRecordings.json - TASK_VEHICLE_FOLLOW_WAYPOINT_RECORDING=--[[void]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] vehicle,--[[string]] WPRecording,--[[int]] p3,--[[int]] p4,--[[int]] p5,--[[int]] p6,--[[float]] p7,--[[BOOL (bool)]] p8,--[[float]] p9)return native_invoker.unified_void(ped, vehicle, WPRecording, p3, p4, p5, p6, p7, p8, p9, 0x3123FAA6DB1CF7ED, "iisiiiifbf")end - IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_VEHICLE=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xF5134943EA29868C, "i")end - GET_VEHICLE_WAYPOINT_PROGRESS=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x9824CFF8FC66E159, "i")end - GET_VEHICLE_WAYPOINT_TARGET_POINT=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x416B62AC8B9E5BBD, "i")end - VEHICLE_WAYPOINT_PLAYBACK_PAUSE=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x8A4E6AC373666BC5, "i")end - VEHICLE_WAYPOINT_PLAYBACK_RESUME=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0xDC04FCAA7839D492, "i")end - VEHICLE_WAYPOINT_PLAYBACK_USE_DEFAULT_SPEED=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x5CEB25A7D2848963, "i")end - VEHICLE_WAYPOINT_PLAYBACK_OVERRIDE_SPEED=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] speed)return native_invoker.unified_void(vehicle, speed, 0x121F0593E0A431D7, "if")end - -- I cant believe I have to define this, this is one of the best natives. - -- - -- It makes the ped ignore basically all shocking events around it. Occasionally the ped may comment or gesture, but other than that they just continue their daily activities. This includes shooting and wounding the ped. And - most importantly - they do not flee. - -- - -- Since it is a task, every time the native is called the ped will stop for a moment. - TASK_SET_BLOCKING_OF_NON_TEMPORARY_EVENTS=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x90D2156198831D69, "ib")end - -- p2 always false - -- - -- [30/03/2017] ins1de : - -- - -- See FORCE_PED_MOTION_STATE - TASK_FORCE_MOTION_STATE=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] state,--[[BOOL (bool)]] forceRestart)return native_invoker.unified_void(ped, state, forceRestart, 0x4F056E1AFFEF17AB, "iib")end - -- Example: - -- TASK::TASK_MOVE_NETWORK_BY_NAME(PLAYER::PLAYER_PED_ID(), "arm_wrestling_sweep_paired_a_rev3", 0.0f, true, "mini@arm_wrestling", 0); - TASK_MOVE_NETWORK_BY_NAME=--[[void]] function(--[[Ped (int)]] ped,--[[string]] task,--[[float]] multiplier,--[[BOOL (bool)]] allowOverrideCloneUpdate,--[[string]] animDict,--[[int]] flags)return native_invoker.unified_void(ped, task, multiplier, allowOverrideCloneUpdate, animDict, flags, 0x2D537BA194896636, "isfbsi")end - -- Example: - -- TASK::TASK_MOVE_NETWORK_ADVANCED_BY_NAME(PLAYER::PLAYER_PED_ID(), "minigame_tattoo_michael_parts", 324.13f, 181.29f, 102.6f, 0.0f, 0.0f, 22.32f, 2, 0, false, 0, 0); - TASK_MOVE_NETWORK_ADVANCED_BY_NAME=--[[void]] function(--[[Ped (int)]] ped,--[[string]] network,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ,--[[int]] rotOrder,--[[float]] blendDuration,--[[BOOL (bool)]] allowOverrideCloneUpdate,--[[string]] animDict,--[[int]] flags)return native_invoker.unified_void(ped, network, x, y, z, rotX, rotY, rotZ, rotOrder, blendDuration, allowOverrideCloneUpdate, animDict, flags, 0xD5B35BEA41919ACB, "isffffffifbsi")end - -- Used only once in the scripts (am_mp_nightclub) - TASK_MOVE_NETWORK_BY_NAME_WITH_INIT_PARAMS=--[[void]] function(--[[Ped (int)]] ped,--[[string]] network,--[[int* (pointer)]] initialParameters,--[[float]] blendDuration,--[[BOOL (bool)]] allowOverrideCloneUpdate,--[[string]] animDict,--[[int]] flags)return native_invoker.unified_void(ped, network, initialParameters, blendDuration, allowOverrideCloneUpdate, animDict, flags, 0x3D45B0B355C5E0C9, "ispfbsi")end - TASK_MOVE_NETWORK_ADVANCED_BY_NAME_WITH_INIT_PARAMS=--[[void]] function(--[[Ped (int)]] ped,--[[string]] network,--[[int* (pointer)]] initialParameters,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ,--[[int]] rotOrder,--[[float]] blendDuration,--[[BOOL (bool)]] allowOverrideCloneUpdate,--[[string]] dictionary,--[[int]] flags)return native_invoker.unified_void(ped, network, initialParameters, x, y, z, rotX, rotY, rotZ, rotOrder, blendDuration, allowOverrideCloneUpdate, dictionary, flags, 0x29682E2CCF21E9B5, "ispffffffifbsi")end - IS_TASK_MOVE_NETWORK_ACTIVE=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x921CE12C489C4C41, "i")end - IS_TASK_MOVE_NETWORK_READY_FOR_TRANSITION=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x30ED88D5E0C56A37, "i")end - REQUEST_TASK_MOVE_NETWORK_STATE_TRANSITION=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[string]] name)return native_invoker.unified_bool(ped, name, 0xD01015C7316AE176, "is")end - -- Used only once in the scripts (fm_mission_controller) like so: - -- - -- TASK::SET_EXPECTED_CLONE_NEXT_TASK_MOVE_NETWORK_STATE(iLocal_3160, "Cutting"); - SET_EXPECTED_CLONE_NEXT_TASK_MOVE_NETWORK_STATE=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[string]] state)return native_invoker.unified_bool(ped, state, 0xAB13A5565480B6D9, "is")end - GET_TASK_MOVE_NETWORK_STATE=--[[string]] function(--[[Ped (int)]] ped)return native_invoker.unified_string(ped, 0x717E4D1F2048376D, "i")end - SET_TASK_MOVE_NETWORK_ANIM_SET=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] clipSet,--[[Hash (int)]] variableClipSet)return native_invoker.unified_void(ped, clipSet, variableClipSet, 0x8423541E8B3A1589, "iii")end - -- signalName - "Phase", "Wobble", "x_axis","y_axis","introphase","speed". - -- p2 - From what i can see it goes up to 1f (maybe). - -- - -- Example: TASK::SET_TASK_MOVE_NETWORK_SIGNAL_FLOAT(PLAYER::PLAYER_PED_ID(), "Phase", 0.5); - SET_TASK_MOVE_NETWORK_SIGNAL_FLOAT=--[[void]] function(--[[Ped (int)]] ped,--[[string]] signalName,--[[float]] value)return native_invoker.unified_void(ped, signalName, value, 0xD5BB4025AE449A4E, "isf")end - SET_TASK_MOVE_NETWORK_SIGNAL_LOCAL_FLOAT=--[[void]] function(--[[Ped (int)]] ped,--[[string]] signalName,--[[float]] value)return native_invoker.unified_void(ped, signalName, value, 0x373EF409B82697A3, "isf")end - SET_TASK_MOVE_NETWORK_SIGNAL_FLOAT_LERP_RATE=--[[void]] function(--[[Ped (int)]] ped,--[[string]] signalName,--[[float]] value)return native_invoker.unified_void(ped, signalName, value, 0x8634CEF2522D987B, "isf")end - SET_TASK_MOVE_NETWORK_SIGNAL_BOOL=--[[void]] function(--[[Ped (int)]] ped,--[[string]] signalName,--[[BOOL (bool)]] value)return native_invoker.unified_void(ped, signalName, value, 0xB0A6CFD2C69C1088, "isb")end - GET_TASK_MOVE_NETWORK_SIGNAL_FLOAT=--[[float]] function(--[[Ped (int)]] ped,--[[string]] signalName)return native_invoker.unified_float(ped, signalName, 0x44AB0B3AFECCE242, "is")end - GET_TASK_MOVE_NETWORK_SIGNAL_BOOL=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[string]] signalName)return native_invoker.unified_bool(ped, signalName, 0xA7FFBA498E4AAF67, "is")end - GET_TASK_MOVE_NETWORK_EVENT=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[string]] eventName)return native_invoker.unified_bool(ped, eventName, 0xB4F47213DF45A64C, "is")end - -- Doesn't actually return anything. - SET_TASK_MOVE_NETWORK_ENABLE_COLLISION_ON_NETWORK_CLONE_WHEN_FIXED=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] enable)return native_invoker.unified_bool(ped, enable, 0x0FFB3C758E8C07B9, "ib")end - _SET_SCRIPT_TASK_ENABLE_COLLISION_ON_NETWORK_CLONE_WHEN_FIXED=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] enable)return native_invoker.unified_void(ped, enable, 0x32F6EEF031F943DC, "ib")end - IS_MOVE_BLEND_RATIO_STILL=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x349CE7B56DAFD95C, "i")end - IS_MOVE_BLEND_RATIO_WALKING=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xF133BBBE91E1691F, "i")end - IS_MOVE_BLEND_RATIO_RUNNING=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xD4D8636C0199A939, "i")end - IS_MOVE_BLEND_RATIO_SPRINTING=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x24A2AD74FA9814E2, "i")end - IS_PED_STILL=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xAC29253EEF8F0180, "i")end - IS_PED_WALKING=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xDE4C184B2B9B071A, "i")end - IS_PED_RUNNING=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xC5286FFC176F28A2, "i")end - IS_PED_SPRINTING=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x57E457CD2C0FC168, "i")end - -- What's strafing? - IS_PED_STRAFING=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xE45B7F222DE47E09, "i")end - -- TASK::TASK_SYNCHRONIZED_SCENE(ped, scene, "creatures@rottweiler@in_vehicle@std_car", "get_in", 1000.0, -8.0, 4, 0, 0x447a0000, 0); - -- - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - TASK_SYNCHRONIZED_SCENE=--[[void]] function(--[[Ped (int)]] ped,--[[int]] scene,--[[string]] animDictionary,--[[string]] animationName,--[[float]] blendIn,--[[float]] blendOut,--[[int]] flags,--[[int]] ragdollBlockingFlags,--[[float]] moverBlendDelta,--[[int]] ikFlags)return native_invoker.unified_void(ped, scene, animDictionary, animationName, blendIn, blendOut, flags, ragdollBlockingFlags, moverBlendDelta, ikFlags, 0xEEA929141F699854, "iissffiifi")end - TASK_AGITATED_ACTION_CONFRONT_RESPONSE=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] ped2)return native_invoker.unified_void(ped, ped2, 0x19D1B791CB3670FE, "ii")end - -- This function is called on peds in vehicles. - -- - -- anim: animation name - -- p2, p3, p4: "sweep_low", "sweep_med" or "sweep_high" - -- p5: no idea what it does but is usually -1 - TASK_SWEEP_AIM_ENTITY=--[[void]] function(--[[Ped (int)]] ped,--[[string]] animDict,--[[string]] lowAnimName,--[[string]] medAnimName,--[[string]] hiAnimName,--[[int]] runtime,--[[Entity (int)]] targetEntity,--[[float]] turnRate,--[[float]] blendInDuration)return native_invoker.unified_void(ped, animDict, lowAnimName, medAnimName, hiAnimName, runtime, targetEntity, turnRate, blendInDuration, 0x2047C02158D6405A, "issssiiff")end - UPDATE_TASK_SWEEP_AIM_ENTITY=--[[void]] function(--[[Ped (int)]] ped,--[[Entity (int)]] entity)return native_invoker.unified_void(ped, entity, 0xE4973DBDBE6E44B3, "ii")end - TASK_SWEEP_AIM_POSITION=--[[void]] function(--[[Ped (int)]] ped,--[[string]] animDict,--[[string]] lowAnimName,--[[string]] medAnimName,--[[string]] hiAnimName,--[[int]] runtime,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] turnRate,--[[float]] blendInDuration)return native_invoker.unified_void(ped, animDict, lowAnimName, medAnimName, hiAnimName, runtime, x, y, z, turnRate, blendInDuration, 0x7AFE8FDC10BC07D2, "issssifffff")end - UPDATE_TASK_SWEEP_AIM_POSITION=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(ped, x, y, z, 0xBB106883F5201FC4, "ifff")end - -- Example from "me_amanda1.ysc.c4": - -- TASK::TASK_ARREST_PED(l_19F /* This is a Ped */ , PLAYER::PLAYER_PED_ID()); - -- - -- Example from "armenian1.ysc.c4": - -- if (!PED::IS_PED_INJURED(l_B18[0/*1*/])) { - -- TASK::TASK_ARREST_PED(l_B18[0/*1*/], PLAYER::PLAYER_PED_ID()); - -- } - -- - -- I would love to have time to experiment to see if a player Ped can arrest another Ped. Might make for a good cop mod. - -- - -- - -- Looks like only the player can be arrested this way. Peds react and try to arrest you if you task them, but the player charater doesn't do anything if tasked to arrest another ped. - TASK_ARREST_PED=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] target)return native_invoker.unified_void(ped, target, 0xF3B9A78A178572B1, "ii")end - IS_PED_RUNNING_ARREST_TASK=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x3DC52677769B4AE0, "i")end - -- This function is hard-coded to always return 0. - IS_PED_BEING_ARRESTED=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x90A09F3A45FED688, "i")end - UNCUFF_PED=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x67406F2C8F87FC4F, "i")end - IS_PED_CUFFED=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x74E559B3BC910685, "i")end --- VEHICLE - -- p7 when set to true allows you to spawn vehicles under -100 z. - -- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - CREATE_VEHICLE=--[[Vehicle (int)]] function(--[[Hash (int)]] modelHash,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] heading,--[[BOOL (bool)]] isNetwork,--[[BOOL (bool)]] bScriptHostVeh,--[[BOOL (bool)]] p7)return native_invoker.unified_int(modelHash, x, y, z, heading, isNetwork, bScriptHostVeh, p7, 0xAF35D0D2583051B0, "iffffbbb")end - -- Deletes a vehicle. - -- The vehicle must be a mission entity to delete, so call this before deleting: SET_ENTITY_AS_MISSION_ENTITY(vehicle, true, true); - -- - -- eg how to use: - -- SET_ENTITY_AS_MISSION_ENTITY(vehicle, true, true); - -- DELETE_VEHICLE(&vehicle); - -- - -- Deletes the specified vehicle, then sets the handle pointed to by the pointer to NULL. - DELETE_VEHICLE=--[[void]] function(--[[Vehicle* (pointer)]] vehicle)return native_invoker.unified_void(vehicle, 0xEA386986E786A54F, "p")end - SET_VEHICLE_ALLOW_HOMING_MISSLE_LOCKON=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle,--[[BOOL (bool)]] p2)return native_invoker.unified_void(vehicle, toggle, p2, 0x7D6F9A3EF26136A0, "ibb")end - SET_VEHICLE_ALLOW_HOMING_MISSLE_LOCKON_SYNCED=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] canBeLockedOn,--[[BOOL (bool)]] p2)return native_invoker.unified_void(vehicle, canBeLockedOn, p2, 0x1DDA078D12879EEE, "ibb")end - -- Makes the vehicle accept no passengers. - SET_VEHICLE_ALLOW_NO_PASSENGERS_LOCKON=--[[void]] function(--[[Vehicle (int)]] veh,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(veh, toggle, 0x5D14D4154BFE7B2C, "ib")end - -- Returns a value depending on the lock-on state of vehicle weapons. - -- 0: not locked on - -- 1: locking on - -- 2: locked on - GET_VEHICLE_HOMING_LOCKON_STATE=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0xE6B0E8CFC3633BF0, "i")end - GET_VEHICLE_HOMING_LOCKEDONTO_STATE=--[[int]] function(--[[Any (int)]] p0)return native_invoker.unified_int(p0, 0x6EAAEFC76ACC311F, "i")end - SET_VEHICLE_HOMING_LOCKEDONTO_STATE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x407DC5E97DB1A4D3, "ii")end - IS_VEHICLE_MODEL=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[Hash (int)]] model)return native_invoker.unified_bool(vehicle, model, 0x423E8DE37D934D89, "ii")end - DOES_SCRIPT_VEHICLE_GENERATOR_EXIST=--[[BOOL (bool)]] function(--[[int]] vehicleGenerator)return native_invoker.unified_bool(vehicleGenerator, 0xF6086BC836400876, "i")end - -- Creates a script vehicle generator at the given coordinates. Most parameters after the model hash are unknown. - -- - -- Parameters: - -- x/y/z - Generator position - -- heading - Generator heading - -- p4 - Unknown (always 5.0) - -- p5 - Unknown (always 3.0) - -- modelHash - Vehicle model hash - -- p7/8/9/10 - Unknown (always -1) - -- p11 - Unknown (usually TRUE, only one instance of FALSE) - -- p12/13 - Unknown (always FALSE) - -- p14 - Unknown (usally FALSE, only two instances of TRUE) - -- p15 - Unknown (always TRUE) - -- p16 - Unknown (always -1) - -- - -- Vector3 coords = GET_ENTITY_COORDS(PLAYER_PED_ID(), 0); CREATE_SCRIPT_VEHICLE_GENERATOR(coords.x, coords.y, coords.z, 1.0f, 5.0f, 3.0f, GET_HASH_KEY("adder"), -1. -1, -1, -1, -1, true, false, false, false, true, -1); - CREATE_SCRIPT_VEHICLE_GENERATOR=--[[int]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] heading,--[[float]] p4,--[[float]] p5,--[[Hash (int)]] modelHash,--[[int]] p7,--[[int]] p8,--[[int]] p9,--[[int]] p10,--[[BOOL (bool)]] p11,--[[BOOL (bool)]] p12,--[[BOOL (bool)]] p13,--[[BOOL (bool)]] p14,--[[BOOL (bool)]] p15,--[[int]] p16)return native_invoker.unified_int(x, y, z, heading, p4, p5, modelHash, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, 0x9DEF883114668116, "ffffffiiiiibbbbbi")end - DELETE_SCRIPT_VEHICLE_GENERATOR=--[[void]] function(--[[int]] vehicleGenerator)return native_invoker.unified_void(vehicleGenerator, 0x22102C9ABFCF125D, "i")end - -- Only called once in the decompiled scripts. Presumably activates the specified generator. - SET_SCRIPT_VEHICLE_GENERATOR=--[[void]] function(--[[int]] vehicleGenerator,--[[BOOL (bool)]] enabled)return native_invoker.unified_void(vehicleGenerator, enabled, 0xD9D620E0AC6DC4B0, "ib")end - -- When p6 is true, vehicle generators are active. - -- p7 seems to always be true in story mode scripts, but it's sometimes false in online scripts. - SET_ALL_VEHICLE_GENERATORS_ACTIVE_IN_AREA=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[BOOL (bool)]] toggle,--[[BOOL (bool)]] p7)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, toggle, p7, 0xC12321827687FE4D, "ffffffbb")end - SET_ALL_VEHICLE_GENERATORS_ACTIVE=--[[void]] function()return native_invoker.unified_void(0x34AD89078831A4BC, "")end - SET_ALL_LOW_PRIORITY_VEHICLE_GENERATORS_ACTIVE=--[[void]] function(--[[BOOL (bool)]] active)return native_invoker.unified_void(active, 0x608207E7A8FB787C, "b")end - -- Related to car generators & CPlayerSwitchMgrLong - SET_VEHICLE_GENERATOR_AREA_OF_INTEREST=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius)return native_invoker.unified_void(x, y, z, radius, 0x9A75585FB2E54FAD, "ffff")end - CLEAR_VEHICLE_GENERATOR_AREA_OF_INTEREST=--[[void]] function()return native_invoker.unified_void(0x0A436B8643716D14, "")end - -- Sets a vehicle on the ground on all wheels. Returns whether or not the operation was successful. - -- - -- sfink: This has an additional param(Vehicle vehicle, float p1) which is always set to 5.0f in the b944 scripts. - SET_VEHICLE_ON_GROUND_PROPERLY=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[float]] p1)return native_invoker.unified_bool(vehicle, p1, 0x49733E92263139D1, "if")end - SET_VEHICLE_USE_CUTSCENE_WHEEL_COMPRESSION=--[[BOOL (bool)]] function(--[[Vehicle (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_bool(p0, p1, p2, p3, 0xE023E8AC4EF7C117, "ibbb")end - IS_VEHICLE_STUCK_ON_ROOF=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xB497F06B288DCFDF, "i")end - ADD_VEHICLE_UPSIDEDOWN_CHECK=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0xB72E26D81006005B, "i")end - REMOVE_VEHICLE_UPSIDEDOWN_CHECK=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0xC53EB42A499A7E90, "i")end - -- Returns true if the vehicle's current speed is less than, or equal to 0.0025f. - -- - -- For some vehicles it returns true if the current speed is <= 0.00039999999. - IS_VEHICLE_STOPPED=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x5721B434AD84D57A, "i")end - -- Gets the number of passengers. - -- - -- This native was modified in b2545 to take two additional parameters, allowing you to include the driver or exclude dead passengers. - -- - -- To keep it working like before b2545, set includeDriver to false and includeDeadOccupants to true. - GET_VEHICLE_NUMBER_OF_PASSENGERS=--[[int]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] includeDriver,--[[BOOL (bool)]] includeDeadOccupants)return native_invoker.unified_int(vehicle, includeDriver, includeDeadOccupants, 0x24CB2137731FFE89, "ibb")end - GET_VEHICLE_MAX_NUMBER_OF_PASSENGERS=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0xA7C4F2C6E744A550, "i")end - -- Returns max number of passengers (including the driver) for the specified vehicle model. - -- - -- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - GET_VEHICLE_MODEL_NUMBER_OF_SEATS=--[[int]] function(--[[Hash (int)]] modelHash)return native_invoker.unified_int(modelHash, 0x2AD93716F184EDA4, "i")end - IS_SEAT_WARP_ONLY=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[int]] seatIndex)return native_invoker.unified_bool(vehicle, seatIndex, 0xF7F203E31F96F6A1, "ii")end - IS_TURRET_SEAT=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[int]] seatIndex)return native_invoker.unified_bool(vehicle, seatIndex, 0xE33FFA906CE74880, "ii")end - -- Returns true if the vehicle has the FLAG_ALLOWS_RAPPEL flag set. - DOES_VEHICLE_ALLOW_RAPPEL=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x4E417C547182C84D, "i")end - -- Use this native inside a looped function. - -- Values: - -- - `0.0` = no vehicles on streets - -- - `1.0` = normal vehicles on streets - SET_VEHICLE_DENSITY_MULTIPLIER_THIS_FRAME=--[[void]] function(--[[float]] multiplier)return native_invoker.unified_void(multiplier, 0x245A6883D966D537, "f")end - SET_RANDOM_VEHICLE_DENSITY_MULTIPLIER_THIS_FRAME=--[[void]] function(--[[float]] multiplier)return native_invoker.unified_void(multiplier, 0xB3B3359379FE77D3, "f")end - SET_PARKED_VEHICLE_DENSITY_MULTIPLIER_THIS_FRAME=--[[void]] function(--[[float]] multiplier)return native_invoker.unified_void(multiplier, 0xEAE6DCC7EEE3DB1D, "f")end - SET_DISABLE_RANDOM_TRAINS_THIS_FRAME=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xD4B8E3D1917BC86B, "b")end - SET_AMBIENT_VEHICLE_RANGE_MULTIPLIER_THIS_FRAME=--[[void]] function(--[[float]] value)return native_invoker.unified_void(value, 0x90B6DA738A9A25DA, "f")end - SET_FAR_DRAW_VEHICLES=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x26324F33423F3CC3, "b")end - SET_NUMBER_OF_PARKED_VEHICLES=--[[void]] function(--[[int]] value)return native_invoker.unified_void(value, 0xCAA15F13EBD417FF, "i")end - -- enum eVehicleLockState - -- { - -- VEHICLELOCK_NONE, - -- VEHICLELOCK_UNLOCKED, - -- VEHICLELOCK_LOCKED, - -- VEHICLELOCK_LOCKOUT_PLAYER_ONLY, - -- VEHICLELOCK_LOCKED_PLAYER_INSIDE, - -- VEHICLELOCK_LOCKED_INITIALLY, - -- VEHICLELOCK_FORCE_SHUT_DOORS, - -- VEHICLELOCK_LOCKED_BUT_CAN_BE_DAMAGED, - -- VEHICLELOCK_LOCKED_BUT_BOOT_UNLOCKED, - -- VEHICLELOCK_LOCKED_NO_PASSENGERS, - -- VEHICLELOCK_CANNOT_ENTER - -- }; - SET_VEHICLE_DOORS_LOCKED=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] doorLockStatus)return native_invoker.unified_void(vehicle, doorLockStatus, 0xB664292EAECF7FA6, "ii")end - -- doorId: see SET_VEHICLE_DOOR_SHUT - SET_VEHICLE_INDIVIDUAL_DOORS_LOCKED=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] doorId,--[[int]] doorLockStatus)return native_invoker.unified_void(vehicle, doorId, doorLockStatus, 0xBE70724027F85BCD, "iii")end - -- If set to true, prevents vehicle sirens from having sound, leaving only the lights. - SET_VEHICLE_HAS_MUTED_SIRENS=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xD8050E0EB60CF274, "ib")end - SET_VEHICLE_DOORS_LOCKED_FOR_PLAYER=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, player, toggle, 0x517AAF684BB50CD1, "iib")end - GET_VEHICLE_DOORS_LOCKED_FOR_PLAYER=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[Player (int)]] player)return native_invoker.unified_bool(vehicle, player, 0xF6AF6CB341349015, "ii")end - -- After some analysis, I've decided that these are what the parameters are. - -- - -- We can see this being used in R* scripts such as "am_mp_property_int.ysc.c4": - -- l_11A1 = PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 1); - -- ... - -- VEHICLE::SET_VEHICLE_DOORS_LOCKED_FOR_ALL_PLAYERS(l_11A1, 1); - SET_VEHICLE_DOORS_LOCKED_FOR_ALL_PLAYERS=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xA2F80B8D040727CC, "ib")end - SET_VEHICLE_DOORS_LOCKED_FOR_NON_SCRIPT_PLAYERS=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x9737A37136F07E75, "ib")end - SET_VEHICLE_DOORS_LOCKED_FOR_TEAM=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] team,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, team, toggle, 0xB81F6D4A8F5EEBA8, "iib")end - SET_VEHICLE_DOORS_LOCKED_FOR_ALL_TEAMS=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x203B527D1B77904C, "ib")end - SET_VEHICLE_DONT_TERMINATE_TASK_WHEN_ACHIEVED=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x76D26A22750E849E, "i")end - -- 0.0f = engine rev minimum - -- 1.0f = engine rev limit - _SET_VEHICLE_MAX_LAUNCH_ENGINE_REVS=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] modifier)return native_invoker.unified_void(vehicle, modifier, 0x5AE614ECA5FDD423, "if")end - _GET_VEHICLE_THROTTLE=--[[float]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_float(vehicle, 0x92D96892FC06AF22, "i")end - -- Explodes a selected vehicle. - -- - -- Vehicle vehicle = Vehicle you want to explode. - -- BOOL isAudible = If explosion makes a sound. - -- BOOL isInvisible = If the explosion is invisible or not. - -- - -- First BOOL does not give any visual explosion, the vehicle just falls apart completely but slowly and starts to burn. - EXPLODE_VEHICLE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] isAudible,--[[BOOL (bool)]] isInvisible)return native_invoker.unified_void(vehicle, isAudible, isInvisible, 0xBA71116ADF5B514C, "ibb")end - -- Tested on the player's current vehicle. Unless you kill the driver, the vehicle doesn't loose control, however, if enabled, explodeOnImpact is still active. The moment you crash, boom. - SET_VEHICLE_OUT_OF_CONTROL=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] killDriver,--[[BOOL (bool)]] explodeOnImpact)return native_invoker.unified_void(vehicle, killDriver, explodeOnImpact, 0xF19D095E42D430CC, "ibb")end - SET_VEHICLE_TIMED_EXPLOSION=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, ped, toggle, 0x2E0A74E1002380B1, "iib")end - ADD_VEHICLE_PHONE_EXPLOSIVE_DEVICE=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x99AD4CCCB128CBC9, "i")end - CLEAR_VEHICLE_PHONE_EXPLOSIVE_DEVICE=--[[void]] function()return native_invoker.unified_void(0xAA3F739ABDDCF21F, "")end - HAS_VEHICLE_PHONE_EXPLOSIVE_DEVICE=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x6ADAABD3068C5235, "")end - DETONATE_VEHICLE_PHONE_EXPLOSIVE_DEVICE=--[[void]] function()return native_invoker.unified_void(0xEF49CF0270307CBE, "")end - HAVE_VEHICLE_REAR_DOORS_BEEN_BLOWN_OPEN_BY_STICKYBOMB=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x6B407F2525E93644, "i")end - -- This is not tested - it's just an assumption. - -- - Nac - -- - -- Doesn't seem to work. I'll try with an int instead. --JT - -- - -- Read the scripts, im dumpass. - -- - -- if (!VEHICLE::IS_TAXI_LIGHT_ON(l_115)) { - -- VEHICLE::SET_TAXI_LIGHTS(l_115, 1); - -- } - SET_TAXI_LIGHTS=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] state)return native_invoker.unified_void(vehicle, state, 0x598803E85E8448D9, "ib")end - IS_TAXI_LIGHT_ON=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x7504C0F113AB50FC, "i")end - -- garageName example "Michael - Beverly Hills" - -- - -- Full list of garages by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/garages.json - IS_VEHICLE_IN_GARAGE_AREA=--[[BOOL (bool)]] function(--[[string]] garageName,--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(garageName, vehicle, 0xCEE4490CD57BB3C2, "si")end - -- colorPrimary & colorSecondary are the paint index for the vehicle. - -- For a list of valid paint indexes, view: https://pastebin.com/pwHci0xK - -- ------------------------------------------------------------------------- - -- Note: minimum color index is 0, maximum color index is (numColorIndices - 1) - -- - -- Full list of vehicle colors by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicleColors.json - SET_VEHICLE_COLOURS=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] colorPrimary,--[[int]] colorSecondary)return native_invoker.unified_void(vehicle, colorPrimary, colorSecondary, 0x4F1D4BE3A7F24601, "iii")end - -- It switch to highbeam when p1 is set to true. - SET_VEHICLE_FULLBEAM=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x8B7FD87F0DDB421E, "ib")end - -- p1 (toggle) was always 1 (true) except in one case in the b678 scripts. - SET_VEHICLE_IS_RACING=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x07116E24E9D1929D, "ib")end - -- p1, p2, p3 are RGB values for color (255,0,0 for Red, ect) - SET_VEHICLE_CUSTOM_PRIMARY_COLOUR=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] r,--[[int]] g,--[[int]] b)return native_invoker.unified_void(vehicle, r, g, b, 0x7141766F91D15BEA, "iiii")end - GET_VEHICLE_CUSTOM_PRIMARY_COLOUR=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int* (pointer)]] r,--[[int* (pointer)]] g,--[[int* (pointer)]] b)return native_invoker.unified_void(vehicle, r, g, b, 0xB64CF2CCA9D95F52, "ippp")end - CLEAR_VEHICLE_CUSTOM_PRIMARY_COLOUR=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x55E1D2758F34E437, "i")end - GET_IS_VEHICLE_PRIMARY_COLOUR_CUSTOM=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xF095C0405307B21B, "i")end - -- p1, p2, p3 are RGB values for color (255,0,0 for Red, ect) - SET_VEHICLE_CUSTOM_SECONDARY_COLOUR=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] r,--[[int]] g,--[[int]] b)return native_invoker.unified_void(vehicle, r, g, b, 0x36CED73BFED89754, "iiii")end - GET_VEHICLE_CUSTOM_SECONDARY_COLOUR=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int* (pointer)]] r,--[[int* (pointer)]] g,--[[int* (pointer)]] b)return native_invoker.unified_void(vehicle, r, g, b, 0x8389CD56CA8072DC, "ippp")end - CLEAR_VEHICLE_CUSTOM_SECONDARY_COLOUR=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x5FFBDEEC3E8E2009, "i")end - -- Check if Vehicle Secondary is avaliable for customize - GET_IS_VEHICLE_SECONDARY_COLOUR_CUSTOM=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x910A32E7AAD2656C, "i")end - -- The parameter fade is a value from 0-1, where 0 is fresh paint. - SET_VEHICLE_ENVEFF_SCALE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] fade)return native_invoker.unified_void(vehicle, fade, 0x3AFDC536C3D01674, "if")end - -- The result is a value from 0-1, where 0 is fresh paint. - GET_VEHICLE_ENVEFF_SCALE=--[[float]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_float(vehicle, 0xA82819CAC9C4C403, "i")end - -- Hardcoded to not work in multiplayer. - SET_CAN_RESPRAY_VEHICLE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] state)return native_invoker.unified_void(vehicle, state, 0x52BBA29D5EC69356, "ib")end - -- Used for GTAO CEO/Associate spawned vehicles. - SET_GOON_BOSS_VEHICLE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xAB31EF4DE6800CE9, "ib")end - SET_OPEN_REAR_DOORS_ON_EXPLOSION=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x1B212B26DD3C04DF, "ib")end - FORCE_SUBMARINE_SURFACE_MODE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x33506883545AC0DF, "ib")end - FORCE_SUBMARINE_NEURTAL_BUOYANCY=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xC67DB108A9ADE3BE, "ii")end - SET_SUBMARINE_CRUSH_DEPTHS=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1,--[[float]] depth1,--[[float]] depth2,--[[float]] depth3)return native_invoker.unified_void(vehicle, p1, depth1, depth2, depth3, 0xC59872A5134879C7, "ibfff")end - GET_SUBMARINE_IS_UNDER_DESIGN_DEPTH=--[[BOOL (bool)]] function(--[[Vehicle (int)]] submarine)return native_invoker.unified_bool(submarine, 0x3E71D0B300B7AA79, "i")end - GET_SUBMARINE_NUMBER_OF_AIR_LEAKS=--[[int]] function(--[[Vehicle (int)]] submarine)return native_invoker.unified_int(submarine, 0x093D6DDCA5B8FBAE, "i")end - SET_BOAT_IGNORE_LAND_PROBES=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xED5EDE9E676643C9, "ii")end - -- Use the vehicle bounds (instead of viewport) when deciding if a vehicle is sufficiently above the water (waterheight.dat), bypassing wave simulation checks - _SET_BOUNDS_AFFECT_WATER_PROBES=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x85FC953F6C6CBDE1, "ib")end - SET_BOAT_ANCHOR=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x75DBEC174AEEAD10, "ib")end - CAN_ANCHOR_BOAT_HERE=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x26C10ECBDA5D043B, "i")end - CAN_ANCHOR_BOAT_HERE_IGNORE_PLAYERS=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x24F4121D07579880, "i")end - SET_BOAT_REMAINS_ANCHORED_WHILE_PLAYER_IS_DRIVER=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xE3EBAAE484798530, "ib")end - -- No observed effect. - SET_FORCE_LOW_LOD_ANCHOR_MODE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0xB28B1FE5BFADD7F5, "ib")end - SET_BOAT_LOW_LOD_ANCHOR_DISTANCE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] value)return native_invoker.unified_void(vehicle, value, 0xE842A9398079BD82, "if")end - IS_BOAT_ANCHORED=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xB0AD1238A709B1A2, "i")end - SET_BOAT_SINKS_WHEN_WRECKED=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x8F719973E1445BA2, "ib")end - SET_BOAT_WRECKED=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0xBD32E46AA95C1DD2, "i")end - -- Activate siren on vehicle (Only works if the vehicle has a siren). - SET_VEHICLE_SIREN=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xF4924635A19EB37D, "ib")end - IS_VEHICLE_SIREN_ON=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x4C9BF537BE2634B2, "i")end - IS_VEHICLE_SIREN_AUDIO_ON=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xB5CC40FBCB586380, "i")end - -- If set to true, vehicle will not take crash damage, but is still susceptible to damage from bullets and explosives - SET_VEHICLE_STRONG=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x3E8C8727991A8A0B, "ib")end - REMOVE_VEHICLE_STUCK_CHECK=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x8386BFB614D06749, "i")end - GET_VEHICLE_COLOURS=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int* (pointer)]] colorPrimary,--[[int* (pointer)]] colorSecondary)return native_invoker.unified_void(vehicle, colorPrimary, colorSecondary, 0xA19435F193E081AC, "ipp")end - -- Check if a vehicle seat is free. - -- - -- seatIndex = -1 being the driver seat. - -- Use GET_VEHICLE_MAX_NUMBER_OF_PASSENGERS(vehicle) - 1 for last seat index. - -- isTaskRunning = on true the function returns already false while a task on the target seat is running (TASK_ENTER_VEHICLE/TASK_SHUFFLE_TO_NEXT_VEHICLE_SEAT) - on false only when a ped is finally sitting in the seat. - IS_VEHICLE_SEAT_FREE=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[int]] seatIndex,--[[BOOL (bool)]] isTaskRunning)return native_invoker.unified_bool(vehicle, seatIndex, isTaskRunning, 0x22AC59A870E6A669, "iib")end - -- If there is no ped in the seat, and the game considers the vehicle as ambient population, this will create a random occupant ped in the seat, which may be cleaned up by the game fairly soon if not marked as script-owned mission entity. - -- - -- Seat indexes: - -- -1 = Driver - -- 0 = Front Right Passenger - -- 1 = Back Left Passenger - -- 2 = Back Right Passenger - -- 3 = Further Back Left Passenger (vehicles > 4 seats) - -- 4 = Further Back Right Passenger (vehicles > 4 seats) - -- etc. - -- - -- If p2 is true it uses a different GetOccupant function. - GET_PED_IN_VEHICLE_SEAT=--[[Ped (int)]] function(--[[Vehicle (int)]] vehicle,--[[int]] seatIndex,--[[BOOL (bool)]] p2)return native_invoker.unified_int(vehicle, seatIndex, p2, 0xBB40DD2270B65366, "iib")end - GET_LAST_PED_IN_VEHICLE_SEAT=--[[Ped (int)]] function(--[[Vehicle (int)]] vehicle,--[[int]] seatIndex)return native_invoker.unified_int(vehicle, seatIndex, 0x83F969AA1EE2A664, "ii")end - GET_VEHICLE_LIGHTS_STATE=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[BOOL* (pointer)]] lightsOn,--[[BOOL* (pointer)]] highbeamsOn)return native_invoker.unified_bool(vehicle, lightsOn, highbeamsOn, 0xB91B4C20085BD12F, "ipp")end - -- wheelID used for 4 wheelers seem to be (0, 1, 4, 5) - -- completely - is to check if tire completely gone from rim. - -- - -- '0 = wheel_lf / bike, plane or jet front - -- '1 = wheel_rf - -- '2 = wheel_lm / in 6 wheels trailer, plane or jet is first one on left - -- '3 = wheel_rm / in 6 wheels trailer, plane or jet is first one on right - -- '4 = wheel_lr / bike rear / in 6 wheels trailer, plane or jet is last one on left - -- '5 = wheel_rr / in 6 wheels trailer, plane or jet is last one on right - -- '45 = 6 wheels trailer mid wheel left - -- '47 = 6 wheels trailer mid wheel right - IS_VEHICLE_TYRE_BURST=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[int]] wheelID,--[[BOOL (bool)]] completely)return native_invoker.unified_bool(vehicle, wheelID, completely, 0xBA291848A0815CA9, "iib")end - -- SCALE: Setting the speed to 30 would result in a speed of roughly 60mph, according to speedometer. - -- - -- Speed is in meters per second - -- You can convert meters/s to mph here: - -- http://www.calculateme.com/Speed/MetersperSecond/ToMilesperHour.htm - SET_VEHICLE_FORWARD_SPEED=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] speed)return native_invoker.unified_void(vehicle, speed, 0xAB54A438726D25D5, "if")end - -- Seems to be identical to SET_VEHICLE_FORWARD_SPEED - SET_VEHICLE_FORWARD_SPEED_XY=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] speed)return native_invoker.unified_void(vehicle, speed, 0x6501129C9E0FFA05, "if")end - -- This native makes the vehicle stop immediately, as happens when we enter a MP garage. - -- - -- . distance defines how far it will travel until stopping. Garage doors use 3.0. - -- - -- . If killEngine is set to 1, you cannot resume driving the vehicle once it stops. This looks like is a bitmapped integer. - BRING_VEHICLE_TO_HALT=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] distance,--[[int]] duration,--[[BOOL (bool)]] p3)return native_invoker.unified_void(vehicle, distance, duration, p3, 0x260BE8F09E326A20, "ifib")end - SET_VEHICLE_STEER_FOR_BUILDINGS=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[Any (int)]] p1)return native_invoker.unified_void(vehicle, p1, 0xDCE97BDF8A0EABC8, "ii")end - SET_VEHICLE_CAUSES_SWERVING=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x9849DE24FCF23CCC, "ib")end - SET_IGNORE_PLANES_SMALL_PITCH_CHANGE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x8664170EF165C4A6, "ii")end - -- Stops CTaskBringVehicleToHalt - STOP_BRINGING_VEHICLE_TO_HALT=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x7C06330BFDDA182E, "i")end - -- Returns true if vehicle is halted by BRING_VEHICLE_TO_HALT - IS_VEHICLE_BEING_BROUGHT_TO_HALT=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xC69BB1D832A710EF, "i")end - LOWER_FORKLIFT_FORKS=--[[void]] function(--[[Vehicle (int)]] forklift)return native_invoker.unified_void(forklift, 0x923A293361DF44E5, "i")end - -- 0.0 = Lowest 1.0 = Highest. This is best to be used if you wanna pick-up a car since un-realistically on GTA V forklifts can't pick up much of anything due to vehicle mass. If you put this under a car then set it above 0.0 to a 'lifted-value' it will raise the car with no issue lol - SET_FORKLIFT_FORK_HEIGHT=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] height)return native_invoker.unified_void(vehicle, height, 0x37EBBF3117BD6A25, "if")end - IS_ENTITY_ATTACHED_TO_HANDLER_FRAME=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[Entity (int)]] entity)return native_invoker.unified_bool(vehicle, entity, 0x57715966069157AD, "ii")end - IS_ANY_ENTITY_ATTACHED_TO_HANDLER_FRAME=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x62CA17B74C435651, "i")end - -- Finds the vehicle that is carrying this entity with a handler frame. - -- The model of the entity must be prop_contr_03b_ld or the function will return 0. - FIND_HANDLER_VEHICLE_CONTAINER_IS_ATTACHED_TO=--[[Vehicle (int)]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0x375E7FC44F21C8AB, "i")end - IS_HANDLER_FRAME_LINED_UP_WITH_CONTAINER=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[Entity (int)]] entity)return native_invoker.unified_bool(vehicle, entity, 0x89D630CF5EA96D23, "ii")end - ATTACH_CONTAINER_TO_HANDLER_FRAME_WHEN_LINED_UP=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[Entity (int)]] entity)return native_invoker.unified_void(vehicle, entity, 0x6A98C2ECF57FA5D4, "ii")end - DETACH_CONTAINER_FROM_HANDLER_FRAME=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x7C0043FDFF6436BC, "i")end - SET_VEHICLE_DISABLE_HEIGHT_MAP_AVOIDANCE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0x8AA9180DE2FEDD45, "ib")end - SET_BOAT_DISABLE_AVOIDANCE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0x0A6A279F3AA4FD70, "ib")end - IS_HELI_LANDING_AREA_BLOCKED=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x634148744F385576, "i")end - -- Used on helicopters and blimps during the CTaskVehicleLand task. Sets a value on the task to 10f - SET_SHORT_SLOWDOWN_FOR_LANDING=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x107A473D7A6647A9, "i")end - SET_HELI_TURBULENCE_SCALAR=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] p1)return native_invoker.unified_void(vehicle, p1, 0xE6F13851780394DA, "if")end - -- Initially used in Max Payne 3, that's why we know the name. - SET_CAR_BOOT_OPEN=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0xFC40CBF7B90CA77C, "i")end - -- "To burst tyres VEHICLE::SET_VEHICLE_TYRE_BURST(vehicle, 0, true, 1000.0) - -- to burst all tyres type it 8 times where p1 = 0 to 7. - -- - -- p3 seems to be how much damage it has taken. 0 doesn't deflate them, 1000 completely deflates them. - -- - -- '0 = wheel_lf / bike, plane or jet front - -- '1 = wheel_rf - -- '2 = wheel_lm / in 6 wheels trailer, plane or jet is first one on left - -- '3 = wheel_rm / in 6 wheels trailer, plane or jet is first one on right - -- '4 = wheel_lr / bike rear / in 6 wheels trailer, plane or jet is last one on left - -- '5 = wheel_rr / in 6 wheels trailer, plane or jet is last one on right - -- '45 = 6 wheels trailer mid wheel left - -- '47 = 6 wheels trailer mid wheel right - SET_VEHICLE_TYRE_BURST=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] index,--[[BOOL (bool)]] onRim,--[[float]] p3)return native_invoker.unified_void(vehicle, index, onRim, p3, 0xEC6A202EE4960385, "iibf")end - -- Closes all doors of a vehicle: - SET_VEHICLE_DOORS_SHUT=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] closeInstantly)return native_invoker.unified_void(vehicle, closeInstantly, 0x781B3D62BB013EF5, "ib")end - -- Allows you to toggle bulletproof tires. - SET_VEHICLE_TYRES_CAN_BURST=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xEB9DC3C7D8596C46, "ib")end - GET_VEHICLE_TYRES_CAN_BURST=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x678B9BB8C3F58FEB, "i")end - SET_VEHICLE_WHEELS_CAN_BREAK=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] enabled)return native_invoker.unified_void(vehicle, enabled, 0x29B18B4FD460CA8F, "ib")end - -- doorId: see SET_VEHICLE_DOOR_SHUT - SET_VEHICLE_DOOR_OPEN=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] doorId,--[[BOOL (bool)]] loose,--[[BOOL (bool)]] openInstantly)return native_invoker.unified_void(vehicle, doorId, loose, openInstantly, 0x7C65DAC73C35C862, "iibb")end - -- doorId: see SET_VEHICLE_DOOR_SHUT - -- - -- Usually used alongside other vehicle door natives. - SET_VEHICLE_DOOR_AUTO_LOCK=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] doorId,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, doorId, toggle, 0x3B458DDB57038F08, "iib")end - SET_FLEEING_VEHICLES_USE_SWITCHED_OFF_NODES=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xA247F9EF01D8082E, "i")end - -- windowIndex: - -- 0 = Front Right Window - -- 1 = Front Left Window - -- 2 = Back Right Window - -- 3 = Back Left Window - -- 4 = Unknown - -- 5 = Unknown - -- 6 = Windscreen - -- 7 = Rear Windscreen - REMOVE_VEHICLE_WINDOW=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] windowIndex)return native_invoker.unified_void(vehicle, windowIndex, 0xA711568EEDB43069, "ii")end - -- Roll down all the windows of the vehicle passed through the first parameter. - ROLL_DOWN_WINDOWS=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x85796B0549DDE156, "i")end - -- windowIndex: - -- 0 = Front Left Window - -- 1 = Front Right Window - -- 2 = Rear Left Window - -- 3 = Rear Right Window - -- 4 = Front Windscreen - -- 5 = Rear Windscreen - -- 6 = Mid Left - -- 7 = Mid Right - -- 8 = Invalid - ROLL_DOWN_WINDOW=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] windowIndex)return native_invoker.unified_void(vehicle, windowIndex, 0x7AD9E6CE657D69E3, "ii")end - -- windowIndex: - -- 0 = Front Left Window - -- 1 = Front Right Window - -- 2 = Rear Left Window - -- 3 = Rear Right Window - -- 4 = Front Windscreen - -- 5 = Rear Windscreen - -- 6 = Mid Left - -- 7 = Mid Right - -- 8 = Invalid - ROLL_UP_WINDOW=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] windowIndex)return native_invoker.unified_void(vehicle, windowIndex, 0x602E548F46E24D59, "ii")end - -- windowIndex: - -- 0 = Front Left Window - -- 1 = Front Right Window - -- 2 = Rear Left Window - -- 3 = Rear Right Window - -- 4 = Front Windscreen - -- 5 = Rear Windscreen - -- 6 = Mid Left - -- 7 = Mid Right - -- 8 = Invalid - SMASH_VEHICLE_WINDOW=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] windowIndex)return native_invoker.unified_void(vehicle, windowIndex, 0x9E5B5E4D2CCD2259, "ii")end - -- windowIndex: - -- 0 = Front Left Window - -- 1 = Front Right Window - -- 2 = Rear Left Window - -- 3 = Rear Right Window - -- 4 = Front Windscreen - -- 5 = Rear Windscreen - -- 6 = Mid Left - -- 7 = Mid Right - -- 8 = Invalid - -- - -- Additional information: FIX_VEHICLE_WINDOW (0x140D0BB88) references an array of bone vehicle indices (0x141D4B3E0) { 2Ah, 2Bh, 2Ch, 2Dh, 2Eh, 2Fh, 28h, 29h } that correspond to: window_lf, window_rf, window_lr, window_rr, window_lm, window_rm, windscreen, windscreen_r. This array is used by most vehwindow natives. - -- - -- Also, this function is coded to not work on vehicles of type: CBike, Bmx, CBoat, CTrain, and CSubmarine. - FIX_VEHICLE_WINDOW=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] windowIndex)return native_invoker.unified_void(vehicle, windowIndex, 0x772282EBEB95E682, "ii")end - -- Detaches the vehicle's windscreen. - -- For further information, see : gtaforums.com/topic/859570-glass/#entry1068894566 - POP_OUT_VEHICLE_WINDSCREEN=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x6D645D59FB5F5AD3, "i")end - -- Pops off the "roof" bone in the direction of the specified offset from the vehicle. - POP_OFF_VEHICLE_ROOF_WITH_IMPULSE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(vehicle, x, y, z, 0xE38CB9D7D39FDBCC, "ifff")end - -- set's if the vehicle has lights or not. - -- not an on off toggle. - -- p1 = 0 ;vehicle normal lights, off then lowbeams, then highbeams - -- p1 = 1 ;vehicle doesn't have lights, always off - -- p1 = 2 ;vehicle has always on lights - -- p1 = 3 ;or even larger like 4,5,... normal lights like =1 - -- note1: when using =2 on day it's lowbeam,highbeam - -- but at night it's lowbeam,lowbeam,highbeam - -- note2: when using =0 it's affected by day or night for highbeams don't exist in daytime. - SET_VEHICLE_LIGHTS=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] state)return native_invoker.unified_void(vehicle, state, 0x34E710FF01247C5A, "ii")end - SET_VEHICLE_USE_PLAYER_LIGHT_SETTINGS=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xC45C27EF50F36ADC, "ib")end - -- p1 can be either 0, 1 or 2. - -- - -- Determines how vehicle lights behave when toggled. - -- - -- 0 = Default (Lights can be toggled between off, normal and high beams) - -- 1 = Lights Disabled (Lights are fully disabled, cannot be toggled) - -- 2 = Always On (Lights can be toggled between normal and high beams) - SET_VEHICLE_HEADLIGHT_SHADOWS=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] p1)return native_invoker.unified_void(vehicle, p1, 0x1FD09E7390A74D54, "ii")end - SET_VEHICLE_ALARM=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] state)return native_invoker.unified_void(vehicle, state, 0xCDE5E70C1DDB954C, "ib")end - START_VEHICLE_ALARM=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0xB8FF7AB45305C345, "i")end - IS_VEHICLE_ALARM_ACTIVATED=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x4319E335B71FFF34, "i")end - SET_VEHICLE_INTERIORLIGHT=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xBC2042F090AF6AD3, "ib")end - -- Sets some bit of vehicle - SET_VEHICLE_FORCE_INTERIORLIGHT=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x8821196D91FA2DE5, "ib")end - -- multiplier = brightness of head lights. - -- this value isn't capped afaik. - -- - -- multiplier = 0.0 no lights - -- multiplier = 1.0 default game value - -- - SET_VEHICLE_LIGHT_MULTIPLIER=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] multiplier)return native_invoker.unified_void(vehicle, multiplier, 0xB385454F8791F57C, "if")end - ATTACH_VEHICLE_TO_TRAILER=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[Vehicle (int)]] trailer,--[[float]] radius)return native_invoker.unified_void(vehicle, trailer, radius, 0x3C7D42D58F770B54, "iif")end - -- This is the proper way of attaching vehicles to the car carrier, it's what Rockstar uses. Video Demo: https://www.youtube.com/watch?v=2lVEIzf7bgo - ATTACH_VEHICLE_ON_TO_TRAILER=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[Vehicle (int)]] trailer,--[[float]] offsetX,--[[float]] offsetY,--[[float]] offsetZ,--[[float]] coordsX,--[[float]] coordsY,--[[float]] coordsZ,--[[float]] rotationX,--[[float]] rotationY,--[[float]] rotationZ,--[[float]] disableCollisions)return native_invoker.unified_void(vehicle, trailer, offsetX, offsetY, offsetZ, coordsX, coordsY, coordsZ, rotationX, rotationY, rotationZ, disableCollisions, 0x16B5E274BDE402F8, "iiffffffffff")end - STABILISE_ENTITY_ATTACHED_TO_HELI=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[Entity (int)]] entity,--[[float]] p2)return native_invoker.unified_void(vehicle, entity, p2, 0x374706271354CB18, "iif")end - DETACH_VEHICLE_FROM_TRAILER=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x90532EDF0D2BDD86, "i")end - IS_VEHICLE_ATTACHED_TO_TRAILER=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xE7CF3C4F9F489F0C, "i")end - SET_TRAILER_INVERSE_MASS_SCALE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] p1)return native_invoker.unified_void(vehicle, p1, 0x2A8F319B392E7B3F, "if")end - -- in the decompiled scripts, seems to be always called on the vehicle right after being attached to a trailer. - SET_TRAILER_LEGS_RAISED=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x95CF53B3D687F9FA, "i")end - SET_TRAILER_LEGS_LOWERED=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x878C75C09FBDB942, "i")end - -- tyreIndex = 0 to 4 on normal vehicles - -- - -- '0 = wheel_lf / bike, plane or jet front - -- '1 = wheel_rf - -- '2 = wheel_lm / in 6 wheels trailer, plane or jet is first one on left - -- '3 = wheel_rm / in 6 wheels trailer, plane or jet is first one on right - -- '4 = wheel_lr / bike rear / in 6 wheels trailer, plane or jet is last one on left - -- '5 = wheel_rr / in 6 wheels trailer, plane or jet is last one on right - -- '45 = 6 wheels trailer mid wheel left - -- '47 = 6 wheels trailer mid wheel right - SET_VEHICLE_TYRE_FIXED=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] tyreIndex)return native_invoker.unified_void(vehicle, tyreIndex, 0x6E13FC662B882D1D, "ii")end - -- Sets a vehicle's license plate text. 8 chars maximum. - -- - -- Example: - -- Ped playerPed = PLAYER::PLAYER_PED_ID(); - -- Vehicle veh = PED::GET_VEHICLE_PED_IS_USING(playerPed); - -- char *plateText = "KING"; - -- VEHICLE::SET_VEHICLE_NUMBER_PLATE_TEXT(veh, plateText); - SET_VEHICLE_NUMBER_PLATE_TEXT=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[string]] plateText)return native_invoker.unified_void(vehicle, plateText, 0x95A88F0B409CDA47, "is")end - -- Returns the license plate text from a vehicle. 8 chars maximum. - GET_VEHICLE_NUMBER_PLATE_TEXT=--[[string]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_string(vehicle, 0x7CE1CCB9B293020E, "i")end - -- Returns the number of *types* of licence plates, enumerated below in SET_VEHICLE_NUMBER_PLATE_TEXT_INDEX. - GET_NUMBER_OF_VEHICLE_NUMBER_PLATES=--[[int]] function()return native_invoker.unified_int(0x4C4D6B2644F458CB, "")end - -- Plates: - -- Blue/White - 0 - -- Yellow/black - 1 - -- Yellow/Blue - 2 - -- Blue/White2 - 3 - -- Blue/White3 - 4 - -- Yankton - 5 - SET_VEHICLE_NUMBER_PLATE_TEXT_INDEX=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] plateIndex)return native_invoker.unified_void(vehicle, plateIndex, 0x9088EB5A43FFB0A1, "ii")end - -- Returns the PlateType of a vehicle - -- Blue_on_White_1 = 3, - -- Blue_on_White_2 = 0, - -- Blue_on_White_3 = 4, - -- Yellow_on_Blue = 2, - -- Yellow_on_Black = 1, - -- North_Yankton = 5, - GET_VEHICLE_NUMBER_PLATE_TEXT_INDEX=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0xF11BC2DD9A3E7195, "i")end - SET_RANDOM_TRAINS=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x80D9F74197EA47D9, "b")end - -- Train models HAVE TO be loaded (requested) before you use this. - -- For variation 15 - request: - -- - -- freight - -- freightcar - -- freightgrain - -- freightcont1 - -- freightcont2 - -- freighttrailer - -- - -- - CREATE_MISSION_TRAIN=--[[Vehicle (int)]] function(--[[int]] variation,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] direction,--[[Any (int)]] p5,--[[Any (int)]] p6)return native_invoker.unified_int(variation, x, y, z, direction, p5, p6, 0x63C6CCA8E68AE8C8, "ifffbii")end - -- Toggles whether ambient trains can spawn on the specified track or not - -- - -- `trackId` is the internal id of the train track to switch. - -- `state` is whether ambient trains can spawn or not - -- - -- trackIds - -- 0 (`trains1.dat`) Main track around SA - -- 1 (`trains2.dat`) Davis Quartz Quarry branch - -- 2 (`trains3.dat`) Second track alongside live track along Roy Lewenstein Blv. - -- 3 (`trains4.dat`) Metro track circuit - -- 4 (`trains5.dat`) Branch in Mirror Park Railyard - -- 5 (`trains6.dat`) Branch in Mirror Park Railyard - -- 6 (`trains7.dat`) LS branch to Mirror Park Railyard - -- 7 (`trains8.dat`) Overground part of metro track along Forum Dr. - -- 8 (`trains9.dat`) Branch to Mirror Park Railyard - -- 9 (`trains10.dat`) Yankton train - -- 10 (`trains11.dat`) Part of metro track near mission row - -- 11 (`trains12.dat`) Yankton prologue mission train - -- Full list of all train tracks + track nodes by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/traintracks.json - SWITCH_TRAIN_TRACK=--[[void]] function(--[[int]] trackId,--[[BOOL (bool)]] state)return native_invoker.unified_void(trackId, state, 0xFD813BB7DB977F20, "ib")end - -- Only called once inside main_persitant with the parameters p0 = 0, p1 = 120000 - -- - -- trackIndex: 0 - 26 - -- Full list of all train tracks + track nodes by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/traintracks.json - SET_TRAIN_TRACK_SPAWN_FREQUENCY=--[[void]] function(--[[int]] trackIndex,--[[int]] frequency)return native_invoker.unified_void(trackIndex, frequency, 0x21973BBF8D17EDFA, "ii")end - ALLOW_TRAIN_TO_BE_REMOVED_BY_POPULATION=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x2310A8F9421EBF43, "i")end - DELETE_ALL_TRAINS=--[[void]] function()return native_invoker.unified_void(0x736A718577F39C7D, "")end - SET_TRAIN_SPEED=--[[void]] function(--[[Vehicle (int)]] train,--[[float]] speed)return native_invoker.unified_void(train, speed, 0xAA0BC91BE0B796E3, "if")end - SET_TRAIN_CRUISE_SPEED=--[[void]] function(--[[Vehicle (int)]] train,--[[float]] speed)return native_invoker.unified_void(train, speed, 0x16469284DB8C62B5, "if")end - SET_RANDOM_BOATS=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x84436EC293B1415F, "b")end - SET_RANDOM_BOATS_MP=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xDA5E12F728DB30CA, "b")end - SET_GARBAGE_TRUCKS=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x2AFD795EEAC8D30D, "b")end - -- Maximum amount of vehicles with vehicle stuck check appears to be 16. - DOES_VEHICLE_HAVE_STUCK_VEHICLE_CHECK=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x57E4C39DE5EE8470, "i")end - -- See REQUEST_VEHICLE_RECORDING - GET_VEHICLE_RECORDING_ID=--[[int]] function(--[[int]] recording,--[[string]] script)return native_invoker.unified_int(recording, script, 0x21543C612379DB3C, "is")end - -- Request the vehicle recording defined by the lowercase format string "%s%03d.yvr". For example, REQUEST_VEHICLE_RECORDING(1, "FBIs1UBER") corresponds to fbis1uber001.yvr. - -- For all vehicle recording/playback natives, "script" is a common prefix that usually corresponds to the script/mission the recording is used in, "recording" is its int suffix, and "id" (e.g., in native GET_TOTAL_DURATION_OF_VEHICLE_RECORDING_ID) corresponds to a unique identifier within the recording streaming module. - -- Note that only 24 recordings (hardcoded in multiple places) can ever active at a given time before clobbering begins. - REQUEST_VEHICLE_RECORDING=--[[void]] function(--[[int]] recording,--[[string]] script)return native_invoker.unified_void(recording, script, 0xAF514CABE74CBF15, "is")end - -- See REQUEST_VEHICLE_RECORDING - HAS_VEHICLE_RECORDING_BEEN_LOADED=--[[BOOL (bool)]] function(--[[int]] recording,--[[string]] script)return native_invoker.unified_bool(recording, script, 0x300D614A4C785FC4, "is")end - -- See REQUEST_VEHICLE_RECORDING - REMOVE_VEHICLE_RECORDING=--[[void]] function(--[[int]] recording,--[[string]] script)return native_invoker.unified_void(recording, script, 0xF1160ACCF98A3FC8, "is")end - GET_POSITION_OF_VEHICLE_RECORDING_ID_AT_TIME=--[[Vector3 (vector3)]] function(--[[int]] id,--[[float]] time)return native_invoker.unified_vector3(id, time, 0x92523B76657A517D, "if")end - -- This native does no interpolation between pathpoints. The same position will be returned for all times up to the next pathpoint in the recording. - -- - -- See REQUEST_VEHICLE_RECORDING - GET_POSITION_OF_VEHICLE_RECORDING_AT_TIME=--[[Vector3 (vector3)]] function(--[[int]] recording,--[[float]] time,--[[string]] script)return native_invoker.unified_vector3(recording, time, script, 0xD242728AA6F0FBA2, "ifs")end - GET_ROTATION_OF_VEHICLE_RECORDING_ID_AT_TIME=--[[Vector3 (vector3)]] function(--[[int]] id,--[[float]] time)return native_invoker.unified_vector3(id, time, 0xF0F2103EFAF8CBA7, "if")end - -- This native does no interpolation between pathpoints. The same rotation will be returned for all times up to the next pathpoint in the recording. - -- - -- See REQUEST_VEHICLE_RECORDING - GET_ROTATION_OF_VEHICLE_RECORDING_AT_TIME=--[[Vector3 (vector3)]] function(--[[int]] recording,--[[float]] time,--[[string]] script)return native_invoker.unified_vector3(recording, time, script, 0x2058206FBE79A8AD, "ifs")end - GET_TOTAL_DURATION_OF_VEHICLE_RECORDING_ID=--[[float]] function(--[[int]] id)return native_invoker.unified_float(id, 0x102D125411A7B6E6, "i")end - -- See REQUEST_VEHICLE_RECORDING - GET_TOTAL_DURATION_OF_VEHICLE_RECORDING=--[[float]] function(--[[int]] recording,--[[string]] script)return native_invoker.unified_float(recording, script, 0x0E48D1C262390950, "is")end - -- Distance traveled in the vehicles current recording. - GET_POSITION_IN_RECORDING=--[[float]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_float(vehicle, 0x2DACD605FC681475, "i")end - -- Can be used with GET_TOTAL_DURATION_OF_VEHICLE_RECORDING{_ID} to compute a percentage. - GET_TIME_POSITION_IN_RECORDING=--[[float]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_float(vehicle, 0x5746F3A7AB7FE544, "i")end - -- p3 is some flag related to 'trailers' (invokes CVehicle::GetTrailer). - -- - -- See REQUEST_VEHICLE_RECORDING - START_PLAYBACK_RECORDED_VEHICLE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] recording,--[[string]] script,--[[BOOL (bool)]] p3)return native_invoker.unified_void(vehicle, recording, script, p3, 0x3F878F92B3A7A071, "iisb")end - -- flags requires further research, e.g., 0x4/0x8 are related to the AI driving task and 0x20 is internally set and interacts with dynamic entity components. - -- - -- time, often zero and capped at 500, is related to SET_PLAYBACK_TO_USE_AI_TRY_TO_REVERT_BACK_LATER - START_PLAYBACK_RECORDED_VEHICLE_WITH_FLAGS=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] recording,--[[string]] script,--[[int]] flags,--[[int]] time,--[[int]] drivingStyle)return native_invoker.unified_void(vehicle, recording, script, flags, time, drivingStyle, 0x7D80FD645D4DA346, "iisiii")end - -- Often called after START_PLAYBACK_RECORDED_VEHICLE and SKIP_TIME_IN_PLAYBACK_RECORDED_VEHICLE; similar in use to FORCE_ENTITY_AI_AND_ANIMATION_UPDATE. - FORCE_PLAYBACK_RECORDED_VEHICLE_UPDATE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0x1F2E4E06DEA8992B, "ib")end - STOP_PLAYBACK_RECORDED_VEHICLE=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x54833611C17ABDEA, "i")end - PAUSE_PLAYBACK_RECORDED_VEHICLE=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x632A689BF42301B1, "i")end - UNPAUSE_PLAYBACK_RECORDED_VEHICLE=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x8879EE09268305D5, "i")end - IS_PLAYBACK_GOING_ON_FOR_VEHICLE=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x1C8A4C2C19E68EEC, "i")end - IS_PLAYBACK_USING_AI_GOING_ON_FOR_VEHICLE=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xAEA8FD591FAD4106, "i")end - GET_CURRENT_PLAYBACK_FOR_VEHICLE=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x42BC05C27A946054, "i")end - SKIP_TO_END_AND_STOP_PLAYBACK_RECORDED_VEHICLE=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0xAB8E2EDA0C0A5883, "i")end - SET_PLAYBACK_SPEED=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] speed)return native_invoker.unified_void(vehicle, speed, 0x6683AB880E427778, "if")end - -- AI abides by the provided driving style (e.g., stopping at red lights or waiting behind traffic) while executing the specificed vehicle recording. - -- - -- FORCE_PLAYBACK_RECORDED_VEHICLE_UPDATE is a related native that deals with the AI physics for such recordings. - START_PLAYBACK_RECORDED_VEHICLE_USING_AI=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] recording,--[[string]] script,--[[float]] speed,--[[int]] drivingStyle)return native_invoker.unified_void(vehicle, recording, script, speed, drivingStyle, 0x29DE5FA52D00428C, "iisfi")end - -- SET_TIME_POSITION_IN_RECORDING can be emulated by: desired_time - GET_TIME_POSITION_IN_RECORDING(vehicle) - SKIP_TIME_IN_PLAYBACK_RECORDED_VEHICLE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] time)return native_invoker.unified_void(vehicle, time, 0x9438F7AD68771A20, "if")end - -- Identical to SET_PLAYBACK_TO_USE_AI_TRY_TO_REVERT_BACK_LATER with 0 as arguments for p1 and p3. - SET_PLAYBACK_TO_USE_AI=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] drivingStyle)return native_invoker.unified_void(vehicle, drivingStyle, 0xA549C3B37EA28131, "ii")end - -- Time is number of milliseconds before reverting, zero for indefinitely. - SET_PLAYBACK_TO_USE_AI_TRY_TO_REVERT_BACK_LATER=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] time,--[[int]] drivingStyle,--[[BOOL (bool)]] p3)return native_invoker.unified_void(vehicle, time, drivingStyle, p3, 0x6E63860BBB190730, "iiib")end - SET_ADDITIONAL_ROTATION_FOR_RECORDED_VEHICLE_PLAYBACK=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] x,--[[float]] y,--[[float]] z,--[[Any (int)]] p4)return native_invoker.unified_void(vehicle, x, y, z, p4, 0x5845066D8A1EA7F7, "ifffi")end - SET_POSITION_OFFSET_FOR_RECORDED_VEHICLE_PLAYBACK=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(vehicle, x, y, z, 0x796A877E459B99EA, "ifff")end - SET_GLOBAL_POSITION_OFFSET_FOR_RECORDED_VEHICLE_PLAYBACK=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(vehicle, x, y, z, 0xFAF2A78061FD9EF4, "ifff")end - -- A vehicle recording playback flag only used in jewelry_heist - SET_SHOULD_LERP_FROM_AI_TO_FULL_RECORDING=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0x063AE2B2CC273588, "ib")end - EXPLODE_VEHICLE_IN_CUTSCENE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0x786A4EB67B01BF0B, "ib")end - ADD_VEHICLE_STUCK_CHECK_WITH_WARP=--[[void]] function(--[[Any (int)]] p0,--[[float]] p1,--[[Any (int)]] p2,--[[BOOL (bool)]] p3,--[[BOOL (bool)]] p4,--[[BOOL (bool)]] p5,--[[Any (int)]] p6)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, 0x2FA9923062DD396C, "ifibbbi")end - -- Makes the vehicle stop spawning naturally in traffic. Here's an essential example: - -- - -- VEHICLE::SET_VEHICLE_MODEL_IS_SUPPRESSED(MISC::GET_HASH_KEY("taco"), true); - -- - -- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - SET_VEHICLE_MODEL_IS_SUPPRESSED=--[[void]] function(--[[Hash (int)]] model,--[[BOOL (bool)]] suppressed)return native_invoker.unified_void(model, suppressed, 0x0FC2D89AC25A5814, "ib")end - -- Gets a random vehicle in a sphere at the specified position, of the specified radius. - -- - -- x: The X-component of the position of the sphere. - -- y: The Y-component of the position of the sphere. - -- z: The Z-component of the position of the sphere. - -- radius: The radius of the sphere. Max is 9999.9004. - -- modelHash: The vehicle model to limit the selection to. Pass 0 for any model. - -- flags: The bitwise flags that modifies the behaviour of this function. - -- - -- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - GET_RANDOM_VEHICLE_IN_SPHERE=--[[Vehicle (int)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[Hash (int)]] modelHash,--[[int]] flags)return native_invoker.unified_int(x, y, z, radius, modelHash, flags, 0x386F6CE5BAF6091C, "ffffii")end - GET_RANDOM_VEHICLE_FRONT_BUMPER_IN_SPHERE=--[[Vehicle (int)]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[int]] p4,--[[int]] p5,--[[int]] p6)return native_invoker.unified_int(p0, p1, p2, p3, p4, p5, p6, 0xC5574E0AEB86BA68, "ffffiii")end - GET_RANDOM_VEHICLE_BACK_BUMPER_IN_SPHERE=--[[Vehicle (int)]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[int]] p4,--[[int]] p5,--[[int]] p6)return native_invoker.unified_int(p0, p1, p2, p3, p4, p5, p6, 0xB50807EABE20A8DC, "ffffiii")end - -- Example usage - -- VEHICLE::GET_CLOSEST_VEHICLE(x, y, z, radius, hash, unknown leave at 70) - -- - -- x, y, z: Position to get closest vehicle to. - -- radius: Max radius to get a vehicle. - -- modelHash: Limit to vehicles with this model. 0 for any. - -- flags: The bitwise flags altering the function's behaviour. - -- - -- Does not return police cars or helicopters. - -- - -- It seems to return police cars for me, does not seem to return helicopters, planes or boats for some reason - -- - -- Only returns non police cars and motorbikes with the flag set to 70 and modelHash to 0. ModelHash seems to always be 0 when not a modelHash in the scripts, as stated above. - -- - -- These flags were found in the b617d scripts: 0,2,4,6,7,23,127,260,2146,2175,12294,16384,16386,20503,32768,67590,67711,98309,100359. - -- Converted to binary, each bit probably represents a flag as explained regarding another native here: gtaforums.com/topic/822314-guide-driving-styles - -- - -- Conversion of found flags to binary: https://pastebin.com/kghNFkRi - -- - -- At exactly 16384 which is 0100000000000000 in binary and 4000 in hexadecimal only planes are returned. - -- - -- It's probably more convenient to use worldGetAllVehicles(int *arr, int arrSize) and check the shortest distance yourself and sort if you want by checking the vehicle type with for example VEHICLE::IS_THIS_MODEL_A_BOAT - -- - -- ------------------------------------------------------------------------- - -- - -- Conclusion: This native is not worth trying to use. Use something like this instead: https://pastebin.com/xiFdXa7h - -- - -- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - GET_CLOSEST_VEHICLE=--[[Vehicle (int)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[Hash (int)]] modelHash,--[[int]] flags)return native_invoker.unified_int(x, y, z, radius, modelHash, flags, 0xF73EB622C4F1689B, "ffffii")end - -- Corrected p1. it's basically the 'carriage/trailer number'. So if the train has 3 trailers you'd call the native once with a var or 3 times with 1, 2, 3. - GET_TRAIN_CARRIAGE=--[[Vehicle (int)]] function(--[[Vehicle (int)]] train,--[[int]] trailerNumber)return native_invoker.unified_int(train, trailerNumber, 0x08AAFD0814722BC3, "ii")end - IS_MISSION_TRAIN=--[[BOOL (bool)]] function(--[[Vehicle (int)]] train)return native_invoker.unified_bool(train, 0xAD464F2E18836BFC, "i")end - DELETE_MISSION_TRAIN=--[[void]] function(--[[Vehicle* (pointer)]] train)return native_invoker.unified_void(train, 0x5B76B14AE875C795, "p")end - -- p1 is always 0 - SET_MISSION_TRAIN_AS_NO_LONGER_NEEDED=--[[void]] function(--[[Vehicle* (pointer)]] train,--[[BOOL (bool)]] p1)return native_invoker.unified_void(train, p1, 0xBBE7648349B49BE8, "pb")end - SET_MISSION_TRAIN_COORDS=--[[void]] function(--[[Vehicle (int)]] train,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(train, x, y, z, 0x591CA673AA6AB736, "ifff")end - IS_THIS_MODEL_A_BOAT=--[[BOOL (bool)]] function(--[[Hash (int)]] model)return native_invoker.unified_bool(model, 0x45A9187928F4B9E3, "i")end - -- Checks if model is a boat, then checks for FLAG_IS_JETSKI. - IS_THIS_MODEL_A_JETSKI=--[[BOOL (bool)]] function(--[[Hash (int)]] model)return native_invoker.unified_bool(model, 0x9537097412CF75FE, "i")end - IS_THIS_MODEL_A_PLANE=--[[BOOL (bool)]] function(--[[Hash (int)]] model)return native_invoker.unified_bool(model, 0xA0948AB42D7BA0DE, "i")end - IS_THIS_MODEL_A_HELI=--[[BOOL (bool)]] function(--[[Hash (int)]] model)return native_invoker.unified_bool(model, 0xDCE4334788AF94EA, "i")end - -- To check if the model is an amphibious car, use IS_THIS_MODEL_AN_AMPHIBIOUS_CAR. - IS_THIS_MODEL_A_CAR=--[[BOOL (bool)]] function(--[[Hash (int)]] model)return native_invoker.unified_bool(model, 0x7F6DB52EEFC96DF8, "i")end - IS_THIS_MODEL_A_TRAIN=--[[BOOL (bool)]] function(--[[Hash (int)]] model)return native_invoker.unified_bool(model, 0xAB935175B22E822B, "i")end - IS_THIS_MODEL_A_BIKE=--[[BOOL (bool)]] function(--[[Hash (int)]] model)return native_invoker.unified_bool(model, 0xB50C0B0CEDC6CE84, "i")end - IS_THIS_MODEL_A_BICYCLE=--[[BOOL (bool)]] function(--[[Hash (int)]] model)return native_invoker.unified_bool(model, 0xBF94DD42F63BDED2, "i")end - IS_THIS_MODEL_A_QUADBIKE=--[[BOOL (bool)]] function(--[[Hash (int)]] model)return native_invoker.unified_bool(model, 0x39DAC362EE65FA28, "i")end - IS_THIS_MODEL_AN_AMPHIBIOUS_CAR=--[[BOOL (bool)]] function(--[[Hash (int)]] model)return native_invoker.unified_bool(model, 0x633F6F44A537EBB6, "i")end - IS_THIS_MODEL_AN_AMPHIBIOUS_QUADBIKE=--[[BOOL (bool)]] function(--[[Hash (int)]] model)return native_invoker.unified_bool(model, 0xA1A9FC1C76A6730D, "i")end - -- Equivalent of SET_HELI_BLADES_SPEED(vehicleHandle, 1.0f); - -- - -- this native works on planes to? - SET_HELI_BLADES_FULL_SPEED=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0xA178472EBB8AE60D, "i")end - -- Sets the speed of the helicopter blades in percentage of the full speed. - -- - -- vehicleHandle: The helicopter. - -- speed: The speed in percentage, 0.0f being 0% and 1.0f being 100%. - SET_HELI_BLADES_SPEED=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] speed)return native_invoker.unified_void(vehicle, speed, 0xFD280B4D7F3ABC4D, "if")end - FORCE_SUB_THROTTLE_FOR_TIME=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] p1,--[[float]] p2)return native_invoker.unified_void(vehicle, p1, p2, 0x99CAD8E7AFDB60FA, "iff")end - -- This has not yet been tested - it's just an assumption of what the types could be. - SET_VEHICLE_CAN_BE_TARGETTED=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] state)return native_invoker.unified_void(vehicle, state, 0x3750146A28097A82, "ib")end - SET_DONT_ALLOW_PLAYER_TO_ENTER_VEHICLE_IF_LOCKED_FOR_PLAYER=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0xDBC631F109350B8C, "ib")end - SET_VEHICLE_CAN_BE_VISIBLY_DAMAGED=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] state)return native_invoker.unified_void(vehicle, state, 0x4C7028F78FFD3681, "ib")end - SET_VEHICLE_HAS_UNBREAKABLE_LIGHTS=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x1AA8A837D2169D94, "ib")end - SET_VEHICLE_RESPECTS_LOCKS_WHEN_HAS_DRIVER=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0x2311DD7159F00582, "ib")end - SET_VEHICLE_CAN_EJECT_PASSENGERS_IF_LOCKED=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x065D03A9D6B2C6B5, "ii")end - -- Dirt level does not become greater than 15.0 - GET_VEHICLE_DIRT_LEVEL=--[[float]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_float(vehicle, 0x8F17BC8BA08DA62B, "i")end - -- You can't use values greater than 15.0 - -- Also, R* does (float)(rand() % 15) to get a random dirt level when generating a vehicle. - SET_VEHICLE_DIRT_LEVEL=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] dirtLevel)return native_invoker.unified_void(vehicle, dirtLevel, 0x79D3B596FE44EE8B, "if")end - -- Appears to return true if the vehicle has any damage, including cosmetically. - GET_DOES_VEHICLE_HAVE_DAMAGE_DECALS=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xBCDC5017D3CE1E9E, "i")end - -- doorId: see SET_VEHICLE_DOOR_SHUT - IS_VEHICLE_DOOR_FULLY_OPEN=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[int]] doorId)return native_invoker.unified_bool(vehicle, doorId, 0x3E933CFF7B111C22, "ii")end - -- Starts or stops the engine on the specified vehicle. - -- - -- vehicle: The vehicle to start or stop the engine on. - -- value: true to turn the vehicle on; false to turn it off. - -- instantly: if true, the vehicle will be set to the state immediately; otherwise, the current driver will physically turn on or off the engine. - -- disableAutoStart: If true, the system will prevent the engine from starting when the player got into it. - -- - -- from what I've tested when I do this to a helicopter the propellers turn off after the engine has started. so is there any way to keep the heli propellers on? - SET_VEHICLE_ENGINE_ON=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] value,--[[BOOL (bool)]] instantly,--[[BOOL (bool)]] disableAutoStart)return native_invoker.unified_void(vehicle, value, instantly, disableAutoStart, 0x2497C4717C8B881E, "ibbb")end - SET_VEHICLE_UNDRIVEABLE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x8ABA6AF54B942B95, "ib")end - SET_VEHICLE_PROVIDES_COVER=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x5AFEEDD9BB2899D7, "ib")end - -- doorId: see SET_VEHICLE_DOOR_SHUT - SET_VEHICLE_DOOR_CONTROL=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] doorId,--[[int]] speed,--[[float]] angle)return native_invoker.unified_void(vehicle, doorId, speed, angle, 0xF2BFA0430F0A0FCB, "iiif")end - -- doorId: see SET_VEHICLE_DOOR_SHUT - SET_VEHICLE_DOOR_LATCHED=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] doorId,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3,--[[BOOL (bool)]] p4)return native_invoker.unified_void(vehicle, doorId, p2, p3, p4, 0xA5A9653A8D2CAF48, "iibbb")end - -- doorId: see SET_VEHICLE_DOOR_SHUT - GET_VEHICLE_DOOR_ANGLE_RATIO=--[[float]] function(--[[Vehicle (int)]] vehicle,--[[int]] doorId)return native_invoker.unified_float(vehicle, doorId, 0xFE3F9C29F7B32BD5, "ii")end - -- doorId: see SET_VEHICLE_DOOR_SHUT - GET_PED_USING_VEHICLE_DOOR=--[[Ped (int)]] function(--[[Vehicle (int)]] vehicle,--[[int]] doord)return native_invoker.unified_int(vehicle, doord, 0x218297BF0CFD853B, "ii")end - -- enum eDoorId - -- { - -- VEH_EXT_DOOR_INVALID_ID = -1, - -- VEH_EXT_DOOR_DSIDE_F, - -- VEH_EXT_DOOR_DSIDE_R, - -- VEH_EXT_DOOR_PSIDE_F, - -- VEH_EXT_DOOR_PSIDE_R, - -- VEH_EXT_BONNET, - -- VEH_EXT_BOOT - -- }; - SET_VEHICLE_DOOR_SHUT=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] doorId,--[[BOOL (bool)]] closeInstantly)return native_invoker.unified_void(vehicle, doorId, closeInstantly, 0x93D9BD300D7789E5, "iib")end - -- doorId: see SET_VEHICLE_DOOR_SHUT - SET_VEHICLE_DOOR_BROKEN=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] doorId,--[[BOOL (bool)]] deleteDoor)return native_invoker.unified_void(vehicle, doorId, deleteDoor, 0xD4D4F6A4AB575A33, "iib")end - SET_VEHICLE_CAN_BREAK=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x59BF8C3D52C92F66, "ib")end - DOES_VEHICLE_HAVE_ROOF=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x8AC862B0B32C5B80, "i")end - SET_VEHICLE_REMOVE_AGGRESSIVE_CARJACK_MISSION=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xC4B3347BD68BD609, "i")end - SET_VEHICLE_AVOID_PLAYER_VEHICLE_RIOT_VAN_MISSION=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xD3301660A57C9272, "i")end - SET_CARJACK_MISSION_REMOVAL_PARAMETERS=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xB9562064627FF9DB, "ii")end - -- Returns true if MF_IS_BIG (strModelFlags 0x8) handling model flag is set. - IS_BIG_VEHICLE=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x9F243D3919F442FE, "i")end - -- Returns the total amount of color combinations found in the vehicle's carvariations.meta entry. - GET_NUMBER_OF_VEHICLE_COLOURS=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x3B963160CD65D41E, "i")end - -- Sets the selected vehicle's colors to the specified index of the color combination found in the vehicle's carvariations.meta entry. - SET_VEHICLE_COLOUR_COMBINATION=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] colorCombination)return native_invoker.unified_void(vehicle, colorCombination, 0x33E8CD3322E2FE31, "ii")end - -- Returns the index of the color combination found in the vehicle's carvariations.meta entry. - GET_VEHICLE_COLOUR_COMBINATION=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x6A842D197F845D56, "i")end - -- `color`: is the paint index for the vehicle. - -- Paint index goes from 0 to 12. - -- Be aware that it only works on xenon lights. Example: https://i.imgur.com/yV3cpG9.png - -- Full list of all vehicle xenon lights by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicleColors.json - SET_VEHICLE_XENON_LIGHT_COLOR_INDEX=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] colorIndex)return native_invoker.unified_void(vehicle, colorIndex, 0xE41033B25D003A07, "ii")end - -- Returns the headlight color index from the vehicle. Value between 0, 12. - -- Use SET_VEHICLE_XENON_LIGHT_COLOR_INDEX to set the headlights color for the vehicle. - -- Must enable xenon headlights before it'll take affect. - -- - -- Returns an int, value between 0-12 or 255 if no color is set. - GET_VEHICLE_XENON_LIGHT_COLOR_INDEX=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x3DFF319A831E0CDB, "i")end - -- Setting this to false, makes the specified vehicle to where if you press Y your character doesn't even attempt the animation to enter the vehicle. Hence it's not considered aka ignored. - SET_VEHICLE_IS_CONSIDERED_BY_PLAYER=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x31B927BBC44156CD, "ib")end - SET_VEHICLE_WILL_FORCE_OTHER_VEHICLES_TO_STOP=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xBE5C1255A1830FF5, "ib")end - SET_VEHICLE_ACT_AS_IF_HAS_SIREN_ON=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0x9BECD4B9FEF3F8A6, "ib")end - SET_VEHICLE_USE_MORE_RESTRICTIVE_SPAWN_CHECKS=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0x88BC673CA9E0AE99, "ib")end - SET_VEHICLE_MAY_BE_USED_BY_GOTO_POINT_ANY_MEANS=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0xE851E480B814D4BA, "ib")end - -- Not present in the retail version! It's just a nullsub. - -- - -- p0 always true (except in one case) - -- successIndicator: 0 if success, -1 if failed - GET_RANDOM_VEHICLE_MODEL_IN_MEMORY=--[[void]] function(--[[BOOL (bool)]] p0,--[[Hash* (pointer)]] modelHash,--[[int* (pointer)]] successIndicator)return native_invoker.unified_void(p0, modelHash, successIndicator, 0x055BF0AC0C34F4FD, "bpp")end - -- enum VehicleLockStatus = { - -- None = 0, - -- Unlocked = 1, - -- Locked = 2, - -- LockedForPlayer = 3, - -- StickPlayerInside = 4, -- Doesn't allow players to exit the vehicle with the exit vehicle key. - -- CanBeBrokenInto = 7, -- Can be broken into the car. If the glass is broken, the value will be set to 1 - -- CanBeBrokenIntoPersist = 8, -- Can be broken into persist - -- CannotBeTriedToEnter = 10, -- Cannot be tried to enter (Nothing happens when you press the vehicle enter key). - -- } - GET_VEHICLE_DOOR_LOCK_STATUS=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x25BC98A59C2EA962, "i")end - -- Returns vehicle door lock state previously set with SET_VEHICLE_INDIVIDUAL_DOORS_LOCKED - GET_VEHICLE_INDIVIDUAL_DOOR_LOCK_STATUS=--[[int]] function(--[[Vehicle (int)]] vehicle,--[[int]] doorId)return native_invoker.unified_int(vehicle, doorId, 0xCA4AC3EAAE46EC7B, "ii")end - -- doorID starts at 0, not seeming to skip any numbers. Four door vehicles intuitively range from 0 to 3. - IS_VEHICLE_DOOR_DAMAGED=--[[BOOL (bool)]] function(--[[Vehicle (int)]] veh,--[[int]] doorID)return native_invoker.unified_bool(veh, doorID, 0xB8E181E559464527, "ii")end - -- doorId: see SET_VEHICLE_DOOR_SHUT - SET_DOOR_ALLOWED_TO_BE_BROKEN_OFF=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] doorId,--[[BOOL (bool)]] isBreakable)return native_invoker.unified_void(vehicle, doorId, isBreakable, 0x2FA133A4A9D37ED8, "iib")end - IS_VEHICLE_BUMPER_BOUNCING=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] frontBumper)return native_invoker.unified_bool(vehicle, frontBumper, 0x27B926779DEB502D, "ib")end - IS_VEHICLE_BUMPER_BROKEN_OFF=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] frontBumper)return native_invoker.unified_bool(vehicle, frontBumper, 0x468056A6BB6F3846, "ib")end - -- Usage: - -- - -- public bool isCopInRange(Vector3 Location, float Range) - -- { - -- return Function.Call(Hash.IS_COP_PED_IN_AREA_3D, Location.X - Range, Location.Y - Range, Location.Z - Range, Location.X + Range, Location.Y + Range, Location.Z + Range); - -- } - IS_COP_VEHICLE_IN_AREA_3D=--[[BOOL (bool)]] function(--[[float]] x1,--[[float]] x2,--[[float]] y1,--[[float]] y2,--[[float]] z1,--[[float]] z2)return native_invoker.unified_bool(x1, x2, y1, y2, z1, z2, 0x7EEF65D5F153E26A, "ffffff")end - -- Public Function isVehicleOnAllWheels(vh As Vehicle) As Boolean - -- Return Native.Function.Call(Of Boolean)(Hash.IS_VEHICLE_ON_ALL_WHEELS, vh) - -- End Function - -- - IS_VEHICLE_ON_ALL_WHEELS=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xB104CD1BABF302E2, "i")end - -- Returns `nMonetaryValue` from handling.meta for specific model. - GET_VEHICLE_MODEL_VALUE=--[[int]] function(--[[Hash (int)]] vehicleModel)return native_invoker.unified_int(vehicleModel, 0x5873C14A52D74236, "i")end - -- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - GET_VEHICLE_LAYOUT_HASH=--[[Hash (int)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x28D37D4F71AC5C58, "i")end - GET_IN_VEHICLE_CLIPSET_HASH_FOR_SEAT=--[[Hash (int)]] function(--[[Vehicle (int)]] vehicle,--[[int]] p1)return native_invoker.unified_int(vehicle, p1, 0xA01BC64DD4BFBBAC, "ii")end - -- Makes the train all jumbled up and derailed as it moves on the tracks (though that wont stop it from its normal operations) - SET_RENDER_TRAIN_AS_DERAILED=--[[void]] function(--[[Vehicle (int)]] train,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(train, toggle, 0x317B11A312DF5534, "ib")end - -- They use the same color indexs as SET_VEHICLE_COLOURS. - SET_VEHICLE_EXTRA_COLOURS=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] pearlescentColor,--[[int]] wheelColor)return native_invoker.unified_void(vehicle, pearlescentColor, wheelColor, 0x2036F561ADD12E33, "iii")end - GET_VEHICLE_EXTRA_COLOURS=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int* (pointer)]] pearlescentColor,--[[int* (pointer)]] wheelColor)return native_invoker.unified_void(vehicle, pearlescentColor, wheelColor, 0x3BC4245933A166F7, "ipp")end - SET_VEHICLE_EXTRA_COLOUR_5=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] color)return native_invoker.unified_void(vehicle, color, 0xF40DD601A65F7F19, "ii")end - GET_VEHICLE_EXTRA_COLOUR_5=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int* (pointer)]] color)return native_invoker.unified_void(vehicle, color, 0x7D1464D472D32136, "ip")end - SET_VEHICLE_EXTRA_COLOUR_6=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] color)return native_invoker.unified_void(vehicle, color, 0x6089CDF6A57F326C, "ii")end - GET_VEHICLE_EXTRA_COLOUR_6=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int* (pointer)]] color)return native_invoker.unified_void(vehicle, color, 0xB7635E80A5C31BFF, "ip")end - STOP_ALL_GARAGE_ACTIVITY=--[[void]] function()return native_invoker.unified_void(0x0F87E938BDF29D66, "")end - -- This fixes a vehicle. - -- If the vehicle's engine's broken then you cannot fix it with this native. - SET_VEHICLE_FIXED=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x115722B1B9C14C1C, "i")end - -- This fixes the deformation of a vehicle but the vehicle health doesn't improve - SET_VEHICLE_DEFORMATION_FIXED=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x953DA1E1B12C0491, "i")end - SET_VEHICLE_CAN_ENGINE_MISSFIRE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x206BC5DC9D1AC70A, "ib")end - SET_VEHICLE_CAN_LEAK_OIL=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x51BB2D88D31A914B, "ib")end - SET_VEHICLE_CAN_LEAK_PETROL=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x192547247864DFDD, "ib")end - SET_DISABLE_VEHICLE_PETROL_TANK_FIRES=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x465BF26AB9684352, "ib")end - SET_DISABLE_VEHICLE_PETROL_TANK_DAMAGE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x37C8252A7C92D017, "ib")end - SET_DISABLE_VEHICLE_ENGINE_FIRES=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x91A0BD635321F145, "ib")end - SET_VEHICLE_LIMIT_SPEED_WHEN_PLAYER_INACTIVE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xC50CE861B55EAB8B, "ib")end - -- sfink: sets bit in vehicle's structure, used by maintransition, fm_mission_controller, mission_race and a couple of other scripts. see dissassembly: - -- CVehicle *__fastcall sub_140CDAA10(signed int a1, char a2) - -- { - -- CVehicle *result; // rax@1 - -- - -- result = EntityAsCVehicle(a1); - -- if ( result ) - -- { - -- result->field_886 &= 0xEFu; - -- result->field_886 |= 16 * (a2 & 1); - -- } - -- return result; - -- } - SET_VEHICLE_STOP_INSTANTLY_WHEN_PLAYER_INACTIVE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x6EBFB22D646FFC18, "ib")end - SET_DISABLE_PRETEND_OCCUPANTS=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x25367DE49D64CF16, "ib")end - REMOVE_VEHICLES_FROM_GENERATORS_IN_AREA=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[Any (int)]] p6)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, p6, 0x46A1E1A299EC4BBA, "ffffffi")end - -- Locks the vehicle's steering to the desired angle, explained below. - -- - -- Requires to be called onTick. Steering is unlocked the moment the function stops being called on the vehicle. - -- - -- Steer bias: - -- -1.0 = full right - -- 0.0 = centered steering - -- 1.0 = full left - SET_VEHICLE_STEER_BIAS=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] value)return native_invoker.unified_void(vehicle, value, 0x42A8EC77D5150CBE, "if")end - IS_VEHICLE_EXTRA_TURNED_ON=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[int]] extraId)return native_invoker.unified_bool(vehicle, extraId, 0xD2E6822DBFD6C8BD, "ii")end - -- Available extraIds are 1-14, however none of the vehicles have extras above 12. - SET_VEHICLE_EXTRA=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] extraId,--[[BOOL (bool)]] disable)return native_invoker.unified_void(vehicle, extraId, disable, 0x7EE3A3C5E4A40CC9, "iib")end - -- Checks via CVehicleModelInfo - DOES_EXTRA_EXIST=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[int]] extraId)return native_invoker.unified_bool(vehicle, extraId, 0x1262D55792428154, "ii")end - -- Returns true if specified extra part is broken off. It only works for extras that can break off during collisions, non-breakable extras always return false. Also returns true if the breakable extra is toggled off through script. - IS_EXTRA_BROKEN_OFF=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[int]] extraId)return native_invoker.unified_bool(vehicle, extraId, 0x534E36D4DB9ECC5D, "ii")end - SET_CONVERTIBLE_ROOF=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0xF39C4F538B5124C2, "ib")end - LOWER_CONVERTIBLE_ROOF=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] instantlyLower)return native_invoker.unified_void(vehicle, instantlyLower, 0xDED51F703D0FA83D, "ib")end - RAISE_CONVERTIBLE_ROOF=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] instantlyRaise)return native_invoker.unified_void(vehicle, instantlyRaise, 0x8F5FB35D7E88FC70, "ib")end - -- 0 -> up - -- 1 -> lowering down - -- 2 -> down - -- 3 -> raising up - GET_CONVERTIBLE_ROOF_STATE=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0xF8C397922FC03F41, "i")end - -- Returns true if the vehicle has a convertible roof. - -- - -- p1 is false almost always. However, in launcher_carwash/carwash1/carwash2 scripts, p1 is true and is accompanied by DOES_VEHICLE_HAVE_ROOF. If p1 is true, it seems that every single vehicle will return true irrespective of being a convertible. - IS_VEHICLE_A_CONVERTIBLE=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_bool(vehicle, p1, 0x52F357A30698BCCE, "ib")end - -- Transforms the `stormberg`/`toreador` to its "submarine" variant. If the vehicle is already in that state then the vehicle transformation audio will still play, but the vehicle won't change at all. - TRANSFORM_TO_SUBMARINE=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] noAnimation)return native_invoker.unified_bool(vehicle, noAnimation, 0xBE4C854FFDB6EEBE, "ib")end - -- Transforms the `stormberg`/`toreador` to its "road vehicle" variant. If the vehicle is already in that state then the vehicle transformation audio will still play, but the vehicle won't change at all. - TRANSFORM_TO_CAR=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] noAnimation)return native_invoker.unified_void(vehicle, noAnimation, 0x2A69FFD1B42BFF9E, "ib")end - IS_VEHICLE_IN_SUBMARINE_MODE=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xA77DC70BD689A1E5, "i")end - IS_VEHICLE_STOPPED_AT_TRAFFIC_LIGHTS=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x2959F696AE390A99, "i")end - -- Apply damage to vehicle at a location. Location is relative to vehicle model (not world). - -- - -- Radius of effect damage applied in a sphere at impact location - -- When `focusOnModel` set to `true`, the damage sphere will travel towards the vehicle from the given point, thus guaranteeing an impact - SET_VEHICLE_DAMAGE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] xOffset,--[[float]] yOffset,--[[float]] zOffset,--[[float]] damage,--[[float]] radius,--[[BOOL (bool)]] focusOnModel)return native_invoker.unified_void(vehicle, xOffset, yOffset, zOffset, damage, radius, focusOnModel, 0xA1DD317EA8FD4F29, "ifffffb")end - SET_VEHICLE_OCCUPANTS_TAKE_EXPLOSIVE_DAMAGE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x35BB21DE06784373, "ib")end - -- Returns 1000.0 if the function is unable to get the address of the specified vehicle or if it's not a vehicle. - -- - -- Minimum: -4000 - -- Maximum: 1000 - -- - -- -4000: Engine is destroyed - -- 0 and below: Engine catches fire and health rapidly declines - -- 300: Engine is smoking and losing functionality - -- 1000: Engine is perfect - GET_VEHICLE_ENGINE_HEALTH=--[[float]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_float(vehicle, 0xC45D23BAF168AAB8, "i")end - -- 1000 is max health - -- Begins leaking gas at around 650 health - -- Minimum: -4000 - -- Maximum: 1000 - -- - -- -4000: Engine is destroyed - -- 0 and below: Engine catches fire and health rapidly declines - -- 300: Engine is smoking and losing functionality - -- 1000: Engine is perfect - SET_VEHICLE_ENGINE_HEALTH=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] health)return native_invoker.unified_void(vehicle, health, 0x45F6D8EEF34ABEF1, "if")end - -- Works just like SET_VEHICLE_ENGINE_HEALTH, but only for planes. - SET_PLANE_ENGINE_HEALTH=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] health)return native_invoker.unified_void(vehicle, health, 0x2A86A0475B6A1434, "if")end - -- 1000 is max health - -- Begins leaking gas at around 650 health - -- -999.90002441406 appears to be minimum health, although nothing special occurs - GET_VEHICLE_PETROL_TANK_HEALTH=--[[float]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_float(vehicle, 0x7D5DABE888D2D074, "i")end - -- 1000 is max health - -- Begins leaking gas at around 650 health - -- -999.90002441406 appears to be minimum health, although nothing special occurs - SET_VEHICLE_PETROL_TANK_HEALTH=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] health)return native_invoker.unified_void(vehicle, health, 0x70DB57649FA8D0D8, "if")end - -- p1 can be anywhere from 0 to 3 in the scripts. - -- p2 being how long in milliseconds the vehicle has been stuck - IS_VEHICLE_STUCK_TIMER_UP=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[int]] p1,--[[int]] ms)return native_invoker.unified_bool(vehicle, p1, ms, 0x679BE1DAF71DA874, "iii")end - -- The inner function has a switch on the second parameter. It's the stuck timer index. - -- - -- Here's some pseudo code I wrote for the inner function: - -- void __fastcall NATIVE_RESET_VEHICLE_STUCK_TIMER_INNER(CUnknown* unknownClassInVehicle, int timerIndex) - -- { - -- switch (timerIndex) - -- { - -- case 0: - -- unknownClassInVehicle->FirstStuckTimer = (WORD)0u; - -- case 1: - -- unknownClassInVehicle->SecondStuckTimer = (WORD)0u; - -- case 2: - -- unknownClassInVehicle->ThirdStuckTimer = (WORD)0u; - -- case 3: - -- unknownClassInVehicle->FourthStuckTimer = (WORD)0u; - -- case 4: - -- unknownClassInVehicle->FirstStuckTimer = (WORD)0u; - -- unknownClassInVehicle->SecondStuckTimer = (WORD)0u; - -- unknownClassInVehicle->ThirdStuckTimer = (WORD)0u; - -- unknownClassInVehicle->FourthStuckTimer = (WORD)0u; - -- break; - -- }; - -- } - RESET_VEHICLE_STUCK_TIMER=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] nullAttributes)return native_invoker.unified_void(vehicle, nullAttributes, 0xD7591B0065AFAA7A, "ii")end - -- p1 is always 0 in the scripts. - -- - -- p1 = check if vehicle is on fire - IS_VEHICLE_DRIVEABLE=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] isOnFireCheck)return native_invoker.unified_bool(vehicle, isOnFireCheck, 0x4C241E39B23DF959, "ib")end - SET_VEHICLE_HAS_BEEN_OWNED_BY_PLAYER=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] owned)return native_invoker.unified_void(vehicle, owned, 0x2B5F9D2AF1F1722D, "ib")end - SET_VEHICLE_NEEDS_TO_BE_HOTWIRED=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xFBA550EA44404EE6, "ib")end - SET_VEHICLE_BLIP_THROTTLE_RANDOMLY=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0x9F3F689B814F2599, "ib")end - SET_POLICE_FOCUS_WILL_TRACK_VEHICLE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x4E74E62E0A97E901, "ib")end - -- Sounds the horn for the specified vehicle. - -- - -- vehicle: The vehicle to activate the horn for. - -- mode: The hash of "NORMAL" or "HELDDOWN". Can be 0. - -- duration: The duration to sound the horn, in milliseconds. - -- - -- Note: If a player is in the vehicle, it will only sound briefly. - START_VEHICLE_HORN=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] duration,--[[Hash (int)]] mode,--[[BOOL (bool)]] forever)return native_invoker.unified_void(vehicle, duration, mode, forever, 0x9C8C6504B5B63D2C, "iiib")end - -- If set to TRUE, it seems to suppress door noises and doesn't allow the horn to be continuous. - SET_VEHICLE_IN_CAR_MOD_SHOP=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x9D44FCCE98450843, "ib")end - -- if true, axles won't bend. - SET_VEHICLE_HAS_STRONG_AXLES=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x92F0CF722BC4202F, "ib")end - -- Returns model name of vehicle in all caps. Needs to be displayed through localizing text natives to get proper display name. - -- ----------------------------------------------------------------------------------------------------------------------------------------- - -- While often the case, this does not simply return the model name of the vehicle (which could be hashed to return the model hash). Variations of the same vehicle may also use the same display name. - -- ----------------------------------------------------------------------------------------------------------------------------------------- - -- - -- Returns "CARNOTFOUND" if the hash doesn't match a vehicle hash. - -- - -- Using HUD::GET_FILENAME_FOR_AUDIO_CONVERSATION, you can get the localized name. - -- - -- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - GET_DISPLAY_NAME_FROM_VEHICLE_MODEL=--[[string]] function(--[[Hash (int)]] modelHash)return native_invoker.unified_string(modelHash, 0xB215AAC32D25D019, "i")end - -- Will return a vehicle's manufacturer display label. - -- Returns "CARNOTFOUND" if the hash doesn't match a vehicle hash. - -- - -- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - GET_MAKE_NAME_FROM_VEHICLE_MODEL=--[[string]] function(--[[Hash (int)]] modelHash)return native_invoker.unified_string(modelHash, 0xF7AF4F159FF99F97, "i")end - -- The only example I can find of this function in the scripts, is this: - -- - -- struct _s = VEHICLE::GET_VEHICLE_DEFORMATION_AT_POS(rPtr((A_0) + 4), 1.21f, 6.15f, 0.3f); - -- - -- ----------------------------------------------------------------------------------------------------------------------------------------- - -- PC scripts: - -- - -- v_5/*{3}*/ = VEHICLE::GET_VEHICLE_DEFORMATION_AT_POS(a_0._f1, 1.21, 6.15, 0.3); - GET_VEHICLE_DEFORMATION_AT_POS=--[[Vector3 (vector3)]] function(--[[Vehicle (int)]] vehicle,--[[float]] offsetX,--[[float]] offsetY,--[[float]] offsetZ)return native_invoker.unified_vector3(vehicle, offsetX, offsetY, offsetZ, 0x4EC6CFBC7B2E9536, "ifff")end - SET_VEHICLE_LIVERY=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] livery)return native_invoker.unified_void(vehicle, livery, 0x60BF608F1B8CD1B6, "ii")end - -- -1 = no livery - GET_VEHICLE_LIVERY=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x2BB9230590DA5E8A, "i")end - -- Returns -1 if the vehicle has no livery - GET_VEHICLE_LIVERY_COUNT=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x87B63E25A529D526, "i")end - -- Used to set the secondary livery (the roof on Tornado Custom being one such example.) - -- - -- Livery value is dependent on the amount of liveries present in the vehicle's texture dictionary, for Tornado Custom this would be 0-6. - SET_VEHICLE_LIVERY2=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] livery)return native_invoker.unified_void(vehicle, livery, 0xA6D3A8750DC73270, "ii")end - -- Returns index of the current vehicle's secondary livery. A getter for SET_VEHICLE_LIVERY2. - GET_VEHICLE_LIVERY2=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x60190048C0764A26, "i")end - -- Returns a number of available secondary liveries, or -1 if vehicle has no secondary liveries available. - GET_VEHICLE_LIVERY2_COUNT=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x5ECB40269053C0D4, "i")end - -- This will return false if the window is broken, or rolled down. - -- Window indexes: - -- 0 = Front Right Window - -- 1 = Front Left Window - -- 2 = Back Right Window - -- 3 = Back Left Window - -- - -- - -- Those numbers go on for vehicles that have more than 4 doors with windows. - IS_VEHICLE_WINDOW_INTACT=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[int]] windowIndex)return native_invoker.unified_bool(vehicle, windowIndex, 0x46E571A0E20D01F1, "ii")end - -- Appears to return false if any window is broken. - ARE_ALL_VEHICLE_WINDOWS_INTACT=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x11D862A3E977A9EF, "i")end - -- Returns false if every seat is occupied. - ARE_ANY_VEHICLE_SEATS_FREE=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x2D34FC3BC4ADB780, "i")end - RESET_VEHICLE_WHEELS=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x21D2E5662C1F6FED, "ib")end - IS_HELI_PART_BROKEN=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_bool(vehicle, p1, p2, p3, 0xBC74B4BE25EB6C8A, "ibbb")end - -- Max 1000. - -- At 0 the main rotor will stall. - GET_HELI_MAIN_ROTOR_HEALTH=--[[float]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_float(vehicle, 0xE4CB7541F413D2C5, "i")end - -- Max 1000. - -- At 0 the tail rotor will stall. - GET_HELI_TAIL_ROTOR_HEALTH=--[[float]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_float(vehicle, 0xAE8CE82A4219AC8C, "i")end - -- Max 1000. - -- At -100 both helicopter rotors will stall. - GET_HELI_TAIL_BOOM_HEALTH=--[[float]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_float(vehicle, 0xAC51915D27E4A5F7, "i")end - SET_HELI_MAIN_ROTOR_HEALTH=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] health)return native_invoker.unified_void(vehicle, health, 0x4056EA1105F5ABD7, "if")end - SET_HELI_TAIL_ROTOR_HEALTH=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] health)return native_invoker.unified_void(vehicle, health, 0xFE205F38AAA58E5B, "if")end - SET_HELI_TAIL_BOOM_CAN_BREAK_OFF=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_bool(vehicle, toggle, 0x3EC8BF18AA453FE9, "ib")end - -- NOTE: Debugging functions are not present in the retail version of the game. - SET_VEHICLE_NAME_DEBUG=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[string]] name)return native_invoker.unified_void(vehicle, name, 0xBFDF984E2C22B94F, "is")end - -- Sets a vehicle to be strongly resistant to explosions. p0 is the vehicle; set p1 to false to toggle the effect on/off. - SET_VEHICLE_EXPLODES_ON_HIGH_EXPLOSION_DAMAGE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x71B0892EC081D60A, "ib")end - SET_VEHICLE_EXPLODES_ON_EXPLOSION_DAMAGE_AT_ZERO_BODY_HEALTH=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xD565F438137F0E10, "ib")end - SET_ALLOW_VEHICLE_EXPLODES_ON_CONTACT=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x3441CAD2F2231923, "ib")end - SET_VEHICLE_DISABLE_TOWING=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x2B6747FAA9DB9D6B, "ib")end - GET_VEHICLE_HAS_LANDING_GEAR=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xE43701C36CAFF1A4, "i")end - -- Works for vehicles with a retractable landing gear - -- - -- Landing gear states: - -- - -- 0: Deployed - -- 1: Closing - -- 2: Opening - -- 3: Retracted - CONTROL_LANDING_GEAR=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] state)return native_invoker.unified_void(vehicle, state, 0xCFC8BE9A5E1FE575, "ii")end - -- Landing gear states: - -- - -- 0: Deployed - -- 1: Closing (Retracting) - -- 2: (Landing gear state 2 is never used.) - -- 3: Opening (Deploying) - -- 4: Retracted - -- - -- Returns the current state of the vehicles landing gear. - GET_LANDING_GEAR_STATE=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x9B0F3DCA3DB0F4CD, "i")end - IS_ANY_VEHICLE_NEAR_POINT=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius)return native_invoker.unified_bool(x, y, z, radius, 0x61E1DD6125A3EEE6, "ffff")end - REQUEST_VEHICLE_HIGH_DETAIL_MODEL=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0xA6E9FDCB2C76785E, "i")end - _GET_VEHICLE_MODEL_NUM_DRIVE_GEARS=--[[int]] function(--[[Hash (int)]] vehicleModel)return native_invoker.unified_int(vehicleModel, 0x61F02E4E9A7A61EA, "i")end - _GET_VEHICLE_MAX_DRIVE_GEAR_COUNT=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x24910C3D66BA770D, "i")end - _GET_VEHICLE_CURRENT_DRIVE_GEAR=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x56185A25D45A0DCD, "i")end - _GET_VEHICLE_CURRENT_REV_RATIO=--[[float]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_float(vehicle, 0xF9DDA40BC293A61E, "i")end - REMOVE_VEHICLE_HIGH_DETAIL_MODEL=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x00689CDE5F7C6787, "i")end - IS_VEHICLE_HIGH_DETAIL=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x1F25887F3C104278, "i")end - -- REQUEST_VEHICLE_ASSET(GET_HASH_KEY(cargobob3), 3); - -- - -- vehicle found that have asset's: - -- cargobob3 - -- submersible - -- blazer - REQUEST_VEHICLE_ASSET=--[[void]] function(--[[Hash (int)]] vehicleHash,--[[int]] vehicleAsset)return native_invoker.unified_void(vehicleHash, vehicleAsset, 0x81A15811460FAB3A, "ii")end - HAS_VEHICLE_ASSET_LOADED=--[[BOOL (bool)]] function(--[[int]] vehicleAsset)return native_invoker.unified_bool(vehicleAsset, 0x1BBE0523B8DB9A21, "i")end - REMOVE_VEHICLE_ASSET=--[[void]] function(--[[int]] vehicleAsset)return native_invoker.unified_void(vehicleAsset, 0xACE699C71AB9DEB5, "i")end - -- Sets how much the crane on the tow truck is raised, where 0.0 is fully lowered and 1.0 is fully raised. - SET_VEHICLE_TOW_TRUCK_ARM_POSITION=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] position)return native_invoker.unified_void(vehicle, position, 0xFE54B92A344583CA, "if")end - _SET_ATTACHED_VEHICLE_TO_TOW_TRUCK_ARM=--[[void]] function(--[[Vehicle (int)]] towTruck,--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(towTruck, vehicle, 0x48BD57D0DD17786A, "ii")end - -- HookOffset defines where the hook is attached. leave at 0 for default attachment. - ATTACH_VEHICLE_TO_TOW_TRUCK=--[[void]] function(--[[Vehicle (int)]] towTruck,--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] rear,--[[float]] hookOffsetX,--[[float]] hookOffsetY,--[[float]] hookOffsetZ)return native_invoker.unified_void(towTruck, vehicle, rear, hookOffsetX, hookOffsetY, hookOffsetZ, 0x29A16F8D621C4508, "iibfff")end - -- First two parameters swapped. Scripts verify that towTruck is the first parameter, not the second. - DETACH_VEHICLE_FROM_TOW_TRUCK=--[[void]] function(--[[Vehicle (int)]] towTruck,--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(towTruck, vehicle, 0xC2DB6B6708350ED8, "ii")end - DETACH_VEHICLE_FROM_ANY_TOW_TRUCK=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xD0E9CE05A1E68CD8, "i")end - -- Scripts verify that towTruck is the first parameter, not the second. - IS_VEHICLE_ATTACHED_TO_TOW_TRUCK=--[[BOOL (bool)]] function(--[[Vehicle (int)]] towTruck,--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(towTruck, vehicle, 0x146DF9EC4C4B9FD4, "ii")end - GET_ENTITY_ATTACHED_TO_TOW_TRUCK=--[[Entity (int)]] function(--[[Vehicle (int)]] towTruck)return native_invoker.unified_int(towTruck, 0xEFEA18DCF10F8F75, "i")end - SET_VEHICLE_AUTOMATICALLY_ATTACHES=--[[Entity (int)]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1,--[[Any (int)]] p2)return native_invoker.unified_int(vehicle, p1, p2, 0x8BA6F76BC53A1493, "ibi")end - -- Sets the arm position of a bulldozer. Position must be a value between 0.0 and 1.0. Ignored when `p2` is set to false, instead incrementing arm position by 0.1 (or 10%). - SET_VEHICLE_BULLDOZER_ARM_POSITION=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] position,--[[BOOL (bool)]] p2)return native_invoker.unified_void(vehicle, position, p2, 0xF8EBCCC96ADB9FB7, "ifb")end - SET_VEHICLE_TANK_TURRET_POSITION=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] position,--[[BOOL (bool)]] p2)return native_invoker.unified_void(vehicle, position, p2, 0x56B94C6D7127DFBA, "ifb")end - SET_VEHICLE_TURRET_TARGET=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] p5)return native_invoker.unified_void(vehicle, p1, x, y, z, p5, 0x0581730AB9380412, "ibfffb")end - SET_VEHICLE_TANK_STATIONARY=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0x737E398138550FFF, "ib")end - SET_VEHICLE_TURRET_SPEED_THIS_FRAME=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] speed)return native_invoker.unified_void(vehicle, speed, 0x1093408B4B9D1146, "if")end - DISABLE_VEHICLE_TURRET_MOVEMENT_THIS_FRAME=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x32CAEDF24A583345, "i")end - SET_VEHICLE_FLIGHT_NOZZLE_POSITION=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] angleRatio)return native_invoker.unified_void(vehicle, angleRatio, 0x30D779DE7C4F6DD3, "if")end - SET_VEHICLE_FLIGHT_NOZZLE_POSITION_IMMEDIATE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] angle)return native_invoker.unified_void(vehicle, angle, 0x9AA47FFF660CB932, "if")end - GET_VEHICLE_FLIGHT_NOZZLE_POSITION=--[[float]] function(--[[Vehicle (int)]] plane)return native_invoker.unified_float(plane, 0xDA62027C8BDB326E, "i")end - -- True stops vtols from switching modes. Doesn't stop the sound though. - SET_DISABLE_VERTICAL_FLIGHT_MODE_TRANSITION=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xCE2B43770B655F8F, "ib")end - GENERATE_VEHICLE_CREATION_POS_FROM_PATHS=--[[BOOL (bool)]] function(--[[Vector3* (pointer)]] outVec,--[[Any (int)]] p1,--[[Vector3* (pointer)]] outVec1,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5,--[[Any (int)]] p6,--[[Any (int)]] p7,--[[Any (int)]] p8)return native_invoker.unified_bool(outVec, p1, outVec1, p3, p4, p5, p6, p7, p8, 0xA4822F1CF23F4810, "pipiiiiii")end - -- On accelerating, spins the driven wheels with the others braked, so you don't go anywhere. - SET_VEHICLE_BURNOUT=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xFB8794444A7D60FB, "ib")end - -- Returns whether the specified vehicle is currently in a burnout. - -- - -- - -- vb.net - -- Public Function isVehicleInBurnout(vh As Vehicle) As Boolean - -- Return Native.Function.Call(Of Boolean)(Hash.IS_VEHICLE_IN_BURNOUT, vh) - -- End Function - IS_VEHICLE_IN_BURNOUT=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x1297A88E081430EB, "i")end - -- Reduces grip significantly so it's hard to go anywhere. - SET_VEHICLE_REDUCE_GRIP=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x222FF6A823D122E2, "ib")end - -- val is 0-3 - -- Often used in conjunction with: SET_VEHICLE_REDUCE_GRIP - SET_VEHICLE_REDUCE_GRIP_LEVEL=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] val)return native_invoker.unified_void(vehicle, val, 0x6DEE944E1EE90CFB, "ii")end - -- Sets the turn signal enabled for a vehicle. - -- Set turnSignal to 1 for left light, 0 for right light. - SET_VEHICLE_INDICATOR_LIGHTS=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] turnSignal,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, turnSignal, toggle, 0xB5D45264751B7DF0, "iib")end - SET_VEHICLE_BRAKE_LIGHTS=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x92B35082E0B42F66, "ib")end - SET_VEHICLE_TAIL_LIGHTS=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x5815BD2763178DF4, "ib")end - SET_VEHICLE_HANDBRAKE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x684785568EF26A22, "ib")end - SET_VEHICLE_BRAKE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xE4E2FD323574965C, "ib")end - INSTANTLY_FILL_VEHICLE_POPULATION=--[[void]] function()return native_invoker.unified_void(0x48ADC8A773564670, "")end - HAS_INSTANT_FILL_VEHICLE_POPULATION_FINISHED=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x91D6DD290888CBAB, "")end - NETWORK_ENABLE_EMPTY_CROWDING_VEHICLES_REMOVAL=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x51DB102F4A3BA5E0, "b")end - -- Default:1000||This sets a value which is used when NETWORK_ENABLE_EMPTY_CROWDING_VEHICLES_REMOVAL(true) is called each frame. - NETWORK_CAP_EMPTY_CROWDING_VEHICLES_REMOVAL=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0xA4A9A4C40E615885, "i")end - -- Gets the trailer of a vehicle and puts it into the trailer parameter. - GET_VEHICLE_TRAILER_VEHICLE=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[Vehicle* (pointer)]] trailer)return native_invoker.unified_bool(vehicle, trailer, 0x1CDD6BADC297830D, "ip")end - _GET_VEHICLE_TRAILER_PARENT_VEHICLE=--[[Vehicle (int)]] function(--[[Vehicle (int)]] trailer)return native_invoker.unified_int(trailer, 0x80D9D32636369C92, "i")end - -- vehicle must be a plane - SET_VEHICLE_USES_LARGE_REAR_RAMP=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xCAC66558B944DA67, "ib")end - SET_VEHICLE_RUDDER_BROKEN=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x09606148B6C71DEF, "ib")end - SET_CONVERTIBLE_ROOF_LATCH_STATE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] state)return native_invoker.unified_void(vehicle, state, 0x1A78AD3D8240536F, "ib")end - GET_VEHICLE_ESTIMATED_MAX_SPEED=--[[float]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_float(vehicle, 0x53AF99BAA671CA47, "i")end - GET_VEHICLE_MAX_BRAKING=--[[float]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_float(vehicle, 0xAD7E85FC227197C4, "i")end - GET_VEHICLE_MAX_TRACTION=--[[float]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_float(vehicle, 0xA132FB5370554DB0, "i")end - -- static - max acceleration - GET_VEHICLE_ACCELERATION=--[[float]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_float(vehicle, 0x5DD35C8D074E57AE, "i")end - -- Returns max speed (without mods) of the specified vehicle model in m/s. - -- - -- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - GET_VEHICLE_MODEL_ESTIMATED_MAX_SPEED=--[[float]] function(--[[Hash (int)]] modelHash)return native_invoker.unified_float(modelHash, 0xF417C2502FFFED43, "i")end - -- Returns max braking of the specified vehicle model. - -- - -- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - GET_VEHICLE_MODEL_MAX_BRAKING=--[[float]] function(--[[Hash (int)]] modelHash)return native_invoker.unified_float(modelHash, 0xDC53FD41B4ED944C, "i")end - -- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - GET_VEHICLE_MODEL_MAX_BRAKING_MAX_MODS=--[[float]] function(--[[Hash (int)]] modelHash)return native_invoker.unified_float(modelHash, 0xBFBA3BA79CFF7EBF, "i")end - -- Returns max traction of the specified vehicle model. - -- - -- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - GET_VEHICLE_MODEL_MAX_TRACTION=--[[float]] function(--[[Hash (int)]] modelHash)return native_invoker.unified_float(modelHash, 0x539DE94D44FDFD0D, "i")end - -- Returns the acceleration of the specified model. - -- - -- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - GET_VEHICLE_MODEL_ACCELERATION=--[[float]] function(--[[Hash (int)]] modelHash)return native_invoker.unified_float(modelHash, 0x8C044C5C84505B6A, "i")end - -- 9.8 * thrust if air vehicle, else 0.38 + drive force? - -- - -- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - GET_VEHICLE_MODEL_ACCELERATION_MAX_MODS=--[[float]] function(--[[Hash (int)]] modelHash)return native_invoker.unified_float(modelHash, 0x53409B5163D5B846, "i")end - -- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - GET_FLYING_VEHICLE_MODEL_AGILITY=--[[float]] function(--[[Hash (int)]] modelHash)return native_invoker.unified_float(modelHash, 0xC6AD107DDC9054CC, "i")end - -- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - GET_BOAT_VEHICLE_MODEL_AGILITY=--[[float]] function(--[[Hash (int)]] modelHash)return native_invoker.unified_float(modelHash, 0x5AA3F878A178C4FC, "i")end - GET_VEHICLE_CLASS_ESTIMATED_MAX_SPEED=--[[float]] function(--[[int]] vehicleClass)return native_invoker.unified_float(vehicleClass, 0x00C09F246ABEDD82, "i")end - GET_VEHICLE_CLASS_MAX_TRACTION=--[[float]] function(--[[int]] vehicleClass)return native_invoker.unified_float(vehicleClass, 0xDBC86D85C5059461, "i")end - GET_VEHICLE_CLASS_MAX_AGILITY=--[[float]] function(--[[int]] vehicleClass)return native_invoker.unified_float(vehicleClass, 0x4F930AD022D6DE3B, "i")end - GET_VEHICLE_CLASS_MAX_ACCELERATION=--[[float]] function(--[[int]] vehicleClass)return native_invoker.unified_float(vehicleClass, 0x2F83E7E45D9EA7AE, "i")end - GET_VEHICLE_CLASS_MAX_BRAKING=--[[float]] function(--[[int]] vehicleClass)return native_invoker.unified_float(vehicleClass, 0x4BF54C16EC8FEC03, "i")end - ADD_ROAD_NODE_SPEED_ZONE=--[[int]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[float]] speed,--[[BOOL (bool)]] p5)return native_invoker.unified_int(x, y, z, radius, speed, p5, 0x2CE544C68FB812A0, "fffffb")end - REMOVE_ROAD_NODE_SPEED_ZONE=--[[BOOL (bool)]] function(--[[int]] speedzone)return native_invoker.unified_bool(speedzone, 0x1033371FC8E842A7, "i")end - OPEN_BOMB_BAY_DOORS=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x87E7F24270732CB1, "i")end - CLOSE_BOMB_BAY_DOORS=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x3556041742A0DC74, "i")end - -- Returns true when the bomb bay doors of this plane are open. False if they're closed. - GET_ARE_BOMB_BAY_DOORS_OPEN=--[[BOOL (bool)]] function(--[[Vehicle (int)]] aircraft)return native_invoker.unified_bool(aircraft, 0xD0917A423314BBA8, "i")end - -- Possibly: Returns whether the searchlight (found on police vehicles) is toggled on. - -- - -- @Author Nac - IS_VEHICLE_SEARCHLIGHT_ON=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xC0F97FCE55094987, "i")end - -- Only works during nighttime. - SET_VEHICLE_SEARCHLIGHT=--[[void]] function(--[[Vehicle (int)]] heli,--[[BOOL (bool)]] toggle,--[[BOOL (bool)]] canBeUsedByAI)return native_invoker.unified_void(heli, toggle, canBeUsedByAI, 0x14E85C5EE7A4D542, "ibb")end - DOES_VEHICLE_HAVE_SEARCHLIGHT=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x99015ED7DBEA5113, "i")end - -- Check if a vehicle seat is accessible. If you park your vehicle near a wall and the ped cannot enter/exit this side, the return value toggles from true (not blocked) to false (blocked). - -- - -- seatIndex = -1 being the driver seat. - -- Use GET_VEHICLE_MAX_NUMBER_OF_PASSENGERS(vehicle) - 1 for last seat index. - -- side = only relevant for bikes/motorcycles to check if the left (false)/right (true) side is blocked. - -- onEnter = check if you can enter (true) or exit (false) a vehicle. - IS_ENTRY_POINT_FOR_SEAT_CLEAR=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] vehicle,--[[int]] seatIndex,--[[BOOL (bool)]] side,--[[BOOL (bool)]] onEnter)return native_invoker.unified_bool(ped, vehicle, seatIndex, side, onEnter, 0x639431E895B9AA57, "iiibb")end - -- doorId: see SET_VEHICLE_DOOR_SHUT - GET_ENTRY_POINT_POSITION=--[[Vector3 (vector3)]] function(--[[Vehicle (int)]] vehicle,--[[int]] doorId)return native_invoker.unified_vector3(vehicle, doorId, 0xC0572928C0ABFDA3, "ii")end - CAN_SHUFFLE_SEAT=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[int]] seatIndex)return native_invoker.unified_bool(vehicle, seatIndex, 0x30785D90C956BF35, "ii")end - GET_NUM_MOD_KITS=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x33F2E3FE70EAAE1D, "i")end - -- Set modKit to 0 if you plan to call SET_VEHICLE_MOD. That's what the game does. Most body modifications through SET_VEHICLE_MOD will not take effect until this is set to 0. - -- - -- Full list of vehicle mod kits and mods by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicleModKits.json - SET_VEHICLE_MOD_KIT=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] modKit)return native_invoker.unified_void(vehicle, modKit, 0x1F2AA07F00B3217A, "ii")end - GET_VEHICLE_MOD_KIT=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x6325D1A044AE510D, "i")end - GET_VEHICLE_MOD_KIT_TYPE=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0xFC058F5121E54C32, "i")end - -- Returns an int - -- - -- Wheel Types: - -- 0: Sport - -- 1: Muscle - -- 2: Lowrider - -- 3: SUV - -- 4: Offroad - -- 5: Tuner - -- 6: Bike Wheels - -- 7: High End - -- 8: Benny's Originals - -- 9: Benny's Bespoke - -- 10: Racing - -- 11: Street - -- 12: Track - -- - -- Tested in Los Santos Customs - GET_VEHICLE_WHEEL_TYPE=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0xB3ED1BFB4BE636DC, "i")end - -- 0: Sport - -- 1: Muscle - -- 2: Lowrider - -- 3: SUV - -- 4: Offroad - -- 5: Tuner - -- 6: Bike Wheels - -- 7: High End - -- 8: Benny's Originals - -- 9: Benny's Bespoke - -- 10: Racing - -- 11: Street - -- 12: Track - SET_VEHICLE_WHEEL_TYPE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] WheelType)return native_invoker.unified_void(vehicle, WheelType, 0x487EB21CC7295BA1, "ii")end - -- paintType: - -- 0: Normal - -- 1: Metallic - -- 2: Pearl - -- 3: Matte - -- 4: Metal - -- 5: Chrome - -- 6: Chameleon - GET_NUM_MOD_COLORS=--[[int]] function(--[[int]] paintType,--[[BOOL (bool)]] p1)return native_invoker.unified_int(paintType, p1, 0xA551BE18C11A476D, "ib")end - -- paintType: - -- 0: Normal - -- 1: Metallic - -- 2: Pearl - -- 3: Matte - -- 4: Metal - -- 5: Chrome - -- 6: Chameleon - -- - -- color: number of the color. - -- - -- p3 seems to always be 0. - -- - -- Full list of vehicle colors and vehicle plates by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicleColors.json - SET_VEHICLE_MOD_COLOR_1=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] paintType,--[[int]] color,--[[int]] pearlescentColor)return native_invoker.unified_void(vehicle, paintType, color, pearlescentColor, 0x43FEB945EE7F85B8, "iiii")end - -- Changes the secondary paint type and color - -- paintType: - -- 0: Normal - -- 1: Metallic - -- 2: Pearl - -- 3: Matte - -- 4: Metal - -- 5: Chrome - -- 6: Chameleon - -- - -- color: number of the color - -- - -- Full list of vehicle colors and vehicle plates by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicleColors.json - SET_VEHICLE_MOD_COLOR_2=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] paintType,--[[int]] color)return native_invoker.unified_void(vehicle, paintType, color, 0x816562BADFDEC83E, "iii")end - GET_VEHICLE_MOD_COLOR_1=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int* (pointer)]] paintType,--[[int* (pointer)]] color,--[[int* (pointer)]] pearlescentColor)return native_invoker.unified_void(vehicle, paintType, color, pearlescentColor, 0xE8D65CA700C9A693, "ippp")end - GET_VEHICLE_MOD_COLOR_2=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int* (pointer)]] paintType,--[[int* (pointer)]] color)return native_invoker.unified_void(vehicle, paintType, color, 0x81592BE4E3878728, "ipp")end - -- Returns a string which is the codename of the vehicle's currently selected primary color - -- - -- p1 is always 0 - GET_VEHICLE_MOD_COLOR_1_NAME=--[[string]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_string(vehicle, p1, 0xB45085B721EFD38C, "ib")end - -- Returns a string which is the codename of the vehicle's currently selected secondary color - GET_VEHICLE_MOD_COLOR_2_NAME=--[[string]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_string(vehicle, 0x4967A516ED23A5A1, "i")end - HAVE_VEHICLE_MODS_STREAMED_IN=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x9A83F5F9963775EF, "i")end - -- Returns true for any mod part listed in GEN9_EXCLUSIVE_ASSETS_VEHICLES_FILE. - IS_VEHICLE_MOD_GEN9_EXCLUSIVE=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[int]] modType,--[[int]] modIndex)return native_invoker.unified_bool(vehicle, modType, modIndex, 0x00834EAC4A96E010, "iii")end - -- In b944, there are 50 (0 - 49) mod types. - -- - -- Sets the vehicle mod. - -- The vehicle must have a mod kit first. - -- - -- Any out of range ModIndex is stock. - -- - -- #Mod Type - -- Spoilers - 0 - -- Front Bumper - 1 - -- Rear Bumper - 2 - -- Side Skirt - 3 - -- Exhaust - 4 - -- Frame - 5 - -- Grille - 6 - -- Hood - 7 - -- Fender - 8 - -- Right Fender - 9 - -- Roof - 10 - -- Engine - 11 - -- Brakes - 12 - -- Transmission - 13 - -- Horns - 14 (modIndex from 0 to 51) - -- Suspension - 15 - -- Armor - 16 - -- Front Wheels - 23 - -- Back Wheels - 24 //only for motocycles - -- Plate holders - 25 - -- Trim Design - 27 - -- Ornaments - 28 - -- Dial Design - 30 - -- Steering Wheel - 33 - -- Shifter Leavers - 34 - -- Plaques - 35 - -- Hydraulics - 38 - -- Livery - 48 - -- - -- ENUMS: https://pastebin.com/QzEAn02v - SET_VEHICLE_MOD=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] modType,--[[int]] modIndex,--[[BOOL (bool)]] customTires)return native_invoker.unified_void(vehicle, modType, modIndex, customTires, 0x6AF0636DDEDCB6DD, "iiib")end - -- In b944, there are 50 (0 - 49) mod types. See SET_VEHICLE_MOD for the list. - -- - -- Returns -1 if the vehicle mod is stock - GET_VEHICLE_MOD=--[[int]] function(--[[Vehicle (int)]] vehicle,--[[int]] modType)return native_invoker.unified_int(vehicle, modType, 0x772960298DA26FDB, "ii")end - -- Only used for wheels(ModType = 23/24) Returns true if the wheels are custom wheels - GET_VEHICLE_MOD_VARIATION=--[[int]] function(--[[Vehicle (int)]] vehicle,--[[int]] modType)return native_invoker.unified_int(vehicle, modType, 0xB3924ECD70E095DC, "ii")end - -- Returns how many possible mods a vehicle has for a given mod type - GET_NUM_VEHICLE_MODS=--[[int]] function(--[[Vehicle (int)]] vehicle,--[[int]] modType)return native_invoker.unified_int(vehicle, modType, 0xE38E9162A2500646, "ii")end - REMOVE_VEHICLE_MOD=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] modType)return native_invoker.unified_void(vehicle, modType, 0x92D619E420858204, "ii")end - -- Toggles: - -- UNK17 - 17 - -- Turbo - 18 - -- UNK19 - 19 - -- Tire Smoke - 20 - -- UNK21 - 21 - -- Xenon Headlights - 22 - TOGGLE_VEHICLE_MOD=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] modType,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, modType, toggle, 0x2A1F4F37F95BAD08, "iib")end - IS_TOGGLE_MOD_ON=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[int]] modType)return native_invoker.unified_bool(vehicle, modType, 0x84B233A8C8FC8AE7, "ii")end - -- Returns the text label of a mod type for a given vehicle - -- - -- Use GET_FILENAME_FOR_AUDIO_CONVERSATION to get the part name in the game's language - GET_MOD_TEXT_LABEL=--[[string]] function(--[[Vehicle (int)]] vehicle,--[[int]] modType,--[[int]] modValue)return native_invoker.unified_string(vehicle, modType, modValue, 0x8935624F8C5592CC, "iii")end - -- Returns the name for the type of vehicle mod(Armour, engine etc) - -- - GET_MOD_SLOT_NAME=--[[string]] function(--[[Vehicle (int)]] vehicle,--[[int]] modType)return native_invoker.unified_string(vehicle, modType, 0x51F0FEB9F6AE98C0, "ii")end - -- Returns the text label of the vehicle's liveryIndex, as specified by the liveryNames section of the vehicle's modkit data in the carcols file. - -- - -- example - -- - -- int count = VEHICLE::GET_VEHICLE_LIVERY_COUNT(veh); - -- for (int i = 0; i < count; i++) - -- { - -- const char* LiveryName = VEHICLE::GET_LIVERY_NAME(veh, i); - -- } - -- - -- - -- this example will work fine to fetch all names - -- for example for Sanchez we get - -- - -- SANC_LV1 - -- SANC_LV2 - -- SANC_LV3 - -- SANC_LV4 - -- SANC_LV5 - -- - -- - -- Use GET_FILENAME_FOR_AUDIO_CONVERSATION, to get the localized livery name. - -- - -- Full list of vehicle mod kits and mods by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicleModKits.json - GET_LIVERY_NAME=--[[string]] function(--[[Vehicle (int)]] vehicle,--[[int]] liveryIndex)return native_invoker.unified_string(vehicle, liveryIndex, 0xB4C7A93837C91A1F, "ii")end - GET_VEHICLE_MOD_MODIFIER_VALUE=--[[int]] function(--[[Vehicle (int)]] vehicle,--[[int]] modType,--[[int]] modIndex)return native_invoker.unified_int(vehicle, modType, modIndex, 0x90A38E9838E0A8C1, "iii")end - -- Can be used for IS_DLC_VEHICLE_MOD and GET_DLC_VEHICLE_MOD_LOCK_HASH - GET_VEHICLE_MOD_IDENTIFIER_HASH=--[[Hash (int)]] function(--[[Vehicle (int)]] vehicle,--[[int]] modType,--[[int]] modIndex)return native_invoker.unified_int(vehicle, modType, modIndex, 0x4593CF82AA179706, "iii")end - PRELOAD_VEHICLE_MOD=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] modType,--[[int]] modIndex)return native_invoker.unified_void(vehicle, modType, modIndex, 0x758F49C24925568A, "iii")end - HAS_PRELOAD_MODS_FINISHED=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x06F43E5175EB6D96, "i")end - RELEASE_PRELOAD_MODS=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x445D79F995508307, "i")end - -- Sets the tire smoke's color of this vehicle. - -- - -- vehicle: The vehicle that is the target of this method. - -- r: The red level in the RGB color code. - -- g: The green level in the RGB color code. - -- b: The blue level in the RGB color code. - -- - -- Note: setting r,g,b to 0 will give the car the "Patriot" tire smoke. - SET_VEHICLE_TYRE_SMOKE_COLOR=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] r,--[[int]] g,--[[int]] b)return native_invoker.unified_void(vehicle, r, g, b, 0xB5BA80F839791C0F, "iiii")end - GET_VEHICLE_TYRE_SMOKE_COLOR=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int* (pointer)]] r,--[[int* (pointer)]] g,--[[int* (pointer)]] b)return native_invoker.unified_void(vehicle, r, g, b, 0xB635392A4938B3C3, "ippp")end - -- enum WindowTints - -- { - -- WINDOWTINT_NONE, - -- WINDOWTINT_PURE_BLACK, - -- WINDOWTINT_DARKSMOKE, - -- WINDOWTINT_LIGHTSMOKE, - -- WINDOWTINT_STOCK, - -- WINDOWTINT_LIMO, - -- WINDOWTINT_GREEN - -- }; - -- Full list of all vehicle window tints by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicleColors.json - SET_VEHICLE_WINDOW_TINT=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] tint)return native_invoker.unified_void(vehicle, tint, 0x57C51E6BAD752696, "ii")end - GET_VEHICLE_WINDOW_TINT=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x0EE21293DAD47C95, "i")end - GET_NUM_VEHICLE_WINDOW_TINTS=--[[int]] function()return native_invoker.unified_int(0x9D1224004B3A6707, "")end - -- What's this for? Primary and Secondary RGB have their own natives and this one doesn't seem specific. - GET_VEHICLE_COLOR=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int* (pointer)]] r,--[[int* (pointer)]] g,--[[int* (pointer)]] b)return native_invoker.unified_void(vehicle, r, g, b, 0xF3CC740D36221548, "ippp")end - -- Some kind of flags. - GET_VEHICLE_COLOURS_WHICH_CAN_BE_SET=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0xEEBFC7A7EFDC35B4, "i")end - -- iVar3 = get_vehicle_cause_of_destruction(uLocal_248[iVar2]); - -- if (iVar3 == joaat("weapon_stickybomb")) - -- { - -- func_171(726); - -- iLocal_260 = 1; - -- } - GET_VEHICLE_CAUSE_OF_DESTRUCTION=--[[Hash (int)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0xE495D1EF4C91FD20, "i")end - -- Used for helis. - OVERRIDE_PLANE_DAMAGE_THREHSOLD=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] health)return native_invoker.unified_void(vehicle, health, 0x5EE5632F47AE9695, "if")end - _SET_TRANSMISSION_REDUCED_GEAR_RATIO=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x337EF33DA3DDB990, "ib")end - _GET_VEHICLE_DESIRED_DRIVE_GEAR=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0xFD8CE53356B5D745, "i")end - -- From the driver's perspective, is the left headlight broken. - GET_IS_LEFT_VEHICLE_HEADLIGHT_DAMAGED=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x5EF77C9ADD3B11A3, "i")end - -- From the driver's perspective, is the right headlight broken. - GET_IS_RIGHT_VEHICLE_HEADLIGHT_DAMAGED=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xA7ECB73355EB2F20, "i")end - -- Returns true when both headlights are broken. This does not include extralights. - GET_BOTH_VEHICLE_HEADLIGHTS_DAMAGED=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xEC69ADF931AAE0C3, "i")end - MODIFY_VEHICLE_TOP_SPEED=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] value)return native_invoker.unified_void(vehicle, value, 0x93A3996368C94158, "if")end - -- To reset the max speed, set the `speed` value to `0.0` or lower. - SET_VEHICLE_MAX_SPEED=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] speed)return native_invoker.unified_void(vehicle, speed, 0xBAA045B4E42F3C06, "if")end - -- Has something to do with trains. Always precedes SET_MISSION_TRAIN_AS_NO_LONGER_NEEDED. - -- May be true that it can be used with trains not sure, but not specifically for trains. Go find Xbox360 decompiled scripts and search for 'func_1333' in freemode.c it isn't used just for trains. Thanks for the info tho. - SET_VEHICLE_STAYS_FROZEN_WHEN_CLEANED_UP=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x1CF38D529D7441D9, "ib")end - SET_VEHICLE_ACT_AS_IF_HIGH_SPEED_FOR_FRAG_SMASHING=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0x1F9FB66F3A3842D2, "ib")end - -- Sets some bit and float of vehicle. float is >= 0 - SET_PEDS_CAN_FALL_OFF_THIS_VEHICLE_FROM_LARGE_FALL_DAMAGE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle,--[[float]] p2)return native_invoker.unified_void(vehicle, toggle, p2, 0x59C3757B3B7408E8, "ibf")end - ADD_VEHICLE_COMBAT_ANGLED_AVOIDANCE_AREA=--[[int]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[float]] p6)return native_invoker.unified_int(p0, p1, p2, p3, p4, p5, p6, 0x54B0F614960F4A5F, "fffffff")end - REMOVE_VEHICLE_COMBAT_AVOIDANCE_AREA=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0xE30524E1871F481D, "i")end - IS_ANY_PED_RAPPELLING_FROM_HELI=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x291E373D483E7EE7, "i")end - -- <1.0 - Decreased torque - -- =1.0 - Default torque - -- >1.0 - Increased torque - -- - -- Negative values will cause the vehicle to go backwards instead of forwards while accelerating. - -- - -- value - is between 0.2 and 1.8 in the decompiled scripts. - -- - -- This needs to be called every frame to take effect. - SET_VEHICLE_CHEAT_POWER_INCREASE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] value)return native_invoker.unified_void(vehicle, value, 0xB59E4BD37AE292DB, "if")end - SET_VEHICLE_INFLUENCES_WANTED_LEVEL=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0x0AD9E8F87FF7C16F, "ib")end - -- Sets the wanted state of this vehicle. - SET_VEHICLE_IS_WANTED=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] state)return native_invoker.unified_void(vehicle, state, 0xF7EC25A3EBEEC726, "ib")end - -- Sets the boat boom position for the `TR3` trailer. - -- Ratio value is between `0.0` and `1.0`, where `0.0` is 90 degrees to the left of the boat, and `1.0` is just slightly to the right/back of the boat. - -- To get the current boom position ratio, use GET_BOAT_BOOM_POSITION_RATIO - SWING_BOAT_BOOM_TO_RATIO=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] ratio)return native_invoker.unified_void(vehicle, ratio, 0xF488C566413B4232, "if")end - -- Same call as ALLOW_BOAT_BOOM_TO_ANIMATE - SWING_BOAT_BOOM_FREELY=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xC1F981A6F74F0C23, "ib")end - ALLOW_BOAT_BOOM_TO_ANIMATE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x0F3B4D4E43177236, "ib")end - GET_BOAT_BOOM_POSITION_RATIO=--[[float]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_float(vehicle, 0x6636C535F6CC2725, "i")end - DISABLE_PLANE_AILERON=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(vehicle, p1, p2, 0x23428FC53C60919C, "ibb")end - -- Returns true when in a vehicle, false whilst entering/exiting. - GET_IS_VEHICLE_ENGINE_RUNNING=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xAE31E7DF9B5B132E, "i")end - SET_VEHICLE_USE_ALTERNATE_HANDLING=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x1D97D1E3A70A649F, "ib")end - -- Only works on bikes, both X and Y work in the -1 - 1 range. - -- - -- X forces the bike to turn left or right (-1, 1) - -- Y forces the bike to lean to the left or to the right (-1, 1) - -- - -- Example with X -1/Y 1 - -- http://i.imgur.com/TgIuAPJ.jpg - SET_BIKE_ON_STAND=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] x,--[[float]] y)return native_invoker.unified_void(vehicle, x, y, 0x9CFA4896C3A53CBB, "iff")end - SET_VEHICLE_NOT_STEALABLE_AMBIENTLY=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0xAB04325045427AAE, "ib")end - LOCK_DOORS_WHEN_NO_LONGER_NEEDED=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0xCFD778E7904C255E, "i")end - SET_LAST_DRIVEN_VEHICLE=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0xACFB2463CC22BED2, "i")end - GET_LAST_DRIVEN_VEHICLE=--[[Vehicle (int)]] function()return native_invoker.unified_int(0xB2D06FAEDE65B577, "")end - CLEAR_LAST_DRIVEN_VEHICLE=--[[void]] function()return native_invoker.unified_void(0xE01903C47C7AC89E, "")end - SET_VEHICLE_HAS_BEEN_DRIVEN_FLAG=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x02398B627547189C, "ib")end - SET_TASK_VEHICLE_GOTO_PLANE_MIN_HEIGHT_ABOVE_TERRAIN=--[[void]] function(--[[Vehicle (int)]] plane,--[[int]] height)return native_invoker.unified_void(plane, height, 0xB893215D8D4C015B, "ii")end - SET_VEHICLE_LOD_MULTIPLIER=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] multiplier)return native_invoker.unified_void(vehicle, multiplier, 0x93AE6A61BE015BF1, "if")end - SET_VEHICLE_CAN_SAVE_IN_GARAGE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x428BACCDF5E26EAD, "ib")end - -- Also includes some "turnOffBones" when vehicle mods are installed. - GET_VEHICLE_NUM_OF_BROKEN_OFF_PARTS=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x42A4BEB35D372407, "i")end - GET_VEHICLE_NUM_OF_BROKEN_LOOSEN_PARTS=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x2C8CBFE1EA5FC631, "i")end - SET_FORCE_VEHICLE_ENGINE_DAMAGE_BY_BULLET=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0x4D9D109F63FEE1D4, "ib")end - -- Allows creation of CEventShockingPlaneFlyby, CEventShockingHelicopterOverhead, and other(?) Shocking events - SET_VEHICLE_GENERATES_ENGINE_SHOCKING_EVENTS=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x279D50DE5652D935, "ib")end - -- Copies sourceVehicle's damage (broken bumpers, broken lights, etc.) to targetVehicle. - COPY_VEHICLE_DAMAGES=--[[void]] function(--[[Vehicle (int)]] sourceVehicle,--[[Vehicle (int)]] targetVehicle)return native_invoker.unified_void(sourceVehicle, targetVehicle, 0xE44A982368A4AF23, "ii")end - DISABLE_VEHICLE_EXPLOSION_BREAK_OFF_PARTS=--[[void]] function()return native_invoker.unified_void(0xF25E02CB9C5818F8, "")end - SET_LIGHTS_CUTOFF_DISTANCE_TWEAK=--[[void]] function(--[[float]] distance)return native_invoker.unified_void(distance, 0xBC3CCA5844452B06, "f")end - -- Commands the driver of an armed vehicle (p0) to shoot its weapon at a target (p1). p3, p4 and p5 are the coordinates of the target. Example: - -- - -- WEAPON::SET_CURRENT_PED_VEHICLE_WEAPON(pilot,MISC::GET_HASH_KEY("VEHICLE_WEAPON_PLANE_ROCKET")); VEHICLE::SET_VEHICLE_SHOOT_AT_TARGET(pilot, target, targPos.x, targPos.y, targPos.z); - SET_VEHICLE_SHOOT_AT_TARGET=--[[void]] function(--[[Ped (int)]] driver,--[[Entity (int)]] entity,--[[float]] xTarget,--[[float]] yTarget,--[[float]] zTarget)return native_invoker.unified_void(driver, entity, xTarget, yTarget, zTarget, 0x74CD9A9327A282EA, "iifff")end - GET_VEHICLE_LOCK_ON_TARGET=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[Entity* (pointer)]] entity)return native_invoker.unified_bool(vehicle, entity, 0x8F5EBAB1F260CFCE, "ip")end - SET_FORCE_HD_VEHICLE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x97CE68CB032583F0, "ib")end - SET_VEHICLE_CUSTOM_PATH_NODE_STREAMING_RADIUS=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] p1)return native_invoker.unified_void(vehicle, p1, 0x182F266C2D9E2BEB, "if")end - GET_VEHICLE_PLATE_TYPE=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x9CCC9525BF2408E0, "i")end - -- in script hook .net - -- - -- Vehicle v = ...; - -- Function.Call(Hash.TRACK_VEHICLE_VISIBILITY, v.Handle); - TRACK_VEHICLE_VISIBILITY=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x64473AEFDCF47DCA, "i")end - -- must be called after TRACK_VEHICLE_VISIBILITY - -- - -- it's not instant so probabilly must pass an 'update' to see correct result. - IS_VEHICLE_VISIBLE=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xAA0A52D24FB98293, "i")end - SET_VEHICLE_GRAVITY=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x89F149B6131E57DA, "ib")end - -- Enable/Disables global slipstream physics - SET_ENABLE_VEHICLE_SLIPSTREAMING=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xE6C0C80B8C867537, "b")end - SET_VEHICLE_SLIPSTREAMING_SHOULD_TIME_OUT=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xF051D9BFB6BA39C0, "b")end - -- Returns a float value between 0.0 and 3.0 related to its slipstream draft (boost/speedup). - GET_VEHICLE_CURRENT_TIME_IN_SLIP_STREAM=--[[float]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_float(vehicle, 0x36492C2F0D134C56, "i")end - -- Returns true if the vehicle is being slipstreamed by another vehicle - IS_VEHICLE_PRODUCING_SLIP_STREAM=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x48C633E94A8142A7, "i")end - SET_VEHICLE_INACTIVE_DURING_PLAYBACK=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x06582AFF74894C75, "ib")end - SET_VEHICLE_ACTIVE_DURING_PLAYBACK=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xDFFCEF48E511DB48, "ib")end - -- Returns false if the vehicle has the FLAG_NO_RESPRAY flag set. - IS_VEHICLE_SPRAYABLE=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x8D474C8FAEFF6CDE, "i")end - SET_VEHICLE_ENGINE_CAN_DEGRADE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x983765856F2564F9, "ib")end - -- Adds some kind of shadow to the vehicle. - -- - -- p1 and p2 use values from 0-255 and both make the shadow darker the lower the value is. -1 disables the effect. - DISABLE_VEHCILE_DYNAMIC_AMBIENT_SCALES=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] p1,--[[int]] p2)return native_invoker.unified_void(vehicle, p1, p2, 0xF0E4BA16D1DB546C, "iii")end - -- Remove the weird shadow applied by DISABLE_VEHCILE_DYNAMIC_AMBIENT_SCALES. - ENABLE_VEHICLE_DYNAMIC_AMBIENT_SCALES=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0xF87D9F2301F7D206, "i")end - IS_PLANE_LANDING_GEAR_INTACT=--[[BOOL (bool)]] function(--[[Vehicle (int)]] plane)return native_invoker.unified_bool(plane, 0x4198AB0022B15F87, "i")end - ARE_PLANE_PROPELLERS_INTACT=--[[BOOL (bool)]] function(--[[Vehicle (int)]] plane)return native_invoker.unified_bool(plane, 0x755D6D5267CBBD7E, "i")end - SET_PLANE_PROPELLER_HEALTH=--[[BOOL (bool)]] function(--[[Vehicle (int)]] plane,--[[float]] health)return native_invoker.unified_bool(plane, health, 0x4C815EB175086F84, "if")end - SET_VEHICLE_CAN_DEFORM_WHEELS=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x0CDDA42F9E360CA6, "ib")end - -- Only returns true if the vehicle was marked as stolen with SET_VEHICLE_IS_STOLEN. - IS_VEHICLE_STOLEN=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x4AF9BD80EEBEB453, "i")end - SET_VEHICLE_IS_STOLEN=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] isStolen)return native_invoker.unified_void(vehicle, isStolen, 0x67B2C79AA7FF5738, "ib")end - -- This native sets the turbulence multiplier. It only works for planes. - -- 0.0 = no turbulence at all. - -- 1.0 = heavy turbulence. - -- Works by just calling it once, does not need to be called every tick. - SET_PLANE_TURBULENCE_MULTIPLIER=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] multiplier)return native_invoker.unified_void(vehicle, multiplier, 0xAD2D28A1AFDFF131, "if")end - ARE_WINGS_OF_PLANE_INTACT=--[[BOOL (bool)]] function(--[[Vehicle (int)]] plane)return native_invoker.unified_bool(plane, 0x5991A01434CE9677, "i")end - -- This native doesn't seem to do anything, might be a debug-only native. - -- - -- Confirmed, it is a debug native. - ALLOW_AMBIENT_VEHICLES_TO_AVOID_ADVERSE_CONDITIONS=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0xB264C4D2F2B0A78B, "i")end - DETACH_VEHICLE_FROM_CARGOBOB=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[Vehicle (int)]] cargobob)return native_invoker.unified_void(vehicle, cargobob, 0x0E21D3DF1051399D, "ii")end - DETACH_VEHICLE_FROM_ANY_CARGOBOB=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xADF7BE450512C12F, "i")end - DETACH_ENTITY_FROM_CARGOBOB=--[[BOOL (bool)]] function(--[[Vehicle (int)]] cargobob,--[[Entity (int)]] entity)return native_invoker.unified_bool(cargobob, entity, 0xAF03011701811146, "ii")end - IS_VEHICLE_ATTACHED_TO_CARGOBOB=--[[BOOL (bool)]] function(--[[Vehicle (int)]] cargobob,--[[Vehicle (int)]] vehicleAttached)return native_invoker.unified_bool(cargobob, vehicleAttached, 0xD40148F22E81A1D9, "ii")end - -- Returns attached vehicle (Vehicle in parameter must be cargobob) - GET_VEHICLE_ATTACHED_TO_CARGOBOB=--[[Vehicle (int)]] function(--[[Vehicle (int)]] cargobob)return native_invoker.unified_int(cargobob, 0x873B82D42AC2B9E5, "i")end - GET_ENTITY_ATTACHED_TO_CARGOBOB=--[[Entity (int)]] function(--[[Any (int)]] p0)return native_invoker.unified_int(p0, 0x99093F60746708CA, "i")end - ATTACH_VEHICLE_TO_CARGOBOB=--[[void]] function(--[[Vehicle (int)]] cargobob,--[[Vehicle (int)]] vehicle,--[[int]] p2,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(cargobob, vehicle, p2, x, y, z, 0x4127F1D84E347769, "iiifff")end - ATTACH_ENTITY_TO_CARGOBOB=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, 0xA1DD82F3CCF9A01E, "iiiiii")end - -- Stops cargobob from being able to detach the attached vehicle. - SET_CARGOBOB_FORCE_DONT_DETACH_VEHICLE=--[[void]] function(--[[Vehicle (int)]] cargobob,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(cargobob, toggle, 0x571FEB383F629926, "ib")end - SET_CARGOBOB_EXCLUDE_FROM_PICKUP_ENTITY=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x1F34B0626C594380, "ii")end - CAN_CARGOBOB_PICK_UP_ENTITY=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_bool(p0, p1, 0x2C1D8B3B19E517CC, "ii")end - -- Gets the position of the cargobob hook, in world coords. - GET_ATTACHED_PICK_UP_HOOK_POSITION=--[[Vector3 (vector3)]] function(--[[Vehicle (int)]] cargobob)return native_invoker.unified_vector3(cargobob, 0xCBDB9B923CACC92D, "i")end - -- Returns true only when the hook is active, will return false if the magnet is active - DOES_CARGOBOB_HAVE_PICK_UP_ROPE=--[[BOOL (bool)]] function(--[[Vehicle (int)]] cargobob)return native_invoker.unified_bool(cargobob, 0x1821D91AD4B56108, "i")end - -- Drops the Hook/Magnet on a cargobob - -- - -- state - -- enum eCargobobHook - -- { - -- CARGOBOB_HOOK = 0, - -- CARGOBOB_MAGNET = 1, - -- }; - CREATE_PICK_UP_ROPE_FOR_CARGOBOB=--[[void]] function(--[[Vehicle (int)]] cargobob,--[[int]] state)return native_invoker.unified_void(cargobob, state, 0x7BEB0C7A235F6F3B, "ii")end - -- Retracts the hook on the cargobob. - -- - -- Note: after you retract it the natives for dropping the hook no longer work - REMOVE_PICK_UP_ROPE_FOR_CARGOBOB=--[[void]] function(--[[Vehicle (int)]] cargobob)return native_invoker.unified_void(cargobob, 0x9768CF648F54C804, "i")end - -- min: 1.9f, max: 100.0f - SET_PICKUP_ROPE_LENGTH_FOR_CARGOBOB=--[[void]] function(--[[Vehicle (int)]] cargobob,--[[float]] length1,--[[float]] length2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(cargobob, length1, length2, p3, 0x877C1EAEAC531023, "iffb")end - SET_PICKUP_ROPE_LENGTH_WITHOUT_CREATING_ROPE_FOR_CARGOBOB=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xC0ED6438E6D39BA8, "iii")end - SET_CARGOBOB_PICKUP_ROPE_DAMPING_MULTIPLIER=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xCF1182F682F65307, "ii")end - SET_CARGOBOB_PICKUP_ROPE_TYPE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x0D5F65A8F4EBDAB5, "ii")end - -- Returns true only when the magnet is active, will return false if the hook is active - DOES_CARGOBOB_HAVE_PICKUP_MAGNET=--[[BOOL (bool)]] function(--[[Vehicle (int)]] cargobob)return native_invoker.unified_bool(cargobob, 0x6E08BF5B3722BAC9, "i")end - -- Won't attract or magnetize to any helicopters or planes of course, but that's common sense. - SET_CARGOBOB_PICKUP_MAGNET_ACTIVE=--[[void]] function(--[[Vehicle (int)]] cargobob,--[[BOOL (bool)]] isActive)return native_invoker.unified_void(cargobob, isActive, 0x9A665550F8DA349B, "ib")end - SET_CARGOBOB_PICKUP_MAGNET_STRENGTH=--[[void]] function(--[[Vehicle (int)]] cargobob,--[[float]] strength)return native_invoker.unified_void(cargobob, strength, 0xBCBFCD9D1DAC19E2, "if")end - SET_CARGOBOB_PICKUP_MAGNET_FALLOFF=--[[void]] function(--[[Vehicle (int)]] cargobob,--[[float]] p1)return native_invoker.unified_void(cargobob, p1, 0xA17BAD153B51547E, "if")end - SET_CARGOBOB_PICKUP_MAGNET_REDUCED_STRENGTH=--[[void]] function(--[[Vehicle (int)]] cargobob,--[[float]] p1)return native_invoker.unified_void(cargobob, p1, 0x66979ACF5102FD2F, "if")end - SET_CARGOBOB_PICKUP_MAGNET_REDUCED_FALLOFF=--[[void]] function(--[[Vehicle (int)]] cargobob,--[[float]] p1)return native_invoker.unified_void(cargobob, p1, 0x6D8EAC07506291FB, "if")end - SET_CARGOBOB_PICKUP_MAGNET_PULL_STRENGTH=--[[void]] function(--[[Vehicle (int)]] cargobob,--[[float]] p1)return native_invoker.unified_void(cargobob, p1, 0xED8286F71A819BAA, "if")end - SET_CARGOBOB_PICKUP_MAGNET_PULL_ROPE_LENGTH=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] p1)return native_invoker.unified_void(vehicle, p1, 0x685D5561680D088B, "if")end - SET_CARGOBOB_PICKUP_MAGNET_SET_TARGETED_MODE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[Vehicle (int)]] cargobob)return native_invoker.unified_void(vehicle, cargobob, 0xE301BD63E9E13CF0, "ii")end - SET_CARGOBOB_PICKUP_MAGNET_SET_AMBIENT_MODE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(vehicle, p1, p2, 0x9BDDC73CC6A115D4, "ibb")end - SET_CARGOBOB_PICKUP_MAGNET_ENSURE_PICKUP_ENTITY_UPRIGHT=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0x56EB5E94318D3FB6, "ib")end - DOES_VEHICLE_HAVE_WEAPONS=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x25ECB9F8017D98E0, "i")end - SET_VEHICLE_WILL_TELL_OTHERS_TO_HURRY=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0x2C4A1590ABF43E8B, "ib")end - -- Full list of weapons by DurtyFree (Search for VEHICLE_*): https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - DISABLE_VEHICLE_WEAPON=--[[void]] function(--[[BOOL (bool)]] disabled,--[[Hash (int)]] weaponHash,--[[Vehicle (int)]] vehicle,--[[Ped (int)]] owner)return native_invoker.unified_void(disabled, weaponHash, vehicle, owner, 0xF4FC6A6F67D8D856, "biii")end - -- Full list of weapons by DurtyFree (Search for VEHICLE_*): https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - IS_VEHICLE_WEAPON_DISABLED=--[[BOOL (bool)]] function(--[[Hash (int)]] weaponHash,--[[Vehicle (int)]] vehicle,--[[Ped (int)]] owner)return native_invoker.unified_bool(weaponHash, vehicle, owner, 0x563B65A643ED072E, "iii")end - SET_VEHICLE_USED_FOR_PILOT_SCHOOL=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xE05DD0E9707003A3, "ib")end - SET_VEHICLE_ACTIVE_FOR_PED_NAVIGATION=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x21115BCD6E44656A, "ib")end - -- Returns an int - -- - -- Vehicle Classes: - -- 0: Compacts - -- 1: Sedans - -- 2: SUVs - -- 3: Coupes - -- 4: Muscle - -- 5: Sports Classics - -- 6: Sports - -- 7: Super - -- 8: Motorcycles - -- 9: Off-road - -- 10: Industrial - -- 11: Utility - -- 12: Vans - -- 13: Cycles - -- 14: Boats - -- 15: Helicopters - -- 16: Planes - -- 17: Service - -- 18: Emergency - -- 19: Military - -- 20: Commercial - -- 21: Trains - -- - -- char buffer[128]; - -- std::sprintf(buffer, "VEH_CLASS_%i", VEHICLE::GET_VEHICLE_CLASS(vehicle)); - -- - -- const char* className = HUD::GET_FILENAME_FOR_AUDIO_CONVERSATION(buffer); - GET_VEHICLE_CLASS=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x29439776AAA00A62, "i")end - -- char buffer[128]; - -- std::sprintf(buffer, "VEH_CLASS_%i", VEHICLE::GET_VEHICLE_CLASS_FROM_NAME (hash)); - -- - -- const char* className = HUD::GET_FILENAME_FOR_AUDIO_CONVERSATION(buffer); - -- - -- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - GET_VEHICLE_CLASS_FROM_NAME=--[[int]] function(--[[Hash (int)]] modelHash)return native_invoker.unified_int(modelHash, 0xDEDF1C8BD47C2200, "i")end - SET_PLAYERS_LAST_VEHICLE=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0xBCDF8BAF56C87B6A, "i")end - SET_VEHICLE_CAN_BE_USED_BY_FLEEING_PEDS=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x300504B23BD3B711, "ib")end - SET_AIRCRAFT_PILOT_SKILL_NOISE_SCALAR=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] p1)return native_invoker.unified_void(vehicle, p1, 0xE5810AC70602F2F5, "if")end - -- Money pickups are created around cars when they explode. Only works when the vehicle model is a car. A single pickup is between 1 and 18 dollars in size. All car models seem to give the same amount of money. - -- - -- youtu.be/3arlUxzHl5Y - -- i.imgur.com/WrNpYFs.jpg - SET_VEHICLE_DROPS_MONEY_WHEN_BLOWN_UP=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x068F64F2470F9656, "ib")end - SET_VEHICLE_KEEP_ENGINE_ON_WHEN_ABANDONED=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xB8FBC8B1330CA9B4, "ib")end - -- Seems to copy some values in vehicle - SET_VEHICLE_IMPATIENCE_TIMER=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[Any (int)]] p1)return native_invoker.unified_void(vehicle, p1, 0x6A973569BA094650, "ii")end - -- Use the "AIHandling" string found in handling.meta - SET_VEHICLE_HANDLING_OVERRIDE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[Hash (int)]] hash)return native_invoker.unified_void(vehicle, hash, 0x10655FAB9915623D, "ii")end - -- Max value is 32767 - SET_VEHICLE_EXTENDED_REMOVAL_RANGE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] range)return native_invoker.unified_void(vehicle, range, 0x79DF7E806202CE01, "ii")end - SET_VEHICLE_STEERING_BIAS_SCALAR=--[[void]] function(--[[Any (int)]] p0,--[[float]] p1)return native_invoker.unified_void(p0, p1, 0x9007A2F21DC108D4, "if")end - -- value between 0.0 and 1.0 - SET_HELI_CONTROL_LAGGING_RATE_SCALAR=--[[void]] function(--[[Vehicle (int)]] helicopter,--[[float]] multiplier)return native_invoker.unified_void(helicopter, multiplier, 0x6E0859B530A365CC, "if")end - -- Seems to be related to the metal parts, not tyres (like i was expecting lol) - SET_VEHICLE_FRICTION_OVERRIDE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] friction)return native_invoker.unified_void(vehicle, friction, 0x1837AF7C627009BA, "if")end - SET_VEHICLE_WHEELS_CAN_BREAK_OFF_WHEN_BLOW_UP=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xA37B9A517B133349, "ib")end - ARE_PLANE_CONTROL_PANELS_INTACT=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_bool(vehicle, p1, 0xF78F94D60248C737, "ib")end - SET_VEHICLE_CEILING_HEIGHT=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] height)return native_invoker.unified_void(vehicle, height, 0xA46413066687A328, "if")end - SET_VEHICLE_NO_EXPLOSION_DAMAGE_FROM_DRIVER=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x5E569EC46EC21CAE, "ib")end - CLEAR_VEHICLE_ROUTE_HISTORY=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x6D6AF961B72728AE, "i")end - DOES_VEHICLE_EXIST_WITH_DECORATOR=--[[Vehicle (int)]] function(--[[string]] decorator)return native_invoker.unified_int(decorator, 0x956B409B984D9BF7, "s")end - -- Used to be incorrectly named SET_VEHICLE_EXCLUSIVE_DRIVER - -- Toggles a flag related to SET_VEHICLE_EXCLUSIVE_DRIVER, however, doesn't enable that feature (or trigger script events related to it). - SET_VEHICLE_AI_CAN_USE_EXCLUSIVE_SEATS=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x41062318F23ED854, "ib")end - -- index: 0 - 1 - -- - -- Used to be incorrectly named _SET_VEHICLE_EXCLUSIVE_DRIVER_2 - SET_VEHICLE_EXCLUSIVE_DRIVER=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[Ped (int)]] ped,--[[int]] index)return native_invoker.unified_void(vehicle, ped, index, 0xB5C51B5502E85E83, "iii")end - IS_PED_EXCLUSIVE_DRIVER_OF_VEHICLE=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] vehicle,--[[int* (pointer)]] outIndex)return native_invoker.unified_bool(ped, vehicle, outIndex, 0xB09D25E77C33EB3F, "iip")end - DISABLE_INDIVIDUAL_PLANE_PROPELLER=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] propeller)return native_invoker.unified_void(vehicle, propeller, 0x500873A45724C863, "ii")end - SET_VEHICLE_FORCE_AFTERBURNER=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xB055A34527CB8FD7, "ib")end - -- R* used it to "remove" vehicle windows when "nightshark" had some mod, which adding some kind of armored windows. When enabled, you can't break vehicles glass. All your bullets wiil shoot through glass. You also will not able to break the glass with any other way (hitting and etc) - SET_DONT_PROCESS_VEHICLE_GLASS=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x1087BC8EC540DAEB, "ib")end - SET_DISABLE_WANTED_CONES_RESPONSE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x4AD280EB48B2D8E6, "ib")end - SET_USE_DESIRED_Z_CRUISE_SPEED_FOR_LANDING=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xB68CFAF83A02768D, "ib")end - SET_ARRIVE_DISTANCE_OVERRIDE_FOR_VEHICLE_PERSUIT_ATTACK=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] p1)return native_invoker.unified_void(vehicle, p1, 0x0205F5365292D2EB, "if")end - SET_VEHICLE_READY_FOR_CLEANUP=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xCF9159024555488C, "i")end - -- Toggles to render distant vehicles. They may not be vehicles but images to look like vehicles. - SET_DISTANT_CARS_ENABLED=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xF796359A959DF65D, "b")end - -- Sets the color of the neon lights of the specified vehicle. - SET_VEHICLE_NEON_COLOUR=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] r,--[[int]] g,--[[int]] b)return native_invoker.unified_void(vehicle, r, g, b, 0x8E0A582209A62695, "iiii")end - -- Index references CVehicleModelColor - SET_VEHICLE_NEON_INDEX_COLOUR=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] index)return native_invoker.unified_void(vehicle, index, 0xB93B2867F7B479D1, "ii")end - -- Gets the color of the neon lights of the specified vehicle. - -- - -- See SET_VEHICLE_NEON_COLOUR (0x8E0A582209A62695) for more information - GET_VEHICLE_NEON_COLOUR=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int* (pointer)]] r,--[[int* (pointer)]] g,--[[int* (pointer)]] b)return native_invoker.unified_void(vehicle, r, g, b, 0x7619EEE8C886757F, "ippp")end - -- Sets the neon lights of the specified vehicle on/off. - -- - -- Indices: - -- 0 = Left - -- 1 = Right - -- 2 = Front - -- 3 = Back - SET_VEHICLE_NEON_ENABLED=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] index,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, index, toggle, 0x2AA720E4287BF269, "iib")end - -- indices: - -- 0 = Left - -- 1 = Right - -- 2 = Front - -- 3 = Back - GET_VEHICLE_NEON_ENABLED=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[int]] index)return native_invoker.unified_bool(vehicle, index, 0x8C4B92553E4766A5, "ii")end - SET_AMBIENT_VEHICLE_NEON_ENABLED=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x35E0654F4BAD7971, "b")end - SUPPRESS_NEONS_ON_VEHICLE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x83F813570FF519DE, "ib")end - SET_DISABLE_SUPERDUMMY=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0xB088E9A47AE6EDD5, "ib")end - REQUEST_VEHICLE_DIAL=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0xDBA3C090E3D74690, "i")end - -- Seems related to vehicle health, like the one in IV. - -- Max 1000, min 0. - -- Vehicle does not necessarily explode or become undrivable at 0. - GET_VEHICLE_BODY_HEALTH=--[[float]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_float(vehicle, 0xF271147EB7B40F12, "i")end - -- p2 often set to 1000.0 in the decompiled scripts. - SET_VEHICLE_BODY_HEALTH=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] value)return native_invoker.unified_void(vehicle, value, 0xB77D05AC8C78AADB, "if")end - -- Outputs 2 Vector3's. - -- Scripts check if out2.x - out1.x > someshit.x - -- Could be suspension related, as in max suspension height and min suspension height, considering the natives location. - GET_VEHICLE_SIZE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[Vector3* (pointer)]] out1,--[[Vector3* (pointer)]] out2)return native_invoker.unified_void(vehicle, out1, out2, 0xDF7E3EEB29642C38, "ipp")end - -- Gets the height of the vehicle's suspension. - -- The higher the value the lower the suspension. Each 0.002 corresponds with one more level lowered. - -- 0.000 is the stock suspension. - -- 0.008 is Ultra Suspension. - GET_FAKE_SUSPENSION_LOWERING_AMOUNT=--[[float]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_float(vehicle, 0x53952FD2BAA19F17, "i")end - SET_CAR_HIGH_SPEED_BUMP_SEVERITY_MULTIPLIER=--[[void]] function(--[[float]] multiplier)return native_invoker.unified_void(multiplier, 0x84FD40F56075E816, "f")end - GET_NUMBER_OF_VEHICLE_DOORS=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x92922A607497B14D, "i")end - -- If false, lowers hydraulics (if raised) and disables hydraulics controls. If true, raises hydraulics and enables hydraulics controls. - -- - -- Only used once in each carmod script, on a car that does not have hydraulics to begin with. - SET_HYDRAULICS_CONTROL=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x28B18377EB6E25F6, "ib")end - SET_CAN_ADJUST_GROUND_CLEARANCE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0xA7DCDF4DED40A8F4, "ib")end - -- 0 min 100 max - -- starts at 100 - -- Seams to have health zones - -- Front of vehicle when damaged goes from 100-50 and stops at 50. - -- Rear can be damaged from 100-0 - -- Only tested with two cars. - -- - -- any idea how this differs from the first one? - -- - -- -- - -- May return the vehicle health on a scale of 0.0 - 100.0 (needs to be confirmed) - -- - -- example: - -- - -- v_F = ENTITY::GET_ENTITY_MODEL(v_3); - -- if (((v_F == ${tanker}) || (v_F == ${armytanker})) || (v_F == ${tanker2})) { - -- if (VEHICLE::GET_VEHICLE_HEALTH_PERCENTAGE(v_3) <= 1.0) { - -- NETWORK::NETWORK_EXPLODE_VEHICLE(v_3, 1, 1, -1); - -- } - -- } - GET_VEHICLE_HEALTH_PERCENTAGE=--[[float]] function(--[[Vehicle (int)]] vehicle,--[[float]] maxEngineHealth,--[[float]] maxPetrolTankHealth,--[[float]] maxBodyHealth,--[[float]] maxMainRotorHealth,--[[float]] maxTailRotorHealth,--[[float]] maxUnkHealth)return native_invoker.unified_float(vehicle, maxEngineHealth, maxPetrolTankHealth, maxBodyHealth, maxMainRotorHealth, maxTailRotorHealth, maxUnkHealth, 0xB8EF61207C2393A9, "iffffff")end - GET_VEHICLE_IS_MERCENARY=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xD4C4642CB7F50B5D, "i")end - SET_VEHICLE_BROKEN_PARTS_DONT_AFFECT_AI_HANDLING=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0xC361AA040D6637A8, "ib")end - SET_VEHICLE_KERS_ALLOWED=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x99C82F8A139F3E4E, "ib")end - -- Returns true if the vehicle has a HF_HAS_KERS (strHandlingFlags 0x4) handing flag set, for instance the lectro/vindicator bikes or the open wheelers. - GET_VEHICLE_HAS_KERS=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x50634E348C8D44EF, "i")end - SET_PLANE_RESIST_TO_EXPLOSION=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xE16142B94664DEFD, "ib")end - SET_HELI_RESIST_TO_EXPLOSION=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x8074CC1886802912, "ib")end - SET_DISABLE_BMX_EXTRA_TRICK_FORCES=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x26D99D5A82FD18E8, "i")end - -- Works only on vehicles that support hydraulics. - SET_HYDRAULIC_SUSPENSION_RAISE_FACTOR=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] wheelId,--[[float]] value)return native_invoker.unified_void(vehicle, wheelId, value, 0x84EA99C62CB3EF0C, "iif")end - GET_HYDRAULIC_SUSPENSION_RAISE_FACTOR=--[[float]] function(--[[Vehicle (int)]] vehicle,--[[int]] wheelId)return native_invoker.unified_float(vehicle, wheelId, 0x0BB5CBDDD0F25AE3, "ii")end - SET_CAN_USE_HYDRAULICS=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x1201E8A3290A3B98, "ib")end - -- States: - -- 4 = raise - -- 5 = lower - -- 6 = jump - SET_HYDRAULIC_VEHICLE_STATE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] state)return native_invoker.unified_void(vehicle, state, 0x8EA86DF356801C7D, "ii")end - -- Sets vehicle wheel hydraulic states transition. Known states: - -- 0 - reset - -- 1 - raise wheel (uses value arg, works just like _SET_VEHICLE_HYDRAULIC_WHEEL_VALUE) - -- 2 - jump using wheel - SET_HYDRAULIC_WHEEL_STATE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] wheelId,--[[int]] state,--[[float]] value,--[[Any (int)]] p4)return native_invoker.unified_void(vehicle, wheelId, state, value, p4, 0xC24075310A8B9CD1, "iiifi")end - HAS_VEHICLE_PETROLTANK_SET_ON_FIRE_BY_ENTITY=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_bool(p0, p1, 0x5BA68A0840D546AC, "ii")end - CLEAR_VEHICLE_PETROLTANK_FIRE_CULPRIT=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x4419966C9936071A, "i")end - -- Controls how fast bobbleheads and tsurikawas move on each axis. - -- - -- p2 is probably z, but changing that value didn't seem to have a noticeable effect. - SET_VEHICLE_BOBBLEHEAD_VELOCITY=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] p2)return native_invoker.unified_void(x, y, p2, 0x870B8B7A766615C8, "fff")end - GET_VEHICLE_IS_DUMMY=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x8533CAFDE1F0F336, "i")end - SET_VEHICLE_DAMAGE_SCALE=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[float]] p1)return native_invoker.unified_bool(vehicle, p1, 0x4E20D2A627011E8E, "if")end - SET_VEHICLE_WEAPON_DAMAGE_SCALE=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[float]] multiplier)return native_invoker.unified_bool(vehicle, multiplier, 0x45A561A9421AB6AD, "if")end - SET_DISABLE_DAMAGE_WITH_PICKED_UP_ENTITY=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_bool(p0, p1, 0xD4196117AF7BB974, "ii")end - SET_VEHICLE_USES_MP_PLAYER_DAMAGE_MULTIPLIER=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xBB2333BB87DDD87F, "ii")end - -- When enabled, the player won't fall off the bike when landing from large heights. - SET_BIKE_EASY_TO_LAND=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x73561D4425A021A2, "ib")end - -- Inverts vehicle's controls. So INPUT_VEH_ACCELERATE will be INPUT_VEH_BRAKE and vise versa (same for A/D controls) - -- Doesn't work for planes/helis. - SET_INVERT_VEHICLE_CONTROLS=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] state)return native_invoker.unified_void(vehicle, state, 0x5B91B229243351A8, "ib")end - -- Disables the screen effects and sound effects when driving over a speed boost pad. - SET_SPEED_BOOST_EFFECT_DISABLED=--[[void]] function(--[[BOOL (bool)]] disabled)return native_invoker.unified_void(disabled, 0x7BBE7FF626A591FE, "b")end - -- Disables the screen effects and sound effects when driving over a slowdown pad. - SET_SLOW_DOWN_EFFECT_DISABLED=--[[void]] function(--[[BOOL (bool)]] disabled)return native_invoker.unified_void(disabled, 0x65B080555EA48149, "b")end - SET_FORMATION_LEADER=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] p4)return native_invoker.unified_void(vehicle, x, y, z, p4, 0x428AD3E26C8D9EB0, "iffff")end - -- Resets the effect of SET_FORMATION_LEADER - RESET_FORMATION_LEADER=--[[void]] function()return native_invoker.unified_void(0xE2F53F172B45EDE1, "")end - GET_IS_BOAT_CAPSIZED=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xBA91D045575699AD, "i")end - SET_ALLOW_RAMMING_SOOP_OR_RAMP=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x80E3357FDEF45C21, "ii")end - SET_SCRIPT_RAMP_IMPULSE_SCALE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] impulseScale)return native_invoker.unified_void(vehicle, impulseScale, 0xEFC13B1CE30D755D, "if")end - -- doorId: see SET_VEHICLE_DOOR_SHUT - GET_IS_DOOR_VALID=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[int]] doorId)return native_invoker.unified_bool(vehicle, doorId, 0x645F4B6E8499F632, "ii")end - SET_SCRIPT_ROCKET_BOOST_RECHARGE_TIME=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] seconds)return native_invoker.unified_void(vehicle, seconds, 0xE00F2AB100B76E89, "if")end - GET_HAS_ROCKET_BOOST=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x36D782F68B309BDA, "i")end - IS_ROCKET_BOOST_ACTIVE=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x3D34E80EED4AE3BE, "i")end - SET_ROCKET_BOOST_ACTIVE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] active)return native_invoker.unified_void(vehicle, active, 0x81E1552E35DC3839, "ib")end - GET_HAS_RETRACTABLE_WHEELS=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xDCA174A42133F08C, "i")end - GET_IS_WHEELS_RETRACTED=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x1DA0DA9CB3F0C8BF, "i")end - SET_WHEELS_EXTENDED_INSTANTLY=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0xF660602546D27BA8, "i")end - SET_WHEELS_RETRACTED_INSTANTLY=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x5335BE58C083E74E, "i")end - -- Returns true if the vehicle has the FLAG_JUMPING_CAR flag set. - GET_CAR_HAS_JUMP=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x9078C0C5EF8C19E9, "i")end - -- Allows vehicles with the FLAG_JUMPING_CAR flag to jump higher (i.e. Ruiner 2000). - SET_USE_HIGHER_CAR_JUMP=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xF06A16CA55D138D8, "ib")end - SET_CLEAR_FREEZE_WAITING_ON_COLLISION_ONCE_PLAYER_ENTERS=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xB2E0C0D6922D31F2, "ib")end - -- Set vehicle's primary mounted weapon 2 ammo. For example, use it on APC. - -- For example, you can "remove" any vehicle weapon from any vehicle. - -- ammoAmount -1 = infinite ammo (default value for any spawned vehicle tho) - SET_VEHICLE_WEAPON_RESTRICTED_AMMO=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] weaponIndex,--[[int]] capacity)return native_invoker.unified_void(vehicle, weaponIndex, capacity, 0x44CD1F493DB2A0A6, "iii")end - GET_VEHICLE_WEAPON_RESTRICTED_AMMO=--[[int]] function(--[[Vehicle (int)]] vehicle,--[[int]] weaponIndex)return native_invoker.unified_int(vehicle, weaponIndex, 0x8181CE2F25CB9BB7, "ii")end - GET_VEHICLE_HAS_PARACHUTE=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xBC9CFF381338CB4F, "i")end - GET_VEHICLE_CAN_DEPLOY_PARACHUTE=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xA916396DF4154EE3, "i")end - VEHICLE_START_PARACHUTING=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] active)return native_invoker.unified_void(vehicle, active, 0x0BFFB028B3DD0A97, "ib")end - IS_VEHICLE_PARACHUTE_DEPLOYED=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x3DE51E9C80B116CF, "i")end - VEHICLE_SET_RAMP_AND_RAMMING_CARS_TAKE_DAMAGE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x28D034A93FE31BF5, "ib")end - VEHICLE_SET_ENABLE_RAMP_CAR_SIDE_IMPULSE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x1BBAC99C0BC53656, "ii")end - VEHICLE_SET_ENABLE_NORMALISE_RAMP_CAR_VERTICAL_VELOCTIY=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x756AE6E962168A04, "ii")end - VEHICLE_SET_JET_WASH_FORCE_ENABLED=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x9D30687C57BAA0BB, "i")end - SET_VEHICLE_WEAPON_CAN_TARGET_OBJECTS=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x86B4B6212CB8B627, "ib")end - -- Used for blazer5. Changes the quadbike-jetski transformation input from raise/lower convertible roof (hold H by default) to horn (press E by default.) - SET_VEHICLE_USE_BOOST_BUTTON_FOR_WHEEL_RETRACT=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x41290B40FA63E6DA, "b")end - _SET_VEHICLE_USE_HORN_BUTTON_FOR_NITROUS=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x1980F68872CC2C3D, "b")end - -- Parachute models: - -- - sr_prop_specraces_para_s_01 - -- - imp_prop_impexp_para_s (SecuroServ; Default) - -- Plus, many more props can be used as vehicle parachutes, like umbrellas (prop_beach_parasol_03), and unlike SET_PLAYER_PARACHUTE_MODEL_OVERRIDE, you won't get stuck mid-air when using an umbrella. - VEHICLE_SET_PARACHUTE_MODEL_OVERRIDE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[Hash (int)]] modelHash)return native_invoker.unified_void(vehicle, modelHash, 0x4D610C6B56031351, "ii")end - -- Variations available for the generic parachute (sr_prop_specraces_para_s_01): - -- - 0: Rainbow - -- - 1: Red - -- - 2: White, blue, yellow - -- - 3: Black, red, white - -- - 4: Red, white, blue - -- - 5: Blue - -- - 6: Black - -- - 7: Black, yellow - VEHICLE_SET_PARACHUTE_MODEL_TINT_INDEX=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] textureVariation)return native_invoker.unified_void(vehicle, textureVariation, 0xA74AD2439468C883, "ii")end - VEHICLE_SET_OVERRIDE_EXTENABLE_SIDE_RATIO=--[[int]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_int(p0, p1, 0x0419B167EE128F33, "ii")end - VEHICLE_SET_EXTENABLE_SIDE_TARGET_RATIO=--[[int]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_int(p0, p1, 0xF3B0E0AED097A3F5, "ii")end - VEHICLE_SET_OVERRIDE_SIDE_RATIO=--[[int]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_int(p0, p1, 0xD3E51C0AB8C26EEE, "ii")end - GET_ALL_VEHICLES=--[[int]] function(--[[Any* (pointer)]] vehsStruct)return native_invoker.unified_int(vehsStruct, 0x9B8E1BF04B51F2E8, "p")end - SET_CARGOBOB_EXTA_PICKUP_RANGE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x72BECCF4B829522E, "ii")end - SET_OVERRIDE_VEHICLE_DOOR_TORQUE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x66E3AAFACE2D1EB8, "iii")end - -- Enables/disables the ability to wheelie on motorcycles. - SET_WHEELIE_ENABLED=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] enabled)return native_invoker.unified_void(vehicle, enabled, 0x1312DDD8385AEE4E, "ib")end - SET_DISABLE_HELI_EXPLODE_FROM_BODY_DAMAGE=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xEDBC8405B3895CC9, "ii")end - SET_DISABLE_EXPLODE_FROM_BODY_DAMAGE_ON_COLLISION=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] value)return native_invoker.unified_void(vehicle, value, 0x26E13D440E7F6064, "if")end - SET_TRAILER_ATTACHMENT_ENABLED=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x2FA2494B47FDD009, "ii")end - SET_ROCKET_BOOST_FILL=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] percentage)return native_invoker.unified_void(vehicle, percentage, 0xFEB2DDED3509562E, "if")end - -- Set state to true to extend the wings, false to retract them. - SET_GLIDER_ACTIVE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] state)return native_invoker.unified_void(vehicle, state, 0x544996C0081ABDEB, "ib")end - -- Resets the vehicle's turret to its default position in scripted cameras. Doesn't seem to affect turrets that are occupied by a ped. - SET_SHOULD_RESET_TURRET_IN_SCRIPTED_CAMERAS=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] shouldReset)return native_invoker.unified_void(vehicle, shouldReset, 0x78CEEE41F49F421F, "ib")end - SET_VEHICLE_DISABLE_COLLISION_UPON_CREATION=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] disable)return native_invoker.unified_void(vehicle, disable, 0xAF60E6A2936F982A, "ib")end - SET_GROUND_EFFECT_REDUCES_DRAG=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x430A7631A84C9BE7, "b")end - -- Disables collision for this vehicle (maybe it also supports other entities, not sure). - -- Only world/building/fixed world objects will have their collisions disabled, props, peds, or any other entity still collides with the vehicle. - -- Example: https://streamable.com/6n45d5 - -- Not sure if there is a native (and if so, which one) that resets the collisions. - SET_DISABLE_MAP_COLLISION=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x75627043C6AA90AD, "i")end - SET_DISABLE_PED_STAND_ON_TOP=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x8235F1BEAD557629, "ib")end - SET_VEHICLE_DAMAGE_SCALES=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(vehicle, p1, p2, p3, p4, 0x9640E30A7F395E4B, "iiiii")end - SET_PLANE_SECTION_DAMAGE_SCALE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(vehicle, p1, p2, 0x0BBB9A7A8FFE931B, "iii")end - -- Stops the cargobob from being able to attach any vehicle - SET_HELI_CAN_PICKUP_ENTITY_THAT_HAS_PICK_UP_DISABLED=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x94A68DA412C4007D, "ib")end - -- Sets the amount of bombs that this vehicle has. As far as I know, this does _not_ impact vehicle weapons or the ammo of those weapons in any way, it is just a way to keep track of the amount of bombs in a specific plane. - SET_VEHICLE_BOMB_AMMO=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] bombCount)return native_invoker.unified_void(vehicle, bombCount, 0xF4B2ED59DEB5D774, "ii")end - -- Gets the amount of bombs that this vehicle has. As far as I know, this does _not_ impact vehicle weapons or the ammo of those weapons in any way, it is just a way to keep track of the amount of bombs in a specific plane. - GET_VEHICLE_BOMB_AMMO=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0xEA12BD130D7569A1, "i")end - -- Similar to SET_VEHICLE_BOMB_AMMO, this sets the amount of countermeasures that are present on this vehicle. - -- Use GET_VEHICLE_BOMB_AMMO to get the current amount. - SET_VEHICLE_COUNTERMEASURE_AMMO=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] counterMeasureCount)return native_invoker.unified_void(vehicle, counterMeasureCount, 0x9BDA23BF666F0855, "ii")end - -- Similar to `GET_VEHICLE_BOMB_AMMO`, this gets the amount of countermeasures that are present on this vehicle. - -- Use SET_VEHICLE_COUNTERMEASURE_AMMO to set the current amount. - GET_VEHICLE_COUNTERMEASURE_AMMO=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0xF846AA63DF56B804, "i")end - SET_HELI_COMBAT_OFFSET=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(vehicle, x, y, z, 0x0A3F820A9A9A9AC5, "ifff")end - -- Used in decompiled scripts in combination with GET_VEHICLE_SIZE - -- p7 is usually 2 - -- p8 is usually 1 - GET_CAN_VEHICLE_BE_PLACED_HERE=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ,--[[int]] p7,--[[Any (int)]] p8)return native_invoker.unified_bool(vehicle, x, y, z, rotX, rotY, rotZ, p7, p8, 0x51F30DB60626A20E, "iffffffii")end - -- Sets a flag on heli and another vehicle type. - SET_DISABLE_AUTOMATIC_CRASH_TASK=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x97841634EF7DF1D6, "ib")end - -- Used in conjunction with SET_SPECIAL_FLIGHT_MODE_TARGET_RATIO, in Rockstar's scripts. Using this will instantly transform the vehicle into hover mode starting from the given ratio (ranging from 0.0 to 1.0, values greater than 1.0 will put the vehicle into a glitched state.) If this is not used alongside SET_SPECIAL_FLIGHT_MODE_TARGET_RATIO, the vehicle will automatically transform back into car mode. - -- - -- Usable only with the deluxo and other vehicles with deluxo-like hover mode toggle, modded or otherwise. Does nothing when used on oppressor2. - -- - -- Example: - -- Ped playerPed = PLAYER::PLAYER_PED_ID(); - -- Vehicle veh = PED::GET_VEHICLE_PED_IS_USING(playerPed); - -- VEHICLE::SET_SPECIAL_FLIGHT_MODE_RATIO(veh, 0.7f); - -- VEHICLE::SET_SPECIAL_FLIGHT_MODE_TARGET_RATIO(veh, 1.0f); - SET_SPECIAL_FLIGHT_MODE_RATIO=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] ratio)return native_invoker.unified_void(vehicle, ratio, 0xD138FA15C9776837, "if")end - -- Used in conjunction with SET_SPECIAL_FLIGHT_MODE_RATIO, in Rockstar's scripts. The vehicle will transform into the given targetRatio, starting from the vehicle's current hover mode transform ratio (which can also be manually set by SET_SPECIAL_FLIGHT_MODE_RATIO,) i.e. setting targetRatio to 0.0 while the vehicle is in hover mode will transform the vehicle into car mode, likewise setting targetRatio to 1.0 while the vehicle is in car mode will transform the vehicle into hover mode, and if the current transform ratio is set to 0.7 while targetRatio is 1.0 the vehicle will transform into hover mode starting from being already partially transformed. - -- - -- targetRatio is recommended to always be 0.0 or 1.0, otherwise the vehicle will transform into a glitched state. - -- - -- Usable only with the deluxo and other vehicles with deluxo-like hover mode toggle, modded or otherwise. Does nothing when used on oppressor2. - -- - -- Example: - -- Ped playerPed = PLAYER::PLAYER_PED_ID(); - -- Vehicle veh = PED::GET_VEHICLE_PED_IS_USING(playerPed); - -- VEHICLE::SET_SPECIAL_FLIGHT_MODE_RATIO(veh, 0.7f); - -- VEHICLE::SET_SPECIAL_FLIGHT_MODE_TARGET_RATIO(veh, 1.0f); - SET_SPECIAL_FLIGHT_MODE_TARGET_RATIO=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] targetRatio)return native_invoker.unified_void(vehicle, targetRatio, 0x438B3D7CA026FE91, "if")end - -- It will override the ability to transform deluxo. For oppressor it will work just like SET_DISABLE_HOVER_MODE_FLIGHT - SET_SPECIAL_FLIGHT_MODE_ALLOWED=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xF1211889DF15A763, "ib")end - -- Disables "wings" for some flying vehicles. Works only for oppressor _2_ and deluxo. - -- For deluxo it just immediately removes vehicle's "wings" and you will be not able to fly up. - -- For oppressor 2 it will remove wings right after you land. And you will not able to fly up anymore too. - -- But for opressor 2 you still can fly if you somehow get back in the air. - SET_DISABLE_HOVER_MODE_FLIGHT=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x2D55FE374D5FDB91, "ib")end - -- Checks if Chernobog's stabilizers are deployed or not. - -- These are the metal supports that allow it to fire. - -- This native only applies to the Chernobog. - GET_OUTRIGGERS_DEPLOYED=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x3A9128352EAC9E85, "i")end - -- Native is significantly more complicated than simply generating a random vector & length. - -- The 'point' is either 400.0 or 250.0 units away from the Ped's current coordinates; and paths into functions like rage::grcViewport___IsSphereVisible - FIND_SPAWN_COORDINATES_FOR_HELI=--[[Vector3 (vector3)]] function(--[[Ped (int)]] ped)return native_invoker.unified_vector3(ped, 0x8DC9675797123522, "i")end - -- Only used with the "akula" and "annihilator2" in the decompiled native scripts. - SET_DEPLOY_FOLDING_WINGS=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] deploy,--[[BOOL (bool)]] p2)return native_invoker.unified_void(vehicle, deploy, p2, 0xB251E0B33E58B424, "ibb")end - -- Only used with the "akula" and "annihilator2" in the decompiled native scripts. - ARE_FOLDING_WINGS_DEPLOYED=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xAEF12960FA943792, "i")end - _SET_DEPLOY_MISSILE_BAYS=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] deploy)return native_invoker.unified_void(vehicle, deploy, 0x0C02468829E4AA65, "ib")end - _ARE_MISSILE_BAYS_DEPLOYED=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xEA4743874D515F13, "i")end - SET_DIP_STRAIGHT_DOWN_WHEN_CRASHING_PLANE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xAA653AE61924B0A0, "ib")end - -- Toggles specific flag on turret - SET_TURRET_HIDDEN=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] index,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, index, toggle, 0xC60060EB0D8AC7B1, "iib")end - SET_HOVER_MODE_WING_RATIO=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] ratio)return native_invoker.unified_void(vehicle, ratio, 0x70A252F60A3E036B, "if")end - -- Disables turret movement when called in a loop. You can still fire and aim. You cannot shoot backwards though. - SET_DISABLE_TURRET_MOVEMENT=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] turretId)return native_invoker.unified_void(vehicle, turretId, 0xE615BB7A7752C76A, "ii")end - SET_FORCE_FIX_LINK_MATRICES=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x887FA38787DE8C72, "i")end - -- Affects the playback speed of the submarine car conversion animations. Does not affect hardcoded animations such as the wheels being retracted. - SET_TRANSFORM_RATE_FOR_ANIMATION=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] transformRate)return native_invoker.unified_void(vehicle, transformRate, 0x498218259FB7C72D, "if")end - -- When set to true, the key to transform a car to submarine mode changes from raise/lower convertible roof (hold H by default) to special vehicle transform (press X by default.) - SET_TRANSFORM_TO_SUBMARINE_USES_ALTERNATE_INPUT=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x41B9FB92EDED32A6, "ib")end - -- Does nothing. It's a nullsub. - SET_VEHICLE_COMBAT_MODE=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x36DE109527A2C0C4, "b")end - -- Does nothing. It's a nullsub. - SET_VEHICLE_DETONATION_MODE=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x82E0AC411E41A5B4, "b")end - -- Does nothing. It's a nullsub. - SET_VEHICLE_SHUNT_ON_STICK=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x99A05839C46CE316, "b")end - GET_IS_VEHICLE_SHUNTING=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xA2459F72C14E2E8D, "i")end - GET_HAS_VEHICLE_BEEN_HIT_BY_SHUNT=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xE8718FAF591FD224, "i")end - -- Returns last vehicle that was rammed by the given vehicle using the shunt boost. - GET_LAST_SHUNT_VEHICLE=--[[Vehicle (int)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x04F2FA6E234162F7, "i")end - SET_DISABLE_VEHICLE_EXPLOSIONS_DAMAGE=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x143921E45EC44D62, "b")end - SET_OVERRIDE_NITROUS_LEVEL=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle,--[[float]] level,--[[float]] power,--[[float]] rechargeTime,--[[BOOL (bool)]] disableSound)return native_invoker.unified_void(vehicle, toggle, level, power, rechargeTime, disableSound, 0xC8E9B6B71B8E660D, "ibfffb")end - SET_NITROUS_IS_ACTIVE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] enabled)return native_invoker.unified_void(vehicle, enabled, 0x465EEA70AF251045, "ib")end - _SET_OVERRIDE_TRACTION_LOSS_MULTIPLIER=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] modifier)return native_invoker.unified_void(vehicle, modifier, 0xAFD262ACCA64479A, "if")end - -- First two floats relate to rumble, the last is a threshold - _SET_DRIFT_SLIP_ANGLE_LIMITS=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] durationScalar,--[[float]] amplitudeScalar,--[[float]] slipAngleLimit)return native_invoker.unified_void(vehicle, durationScalar, amplitudeScalar, slipAngleLimit, 0xDAF4C98C18AC6F06, "ifff")end - _SET_MINIMUM_TIME_BETWEEN_GEAR_SHIFTS=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] time)return native_invoker.unified_void(vehicle, time, 0x16CFBC5E7EB32861, "ii")end - FULLY_CHARGE_NITROUS=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x1A2BCC8C636F9226, "i")end - _GET_REMAINING_NITROUS_DURATION=--[[float]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_float(vehicle, 0xBEC4B8653462450E, "i")end - IS_NITROUS_ACTIVE=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x491E822B2C464FE4, "i")end - CLEAR_NITROUS=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0xC889AE921400E1ED, "i")end - SET_INCREASE_WHEEL_CRUSH_DAMAGE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x2970EAA18FD5E42F, "ib")end - -- Sets some global vehicle related bool - SET_DISABLE_WEAPON_BLADE_FORCES=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x211E95CE9903940C, "b")end - -- Changes the car jump control to require a double-tap to activate. - SET_USE_DOUBLE_CLICK_FOR_CAR_JUMP=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x5BBCF35BF6E456F7, "b")end - -- Returns true only if the "tombstone" bone is attached to the vehicle, irrespective of "FLAG_HAS_TOMBSTONE" being present or not. Detaching the tombstone will return false. - GET_DOES_VEHICLE_HAVE_TOMBSTONE=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x71AFB258CCED3A27, "i")end - -- Disables detachable bumber from domnator4, dominator5, dominator6, see https://gfycat.com/SecondUnluckyGosling - HIDE_TOMBSTONE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xAE71FB656C600587, "ib")end - APPLY_EMP_EFFECT=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x249249D74F813EB2, "i")end - -- Returns whether this vehicle is currently disabled by an EMP mine. - GET_IS_VEHICLE_DISABLED_BY_EMP=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x0506ED94363AD905, "i")end - SET_DISABLE_RETRACTING_WEAPON_BLADES=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x8F0D5BA1C2CC91D7, "b")end - -- Usable wheels: - -- 0: wheel_lf - -- 1: wheel_rf - -- 2: wheel_lm1 - -- 3: wheel_rm1 - -- 4: wheel_lr - -- 5: wheel_rr - GET_TYRE_HEALTH=--[[float]] function(--[[Vehicle (int)]] vehicle,--[[int]] wheelIndex)return native_invoker.unified_float(vehicle, wheelIndex, 0x55EAB010FAEE9380, "ii")end - -- SET_TYRE_WEAR_RATE must be active, otherwise values set to <1000.0f will default to 350.0f - -- - -- Usable wheels: - -- 0: wheel_lf - -- 1: wheel_rf - -- 2: wheel_lm1 - -- 3: wheel_rm1 - -- 4: wheel_lr - -- 5: wheel_rr - SET_TYRE_HEALTH=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] wheelIndex,--[[float]] health)return native_invoker.unified_void(vehicle, wheelIndex, health, 0x74C68EF97645E79D, "iif")end - -- Returns the multiplier value from SET_TYRE_WEAR_RATE - -- - -- Usable wheels: - -- 0: wheel_lf - -- 1: wheel_rf - -- 2: wheel_lm1 - -- 3: wheel_rm1 - -- 4: wheel_lr - -- 5: wheel_rr - GET_TYRE_WEAR_RATE=--[[float]] function(--[[Vehicle (int)]] vehicle,--[[int]] wheelIndex)return native_invoker.unified_float(vehicle, wheelIndex, 0x6E387895952F4F71, "ii")end - -- Needs to be run for tire wear to work. Multiplier affects the downforce and how fast the tires will wear out, higher values essentially make the vehicle slower on straights and its tires will wear down quicker when cornering. Value must be >0f. - -- Default value in Rockstar's Open Wheel Race JSON's ("owrtws", "owrtwm", "owrtwh") is 1.0 - -- - -- Usable wheels: - -- 0: wheel_lf - -- 1: wheel_rf - -- 2: wheel_lm1 - -- 3: wheel_rm1 - -- 4: wheel_lr - -- 5: wheel_rr - SET_TYRE_WEAR_RATE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] wheelIndex,--[[float]] multiplier)return native_invoker.unified_void(vehicle, wheelIndex, multiplier, 0x01894E2EDE923CA2, "iif")end - -- Controls how fast the tires wear out. - -- - -- Default values from Rockstar's Open Wheel Race JSON's: - -- "owrtss" (Soft): 2.2 - -- "owrtsm" (Medium): 1.7 - -- "owrtsh" (Hard): 1.2 - -- - -- Usable wheels: - -- 0: wheel_lf - -- 1: wheel_rf - -- 2: wheel_lm1 - -- 3: wheel_rm1 - -- 4: wheel_lr - -- 5: wheel_rr - SET_TYRE_WEAR_RATE_SCALE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] wheelIndex,--[[float]] multiplier)return native_invoker.unified_void(vehicle, wheelIndex, multiplier, 0x392183BB9EA57697, "iif")end - -- Controls how much traction the wheel loses. - -- - -- Default values from Rockstar's Open Wheel Race JSON's: - -- "owrtds" (Soft): 0.05 - -- "owrtdm" (Medium): 0.45 - -- "owrtdh" (Hard): 0.8 - -- - -- Usable wheels: - -- 0: wheel_lf - -- 1: wheel_rf - -- 2: wheel_lm1 - -- 3: wheel_rm1 - -- 4: wheel_lr - -- 5: wheel_rr - SET_TYRE_MAXIMUM_GRIP_DIFFERENCE_DUE_TO_WEAR_RATE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] wheelIndex,--[[float]] multiplier)return native_invoker.unified_void(vehicle, wheelIndex, multiplier, 0xC970D0E0FC31D768, "iif")end - SET_AIRCRAFT_IGNORE_HIGHTMAP_OPTIMISATION=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] p1)return native_invoker.unified_void(vehicle, p1, 0xF8B49F5BA7F850E7, "ii")end - -- Lowers the vehicle's stance. Only works for vehicles that have strAdvancedFlags 0x8000 and 0x4000000 set. - SET_REDUCED_SUSPENSION_FORCE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] enable)return native_invoker.unified_void(vehicle, enable, 0x3A375167F5782A65, "ib")end - SET_DRIFT_TYRES=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x5AC79C98C5C17F05, "ib")end - GET_DRIFT_TYRES_SET=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x2F5A72430E78C8D3, "i")end - -- Implemented only for trains. - NETWORK_USE_HIGH_PRECISION_TRAIN_BLENDING=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xEC0C1D4922AF9754, "ib")end - -- Only used in R* Script fm_content_cargo - SET_CHECK_FOR_ENOUGH_ROOM_FOR_PED=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0xEF9D388F8D377F44, "ib")end - -- _SET_ALLOW_R* - _SET_ALLOW_V* - _SET_ALLOW_COLLISION_WHEN_IN_VEHICLE=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x27D27223E8EF22ED, "ib")end - _IS_VEHICLE_GEN9_EXCLUSIVE_MODEL=--[[BOOL (bool)]] function(--[[Hash (int)]] vehicleModel)return native_invoker.unified_bool(vehicleModel, 0x6638C0F19DE692FE, "i")end - _GET_VEHICLE_MAX_EXHAUST_BONE_COUNT=--[[int]] function()return native_invoker.unified_int(0x3EE18B00CD86C54F, "")end - _GET_VEHICLE_EXHAUST_BONE=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[int]] index,--[[int* (pointer)]] boneIndex,--[[BOOL* (pointer)]] axisX)return native_invoker.unified_bool(vehicle, index, boneIndex, axisX, 0xE728F090D538CB18, "iipp")end --- WATER - -- This function set height to the value of z-axis of the water surface. - -- - -- This function works with sea and lake. However it does not work with shallow rivers (e.g. raton canyon will return -100000.0f) - -- - -- note: seems to return true when you are in water - GET_WATER_HEIGHT=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float* (pointer)]] height)return native_invoker.unified_bool(x, y, z, height, 0xF6829842C06AE524, "fffp")end - GET_WATER_HEIGHT_NO_WAVES=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float* (pointer)]] height)return native_invoker.unified_bool(x, y, z, height, 0x8EE6B53CE13A9794, "fffp")end - TEST_PROBE_AGAINST_WATER=--[[BOOL (bool)]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[Vector3* (pointer)]] result)return native_invoker.unified_bool(x1, y1, z1, x2, y2, z2, result, 0xFFA5D878809819DB, "ffffffp")end - -- enum eScriptWaterTestResult - -- { - -- SCRIPT_WATER_TEST_RESULT_NONE, - -- SCRIPT_WATER_TEST_RESULT_WATER, - -- SCRIPT_WATER_TEST_RESULT_BLOCKED, - -- }; - TEST_PROBE_AGAINST_ALL_WATER=--[[int]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[int]] flags,--[[float* (pointer)]] waterHeight)return native_invoker.unified_int(x1, y1, z1, x2, y2, z2, flags, waterHeight, 0x8974647ED222EA5F, "ffffffip")end - -- See TEST_PROBE_AGAINST_ALL_WATER. - TEST_VERTICAL_PROBE_AGAINST_ALL_WATER=--[[int]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] flags,--[[float* (pointer)]] waterHeight)return native_invoker.unified_int(x, y, z, flags, waterHeight, 0x2B3451FA1E3142E2, "fffip")end - -- Sets the water height for a given position and radius. - -- - MODIFY_WATER=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] radius,--[[float]] height)return native_invoker.unified_void(x, y, radius, height, 0xC443FD757C3BA637, "ffff")end - ADD_EXTRA_CALMING_QUAD=--[[int]] function(--[[float]] xLow,--[[float]] yLow,--[[float]] xHigh,--[[float]] yHigh,--[[float]] height)return native_invoker.unified_int(xLow, yLow, xHigh, yHigh, height, 0xFDBF4CDBC07E1706, "fffff")end - -- p0 is the handle returned from ADD_EXTRA_CALMING_QUAD - REMOVE_EXTRA_CALMING_QUAD=--[[void]] function(--[[int]] calmingQuad)return native_invoker.unified_void(calmingQuad, 0xB1252E3E59A82AAF, "i")end - -- Sets a value that determines how aggressive the ocean waves will be. Values of 2.0 or more make for very aggressive waves like you see during a thunderstorm. - -- - -- Works only ~200 meters around the player. - SET_DEEP_OCEAN_SCALER=--[[void]] function(--[[float]] intensity)return native_invoker.unified_void(intensity, 0xB96B00E976BE977F, "f")end - -- Gets the aggressiveness factor of the ocean waves. - GET_DEEP_OCEAN_SCALER=--[[float]] function()return native_invoker.unified_float(0x2B2A2CC86778B619, "")end - SET_CALMED_WAVE_HEIGHT_SCALER=--[[void]] function(--[[float]] height)return native_invoker.unified_void(height, 0x547237AA71AB44DE, "f")end - -- Sets the waves intensity back to original (1.0 in most cases). - RESET_DEEP_OCEAN_SCALER=--[[void]] function()return native_invoker.unified_void(0x5E5E99285AE812DB, "")end --- WEAPON - -- Enables laser sight on any weapon. - -- - -- It doesn't work. Neither on tick nor OnKeyDown - ENABLE_LASER_SIGHT_RENDERING=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xC8B46D7727D864AA, "b")end - GET_WEAPON_COMPONENT_TYPE_MODEL=--[[Hash (int)]] function(--[[Hash (int)]] componentHash)return native_invoker.unified_int(componentHash, 0x0DB57B41EC1DB083, "i")end - -- Returns the model of any weapon. - -- - -- Can also take an ammo hash? - -- sub_6663a(&l_115B, WEAPON::GET_WEAPONTYPE_MODEL(${ammo_rpg})); - GET_WEAPONTYPE_MODEL=--[[Hash (int)]] function(--[[Hash (int)]] weaponHash)return native_invoker.unified_int(weaponHash, 0xF46CDC33180FDA94, "i")end - GET_WEAPONTYPE_SLOT=--[[Hash (int)]] function(--[[Hash (int)]] weaponHash)return native_invoker.unified_int(weaponHash, 0x4215460B9B8B7FA0, "i")end - GET_WEAPONTYPE_GROUP=--[[Hash (int)]] function(--[[Hash (int)]] weaponHash)return native_invoker.unified_int(weaponHash, 0xC3287EE3050FB74C, "i")end - -- Returns the amount of extra components the specified component has. - -- Returns -1 if the component isn't of type CWeaponComponentVariantModel. - GET_WEAPON_COMPONENT_VARIANT_EXTRA_COUNT=--[[int]] function(--[[Hash (int)]] componentHash)return native_invoker.unified_int(componentHash, 0x6558AC7C17BFEF58, "i")end - -- Returns the model hash of the extra component at specified index. - GET_WEAPON_COMPONENT_VARIANT_EXTRA_MODEL=--[[Hash (int)]] function(--[[Hash (int)]] componentHash,--[[int]] extraComponentIndex)return native_invoker.unified_int(componentHash, extraComponentIndex, 0x4D1CB8DC40208A17, "ii")end - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - SET_CURRENT_PED_WEAPON=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[BOOL (bool)]] bForceInHand)return native_invoker.unified_void(ped, weaponHash, bForceInHand, 0xADF692B254977C0C, "iib")end - -- The return value seems to indicate returns true if the hash of the weapon object weapon equals the weapon hash. - -- p2 seems to be 1 most of the time. - -- - -- - -- - -- - -- - -- p2 is not implemented - -- - -- disassembly said that? - -- - GET_CURRENT_PED_WEAPON=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Hash* (pointer)]] weaponHash,--[[BOOL (bool)]] p2)return native_invoker.unified_bool(ped, weaponHash, p2, 0x3A87E44BB9A01D54, "ipb")end - GET_CURRENT_PED_WEAPON_ENTITY_INDEX=--[[Entity (int)]] function(--[[Ped (int)]] ped,--[[Any (int)]] p1)return native_invoker.unified_int(ped, p1, 0x3B390A939AF0B5FC, "ii")end - -- p1 is always 0 in the scripts. - GET_BEST_PED_WEAPON=--[[Hash (int)]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1)return native_invoker.unified_int(ped, p1, 0x8483E98E8B888AE2, "ib")end - -- Full list of weapons by DurtyFree (Search for VEHICLE_*): https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - SET_CURRENT_PED_VEHICLE_WEAPON=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash)return native_invoker.unified_bool(ped, weaponHash, 0x75C55983C2C39DAA, "ii")end - -- Example in VB - -- - -- Public Shared Function GetVehicleCurrentWeapon(Ped As Ped) As Integer - -- Dim arg As New OutputArgument() - -- Native.Function.Call(Hash.GET_CURRENT_PED_VEHICLE_WEAPON, Ped, arg) - -- Return arg.GetResult(Of Integer)() - -- End Function - -- - -- Usage: - -- If GetVehicleCurrentWeapon(Game.Player.Character) = -821520672 Then ...Do something - -- Note: -821520672 = VEHICLE_WEAPON_PLANE_ROCKET - GET_CURRENT_PED_VEHICLE_WEAPON=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Hash* (pointer)]] weaponHash)return native_invoker.unified_bool(ped, weaponHash, 0x1017582BCD3832DC, "ip")end - SET_PED_CYCLE_VEHICLE_WEAPONS_ONLY=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x50276EF8172F5F12, "i")end - -- Checks if the ped is currently equipped with a weapon matching a bit specified using a bitwise-or in typeFlags. - -- - -- Type flag bit values: - -- 1 = Melee weapons - -- 2 = Explosive weapons - -- 4 = Any other weapons - -- - -- Not specifying any bit will lead to the native *always* returning 'false', and for example specifying '4 | 2' will check for any weapon except fists and melee weapons. - -- 7 returns true if you are equipped with any weapon except your fists. - -- 6 returns true if you are equipped with any weapon except melee weapons. - -- 5 returns true if you are equipped with any weapon except the Explosives weapon group. - -- 4 returns true if you are equipped with any weapon except Explosives weapon group AND melee weapons. - -- 3 returns true if you are equipped with either Explosives or Melee weapons (the exact opposite of 4). - -- 2 returns true only if you are equipped with any weapon from the Explosives weapon group. - -- 1 returns true only if you are equipped with any Melee weapon. - -- 0 never returns true. - -- - -- Note: When I say "Explosives weapon group", it does not include the Jerry can and Fire Extinguisher. - IS_PED_ARMED=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[int]] typeFlags)return native_invoker.unified_bool(ped, typeFlags, 0x475768A975D5AD17, "ii")end - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - IS_WEAPON_VALID=--[[BOOL (bool)]] function(--[[Hash (int)]] weaponHash)return native_invoker.unified_bool(weaponHash, 0x937C71165CF334B3, "i")end - -- p2 should be FALSE, otherwise it seems to always return FALSE - -- - -- Bool does not check if the weapon is current equipped, unfortunately. - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - HAS_PED_GOT_WEAPON=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[BOOL (bool)]] p2)return native_invoker.unified_bool(ped, weaponHash, p2, 0x8DECB02F88F428BC, "iib")end - IS_PED_WEAPON_READY_TO_SHOOT=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xB80CA294F2F26749, "i")end - GET_PED_WEAPONTYPE_IN_SLOT=--[[Hash (int)]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponSlot)return native_invoker.unified_int(ped, weaponSlot, 0xEFFED78E9011134D, "ii")end - -- WEAPON::GET_AMMO_IN_PED_WEAPON(PLAYER::PLAYER_PED_ID(), a_0) - -- - -- From decompiled scripts - -- Returns total ammo in weapon - -- - -- GTALua Example : - -- natives.WEAPON.GET_AMMO_IN_PED_WEAPON(plyPed, WeaponHash) - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - GET_AMMO_IN_PED_WEAPON=--[[int]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponhash)return native_invoker.unified_int(ped, weaponhash, 0x015A522136D7F951, "ii")end - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ADD_AMMO_TO_PED=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[int]] ammo)return native_invoker.unified_void(ped, weaponHash, ammo, 0x78F0424C34306220, "iii")end - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - SET_PED_AMMO=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[int]] ammo,--[[BOOL (bool)]] p3)return native_invoker.unified_void(ped, weaponHash, ammo, p3, 0x14E56BC5B5DB6A19, "iiib")end - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - SET_PED_INFINITE_AMMO=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle,--[[Hash (int)]] weaponHash)return native_invoker.unified_void(ped, toggle, weaponHash, 0x3EDCB0505123623B, "ibi")end - SET_PED_INFINITE_AMMO_CLIP=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x183DADC6AA953186, "ib")end - SET_PED_STUN_GUN_FINITE_AMMO=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x24C024BA8379A70A, "ii")end - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - GIVE_WEAPON_TO_PED=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[int]] ammoCount,--[[BOOL (bool)]] isHidden,--[[BOOL (bool)]] bForceInHand)return native_invoker.unified_void(ped, weaponHash, ammoCount, isHidden, bForceInHand, 0xBF0FD6E56C964FCB, "iiibb")end - -- Gives a weapon to PED with a delay, example: - -- - -- WEAPON::GIVE_DELAYED_WEAPON_TO_PED(PED::PLAYER_PED_ID(), MISC::GET_HASH_KEY("WEAPON_PISTOL"), 1000, false) - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - GIVE_DELAYED_WEAPON_TO_PED=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[int]] ammoCount,--[[BOOL (bool)]] bForceInHand)return native_invoker.unified_void(ped, weaponHash, ammoCount, bForceInHand, 0xB282DC6EBD803C75, "iiib")end - -- setting the last params to false it does that same so I would suggest its not a toggle - REMOVE_ALL_PED_WEAPONS=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1)return native_invoker.unified_void(ped, p1, 0xF25DF915FA38C5F3, "ib")end - -- This native removes a specified weapon from your selected ped. - -- - -- Example: - -- C#: - -- Function.Call(Hash.REMOVE_WEAPON_FROM_PED, Game.Player.Character, 0x99B507EA); - -- - -- C++: - -- WEAPON::REMOVE_WEAPON_FROM_PED(PLAYER::PLAYER_PED_ID(), 0x99B507EA); - -- - -- The code above removes the knife from the player. - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - REMOVE_WEAPON_FROM_PED=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash)return native_invoker.unified_void(ped, weaponHash, 0x4899CB088EDF59B8, "ii")end - -- Hides the players weapon during a cutscene. - HIDE_PED_WEAPON_FOR_SCRIPTED_CUTSCENE=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x6F6981D2253C208F, "ib")end - -- Has 5 parameters since latest patches. - SET_PED_CURRENT_WEAPON_VISIBLE=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] visible,--[[BOOL (bool)]] deselectWeapon,--[[BOOL (bool)]] p3,--[[BOOL (bool)]] p4)return native_invoker.unified_void(ped, visible, deselectWeapon, p3, p4, 0x0725A4CCFDED9A70, "ibbbb")end - SET_PED_DROPS_WEAPONS_WHEN_DEAD=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x476AE72C1D19D1A8, "ib")end - -- It determines what weapons caused damage: - -- - -- If you want to define only a specific weapon, second parameter=weapon hash code, third parameter=0 - -- If you want to define any melee weapon, second parameter=0, third parameter=1. - -- If you want to identify any weapon (firearms, melee, rockets, etc.), second parameter=0, third parameter=2. - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - HAS_PED_BEEN_DAMAGED_BY_WEAPON=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[int]] weaponType)return native_invoker.unified_bool(ped, weaponHash, weaponType, 0x2D343D2219CD027A, "iii")end - -- Does NOT seem to work with HAS_PED_BEEN_DAMAGED_BY_WEAPON. Use CLEAR_ENTITY_LAST_WEAPON_DAMAGE and HAS_ENTITY_BEEN_DAMAGED_BY_WEAPON instead. - CLEAR_PED_LAST_WEAPON_DAMAGE=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x0E98F88A24C5F4B8, "i")end - -- It determines what weapons caused damage: - -- - -- If you want to define only a specific weapon, second parameter=weapon hash code, third parameter=0 - -- If you want to define any melee weapon, second parameter=0, third parameter=1. - -- If you want to identify any weapon (firearms, melee, rockets, etc.), second parameter=0, third parameter=2. - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - HAS_ENTITY_BEEN_DAMAGED_BY_WEAPON=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[Hash (int)]] weaponHash,--[[int]] weaponType)return native_invoker.unified_bool(entity, weaponHash, weaponType, 0x131D401334815E94, "iii")end - CLEAR_ENTITY_LAST_WEAPON_DAMAGE=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0xAC678E40BE7C74D2, "i")end - SET_PED_DROPS_WEAPON=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x6B7513D9966FBEC0, "i")end - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - SET_PED_DROPS_INVENTORY_WEAPON=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[float]] xOffset,--[[float]] yOffset,--[[float]] zOffset,--[[int]] ammoCount)return native_invoker.unified_void(ped, weaponHash, xOffset, yOffset, zOffset, ammoCount, 0x208A1888007FC0E6, "iifffi")end - -- p2 is mostly 1 in the scripts. - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - GET_MAX_AMMO_IN_CLIP=--[[int]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[BOOL (bool)]] p2)return native_invoker.unified_int(ped, weaponHash, p2, 0xA38DCFFCEA8962FA, "iib")end - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - GET_AMMO_IN_CLIP=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[int* (pointer)]] ammo)return native_invoker.unified_bool(ped, weaponHash, ammo, 0x2E1202248937775C, "iip")end - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - SET_AMMO_IN_CLIP=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[int]] ammo)return native_invoker.unified_bool(ped, weaponHash, ammo, 0xDCD2A934D65CB497, "iii")end - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - GET_MAX_AMMO=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[int* (pointer)]] ammo)return native_invoker.unified_bool(ped, weaponHash, ammo, 0xDC16122C7A20C933, "iip")end - -- Returns the max ammo for an ammo type. Ammo types: https://gist.github.com/root-cause/faf41f59f7a6d818b7db0b839bd147c1 - GET_MAX_AMMO_BY_TYPE=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Hash (int)]] ammoTypeHash,--[[int* (pointer)]] ammo)return native_invoker.unified_bool(ped, ammoTypeHash, ammo, 0x585847C5E4E11709, "iip")end - -- Ammo types: https://gist.github.com/root-cause/faf41f59f7a6d818b7db0b839bd147c1 - ADD_PED_AMMO_BY_TYPE=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] ammoTypeHash,--[[int]] ammo)return native_invoker.unified_void(ped, ammoTypeHash, ammo, 0x2472622CE1F2D45F, "iii")end - -- Ammo types: https://gist.github.com/root-cause/faf41f59f7a6d818b7db0b839bd147c1 - SET_PED_AMMO_BY_TYPE=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] ammoTypeHash,--[[int]] ammo)return native_invoker.unified_void(ped, ammoTypeHash, ammo, 0x5FD1E1F011E76D7E, "iii")end - GET_PED_AMMO_BY_TYPE=--[[int]] function(--[[Ped (int)]] ped,--[[Hash (int)]] ammoTypeHash)return native_invoker.unified_int(ped, ammoTypeHash, 0x39D22031557946C1, "ii")end - SET_PED_AMMO_TO_DROP=--[[void]] function(--[[Ped (int)]] ped,--[[int]] p1)return native_invoker.unified_void(ped, p1, 0xA4EFEF9440A5B0EF, "ii")end - SET_PICKUP_AMMO_AMOUNT_SCALER=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0xE620FD3512A04F18, "f")end - -- Returns the current ammo type of the specified ped's specified weapon. - -- MkII magazines will change the return value, like Pistol MkII returning AMMO_PISTOL without any components and returning AMMO_PISTOL_TRACER after Tracer Rounds component is attached. - -- Use 0xF489B44DD5AF4BD9 if you always want AMMO_PISTOL. - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - GET_PED_AMMO_TYPE_FROM_WEAPON=--[[Hash (int)]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash)return native_invoker.unified_int(ped, weaponHash, 0x7FEAD38B326B9F74, "ii")end - -- Returns the base/default ammo type of the specified ped's specified weapon. - -- Use GET_PED_AMMO_TYPE_FROM_WEAPON if you want current ammo type (like AMMO_MG_INCENDIARY/AMMO_MG_TRACER while using MkII magazines) and use this if you want base ammo type. (AMMO_MG) - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - GET_PED_ORIGINAL_AMMO_TYPE_FROM_WEAPON=--[[Hash (int)]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash)return native_invoker.unified_int(ped, weaponHash, 0xF489B44DD5AF4BD9, "ii")end - -- Pass ped. Pass address of Vector3. - -- The coord will be put into the Vector3. - -- The return will determine whether there was a coord found or not. - GET_PED_LAST_WEAPON_IMPACT_COORD=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Vector3* (pointer)]] coords)return native_invoker.unified_bool(ped, coords, 0x6C4D0409BA1A2BC2, "ip")end - -- p1/gadgetHash was always 0xFBAB5776 ("GADGET_PARACHUTE"). - -- p2 is always true. - SET_PED_GADGET=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] gadgetHash,--[[BOOL (bool)]] p2)return native_invoker.unified_void(ped, gadgetHash, p2, 0xD0D7B1E680ED4A1A, "iib")end - -- gadgetHash - was always 0xFBAB5776 ("GADGET_PARACHUTE"). - GET_IS_PED_GADGET_EQUIPPED=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Hash (int)]] gadgetHash)return native_invoker.unified_bool(ped, gadgetHash, 0xF731332072F5156C, "ii")end - -- Returns the hash of the weapon. - -- - -- var num7 = WEAPON::GET_SELECTED_PED_WEAPON(num4); - -- sub_27D3(num7); - -- switch (num7) - -- { - -- case 0x24B17070: - -- - -- Also see WEAPON::GET_CURRENT_PED_WEAPON. Difference? - -- - -- ------------------------------------------------------------------------- - -- - -- The difference is that GET_SELECTED_PED_WEAPON simply returns the ped's current weapon hash but GET_CURRENT_PED_WEAPON also checks the weapon object and returns true if the hash of the weapon object equals the weapon hash - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - GET_SELECTED_PED_WEAPON=--[[Hash (int)]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x0A6DB4965674D243, "i")end - -- WEAPON::EXPLODE_PROJECTILES(PLAYER::PLAYER_PED_ID(), func_221(0x00000003), 0x00000001); - EXPLODE_PROJECTILES=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[BOOL (bool)]] p2)return native_invoker.unified_void(ped, weaponHash, p2, 0xFC4BD125DE7611E4, "iib")end - -- If `explode` true, then removal is done through exploding the projectile. Basically the same as EXPLODE_PROJECTILES but without defining the owner ped. - REMOVE_ALL_PROJECTILES_OF_TYPE=--[[void]] function(--[[Hash (int)]] weaponHash,--[[BOOL (bool)]] explode)return native_invoker.unified_void(weaponHash, explode, 0xFC52E0F37E446528, "ib")end - GET_LOCKON_DISTANCE_OF_CURRENT_PED_WEAPON=--[[float]] function(--[[Ped (int)]] ped)return native_invoker.unified_float(ped, 0x840F03E9041E2C9C, "i")end - GET_MAX_RANGE_OF_CURRENT_PED_WEAPON=--[[float]] function(--[[Ped (int)]] ped)return native_invoker.unified_float(ped, 0x814C9D19DFD69679, "i")end - -- Fourth Parameter = unsure, almost always -1 - HAS_VEHICLE_GOT_PROJECTILE_ATTACHED=--[[BOOL (bool)]] function(--[[Ped (int)]] driver,--[[Vehicle (int)]] vehicle,--[[Hash (int)]] weaponHash,--[[Any (int)]] p3)return native_invoker.unified_bool(driver, vehicle, weaponHash, p3, 0x717C8481234E3B88, "iiii")end - -- Full list of weapons & components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - GIVE_WEAPON_COMPONENT_TO_PED=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[Hash (int)]] componentHash)return native_invoker.unified_void(ped, weaponHash, componentHash, 0xD966D51AA5B28BB9, "iii")end - -- Full list of weapons & components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - REMOVE_WEAPON_COMPONENT_FROM_PED=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[Hash (int)]] componentHash)return native_invoker.unified_void(ped, weaponHash, componentHash, 0x1E8BE90C74FB4C09, "iii")end - -- Full list of weapons & components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - HAS_PED_GOT_WEAPON_COMPONENT=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[Hash (int)]] componentHash)return native_invoker.unified_bool(ped, weaponHash, componentHash, 0xC593212475FAE340, "iii")end - -- Full list of weapons & components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - IS_PED_WEAPON_COMPONENT_ACTIVE=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[Hash (int)]] componentHash)return native_invoker.unified_bool(ped, weaponHash, componentHash, 0x0D78DE0572D3969E, "iii")end - REFILL_AMMO_INSTANTLY=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x8C0D57EA686FAD87, "i")end - -- Forces a ped to reload only if they are able to; if they have a full magazine, they will not reload. - MAKE_PED_RELOAD=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x20AE33F3AC9C0033, "i")end - -- Nearly every instance of p1 I found was 31. Nearly every instance of p2 I found was 0. - -- - -- REQUEST_WEAPON_ASSET(iLocal_1888, 31, 26); - REQUEST_WEAPON_ASSET=--[[void]] function(--[[Hash (int)]] weaponHash,--[[int]] p1,--[[int]] p2)return native_invoker.unified_void(weaponHash, p1, p2, 0x5443438F033E29C3, "iii")end - HAS_WEAPON_ASSET_LOADED=--[[BOOL (bool)]] function(--[[Hash (int)]] weaponHash)return native_invoker.unified_bool(weaponHash, 0x36E353271F0E90EE, "i")end - REMOVE_WEAPON_ASSET=--[[void]] function(--[[Hash (int)]] weaponHash)return native_invoker.unified_void(weaponHash, 0xAA08EF13F341C8FC, "i")end - -- Now has 8 params. - CREATE_WEAPON_OBJECT=--[[Object (int)]] function(--[[Hash (int)]] weaponHash,--[[int]] ammoCount,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] showWorldModel,--[[float]] scale,--[[Any (int)]] p7,--[[Any (int)]] p8,--[[Any (int)]] p9)return native_invoker.unified_int(weaponHash, ammoCount, x, y, z, showWorldModel, scale, p7, p8, p9, 0x9541D3CF0D398F36, "iifffbfiii")end - -- componentHash: - -- (use WEAPON::GET_WEAPON_COMPONENT_TYPE_MODEL() to get hash value) - -- ${component_at_ar_flsh}, ${component_at_ar_supp}, ${component_at_pi_flsh}, ${component_at_scope_large}, ${component_at_ar_supp_02} - GIVE_WEAPON_COMPONENT_TO_WEAPON_OBJECT=--[[void]] function(--[[Object (int)]] weaponObject,--[[Hash (int)]] componentHash)return native_invoker.unified_void(weaponObject, componentHash, 0x33E179436C0B31DB, "ii")end - -- see DOES_WEAPON_TAKE_WEAPON_COMPONENT for full list of weapons & components - REMOVE_WEAPON_COMPONENT_FROM_WEAPON_OBJECT=--[[void]] function(--[[Object (int)]] object,--[[Hash (int)]] componentHash)return native_invoker.unified_void(object, componentHash, 0xF7D82B0D66777611, "ii")end - -- see DOES_WEAPON_TAKE_WEAPON_COMPONENT for full list of weapons & components - HAS_WEAPON_GOT_WEAPON_COMPONENT=--[[BOOL (bool)]] function(--[[Object (int)]] weapon,--[[Hash (int)]] componentHash)return native_invoker.unified_bool(weapon, componentHash, 0x76A18844E743BF91, "ii")end - GIVE_WEAPON_OBJECT_TO_PED=--[[void]] function(--[[Object (int)]] weaponObject,--[[Ped (int)]] ped)return native_invoker.unified_void(weaponObject, ped, 0xB1FA61371AF7C4B7, "ii")end - -- Full list of weapons & components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - DOES_WEAPON_TAKE_WEAPON_COMPONENT=--[[BOOL (bool)]] function(--[[Hash (int)]] weaponHash,--[[Hash (int)]] componentHash)return native_invoker.unified_bool(weaponHash, componentHash, 0x5CEE3DF569CECAB0, "ii")end - -- Drops the current weapon and returns the object - -- - -- Unknown behavior when unarmed. - GET_WEAPON_OBJECT_FROM_PED=--[[Object (int)]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1)return native_invoker.unified_int(ped, p1, 0xCAE1DC9A0E22A16D, "ib")end - -- Gives the specified loadout to the specified ped. - -- Loadouts are defined in common.rpf\data\ai\loadouts.meta - GIVE_LOADOUT_TO_PED=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] loadoutHash)return native_invoker.unified_void(ped, loadoutHash, 0x68F8BE6AF5CDF8A6, "ii")end - -- tintIndex can be the following: - -- - -- 0 - Normal - -- 1 - Green - -- 2 - Gold - -- 3 - Pink - -- 4 - Army - -- 5 - LSPD - -- 6 - Orange - -- 7 - Platinum - -- Full list of weapons, components & tint indexes by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - SET_PED_WEAPON_TINT_INDEX=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[int]] tintIndex)return native_invoker.unified_void(ped, weaponHash, tintIndex, 0x50969B9B89ED5738, "iii")end - -- Full list of weapons, components & tint indexes by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - GET_PED_WEAPON_TINT_INDEX=--[[int]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash)return native_invoker.unified_int(ped, weaponHash, 0x2B9EEDC07BD06B9F, "ii")end - -- Full list of weapons, components & tint indexes by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - SET_WEAPON_OBJECT_TINT_INDEX=--[[void]] function(--[[Object (int)]] weapon,--[[int]] tintIndex)return native_invoker.unified_void(weapon, tintIndex, 0xF827589017D4E4A9, "ii")end - GET_WEAPON_OBJECT_TINT_INDEX=--[[int]] function(--[[Object (int)]] weapon)return native_invoker.unified_int(weapon, 0xCD183314F7CD2E57, "i")end - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - GET_WEAPON_TINT_COUNT=--[[int]] function(--[[Hash (int)]] weaponHash)return native_invoker.unified_int(weaponHash, 0x5DCF6C5CAB2E9BF7, "i")end - -- Colors: - -- 0 = Gray - -- 1 = Dark Gray - -- 2 = Black - -- 3 = White - -- 4 = Blue - -- 5 = Cyan - -- 6 = Aqua - -- 7 = Cool Blue - -- 8 = Dark Blue - -- 9 = Royal Blue - -- 10 = Plum - -- 11 = Dark Purple - -- 12 = Purple - -- 13 = Red - -- 14 = Wine Red - -- 15 = Magenta - -- 16 = Pink - -- 17 = Salmon - -- 18 = Hot Pink - -- 19 = Rust Orange - -- 20 = Brown - -- 21 = Earth - -- 22 = Orange - -- 23 = Light Orange - -- 24 = Dark Yellow - -- 25 = Yellow - -- 26 = Light Brown - -- 27 = Lime Green - -- 28 = Olive - -- 29 = Moss - -- 30 = Turquoise - -- 31 = Dark Green - -- Full list of weapons, components, tint indexes & weapon liveries by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - SET_PED_WEAPON_COMPONENT_TINT_INDEX=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[Hash (int)]] camoComponentHash,--[[int]] colorIndex)return native_invoker.unified_void(ped, weaponHash, camoComponentHash, colorIndex, 0x9FE5633880ECD8ED, "iiii")end - -- Returns -1 if camoComponentHash is invalid/not attached to the weapon. - -- Full list of weapons, components, tint indexes & weapon liveries by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - GET_PED_WEAPON_COMPONENT_TINT_INDEX=--[[int]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[Hash (int)]] camoComponentHash)return native_invoker.unified_int(ped, weaponHash, camoComponentHash, 0xF0A60040BE558F2D, "iii")end - -- Colors: - -- 0 = Gray - -- 1 = Dark Gray - -- 2 = Black - -- 3 = White - -- 4 = Blue - -- 5 = Cyan - -- 6 = Aqua - -- 7 = Cool Blue - -- 8 = Dark Blue - -- 9 = Royal Blue - -- 10 = Plum - -- 11 = Dark Purple - -- 12 = Purple - -- 13 = Red - -- 14 = Wine Red - -- 15 = Magenta - -- 16 = Pink - -- 17 = Salmon - -- 18 = Hot Pink - -- 19 = Rust Orange - -- 20 = Brown - -- 21 = Earth - -- 22 = Orange - -- 23 = Light Orange - -- 24 = Dark Yellow - -- 25 = Yellow - -- 26 = Light Brown - -- 27 = Lime Green - -- 28 = Olive - -- 29 = Moss - -- 30 = Turquoise - -- 31 = Dark Green - -- Full list of weapons, components, tint indexes & weapon liveries by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - SET_WEAPON_OBJECT_COMPONENT_TINT_INDEX=--[[void]] function(--[[Object (int)]] weaponObject,--[[Hash (int)]] camoComponentHash,--[[int]] colorIndex)return native_invoker.unified_void(weaponObject, camoComponentHash, colorIndex, 0x5DA825A85D0EA6E6, "iii")end - -- Returns -1 if camoComponentHash is invalid/not attached to the weapon object. - -- Full list of weapons, components, tint indexes & weapon liveries by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - GET_WEAPON_OBJECT_COMPONENT_TINT_INDEX=--[[int]] function(--[[Object (int)]] weaponObject,--[[Hash (int)]] camoComponentHash)return native_invoker.unified_int(weaponObject, camoComponentHash, 0xB3EA4FEABF41464B, "ii")end - GET_PED_WEAPON_CAMO_INDEX=--[[int]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash)return native_invoker.unified_int(ped, weaponHash, 0xA2C9AC24B4061285, "ii")end - SET_WEAPON_OBJECT_CAMO_INDEX=--[[void]] function(--[[Object (int)]] weaponObject,--[[int]] p1)return native_invoker.unified_void(weaponObject, p1, 0x977CA98939E82E4B, "ii")end - -- struct WeaponHudStatsData - -- { - -- BYTE hudDamage; // 0x0000 - -- char _0x0001[0x7]; // 0x0001 - -- BYTE hudSpeed; // 0x0008 - -- char _0x0009[0x7]; // 0x0009 - -- BYTE hudCapacity; // 0x0010 - -- char _0x0011[0x7]; // 0x0011 - -- BYTE hudAccuracy; // 0x0018 - -- char _0x0019[0x7]; // 0x0019 - -- BYTE hudRange; // 0x0020 - -- }; - -- - -- Usage: - -- - -- WeaponHudStatsData data; - -- if (GET_WEAPON_HUD_STATS(weaponHash, (int *)&data)) - -- { - -- // BYTE damagePercentage = data.hudDamage and so on - -- } - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - GET_WEAPON_HUD_STATS=--[[BOOL (bool)]] function(--[[Hash (int)]] weaponHash,--[[Any* (pointer)]] outData)return native_invoker.unified_bool(weaponHash, outData, 0xD92C739EE34C9EBA, "ip")end - GET_WEAPON_COMPONENT_HUD_STATS=--[[BOOL (bool)]] function(--[[Hash (int)]] componentHash,--[[Any* (pointer)]] outData)return native_invoker.unified_bool(componentHash, outData, 0xB3CAF387AE12E9F8, "ip")end - -- This native does not return damages of weapons from the melee and explosive group. - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - GET_WEAPON_DAMAGE=--[[float]] function(--[[Hash (int)]] weaponHash,--[[Hash (int)]] componentHash)return native_invoker.unified_float(weaponHash, componentHash, 0x3133B907D8B32053, "ii")end - -- // Returns the size of the default weapon component clip. - -- - -- Use it like this: - -- - -- char cClipSize[32]; - -- Hash cur; - -- if (WEAPON::GET_CURRENT_PED_WEAPON(playerPed, &cur, 1)) - -- { - -- if (WEAPON::IS_WEAPON_VALID(cur)) - -- { - -- int iClipSize = WEAPON::GET_WEAPON_CLIP_SIZE(cur); - -- sprintf_s(cClipSize, "ClipSize: %.d", iClipSize); - -- vDrawString(cClipSize, 0.5f, 0.5f); - -- } - -- } - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - GET_WEAPON_CLIP_SIZE=--[[int]] function(--[[Hash (int)]] weaponHash)return native_invoker.unified_int(weaponHash, 0x583BE370B1EC6EB4, "i")end - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - GET_WEAPON_TIME_BETWEEN_SHOTS=--[[float]] function(--[[Hash (int)]] weaponHash)return native_invoker.unified_float(weaponHash, 0x065D2AACAD8CF7A4, "i")end - SET_PED_CHANCE_OF_FIRING_BLANKS=--[[void]] function(--[[Ped (int)]] ped,--[[float]] xBias,--[[float]] yBias)return native_invoker.unified_void(ped, xBias, yBias, 0x8378627201D5497D, "iff")end - -- Returns handle of the projectile. - SET_PED_SHOOT_ORDNANCE_WEAPON=--[[Object (int)]] function(--[[Ped (int)]] ped,--[[float]] p1)return native_invoker.unified_int(ped, p1, 0xB4C8D77C80C0421E, "if")end - REQUEST_WEAPON_HIGH_DETAIL_MODEL=--[[void]] function(--[[Entity (int)]] weaponObject)return native_invoker.unified_void(weaponObject, 0x48164DBB970AC3F0, "i")end - _SET_WEAPON_PED_DAMAGE_MODIFIER=--[[void]] function(--[[Hash (int)]] weapon,--[[float]] damageModifier)return native_invoker.unified_void(weapon, damageModifier, 0x1091922715B68DF0, "if")end - -- Changes the weapon damage output by the given multiplier value. Must be run every frame. - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - SET_WEAPON_DAMAGE_MODIFIER=--[[void]] function(--[[Hash (int)]] weaponHash,--[[float]] damageMultiplier)return native_invoker.unified_void(weaponHash, damageMultiplier, 0x4757F00BC6323CFE, "if")end - SET_WEAPON_AOE_MODIFIER=--[[void]] function(--[[Hash (int)]] weaponHash,--[[float]] multiplier)return native_invoker.unified_void(weaponHash, multiplier, 0x4AE5AC8B852D642C, "if")end - -- ex, WEAPON::SET_WEAPON_EFFECT_DURATION_MODIFIER(joaat("vehicle_weapon_mine_slick"), 1.0); - SET_WEAPON_EFFECT_DURATION_MODIFIER=--[[void]] function(--[[Hash (int)]] p0,--[[float]] p1)return native_invoker.unified_void(p0, p1, 0xE6D2CEDD370FF98E, "if")end - -- This native returns a true or false value. - -- - -- Ped ped = The ped whose weapon you want to check. - IS_PED_CURRENT_WEAPON_SILENCED=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x65F0C5AE05943EC7, "i")end - IS_FLASH_LIGHT_ON=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x4B7620C47217126C, "i")end - SET_FLASH_LIGHT_FADE_DISTANCE=--[[BOOL (bool)]] function(--[[float]] distance)return native_invoker.unified_bool(distance, 0xCEA66DAD478CD39B, "f")end - -- Enables/disables flashlight on ped's weapon. - SET_FLASH_LIGHT_ACTIVE_HISTORY=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x988DB6FE9B3AC000, "ib")end - -- Changes the selected ped aiming animation style. - -- Note : You must use GET_HASH_KEY! - -- - -- Strings to use with GET_HASH_KEY : - -- - -- "Ballistic", - -- "Default", - -- "Fat", - -- "Female", - -- "FirstPerson", - -- "FirstPersonAiming", - -- "FirstPersonFranklin", - -- "FirstPersonFranklinAiming", - -- "FirstPersonFranklinRNG", - -- "FirstPersonFranklinScope", - -- "FirstPersonMPFemale", - -- "FirstPersonMichael", - -- "FirstPersonMichaelAiming", - -- "FirstPersonMichaelRNG", - -- "FirstPersonMichaelScope", - -- "FirstPersonRNG", - -- "FirstPersonScope", - -- "FirstPersonTrevor", - -- "FirstPersonTrevorAiming", - -- "FirstPersonTrevorRNG", - -- "FirstPersonTrevorScope", - -- "Franklin", - -- "Gang", - -- "Gang1H", - -- "GangFemale", - -- "Hillbilly", - -- "MP_F_Freemode", - -- "Michael", - -- "SuperFat", - -- "Trevor" - SET_WEAPON_ANIMATION_OVERRIDE=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] animStyle)return native_invoker.unified_void(ped, animStyle, 0x1055AC3A667F09D9, "ii")end - -- enum class eDamageType - -- { - -- UNKNOWN = 0, - -- NONE = 1, - -- MELEE = 2, - -- BULLET = 3, - -- BULLET_RUBBER = 4, - -- EXPLOSIVE = 5, - -- FIRE = 6, - -- COLLISION = 7, - -- FALL = 8, - -- DROWN = 9, - -- ELECTRIC = 10, - -- BARBED_WIRE = 11, - -- FIRE_EXTINGUISHER = 12, - -- SMOKE = 13, - -- WATER_CANNON = 14, - -- TRANQUILIZER = 15, - -- }; - -- - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - GET_WEAPON_DAMAGE_TYPE=--[[int]] function(--[[Hash (int)]] weaponHash)return native_invoker.unified_int(weaponHash, 0x3BE0BB12D25FB305, "i")end - SET_EQIPPED_WEAPON_START_SPINNING_AT_FULL_SPEED=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xE4DCEC7FD5B739A5, "i")end - -- this returns if you can use the weapon while using a parachute - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - CAN_USE_WEAPON_ON_PARACHUTE=--[[BOOL (bool)]] function(--[[Hash (int)]] weaponHash)return native_invoker.unified_bool(weaponHash, 0xBC7BE5ABC0879F74, "i")end - -- Both coordinates are from objects in the decompiled scripts. Native related to 0xECDC202B25E5CF48 p1 value. The only weapon hash used in the decompiled scripts is weapon_air_defence_gun. These two natives are used by the yacht script, decompiled scripts suggest it and the weapon hash used (valkyrie's rockets) are also used by yachts. - CREATE_AIR_DEFENCE_SPHERE=--[[int]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[float]] p4,--[[float]] p5,--[[float]] p6,--[[Hash (int)]] weaponHash)return native_invoker.unified_int(x, y, z, radius, p4, p5, p6, weaponHash, 0x91EF34584710BE99, "fffffffi")end - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - CREATE_AIR_DEFENCE_ANGLED_AREA=--[[int]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[float]] p6,--[[float]] p7,--[[float]] p8,--[[float]] radius,--[[Hash (int)]] weaponHash)return native_invoker.unified_int(p0, p1, p2, p3, p4, p5, p6, p7, p8, radius, weaponHash, 0x9DA58CDBF6BDBC08, "ffffffffffi")end - REMOVE_AIR_DEFENCE_SPHERE=--[[BOOL (bool)]] function(--[[int]] zoneId)return native_invoker.unified_bool(zoneId, 0x0ABF535877897560, "i")end - REMOVE_ALL_AIR_DEFENCE_SPHERES=--[[void]] function()return native_invoker.unified_void(0x1E45B34ADEBEE48E, "")end - SET_PLAYER_TARGETTABLE_FOR_AIR_DEFENCE_SPHERE=--[[void]] function(--[[Player (int)]] player,--[[int]] zoneId,--[[BOOL (bool)]] enable)return native_invoker.unified_void(player, zoneId, enable, 0xECDC202B25E5CF48, "iib")end - IS_AIR_DEFENCE_SPHERE_IN_AREA=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[int* (pointer)]] outZoneId)return native_invoker.unified_bool(x, y, z, radius, outZoneId, 0xDAB963831DBFD3F4, "ffffp")end - FIRE_AIR_DEFENCE_SPHERE_WEAPON_AT_POSITION=--[[void]] function(--[[int]] zoneId,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(zoneId, x, y, z, 0x44F1012B69313374, "ifff")end - DOES_AIR_DEFENCE_SPHERE_EXIST=--[[BOOL (bool)]] function(--[[int]] zoneId)return native_invoker.unified_bool(zoneId, 0xCD79A550999D7D4F, "i")end - -- Disables selecting the given weapon. Ped isn't forced to put the gun away. However you can't reselect the weapon if you holster then unholster. Weapon is also grayed out on the weapon wheel. - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - SET_CAN_PED_SELECT_INVENTORY_WEAPON=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, weaponHash, toggle, 0xB4771B9AAF4E68E4, "iib")end - -- Disable all weapons. Does the same as 0xB4771B9AAF4E68E4 except for all weapons. - SET_CAN_PED_SELECT_ALL_WEAPONS=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xEFF296097FF1E509, "ib")end --- ZONE - GET_ZONE_AT_COORDS=--[[int]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_int(x, y, z, 0x27040C25DE6CB2F4, "fff")end - -- 'zoneName' corresponds to an entry in 'popzone.ipl'. - -- - -- AIRP = Los Santos International Airport - -- ALAMO = Alamo Sea - -- ALTA = Alta - -- ARMYB = Fort Zancudo - -- BANHAMC = Banham Canyon Dr - -- BANNING = Banning - -- BEACH = Vespucci Beach - -- BHAMCA = Banham Canyon - -- BRADP = Braddock Pass - -- BRADT = Braddock Tunnel - -- BURTON = Burton - -- CALAFB = Calafia Bridge - -- CANNY = Raton Canyon - -- CCREAK = Cassidy Creek - -- CHAMH = Chamberlain Hills - -- CHIL = Vinewood Hills - -- CHU = Chumash - -- CMSW = Chiliad Mountain State Wilderness - -- CYPRE = Cypress Flats - -- DAVIS = Davis - -- DELBE = Del Perro Beach - -- DELPE = Del Perro - -- DELSOL = La Puerta - -- DESRT = Grand Senora Desert - -- DOWNT = Downtown - -- DTVINE = Downtown Vinewood - -- EAST_V = East Vinewood - -- EBURO = El Burro Heights - -- ELGORL = El Gordo Lighthouse - -- ELYSIAN = Elysian Island - -- GALFISH = Galilee - -- GOLF = GWC and Golfing Society - -- GRAPES = Grapeseed - -- GREATC = Great Chaparral - -- HARMO = Harmony - -- HAWICK = Hawick - -- HORS = Vinewood Racetrack - -- HUMLAB = Humane Labs and Research - -- JAIL = Bolingbroke Penitentiary - -- KOREAT = Little Seoul - -- LACT = Land Act Reservoir - -- LAGO = Lago Zancudo - -- LDAM = Land Act Dam - -- LEGSQU = Legion Square - -- LMESA = La Mesa - -- LOSPUER = La Puerta - -- MIRR = Mirror Park - -- MORN = Morningwood - -- MOVIE = Richards Majestic - -- MTCHIL = Mount Chiliad - -- MTGORDO = Mount Gordo - -- MTJOSE = Mount Josiah - -- MURRI = Murrieta Heights - -- NCHU = North Chumash - -- NOOSE = N.O.O.S.E - -- OCEANA = Pacific Ocean - -- PALCOV = Paleto Cove - -- PALETO = Paleto Bay - -- PALFOR = Paleto Forest - -- PALHIGH = Palomino Highlands - -- PALMPOW = Palmer-Taylor Power Station - -- PBLUFF = Pacific Bluffs - -- PBOX = Pillbox Hill - -- PROCOB = Procopio Beach - -- RANCHO = Rancho - -- RGLEN = Richman Glen - -- RICHM = Richman - -- ROCKF = Rockford Hills - -- RTRAK = Redwood Lights Track - -- SANAND = San Andreas - -- SANCHIA = San Chianski Mountain Range - -- SANDY = Sandy Shores - -- SKID = Mission Row - -- SLAB = Stab City - -- STAD = Maze Bank Arena - -- STRAW = Strawberry - -- TATAMO = Tataviam Mountains - -- TERMINA = Terminal - -- TEXTI = Textile City - -- TONGVAH = Tongva Hills - -- TONGVAV = Tongva Valley - -- VCANA = Vespucci Canals - -- VESP = Vespucci - -- VINE = Vinewood - -- WINDF = Ron Alternates Wind Farm - -- WVINE = West Vinewood - -- ZANCUDO = Zancudo River - -- ZP_ORT = Port of South Los Santos - -- ZQ_UAR = Davis Quartz - -- - -- Full list of zones by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/zones.json - GET_ZONE_FROM_NAME_ID=--[[int]] function(--[[string]] zoneName)return native_invoker.unified_int(zoneName, 0x98CD1D2934B76CC1, "s")end - GET_ZONE_POPSCHEDULE=--[[int]] function(--[[int]] zoneId)return native_invoker.unified_int(zoneId, 0x4334BC40AA0CB4BB, "i")end - -- AIRP = Los Santos International Airport - -- ALAMO = Alamo Sea - -- ALTA = Alta - -- ARMYB = Fort Zancudo - -- BANHAMC = Banham Canyon Dr - -- BANNING = Banning - -- BEACH = Vespucci Beach - -- BHAMCA = Banham Canyon - -- BRADP = Braddock Pass - -- BRADT = Braddock Tunnel - -- BURTON = Burton - -- CALAFB = Calafia Bridge - -- CANNY = Raton Canyon - -- CCREAK = Cassidy Creek - -- CHAMH = Chamberlain Hills - -- CHIL = Vinewood Hills - -- CHU = Chumash - -- CMSW = Chiliad Mountain State Wilderness - -- CYPRE = Cypress Flats - -- DAVIS = Davis - -- DELBE = Del Perro Beach - -- DELPE = Del Perro - -- DELSOL = La Puerta - -- DESRT = Grand Senora Desert - -- DOWNT = Downtown - -- DTVINE = Downtown Vinewood - -- EAST_V = East Vinewood - -- EBURO = El Burro Heights - -- ELGORL = El Gordo Lighthouse - -- ELYSIAN = Elysian Island - -- GALFISH = Galilee - -- GOLF = GWC and Golfing Society - -- GRAPES = Grapeseed - -- GREATC = Great Chaparral - -- HARMO = Harmony - -- HAWICK = Hawick - -- HORS = Vinewood Racetrack - -- HUMLAB = Humane Labs and Research - -- JAIL = Bolingbroke Penitentiary - -- KOREAT = Little Seoul - -- LACT = Land Act Reservoir - -- LAGO = Lago Zancudo - -- LDAM = Land Act Dam - -- LEGSQU = Legion Square - -- LMESA = La Mesa - -- LOSPUER = La Puerta - -- MIRR = Mirror Park - -- MORN = Morningwood - -- MOVIE = Richards Majestic - -- MTCHIL = Mount Chiliad - -- MTGORDO = Mount Gordo - -- MTJOSE = Mount Josiah - -- MURRI = Murrieta Heights - -- NCHU = North Chumash - -- NOOSE = N.O.O.S.E - -- OCEANA = Pacific Ocean - -- PALCOV = Paleto Cove - -- PALETO = Paleto Bay - -- PALFOR = Paleto Forest - -- PALHIGH = Palomino Highlands - -- PALMPOW = Palmer-Taylor Power Station - -- PBLUFF = Pacific Bluffs - -- PBOX = Pillbox Hill - -- PROCOB = Procopio Beach - -- RANCHO = Rancho - -- RGLEN = Richman Glen - -- RICHM = Richman - -- ROCKF = Rockford Hills - -- RTRAK = Redwood Lights Track - -- SANAND = San Andreas - -- SANCHIA = San Chianski Mountain Range - -- SANDY = Sandy Shores - -- SKID = Mission Row - -- SLAB = Stab City - -- STAD = Maze Bank Arena - -- STRAW = Strawberry - -- TATAMO = Tataviam Mountains - -- TERMINA = Terminal - -- TEXTI = Textile City - -- TONGVAH = Tongva Hills - -- TONGVAV = Tongva Valley - -- VCANA = Vespucci Canals - -- VESP = Vespucci - -- VINE = Vinewood - -- WINDF = Ron Alternates Wind Farm - -- WVINE = West Vinewood - -- ZANCUDO = Zancudo River - -- ZP_ORT = Port of South Los Santos - -- ZQ_UAR = Davis Quartz - -- - -- Full list of zones by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/zones.json - GET_NAME_OF_ZONE=--[[string]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_string(x, y, z, 0xCD90657D4C30E1CA, "fff")end - SET_ZONE_ENABLED=--[[void]] function(--[[int]] zoneId,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(zoneId, toggle, 0xBA5ECEEA120E5611, "ib")end - -- cellphone range 1- 5 used for signal bar in iFruit phone - GET_ZONE_SCUMMINESS=--[[int]] function(--[[int]] zoneId)return native_invoker.unified_int(zoneId, 0x5F7B268D15BA0739, "i")end - -- Only used once in the decompiled scripts. Seems to be related to scripted vehicle generators. - -- - -- Modified example from "am_imp_exp.c4", line 6406: - -- /* popSchedules[0] = ZONE::GET_ZONE_POPSCHEDULE(ZONE::GET_ZONE_AT_COORDS(891.3, 807.9, 188.1)); - -- etc. - -- */ - -- ZONE::OVERRIDE_POPSCHEDULE_VEHICLE_MODEL(popSchedules[index], vehicleHash); - -- STREAMING::REQUEST_MODEL(vehicleHash); - OVERRIDE_POPSCHEDULE_VEHICLE_MODEL=--[[void]] function(--[[int]] scheduleId,--[[Hash (int)]] vehicleHash)return native_invoker.unified_void(scheduleId, vehicleHash, 0x5F7D596BAC2E7777, "ii")end - -- Only used once in the decompiled scripts. Seems to be related to scripted vehicle generators. - -- - -- Modified example from "am_imp_exp.c4", line 6418: - -- /* popSchedules[0] = ZONE::GET_ZONE_POPSCHEDULE(ZONE::GET_ZONE_AT_COORDS(891.3, 807.9, 188.1)); - -- etc. - -- */ - -- STREAMING::SET_MODEL_AS_NO_LONGER_NEEDED(vehicleHash); - -- ZONE::CLEAR_POPSCHEDULE_OVERRIDE_VEHICLE_MODEL(popSchedules[index]); - CLEAR_POPSCHEDULE_OVERRIDE_VEHICLE_MODEL=--[[void]] function(--[[int]] scheduleId)return native_invoker.unified_void(scheduleId, 0x5C0DE367AA0D911C, "i")end - -- Returns a hash representing which part of the map the given coords are located. - -- - -- Possible return values: - -- (Hash of) city -> -289320599 - -- (Hash of) countryside -> 2072609373 - -- - -- C# Example : - -- - -- Ped player = Game.Player.Character; - -- Hash h = Function.Call(Hash.GET_HASH_OF_MAP_AREA_AT_COORDS, player.Position.X, player.Position.Y, player.Position.Z); - GET_HASH_OF_MAP_AREA_AT_COORDS=--[[Hash (int)]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_int(x, y, z, 0x7EE64D51E8498728, "fff")end diff --git a/lib/natives-3095a/init.lua b/lib/natives-3095a/init.lua deleted file mode 100644 index 1cc0d96..0000000 Binary files a/lib/natives-3095a/init.lua and /dev/null differ diff --git a/lib/natives-3095a/init.source.lua b/lib/natives-3095a/init.source.lua deleted file mode 100644 index 8524159..0000000 --- a/lib/natives-3095a/init.source.lua +++ /dev/null @@ -1,17123 +0,0 @@ --- To require this file, use util.require_natives("3095a") --- Note that any given version of the natives library may not be compatible with any given script. - -SYSTEM={ - -- Pauses execution of the current script, please note this behavior is only seen when called from one of the game script files(ysc). In order to wait an asi script use "static void WAIT(DWORD time);" found in main.h - ["WAIT"]=--[[void]] function(--[[int]] ms)return native_invoker.unified_void(ms, 0x4EDE34FBADD967A6, "i")end, - -- Examples: - -- g_384A = SYSTEM::START_NEW_SCRIPT("cellphone_flashhand", 1424); - -- l_10D = SYSTEM::START_NEW_SCRIPT("taxiService", 1828); - -- SYSTEM::START_NEW_SCRIPT("AM_MP_YACHT", 5000); - -- SYSTEM::START_NEW_SCRIPT("emergencycall", 512); - -- SYSTEM::START_NEW_SCRIPT("emergencycall", 512); - -- SYSTEM::START_NEW_SCRIPT("FM_maintain_cloud_header_data", 1424); - -- SYSTEM::START_NEW_SCRIPT("FM_Mission_Controller", 31000); - -- SYSTEM::START_NEW_SCRIPT("tennis_family", 3650); - -- SYSTEM::START_NEW_SCRIPT("Celebrations", 3650); - -- - -- Decompiled examples of usage when starting a script: - -- - -- SCRIPT::REQUEST_SCRIPT(a_0); - -- if (SCRIPT::HAS_SCRIPT_LOADED(a_0)) { - -- SYSTEM::START_NEW_SCRIPT(a_0, v_3); - -- SCRIPT::SET_SCRIPT_AS_NO_LONGER_NEEDED(a_0); - -- return 1; - -- } - -- - -- or: - -- - -- v_2 = "MrsPhilips2"; - -- SCRIPT::REQUEST_SCRIPT(v_2); - -- while (!SCRIPT::HAS_SCRIPT_LOADED(v_2)) { - -- SCRIPT::REQUEST_SCRIPT(v_2); - -- SYSTEM::WAIT(0); - -- } - -- sub_8792(36); - -- SYSTEM::START_NEW_SCRIPT(v_2, 17000); - -- SCRIPT::SET_SCRIPT_AS_NO_LONGER_NEEDED(v_2); - ["START_NEW_SCRIPT"]=--[[int]] function(--[[string]] scriptName,--[[int]] stackSize)return native_invoker.unified_int(scriptName, stackSize, 0xE81651AD79516E48, "si")end, - -- return : script thread id, 0 if failed - -- Pass pointer to struct of args in p1, size of struct goes into p2 - ["START_NEW_SCRIPT_WITH_ARGS"]=--[[int]] function(--[[string]] scriptName,--[[Any* (pointer)]] args,--[[int]] argCount,--[[int]] stackSize)return native_invoker.unified_int(scriptName, args, argCount, stackSize, 0xB8BA7F44DF1575E1, "spii")end, - ["START_NEW_SCRIPT_WITH_NAME_HASH"]=--[[int]] function(--[[Hash (int)]] scriptHash,--[[int]] stackSize)return native_invoker.unified_int(scriptHash, stackSize, 0xEB1C67C3A5333A92, "ii")end, - ["START_NEW_SCRIPT_WITH_NAME_HASH_AND_ARGS"]=--[[int]] function(--[[Hash (int)]] scriptHash,--[[Any* (pointer)]] args,--[[int]] argCount,--[[int]] stackSize)return native_invoker.unified_int(scriptHash, args, argCount, stackSize, 0xC4BB298BD441BE78, "ipii")end, - -- Counts up. Every 1000 is 1 real-time second. Use SETTIMERA(int value) to set the timer (e.g.: SETTIMERA(0)). - ["TIMERA"]=--[[int]] function()return native_invoker.unified_int(0x83666F9FB8FEBD4B, "")end, - ["TIMERB"]=--[[int]] function()return native_invoker.unified_int(0xC9D9444186B5A374, "")end, - ["SETTIMERA"]=--[[void]] function(--[[int]] value)return native_invoker.unified_void(value, 0xC1B1E9A034A63A62, "i")end, - ["SETTIMERB"]=--[[void]] function(--[[int]] value)return native_invoker.unified_void(value, 0x5AE11BC36633DE4E, "i")end, - -- Gets the current frame time. - ["TIMESTEP"]=--[[float]] function()return native_invoker.unified_float(0x0000000050597EE2, "")end, - ["SIN"]=--[[float]] function(--[[float]] value)return native_invoker.unified_float(value, 0x0BADBFA3B172435F, "f")end, - ["COS"]=--[[float]] function(--[[float]] value)return native_invoker.unified_float(value, 0xD0FFB162F40A139C, "f")end, - ["SQRT"]=--[[float]] function(--[[float]] value)return native_invoker.unified_float(value, 0x71D93B57D07F9804, "f")end, - ["POW"]=--[[float]] function(--[[float]] base,--[[float]] exponent)return native_invoker.unified_float(base, exponent, 0xE3621CC40F31FE2E, "ff")end, - ["LOG10"]=--[[float]] function(--[[float]] value)return native_invoker.unified_float(value, 0xE816E655DE37FE20, "f")end, - -- Calculates the magnitude of a vector. - ["VMAG"]=--[[float]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_float(x, y, z, 0x652D2EEEF1D3E62C, "fff")end, - -- Calculates the magnitude of a vector but does not perform Sqrt operations. (Its way faster) - ["VMAG2"]=--[[float]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_float(x, y, z, 0xA8CEACB4F35AE058, "fff")end, - -- Calculates distance between vectors. - ["VDIST"]=--[[float]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2)return native_invoker.unified_float(x1, y1, z1, x2, y2, z2, 0x2A488C176D52CCA5, "ffffff")end, - -- Calculates distance between vectors but does not perform Sqrt operations. (Its way faster) - ["VDIST2"]=--[[float]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2)return native_invoker.unified_float(x1, y1, z1, x2, y2, z2, 0xB7A628320EFF8E47, "ffffff")end, - ["SHIFT_LEFT"]=--[[int]] function(--[[int]] value,--[[int]] bitShift)return native_invoker.unified_int(value, bitShift, 0xEDD95A39E5544DE8, "ii")end, - ["SHIFT_RIGHT"]=--[[int]] function(--[[int]] value,--[[int]] bitShift)return native_invoker.unified_int(value, bitShift, 0x97EF1E5BCE9DC075, "ii")end, - ["FLOOR"]=--[[int]] function(--[[float]] value)return native_invoker.unified_int(value, 0xF34EE736CF047844, "f")end, - -- I'm guessing this rounds a float value up to the next whole number, and FLOOR rounds it down - ["CEIL"]=--[[int]] function(--[[float]] value)return native_invoker.unified_int(value, 0x11E019C8F43ACC8A, "f")end, - ["ROUND"]=--[[int]] function(--[[float]] value)return native_invoker.unified_int(value, 0xF2DB717A73826179, "f")end, - ["TO_FLOAT"]=--[[float]] function(--[[int]] value)return native_invoker.unified_float(value, 0xBBDA792448DB5A89, "i")end, - -- THREAD_PRIO_HIGHEST = 0 - -- THREAD_PRIO_NORMAL = 1 - -- THREAD_PRIO_LOWEST = 2 - -- THREAD_PRIO_MANUAL_UPDATE = 100 - ["SET_THIS_THREAD_PRIORITY"]=--[[void]] function(--[[int]] priority)return native_invoker.unified_void(priority, 0x42B65DEEF2EDF2A1, "i")end, -} -APP={ - ["APP_DATA_VALID"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x846AA8E7D55EE5B6, "")end, - ["APP_GET_INT"]=--[[int]] function(--[[string]] property)return native_invoker.unified_int(property, 0xD3A58A12C77D9D4B, "s")end, - ["APP_GET_FLOAT"]=--[[float]] function(--[[string]] property)return native_invoker.unified_float(property, 0x1514FB24C02C2322, "s")end, - ["APP_GET_STRING"]=--[[string]] function(--[[string]] property)return native_invoker.unified_string(property, 0x749B023950D2311C, "s")end, - ["APP_SET_INT"]=--[[void]] function(--[[string]] property,--[[int]] value)return native_invoker.unified_void(property, value, 0x607E8E3D3E4F9611, "si")end, - ["APP_SET_FLOAT"]=--[[void]] function(--[[string]] property,--[[float]] value)return native_invoker.unified_void(property, value, 0x25D7687C68E0DAA4, "sf")end, - ["APP_SET_STRING"]=--[[void]] function(--[[string]] property,--[[string]] value)return native_invoker.unified_void(property, value, 0x3FF2FCEC4B7721B4, "ss")end, - -- Called in the gamescripts like: - -- APP::APP_SET_APP("car"); - -- APP::APP_SET_APP("dog"); - ["APP_SET_APP"]=--[[void]] function(--[[string]] appName)return native_invoker.unified_void(appName, 0xCFD0406ADAF90D2B, "s")end, - ["APP_SET_BLOCK"]=--[[void]] function(--[[string]] blockName)return native_invoker.unified_void(blockName, 0x262AB456A3D21F93, "s")end, - ["APP_CLEAR_BLOCK"]=--[[void]] function()return native_invoker.unified_void(0x5FE1DF3342DB7DBA, "")end, - ["APP_CLOSE_APP"]=--[[void]] function()return native_invoker.unified_void(0xE41C65E07A5F05FC, "")end, - ["APP_CLOSE_BLOCK"]=--[[void]] function()return native_invoker.unified_void(0xE8E3FCF72EAC0EF8, "")end, - ["APP_HAS_LINKED_SOCIAL_CLUB_ACCOUNT"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x71EEE69745088DA0, "")end, - ["APP_HAS_SYNCED_DATA"]=--[[BOOL (bool)]] function(--[[string]] appName)return native_invoker.unified_bool(appName, 0xCA52279A7271517F, "s")end, - ["APP_SAVE_DATA"]=--[[void]] function()return native_invoker.unified_void(0x95C5D356CDA6E85F, "")end, - ["APP_GET_DELETED_FILE_STATUS"]=--[[int]] function()return native_invoker.unified_int(0xC9853A2BE3DED1A6, "")end, - ["APP_DELETE_APP_DATA"]=--[[BOOL (bool)]] function(--[[string]] appName)return native_invoker.unified_bool(appName, 0x44151AEA95C8A003, "s")end, -} -AUDIO={ - -- All found occurrences in b617d, sorted alphabetically and identical lines removed: https://pastebin.com/RFb4GTny - -- - -- AUDIO::PLAY_PED_RINGTONE("Remote_Ring", PLAYER::PLAYER_PED_ID(), 1); - -- AUDIO::PLAY_PED_RINGTONE("Dial_and_Remote_Ring", PLAYER::PLAYER_PED_ID(), 1); - -- - ["PLAY_PED_RINGTONE"]=--[[void]] function(--[[string]] ringtoneName,--[[Ped (int)]] ped,--[[BOOL (bool)]] p2)return native_invoker.unified_void(ringtoneName, ped, p2, 0xF9E56683CA8E11A5, "sib")end, - ["IS_PED_RINGTONE_PLAYING"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x1E8E5E20937E3137, "i")end, - ["STOP_PED_RINGTONE"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x6C5AE23EFA885092, "i")end, - ["IS_MOBILE_PHONE_CALL_ONGOING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x7497D2CE2C30D24C, "")end, - ["IS_MOBILE_INTERFERENCE_ACTIVE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC8B1B2425604CDD0, "")end, - ["GET_CURRENT_TV_SHOW_PLAY_TIME"]=--[[int]] function()return native_invoker.unified_int(0xDD3AA743AB7D4D75, "")end, - ["CREATE_NEW_SCRIPTED_CONVERSATION"]=--[[void]] function()return native_invoker.unified_void(0xD2C91A0B572AAE56, "")end, - -- NOTE: ones that are -1, 0 - 35 are determined by a function where it gets a TextLabel from a global then runs, - -- GET_CHARACTER_FROM_AUDIO_CONVERSATION_FILENAME and depending on what the result is it goes in check order of 0 - 9 then A - Z then z (lowercase). So it will then return 0 - 35 or -1 if it's 'z'. The func to handle that ^^ is func_67 in dialog_handler.c atleast in TU27 Xbox360 scripts. - -- - -- p0 is -1, 0 - 35 - -- p1 is a char or string (whatever you wanna call it) - -- p2 is Global 10597 + i * 6. 'i' is a while(i < 70) loop - -- p3 is again -1, 0 - 35 - -- p4 is again -1, 0 - 35 - -- p5 is either 0 or 1 (bool ?) - -- p6 is either 0 or 1 (The func to determine this is bool) - -- p7 is either 0 or 1 (The func to determine this is bool) - -- p8 is either 0 or 1 (The func to determine this is bool) - -- p9 is 0 - 3 (Determined by func_60 in dialogue_handler.c) - -- p10 is either 0 or 1 (The func to determine this is bool) - -- p11 is either 0 or 1 (The func to determine this is bool) - -- p12 is unknown as in TU27 X360 scripts it only goes to p11. - ["ADD_LINE_TO_CONVERSATION"]=--[[void]] function(--[[int]] index,--[[string]] p1,--[[string]] p2,--[[int]] p3,--[[int]] p4,--[[BOOL (bool)]] p5,--[[BOOL (bool)]] p6,--[[BOOL (bool)]] p7,--[[BOOL (bool)]] p8,--[[int]] p9,--[[BOOL (bool)]] p10,--[[BOOL (bool)]] p11,--[[BOOL (bool)]] p12)return native_invoker.unified_void(index, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, 0xC5EF963405593646, "issiibbbbibbb")end, - -- 4 calls in the b617d scripts. The only one with p0 and p2 in clear text: - -- - -- AUDIO::ADD_PED_TO_CONVERSATION(5, l_AF, "DINAPOLI"); - -- - -- ================================================= - -- One of the 2 calls in dialogue_handler.c p0 is in a while-loop, and so is determined to also possibly be 0 - 15. - ["ADD_PED_TO_CONVERSATION"]=--[[void]] function(--[[int]] index,--[[Ped (int)]] ped,--[[string]] p2)return native_invoker.unified_void(index, ped, p2, 0x95D9F4BC443956E7, "iis")end, - ["SET_POSITION_FOR_NULL_CONV_PED"]=--[[void]] function(--[[Any (int)]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x33E3C6C6F2F0B506, "ifff")end, - ["SET_ENTITY_FOR_NULL_CONV_PED"]=--[[void]] function(--[[int]] p0,--[[Entity (int)]] entity)return native_invoker.unified_void(p0, entity, 0x892B6AB8F33606F5, "ii")end, - -- This native controls where the game plays audio from. By default the microphone is positioned on the player. - -- When p0 is true the game will play audio from the 3 positions inputted. - -- It is recommended to set all 3 positions to the same value as mixing different positions doesn't seem to work well. - -- The scripts mostly use it with only one position such as in fbi3.c: - -- AUDIO::SET_MICROPHONE_POSITION(true, ENTITY::GET_ENTITY_COORDS(iLocal_3091, true), ENTITY::GET_ENTITY_COORDS(iLocal_3091, true), ENTITY::GET_ENTITY_COORDS(iLocal_3091, true)); - ["SET_MICROPHONE_POSITION"]=--[[void]] function(--[[BOOL (bool)]] toggle,--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] x3,--[[float]] y3,--[[float]] z3)return native_invoker.unified_void(toggle, x1, y1, z1, x2, y2, z2, x3, y3, z3, 0xB6AE90EDDE95C762, "bfffffffff")end, - ["SET_CONVERSATION_AUDIO_CONTROLLED_BY_ANIM"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x0B568201DD99F0EB, "b")end, - ["SET_CONVERSATION_AUDIO_PLACEHOLDER"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x61631F5DF50D1C34, "b")end, - ["START_SCRIPT_PHONE_CONVERSATION"]=--[[void]] function(--[[BOOL (bool)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0x252E5F915EABB675, "bb")end, - ["PRELOAD_SCRIPT_PHONE_CONVERSATION"]=--[[void]] function(--[[BOOL (bool)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0x6004BCB0E226AAEA, "bb")end, - ["START_SCRIPT_CONVERSATION"]=--[[void]] function(--[[BOOL (bool)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x6B17C62C9635D2DC, "bbbb")end, - ["PRELOAD_SCRIPT_CONVERSATION"]=--[[void]] function(--[[BOOL (bool)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x3B3CAD6166916D87, "bbbb")end, - ["START_PRELOADED_CONVERSATION"]=--[[void]] function()return native_invoker.unified_void(0x23641AFE870AF385, "")end, - ["GET_IS_PRELOADED_CONVERSATION_READY"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xE73364DB90778FFA, "")end, - ["IS_SCRIPTED_CONVERSATION_ONGOING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x16754C556D2EDE3D, "")end, - ["IS_SCRIPTED_CONVERSATION_LOADED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xDF0D54BE7A776737, "")end, - ["GET_CURRENT_SCRIPTED_CONVERSATION_LINE"]=--[[int]] function()return native_invoker.unified_int(0x480357EE890C295A, "")end, - ["PAUSE_SCRIPTED_CONVERSATION"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x8530AD776CD72B12, "b")end, - ["RESTART_SCRIPTED_CONVERSATION"]=--[[void]] function()return native_invoker.unified_void(0x9AEB285D1818C9AC, "")end, - ["STOP_SCRIPTED_CONVERSATION"]=--[[int]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_int(p0, 0xD79DEEFB53455EBA, "b")end, - ["SKIP_TO_NEXT_SCRIPTED_CONVERSATION_LINE"]=--[[void]] function()return native_invoker.unified_void(0x9663FE6B7A61EB00, "")end, - -- Example from carsteal3.c: AUDIO::INTERRUPT_CONVERSATION(PLAYER::PLAYER_PED_ID(), "CST4_CFAA", "FRANKLIN"); - -- Voicelines can be found in GTAV\x64\audio\sfx in files starting with "SS_" which seems to mean scripted speech. - ["INTERRUPT_CONVERSATION"]=--[[void]] function(--[[Ped (int)]] ped,--[[string]] voiceline,--[[string]] speaker)return native_invoker.unified_void(ped, voiceline, speaker, 0xA018A12E5C5C2FA6, "iss")end, - -- One call found in the b617d scripts: - -- - -- AUDIO::INTERRUPT_CONVERSATION_AND_PAUSE(NETWORK::NET_TO_PED(l_3989._f26F[0/*1*/]), "CONV_INTERRUPT_QUIT_IT", "LESTER"); - ["INTERRUPT_CONVERSATION_AND_PAUSE"]=--[[void]] function(--[[Ped (int)]] ped,--[[string]] p1,--[[string]] speaker)return native_invoker.unified_void(ped, p1, speaker, 0x8A694D7A68F8DC38, "iss")end, - ["GET_VARIATION_CHOSEN_FOR_SCRIPTED_LINE"]=--[[int]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_int(p0, 0xAA19F5572C38B564, "p")end, - ["SET_NO_DUCKING_FOR_CONVERSATION"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xB542DE8C3D1CB210, "b")end, - -- This native does absolutely nothing, just a nullsub - ["REGISTER_SCRIPT_WITH_AUDIO"]=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0xC6ED9D5092438D91, "i")end, - -- This native does absolutely nothing, just a nullsub - ["UNREGISTER_SCRIPT_WITH_AUDIO"]=--[[void]] function()return native_invoker.unified_void(0xA8638BE228D4751A, "")end, - -- All occurrences and usages found in b617d: https://pastebin.com/NzZZ2Tmm - -- Full list of mission audio bank names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/missionAudioBankNames.json - -- p2 is always -1 - ["REQUEST_MISSION_AUDIO_BANK"]=--[[BOOL (bool)]] function(--[[string]] audioBank,--[[BOOL (bool)]] p1,--[[Any (int)]] p2)return native_invoker.unified_bool(audioBank, p1, p2, 0x7345BDD95E62E0F2, "sbi")end, - -- All occurrences and usages found in b617d, sorted alphabetically and identical lines removed: https://pastebin.com/XZ1tmGEz - -- Full list of ambient audio bank names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ambientAudioBankNames.json - -- p2 is always -1 - ["REQUEST_AMBIENT_AUDIO_BANK"]=--[[BOOL (bool)]] function(--[[string]] audioBank,--[[BOOL (bool)]] p1,--[[Any (int)]] p2)return native_invoker.unified_bool(audioBank, p1, p2, 0xFE02FFBED8CA9D99, "sbi")end, - -- All occurrences and usages found in b617d, sorted alphabetically and identical lines removed: https://pastebin.com/AkmDAVn6 - -- Full list of script audio bank names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scriptAudioBankNames.json - -- p2 is always -1 - ["REQUEST_SCRIPT_AUDIO_BANK"]=--[[BOOL (bool)]] function(--[[string]] audioBank,--[[BOOL (bool)]] p1,--[[Any (int)]] p2)return native_invoker.unified_bool(audioBank, p1, p2, 0x2F844A8B08D76685, "sbi")end, - -- p2 is always -1 - ["HINT_MISSION_AUDIO_BANK"]=--[[BOOL (bool)]] function(--[[string]] audioBank,--[[BOOL (bool)]] p1,--[[Any (int)]] p2)return native_invoker.unified_bool(audioBank, p1, p2, 0x40763EA7B9B783E7, "sbi")end, - -- p2 is always -1 - ["HINT_AMBIENT_AUDIO_BANK"]=--[[BOOL (bool)]] function(--[[string]] audioBank,--[[BOOL (bool)]] p1,--[[Any (int)]] p2)return native_invoker.unified_bool(audioBank, p1, p2, 0x8F8C0E370AE62F5C, "sbi")end, - -- p2 is always -1 - ["HINT_SCRIPT_AUDIO_BANK"]=--[[BOOL (bool)]] function(--[[string]] audioBank,--[[BOOL (bool)]] p1,--[[Any (int)]] p2)return native_invoker.unified_bool(audioBank, p1, p2, 0xFB380A29641EC31A, "sbi")end, - ["RELEASE_MISSION_AUDIO_BANK"]=--[[void]] function()return native_invoker.unified_void(0x0EC92A1BF0857187, "")end, - ["RELEASE_AMBIENT_AUDIO_BANK"]=--[[void]] function()return native_invoker.unified_void(0x65475A218FFAA93D, "")end, - -- Full list of script audio bank names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scriptAudioBankNames.json - ["RELEASE_NAMED_SCRIPT_AUDIO_BANK"]=--[[void]] function(--[[string]] audioBank)return native_invoker.unified_void(audioBank, 0x77ED170667F50170, "s")end, - ["RELEASE_SCRIPT_AUDIO_BANK"]=--[[void]] function()return native_invoker.unified_void(0x7A2D8AD0A9EB9C3F, "")end, - ["UNHINT_AMBIENT_AUDIO_BANK"]=--[[void]] function()return native_invoker.unified_void(0x19AF7ED9B9D23058, "")end, - ["UNHINT_SCRIPT_AUDIO_BANK"]=--[[void]] function()return native_invoker.unified_void(0x9AC92EED5E4793AB, "")end, - ["UNHINT_NAMED_SCRIPT_AUDIO_BANK"]=--[[void]] function(--[[string]] audioBank)return native_invoker.unified_void(audioBank, 0x11579D940949C49E, "s")end, - ["GET_SOUND_ID"]=--[[int]] function()return native_invoker.unified_int(0x430386FE9BF80B45, "")end, - ["RELEASE_SOUND_ID"]=--[[void]] function(--[[int]] soundId)return native_invoker.unified_void(soundId, 0x353FC880830B88FA, "i")end, - -- All found occurrences in b617d, sorted alphabetically and identical lines removed: https://pastebin.com/A8Ny8AHZ - -- - -- Full list of audio / sound names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/soundNames.json - ["PLAY_SOUND"]=--[[void]] function(--[[int]] soundId,--[[string]] audioName,--[[string]] audioRef,--[[BOOL (bool)]] p3,--[[Any (int)]] p4,--[[BOOL (bool)]] p5)return native_invoker.unified_void(soundId, audioName, audioRef, p3, p4, p5, 0x7FF4944CC209192D, "issbib")end, - -- List: https://pastebin.com/DCeRiaLJ - -- - -- All occurrences as of Cayo Perico Heist DLC (b2189), sorted alphabetically and identical lines removed: https://git.io/JtLxM - -- - -- Full list of audio / sound names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/soundNames.json - ["PLAY_SOUND_FRONTEND"]=--[[void]] function(--[[int]] soundId,--[[string]] audioName,--[[string]] audioRef,--[[BOOL (bool)]] p3)return native_invoker.unified_void(soundId, audioName, audioRef, p3, 0x67C540AA08E4A6F5, "issb")end, - -- Only call found in the b617d scripts: - -- - -- AUDIO::PLAY_DEFERRED_SOUND_FRONTEND("BACK", "HUD_FREEMODE_SOUNDSET"); - -- - -- Full list of audio / sound names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/soundNames.json - ["PLAY_DEFERRED_SOUND_FRONTEND"]=--[[void]] function(--[[string]] soundName,--[[string]] soundsetName)return native_invoker.unified_void(soundName, soundsetName, 0xCADA5A0D0702381E, "ss")end, - -- All found occurrences in b617d, sorted alphabetically and identical lines removed: https://pastebin.com/f2A7vTj0 - -- No changes made in b678d. - -- - -- gtaforums.com/topic/795622-audio-for-mods - -- - -- Full list of audio / sound names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/soundNames.json - ["PLAY_SOUND_FROM_ENTITY"]=--[[void]] function(--[[int]] soundId,--[[string]] audioName,--[[Entity (int)]] entity,--[[string]] audioRef,--[[BOOL (bool)]] isNetwork,--[[Any (int)]] p5)return native_invoker.unified_void(soundId, audioName, entity, audioRef, isNetwork, p5, 0xE65F427EB70AB1ED, "isisbi")end, - -- Only used with "formation_flying_blips_soundset" and "biker_formation_blips_soundset". - -- p1 is always the model of p2 - ["PLAY_SOUND_FROM_ENTITY_HASH"]=--[[void]] function(--[[int]] soundId,--[[Hash (int)]] model,--[[Entity (int)]] entity,--[[Hash (int)]] soundSetHash,--[[Any (int)]] p4,--[[Any (int)]] p5)return native_invoker.unified_void(soundId, model, entity, soundSetHash, p4, p5, 0x5B9853296731E88D, "iiiiii")end, - -- All found occurrences in b617d, sorted alphabetically and identical lines removed: https://pastebin.com/eeFc5DiW - -- - -- gtaforums.com/topic/795622-audio-for-mods - -- - -- Full list of audio / sound names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/soundNames.json - ["PLAY_SOUND_FROM_COORD"]=--[[void]] function(--[[int]] soundId,--[[string]] audioName,--[[float]] x,--[[float]] y,--[[float]] z,--[[string]] audioRef,--[[BOOL (bool)]] isNetwork,--[[int]] range,--[[BOOL (bool)]] p8)return native_invoker.unified_void(soundId, audioName, x, y, z, audioRef, isNetwork, range, p8, 0x8D8686B622B88120, "isfffsbib")end, - ["UPDATE_SOUND_COORD"]=--[[void]] function(--[[int]] soundId,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(soundId, x, y, z, 0x7EC3C679D0E7E46B, "ifff")end, - ["STOP_SOUND"]=--[[void]] function(--[[int]] soundId)return native_invoker.unified_void(soundId, 0xA3B0C41BA5CC0BB5, "i")end, - -- Could this be used alongside either, - -- SET_NETWORK_ID_EXISTS_ON_ALL_MACHINES or _SET_NETWORK_ID_SYNC_TO_PLAYER to make it so other players can hear the sound while online? It'd be a bit troll-fun to be able to play the Zancudo UFO creepy sounds globally. - ["GET_NETWORK_ID_FROM_SOUND_ID"]=--[[int]] function(--[[int]] soundId)return native_invoker.unified_int(soundId, 0x2DE3F0A134FFBC0D, "i")end, - ["GET_SOUND_ID_FROM_NETWORK_ID"]=--[[int]] function(--[[int]] netId)return native_invoker.unified_int(netId, 0x75262FD12D0A1C84, "i")end, - ["SET_VARIABLE_ON_SOUND"]=--[[void]] function(--[[int]] soundId,--[[string]] variable,--[[float]] p2)return native_invoker.unified_void(soundId, variable, p2, 0xAD6B3148A78AE9B6, "isf")end, - -- From the scripts, p0: - -- - -- "ArmWrestlingIntensity", - -- "INOUT", - -- "Monkey_Stream", - -- "ZoomLevel" - ["SET_VARIABLE_ON_STREAM"]=--[[void]] function(--[[string]] variable,--[[float]] p1)return native_invoker.unified_void(variable, p1, 0x2F9D3834AEB9EF79, "sf")end, - ["OVERRIDE_UNDERWATER_STREAM"]=--[[void]] function(--[[string]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0xF2A9CDABCEA04BD6, "sb")end, - -- AUDIO::SET_VARIABLE_ON_UNDER_WATER_STREAM("inTunnel", 1.0); - -- AUDIO::SET_VARIABLE_ON_UNDER_WATER_STREAM("inTunnel", 0.0); - ["SET_VARIABLE_ON_UNDER_WATER_STREAM"]=--[[void]] function(--[[string]] variableName,--[[float]] value)return native_invoker.unified_void(variableName, value, 0x733ADF241531E5C2, "sf")end, - ["HAS_SOUND_FINISHED"]=--[[BOOL (bool)]] function(--[[int]] soundId)return native_invoker.unified_bool(soundId, 0xFCBDCE714A7C88E5, "i")end, - -- Plays ambient speech. See also _0x444180DB. - -- - -- ped: The ped to play the ambient speech. - -- speechName: Name of the speech to play, eg. "GENERIC_HI". - -- speechParam: Can be one of the following: - -- SPEECH_PARAMS_STANDARD - -- SPEECH_PARAMS_ALLOW_REPEAT - -- SPEECH_PARAMS_BEAT - -- SPEECH_PARAMS_FORCE - -- SPEECH_PARAMS_FORCE_FRONTEND - -- SPEECH_PARAMS_FORCE_NO_REPEAT_FRONTEND - -- SPEECH_PARAMS_FORCE_NORMAL - -- SPEECH_PARAMS_FORCE_NORMAL_CLEAR - -- SPEECH_PARAMS_FORCE_NORMAL_CRITICAL - -- SPEECH_PARAMS_FORCE_SHOUTED - -- SPEECH_PARAMS_FORCE_SHOUTED_CLEAR - -- SPEECH_PARAMS_FORCE_SHOUTED_CRITICAL - -- SPEECH_PARAMS_FORCE_PRELOAD_ONLY - -- SPEECH_PARAMS_MEGAPHONE - -- SPEECH_PARAMS_HELI - -- SPEECH_PARAMS_FORCE_MEGAPHONE - -- SPEECH_PARAMS_FORCE_HELI - -- SPEECH_PARAMS_INTERRUPT - -- SPEECH_PARAMS_INTERRUPT_SHOUTED - -- SPEECH_PARAMS_INTERRUPT_SHOUTED_CLEAR - -- SPEECH_PARAMS_INTERRUPT_SHOUTED_CRITICAL - -- SPEECH_PARAMS_INTERRUPT_NO_FORCE - -- SPEECH_PARAMS_INTERRUPT_FRONTEND - -- SPEECH_PARAMS_INTERRUPT_NO_FORCE_FRONTEND - -- SPEECH_PARAMS_ADD_BLIP - -- SPEECH_PARAMS_ADD_BLIP_ALLOW_REPEAT - -- SPEECH_PARAMS_ADD_BLIP_FORCE - -- SPEECH_PARAMS_ADD_BLIP_SHOUTED - -- SPEECH_PARAMS_ADD_BLIP_SHOUTED_FORCE - -- SPEECH_PARAMS_ADD_BLIP_INTERRUPT - -- SPEECH_PARAMS_ADD_BLIP_INTERRUPT_FORCE - -- SPEECH_PARAMS_FORCE_PRELOAD_ONLY_SHOUTED - -- SPEECH_PARAMS_FORCE_PRELOAD_ONLY_SHOUTED_CLEAR - -- SPEECH_PARAMS_FORCE_PRELOAD_ONLY_SHOUTED_CRITICAL - -- SPEECH_PARAMS_SHOUTED - -- SPEECH_PARAMS_SHOUTED_CLEAR - -- SPEECH_PARAMS_SHOUTED_CRITICAL - -- - -- Note: A list of Name and Parameters can be found here https://pastebin.com/1GZS5dCL - -- - -- Full list of speeches and voices names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/speeches.json - ["PLAY_PED_AMBIENT_SPEECH_NATIVE"]=--[[void]] function(--[[Ped (int)]] ped,--[[string]] speechName,--[[string]] speechParam,--[[Any (int)]] p3)return native_invoker.unified_void(ped, speechName, speechParam, p3, 0x8E04FEDD28D42462, "issi")end, - -- Plays ambient speech. See also _0x5C57B85D. - -- - -- See PLAY_PED_AMBIENT_SPEECH_NATIVE for parameter specifications. - -- - -- Full list of speeches and voices names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/speeches.json - ["PLAY_PED_AMBIENT_SPEECH_AND_CLONE_NATIVE"]=--[[void]] function(--[[Ped (int)]] ped,--[[string]] speechName,--[[string]] speechParam,--[[Any (int)]] p3)return native_invoker.unified_void(ped, speechName, speechParam, p3, 0xC6941B4A3A8FBBB9, "issi")end, - -- This is the same as PLAY_PED_AMBIENT_SPEECH_NATIVE and PLAY_PED_AMBIENT_SPEECH_AND_CLONE_NATIVE but it will allow you to play a speech file from a specific voice file. It works on players and all peds, even animals. - -- - -- EX (C#): - -- GTA.Native.Function.Call(Hash.PLAY_PED_AMBIENT_SPEECH_WITH_VOICE_NATIVE, Game.Player.Character, "GENERIC_INSULT_HIGH", "s_m_y_sheriff_01_white_full_01", "SPEECH_PARAMS_FORCE_SHOUTED", 0); - -- - -- The first param is the ped you want to play it on, the second is the speech name, the third is the voice name, the fourth is the speech param, and the last param is usually always 0. - -- - -- Full list of speeches and voices names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/speeches.json - ["PLAY_PED_AMBIENT_SPEECH_WITH_VOICE_NATIVE"]=--[[void]] function(--[[Ped (int)]] ped,--[[string]] speechName,--[[string]] voiceName,--[[string]] speechParam,--[[BOOL (bool)]] p4)return native_invoker.unified_void(ped, speechName, voiceName, speechParam, p4, 0x3523634255FC3318, "isssb")end, - -- Full list of speeches and voices names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/speeches.json - ["PLAY_AMBIENT_SPEECH_FROM_POSITION_NATIVE"]=--[[void]] function(--[[string]] speechName,--[[string]] voiceName,--[[float]] x,--[[float]] y,--[[float]] z,--[[string]] speechParam)return native_invoker.unified_void(speechName, voiceName, x, y, z, speechParam, 0xED640017ED337E45, "ssfffs")end, - -- This native enables the audio flag "TrevorRageIsOverridden" and sets the voice effect to `voiceEffect` - ["OVERRIDE_TREVOR_RAGE"]=--[[void]] function(--[[string]] voiceEffect)return native_invoker.unified_void(voiceEffect, 0x13AD665062541A7E, "s")end, - ["RESET_TREVOR_RAGE"]=--[[void]] function()return native_invoker.unified_void(0xE78503B10C4314E0, "")end, - ["SET_PLAYER_ANGRY"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xEA241BB04110F091, "ib")end, - -- Needs another parameter [int p2]. The signature is PED::PLAY_PAIN(Ped ped, int painID, int p1, int p2); - -- - -- Last 2 parameters always seem to be 0. - -- - -- EX: Function.Call(Hash.PLAY_PAIN, TestPed, 6, 0, 0); - -- - -- Known Pain IDs - -- ________________________ - -- - -- 1 - Doesn't seem to do anything. Does NOT crash the game like previously said. (Latest patch) - -- 6 - Scream (Short) - -- 7 - Scared Scream (Kinda Long) - -- 8 - On Fire - -- - ["PLAY_PAIN"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] painID,--[[int]] p1,--[[Any (int)]] p3)return native_invoker.unified_void(ped, painID, p1, p3, 0xBC9AE166038A5CEC, "iiii")end, - ["RELEASE_WEAPON_AUDIO"]=--[[void]] function()return native_invoker.unified_void(0xCE4AC0439F607045, "")end, - -- mode can be any of these: - -- SLOWMO_T1_TRAILER_SMASH - -- SLOWMO_T1_RAYFIRE_EXPLOSION - -- SLOWMO_PROLOGUE_VAULT - -- NIGEL_02_SLOWMO_SETTING - -- JSH_EXIT_TUNNEL_SLOWMO - -- SLOWMO_BIG_SCORE_JUMP - -- SLOWMO_FIB4_TRUCK_SMASH - -- SLOWMO_EXTREME_04 - -- SLOW_MO_METH_HOUSE_RAYFIRE - -- BARRY_02_SLOWMO - -- BARRY_01_SLOWMO - ["ACTIVATE_AUDIO_SLOWMO_MODE"]=--[[void]] function(--[[string]] mode)return native_invoker.unified_void(mode, 0xD01005D2BA2EB778, "s")end, - -- see ACTIVATE_AUDIO_SLOWMO_MODE for modes - ["DEACTIVATE_AUDIO_SLOWMO_MODE"]=--[[void]] function(--[[string]] mode)return native_invoker.unified_void(mode, 0xDDC635D5B3262C56, "s")end, - -- Audio List - -- gtaforums.com/topic/795622-audio-for-mods/ - -- - -- All found occurrences in b617d, sorted alphabetically and identical lines removed: https://pastebin.com/FTeAj4yZ - ["SET_AMBIENT_VOICE_NAME"]=--[[void]] function(--[[Ped (int)]] ped,--[[string]] name)return native_invoker.unified_void(ped, name, 0x6C8065A3B780185B, "is")end, - ["SET_AMBIENT_VOICE_NAME_HASH"]=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] hash)return native_invoker.unified_void(ped, hash, 0x9A53DED9921DE990, "ii")end, - ["GET_AMBIENT_VOICE_NAME_HASH"]=--[[Hash (int)]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x5E203DA2BA15D436, "i")end, - -- Assigns some ambient voice to the ped. - ["SET_PED_VOICE_FULL"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x40CF0D12D142A9E8, "i")end, - ["SET_PED_RACE_AND_VOICE_GROUP"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] p1,--[[Hash (int)]] voiceGroup)return native_invoker.unified_void(ped, p1, voiceGroup, 0x1B7ABE26CBCBF8C7, "iii")end, - -- From the scripts: - -- - -- AUDIO::SET_PED_VOICE_GROUP(PLAYER::PLAYER_PED_ID(), MISC::GET_HASH_KEY("PAIGE_PVG")); - -- AUDIO::SET_PED_VOICE_GROUP(PLAYER::PLAYER_PED_ID(), MISC::GET_HASH_KEY("TALINA_PVG")); - -- AUDIO::SET_PED_VOICE_GROUP(PLAYER::PLAYER_PED_ID(), MISC::GET_HASH_KEY("FEMALE_LOST_BLACK_PVG")); - -- AUDIO::SET_PED_VOICE_GROUP(PLAYER::PLAYER_PED_ID(), MISC::GET_HASH_KEY("FEMALE_LOST_WHITE_PVG")); - ["SET_PED_VOICE_GROUP"]=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] voiceGroupHash)return native_invoker.unified_void(ped, voiceGroupHash, 0x7CDC8C3B89F661B3, "ii")end, - -- Dat151RelType == 29 - ["SET_PED_VOICE_GROUP_FROM_RACE_TO_PVG"]=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] voiceGroupHash)return native_invoker.unified_void(ped, voiceGroupHash, 0x0BABC1345ABBFB16, "ii")end, - -- BOOL p1: 0 = Female; 1 = Male - ["SET_PED_GENDER"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1)return native_invoker.unified_void(ped, p1, 0xA5342D390CDA41D6, "ib")end, - ["STOP_CURRENT_PLAYING_SPEECH"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x7A73D05A607734C7, "i")end, - ["STOP_CURRENT_PLAYING_AMBIENT_SPEECH"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xB8BEC0CA6F0EDB0F, "i")end, - ["IS_AMBIENT_SPEECH_PLAYING"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x9072C8B49907BFAD, "i")end, - ["IS_SCRIPTED_SPEECH_PLAYING"]=--[[BOOL (bool)]] function(--[[Ped (int)]] p0)return native_invoker.unified_bool(p0, 0xCC9AA18DCC7084F4, "i")end, - ["IS_ANY_SPEECH_PLAYING"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x729072355FA39EC9, "i")end, - ["IS_ANY_POSITIONAL_SPEECH_PLAYING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x30CA2EF91D15ADF8, "")end, - -- Checks if the ped can play the speech or has the speech file, p2 is usually false. - ["DOES_CONTEXT_EXIST_FOR_THIS_PED"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[string]] speechName,--[[BOOL (bool)]] p2)return native_invoker.unified_bool(ped, speechName, p2, 0x49B99BF3FDA89A7A, "isb")end, - ["IS_PED_IN_CURRENT_CONVERSATION"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x049E937F18F4020C, "i")end, - -- Sets the ped drunk sounds. Only works with PLAYER_PED_ID - -- - -- ==================================================== - -- - -- As mentioned above, this only sets the drunk sound to ped/player. - -- - -- To give the Ped a drunk effect with drunk walking animation try using SET_PED_MOVEMENT_CLIPSET - -- - -- Below is an example - -- - -- if (!Function.Call(Hash.HAS_ANIM_SET_LOADED, "move_m@drunk@verydrunk")) - -- { - -- Function.Call(Hash.REQUEST_ANIM_SET, "move_m@drunk@verydrunk"); - -- } - -- Function.Call(Hash.SET_PED_MOVEMENT_CLIPSET, Ped.Handle, "move_m@drunk@verydrunk", 0x3E800000); - -- - -- - -- - -- And to stop the effect use - -- RESET_PED_MOVEMENT_CLIPSET - ["SET_PED_IS_DRUNK"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x95D2D383D5396B8A, "ib")end, - -- Plays sounds from a ped with chop model. For example it used to play bark or sniff sounds. p1 is always 3 or 4294967295 in decompiled scripts. By a quick disassembling I can assume that this arg is unused. - -- This native is works only when you call it on the ped with right model (ac_chop only ?) - -- Speech Name can be: CHOP_SNIFF_SEQ CHOP_WHINE CHOP_LICKS_MOUTH CHOP_PANT bark GROWL SNARL BARK_SEQ - ["PLAY_ANIMAL_VOCALIZATION"]=--[[void]] function(--[[Ped (int)]] pedHandle,--[[int]] p1,--[[string]] speechName)return native_invoker.unified_void(pedHandle, p1, speechName, 0xEE066C7006C49C0A, "iis")end, - ["IS_ANIMAL_VOCALIZATION_PLAYING"]=--[[BOOL (bool)]] function(--[[Ped (int)]] pedHandle)return native_invoker.unified_bool(pedHandle, 0xC265DF9FB44A9FBD, "i")end, - -- mood can be 0 or 1 (it's not a boolean value!). Effects audio of the animal. - ["SET_ANIMAL_MOOD"]=--[[void]] function(--[[Ped (int)]] animal,--[[int]] mood)return native_invoker.unified_void(animal, mood, 0xCC97B29285B1DC3B, "ii")end, - ["IS_MOBILE_PHONE_RADIO_ACTIVE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xB35CE999E8EF317E, "")end, - ["SET_MOBILE_PHONE_RADIO_STATE"]=--[[void]] function(--[[BOOL (bool)]] state)return native_invoker.unified_void(state, 0xBF286C554784F3DF, "b")end, - -- Returns 255 (radio off index) if the function fails. - ["GET_PLAYER_RADIO_STATION_INDEX"]=--[[int]] function()return native_invoker.unified_int(0xE8AF77C4C06ADC93, "")end, - -- Returns active radio station name - ["GET_PLAYER_RADIO_STATION_NAME"]=--[[string]] function()return native_invoker.unified_string(0xF6D733C32076AD03, "")end, - -- Converts radio station index to string. Use HUD::GET_FILENAME_FOR_AUDIO_CONVERSATION to get the user-readable text. - ["GET_RADIO_STATION_NAME"]=--[[string]] function(--[[int]] radioStation)return native_invoker.unified_string(radioStation, 0xB28ECA15046CA8B9, "i")end, - ["GET_PLAYER_RADIO_STATION_GENRE"]=--[[int]] function()return native_invoker.unified_int(0xA571991A7FE6CCEB, "")end, - ["IS_RADIO_RETUNING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xA151A7394A214E65, "")end, - ["IS_RADIO_FADED_OUT"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x0626A247D2405330, "")end, - -- Tune Forward... - ["SET_RADIO_RETUNE_UP"]=--[[void]] function()return native_invoker.unified_void(0xFF266D1D0EB1195D, "")end, - -- Tune Backwards... - ["SET_RADIO_RETUNE_DOWN"]=--[[void]] function()return native_invoker.unified_void(0xDD6BCF9E94425DF9, "")end, - -- List of radio stations that are in the wheel, in clockwise order, as of LS Tuners DLC: https://git.io/J8a3k - -- An older list including hidden radio stations: https://pastebin.com/Kj9t38KF - ["SET_RADIO_TO_STATION_NAME"]=--[[void]] function(--[[string]] stationName)return native_invoker.unified_void(stationName, 0xC69EDA28699D5107, "s")end, - -- List of radio stations that are in the wheel, in clockwise order, as of LS Tuners DLC: https://git.io/J8a3k - -- An older list including hidden radio stations: https://pastebin.com/Kj9t38KF - ["SET_VEH_RADIO_STATION"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[string]] radioStation)return native_invoker.unified_void(vehicle, radioStation, 0x1B9C0099CB942AC6, "is")end, - ["SET_VEH_HAS_NORMAL_RADIO"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x3E45765F3FBB582F, "i")end, - ["IS_VEHICLE_RADIO_ON"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x0BE4BE946463F917, "i")end, - ["SET_VEH_FORCED_RADIO_THIS_FRAME"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0xC1805D05E6D4FE10, "i")end, - -- Full list of static emitters by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/staticEmitters.json - ["SET_EMITTER_RADIO_STATION"]=--[[void]] function(--[[string]] emitterName,--[[string]] radioStation,--[[Any (int)]] p2)return native_invoker.unified_void(emitterName, radioStation, p2, 0xACF57305B12AF907, "ssi")end, - -- Example: - -- AUDIO::SET_STATIC_EMITTER_ENABLED((Any*)"LOS_SANTOS_VANILLA_UNICORN_01_STAGE", false); AUDIO::SET_STATIC_EMITTER_ENABLED((Any*)"LOS_SANTOS_VANILLA_UNICORN_02_MAIN_ROOM", false); AUDIO::SET_STATIC_EMITTER_ENABLED((Any*)"LOS_SANTOS_VANILLA_UNICORN_03_BACK_ROOM", false); - -- - -- This turns off surrounding sounds not connected directly to peds. - -- - -- Full list of static emitters by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/staticEmitters.json - ["SET_STATIC_EMITTER_ENABLED"]=--[[void]] function(--[[string]] emitterName,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(emitterName, toggle, 0x399D2D3B33F1B8EB, "sb")end, - -- Full list of static emitters by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/staticEmitters.json - ["LINK_STATIC_EMITTER_TO_ENTITY"]=--[[void]] function(--[[string]] emitterName,--[[Entity (int)]] entity)return native_invoker.unified_void(emitterName, entity, 0x651D3228960D08AF, "si")end, - -- Sets radio station by index. - ["SET_RADIO_TO_STATION_INDEX"]=--[[void]] function(--[[int]] radioStation)return native_invoker.unified_void(radioStation, 0xA619B168B8A8570F, "i")end, - ["SET_FRONTEND_RADIO_ACTIVE"]=--[[void]] function(--[[BOOL (bool)]] active)return native_invoker.unified_void(active, 0xF7F26C6E9CC9EBB8, "b")end, - -- "news" that play on the radio after you've done something in story mode(?) - ["UNLOCK_MISSION_NEWS_STORY"]=--[[void]] function(--[[int]] newsStory)return native_invoker.unified_void(newsStory, 0xB165AB7C248B2DC1, "i")end, - ["IS_MISSION_NEWS_STORY_UNLOCKED"]=--[[BOOL (bool)]] function(--[[int]] newsStory)return native_invoker.unified_bool(newsStory, 0x66E49BF55B4B1874, "i")end, - ["GET_AUDIBLE_MUSIC_TRACK_TEXT_ID"]=--[[int]] function()return native_invoker.unified_int(0x50B196FC9ED6545B, "")end, - ["PLAY_END_CREDITS_MUSIC"]=--[[void]] function(--[[BOOL (bool)]] play)return native_invoker.unified_void(play, 0xCD536C4D33DCC900, "b")end, - ["SKIP_RADIO_FORWARD"]=--[[void]] function()return native_invoker.unified_void(0x6DDBBDD98E2E9C25, "")end, - ["FREEZE_RADIO_STATION"]=--[[void]] function(--[[string]] radioStation)return native_invoker.unified_void(radioStation, 0x344F393B027E38C3, "s")end, - ["UNFREEZE_RADIO_STATION"]=--[[void]] function(--[[string]] radioStation)return native_invoker.unified_void(radioStation, 0xFC00454CF60B91DD, "s")end, - ["SET_RADIO_AUTO_UNFREEZE"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xC1AA9F53CE982990, "b")end, - ["SET_INITIAL_PLAYER_STATION"]=--[[void]] function(--[[string]] radioStation)return native_invoker.unified_void(radioStation, 0x88795F13FACDA88D, "s")end, - ["SET_USER_RADIO_CONTROL_ENABLED"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x19F21E63AE6EAE4E, "b")end, - -- Only found this one in the decompiled scripts: - -- - -- AUDIO::SET_RADIO_TRACK("RADIO_03_HIPHOP_NEW", "ARM1_RADIO_STARTS"); - -- - ["SET_RADIO_TRACK"]=--[[void]] function(--[[string]] radioStation,--[[string]] radioTrack)return native_invoker.unified_void(radioStation, radioTrack, 0xB39786F201FEE30B, "ss")end, - ["SET_RADIO_TRACK_WITH_START_OFFSET"]=--[[void]] function(--[[string]] radioStationName,--[[string]] mixName,--[[int]] p2)return native_invoker.unified_void(radioStationName, mixName, p2, 0x2CB0075110BE1E56, "ssi")end, - ["SET_NEXT_RADIO_TRACK"]=--[[void]] function(--[[string]] radioName,--[[string]] radioTrack,--[[string]] p2,--[[string]] p3)return native_invoker.unified_void(radioName, radioTrack, p2, p3, 0x55ECF4D13D9903B0, "ssss")end, - ["SET_VEHICLE_RADIO_LOUD"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xBB6F1CAEC68B0BCE, "ib")end, - ["CAN_VEHICLE_RECEIVE_CB_RADIO"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x032A116663A4D5AC, "i")end, - ["SET_MOBILE_RADIO_ENABLED_DURING_GAMEPLAY"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x1098355A16064BB3, "b")end, - ["DOES_PLAYER_VEH_HAVE_RADIO"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x109697E2FFBAC8A1, "")end, - ["IS_PLAYER_VEH_RADIO_ENABLE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x5F43D83FD6738741, "")end, - -- can't seem to enable radio on cop cars etc - ["SET_VEHICLE_RADIO_ENABLED"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x3B988190C0AA6C0B, "ib")end, - ["SET_POSITIONED_PLAYER_VEHICLE_RADIO_EMITTER_ENABLED"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xDA07819E452FFE8F, "i")end, - -- Examples: - -- - -- AUDIO::SET_CUSTOM_RADIO_TRACK_LIST("RADIO_01_CLASS_ROCK", "END_CREDITS_KILL_MICHAEL", 1); - -- AUDIO::SET_CUSTOM_RADIO_TRACK_LIST("RADIO_01_CLASS_ROCK", "END_CREDITS_KILL_MICHAEL", 1); - -- AUDIO::SET_CUSTOM_RADIO_TRACK_LIST("RADIO_01_CLASS_ROCK", "END_CREDITS_KILL_TREVOR", 1); - -- AUDIO::SET_CUSTOM_RADIO_TRACK_LIST("RADIO_01_CLASS_ROCK", "END_CREDITS_SAVE_MICHAEL_TREVOR", 1); - -- AUDIO::SET_CUSTOM_RADIO_TRACK_LIST("RADIO_01_CLASS_ROCK", "OFF_ROAD_RADIO_ROCK_LIST", 1); - -- AUDIO::SET_CUSTOM_RADIO_TRACK_LIST("RADIO_06_COUNTRY", "MAGDEMO2_RADIO_DINGHY", 1); - -- AUDIO::SET_CUSTOM_RADIO_TRACK_LIST("RADIO_16_SILVERLAKE", "SEA_RACE_RADIO_PLAYLIST", 1); - -- AUDIO::SET_CUSTOM_RADIO_TRACK_LIST("RADIO_01_CLASS_ROCK", "OFF_ROAD_RADIO_ROCK_LIST", 1); - ["SET_CUSTOM_RADIO_TRACK_LIST"]=--[[void]] function(--[[string]] radioStation,--[[string]] trackListName,--[[BOOL (bool)]] p2)return native_invoker.unified_void(radioStation, trackListName, p2, 0x4E404A9361F75BB2, "ssb")end, - -- 3 calls in the b617d scripts, removed duplicate. - -- - -- AUDIO::CLEAR_CUSTOM_RADIO_TRACK_LIST("RADIO_16_SILVERLAKE"); - -- AUDIO::CLEAR_CUSTOM_RADIO_TRACK_LIST("RADIO_01_CLASS_ROCK"); - ["CLEAR_CUSTOM_RADIO_TRACK_LIST"]=--[[void]] function(--[[string]] radioStation)return native_invoker.unified_void(radioStation, 0x1654F24A88A8E3FE, "s")end, - ["GET_NUM_UNLOCKED_RADIO_STATIONS"]=--[[int]] function()return native_invoker.unified_int(0xF1620ECB50E01DE7, "")end, - ["FIND_RADIO_STATION_INDEX"]=--[[int]] function(--[[Hash (int)]] stationNameHash)return native_invoker.unified_int(stationNameHash, 0x8D67489793FF428B, "i")end, - -- 6 calls in the b617d scripts, removed identical lines: - -- - -- AUDIO::SET_RADIO_STATION_MUSIC_ONLY("RADIO_01_CLASS_ROCK", 1); - -- AUDIO::SET_RADIO_STATION_MUSIC_ONLY(AUDIO::GET_RADIO_STATION_NAME(10), 0); - -- AUDIO::SET_RADIO_STATION_MUSIC_ONLY(AUDIO::GET_RADIO_STATION_NAME(10), 1); - ["SET_RADIO_STATION_MUSIC_ONLY"]=--[[void]] function(--[[string]] radioStation,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(radioStation, toggle, 0x774BD811F656A122, "sb")end, - ["SET_RADIO_FRONTEND_FADE_TIME"]=--[[void]] function(--[[float]] fadeTime)return native_invoker.unified_void(fadeTime, 0x2C96CDB04FCA358E, "f")end, - -- AUDIO::UNLOCK_RADIO_STATION_TRACK_LIST("RADIO_16_SILVERLAKE", "MIRRORPARK_LOCKED"); - ["UNLOCK_RADIO_STATION_TRACK_LIST"]=--[[void]] function(--[[string]] radioStation,--[[string]] trackListName)return native_invoker.unified_void(radioStation, trackListName, 0x031ACB6ABA18C729, "ss")end, - ["LOCK_RADIO_STATION_TRACK_LIST"]=--[[void]] function(--[[string]] radioStation,--[[string]] trackListName)return native_invoker.unified_void(radioStation, trackListName, 0xFF5E5EA2DCEEACF3, "ss")end, - -- Just a nullsub (i.e. does absolutely nothing) since build 1604. - ["UPDATE_UNLOCKABLE_DJ_RADIO_TRACKS"]=--[[void]] function(--[[BOOL (bool)]] enableMixes)return native_invoker.unified_void(enableMixes, 0x47AED84213A47510, "b")end, - -- Disables the radio station (hides it from the radio wheel). - ["LOCK_RADIO_STATION"]=--[[void]] function(--[[string]] radioStationName,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(radioStationName, toggle, 0x477D9DB48F889591, "sb")end, - -- Doesn't have an effect in Story Mode. - ["SET_RADIO_STATION_AS_FAVOURITE"]=--[[void]] function(--[[string]] radioStation,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(radioStation, toggle, 0x4CAFEBFA21EC188D, "sb")end, - ["IS_RADIO_STATION_FAVOURITED"]=--[[BOOL (bool)]] function(--[[string]] radioStation)return native_invoker.unified_bool(radioStation, 0x2B1784DB08AFEA79, "s")end, - ["GET_NEXT_AUDIBLE_BEAT"]=--[[BOOL (bool)]] function(--[[float* (pointer)]] out1,--[[float* (pointer)]] out2,--[[int* (pointer)]] out3)return native_invoker.unified_bool(out1, out2, out3, 0xC64A06D939F826F5, "ppp")end, - -- Changes start time of a tracklist (milliseconds) - -- R* uses a random int: MISC::GET_RANDOM_INT_IN_RANGE(0, 13) * 60000) - ["FORCE_MUSIC_TRACK_LIST"]=--[[void]] function(--[[string]] radioStation,--[[string]] trackListName,--[[int]] milliseconds)return native_invoker.unified_void(radioStation, trackListName, milliseconds, 0x4E0AF9114608257C, "ssi")end, - ["GET_CURRENT_TRACK_PLAY_TIME"]=--[[int]] function(--[[string]] radioStationName)return native_invoker.unified_int(radioStationName, 0x3E65CDE5215832C1, "s")end, - ["GET_CURRENT_TRACK_SOUND_NAME"]=--[[Hash (int)]] function(--[[string]] radioStationName)return native_invoker.unified_int(radioStationName, 0x34D66BC058019CE0, "s")end, - ["SET_VEHICLE_MISSILE_WARNING_ENABLED"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xF3365489E0DD50F9, "ib")end, - -- Full list of ambient zones by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ambientZones.json - ["SET_AMBIENT_ZONE_STATE"]=--[[void]] function(--[[string]] zoneName,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(zoneName, p1, p2, 0xBDA07E5950085E46, "sbb")end, - -- This function also has a p2, unknown. Signature AUDIO::CLEAR_AMBIENT_ZONE_STATE(const char* zoneName, bool p1, Any p2); - -- - -- Still needs more research. - -- - -- Full list of ambient zones by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ambientZones.json - ["CLEAR_AMBIENT_ZONE_STATE"]=--[[void]] function(--[[string]] zoneName,--[[BOOL (bool)]] p1)return native_invoker.unified_void(zoneName, p1, 0x218DD44AAAC964FF, "sb")end, - ["SET_AMBIENT_ZONE_LIST_STATE"]=--[[void]] function(--[[string]] ambientZone,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(ambientZone, p1, p2, 0x9748FA4DE50CCE3E, "sbb")end, - ["CLEAR_AMBIENT_ZONE_LIST_STATE"]=--[[void]] function(--[[string]] ambientZone,--[[BOOL (bool)]] p1)return native_invoker.unified_void(ambientZone, p1, 0x120C48C614909FA4, "sb")end, - -- Full list of ambient zones by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ambientZones.json - ["SET_AMBIENT_ZONE_STATE_PERSISTENT"]=--[[void]] function(--[[string]] ambientZone,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(ambientZone, p1, p2, 0x1D6650420CEC9D3B, "sbb")end, - -- Full list of ambient zones by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ambientZones.json - ["SET_AMBIENT_ZONE_LIST_STATE_PERSISTENT"]=--[[void]] function(--[[string]] ambientZone,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(ambientZone, p1, p2, 0xF3638DAE8C4045E1, "sbb")end, - -- Full list of ambient zones by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ambientZones.json - ["IS_AMBIENT_ZONE_ENABLED"]=--[[BOOL (bool)]] function(--[[string]] ambientZone)return native_invoker.unified_bool(ambientZone, 0x01E2817A479A7F9B, "s")end, - ["REFRESH_CLOSEST_OCEAN_SHORELINE"]=--[[void]] function()return native_invoker.unified_void(0x5D2BFAAB8D956E0E, "")end, - -- All occurrences found in b617d, sorted alphabetically and identical lines removed: - -- - -- AUDIO::SET_CUTSCENE_AUDIO_OVERRIDE("_AK"); - -- AUDIO::SET_CUTSCENE_AUDIO_OVERRIDE("_CUSTOM"); - -- AUDIO::SET_CUTSCENE_AUDIO_OVERRIDE("_TOOTHLESS"); - -- Full list of cutscene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/cutsceneNames.json - ["SET_CUTSCENE_AUDIO_OVERRIDE"]=--[[void]] function(--[[string]] name)return native_invoker.unified_void(name, 0x3B4BF5F0859204D9, "s")end, - ["SET_VARIABLE_ON_SYNCH_SCENE_AUDIO"]=--[[void]] function(--[[string]] variableName,--[[float]] value)return native_invoker.unified_void(variableName, value, 0xBCC29F935ED07688, "sf")end, - -- Plays the given police radio message. - -- - -- All found occurrences in b617d, sorted alphabetically and identical lines removed: https://pastebin.com/GBnsQ5hr - -- Full list of police report names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/policeReportNames.json - ["PLAY_POLICE_REPORT"]=--[[int]] function(--[[string]] name,--[[float]] p1)return native_invoker.unified_int(name, p1, 0xDFEBD56D9BD1EB16, "sf")end, - ["CANCEL_ALL_POLICE_REPORTS"]=--[[void]] function()return native_invoker.unified_void(0xB4F90FAF7670B16F, "")end, - -- Plays the siren sound of a vehicle which is otherwise activated when fastly double-pressing the horn key. - -- Only works on vehicles with a police siren. - ["BLIP_SIREN"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x1B9025BDA76822B6, "i")end, - -- Overrides the vehicle's horn hash. - -- When changing this hash on a vehicle, it will not return the 'overwritten' hash. It will still always return the default horn hash (same as GET_VEHICLE_DEFAULT_HORN) - -- - -- vehicle - the vehicle whose horn should be overwritten - -- mute - p1 seems to be an option for muting the horn - -- p2 - maybe a horn id, since the function AUDIO::GET_VEHICLE_DEFAULT_HORN(veh) exists? - ["OVERRIDE_VEH_HORN"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] override,--[[int]] hornHash)return native_invoker.unified_void(vehicle, override, hornHash, 0x3CDC1E622CCE0356, "ibi")end, - -- Checks whether the horn of a vehicle is currently played. - ["IS_HORN_ACTIVE"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x9D6BFC12B05C6121, "i")end, - -- Makes pedestrians sound their horn longer, faster and more agressive when they use their horn. - ["SET_AGGRESSIVE_HORNS"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x395BF71085D1B1D9, "b")end, - -- Does nothing (it's a nullsub). - ["SET_RADIO_POSITION_AUDIO_MUTE"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x02E93C796ABD3A97, "b")end, - -- SET_VEHICLE_CONVERSATIONS_PERSIST? - ["SET_VEHICLE_CONVERSATIONS_PERSIST"]=--[[void]] function(--[[BOOL (bool)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0x58BB377BEC7CD5F4, "bb")end, - ["SET_VEHICLE_CONVERSATIONS_PERSIST_NEW"]=--[[void]] function(--[[BOOL (bool)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x9BD7BD55E4533183, "bbb")end, - ["IS_STREAM_PLAYING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xD11FA52EB849D978, "")end, - ["GET_STREAM_PLAY_TIME"]=--[[int]] function()return native_invoker.unified_int(0x4E72BBDBCA58A3DB, "")end, - -- Example: - -- AUDIO::LOAD_STREAM("CAR_STEAL_1_PASSBY", "CAR_STEAL_1_SOUNDSET"); - -- - -- All found occurrences in the b678d decompiled scripts: https://pastebin.com/3rma6w5w - -- - -- Stream names often ends with "_MASTER", "_SMALL" or "_STREAM". Also "_IN", "_OUT" and numbers. - -- - -- soundSet is often set to 0 in the scripts. These are common to end the soundSets: "_SOUNDS", "_SOUNDSET" and numbers. - -- - -- Full list of audio / sound names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/soundNames.json - ["LOAD_STREAM"]=--[[BOOL (bool)]] function(--[[string]] streamName,--[[string]] soundSet)return native_invoker.unified_bool(streamName, soundSet, 0x1F1F957154EC51DF, "ss")end, - -- Example: - -- AUDIO::LOAD_STREAM_WITH_START_OFFSET("STASH_TOXIN_STREAM", 2400, "FBI_05_SOUNDS"); - -- - -- Only called a few times in the scripts. - -- - -- Full list of audio / sound names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/soundNames.json - ["LOAD_STREAM_WITH_START_OFFSET"]=--[[BOOL (bool)]] function(--[[string]] streamName,--[[int]] startOffset,--[[string]] soundSet)return native_invoker.unified_bool(streamName, startOffset, soundSet, 0x59C16B79F53B3712, "sis")end, - ["PLAY_STREAM_FROM_PED"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x89049DD63C08B5D1, "i")end, - ["PLAY_STREAM_FROM_VEHICLE"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0xB70374A758007DFA, "i")end, - -- Used with AUDIO::LOAD_STREAM - -- - -- Example from finale_heist2b.c4: - -- TASK::TASK_SYNCHRONIZED_SCENE(l_4C8[2/*14*/], l_4C8[2/*14*/]._f7, l_30A, "push_out_vault_l", 4.0, -1.5, 5, 713, 4.0, 0); - -- PED::SET_SYNCHRONIZED_SCENE_PHASE(l_4C8[2/*14*/]._f7, 0.0); - -- PED::FORCE_PED_AI_AND_ANIMATION_UPDATE(l_4C8[2/*14*/], 0, 0); - -- PED::SET_PED_COMBAT_ATTRIBUTES(l_4C8[2/*14*/], 38, 1); - -- PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(l_4C8[2/*14*/], 1); - -- if (AUDIO::LOAD_STREAM("Gold_Cart_Push_Anim_01", "BIG_SCORE_3B_SOUNDS")) { - -- AUDIO::PLAY_STREAM_FROM_OBJECT(l_36F[0/*1*/]); - -- } - ["PLAY_STREAM_FROM_OBJECT"]=--[[void]] function(--[[Object (int)]] object)return native_invoker.unified_void(object, 0xEBAA9B64D76356FD, "i")end, - ["PLAY_STREAM_FRONTEND"]=--[[void]] function()return native_invoker.unified_void(0x58FCE43488F9F5F4, "")end, - ["PLAY_STREAM_FROM_POSITION"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(x, y, z, 0x21442F412E8DE56B, "fff")end, - ["STOP_STREAM"]=--[[void]] function()return native_invoker.unified_void(0xA4718A1419D18151, "")end, - ["STOP_PED_SPEAKING"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] shaking)return native_invoker.unified_void(ped, shaking, 0x9D64D7405520E3D3, "ib")end, - ["BLOCK_ALL_SPEECH_FROM_PED"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(ped, p1, p2, 0xF8AD2EED7C47E8FE, "ibb")end, - ["STOP_PED_SPEAKING_SYNCED"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1)return native_invoker.unified_void(ped, p1, 0xAB6781A5F3101470, "ib")end, - ["DISABLE_PED_PAIN_AUDIO"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xA9A41C1E940FB0E8, "ib")end, - -- Common in the scripts: - -- AUDIO::IS_AMBIENT_SPEECH_DISABLED(PLAYER::PLAYER_PED_ID()); - ["IS_AMBIENT_SPEECH_DISABLED"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x932C2D096A2C3FFF, "i")end, - ["BLOCK_SPEECH_CONTEXT_GROUP"]=--[[void]] function(--[[string]] p0,--[[int]] p1)return native_invoker.unified_void(p0, p1, 0xA8A7D434AFB4B97B, "si")end, - ["UNBLOCK_SPEECH_CONTEXT_GROUP"]=--[[void]] function(--[[string]] p0)return native_invoker.unified_void(p0, 0x2ACABED337622DF2, "s")end, - ["SET_SIREN_WITH_NO_DRIVER"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x1FEF0683B96EBCF2, "ib")end, - ["SET_SIREN_BYPASS_MP_DRIVER_CHECK"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xF584CF8529B51434, "ib")end, - ["TRIGGER_SIREN_AUDIO"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x66C3FB05206041BA, "i")end, - ["SET_HORN_PERMANENTLY_ON"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x9C11908013EA4715, "i")end, - ["SET_HORN_ENABLED"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x76D683C108594D0E, "ib")end, - ["SET_AUDIO_VEHICLE_PRIORITY"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[Any (int)]] p1)return native_invoker.unified_void(vehicle, p1, 0xE5564483E407F914, "ii")end, - ["SET_HORN_PERMANENTLY_ON_TIME"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] time)return native_invoker.unified_void(vehicle, time, 0x9D3AF56E94C9AE98, "if")end, - ["USE_SIREN_AS_HORN"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xFA932DE350266EF8, "ib")end, - -- This native sets the audio of the specified vehicle to the audioName (p1). - -- - -- Use the audioNameHash found in vehicles.meta - -- - -- Example: - -- _SET_VEHICLE_AUDIO(veh, "ADDER"); - -- The selected vehicle will now have the audio of the Adder. - ["FORCE_USE_AUDIO_GAME_OBJECT"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[string]] audioName)return native_invoker.unified_void(vehicle, audioName, 0x4F0C413926060B38, "is")end, - ["PRELOAD_VEHICLE_AUDIO_BANK"]=--[[void]] function(--[[Hash (int)]] vehicleModel)return native_invoker.unified_void(vehicleModel, 0xCA4CEA6AE0000A7E, "i")end, - ["SET_VEHICLE_STARTUP_REV_SOUND"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[string]] p1,--[[string]] p2)return native_invoker.unified_void(vehicle, p1, p2, 0xF1F8157B8C3F171C, "iss")end, - ["RESET_VEHICLE_STARTUP_REV_SOUND"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0xD2DCCD8E16E20997, "i")end, - ["SET_VEHICLE_FORCE_REVERSE_WARNING"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x97FFB4ADEED08066, "ii")end, - ["IS_VEHICLE_AUDIBLY_DAMAGED"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x5DB8010EE71FDEF2, "i")end, - ["SET_VEHICLE_AUDIO_ENGINE_DAMAGE_FACTOR"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] damageFactor)return native_invoker.unified_void(vehicle, damageFactor, 0x59E7B488451F4D3A, "if")end, - -- intensity: 0.0f - 1.0f, only used once with 1.0f in R* Scripts (nigel2) - -- Makes an engine rattling noise when you decelerate, you need to be going faster to hear lower values - ["SET_VEHICLE_AUDIO_BODY_DAMAGE_FACTOR"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] intensity)return native_invoker.unified_void(vehicle, intensity, 0x01BB4D577D38BD9E, "if")end, - ["ENABLE_VEHICLE_FANBELT_DAMAGE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x1C073274E065C6D2, "ib")end, - ["ENABLE_VEHICLE_EXHAUST_POPS"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x2BE4BC731D039D5A, "ib")end, - -- SET_VEHICLE_BOOST_ACTIVE(vehicle, 1, 0); - -- SET_VEHICLE_BOOST_ACTIVE(vehicle, 0, 0); - -- - -- Will give a boost-soundeffect. - ["SET_VEHICLE_BOOST_ACTIVE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x4A04DE7CAB2739A1, "ib")end, - ["SET_PLAYER_VEHICLE_ALARM_AUDIO_ACTIVE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x6FDDAD856E36988A, "ib")end, - ["SET_SCRIPT_UPDATE_DOOR_AUDIO"]=--[[void]] function(--[[Hash (int)]] doorHash,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(doorHash, toggle, 0x06C0023BED16DD6B, "ib")end, - -- doorId: see SET_VEHICLE_DOOR_SHUT - ["PLAY_VEHICLE_DOOR_OPEN_SOUND"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] doorId)return native_invoker.unified_void(vehicle, doorId, 0x3A539D52857EA82D, "ii")end, - -- doorId: see SET_VEHICLE_DOOR_SHUT - ["PLAY_VEHICLE_DOOR_CLOSE_SOUND"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] doorId)return native_invoker.unified_void(vehicle, doorId, 0x62A456AA4769EF34, "ii")end, - -- Works for planes only. - ["ENABLE_STALL_WARNING_SOUNDS"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xC15907D667F7CFB2, "ib")end, - ["_ENABLE_DRAG_RACE_STATIONARY_WARNING_SOUNDS"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] enable)return native_invoker.unified_void(vehicle, enable, 0xBEFB80290414FD4F, "ib")end, - -- Hardcoded to return 1 - ["IS_GAME_IN_CONTROL_OF_MUSIC"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x6D28DC1671E334FD, "")end, - ["SET_GPS_ACTIVE"]=--[[void]] function(--[[BOOL (bool)]] active)return native_invoker.unified_void(active, 0x3BD3F52BA9B1E4E8, "b")end, - -- Called 38 times in the scripts. There are 5 different audioNames used. - -- One unknown removed below. - -- - -- AUDIO::PLAY_MISSION_COMPLETE_AUDIO("DEAD"); - -- AUDIO::PLAY_MISSION_COMPLETE_AUDIO("FRANKLIN_BIG_01"); - -- AUDIO::PLAY_MISSION_COMPLETE_AUDIO("GENERIC_FAILED"); - -- AUDIO::PLAY_MISSION_COMPLETE_AUDIO("TREVOR_SMALL_01"); - ["PLAY_MISSION_COMPLETE_AUDIO"]=--[[void]] function(--[[string]] audioName)return native_invoker.unified_void(audioName, 0xB138AAB8A70D3C69, "s")end, - ["IS_MISSION_COMPLETE_PLAYING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x19A30C23F5827F8A, "")end, - ["IS_MISSION_COMPLETE_READY_FOR_UI"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x6F259F82D873B8B8, "")end, - ["BLOCK_DEATH_JINGLE"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xF154B8D1775B2DEC, "b")end, - -- Used to prepare a scene where the surrounding sound is muted or a bit changed. This does not play any sound. - -- - -- List of all usable scene names found in b617d. Sorted alphabetically and identical names removed: https://pastebin.com/MtM9N9CC - -- Full list of audio scene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/audioSceneNames.json - ["START_AUDIO_SCENE"]=--[[BOOL (bool)]] function(--[[string]] scene)return native_invoker.unified_bool(scene, 0x013A80FC08F6E4F2, "s")end, - -- Full list of audio scene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/audioSceneNames.json - ["STOP_AUDIO_SCENE"]=--[[void]] function(--[[string]] scene)return native_invoker.unified_void(scene, 0xDFE8422B3B94E688, "s")end, - -- ?? - ["STOP_AUDIO_SCENES"]=--[[void]] function()return native_invoker.unified_void(0xBAC7FC81A75EC1A1, "")end, - -- Full list of audio scene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/audioSceneNames.json - ["IS_AUDIO_SCENE_ACTIVE"]=--[[BOOL (bool)]] function(--[[string]] scene)return native_invoker.unified_bool(scene, 0xB65B60556E2A9225, "s")end, - -- Full list of audio scene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/audioSceneNames.json - ["SET_AUDIO_SCENE_VARIABLE"]=--[[void]] function(--[[string]] scene,--[[string]] variable,--[[float]] value)return native_invoker.unified_void(scene, variable, value, 0xEF21A9EF089A2668, "ssf")end, - ["SET_AUDIO_SCRIPT_CLEANUP_TIME"]=--[[void]] function(--[[int]] time)return native_invoker.unified_void(time, 0xA5F377B175A699C5, "i")end, - -- All found occurrences in b678d: - -- https://pastebin.com/ceu67jz8 - ["ADD_ENTITY_TO_AUDIO_MIX_GROUP"]=--[[void]] function(--[[Entity (int)]] entity,--[[string]] groupName,--[[float]] p2)return native_invoker.unified_void(entity, groupName, p2, 0x153973AB99FE8980, "isf")end, - ["REMOVE_ENTITY_FROM_AUDIO_MIX_GROUP"]=--[[void]] function(--[[Entity (int)]] entity,--[[float]] p1)return native_invoker.unified_void(entity, p1, 0x18EB48CFC41F2EA0, "if")end, - ["AUDIO_IS_MUSIC_PLAYING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x845FFC3A4FEEFA3E, "")end, - -- This is an alias of AUDIO_IS_MUSIC_PLAYING. - ["AUDIO_IS_SCRIPTED_MUSIC_PLAYING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x2DD39BF3E2F9C47F, "")end, - -- All music event names found in the b617d scripts: https://pastebin.com/GnYt0R3P - -- Full list of music event names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/musicEventNames.json - ["PREPARE_MUSIC_EVENT"]=--[[BOOL (bool)]] function(--[[string]] eventName)return native_invoker.unified_bool(eventName, 0x1E5185B72EF5158A, "s")end, - -- All music event names found in the b617d scripts: https://pastebin.com/GnYt0R3P - -- Full list of music event names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/musicEventNames.json - ["CANCEL_MUSIC_EVENT"]=--[[BOOL (bool)]] function(--[[string]] eventName)return native_invoker.unified_bool(eventName, 0x5B17A90291133DA5, "s")end, - -- List of all usable event names found in b617d used with this native. Sorted alphabetically and identical names removed: https://pastebin.com/RzDFmB1W - -- - -- All music event names found in the b617d scripts: https://pastebin.com/GnYt0R3P - -- Full list of music event names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/musicEventNames.json - ["TRIGGER_MUSIC_EVENT"]=--[[BOOL (bool)]] function(--[[string]] eventName)return native_invoker.unified_bool(eventName, 0x706D57B0F50DA710, "s")end, - ["IS_MUSIC_ONESHOT_PLAYING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xA097AB275061FB21, "")end, - ["GET_MUSIC_PLAYTIME"]=--[[int]] function()return native_invoker.unified_int(0xE7A0D23DC414507B, "")end, - ["SET_GLOBAL_RADIO_SIGNAL_LEVEL"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x159B7318403A1CD8, "i")end, - ["RECORD_BROKEN_GLASS"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius)return native_invoker.unified_void(x, y, z, radius, 0xFBE20329593DEC9D, "ffff")end, - ["CLEAR_ALL_BROKEN_GLASS"]=--[[void]] function()return native_invoker.unified_void(0xB32209EFFDC04913, "")end, - ["SCRIPT_OVERRIDES_WIND_ELEVATION"]=--[[void]] function(--[[BOOL (bool)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x70B8EC8FC108A634, "bi")end, - ["SET_PED_WALLA_DENSITY"]=--[[void]] function(--[[float]] p0,--[[float]] p1)return native_invoker.unified_void(p0, p1, 0x149AEE66F0CB3A99, "ff")end, - ["SET_PED_INTERIOR_WALLA_DENSITY"]=--[[void]] function(--[[float]] p0,--[[float]] p1)return native_invoker.unified_void(p0, p1, 0x8BF907833BE275DE, "ff")end, - ["FORCE_PED_PANIC_WALLA"]=--[[void]] function()return native_invoker.unified_void(0x062D5EAD4DA2FA6A, "")end, - -- Example: - -- - -- bool prepareAlarm = AUDIO::PREPARE_ALARM("PORT_OF_LS_HEIST_FORT_ZANCUDO_ALARMS"); - -- Full list of alarm names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/alarmSounds.json - ["PREPARE_ALARM"]=--[[BOOL (bool)]] function(--[[string]] alarmName)return native_invoker.unified_bool(alarmName, 0x9D74AE343DB65533, "s")end, - -- Example: - -- - -- This will start the alarm at Fort Zancudo. - -- - -- AUDIO::START_ALARM("PORT_OF_LS_HEIST_FORT_ZANCUDO_ALARMS", 1); - -- - -- First parameter (char) is the name of the alarm. - -- Second parameter (bool) is unknown, it does not seem to make a difference if this one is 0 or 1. - -- - -- ---------- - -- - -- It DOES make a difference but it has to do with the duration or something I dunno yet - -- - -- ---------- - -- - -- Found in the b617d scripts: - -- - -- AUDIO::START_ALARM("AGENCY_HEIST_FIB_TOWER_ALARMS", 0); - -- AUDIO::START_ALARM("AGENCY_HEIST_FIB_TOWER_ALARMS_UPPER", 1); - -- AUDIO::START_ALARM("AGENCY_HEIST_FIB_TOWER_ALARMS_UPPER_B", 0); - -- AUDIO::START_ALARM("BIG_SCORE_HEIST_VAULT_ALARMS", a_0); - -- AUDIO::START_ALARM("FBI_01_MORGUE_ALARMS", 1); - -- AUDIO::START_ALARM("FIB_05_BIOTECH_LAB_ALARMS", 0); - -- AUDIO::START_ALARM("JEWEL_STORE_HEIST_ALARMS", 0); - -- AUDIO::START_ALARM("PALETO_BAY_SCORE_ALARM", 1); - -- AUDIO::START_ALARM("PALETO_BAY_SCORE_CHICKEN_FACTORY_ALARM", 0); - -- AUDIO::START_ALARM("PORT_OF_LS_HEIST_FORT_ZANCUDO_ALARMS", 1); - -- AUDIO::START_ALARM("PORT_OF_LS_HEIST_SHIP_ALARMS", 0); - -- AUDIO::START_ALARM("PRISON_ALARMS", 0); - -- AUDIO::START_ALARM("PROLOGUE_VAULT_ALARMS", 0); - -- Full list of alarm names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/alarmSounds.json - ["START_ALARM"]=--[[void]] function(--[[string]] alarmName,--[[BOOL (bool)]] p2)return native_invoker.unified_void(alarmName, p2, 0x0355EF116C4C97B2, "sb")end, - -- Example: - -- - -- This will stop the alarm at Fort Zancudo. - -- - -- AUDIO::STOP_ALARM("PORT_OF_LS_HEIST_FORT_ZANCUDO_ALARMS", 1); - -- - -- First parameter (char) is the name of the alarm. - -- Second parameter (bool) has to be true (1) to have any effect. - -- Full list of alarm names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/alarmSounds.json - ["STOP_ALARM"]=--[[void]] function(--[[string]] alarmName,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(alarmName, toggle, 0xA1CADDCD98415A41, "sb")end, - ["STOP_ALL_ALARMS"]=--[[void]] function(--[[BOOL (bool)]] stop)return native_invoker.unified_void(stop, 0x2F794A877ADD4C92, "b")end, - -- Example: - -- - -- bool playing = AUDIO::IS_ALARM_PLAYING("PORT_OF_LS_HEIST_FORT_ZANCUDO_ALARMS"); - -- Full list of alarm names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/alarmSounds.json - ["IS_ALARM_PLAYING"]=--[[BOOL (bool)]] function(--[[string]] alarmName)return native_invoker.unified_bool(alarmName, 0x226435CB96CCFC8C, "s")end, - -- Returns hash of default vehicle horn - -- - -- Hash is stored in audVehicleAudioEntity - ["GET_VEHICLE_DEFAULT_HORN"]=--[[Hash (int)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x02165D55000219AC, "i")end, - ["GET_VEHICLE_DEFAULT_HORN_IGNORE_MODS"]=--[[Hash (int)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0xACB5DCCA1EC76840, "i")end, - ["RESET_PED_AUDIO_FLAGS"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xF54BB7B61036F335, "i")end, - -- Enables/disables ped's "loud" footstep sound. - ["SET_PED_FOOTSTEPS_EVENTS_ENABLED"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x0653B735BFBDFE87, "ib")end, - -- Enables/disables ped's "quiet" footstep sound. - ["SET_PED_CLOTH_EVENTS_ENABLED"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x29DA3CA8D8B2692D, "ib")end, - -- Sets audio flag "OverridePlayerGroundMaterial" - ["OVERRIDE_PLAYER_GROUND_MATERIAL"]=--[[void]] function(--[[Hash (int)]] hash,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(hash, toggle, 0xD2CC78CD3D0B50F9, "ib")end, - ["USE_FOOTSTEP_SCRIPT_SWEETENERS"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1,--[[Hash (int)]] hash)return native_invoker.unified_void(ped, p1, hash, 0xBF4DC1784BE94DFA, "ibi")end, - -- Sets audio flag "OverrideMicrophoneSettings" - ["OVERRIDE_MICROPHONE_SETTINGS"]=--[[void]] function(--[[Hash (int)]] hash,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(hash, toggle, 0x75773E11BA459E90, "ib")end, - ["FREEZE_MICROPHONE"]=--[[void]] function()return native_invoker.unified_void(0xD57AAAE0E2214D11, "")end, - -- If value is set to true, and ambient siren sound will be played. - -- Appears to enable/disable an audio flag. - ["DISTANT_COP_CAR_SIRENS"]=--[[void]] function(--[[BOOL (bool)]] value)return native_invoker.unified_void(value, 0x552369F549563AD5, "b")end, - ["SET_SIREN_CAN_BE_CONTROLLED_BY_AUDIO"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0x43FA0DFC5DF87815, "ib")end, - ["ENABLE_STUNT_JUMP_AUDIO"]=--[[void]] function()return native_invoker.unified_void(0xB81CF134AEB56FFB, "")end, - -- Possible flag names: - -- "ActivateSwitchWheelAudio" - -- "AllowAmbientSpeechInSlowMo" - -- "AllowCutsceneOverScreenFade" - -- "AllowForceRadioAfterRetune" - -- "AllowPainAndAmbientSpeechToPlayDuringCutscene" - -- "AllowPlayerAIOnMission" - -- "AllowPoliceScannerWhenPlayerHasNoControl" - -- "AllowRadioDuringSwitch" - -- "AllowRadioOverScreenFade" - -- "AllowScoreAndRadio" - -- "AllowScriptedSpeechInSlowMo" - -- "AvoidMissionCompleteDelay" - -- "DisableAbortConversationForDeathAndInjury" - -- "DisableAbortConversationForRagdoll" - -- "DisableBarks" - -- "DisableFlightMusic" - -- "DisableReplayScriptStreamRecording" - -- "EnableHeadsetBeep" - -- "ForceConversationInterrupt" - -- "ForceSeamlessRadioSwitch" - -- "ForceSniperAudio" - -- "FrontendRadioDisabled" - -- "HoldMissionCompleteWhenPrepared" - -- "IsDirectorModeActive" - -- "IsPlayerOnMissionForSpeech" - -- "ListenerReverbDisabled" - -- "LoadMPData" - -- "MobileRadioInGame" - -- "OnlyAllowScriptTriggerPoliceScanner" - -- "PlayMenuMusic" - -- "PoliceScannerDisabled" - -- "ScriptedConvListenerMaySpeak" - -- "SpeechDucksScore" - -- "SuppressPlayerScubaBreathing" - -- "WantedMusicDisabled" - -- "WantedMusicOnMission" - -- - -- ------------------------------- - -- No added flag names between b393d and b573d, including b573d. - -- - -- ####################################################################### - -- - -- "IsDirectorModeActive" is an audio flag which will allow you to play speech infinitely without any pauses like in Director Mode. - -- - -- ----------------------------------------------------------------------- - -- - -- All flag IDs and hashes: - -- - -- ID: 00 | Hash: 0x0FED7A7F - -- ID: 01 | Hash: 0x20A7858F - -- ID: 02 | Hash: 0xA11C2259 - -- ID: 03 | Hash: 0x08DE4700 - -- ID: 04 | Hash: 0x989F652F - -- ID: 05 | Hash: 0x3C9E76BA - -- ID: 06 | Hash: 0xA805FEB0 - -- ID: 07 | Hash: 0x4B94EA26 - -- ID: 08 | Hash: 0x803ACD34 - -- ID: 09 | Hash: 0x7C741226 - -- ID: 10 | Hash: 0x31DB9EBD - -- ID: 11 | Hash: 0xDF386F18 - -- ID: 12 | Hash: 0x669CED42 - -- ID: 13 | Hash: 0x51F22743 - -- ID: 14 | Hash: 0x2052B35C - -- ID: 15 | Hash: 0x071472DC - -- ID: 16 | Hash: 0xF9928BCC - -- ID: 17 | Hash: 0x7ADBDD48 - -- ID: 18 | Hash: 0xA959BA1A - -- ID: 19 | Hash: 0xBBE89B60 - -- ID: 20 | Hash: 0x87A08871 - -- ID: 21 | Hash: 0xED1057CE - -- ID: 22 | Hash: 0x1584AD7A - -- ID: 23 | Hash: 0x8582CFCB - -- ID: 24 | Hash: 0x7E5E2FB0 - -- ID: 25 | Hash: 0xAE4F72DB - -- ID: 26 | Hash: 0x5D16D1FA - -- ID: 27 | Hash: 0x06B2F4B8 - -- ID: 28 | Hash: 0x5D4CDC96 - -- ID: 29 | Hash: 0x8B5A48BA - -- ID: 30 | Hash: 0x98FBD539 - -- ID: 31 | Hash: 0xD8CB0473 - -- ID: 32 | Hash: 0x5CBB4874 - -- ID: 33 | Hash: 0x2E9F93A9 - -- ID: 34 | Hash: 0xD93BEA86 - -- ID: 35 | Hash: 0x92109B7D - -- ID: 36 | Hash: 0xB7EC9E4D - -- ID: 37 | Hash: 0xCABDBB1D - -- ID: 38 | Hash: 0xB3FD4A52 - -- ID: 39 | Hash: 0x370D94E5 - -- ID: 40 | Hash: 0xA0F7938F - -- ID: 41 | Hash: 0xCBE1CE81 - -- ID: 42 | Hash: 0xC27F1271 - -- ID: 43 | Hash: 0x9E3258EB - -- ID: 44 | Hash: 0x551CDA5B - -- ID: 45 | Hash: 0xCB6D663C - -- ID: 46 | Hash: 0x7DACE87F - -- ID: 47 | Hash: 0xF9DE416F - -- ID: 48 | Hash: 0x882E6E9E - -- ID: 49 | Hash: 0x16B447E7 - -- ID: 50 | Hash: 0xBD867739 - -- ID: 51 | Hash: 0xA3A58604 - -- ID: 52 | Hash: 0x7E046BBC - -- ID: 53 | Hash: 0xD95FDB98 - -- ID: 54 | Hash: 0x5842C0ED - -- ID: 55 | Hash: 0x285FECC6 - -- ID: 56 | Hash: 0x9351AC43 - -- ID: 57 | Hash: 0x50032E75 - -- ID: 58 | Hash: 0xAE6D0D59 - -- ID: 59 | Hash: 0xD6351785 - -- ID: 60 | Hash: 0xD25D71BC - -- ID: 61 | Hash: 0x1F7F6423 - -- ID: 62 | Hash: 0xE24C3AA6 - -- ID: 63 | Hash: 0xBFFDD2B7 - ["SET_AUDIO_FLAG"]=--[[void]] function(--[[string]] flagName,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(flagName, toggle, 0xB9EFD5C25018725A, "sb")end, - -- p1 is always 0 in the scripts - ["PREPARE_SYNCHRONIZED_AUDIO_EVENT"]=--[[BOOL (bool)]] function(--[[string]] audioEvent,--[[Any (int)]] p1)return native_invoker.unified_bool(audioEvent, p1, 0xC7ABCACA4985A766, "si")end, - ["PREPARE_SYNCHRONIZED_AUDIO_EVENT_FOR_SCENE"]=--[[BOOL (bool)]] function(--[[int]] sceneID,--[[string]] audioEvent)return native_invoker.unified_bool(sceneID, audioEvent, 0x029FE7CD1B7E2E75, "is")end, - ["PLAY_SYNCHRONIZED_AUDIO_EVENT"]=--[[BOOL (bool)]] function(--[[int]] sceneID)return native_invoker.unified_bool(sceneID, 0x8B2FD4560E55DD2D, "i")end, - ["STOP_SYNCHRONIZED_AUDIO_EVENT"]=--[[BOOL (bool)]] function(--[[int]] sceneID)return native_invoker.unified_bool(sceneID, 0x92D6A88E64A94430, "i")end, - ["INIT_SYNCH_SCENE_AUDIO_WITH_POSITION"]=--[[void]] function(--[[string]] audioEvent,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(audioEvent, x, y, z, 0xC8EDE9BDBCCBA6D4, "sfff")end, - ["INIT_SYNCH_SCENE_AUDIO_WITH_ENTITY"]=--[[void]] function(--[[string]] audioEvent,--[[Entity (int)]] entity)return native_invoker.unified_void(audioEvent, entity, 0x950A154B8DAB6185, "si")end, - -- Needs to be called every frame. - -- Audio mode to apply this frame: https://alloc8or.re/gta5/doc/enums/audSpecialEffectMode.txt - ["SET_AUDIO_SPECIAL_EFFECT_MODE"]=--[[void]] function(--[[int]] mode)return native_invoker.unified_void(mode, 0x12561FCBB62D5B9C, "i")end, - -- Found in the b617d scripts, duplicates removed: - -- - -- AUDIO::SET_PORTAL_SETTINGS_OVERRIDE("V_CARSHOWROOM_PS_WINDOW_UNBROKEN", "V_CARSHOWROOM_PS_WINDOW_BROKEN"); - -- - -- AUDIO::SET_PORTAL_SETTINGS_OVERRIDE("V_CIA_PS_WINDOW_UNBROKEN", "V_CIA_PS_WINDOW_BROKEN"); - -- - -- AUDIO::SET_PORTAL_SETTINGS_OVERRIDE("V_DLC_HEIST_APARTMENT_DOOR_CLOSED", "V_DLC_HEIST_APARTMENT_DOOR_OPEN"); - -- - -- AUDIO::SET_PORTAL_SETTINGS_OVERRIDE("V_FINALEBANK_PS_VAULT_INTACT", "V_FINALEBANK_PS_VAULT_BLOWN"); - -- - -- AUDIO::SET_PORTAL_SETTINGS_OVERRIDE("V_MICHAEL_PS_BATHROOM_WITH_WINDOW", "V_MICHAEL_PS_BATHROOM_WITHOUT_WINDOW"); - ["SET_PORTAL_SETTINGS_OVERRIDE"]=--[[void]] function(--[[string]] p0,--[[string]] p1)return native_invoker.unified_void(p0, p1, 0x044DBAD7A7FA2BE5, "ss")end, - -- Found in the b617d scripts, duplicates removed: - -- - -- AUDIO::REMOVE_PORTAL_SETTINGS_OVERRIDE("V_CARSHOWROOM_PS_WINDOW_UNBROKEN"); - -- AUDIO::REMOVE_PORTAL_SETTINGS_OVERRIDE("V_CIA_PS_WINDOW_UNBROKEN"); - -- AUDIO::REMOVE_PORTAL_SETTINGS_OVERRIDE("V_DLC_HEIST_APARTMENT_DOOR_CLOSED"); - -- AUDIO::REMOVE_PORTAL_SETTINGS_OVERRIDE("V_FINALEBANK_PS_VAULT_INTACT"); - -- AUDIO::REMOVE_PORTAL_SETTINGS_OVERRIDE("V_MICHAEL_PS_BATHROOM_WITH_WINDOW"); - ["REMOVE_PORTAL_SETTINGS_OVERRIDE"]=--[[void]] function(--[[string]] p0)return native_invoker.unified_void(p0, 0xB4BBFD9CD8B3922B, "s")end, - -- STOP_S[MOKE_GRENADE_EXPLOSION_SOUNDS]? - ["STOP_SMOKE_GRENADE_EXPLOSION_SOUNDS"]=--[[void]] function()return native_invoker.unified_void(0xE4E6DD5566D28C82, "")end, - ["GET_MUSIC_VOL_SLIDER"]=--[[int]] function()return native_invoker.unified_int(0x3A48AB4445D499BE, "")end, - ["REQUEST_TENNIS_BANKS"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x4ADA3F19BE4A6047, "i")end, - ["UNREQUEST_TENNIS_BANKS"]=--[[void]] function()return native_invoker.unified_void(0x0150B6FF25A9E2E5, "")end, - ["SET_SKIP_MINIGUN_SPIN_UP_AUDIO"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xBEF34B1D9624D5DD, "b")end, - ["STOP_CUTSCENE_AUDIO"]=--[[void]] function()return native_invoker.unified_void(0x806058BBDC136E06, "")end, - ["HAS_LOADED_MP_DATA_SET"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x544810ED9DB6BBE6, "")end, - ["HAS_LOADED_SP_DATA_SET"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x5B50ABB1FE3746F4, "")end, - ["GET_VEHICLE_HORN_SOUND_INDEX"]=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0xD53F3A29BCE2580E, "i")end, - ["SET_VEHICLE_HORN_SOUND_INDEX"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] value)return native_invoker.unified_void(vehicle, value, 0x0350E7E17BA767D0, "ii")end, -} -BRAIN={ - -- BRAIN::ADD_SCRIPT_TO_RANDOM_PED("pb_prostitute", ${s_f_y_hooker_01}, 100, 0); - -- - -- - Nacorpio - -- - -- ----- - -- - -- Hardcoded to not work in Multiplayer. - ["ADD_SCRIPT_TO_RANDOM_PED"]=--[[void]] function(--[[string]] name,--[[Hash (int)]] model,--[[float]] p2,--[[float]] p3)return native_invoker.unified_void(name, model, p2, p3, 0x4EE5367468A65CCC, "siff")end, - -- Registers a script for any object with a specific model hash. - -- - -- BRAIN::REGISTER_OBJECT_SCRIPT_BRAIN("ob_telescope", ${prop_telescope_01}, 100, 4.0, -1, 9); - -- - -- - Nacorpio - ["REGISTER_OBJECT_SCRIPT_BRAIN"]=--[[void]] function(--[[string]] scriptName,--[[Hash (int)]] modelHash,--[[int]] p2,--[[float]] activationRange,--[[int]] p4,--[[int]] p5)return native_invoker.unified_void(scriptName, modelHash, p2, activationRange, p4, p5, 0x0BE84C318BA6EC22, "siifii")end, - ["IS_OBJECT_WITHIN_BRAIN_ACTIVATION_RANGE"]=--[[BOOL (bool)]] function(--[[Object (int)]] object)return native_invoker.unified_bool(object, 0xCCBA154209823057, "i")end, - ["REGISTER_WORLD_POINT_SCRIPT_BRAIN"]=--[[void]] function(--[[string]] scriptName,--[[float]] activationRange,--[[int]] p2)return native_invoker.unified_void(scriptName, activationRange, p2, 0x3CDC7136613284BD, "sfi")end, - -- Gets whether the world point the calling script is registered to is within desired range of the player. - ["IS_WORLD_POINT_WITHIN_BRAIN_ACTIVATION_RANGE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC5042CC6F5E3D450, "")end, - ["ENABLE_SCRIPT_BRAIN_SET"]=--[[void]] function(--[[int]] brainSet)return native_invoker.unified_void(brainSet, 0x67AA4D73F0CFA86B, "i")end, - ["DISABLE_SCRIPT_BRAIN_SET"]=--[[void]] function(--[[int]] brainSet)return native_invoker.unified_void(brainSet, 0x14D8518E9760F08F, "i")end, - ["REACTIVATE_ALL_WORLD_BRAINS_THAT_ARE_WAITING_TILL_OUT_OF_RANGE"]=--[[void]] function()return native_invoker.unified_void(0x0B40ED49D7D6FF84, "")end, - ["REACTIVATE_ALL_OBJECT_BRAINS_THAT_ARE_WAITING_TILL_OUT_OF_RANGE"]=--[[void]] function()return native_invoker.unified_void(0x4D953DF78EBF8158, "")end, - -- Possible values: - -- - -- act_cinema - -- am_mp_carwash_launch - -- am_mp_carwash_control - -- am_mp_property_ext - -- chop - -- fairgroundHub - -- launcher_BasejumpHeli - -- launcher_BasejumpPack - -- launcher_CarWash - -- launcher_golf - -- launcher_Hunting_Ambient - -- launcher_MrsPhilips - -- launcher_OffroadRacing - -- launcher_pilotschool - -- launcher_Racing - -- launcher_rampage - -- launcher_rampage - -- launcher_range - -- launcher_stunts - -- launcher_stunts - -- launcher_tennis - -- launcher_Tonya - -- launcher_Triathlon - -- launcher_Yoga - -- ob_mp_bed_low - -- ob_mp_bed_med - ["REACTIVATE_NAMED_WORLD_BRAINS_WAITING_TILL_OUT_OF_RANGE"]=--[[void]] function(--[[string]] scriptName)return native_invoker.unified_void(scriptName, 0x6D6840CEE8845831, "s")end, - -- Looks like a cousin of above function _6D6840CEE8845831 as it was found among them. Must be similar - -- - -- Here are possible values of argument - - -- - -- "ob_tv" - -- "launcher_Darts" - ["REACTIVATE_NAMED_OBJECT_BRAINS_WAITING_TILL_OUT_OF_RANGE"]=--[[void]] function(--[[string]] scriptName)return native_invoker.unified_void(scriptName, 0x6E91B04E08773030, "s")end, -} -CAM={ - -- ease - smooth transition between the camera's positions - -- easeTime - Time in milliseconds for the transition to happen - -- - -- If you have created a script (rendering) camera, and want to go back to the - -- character (gameplay) camera, call this native with render set to 0. - -- Setting ease to 1 will smooth the transition. - ["RENDER_SCRIPT_CAMS"]=--[[void]] function(--[[BOOL (bool)]] render,--[[BOOL (bool)]] ease,--[[int]] easeTime,--[[BOOL (bool)]] p3,--[[BOOL (bool)]] p4,--[[Any (int)]] p5)return native_invoker.unified_void(render, ease, easeTime, p3, p4, p5, 0x07E5B515DB0636FC, "bbibbi")end, - -- This native makes the gameplay camera zoom into first person/third person with a special effect. - ["STOP_RENDERING_SCRIPT_CAMS_USING_CATCH_UP"]=--[[void]] function(--[[BOOL (bool)]] render,--[[float]] p1,--[[int]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(render, p1, p2, p3, 0xC819F3CBB62BF692, "bfii")end, - -- "DEFAULT_SCRIPTED_CAMERA" - -- "DEFAULT_ANIMATED_CAMERA" - -- "DEFAULT_SPLINE_CAMERA" - -- "DEFAULT_SCRIPTED_FLY_CAMERA" - -- "TIMED_SPLINE_CAMERA" - ["CREATE_CAM"]=--[[Cam (int)]] function(--[[string]] camName,--[[BOOL (bool)]] p1)return native_invoker.unified_int(camName, p1, 0xC3981DCE61D9E13F, "sb")end, - -- camName is always set to "DEFAULT_SCRIPTED_CAMERA" in Rockstar's scripts. - -- ------------ - -- Camera names found in the b617d scripts: - -- "DEFAULT_ANIMATED_CAMERA" - -- "DEFAULT_SCRIPTED_CAMERA" - -- "DEFAULT_SCRIPTED_FLY_CAMERA" - -- "DEFAULT_SPLINE_CAMERA" - -- ------------ - -- Side Note: It seems p8 is basically to represent what would be the bool p1 within CREATE_CAM native. As well as the p9 since it's always 2 in scripts seems to represent what would be the last param within SET_CAM_ROT native which normally would be 2. - ["CREATE_CAM_WITH_PARAMS"]=--[[Cam (int)]] function(--[[string]] camName,--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ,--[[float]] fov,--[[BOOL (bool)]] p8,--[[int]] p9)return native_invoker.unified_int(camName, posX, posY, posZ, rotX, rotY, rotZ, fov, p8, p9, 0xB51194800B257161, "sfffffffbi")end, - ["CREATE_CAMERA"]=--[[Cam (int)]] function(--[[Hash (int)]] camHash,--[[BOOL (bool)]] p1)return native_invoker.unified_int(camHash, p1, 0x5E3CF89C6BCCA67D, "ib")end, - -- p9 uses 2 by default - ["CREATE_CAMERA_WITH_PARAMS"]=--[[Cam (int)]] function(--[[Hash (int)]] camHash,--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ,--[[float]] fov,--[[BOOL (bool)]] p8,--[[Any (int)]] p9)return native_invoker.unified_int(camHash, posX, posY, posZ, rotX, rotY, rotZ, fov, p8, p9, 0x6ABFA3E16460F22D, "ifffffffbi")end, - -- BOOL param indicates whether the cam should be destroyed if it belongs to the calling script. - ["DESTROY_CAM"]=--[[void]] function(--[[Cam (int)]] cam,--[[BOOL (bool)]] bScriptHostCam)return native_invoker.unified_void(cam, bScriptHostCam, 0x865908C81A2C22E9, "ib")end, - -- BOOL param indicates whether the cam should be destroyed if it belongs to the calling script. - ["DESTROY_ALL_CAMS"]=--[[void]] function(--[[BOOL (bool)]] bScriptHostCam)return native_invoker.unified_void(bScriptHostCam, 0x8E5FB15663F79120, "b")end, - -- Returns whether or not the passed camera handle exists. - ["DOES_CAM_EXIST"]=--[[BOOL (bool)]] function(--[[Cam (int)]] cam)return native_invoker.unified_bool(cam, 0xA7A932170592B50E, "i")end, - -- Set camera as active/inactive. - ["SET_CAM_ACTIVE"]=--[[void]] function(--[[Cam (int)]] cam,--[[BOOL (bool)]] active)return native_invoker.unified_void(cam, active, 0x026FB97D0A425F84, "ib")end, - -- Returns whether or not the passed camera handle is active. - ["IS_CAM_ACTIVE"]=--[[BOOL (bool)]] function(--[[Cam (int)]] cam)return native_invoker.unified_bool(cam, 0xDFB2B516207D3534, "i")end, - ["IS_CAM_RENDERING"]=--[[BOOL (bool)]] function(--[[Cam (int)]] cam)return native_invoker.unified_bool(cam, 0x02EC0AF5C5A49B7A, "i")end, - ["GET_RENDERING_CAM"]=--[[Cam (int)]] function()return native_invoker.unified_int(0x5234F9F10919EABA, "")end, - ["GET_CAM_COORD"]=--[[Vector3 (vector3)]] function(--[[Cam (int)]] cam)return native_invoker.unified_vector3(cam, 0xBAC038F7459AE5AE, "i")end, - -- The last parameter, as in other "ROT" methods, is usually 2. - ["GET_CAM_ROT"]=--[[Vector3 (vector3)]] function(--[[Cam (int)]] cam,--[[int]] rotationOrder)return native_invoker.unified_vector3(cam, rotationOrder, 0x7D304C1C955E3E12, "ii")end, - ["GET_CAM_FOV"]=--[[float]] function(--[[Cam (int)]] cam)return native_invoker.unified_float(cam, 0xC3330A45CCCDB26A, "i")end, - ["GET_CAM_NEAR_CLIP"]=--[[float]] function(--[[Cam (int)]] cam)return native_invoker.unified_float(cam, 0xC520A34DAFBF24B1, "i")end, - ["GET_CAM_FAR_CLIP"]=--[[float]] function(--[[Cam (int)]] cam)return native_invoker.unified_float(cam, 0xB60A9CFEB21CA6AA, "i")end, - ["GET_CAM_NEAR_DOF"]=--[[float]] function(--[[Cam (int)]] cam)return native_invoker.unified_float(cam, 0xC2612D223D915A1C, "i")end, - ["GET_CAM_FAR_DOF"]=--[[float]] function(--[[Cam (int)]] cam)return native_invoker.unified_float(cam, 0x255F8DAFD540D397, "i")end, - ["GET_CAM_DOF_STRENGTH"]=--[[float]] function(--[[Cam (int)]] cam)return native_invoker.unified_float(cam, 0x06D153C0B99B6128, "i")end, - ["SET_CAM_PARAMS"]=--[[void]] function(--[[Cam (int)]] cam,--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ,--[[float]] fieldOfView,--[[Any (int)]] p8,--[[int]] p9,--[[int]] p10,--[[int]] p11)return native_invoker.unified_void(cam, posX, posY, posZ, rotX, rotY, rotZ, fieldOfView, p8, p9, p10, p11, 0xBFD8727AEA3CCEBA, "ifffffffiiii")end, - -- Sets the position of the cam. - ["SET_CAM_COORD"]=--[[void]] function(--[[Cam (int)]] cam,--[[float]] posX,--[[float]] posY,--[[float]] posZ)return native_invoker.unified_void(cam, posX, posY, posZ, 0x4D41783FB745E42E, "ifff")end, - -- Sets the rotation of the cam. - -- Last parameter unknown. - -- - -- Last parameter seems to always be set to 2. - ["SET_CAM_ROT"]=--[[void]] function(--[[Cam (int)]] cam,--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ,--[[int]] rotationOrder)return native_invoker.unified_void(cam, rotX, rotY, rotZ, rotationOrder, 0x85973643155D0B07, "ifffi")end, - -- Sets the field of view of the cam. - -- --------------------------------------------- - -- Min: 1.0f - -- Max: 130.0f - ["SET_CAM_FOV"]=--[[void]] function(--[[Cam (int)]] cam,--[[float]] fieldOfView)return native_invoker.unified_void(cam, fieldOfView, 0xB13C14F66A00D047, "if")end, - ["SET_CAM_NEAR_CLIP"]=--[[void]] function(--[[Cam (int)]] cam,--[[float]] nearClip)return native_invoker.unified_void(cam, nearClip, 0xC7848EFCCC545182, "if")end, - ["SET_CAM_FAR_CLIP"]=--[[void]] function(--[[Cam (int)]] cam,--[[float]] farClip)return native_invoker.unified_void(cam, farClip, 0xAE306F2A904BF86E, "if")end, - ["FORCE_CAM_FAR_CLIP"]=--[[void]] function(--[[Cam (int)]] cam,--[[float]] p1)return native_invoker.unified_void(cam, p1, 0xAABD62873FFB1A33, "if")end, - ["SET_CAM_MOTION_BLUR_STRENGTH"]=--[[void]] function(--[[Cam (int)]] cam,--[[float]] strength)return native_invoker.unified_void(cam, strength, 0x6F0F77FBA9A8F2E6, "if")end, - ["SET_CAM_NEAR_DOF"]=--[[void]] function(--[[Cam (int)]] cam,--[[float]] nearDOF)return native_invoker.unified_void(cam, nearDOF, 0x3FA4BF0A7AB7DE2C, "if")end, - ["SET_CAM_FAR_DOF"]=--[[void]] function(--[[Cam (int)]] cam,--[[float]] farDOF)return native_invoker.unified_void(cam, farDOF, 0xEDD91296CD01AEE0, "if")end, - ["SET_CAM_DOF_STRENGTH"]=--[[void]] function(--[[Cam (int)]] cam,--[[float]] dofStrength)return native_invoker.unified_void(cam, dofStrength, 0x5EE29B4D7D5DF897, "if")end, - ["SET_CAM_DOF_PLANES"]=--[[void]] function(--[[Cam (int)]] cam,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4)return native_invoker.unified_void(cam, p1, p2, p3, p4, 0x3CF48F6F96E749DC, "iffff")end, - ["SET_CAM_USE_SHALLOW_DOF_MODE"]=--[[void]] function(--[[Cam (int)]] cam,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(cam, toggle, 0x16A96863A17552BB, "ib")end, - ["SET_USE_HI_DOF"]=--[[void]] function()return native_invoker.unified_void(0xA13B0222F3D94A94, "")end, - -- Only used in R* Script fm_mission_controller_2020 - ["SET_USE_HI_DOF_ON_SYNCED_SCENE_THIS_UPDATE"]=--[[void]] function()return native_invoker.unified_void(0x731A880555DA3647, "")end, - ["SET_CAM_DOF_OVERRIDDEN_FOCUS_DISTANCE"]=--[[void]] function(--[[Cam (int)]] camera,--[[float]] p1)return native_invoker.unified_void(camera, p1, 0xF55E4046F6F831DC, "if")end, - ["SET_CAM_DOF_OVERRIDDEN_FOCUS_DISTANCE_BLEND_LEVEL"]=--[[void]] function(--[[Any (int)]] p0,--[[float]] p1)return native_invoker.unified_void(p0, p1, 0xE111A7C0D200CBC5, "if")end, - -- This native has its name defined inside its codE - -- - ["SET_CAM_DOF_FNUMBER_OF_LENS"]=--[[void]] function(--[[Cam (int)]] camera,--[[float]] p1)return native_invoker.unified_void(camera, p1, 0x7DD234D6F3914C5B, "if")end, - -- Native name labeled within its code - ["SET_CAM_DOF_FOCAL_LENGTH_MULTIPLIER"]=--[[void]] function(--[[Cam (int)]] camera,--[[float]] multiplier)return native_invoker.unified_void(camera, multiplier, 0x47B595D60664CFFA, "if")end, - -- This native has a name defined inside its code - ["SET_CAM_DOF_FOCUS_DISTANCE_BIAS"]=--[[void]] function(--[[Cam (int)]] camera,--[[float]] p1)return native_invoker.unified_void(camera, p1, 0xC669EEA5D031B7DE, "if")end, - -- This native has a name defined inside its code - ["SET_CAM_DOF_MAX_NEAR_IN_FOCUS_DISTANCE"]=--[[void]] function(--[[Cam (int)]] camera,--[[float]] p1)return native_invoker.unified_void(camera, p1, 0xC3654A441402562D, "if")end, - -- This native has a name defined inside its code - ["SET_CAM_DOF_MAX_NEAR_IN_FOCUS_DISTANCE_BLEND_LEVEL"]=--[[void]] function(--[[Cam (int)]] camera,--[[float]] p1)return native_invoker.unified_void(camera, p1, 0x2C654B4943BDDF7C, "if")end, - -- This native has a name defined inside its code - ["SET_CAM_DOF_SHOULD_KEEP_LOOK_AT_TARGET_IN_FOCUS"]=--[[void]] function(--[[Cam (int)]] camera,--[[BOOL (bool)]] state)return native_invoker.unified_void(camera, state, 0x7CF3AF51DCFE4108, "ib")end, - -- Last param determines if its relative to the Entity - ["ATTACH_CAM_TO_ENTITY"]=--[[void]] function(--[[Cam (int)]] cam,--[[Entity (int)]] entity,--[[float]] xOffset,--[[float]] yOffset,--[[float]] zOffset,--[[BOOL (bool)]] isRelative)return native_invoker.unified_void(cam, entity, xOffset, yOffset, zOffset, isRelative, 0xFEDB7D269E8C60E3, "iifffb")end, - ["ATTACH_CAM_TO_PED_BONE"]=--[[void]] function(--[[Cam (int)]] cam,--[[Ped (int)]] ped,--[[int]] boneIndex,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] heading)return native_invoker.unified_void(cam, ped, boneIndex, x, y, z, heading, 0x61A3DBA14AB7F411, "iiifffb")end, - ["HARD_ATTACH_CAM_TO_PED_BONE"]=--[[void]] function(--[[Cam (int)]] cam,--[[Ped (int)]] ped,--[[int]] boneIndex,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[float]] p6,--[[float]] p7,--[[float]] p8,--[[BOOL (bool)]] p9)return native_invoker.unified_void(cam, ped, boneIndex, p3, p4, p5, p6, p7, p8, p9, 0x149916F50C34A40D, "iiiffffffb")end, - -- Example from am_mp_drone script: - -- - -- CAM::HARD_ATTACH_CAM_TO_ENTITY(Local_190.f_169, NETWORK::NET_TO_OBJ(Local_190.f_159), 0f, 0f, 180f, Var0, 1); - ["HARD_ATTACH_CAM_TO_ENTITY"]=--[[void]] function(--[[Cam (int)]] cam,--[[Entity (int)]] entity,--[[float]] xRot,--[[float]] yRot,--[[float]] zRot,--[[float]] xOffset,--[[float]] yOffset,--[[float]] zOffset,--[[BOOL (bool)]] isRelative)return native_invoker.unified_void(cam, entity, xRot, yRot, zRot, xOffset, yOffset, zOffset, isRelative, 0x202A5ED9CE01D6E7, "iiffffffb")end, - -- This native works with vehicles only. Bone indexes are usually given by this native GET_ENTITY_BONE_INDEX_BY_NAME. - ["ATTACH_CAM_TO_VEHICLE_BONE"]=--[[void]] function(--[[Cam (int)]] cam,--[[Vehicle (int)]] vehicle,--[[int]] boneIndex,--[[BOOL (bool)]] relativeRotation,--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ,--[[float]] offsetX,--[[float]] offsetY,--[[float]] offsetZ,--[[BOOL (bool)]] fixedDirection)return native_invoker.unified_void(cam, vehicle, boneIndex, relativeRotation, rotX, rotY, rotZ, offsetX, offsetY, offsetZ, fixedDirection, 0x8DB3F12A02CAEF72, "iiibffffffb")end, - ["DETACH_CAM"]=--[[void]] function(--[[Cam (int)]] cam)return native_invoker.unified_void(cam, 0xA2FABBE87F4BAD82, "i")end, - -- The native seems to only be called once. - -- - -- The native is used as so, - -- CAM::SET_CAM_INHERIT_ROLL_VEHICLE(l_544, getElem(2, &l_525, 4)); - -- In the exile1 script. - ["SET_CAM_INHERIT_ROLL_VEHICLE"]=--[[void]] function(--[[Cam (int)]] cam,--[[BOOL (bool)]] p1)return native_invoker.unified_void(cam, p1, 0x45F1DE9C34B93AE6, "ib")end, - ["POINT_CAM_AT_COORD"]=--[[void]] function(--[[Cam (int)]] cam,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(cam, x, y, z, 0xF75497BB865F0803, "ifff")end, - -- p5 always seems to be 1 i.e TRUE - ["POINT_CAM_AT_ENTITY"]=--[[void]] function(--[[Cam (int)]] cam,--[[Entity (int)]] entity,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[BOOL (bool)]] p5)return native_invoker.unified_void(cam, entity, p2, p3, p4, p5, 0x5640BFF86B16E8DC, "iifffb")end, - -- Parameters p0-p5 seems correct. The bool p6 is unknown, but through every X360 script it's always 1. Please correct p0-p5 if any prove to be wrong. - ["POINT_CAM_AT_PED_BONE"]=--[[void]] function(--[[Cam (int)]] cam,--[[Ped (int)]] ped,--[[int]] boneIndex,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] p6)return native_invoker.unified_void(cam, ped, boneIndex, x, y, z, p6, 0x68B2B5F33BA63C41, "iiifffb")end, - ["STOP_CAM_POINTING"]=--[[void]] function(--[[Cam (int)]] cam)return native_invoker.unified_void(cam, 0xF33AB75780BA57DE, "i")end, - -- Allows you to aim and shoot at the direction the camera is facing. - ["SET_CAM_AFFECTS_AIMING"]=--[[void]] function(--[[Cam (int)]] cam,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(cam, toggle, 0x8C1DC7770C51DC8D, "ib")end, - -- Rotates the radar to match the camera's Z rotation - ["SET_CAM_CONTROLS_MINI_MAP_HEADING"]=--[[void]] function(--[[Cam (int)]] cam,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(cam, toggle, 0x661B5C8654ADD825, "ib")end, - -- When set to true shadows appear more smooth but less detailed. - -- Set to false by default. - ["SET_CAM_IS_INSIDE_VEHICLE"]=--[[void]] function(--[[Cam (int)]] cam,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(cam, toggle, 0xA2767257A320FC82, "ib")end, - ["ALLOW_MOTION_BLUR_DECAY"]=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0x271017B9BA825366, "ib")end, - -- NOTE: Debugging functions are not present in the retail version of the game. - ["SET_CAM_DEBUG_NAME"]=--[[void]] function(--[[Cam (int)]] camera,--[[string]] name)return native_invoker.unified_void(camera, name, 0x1B93E0107865DD40, "is")end, - ["GET_DEBUG_CAM"]=--[[Cam (int)]] function()return native_invoker.unified_int(0x77C3CEC46BE286F6, "")end, - -- I filled p1-p6 (the floats) as they are as other natives with 6 floats in a row are similar and I see no other method. So if a test from anyone proves them wrong please correct. - -- - -- p7 (length) determines the length of the spline, affects camera path and duration of transition between previous node and this one - -- - -- p8 big values ~100 will slow down the camera movement before reaching this node - -- - -- p9 != 0 seems to override the rotation/pitch (bool?) - ["ADD_CAM_SPLINE_NODE"]=--[[void]] function(--[[Cam (int)]] camera,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] xRot,--[[float]] yRot,--[[float]] zRot,--[[int]] length,--[[int]] smoothingStyle,--[[int]] rotationOrder)return native_invoker.unified_void(camera, x, y, z, xRot, yRot, zRot, length, smoothingStyle, rotationOrder, 0x8609C75EC438FB3B, "iffffffiii")end, - -- p0 is the spline camera to which the node is being added. - -- p1 is the camera used to create the node. - -- p3 is always 3 in scripts. It might be smoothing style or rotation order. - ["ADD_CAM_SPLINE_NODE_USING_CAMERA_FRAME"]=--[[void]] function(--[[Cam (int)]] cam,--[[Cam (int)]] cam2,--[[int]] length,--[[int]] p3)return native_invoker.unified_void(cam, cam2, length, p3, 0x0A9F2A468B328E74, "iiii")end, - -- p0 is the spline camera to which the node is being added. - -- p1 is the camera used to create the node. - -- p3 is always 3 in scripts. It might be smoothing style or rotation order. - ["ADD_CAM_SPLINE_NODE_USING_CAMERA"]=--[[void]] function(--[[Cam (int)]] cam,--[[Cam (int)]] cam2,--[[int]] length,--[[int]] p3)return native_invoker.unified_void(cam, cam2, length, p3, 0x0FB82563989CF4FB, "iiii")end, - -- p2 is always 2 in scripts. It might be smoothing style or rotation order. - ["ADD_CAM_SPLINE_NODE_USING_GAMEPLAY_FRAME"]=--[[void]] function(--[[Cam (int)]] cam,--[[int]] length,--[[int]] p2)return native_invoker.unified_void(cam, length, p2, 0x609278246A29CA34, "iii")end, - ["SET_CAM_SPLINE_PHASE"]=--[[void]] function(--[[Cam (int)]] cam,--[[float]] p1)return native_invoker.unified_void(cam, p1, 0x242B5874F0A4E052, "if")end, - -- Can use this with SET_CAM_SPLINE_PHASE to set the float it this native returns. - -- - -- (returns 1.0f when no nodes has been added, reached end of non existing spline) - ["GET_CAM_SPLINE_PHASE"]=--[[float]] function(--[[Cam (int)]] cam)return native_invoker.unified_float(cam, 0xB5349E36C546509A, "i")end, - -- I'm pretty sure the parameter is the camera as usual, but I am not certain so I'm going to leave it as is. - ["GET_CAM_SPLINE_NODE_PHASE"]=--[[float]] function(--[[Cam (int)]] cam)return native_invoker.unified_float(cam, 0xD9D0E694C8282C96, "i")end, - -- I named p1 as timeDuration as it is obvious. I'm assuming tho it is ran in ms(Milliseconds) as usual. - ["SET_CAM_SPLINE_DURATION"]=--[[void]] function(--[[Cam (int)]] cam,--[[int]] timeDuration)return native_invoker.unified_void(cam, timeDuration, 0x1381539FEE034CDA, "ii")end, - ["SET_CAM_SPLINE_SMOOTHING_STYLE"]=--[[void]] function(--[[Cam (int)]] cam,--[[int]] smoothingStyle)return native_invoker.unified_void(cam, smoothingStyle, 0xD1B0F412F109EA5D, "ii")end, - ["GET_CAM_SPLINE_NODE_INDEX"]=--[[int]] function(--[[Cam (int)]] cam)return native_invoker.unified_int(cam, 0xB22B17DF858716A6, "i")end, - ["SET_CAM_SPLINE_NODE_EASE"]=--[[void]] function(--[[Cam (int)]] cam,--[[int]] easingFunction,--[[int]] p2,--[[float]] p3)return native_invoker.unified_void(cam, easingFunction, p2, p3, 0x83B8201ED82A9A2D, "iiif")end, - ["SET_CAM_SPLINE_NODE_VELOCITY_SCALE"]=--[[void]] function(--[[Cam (int)]] cam,--[[int]] p1,--[[float]] scale)return native_invoker.unified_void(cam, p1, scale, 0xA6385DEB180F319F, "iif")end, - ["OVERRIDE_CAM_SPLINE_VELOCITY"]=--[[void]] function(--[[Cam (int)]] cam,--[[int]] p1,--[[float]] p2,--[[float]] p3)return native_invoker.unified_void(cam, p1, p2, p3, 0x40B62FA033EB0346, "iiff")end, - -- Max value for p1 is 15. - ["OVERRIDE_CAM_SPLINE_MOTION_BLUR"]=--[[void]] function(--[[Cam (int)]] cam,--[[int]] p1,--[[float]] p2,--[[float]] p3)return native_invoker.unified_void(cam, p1, p2, p3, 0x7DCF7C708D292D55, "iiff")end, - ["SET_CAM_SPLINE_NODE_EXTRA_FLAGS"]=--[[void]] function(--[[Cam (int)]] cam,--[[int]] p1,--[[int]] flags)return native_invoker.unified_void(cam, p1, flags, 0x7BF1A54AE67AC070, "iii")end, - ["IS_CAM_SPLINE_PAUSED"]=--[[BOOL (bool)]] function(--[[Cam (int)]] cam)return native_invoker.unified_bool(cam, 0x0290F35C0AD97864, "i")end, - -- Previous declaration void SET_CAM_ACTIVE_WITH_INTERP(Cam camTo, Cam camFrom, int duration, BOOL easeLocation, BOOL easeRotation) is completely wrong. The last two params are integers not BOOLs... - -- - ["SET_CAM_ACTIVE_WITH_INTERP"]=--[[void]] function(--[[Cam (int)]] camTo,--[[Cam (int)]] camFrom,--[[int]] duration,--[[int]] easeLocation,--[[int]] easeRotation)return native_invoker.unified_void(camTo, camFrom, duration, easeLocation, easeRotation, 0x9FBDA379383A52A4, "iiiii")end, - ["IS_CAM_INTERPOLATING"]=--[[BOOL (bool)]] function(--[[Cam (int)]] cam)return native_invoker.unified_bool(cam, 0x036F97C908C2B52C, "i")end, - -- Possible shake types (updated b617d): - -- - -- DEATH_FAIL_IN_EFFECT_SHAKE - -- DRUNK_SHAKE - -- FAMILY5_DRUG_TRIP_SHAKE - -- HAND_SHAKE - -- JOLT_SHAKE - -- LARGE_EXPLOSION_SHAKE - -- MEDIUM_EXPLOSION_SHAKE - -- SMALL_EXPLOSION_SHAKE - -- ROAD_VIBRATION_SHAKE - -- SKY_DIVING_SHAKE - -- VIBRATE_SHAKE - -- - -- Full list of cam shake types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/camShakeTypesCompact.json - ["SHAKE_CAM"]=--[[void]] function(--[[Cam (int)]] cam,--[[string]] type,--[[float]] amplitude)return native_invoker.unified_void(cam, type, amplitude, 0x6A25241C340D3822, "isf")end, - -- Example from michael2 script. - -- - -- CAM::ANIMATED_SHAKE_CAM(l_5069, "shake_cam_all@", "light", "", 1f); - ["ANIMATED_SHAKE_CAM"]=--[[void]] function(--[[Cam (int)]] cam,--[[string]] p1,--[[string]] p2,--[[string]] p3,--[[float]] amplitude)return native_invoker.unified_void(cam, p1, p2, p3, amplitude, 0xA2746EEAE3E577CD, "isssf")end, - ["IS_CAM_SHAKING"]=--[[BOOL (bool)]] function(--[[Cam (int)]] cam)return native_invoker.unified_bool(cam, 0x6B24BFE83A2BE47B, "i")end, - ["SET_CAM_SHAKE_AMPLITUDE"]=--[[void]] function(--[[Cam (int)]] cam,--[[float]] amplitude)return native_invoker.unified_void(cam, amplitude, 0xD93DB43B82BC0D00, "if")end, - ["STOP_CAM_SHAKING"]=--[[void]] function(--[[Cam (int)]] cam,--[[BOOL (bool)]] p1)return native_invoker.unified_void(cam, p1, 0xBDECF64367884AC3, "ib")end, - -- CAM::SHAKE_SCRIPT_GLOBAL("HAND_SHAKE", 0.2); - -- - -- Full list of cam shake types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/camShakeTypesCompact.json - ["SHAKE_SCRIPT_GLOBAL"]=--[[void]] function(--[[string]] p0,--[[float]] p1)return native_invoker.unified_void(p0, p1, 0xF4C8CF9E353AFECA, "sf")end, - -- CAM::ANIMATED_SHAKE_SCRIPT_GLOBAL("SHAKE_CAM_medium", "medium", "", 0.5f); - -- - -- Full list of cam shake types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/camShakeTypesCompact.json - ["ANIMATED_SHAKE_SCRIPT_GLOBAL"]=--[[void]] function(--[[string]] p0,--[[string]] p1,--[[string]] p2,--[[float]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xC2EAE3FB8CDBED31, "sssf")end, - -- In drunk_controller.c4, sub_309 - -- if (CAM::IS_SCRIPT_GLOBAL_SHAKING()) { - -- CAM::STOP_SCRIPT_GLOBAL_SHAKING(0); - -- } - ["IS_SCRIPT_GLOBAL_SHAKING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC912AF078AF19212, "")end, - -- In drunk_controller.c4, sub_309 - -- if (CAM::IS_SCRIPT_GLOBAL_SHAKING()) { - -- CAM::STOP_SCRIPT_GLOBAL_SHAKING(0); - -- } - ["STOP_SCRIPT_GLOBAL_SHAKING"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x1C9D7949FA533490, "b")end, - -- p1: 0..16 - ["TRIGGER_VEHICLE_PART_BROKEN_CAMERA_SHAKE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] p1,--[[float]] p2)return native_invoker.unified_void(vehicle, p1, p2, 0x5D96CFB59DA076A0, "iif")end, - -- Atleast one time in a script for the zRot Rockstar uses GET_ENTITY_HEADING to help fill the parameter. - -- - -- p9 is unknown at this time. - -- p10 throughout all the X360 Scripts is always 2. - -- - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - ["PLAY_CAM_ANIM"]=--[[BOOL (bool)]] function(--[[Cam (int)]] cam,--[[string]] animName,--[[string]] animDictionary,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] xRot,--[[float]] yRot,--[[float]] zRot,--[[BOOL (bool)]] p9,--[[int]] p10)return native_invoker.unified_bool(cam, animName, animDictionary, x, y, z, xRot, yRot, zRot, p9, p10, 0x9A2D0FB2E7852392, "issffffffbi")end, - ["IS_CAM_PLAYING_ANIM"]=--[[BOOL (bool)]] function(--[[Cam (int)]] cam,--[[string]] animName,--[[string]] animDictionary)return native_invoker.unified_bool(cam, animName, animDictionary, 0xC90621D8A0CEECF2, "iss")end, - ["SET_CAM_ANIM_CURRENT_PHASE"]=--[[void]] function(--[[Cam (int)]] cam,--[[float]] phase)return native_invoker.unified_void(cam, phase, 0x4145A4C44FF3B5A6, "if")end, - ["GET_CAM_ANIM_CURRENT_PHASE"]=--[[float]] function(--[[Cam (int)]] cam)return native_invoker.unified_float(cam, 0xA10B2DB49E92A6B0, "i")end, - -- Examples: - -- - -- CAM::PLAY_SYNCHRONIZED_CAM_ANIM(l_2734, NETWORK::NETWORK_GET_LOCAL_SCENE_FROM_NETWORK_ID(l_2739), "PLAYER_EXIT_L_CAM", "mp_doorbell"); - -- - -- CAM::PLAY_SYNCHRONIZED_CAM_ANIM(l_F0D[7/*1*/], l_F4D[15/*1*/], "ah3b_attackheli_cam2", "missheistfbi3b_helicrash"); - ["PLAY_SYNCHRONIZED_CAM_ANIM"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[string]] animName,--[[string]] animDictionary)return native_invoker.unified_bool(p0, p1, animName, animDictionary, 0xE32EFE9AB4A9AA0C, "iiss")end, - ["SET_FLY_CAM_HORIZONTAL_RESPONSE"]=--[[void]] function(--[[Cam (int)]] cam,--[[float]] p1,--[[float]] p2,--[[float]] p3)return native_invoker.unified_void(cam, p1, p2, p3, 0x503F5920162365B2, "ifff")end, - ["SET_FLY_CAM_VERTICAL_RESPONSE"]=--[[void]] function(--[[Cam (int)]] cam,--[[float]] p1,--[[float]] p2,--[[float]] p3)return native_invoker.unified_void(cam, p1, p2, p3, 0xE827B9382CFB41BA, "ifff")end, - ["SET_FLY_CAM_MAX_HEIGHT"]=--[[void]] function(--[[Cam (int)]] cam,--[[float]] height)return native_invoker.unified_void(cam, height, 0xF9D02130ECDD1D77, "if")end, - ["SET_FLY_CAM_COORD_AND_CONSTRAIN"]=--[[void]] function(--[[Cam (int)]] cam,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(cam, x, y, z, 0xC91C6C55199308CA, "ifff")end, - ["SET_FLY_CAM_VERTICAL_CONTROLS_THIS_UPDATE"]=--[[void]] function(--[[Cam (int)]] cam)return native_invoker.unified_void(cam, 0xC8B5C4A79CC18B94, "i")end, - ["WAS_FLY_CAM_CONSTRAINED_ON_PREVIOUS_UDPATE"]=--[[BOOL (bool)]] function(--[[Cam (int)]] cam)return native_invoker.unified_bool(cam, 0x5C48A1D6E3B33179, "i")end, - ["IS_SCREEN_FADED_OUT"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xB16FCE9DDC7BA182, "")end, - ["IS_SCREEN_FADED_IN"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x5A859503B0C08678, "")end, - ["IS_SCREEN_FADING_OUT"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x797AC7CB535BA28F, "")end, - ["IS_SCREEN_FADING_IN"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x5C544BC6C57AC575, "")end, - -- Fades the screen in. - -- - -- duration: The time the fade should take, in milliseconds. - ["DO_SCREEN_FADE_IN"]=--[[void]] function(--[[int]] duration)return native_invoker.unified_void(duration, 0xD4E8E24955024033, "i")end, - -- Fades the screen out. - -- - -- duration: The time the fade should take, in milliseconds. - ["DO_SCREEN_FADE_OUT"]=--[[void]] function(--[[int]] duration)return native_invoker.unified_void(duration, 0x891B5B39AC6302AF, "i")end, - ["SET_WIDESCREEN_BORDERS"]=--[[void]] function(--[[BOOL (bool)]] p0,--[[int]] p1)return native_invoker.unified_void(p0, p1, 0xDCD4EA924F42D01A, "bi")end, - ["ARE_WIDESCREEN_BORDERS_ACTIVE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x4879E4FE39074CDF, "")end, - ["GET_GAMEPLAY_CAM_COORD"]=--[[Vector3 (vector3)]] function()return native_invoker.unified_vector3(0x14D6F5678D8F1B37, "")end, - -- p0 dosen't seem to change much, I tried it with 0, 1, 2: - -- 0-Pitch(X): -70.000092 - -- 0-Roll(Y): -0.000001 - -- 0-Yaw(Z): -43.886459 - -- 1-Pitch(X): -70.000092 - -- 1-Roll(Y): -0.000001 - -- 1-Yaw(Z): -43.886463 - -- 2-Pitch(X): -70.000092 - -- 2-Roll(Y): -0.000002 - -- 2-Yaw(Z): -43.886467 - ["GET_GAMEPLAY_CAM_ROT"]=--[[Vector3 (vector3)]] function(--[[int]] rotationOrder)return native_invoker.unified_vector3(rotationOrder, 0x837765A25378F0BB, "i")end, - ["GET_GAMEPLAY_CAM_FOV"]=--[[float]] function()return native_invoker.unified_float(0x65019750A0324133, "")end, - -- some camera effect that is used in the drunk-cheat, and turned off (by setting it to 0.0) along with the shaking effects once the drunk cheat is disabled. - ["SET_GAMEPLAY_CAM_MOTION_BLUR_SCALING_THIS_UPDATE"]=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0x487A82C650EB7799, "f")end, - -- some camera effect that is (also) used in the drunk-cheat, and turned off (by setting it to 0.0) along with the shaking effects once the drunk cheat is disabled. - ["SET_GAMEPLAY_CAM_MAX_MOTION_BLUR_STRENGTH_THIS_UPDATE"]=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0x0225778816FDC28C, "f")end, - ["GET_GAMEPLAY_CAM_RELATIVE_HEADING"]=--[[float]] function()return native_invoker.unified_float(0x743607648ADD4587, "")end, - -- Sets the camera position relative to heading in float from -360 to +360. - -- - -- Heading is alwyas 0 in aiming camera. - ["SET_GAMEPLAY_CAM_RELATIVE_HEADING"]=--[[void]] function(--[[float]] heading)return native_invoker.unified_void(heading, 0xB4EC2312F4E5B1F1, "f")end, - ["GET_GAMEPLAY_CAM_RELATIVE_PITCH"]=--[[float]] function()return native_invoker.unified_float(0x3A6867B4845BEDA2, "")end, - -- This native sets the camera's pitch (rotation on the x-axis). - ["SET_GAMEPLAY_CAM_RELATIVE_PITCH"]=--[[void]] function(--[[float]] angle,--[[float]] scalingFactor)return native_invoker.unified_void(angle, scalingFactor, 0x6D0858B8EDFD2B7D, "ff")end, - ["RESET_GAMEPLAY_CAM_FULL_ATTACH_PARENT_TRANSFORM_TIMER"]=--[[void]] function()return native_invoker.unified_void(0x7295C203DD659DFE, "")end, - ["FORCE_CAMERA_RELATIVE_HEADING_AND_PITCH"]=--[[void]] function(--[[float]] roll,--[[float]] pitch,--[[float]] yaw)return native_invoker.unified_void(roll, pitch, yaw, 0x48608C3464F58AB4, "fff")end, - ["FORCE_BONNET_CAMERA_RELATIVE_HEADING_AND_PITCH"]=--[[void]] function(--[[float]] p0,--[[float]] p1)return native_invoker.unified_void(p0, p1, 0x28B022A17B068A3A, "ff")end, - -- Does nothing - ["SET_FIRST_PERSON_SHOOTER_CAMERA_HEADING"]=--[[void]] function(--[[float]] yaw)return native_invoker.unified_void(yaw, 0x103991D4A307D472, "f")end, - ["SET_FIRST_PERSON_SHOOTER_CAMERA_PITCH"]=--[[void]] function(--[[float]] pitch)return native_invoker.unified_void(pitch, 0x759E13EBC1C15C5A, "f")end, - ["SET_SCRIPTED_CAMERA_IS_FIRST_PERSON_THIS_FRAME"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x469F2ECDEC046337, "b")end, - -- Possible shake types (updated b617d): - -- - -- DEATH_FAIL_IN_EFFECT_SHAKE - -- DRUNK_SHAKE - -- FAMILY5_DRUG_TRIP_SHAKE - -- HAND_SHAKE - -- JOLT_SHAKE - -- LARGE_EXPLOSION_SHAKE - -- MEDIUM_EXPLOSION_SHAKE - -- SMALL_EXPLOSION_SHAKE - -- ROAD_VIBRATION_SHAKE - -- SKY_DIVING_SHAKE - -- VIBRATE_SHAKE - -- - -- Full list of cam shake types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/camShakeTypesCompact.json - ["SHAKE_GAMEPLAY_CAM"]=--[[void]] function(--[[string]] shakeName,--[[float]] intensity)return native_invoker.unified_void(shakeName, intensity, 0xFD55E49555E017CF, "sf")end, - ["IS_GAMEPLAY_CAM_SHAKING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x016C090630DF1F89, "")end, - -- Sets the amplitude for the gameplay (i.e. 3rd or 1st) camera to shake. Used in script "drunk_controller.ysc.c4" to simulate making the player drunk. - ["SET_GAMEPLAY_CAM_SHAKE_AMPLITUDE"]=--[[void]] function(--[[float]] amplitude)return native_invoker.unified_void(amplitude, 0xA87E00932DB4D85D, "f")end, - ["STOP_GAMEPLAY_CAM_SHAKING"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x0EF93E9F3D08C178, "b")end, - -- Forces gameplay cam to specified ped as if you were the ped or spectating it - ["SET_GAMEPLAY_CAM_FOLLOW_PED_THIS_UPDATE"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x8BBACBF51DA047A8, "i")end, - -- Examples when this function will return 0 are: - -- - During busted screen. - -- - When player is coming out from a hospital. - -- - When player is coming out from a police station. - -- - When player is buying gun from AmmuNation. - ["IS_GAMEPLAY_CAM_RENDERING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x39B5D1B10383F0C8, "")end, - ["IS_INTERPOLATING_FROM_SCRIPT_CAMS"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x3044240D2E0FA842, "")end, - ["IS_INTERPOLATING_TO_SCRIPT_CAMS"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x705A276EBFF3133D, "")end, - ["SET_GAMEPLAY_CAM_ALTITUDE_FOV_SCALING_STATE"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xDB90C6CCA48940F1, "b")end, - -- Shows the crosshair even if it wouldn't show normally. Only works for one frame, so make sure to call it repeatedly. - ["DISABLE_GAMEPLAY_CAM_ALTITUDE_FOV_SCALING_THIS_UPDATE"]=--[[void]] function()return native_invoker.unified_void(0xEA7F0AD7E9BA676F, "")end, - ["IS_GAMEPLAY_CAM_LOOKING_BEHIND"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x70FDA869F3317EA9, "")end, - ["SET_GAMEPLAY_CAM_IGNORE_ENTITY_COLLISION_THIS_UPDATE"]=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0x2AED6301F67007D5, "i")end, - ["DISABLE_CAM_COLLISION_FOR_OBJECT"]=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0x49482F9FCD825AAA, "i")end, - ["BYPASS_CAMERA_COLLISION_BUOYANCY_TEST_THIS_UPDATE"]=--[[void]] function()return native_invoker.unified_void(0xA7092AFE81944852, "")end, - ["SET_GAMEPLAY_CAM_ENTITY_TO_LIMIT_FOCUS_OVER_BOUNDING_SPHERE_THIS_UPDATE"]=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0xFD3151CD37EA2245, "i")end, - -- Sets some flag on cinematic camera - ["DISABLE_FIRST_PERSON_CAMERA_WATER_CLIPPING_TEST_THIS_UPDATE"]=--[[void]] function()return native_invoker.unified_void(0xB1381B97F70C7B30, "")end, - ["SET_FOLLOW_CAM_IGNORE_ATTACH_PARENT_MOVEMENT_THIS_UPDATE"]=--[[void]] function()return native_invoker.unified_void(0xDD79DF9F4D26E1C9, "")end, - ["IS_SPHERE_VISIBLE"]=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius)return native_invoker.unified_bool(x, y, z, radius, 0xE33D59DA70B58FDF, "ffff")end, - ["IS_FOLLOW_PED_CAM_ACTIVE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC6D3D26810C8E0F9, "")end, - -- From the scripts: - -- - -- CAM::SET_FOLLOW_PED_CAM_THIS_UPDATE("FOLLOW_PED_ATTACHED_TO_ROPE_CAMERA", 0); - -- CAM::SET_FOLLOW_PED_CAM_THIS_UPDATE("FOLLOW_PED_ON_EXILE1_LADDER_CAMERA", 1500); - -- CAM::SET_FOLLOW_PED_CAM_THIS_UPDATE("FOLLOW_PED_SKY_DIVING_CAMERA", 0); - -- CAM::SET_FOLLOW_PED_CAM_THIS_UPDATE("FOLLOW_PED_SKY_DIVING_CAMERA", 3000); - -- CAM::SET_FOLLOW_PED_CAM_THIS_UPDATE("FOLLOW_PED_SKY_DIVING_FAMILY5_CAMERA", 0); - -- CAM::SET_FOLLOW_PED_CAM_THIS_UPDATE("FOLLOW_PED_SKY_DIVING_CAMERA", 0); - ["SET_FOLLOW_PED_CAM_THIS_UPDATE"]=--[[BOOL (bool)]] function(--[[string]] camName,--[[int]] p1)return native_invoker.unified_bool(camName, p1, 0x44A113DD6FFC48D1, "si")end, - ["USE_SCRIPT_CAM_FOR_AMBIENT_POPULATION_ORIGIN_THIS_FRAME"]=--[[void]] function(--[[BOOL (bool)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0x271401846BD26E92, "bb")end, - ["SET_FOLLOW_PED_CAM_LADDER_ALIGN_THIS_UPDATE"]=--[[void]] function()return native_invoker.unified_void(0xC8391C309684595A, "")end, - -- minimum: Degrees between -180f and 180f. - -- maximum: Degrees between -180f and 180f. - -- - -- Clamps the gameplay camera's current yaw. - -- - -- Eg. SET_THIRD_PERSON_CAM_RELATIVE_HEADING_LIMITS_THIS_UPDATE(0.0f, 0.0f) will set the horizontal angle directly behind the player. - ["SET_THIRD_PERSON_CAM_RELATIVE_HEADING_LIMITS_THIS_UPDATE"]=--[[void]] function(--[[float]] minimum,--[[float]] maximum)return native_invoker.unified_void(minimum, maximum, 0x8F993D26E0CA5E8E, "ff")end, - -- minimum: Degrees between -90f and 90f. - -- maximum: Degrees between -90f and 90f. - -- - -- Clamps the gameplay camera's current pitch. - -- - -- Eg. SET_THIRD_PERSON_CAM_RELATIVE_PITCH_LIMITS_THIS_UPDATE(0.0f, 0.0f) will set the vertical angle directly behind the player. - ["SET_THIRD_PERSON_CAM_RELATIVE_PITCH_LIMITS_THIS_UPDATE"]=--[[void]] function(--[[float]] minimum,--[[float]] maximum)return native_invoker.unified_void(minimum, maximum, 0xA516C198B7DCA1E1, "ff")end, - -- Seems to animate the gameplay camera zoom. - -- - -- Eg. SET_THIRD_PERSON_CAM_ORBIT_DISTANCE_LIMITS_THIS_UPDATE(1f, 1000f); - -- will animate the camera zooming in from 1000 meters away. - -- - -- Game scripts use it like this: - -- - -- // Setting this to 1 prevents V key from changing zoom - -- PLAYER::SET_PLAYER_FORCED_ZOOM(PLAYER::PLAYER_ID(), 1); - -- - -- // These restrict how far you can move cam up/down left/right - -- CAM::SET_THIRD_PERSON_CAM_RELATIVE_HEADING_LIMITS_THIS_UPDATE(-20f, 50f); - -- CAM::SET_THIRD_PERSON_CAM_RELATIVE_PITCH_LIMITS_THIS_UPDATE(-60f, 0f); - -- - -- CAM::SET_THIRD_PERSON_CAM_ORBIT_DISTANCE_LIMITS_THIS_UPDATE(1f, 1f); - ["SET_THIRD_PERSON_CAM_ORBIT_DISTANCE_LIMITS_THIS_UPDATE"]=--[[void]] function(--[[float]] p0,--[[float]] distance)return native_invoker.unified_void(p0, distance, 0xDF2E1F7742402E81, "ff")end, - ["_GET_THIRD_PERSON_CAM_MIN_ORBIT_DISTANCE_SPRING"]=--[[float]] function()return native_invoker.unified_float(0xBC456FB703431785, "")end, - ["_GET_THIRD_PERSON_CAM_MAX_ORBIT_DISTANCE_SPRING"]=--[[float]] function()return native_invoker.unified_float(0xD4592A16D36673ED, "")end, - -- Forces gameplay cam to specified vehicle as if you were in it - ["SET_IN_VEHICLE_CAM_STATE_THIS_UPDATE"]=--[[void]] function(--[[Vehicle (int)]] p0,--[[int]] p1)return native_invoker.unified_void(p0, p1, 0xE9EA16D6E54CDCA4, "ii")end, - -- Disables first person camera for the current frame. - -- - -- Found in decompiled scripts: - -- GRAPHICS::DRAW_DEBUG_TEXT_2D("Disabling First Person Cam", 0.5, 0.8, 0.0, 0, 0, 255, 255); - -- CAM::DISABLE_ON_FOOT_FIRST_PERSON_VIEW_THIS_UPDATE(); - ["DISABLE_ON_FOOT_FIRST_PERSON_VIEW_THIS_UPDATE"]=--[[void]] function()return native_invoker.unified_void(0xDE2EF5DA284CC8DF, "")end, - ["DISABLE_FIRST_PERSON_FLASH_EFFECT_THIS_UPDATE"]=--[[void]] function()return native_invoker.unified_void(0x59424BD75174C9B1, "")end, - ["BLOCK_FIRST_PERSON_ORIENTATION_RESET_THIS_UPDATE"]=--[[void]] function()return native_invoker.unified_void(0x9F97DA93681F87EA, "")end, - ["GET_FOLLOW_PED_CAM_ZOOM_LEVEL"]=--[[int]] function()return native_invoker.unified_int(0x33E6C8EFD0CD93E9, "")end, - -- See viewmode enum in CAM.GET_FOLLOW_VEHICLE_CAM_VIEW_MODE for return value - ["GET_FOLLOW_PED_CAM_VIEW_MODE"]=--[[int]] function()return native_invoker.unified_int(0x8D4D46230B2C353A, "")end, - -- Sets the type of Player camera: - -- - -- 0 - Third Person Close - -- 1 - Third Person Mid - -- 2 - Third Person Far - -- 4 - First Person - ["SET_FOLLOW_PED_CAM_VIEW_MODE"]=--[[void]] function(--[[int]] viewMode)return native_invoker.unified_void(viewMode, 0x5A4F9EDF1673F704, "i")end, - ["IS_FOLLOW_VEHICLE_CAM_ACTIVE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xCBBDE6D335D6D496, "")end, - ["SET_FOLLOW_VEHICLE_CAM_HIGH_ANGLE_MODE_THIS_UPDATE"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x91EF6EE6419E5B97, "b")end, - ["SET_FOLLOW_VEHICLE_CAM_HIGH_ANGLE_MODE_EVERY_UPDATE"]=--[[void]] function(--[[BOOL (bool)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0x9DFE13ECDC1EC196, "bb")end, - ["SET_TABLE_GAMES_CAMERA_THIS_UPDATE"]=--[[BOOL (bool)]] function(--[[Hash (int)]] hash)return native_invoker.unified_bool(hash, 0x79C0E43EB9B944E2, "i")end, - ["GET_FOLLOW_VEHICLE_CAM_ZOOM_LEVEL"]=--[[int]] function()return native_invoker.unified_int(0xEE82280AB767B690, "")end, - ["SET_FOLLOW_VEHICLE_CAM_ZOOM_LEVEL"]=--[[void]] function(--[[int]] zoomLevel)return native_invoker.unified_void(zoomLevel, 0x19464CB6E4078C8A, "i")end, - -- Returns the type of camera: - -- - -- enum _viewmode //0xA11D7CA8 - -- { - -- THIRD_PERSON_NEAR = 0, - -- THIRD_PERSON_MEDIUM = 1, - -- THIRD_PERSON_FAR = 2, - -- CINEMATIC = 3, - -- FIRST_PERSON = 4 - -- }; - ["GET_FOLLOW_VEHICLE_CAM_VIEW_MODE"]=--[[int]] function()return native_invoker.unified_int(0xA4FF579AC0E3AAAE, "")end, - -- Sets the type of Player camera in vehicles: - -- viewmode: see CAM.GET_FOLLOW_VEHICLE_CAM_VIEW_MODE - ["SET_FOLLOW_VEHICLE_CAM_VIEW_MODE"]=--[[void]] function(--[[int]] viewMode)return native_invoker.unified_void(viewMode, 0xAC253D7842768F48, "i")end, - -- context: see _GET_CAM_ACTIVE_VIEW_MODE_CONTEXT - ["GET_CAM_VIEW_MODE_FOR_CONTEXT"]=--[[int]] function(--[[int]] context)return native_invoker.unified_int(context, 0xEE778F8C7E1142E2, "i")end, - -- context: see _GET_CAM_ACTIVE_VIEW_MODE_CONTEXT, viewmode: see CAM.GET_FOLLOW_VEHICLE_CAM_VIEW_MODE - ["SET_CAM_VIEW_MODE_FOR_CONTEXT"]=--[[void]] function(--[[int]] context,--[[int]] viewMode)return native_invoker.unified_void(context, viewMode, 0x2A2173E46DAECD12, "ii")end, - -- enum Context - -- { - -- ON_FOOT, - -- IN_VEHICLE, - -- ON_BIKE, - -- IN_BOAT, - -- IN_AIRCRAFT, - -- IN_SUBMARINE, - -- IN_HELI, - -- IN_TURRET - -- }; - ["GET_CAM_ACTIVE_VIEW_MODE_CONTEXT"]=--[[int]] function()return native_invoker.unified_int(0x19CAFA3C87F7C2FF, "")end, - ["USE_VEHICLE_CAM_STUNT_SETTINGS_THIS_UPDATE"]=--[[void]] function()return native_invoker.unified_void(0x6493CF69859B116A, "")end, - -- Sets gameplay camera to hash - ["USE_DEDICATED_STUNT_CAMERA_THIS_UPDATE"]=--[[void]] function(--[[string]] camName)return native_invoker.unified_void(camName, 0x425A920FDB9A0DDA, "s")end, - ["FORCE_VEHICLE_CAM_STUNT_SETTINGS_THIS_UPDATE"]=--[[void]] function()return native_invoker.unified_void(0x0AA27680A0BD43FA, "")end, - ["SET_FOLLOW_VEHICLE_CAM_SEAT_THIS_UPDATE"]=--[[void]] function(--[[int]] seatIndex)return native_invoker.unified_void(seatIndex, 0x5C90CAB09951A12F, "i")end, - ["IS_AIM_CAM_ACTIVE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x68EDDA28A5976D07, "")end, - ["IS_AIM_CAM_ACTIVE_IN_ACCURATE_MODE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x74BD83EA840F6BC9, "")end, - ["IS_FIRST_PERSON_AIM_CAM_ACTIVE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x5E346D934122613F, "")end, - ["DISABLE_AIM_CAM_THIS_UPDATE"]=--[[void]] function()return native_invoker.unified_void(0x1A31FE0049E542F6, "")end, - ["GET_FIRST_PERSON_AIM_CAM_ZOOM_FACTOR"]=--[[float]] function()return native_invoker.unified_float(0x7EC52CC40597D170, "")end, - ["SET_FIRST_PERSON_AIM_CAM_ZOOM_FACTOR"]=--[[void]] function(--[[float]] zoomFactor)return native_invoker.unified_void(zoomFactor, 0x70894BD0915C5BCA, "f")end, - ["SET_FIRST_PERSON_AIM_CAM_ZOOM_FACTOR_LIMITS_THIS_UPDATE"]=--[[void]] function(--[[float]] p0,--[[float]] p1)return native_invoker.unified_void(p0, p1, 0xCED08CBE8EBB97C7, "ff")end, - ["SET_FIRST_PERSON_AIM_CAM_RELATIVE_HEADING_LIMITS_THIS_UPDATE"]=--[[void]] function(--[[float]] p0,--[[float]] p1)return native_invoker.unified_void(p0, p1, 0x2F7F2B26DD3F18EE, "ff")end, - ["SET_FIRST_PERSON_AIM_CAM_RELATIVE_PITCH_LIMITS_THIS_UPDATE"]=--[[void]] function(--[[float]] p0,--[[float]] p1)return native_invoker.unified_void(p0, p1, 0xBCFC632DB7673BF0, "ff")end, - ["SET_FIRST_PERSON_AIM_CAM_NEAR_CLIP_THIS_UPDATE"]=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0x0AF7B437918103B3, "f")end, - ["SET_THIRD_PERSON_AIM_CAM_NEAR_CLIP_THIS_UPDATE"]=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0x42156508606DE65E, "f")end, - ["SET_ALLOW_CUSTOM_VEHICLE_DRIVE_BY_CAM_THIS_UPDATE"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x4008EDF7D6E48175, "b")end, - ["FORCE_TIGHTSPACE_CUSTOM_FRAMING_THIS_UPDATE"]=--[[void]] function()return native_invoker.unified_void(0x380B4968D1E09E55, "")end, - ["GET_FINAL_RENDERED_CAM_COORD"]=--[[Vector3 (vector3)]] function()return native_invoker.unified_vector3(0xA200EB1EE790F448, "")end, - -- p0 seems to consistently be 2 across scripts - -- - -- Function is called faily often by CAM::CREATE_CAM_WITH_PARAMS - ["GET_FINAL_RENDERED_CAM_ROT"]=--[[Vector3 (vector3)]] function(--[[int]] rotationOrder)return native_invoker.unified_vector3(rotationOrder, 0x5B4E4C817FCC2DFB, "i")end, - ["GET_FINAL_RENDERED_REMOTE_PLAYER_CAM_ROT"]=--[[Vector3 (vector3)]] function(--[[Player (int)]] player,--[[int]] rotationOrder)return native_invoker.unified_vector3(player, rotationOrder, 0x26903D9CD1175F2C, "ii")end, - -- Gets some camera fov - ["GET_FINAL_RENDERED_CAM_FOV"]=--[[float]] function()return native_invoker.unified_float(0x80EC114669DAEFF4, "")end, - ["GET_FINAL_RENDERED_REMOTE_PLAYER_CAM_FOV"]=--[[float]] function(--[[Player (int)]] player)return native_invoker.unified_float(player, 0x5F35F6732C3FBBA0, "i")end, - ["GET_FINAL_RENDERED_CAM_NEAR_CLIP"]=--[[float]] function()return native_invoker.unified_float(0xD0082607100D7193, "")end, - ["GET_FINAL_RENDERED_CAM_FAR_CLIP"]=--[[float]] function()return native_invoker.unified_float(0xDFC8CBC606FDB0FC, "")end, - ["GET_FINAL_RENDERED_CAM_NEAR_DOF"]=--[[float]] function()return native_invoker.unified_float(0xA03502FC581F7D9B, "")end, - ["GET_FINAL_RENDERED_CAM_FAR_DOF"]=--[[float]] function()return native_invoker.unified_float(0x9780F32BCAF72431, "")end, - ["GET_FINAL_RENDERED_CAM_MOTION_BLUR_STRENGTH"]=--[[float]] function()return native_invoker.unified_float(0x162F9D995753DC19, "")end, - ["SET_GAMEPLAY_COORD_HINT"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] duration,--[[int]] blendOutDuration,--[[int]] blendInDuration,--[[int]] p6)return native_invoker.unified_void(x, y, z, duration, blendOutDuration, blendInDuration, p6, 0xD51ADCD2D8BC0FB3, "fffiiii")end, - ["SET_GAMEPLAY_PED_HINT"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[BOOL (bool)]] p4,--[[int]] duration,--[[int]] blendOutDuration,--[[int]] blendInDuration)return native_invoker.unified_void(ped, x1, y1, z1, p4, duration, blendOutDuration, blendInDuration, 0x2B486269ACD548D3, "ifffbiii")end, - -- Focuses the camera on the specified vehicle. - ["SET_GAMEPLAY_VEHICLE_HINT"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] offsetX,--[[float]] offsetY,--[[float]] offsetZ,--[[BOOL (bool)]] p4,--[[int]] time,--[[int]] easeInTime,--[[int]] easeOutTime)return native_invoker.unified_void(vehicle, offsetX, offsetY, offsetZ, p4, time, easeInTime, easeOutTime, 0xA2297E18F3E71C2E, "ifffbiii")end, - ["SET_GAMEPLAY_OBJECT_HINT"]=--[[void]] function(--[[Object (int)]] object,--[[float]] xOffset,--[[float]] yOffset,--[[float]] zOffset,--[[BOOL (bool)]] p4,--[[int]] time,--[[int]] easeInTime,--[[int]] easeOutTime)return native_invoker.unified_void(object, xOffset, yOffset, zOffset, p4, time, easeInTime, easeOutTime, 0x83E87508A2CA2AC6, "ifffbiii")end, - -- p8 could be some sort of flag. Scripts use: - -- -244429742 - -- 0 - -- 1726668277 - -- 1844968929 - ["SET_GAMEPLAY_ENTITY_HINT"]=--[[void]] function(--[[Entity (int)]] entity,--[[float]] xOffset,--[[float]] yOffset,--[[float]] zOffset,--[[BOOL (bool)]] p4,--[[int]] time,--[[int]] easeInTime,--[[int]] easeOutTime,--[[int]] p8)return native_invoker.unified_void(entity, xOffset, yOffset, zOffset, p4, time, easeInTime, easeOutTime, p8, 0x189E955A8313E298, "ifffbiiii")end, - ["IS_GAMEPLAY_HINT_ACTIVE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xE520FF1AD2785B40, "")end, - ["STOP_GAMEPLAY_HINT"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xF46C581C61718916, "b")end, - -- This native does absolutely nothing, just a nullsub - ["STOP_GAMEPLAY_HINT_BEING_CANCELLED_THIS_UPDATE"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xCCD078C2665D2973, "b")end, - ["STOP_CODE_GAMEPLAY_HINT"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x247ACBC4ABBC9D1C, "b")end, - ["IS_CODE_GAMEPLAY_HINT_ACTIVE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xBF72910D0F26F025, "")end, - ["SET_GAMEPLAY_HINT_FOV"]=--[[void]] function(--[[float]] FOV)return native_invoker.unified_void(FOV, 0x513403FB9C56211F, "f")end, - ["SET_GAMEPLAY_HINT_FOLLOW_DISTANCE_SCALAR"]=--[[void]] function(--[[float]] value)return native_invoker.unified_void(value, 0xF8BDBF3D573049A1, "f")end, - ["SET_GAMEPLAY_HINT_BASE_ORBIT_PITCH_OFFSET"]=--[[void]] function(--[[float]] value)return native_invoker.unified_void(value, 0xD1F8363DFAD03848, "f")end, - ["SET_GAMEPLAY_HINT_CAMERA_RELATIVE_SIDE_OFFSET"]=--[[void]] function(--[[float]] xOffset)return native_invoker.unified_void(xOffset, 0x5D7B620DAE436138, "f")end, - ["SET_GAMEPLAY_HINT_CAMERA_RELATIVE_VERTICAL_OFFSET"]=--[[void]] function(--[[float]] yOffset)return native_invoker.unified_void(yOffset, 0xC92717EF615B6704, "f")end, - ["SET_GAMEPLAY_HINT_CAMERA_BLEND_TO_FOLLOW_PED_MEDIUM_VIEW_MODE"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xE3433EADAAF7EE40, "b")end, - ["SET_CINEMATIC_BUTTON_ACTIVE"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x51669F7D1FB53D9F, "b")end, - ["IS_CINEMATIC_CAM_RENDERING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xB15162CB5826E9E8, "")end, - -- p0 argument found in the b617d scripts: "DRUNK_SHAKE" - -- - -- Full list of cam shake types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/camShakeTypesCompact.json - ["SHAKE_CINEMATIC_CAM"]=--[[void]] function(--[[string]] shakeType,--[[float]] amount)return native_invoker.unified_void(shakeType, amount, 0xDCE214D9ED58F3CF, "sf")end, - ["IS_CINEMATIC_CAM_SHAKING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xBBC08F6B4CB8FF0A, "")end, - ["SET_CINEMATIC_CAM_SHAKE_AMPLITUDE"]=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0xC724C701C30B2FE7, "f")end, - ["STOP_CINEMATIC_CAM_SHAKING"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x2238E588E588A6D7, "b")end, - ["DISABLE_CINEMATIC_BONNET_CAMERA_THIS_UPDATE"]=--[[void]] function()return native_invoker.unified_void(0xADFF1B2A555F5FBA, "")end, - ["DISABLE_CINEMATIC_VEHICLE_IDLE_MODE_THIS_UPDATE"]=--[[void]] function()return native_invoker.unified_void(0x62ECFCFDEE7885D6, "")end, - -- Resets the vehicle idle camera timer. Calling this in a loop will disable the idle camera. - ["INVALIDATE_CINEMATIC_VEHICLE_IDLE_MODE"]=--[[void]] function()return native_invoker.unified_void(0x9E4CFFF989258472, "")end, - -- Resets the idle camera timer. Calling that in a loop once every few seconds is enough to disable the idle cinematic camera. - ["INVALIDATE_IDLE_CAM"]=--[[void]] function()return native_invoker.unified_void(0xF4F2C0D4EE209E20, "")end, - ["IS_CINEMATIC_IDLE_CAM_RENDERING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xCA9D2AA3E326D720, "")end, - ["IS_CINEMATIC_FIRST_PERSON_VEHICLE_INTERIOR_CAM_RENDERING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x4F32C0D5A90A9B40, "")end, - -- hash is always JOAAT("CAMERA_MAN_SHOT") in decompiled scripts - ["CREATE_CINEMATIC_SHOT"]=--[[void]] function(--[[Hash (int)]] p0,--[[int]] time,--[[BOOL (bool)]] p2,--[[Entity (int)]] entity)return native_invoker.unified_void(p0, time, p2, entity, 0x741B0129D4560F31, "iibi")end, - -- Hash is always JOAAT("CAMERA_MAN_SHOT") in decompiled scripts - ["IS_CINEMATIC_SHOT_ACTIVE"]=--[[BOOL (bool)]] function(--[[Hash (int)]] p0)return native_invoker.unified_bool(p0, 0xCC9F3371A7C28BC9, "i")end, - -- Only used once in carsteal3 with p0 set to -1096069633 (CAMERA_MAN_SHOT) - ["STOP_CINEMATIC_SHOT"]=--[[void]] function(--[[Hash (int)]] p0)return native_invoker.unified_void(p0, 0x7660C6E75D3A078E, "i")end, - ["FORCE_CINEMATIC_RENDERING_THIS_UPDATE"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xA41BCD7213805AAC, "b")end, - ["SET_CINEMATIC_NEWS_CHANNEL_ACTIVE_THIS_UPDATE"]=--[[void]] function()return native_invoker.unified_void(0xDC9DA9E8789F5246, "")end, - -- Toggles the vehicle cinematic cam; requires the player ped to be in a vehicle to work. - ["SET_CINEMATIC_MODE_ACTIVE"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xDCF0754AC3D6FD4E, "b")end, - ["IS_IN_VEHICLE_MOBILE_PHONE_CAMERA_RENDERING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x1F2300CB7FA7B7F6, "")end, - ["DISABLE_CINEMATIC_SLOW_MO_THIS_UPDATE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x17FCA7199A530203, "")end, - ["IS_BONNET_CINEMATIC_CAM_RENDERING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xD7360051C885628B, "")end, - -- Tests some cinematic camera flags - ["IS_CINEMATIC_CAM_INPUT_ACTIVE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xF5F1E89A970B7796, "")end, - ["IGNORE_MENU_PREFERENCE_FOR_BONNET_CAMERA_THIS_UPDATE"]=--[[void]] function()return native_invoker.unified_void(0x7B8A361C1813FBEF, "")end, - ["BYPASS_CUTSCENE_CAM_RENDERING_THIS_UPDATE"]=--[[void]] function()return native_invoker.unified_void(0xDB629FFD9285FA06, "")end, - ["STOP_CUTSCENE_CAM_SHAKING"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x324C5AA411DA7737, "i")end, - -- Hardcoded to only work in multiplayer. - ["SET_CUTSCENE_CAM_FAR_CLIP_THIS_UPDATE"]=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0x12DED8CA53D47EA5, "f")end, - ["GET_FOCUS_PED_ON_SCREEN"]=--[[Ped (int)]] function(--[[float]] p0,--[[int]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[float]] p6,--[[int]] p7,--[[int]] p8)return native_invoker.unified_int(p0, p1, p2, p3, p4, p5, p6, p7, p8, 0x89215EC747DF244A, "fifffffii")end, - ["DISABLE_NEAR_CLIP_SCAN_THIS_UPDATE"]=--[[void]] function()return native_invoker.unified_void(0x5A43C76F7FC7BA5F, "")end, - -- if p0 is 0, effect is cancelled - -- - -- if p0 is 1, effect zooms in, gradually tilts cam clockwise apx 30 degrees, wobbles slowly. Motion blur is active until cancelled. - -- - -- if p0 is 2, effect immediately tilts cam clockwise apx 30 degrees, begins to wobble slowly, then gradually tilts cam back to normal. The wobbling will continue until the effect is cancelled. - ["SET_CAM_DEATH_FAIL_EFFECT_STATE"]=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0x80C8B1846639BB19, "i")end, - ["SET_FIRST_PERSON_FLASH_EFFECT_TYPE"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x5C41E6BABC9E2112, "i")end, - -- From b617 scripts: - -- - -- CAM::SET_FIRST_PERSON_FLASH_EFFECT_VEHICLE_MODEL_NAME("DINGHY"); - -- CAM::SET_FIRST_PERSON_FLASH_EFFECT_VEHICLE_MODEL_NAME("ISSI2"); - -- CAM::SET_FIRST_PERSON_FLASH_EFFECT_VEHICLE_MODEL_NAME("SPEEDO"); - ["SET_FIRST_PERSON_FLASH_EFFECT_VEHICLE_MODEL_NAME"]=--[[void]] function(--[[string]] vehicleName)return native_invoker.unified_void(vehicleName, 0x21E253A7F8DA5DFB, "s")end, - ["SET_FIRST_PERSON_FLASH_EFFECT_VEHICLE_MODEL_HASH"]=--[[void]] function(--[[Hash (int)]] vehicleModel)return native_invoker.unified_void(vehicleModel, 0x11FA5D3479C7DD47, "i")end, - ["IS_ALLOWED_INDEPENDENT_CAMERA_MODES"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xEAF0FA793D05C592, "")end, - ["CAMERA_PREVENT_COLLISION_SETTINGS_FOR_TRIPLEHEAD_IN_INTERIORS_THIS_UPDATE"]=--[[void]] function()return native_invoker.unified_void(0x62374889A4D59F72, "")end, - ["REPLAY_GET_MAX_DISTANCE_ALLOWED_FROM_PLAYER"]=--[[float]] function()return native_invoker.unified_float(0x8BFCEB5EA1B161B6, "")end, -} -CLOCK={ - -- SET_CLOCK_TIME(12, 34, 56); - ["SET_CLOCK_TIME"]=--[[void]] function(--[[int]] hour,--[[int]] minute,--[[int]] second)return native_invoker.unified_void(hour, minute, second, 0x47C3B5848C3E45D8, "iii")end, - ["PAUSE_CLOCK"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x4055E40BD2DBEC1D, "b")end, - ["ADVANCE_CLOCK_TIME_TO"]=--[[void]] function(--[[int]] hour,--[[int]] minute,--[[int]] second)return native_invoker.unified_void(hour, minute, second, 0xC8CA9670B9D83B3B, "iii")end, - ["ADD_TO_CLOCK_TIME"]=--[[void]] function(--[[int]] hours,--[[int]] minutes,--[[int]] seconds)return native_invoker.unified_void(hours, minutes, seconds, 0xD716F30D8C8980E2, "iii")end, - -- Gets the current ingame hour, expressed without zeros. (09:34 will be represented as 9) - ["GET_CLOCK_HOURS"]=--[[int]] function()return native_invoker.unified_int(0x25223CA6B4D20B7F, "")end, - -- Gets the current ingame clock minute. - ["GET_CLOCK_MINUTES"]=--[[int]] function()return native_invoker.unified_int(0x13D2B8ADD79640F2, "")end, - -- Gets the current ingame clock second. Note that ingame clock seconds change really fast since a day in GTA is only 48 minutes in real life. - ["GET_CLOCK_SECONDS"]=--[[int]] function()return native_invoker.unified_int(0x494E97C2EF27C470, "")end, - ["SET_CLOCK_DATE"]=--[[void]] function(--[[int]] day,--[[int]] month,--[[int]] year)return native_invoker.unified_void(day, month, year, 0xB096419DF0D06CE7, "iii")end, - -- Gets the current day of the week. - -- - -- 0: Sunday - -- 1: Monday - -- 2: Tuesday - -- 3: Wednesday - -- 4: Thursday - -- 5: Friday - -- 6: Saturday - ["GET_CLOCK_DAY_OF_WEEK"]=--[[int]] function()return native_invoker.unified_int(0xD972E4BD7AEB235F, "")end, - ["GET_CLOCK_DAY_OF_MONTH"]=--[[int]] function()return native_invoker.unified_int(0x3D10BC92A4DB1D35, "")end, - ["GET_CLOCK_MONTH"]=--[[int]] function()return native_invoker.unified_int(0xBBC72712E80257A1, "")end, - ["GET_CLOCK_YEAR"]=--[[int]] function()return native_invoker.unified_int(0x961777E64BDAF717, "")end, - ["GET_MILLISECONDS_PER_GAME_MINUTE"]=--[[int]] function()return native_invoker.unified_int(0x2F8B4D1C595B11DB, "")end, - -- Gets system time as year, month, day, hour, minute and second. - -- - -- Example usage: - -- - -- int year; - -- int month; - -- int day; - -- int hour; - -- int minute; - -- int second; - -- - -- TIME::GET_POSIX_TIME(&year, &month, &day, &hour, &minute, &second); - -- - ["GET_POSIX_TIME"]=--[[void]] function(--[[int* (pointer)]] year,--[[int* (pointer)]] month,--[[int* (pointer)]] day,--[[int* (pointer)]] hour,--[[int* (pointer)]] minute,--[[int* (pointer)]] second)return native_invoker.unified_void(year, month, day, hour, minute, second, 0xDA488F299A5B164E, "pppppp")end, - -- Gets current UTC time - ["GET_UTC_TIME"]=--[[void]] function(--[[int* (pointer)]] year,--[[int* (pointer)]] month,--[[int* (pointer)]] day,--[[int* (pointer)]] hour,--[[int* (pointer)]] minute,--[[int* (pointer)]] second)return native_invoker.unified_void(year, month, day, hour, minute, second, 0x8117E09A19EEF4D3, "pppppp")end, - -- Gets local system time as year, month, day, hour, minute and second. - -- - -- Example usage: - -- - -- int year; - -- int month; - -- int day; - -- int hour; - -- int minute; - -- int second; - -- or use std::tm struct - -- - -- TIME::GET_LOCAL_TIME(&year, &month, &day, &hour, &minute, &second); - -- - ["GET_LOCAL_TIME"]=--[[void]] function(--[[int* (pointer)]] year,--[[int* (pointer)]] month,--[[int* (pointer)]] day,--[[int* (pointer)]] hour,--[[int* (pointer)]] minute,--[[int* (pointer)]] second)return native_invoker.unified_void(year, month, day, hour, minute, second, 0x50C7A99057A69748, "pppppp")end, -} -CUTSCENE={ - -- flags: Usually 8 - -- Full list of cutscene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/cutsceneNames.json - ["REQUEST_CUTSCENE"]=--[[void]] function(--[[string]] cutsceneName,--[[int]] flags)return native_invoker.unified_void(cutsceneName, flags, 0x7A86743F475D9E09, "si")end, - -- flags: Usually 8 - -- - -- playbackFlags: Which scenes should be played. - -- Example: 0x105 (bit 0, 2 and 8 set) will enable scene 1, 3 and 9. - -- Full list of cutscene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/cutsceneNames.json - ["REQUEST_CUTSCENE_WITH_PLAYBACK_LIST"]=--[[void]] function(--[[string]] cutsceneName,--[[int]] playbackFlags,--[[int]] flags)return native_invoker.unified_void(cutsceneName, playbackFlags, flags, 0xC23DE0E91C30B58C, "sii")end, - ["REMOVE_CUTSCENE"]=--[[void]] function()return native_invoker.unified_void(0x440AF51A3462B86F, "")end, - ["HAS_CUTSCENE_LOADED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC59F528E9AB9F339, "")end, - -- Full list of cutscene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/cutsceneNames.json - ["HAS_THIS_CUTSCENE_LOADED"]=--[[BOOL (bool)]] function(--[[string]] cutsceneName)return native_invoker.unified_bool(cutsceneName, 0x228D3D94F8A11C3C, "s")end, - -- Sets the cutscene's owning thread ID. - ["SET_SCRIPT_CAN_START_CUTSCENE"]=--[[void]] function(--[[int]] threadId)return native_invoker.unified_void(threadId, 0x8D9DF6ECA8768583, "i")end, - ["CAN_REQUEST_ASSETS_FOR_CUTSCENE_ENTITY"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xB56BBBCC2955D9CB, "")end, - ["IS_CUTSCENE_PLAYBACK_FLAG_SET"]=--[[BOOL (bool)]] function(--[[int]] flag)return native_invoker.unified_bool(flag, 0x71B74D2AE19338D0, "i")end, - ["SET_CUTSCENE_ENTITY_STREAMING_FLAGS"]=--[[void]] function(--[[string]] cutsceneEntName,--[[int]] p1,--[[int]] p2)return native_invoker.unified_void(cutsceneEntName, p1, p2, 0x4C61C75BEE8184C2, "sii")end, - -- Simply loads the cutscene and doesn't do extra stuff that REQUEST_CUTSCENE does. - -- Full list of cutscene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/cutsceneNames.json - ["REQUEST_CUT_FILE"]=--[[void]] function(--[[string]] cutsceneName)return native_invoker.unified_void(cutsceneName, 0x06A3524161C502BA, "s")end, - -- Simply checks if the cutscene has loaded and doesn't check via CutSceneManager as opposed to HAS_[THIS]_CUTSCENE_LOADED. - -- Full list of cutscene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/cutsceneNames.json - ["HAS_CUT_FILE_LOADED"]=--[[BOOL (bool)]] function(--[[string]] cutsceneName)return native_invoker.unified_bool(cutsceneName, 0xA1C996C2A744262E, "s")end, - -- Simply unloads the cutscene and doesn't do extra stuff that REMOVE_CUTSCENE does. - -- Full list of cutscene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/cutsceneNames.json - ["REMOVE_CUT_FILE"]=--[[void]] function(--[[string]] cutsceneName)return native_invoker.unified_void(cutsceneName, 0xD00D76A7DFC9D852, "s")end, - -- Full list of cutscene names by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/cutsceneNames.json - ["GET_CUT_FILE_CONCAT_COUNT"]=--[[int]] function(--[[string]] cutsceneName)return native_invoker.unified_int(cutsceneName, 0x0ABC54DE641DC0FC, "s")end, - -- flags: Usually 0. - ["START_CUTSCENE"]=--[[void]] function(--[[int]] flags)return native_invoker.unified_void(flags, 0x186D5CB5E7B0FF7B, "i")end, - -- flags: Usually 0. - ["START_CUTSCENE_AT_COORDS"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] flags)return native_invoker.unified_void(x, y, z, flags, 0x1C9ADDA3244A1FBF, "fffi")end, - ["STOP_CUTSCENE"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xC7272775B4DC786E, "b")end, - ["STOP_CUTSCENE_IMMEDIATELY"]=--[[void]] function()return native_invoker.unified_void(0xD220BDD222AC4A1E, "")end, - -- p3 could be heading. Needs more research. - ["SET_CUTSCENE_ORIGIN"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] p3,--[[int]] p4)return native_invoker.unified_void(x, y, z, p3, p4, 0xB812B3FD1C01CF27, "ffffi")end, - ["SET_CUTSCENE_ORIGIN_AND_ORIENTATION"]=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[int]] p6)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, p6, 0x011883F41211432A, "ffffffi")end, - ["GET_CUTSCENE_TIME"]=--[[int]] function()return native_invoker.unified_int(0xE625BEABBAFFDAB9, "")end, - ["GET_CUTSCENE_TOTAL_DURATION"]=--[[int]] function()return native_invoker.unified_int(0xEE53B14A19E480D4, "")end, - ["GET_CUTSCENE_END_TIME"]=--[[int]] function()return native_invoker.unified_int(0x971D7B15BCDBEF99, "")end, - ["GET_CUTSCENE_PLAY_DURATION"]=--[[int]] function()return native_invoker.unified_int(0x5D583F71C901F2A3, "")end, - ["WAS_CUTSCENE_SKIPPED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x40C8656EDAEDD569, "")end, - ["HAS_CUTSCENE_FINISHED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x7C0A893088881D57, "")end, - ["IS_CUTSCENE_ACTIVE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x991251AFC3981F84, "")end, - ["IS_CUTSCENE_PLAYING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xD3C2E180A40F031E, "")end, - ["GET_CUTSCENE_SECTION_PLAYING"]=--[[int]] function()return native_invoker.unified_int(0x49010A6A396553D8, "")end, - ["GET_ENTITY_INDEX_OF_CUTSCENE_ENTITY"]=--[[Entity (int)]] function(--[[string]] cutsceneEntName,--[[Hash (int)]] modelHash)return native_invoker.unified_int(cutsceneEntName, modelHash, 0x0A2E9FDB9A8C62F6, "si")end, - ["GET_CUTSCENE_CONCAT_SECTION_PLAYING"]=--[[int]] function()return native_invoker.unified_int(0x583DF8E3D4AFBD98, "")end, - -- This function is hard-coded to always return 1. - ["IS_CUTSCENE_AUTHORIZED"]=--[[BOOL (bool)]] function(--[[string]] cutsceneName)return native_invoker.unified_bool(cutsceneName, 0x4CEBC1ED31E8925E, "s")end, - ["DOES_CUTSCENE_HANDLE_EXIST"]=--[[int]] function(--[[int]] cutsceneHandle)return native_invoker.unified_int(cutsceneHandle, 0x4FCD976DA686580C, "i")end, - ["REGISTER_ENTITY_FOR_CUTSCENE"]=--[[void]] function(--[[Ped (int)]] cutscenePed,--[[string]] cutsceneEntName,--[[int]] p2,--[[Hash (int)]] modelHash,--[[int]] p4)return native_invoker.unified_void(cutscenePed, cutsceneEntName, p2, modelHash, p4, 0xE40C1C56DF95C2E8, "isiii")end, - ["GET_ENTITY_INDEX_OF_REGISTERED_ENTITY"]=--[[Entity (int)]] function(--[[string]] cutsceneEntName,--[[Hash (int)]] modelHash)return native_invoker.unified_int(cutsceneEntName, modelHash, 0xC0741A26499654CD, "si")end, - -- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - ["SET_VEHICLE_MODEL_PLAYER_WILL_EXIT_SCENE"]=--[[void]] function(--[[Hash (int)]] modelHash)return native_invoker.unified_void(modelHash, 0x7F96F23FA9B73327, "i")end, - -- Only used twice in R* scripts - ["SET_CUTSCENE_TRIGGER_AREA"]=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, 0x9896CE4721BE84BA, "ffffff")end, - -- modelHash (p1) was always 0 in R* scripts - ["CAN_SET_ENTER_STATE_FOR_REGISTERED_ENTITY"]=--[[BOOL (bool)]] function(--[[string]] cutsceneEntName,--[[Hash (int)]] modelHash)return native_invoker.unified_bool(cutsceneEntName, modelHash, 0x645D0B458D8E17B5, "si")end, - ["CAN_SET_EXIT_STATE_FOR_REGISTERED_ENTITY"]=--[[BOOL (bool)]] function(--[[string]] cutsceneEntName,--[[Hash (int)]] modelHash)return native_invoker.unified_bool(cutsceneEntName, modelHash, 0x4C6A6451C79E4662, "si")end, - ["CAN_SET_EXIT_STATE_FOR_CAMERA"]=--[[BOOL (bool)]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_bool(p0, 0xB2CBCD0930DFB420, "b")end, - -- Toggles a value (bool) for cutscenes. - ["SET_PAD_CAN_SHAKE_DURING_CUTSCENE"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xC61B86C9F61EB404, "b")end, - ["SET_CUTSCENE_FADE_VALUES"]=--[[void]] function(--[[BOOL (bool)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x8093F23ABACCC7D4, "bbbb")end, - ["SET_CUTSCENE_MULTIHEAD_FADE"]=--[[void]] function(--[[BOOL (bool)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x20746F7B1032A3C7, "bbbb")end, - ["SET_CUTSCENE_MULTIHEAD_FADE_MANUAL"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x06EE9048FD080382, "b")end, - ["IS_MULTIHEAD_FADE_UP"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xA0FE76168A189DDB, "")end, - -- Stops current cutscene with a fade transition - -- p0: always true in R* Scripts - -- You will need to manually fade the screen back in - -- SET_CUTSCENE_INPUTS_PARTIALLY_FADE? - ["NETWORK_SET_MOCAP_CUTSCENE_CAN_BE_SKIPPED"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x2F137B508DE238F2, "b")end, - ["SET_CAR_GENERATORS_CAN_UPDATE_DURING_CUTSCENE"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xE36A98D8AB3D3C66, "b")end, - ["CAN_USE_MOBILE_PHONE_DURING_CUTSCENE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x5EDEF0CF8C1DAB3C, "")end, - ["SET_CUTSCENE_CAN_BE_SKIPPED"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x41FAA8FB2ECE8720, "b")end, - ["SET_CAN_DISPLAY_MINIMAP_DURING_CUTSCENE_THIS_UPDATE"]=--[[void]] function()return native_invoker.unified_void(0x2131046957F31B04, "")end, - -- Full list of ped components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedComponentVariations.json - ["SET_CUTSCENE_PED_COMPONENT_VARIATION"]=--[[void]] function(--[[string]] cutsceneEntName,--[[int]] componentId,--[[int]] drawableId,--[[int]] textureId,--[[Hash (int)]] modelHash)return native_invoker.unified_void(cutsceneEntName, componentId, drawableId, textureId, modelHash, 0xBA01E7B6DEEFBBC9, "siiii")end, - ["SET_CUTSCENE_PED_COMPONENT_VARIATION_FROM_PED"]=--[[void]] function(--[[string]] cutsceneEntName,--[[Ped (int)]] ped,--[[Hash (int)]] modelHash)return native_invoker.unified_void(cutsceneEntName, ped, modelHash, 0x2A56C06EBEF2B0D9, "sii")end, - ["DOES_CUTSCENE_ENTITY_EXIST"]=--[[BOOL (bool)]] function(--[[string]] cutsceneEntName,--[[Hash (int)]] modelHash)return native_invoker.unified_bool(cutsceneEntName, modelHash, 0x499EF20C5DB25C59, "si")end, - -- Thanks R*! ;) - -- - -- if ((l_161 == 0) || (l_161 == 2)) { - -- sub_2ea27("Trying to set Jimmy prop variation"); - -- CUTSCENE::SET_CUTSCENE_PED_PROP_VARIATION("Jimmy_Boston", 1, 0, 0, 0); - -- } - -- - -- Full list of ped components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedComponentVariations.json - ["SET_CUTSCENE_PED_PROP_VARIATION"]=--[[void]] function(--[[string]] cutsceneEntName,--[[int]] componentId,--[[int]] drawableId,--[[int]] textureId,--[[Hash (int)]] modelHash)return native_invoker.unified_void(cutsceneEntName, componentId, drawableId, textureId, modelHash, 0x0546524ADE2E9723, "siiii")end, - -- Possibly HAS_CUTSCENE_CUT_THIS_FRAME, needs more research. - ["HAS_CUTSCENE_CUT_THIS_FRAME"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x708BDD8CD795B043, "")end, -} -DATAFILE={ - -- Adds the given requestID to the watch list. - ["DATAFILE_WATCH_REQUEST_ID"]=--[[void]] function(--[[int]] requestId)return native_invoker.unified_void(requestId, 0xAD6875BBC0FC899C, "i")end, - ["DATAFILE_CLEAR_WATCH_LIST"]=--[[void]] function()return native_invoker.unified_void(0x6CC86E78358D5119, "")end, - ["DATAFILE_IS_VALID_REQUEST_ID"]=--[[BOOL (bool)]] function(--[[int]] index)return native_invoker.unified_bool(index, 0xFCCAE5B92A830878, "i")end, - ["DATAFILE_HAS_LOADED_FILE_DATA"]=--[[BOOL (bool)]] function(--[[int]] requestId)return native_invoker.unified_bool(requestId, 0x15FF52B809DB2353, "i")end, - ["DATAFILE_HAS_VALID_FILE_DATA"]=--[[BOOL (bool)]] function(--[[int]] requestId)return native_invoker.unified_bool(requestId, 0xF8CC1EBE0B62E29F, "i")end, - ["DATAFILE_SELECT_ACTIVE_FILE"]=--[[BOOL (bool)]] function(--[[int]] requestId,--[[Any (int)]] p1)return native_invoker.unified_bool(requestId, p1, 0x22DA66936E0FFF37, "ii")end, - ["DATAFILE_DELETE_REQUESTED_FILE"]=--[[BOOL (bool)]] function(--[[int]] requestId)return native_invoker.unified_bool(requestId, 0x8F5EA1C01D65A100, "i")end, - ["UGC_CREATE_CONTENT"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] data,--[[int]] dataCount,--[[string]] contentName,--[[string]] description,--[[string]] tagsCsv,--[[string]] contentTypeName,--[[BOOL (bool)]] publish,--[[Any (int)]] p7)return native_invoker.unified_bool(data, dataCount, contentName, description, tagsCsv, contentTypeName, publish, p7, 0xC84527E235FCA219, "pissssbi")end, - ["UGC_CREATE_MISSION"]=--[[BOOL (bool)]] function(--[[string]] contentName,--[[string]] description,--[[string]] tagsCsv,--[[string]] contentTypeName,--[[BOOL (bool)]] publish,--[[Any (int)]] p5)return native_invoker.unified_bool(contentName, description, tagsCsv, contentTypeName, publish, p5, 0xA5EFC3E847D60507, "ssssbi")end, - ["UGC_UPDATE_CONTENT"]=--[[BOOL (bool)]] function(--[[string]] contentId,--[[Any* (pointer)]] data,--[[int]] dataCount,--[[string]] contentName,--[[string]] description,--[[string]] tagsCsv,--[[string]] contentTypeName,--[[Any (int)]] p7)return native_invoker.unified_bool(contentId, data, dataCount, contentName, description, tagsCsv, contentTypeName, p7, 0x648E7A5434AF7969, "spissssi")end, - ["UGC_UPDATE_MISSION"]=--[[BOOL (bool)]] function(--[[string]] contentId,--[[string]] contentName,--[[string]] description,--[[string]] tagsCsv,--[[string]] contentTypeName,--[[Any (int)]] p5)return native_invoker.unified_bool(contentId, contentName, description, tagsCsv, contentTypeName, p5, 0x4645DE9980999E93, "sssssi")end, - ["UGC_SET_PLAYER_DATA"]=--[[BOOL (bool)]] function(--[[string]] contentId,--[[float]] rating,--[[string]] contentTypeName,--[[Any (int)]] p3)return native_invoker.unified_bool(contentId, rating, contentTypeName, p3, 0x692D808C34A82143, "sfsi")end, - ["DATAFILE_SELECT_UGC_DATA"]=--[[BOOL (bool)]] function(--[[int]] p0,--[[Any (int)]] p1)return native_invoker.unified_bool(p0, p1, 0xA69AC4ADE82B57A4, "ii")end, - ["DATAFILE_SELECT_UGC_STATS"]=--[[BOOL (bool)]] function(--[[int]] p0,--[[BOOL (bool)]] p1,--[[Any (int)]] p2)return native_invoker.unified_bool(p0, p1, p2, 0x9CB0BFA7A9342C3D, "ibi")end, - ["DATAFILE_SELECT_UGC_PLAYER_DATA"]=--[[BOOL (bool)]] function(--[[int]] p0,--[[Any (int)]] p1)return native_invoker.unified_bool(p0, p1, 0x52818819057F2B40, "ii")end, - ["DATAFILE_SELECT_CREATOR_STATS"]=--[[BOOL (bool)]] function(--[[int]] p0,--[[Any (int)]] p1)return native_invoker.unified_bool(p0, p1, 0x01095C95CD46B624, "ii")end, - -- Loads a User-Generated Content (UGC) file. These files can be found in "[GTA5]\data\ugc" and "[GTA5]\common\patch\ugc". They seem to follow a naming convention, most likely of "[name]_[part].ugc". See example below for usage. - -- - -- Returns whether or not the file was successfully loaded. - -- - -- Example: - -- DATAFILE::DATAFILE_LOAD_OFFLINE_UGC("RockstarPlaylists") // loads "rockstarplaylists_00.ugc" - ["DATAFILE_LOAD_OFFLINE_UGC"]=--[[BOOL (bool)]] function(--[[string]] filename,--[[Any (int)]] p1)return native_invoker.unified_bool(filename, p1, 0xC5238C011AF405E4, "si")end, - ["DATAFILE_CREATE"]=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0xD27058A1CA2B13EE, "i")end, - ["DATAFILE_DELETE"]=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0x9AB9C1CFC8862DFB, "i")end, - ["DATAFILE_STORE_MISSION_HEADER"]=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0x2ED61456317B8178, "i")end, - ["DATAFILE_FLUSH_MISSION_HEADER"]=--[[void]] function()return native_invoker.unified_void(0xC55854C7D7274882, "")end, - ["DATAFILE_GET_FILE_DICT"]=--[[Any* (pointer)]] function(--[[int]] p0)return native_invoker.unified_pointer(p0, 0x906B778CA1DC72B6, "i")end, - ["DATAFILE_START_SAVE_TO_CLOUD"]=--[[BOOL (bool)]] function(--[[string]] filename,--[[Any (int)]] p1)return native_invoker.unified_bool(filename, p1, 0x83BCCE3224735F05, "si")end, - ["DATAFILE_UPDATE_SAVE_TO_CLOUD"]=--[[BOOL (bool)]] function(--[[BOOL* (pointer)]] p0)return native_invoker.unified_bool(p0, 0x4DFDD9EB705F8140, "p")end, - ["DATAFILE_IS_SAVE_PENDING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xBEDB96A7584AA8CF, "")end, - ["DATAFILE_LOAD_OFFLINE_UGC_FOR_ADDITIONAL_DATA_FILE"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_bool(p0, p1, 0xA6EEF01087181EDD, "ii")end, - ["DATAFILE_DELETE_FOR_ADDITIONAL_DATA_FILE"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x6AD0BD5E087866CB, "i")end, - ["DATAFILE_GET_FILE_DICT_FOR_ADDITIONAL_DATA_FILE"]=--[[Any* (pointer)]] function(--[[Any (int)]] p0)return native_invoker.unified_pointer(p0, 0xDBF860CF1DB8E599, "i")end, - ["DATADICT_SET_BOOL"]=--[[void]] function(--[[Any* (pointer)]] objectData,--[[string]] key,--[[BOOL (bool)]] value)return native_invoker.unified_void(objectData, key, value, 0x35124302A556A325, "psb")end, - ["DATADICT_SET_INT"]=--[[void]] function(--[[Any* (pointer)]] objectData,--[[string]] key,--[[int]] value)return native_invoker.unified_void(objectData, key, value, 0xE7E035450A7948D5, "psi")end, - ["DATADICT_SET_FLOAT"]=--[[void]] function(--[[Any* (pointer)]] objectData,--[[string]] key,--[[float]] value)return native_invoker.unified_void(objectData, key, value, 0xC27E1CC2D795105E, "psf")end, - ["DATADICT_SET_STRING"]=--[[void]] function(--[[Any* (pointer)]] objectData,--[[string]] key,--[[string]] value)return native_invoker.unified_void(objectData, key, value, 0x8FF3847DADD8E30C, "pss")end, - ["DATADICT_SET_VECTOR"]=--[[void]] function(--[[Any* (pointer)]] objectData,--[[string]] key,--[[float]] valueX,--[[float]] valueY,--[[float]] valueZ)return native_invoker.unified_void(objectData, key, valueX, valueY, valueZ, 0x4CD49B76338C7DEE, "psfff")end, - ["DATADICT_CREATE_DICT"]=--[[Any* (pointer)]] function(--[[Any* (pointer)]] objectData,--[[string]] key)return native_invoker.unified_pointer(objectData, key, 0xA358F56F10732EE1, "ps")end, - ["DATADICT_CREATE_ARRAY"]=--[[Any* (pointer)]] function(--[[Any* (pointer)]] objectData,--[[string]] key)return native_invoker.unified_pointer(objectData, key, 0x5B11728527CA6E5F, "ps")end, - ["DATADICT_GET_BOOL"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] objectData,--[[string]] key)return native_invoker.unified_bool(objectData, key, 0x1186940ED72FFEEC, "ps")end, - ["DATADICT_GET_INT"]=--[[int]] function(--[[Any* (pointer)]] objectData,--[[string]] key)return native_invoker.unified_int(objectData, key, 0x78F06F6B1FB5A80C, "ps")end, - ["DATADICT_GET_FLOAT"]=--[[float]] function(--[[Any* (pointer)]] objectData,--[[string]] key)return native_invoker.unified_float(objectData, key, 0x06610343E73B9727, "ps")end, - ["DATADICT_GET_STRING"]=--[[string]] function(--[[Any* (pointer)]] objectData,--[[string]] key)return native_invoker.unified_string(objectData, key, 0x3D2FD9E763B24472, "ps")end, - ["DATADICT_GET_VECTOR"]=--[[Vector3 (vector3)]] function(--[[Any* (pointer)]] objectData,--[[string]] key)return native_invoker.unified_vector3(objectData, key, 0x46CD3CB66E0825CC, "ps")end, - ["DATADICT_GET_DICT"]=--[[Any* (pointer)]] function(--[[Any* (pointer)]] objectData,--[[string]] key)return native_invoker.unified_pointer(objectData, key, 0xB6B9DDC412FCEEE2, "ps")end, - ["DATADICT_GET_ARRAY"]=--[[Any* (pointer)]] function(--[[Any* (pointer)]] objectData,--[[string]] key)return native_invoker.unified_pointer(objectData, key, 0x7A983AA9DA2659ED, "ps")end, - -- Types: - -- 1 = Boolean - -- 2 = Integer - -- 3 = Float - -- 4 = String - -- 5 = Vector3 - -- 6 = Object - -- 7 = Array - ["DATADICT_GET_TYPE"]=--[[int]] function(--[[Any* (pointer)]] objectData,--[[string]] key)return native_invoker.unified_int(objectData, key, 0x031C55ED33227371, "ps")end, - ["DATAARRAY_ADD_BOOL"]=--[[void]] function(--[[Any* (pointer)]] arrayData,--[[BOOL (bool)]] value)return native_invoker.unified_void(arrayData, value, 0xF8B0F5A43E928C76, "pb")end, - ["DATAARRAY_ADD_INT"]=--[[void]] function(--[[Any* (pointer)]] arrayData,--[[int]] value)return native_invoker.unified_void(arrayData, value, 0xCABDB751D86FE93B, "pi")end, - ["DATAARRAY_ADD_FLOAT"]=--[[void]] function(--[[Any* (pointer)]] arrayData,--[[float]] value)return native_invoker.unified_void(arrayData, value, 0x57A995FD75D37F56, "pf")end, - ["DATAARRAY_ADD_STRING"]=--[[void]] function(--[[Any* (pointer)]] arrayData,--[[string]] value)return native_invoker.unified_void(arrayData, value, 0x2F0661C155AEEEAA, "ps")end, - ["DATAARRAY_ADD_VECTOR"]=--[[void]] function(--[[Any* (pointer)]] arrayData,--[[float]] valueX,--[[float]] valueY,--[[float]] valueZ)return native_invoker.unified_void(arrayData, valueX, valueY, valueZ, 0x407F8D034F70F0C2, "pfff")end, - ["DATAARRAY_ADD_DICT"]=--[[Any* (pointer)]] function(--[[Any* (pointer)]] arrayData)return native_invoker.unified_pointer(arrayData, 0x6889498B3E19C797, "p")end, - ["DATAARRAY_GET_BOOL"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] arrayData,--[[int]] arrayIndex)return native_invoker.unified_bool(arrayData, arrayIndex, 0x50C1B2874E50C114, "pi")end, - ["DATAARRAY_GET_INT"]=--[[int]] function(--[[Any* (pointer)]] arrayData,--[[int]] arrayIndex)return native_invoker.unified_int(arrayData, arrayIndex, 0x3E5AE19425CD74BE, "pi")end, - ["DATAARRAY_GET_FLOAT"]=--[[float]] function(--[[Any* (pointer)]] arrayData,--[[int]] arrayIndex)return native_invoker.unified_float(arrayData, arrayIndex, 0xC0C527B525D7CFB5, "pi")end, - ["DATAARRAY_GET_STRING"]=--[[string]] function(--[[Any* (pointer)]] arrayData,--[[int]] arrayIndex)return native_invoker.unified_string(arrayData, arrayIndex, 0xD3F2FFEB8D836F52, "pi")end, - ["DATAARRAY_GET_VECTOR"]=--[[Vector3 (vector3)]] function(--[[Any* (pointer)]] arrayData,--[[int]] arrayIndex)return native_invoker.unified_vector3(arrayData, arrayIndex, 0x8D2064E5B64A628A, "pi")end, - ["DATAARRAY_GET_DICT"]=--[[Any* (pointer)]] function(--[[Any* (pointer)]] arrayData,--[[int]] arrayIndex)return native_invoker.unified_pointer(arrayData, arrayIndex, 0x8B5FADCC4E3A145F, "pi")end, - ["DATAARRAY_GET_COUNT"]=--[[int]] function(--[[Any* (pointer)]] arrayData)return native_invoker.unified_int(arrayData, 0x065DB281590CEA2D, "p")end, - -- Types: - -- 1 = Boolean - -- 2 = Integer - -- 3 = Float - -- 4 = String - -- 5 = Vector3 - -- 6 = Object - -- 7 = Array - ["DATAARRAY_GET_TYPE"]=--[[int]] function(--[[Any* (pointer)]] arrayData,--[[int]] arrayIndex)return native_invoker.unified_int(arrayData, arrayIndex, 0x3A0014ADB172A3C5, "pi")end, -} -DECORATOR={ - ["DECOR_SET_TIME"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[string]] propertyName,--[[int]] timestamp)return native_invoker.unified_bool(entity, propertyName, timestamp, 0x95AED7B8E39ECAA4, "isi")end, - -- This function sets metadata of type bool to specified entity. - -- - ["DECOR_SET_BOOL"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[string]] propertyName,--[[BOOL (bool)]] value)return native_invoker.unified_bool(entity, propertyName, value, 0x6B1E8E2ED1335B71, "isb")end, - ["DECOR_SET_FLOAT"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[string]] propertyName,--[[float]] value)return native_invoker.unified_bool(entity, propertyName, value, 0x211AB1DD8D0F363A, "isf")end, - -- Sets property to int. - ["DECOR_SET_INT"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[string]] propertyName,--[[int]] value)return native_invoker.unified_bool(entity, propertyName, value, 0x0CE3AA5E1CA19E10, "isi")end, - ["DECOR_GET_BOOL"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[string]] propertyName)return native_invoker.unified_bool(entity, propertyName, 0xDACE671663F2F5DB, "is")end, - ["DECOR_GET_FLOAT"]=--[[float]] function(--[[Entity (int)]] entity,--[[string]] propertyName)return native_invoker.unified_float(entity, propertyName, 0x6524A2F114706F43, "is")end, - ["DECOR_GET_INT"]=--[[int]] function(--[[Entity (int)]] entity,--[[string]] propertyName)return native_invoker.unified_int(entity, propertyName, 0xA06C969B02A97298, "is")end, - -- Returns whether or not the specified property is set for the entity. - ["DECOR_EXIST_ON"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[string]] propertyName)return native_invoker.unified_bool(entity, propertyName, 0x05661B80A8C9165F, "is")end, - ["DECOR_REMOVE"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[string]] propertyName)return native_invoker.unified_bool(entity, propertyName, 0x00EE9F297C738720, "is")end, - -- https://alloc8or.re/gta5/doc/enums/eDecorType.txt - ["DECOR_REGISTER"]=--[[void]] function(--[[string]] propertyName,--[[int]] type)return native_invoker.unified_void(propertyName, type, 0x9FD90732F56403CE, "si")end, - -- type: see DECOR_REGISTER - ["DECOR_IS_REGISTERED_AS_TYPE"]=--[[BOOL (bool)]] function(--[[string]] propertyName,--[[int]] type)return native_invoker.unified_bool(propertyName, type, 0x4F14F9F870D6FBC8, "si")end, - -- Called after all decorator type initializations. - ["DECOR_REGISTER_LOCK"]=--[[void]] function()return native_invoker.unified_void(0xA9D14EEA259F9248, "")end, -} -DLC={ - ["ARE_ANY_CCS_PENDING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x241FCA5B1AA14F75, "")end, - -- Returns true if the given DLC pack is present. - ["IS_DLC_PRESENT"]=--[[BOOL (bool)]] function(--[[Hash (int)]] dlcHash)return native_invoker.unified_bool(dlcHash, 0x812595A0644CE1DE, "i")end, - -- This function is hard-coded to always return 1. - ["DLC_CHECK_CLOUD_DATA_CORRECT"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xF2E07819EF1A5289, "")end, - -- This function is hard-coded to always return 0. - ["GET_EXTRACONTENT_CLOUD_RESULT"]=--[[int]] function()return native_invoker.unified_int(0x9489659372A81585, "")end, - -- This function is hard-coded to always return 1. - ["DLC_CHECK_COMPAT_PACK_CONFIGURATION"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xA213B11DFF526300, "")end, - ["GET_EVER_HAD_BAD_PACK_ORDER"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x8D30F648014A92B5, "")end, - ["GET_IS_LOADING_SCREEN_ACTIVE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x10D0A8F259E93EC9, "")end, - ["GET_IS_INITIAL_LOADING_SCREEN_ACTIVE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC4637A6D03C24CC3, "")end, - -- Sets the value of the specified variable to 0. - -- Always returns true. - ["HAS_CLOUD_REQUESTS_FINISHED"]=--[[BOOL (bool)]] function(--[[BOOL* (pointer)]] p0,--[[int]] unused)return native_invoker.unified_bool(p0, unused, 0x46E2B844905BC5F0, "pi")end, - -- Unloads GROUP_MAP (GTAO/MP) DLC data and loads GROUP_MAP_SP DLC. Neither are loaded by default, ON_ENTER_MP is a cognate to this function and loads MP DLC (and unloads SP DLC by extension). - -- Works in singleplayer. - ["ON_ENTER_SP"]=--[[void]] function()return native_invoker.unified_void(0xD7C10C4A637992C9, "")end, - -- This loads the GTA:O dlc map parts (high end garages, apartments). - -- Works in singleplayer. - -- In order to use GTA:O heist IPL's you have to call this native with the following params: SET_INSTANCE_PRIORITY_MODE(1); - ["ON_ENTER_MP"]=--[[void]] function()return native_invoker.unified_void(0x0888C3502DBBEEF5, "")end, -} -ENTITY={ - -- Checks whether an entity exists in the game world. - ["DOES_ENTITY_EXIST"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x7239B21A38F536BA, "i")end, - ["DOES_ENTITY_BELONG_TO_THIS_SCRIPT"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] p1)return native_invoker.unified_bool(entity, p1, 0xDDE6DF5AE89981D2, "ib")end, - ["DOES_ENTITY_HAVE_DRAWABLE"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x060D6E96F8B8E48D, "i")end, - ["DOES_ENTITY_HAVE_PHYSICS"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0xDA95EA3317CC5064, "i")end, - ["DOES_ENTITY_HAVE_SKELETON"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x764EB96874EFFDC1, "i")end, - ["DOES_ENTITY_HAVE_ANIM_DIRECTOR"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x2158E81A6AF65EA9, "i")end, - -- P3 is always 3 as far as i cant tell - -- - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - ["HAS_ENTITY_ANIM_FINISHED"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[string]] animDict,--[[string]] animName,--[[int]] p3)return native_invoker.unified_bool(entity, animDict, animName, p3, 0x20B711662962B472, "issi")end, - ["HAS_ENTITY_BEEN_DAMAGED_BY_ANY_OBJECT"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x95EB9964FF5C5C65, "i")end, - ["HAS_ENTITY_BEEN_DAMAGED_BY_ANY_PED"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x605F5A140F202491, "i")end, - ["HAS_ENTITY_BEEN_DAMAGED_BY_ANY_VEHICLE"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0xDFD5033FDBA0A9C8, "i")end, - -- Entity 1 = Victim - -- Entity 2 = Attacker - -- - -- p2 seems to always be 1 - ["HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity1,--[[Entity (int)]] entity2,--[[BOOL (bool)]] p2)return native_invoker.unified_bool(entity1, entity2, p2, 0xC86D67D52A707CF8, "iib")end, - -- traceType is always 17 in the scripts. - -- - -- There is other codes used for traceType: - -- 19 - in jewelry_prep1a - -- 126 - in am_hunt_the_beast - -- 256 & 287 - in fm_mission_controller - ["HAS_ENTITY_CLEAR_LOS_TO_ENTITY"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity1,--[[Entity (int)]] entity2,--[[int]] traceType)return native_invoker.unified_bool(entity1, entity2, traceType, 0xFCDFF7B72D23A1AC, "iii")end, - ["HAS_ENTITY_CLEAR_LOS_TO_ENTITY_ADJUST_FOR_COVER"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity1,--[[Entity (int)]] entity2,--[[int]] traceType)return native_invoker.unified_bool(entity1, entity2, traceType, 0x394BDE2A7BBA031E, "iii")end, - -- Has the entity1 got a clear line of sight to the other entity2 from the direction entity1 is facing. - -- This is one of the most CPU demanding BOOL natives in the game; avoid calling this in things like nested for-loops - ["HAS_ENTITY_CLEAR_LOS_TO_ENTITY_IN_FRONT"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity1,--[[Entity (int)]] entity2)return native_invoker.unified_bool(entity1, entity2, 0x0267D00AF114F17A, "ii")end, - -- Called on tick. - -- Tested with vehicles, returns true whenever the vehicle is touching any entity. - -- - -- Note: for vehicles, the wheels can touch the ground and it will still return false, but if the body of the vehicle touches the ground, it will return true. - ["HAS_ENTITY_COLLIDED_WITH_ANYTHING"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x8BAD02F0368D9E14, "i")end, - ["_GET_LAST_ENTITY_HIT_BY_ENTITY"]=--[[Entity (int)]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0xA75EE4F689B85391, "i")end, - ["GET_LAST_MATERIAL_HIT_BY_ENTITY"]=--[[Hash (int)]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0x5C3D0A935F535C4C, "i")end, - ["GET_COLLISION_NORMAL_OF_LAST_HIT_FOR_ENTITY"]=--[[Vector3 (vector3)]] function(--[[Entity (int)]] entity)return native_invoker.unified_vector3(entity, 0xE465D4AB7CA6AE72, "i")end, - -- Based on carmod_shop script decompile this takes a vehicle parameter. It is called when repair is done on initial enter. - ["FORCE_ENTITY_AI_AND_ANIMATION_UPDATE"]=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0x40FDEDB72F8293B2, "i")end, - -- Returns a float value representing animation's current playtime with respect to its total playtime. This value increasing in a range from [0 to 1] and wrap back to 0 when it reach 1. - -- - -- Example: - -- 0.000000 - mark the starting of animation. - -- 0.500000 - mark the midpoint of the animation. - -- 1.000000 - mark the end of animation. - -- - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - ["GET_ENTITY_ANIM_CURRENT_TIME"]=--[[float]] function(--[[Entity (int)]] entity,--[[string]] animDict,--[[string]] animName)return native_invoker.unified_float(entity, animDict, animName, 0x346D81500D088F42, "iss")end, - -- Returns a float value representing animation's total playtime in milliseconds. - -- - -- Example: - -- GET_ENTITY_ANIM_TOTAL_TIME(PLAYER_ID(),"amb@world_human_yoga@female@base","base_b") - -- return 20800.000000 - -- - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - ["GET_ENTITY_ANIM_TOTAL_TIME"]=--[[float]] function(--[[Entity (int)]] entity,--[[string]] animDict,--[[string]] animName)return native_invoker.unified_float(entity, animDict, animName, 0x50BD2730B191E360, "iss")end, - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - ["GET_ANIM_DURATION"]=--[[float]] function(--[[string]] animDict,--[[string]] animName)return native_invoker.unified_float(animDict, animName, 0xFEDDF04D62B8D790, "ss")end, - ["GET_ENTITY_ATTACHED_TO"]=--[[Entity (int)]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0x48C2BED9180FE123, "i")end, - -- Gets the current coordinates for a specified entity. - -- `entity` = The entity to get the coordinates from. - -- `alive` = Unused by the game, potentially used by debug builds of GTA in order to assert whether or not an entity was alive. - ["GET_ENTITY_COORDS"]=--[[Vector3 (vector3)]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] alive)return native_invoker.unified_vector3(entity, alive, 0x3FEF770D40960D5A, "ib")end, - -- Gets the entity's forward vector. - ["GET_ENTITY_FORWARD_VECTOR"]=--[[Vector3 (vector3)]] function(--[[Entity (int)]] entity)return native_invoker.unified_vector3(entity, 0x0A794A5A57F8DF91, "i")end, - -- Gets the X-component of the entity's forward vector. - ["GET_ENTITY_FORWARD_X"]=--[[float]] function(--[[Entity (int)]] entity)return native_invoker.unified_float(entity, 0x8BB4EF4214E0E6D5, "i")end, - -- Gets the Y-component of the entity's forward vector. - ["GET_ENTITY_FORWARD_Y"]=--[[float]] function(--[[Entity (int)]] entity)return native_invoker.unified_float(entity, 0x866A4A5FAE349510, "i")end, - -- Returns the heading of the entity in degrees. Also know as the "Yaw" of an entity. - ["GET_ENTITY_HEADING"]=--[[float]] function(--[[Entity (int)]] entity)return native_invoker.unified_float(entity, 0xE83D4F9BA2A38914, "i")end, - -- Gets the heading of the entity physics in degrees, which tends to be more accurate than just "GET_ENTITY_HEADING". This can be clearly seen while, for example, ragdolling a ped/player. - -- - -- NOTE: The name and description of this native are based on independent research. If you find this native to be more suitable under a different name and/or described differently, please feel free to do so. - ["GET_ENTITY_HEADING_FROM_EULERS"]=--[[float]] function(--[[Entity (int)]] entity)return native_invoker.unified_float(entity, 0x846BF6291198A71E, "i")end, - -- Returns an integer value of entity's current health. - -- - -- Example of range for ped: - -- - Player [0 to 200] - -- - Ped [100 to 200] - -- - Vehicle [0 to 1000] - -- - Object [0 to 1000] - -- - -- Health is actually a float value but this native casts it to int. - -- In order to get the actual value, do: - -- float health = *(float *)(entityAddress + 0x280); - ["GET_ENTITY_HEALTH"]=--[[int]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0xEEF059FAD016D209, "i")end, - -- Return an integer value of entity's maximum health. - -- - -- Example: - -- - Player = 200 - -- - Ped = 150 - ["GET_ENTITY_MAX_HEALTH"]=--[[int]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0x15D757606D170C3C, "i")end, - -- For instance: ENTITY::SET_ENTITY_MAX_HEALTH(PLAYER::PLAYER_PED_ID(), 200); // director_mode.c4: 67849 - ["SET_ENTITY_MAX_HEALTH"]=--[[void]] function(--[[Entity (int)]] entity,--[[int]] value)return native_invoker.unified_void(entity, value, 0x166E7CF68597D8B5, "ii")end, - ["GET_ENTITY_HEIGHT"]=--[[float]] function(--[[Entity (int)]] entity,--[[float]] X,--[[float]] Y,--[[float]] Z,--[[BOOL (bool)]] atTop,--[[BOOL (bool)]] inWorldCoords)return native_invoker.unified_float(entity, X, Y, Z, atTop, inWorldCoords, 0x5A504562485944DD, "ifffbb")end, - -- Return height (z-dimension) above ground. - -- Example: The pilot in a titan plane is 1.844176 above ground. - -- - -- How can i convert it to meters? - -- Everything seems to be in meters, probably this too. - ["GET_ENTITY_HEIGHT_ABOVE_GROUND"]=--[[float]] function(--[[Entity (int)]] entity)return native_invoker.unified_float(entity, 0x1DD55701034110E5, "i")end, - ["GET_ENTITY_MATRIX"]=--[[void]] function(--[[Entity (int)]] entity,--[[Vector3* (pointer)]] forwardVector,--[[Vector3* (pointer)]] rightVector,--[[Vector3* (pointer)]] upVector,--[[Vector3* (pointer)]] position)return native_invoker.unified_void(entity, forwardVector, rightVector, upVector, position, 0xECB2FC7235A7D137, "ipppp")end, - -- Returns the model hash from the entity - ["GET_ENTITY_MODEL"]=--[[Hash (int)]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0x9F47B058362C84B5, "i")end, - -- Converts world coords (posX - Z) to coords relative to the entity - -- - -- Example: - -- posX is given as 50 - -- entity's x coord is 40 - -- the returned x coord will then be 10 or -10, not sure haven't used this in a while (think it is 10 though). - ["GET_OFFSET_FROM_ENTITY_GIVEN_WORLD_COORDS"]=--[[Vector3 (vector3)]] function(--[[Entity (int)]] entity,--[[float]] posX,--[[float]] posY,--[[float]] posZ)return native_invoker.unified_vector3(entity, posX, posY, posZ, 0x2274BC1C4885E333, "ifff")end, - -- Offset values are relative to the entity. - -- - -- x = left/right - -- y = forward/backward - -- z = up/down - ["GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS"]=--[[Vector3 (vector3)]] function(--[[Entity (int)]] entity,--[[float]] offsetX,--[[float]] offsetY,--[[float]] offsetZ)return native_invoker.unified_vector3(entity, offsetX, offsetY, offsetZ, 0x1899F328B0E12848, "ifff")end, - ["GET_ENTITY_PITCH"]=--[[float]] function(--[[Entity (int)]] entity)return native_invoker.unified_float(entity, 0xD45DC2893621E1FE, "i")end, - -- w is the correct parameter name! - ["GET_ENTITY_QUATERNION"]=--[[void]] function(--[[Entity (int)]] entity,--[[float* (pointer)]] x,--[[float* (pointer)]] y,--[[float* (pointer)]] z,--[[float* (pointer)]] w)return native_invoker.unified_void(entity, x, y, z, w, 0x7B3703D2D32DFA18, "ipppp")end, - -- Displays the current ROLL axis of the entity [-180.0000/180.0000+] - -- (Sideways Roll) such as a vehicle tipped on its side - ["GET_ENTITY_ROLL"]=--[[float]] function(--[[Entity (int)]] entity)return native_invoker.unified_float(entity, 0x831E0242595560DF, "i")end, - -- rotationOrder is the order yaw, pitch and roll is applied. Usually 2. Returns a vector where the Z coordinate is the yaw. - -- - -- rotationOrder refers to the order yaw pitch roll is applied; value ranges from 0 to 5 and is usually *2* in scripts. - -- What you use for rotationOrder when getting must be the same as rotationOrder when setting the rotation. - -- - -- What it returns is the yaw on the z part of the vector, which makes sense considering R* considers z as vertical. Here's a picture for those of you who don't understand pitch, yaw, and roll: www.allstar.fiu.edu/aero/images/pic5-1.gif - -- - -- Rotation Orders: - -- 0: ZYX - Rotate around the z-axis, then the y-axis and finally the x-axis. - -- 1: YZX - Rotate around the y-axis, then the z-axis and finally the x-axis. - -- 2: ZXY - Rotate around the z-axis, then the x-axis and finally the y-axis. - -- 3: XZY - Rotate around the x-axis, then the z-axis and finally the y-axis. - -- 4: YXZ - Rotate around the y-axis, then the x-axis and finally the z-axis. - -- 5: XYZ - Rotate around the x-axis, then the y-axis and finally the z-axis. - ["GET_ENTITY_ROTATION"]=--[[Vector3 (vector3)]] function(--[[Entity (int)]] entity,--[[int]] rotationOrder)return native_invoker.unified_vector3(entity, rotationOrder, 0xAFBD61CC738D9EB9, "ii")end, - ["GET_ENTITY_ROTATION_VELOCITY"]=--[[Vector3 (vector3)]] function(--[[Entity (int)]] entity)return native_invoker.unified_vector3(entity, 0x213B91045D09B983, "i")end, - -- Returns the name of the script that owns/created the entity or nullptr. Second parameter is unused, can just be a nullptr. - ["GET_ENTITY_SCRIPT"]=--[[string]] function(--[[Entity (int)]] entity,--[[ScrHandle* (pointer)]] script)return native_invoker.unified_string(entity, script, 0xA6E9C38DB51D7748, "ip")end, - -- result is in meters per second - -- - -- ------------------------------------------------------------ - -- So would the conversion to mph and km/h, be along the lines of this. - -- - -- float speed = GET_ENTITY_SPEED(veh); - -- float kmh = (speed * 3.6); - -- float mph = (speed * 2.236936); - -- ------------------------------------------------------------ - ["GET_ENTITY_SPEED"]=--[[float]] function(--[[Entity (int)]] entity)return native_invoker.unified_float(entity, 0xD5037BA82E12416F, "i")end, - -- Relative can be used for getting speed relative to the frame of the vehicle, to determine for example, if you are going in reverse (-y speed) or not (+y speed). - ["GET_ENTITY_SPEED_VECTOR"]=--[[Vector3 (vector3)]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] relative)return native_invoker.unified_vector3(entity, relative, 0x9A8D700A51CB7B0D, "ib")end, - ["GET_ENTITY_UPRIGHT_VALUE"]=--[[float]] function(--[[Entity (int)]] entity)return native_invoker.unified_float(entity, 0x95EED5A694951F9F, "i")end, - ["GET_ENTITY_VELOCITY"]=--[[Vector3 (vector3)]] function(--[[Entity (int)]] entity)return native_invoker.unified_vector3(entity, 0x4805D2B1D8CF94A9, "i")end, - -- Simply returns whatever is passed to it (Regardless of whether the handle is valid or not). - ["GET_OBJECT_INDEX_FROM_ENTITY_INDEX"]=--[[Object (int)]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0xD7E3B9735C0F89D6, "i")end, - -- Simply returns whatever is passed to it (Regardless of whether the handle is valid or not). - ["GET_PED_INDEX_FROM_ENTITY_INDEX"]=--[[Ped (int)]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0x04A2A40C73395041, "i")end, - -- Simply returns whatever is passed to it (Regardless of whether the handle is valid or not). - ["GET_VEHICLE_INDEX_FROM_ENTITY_INDEX"]=--[[Vehicle (int)]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0x4B53F92932ADFAC0, "i")end, - -- Returns the coordinates of an entity-bone. - ["GET_WORLD_POSITION_OF_ENTITY_BONE"]=--[[Vector3 (vector3)]] function(--[[Entity (int)]] entity,--[[int]] boneIndex)return native_invoker.unified_vector3(entity, boneIndex, 0x44A8FCB8ED227738, "ii")end, - ["GET_NEAREST_PLAYER_TO_ENTITY"]=--[[Player (int)]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0x7196842CB375CDB3, "i")end, - ["GET_NEAREST_PLAYER_TO_ENTITY_ON_TEAM"]=--[[Player (int)]] function(--[[Entity (int)]] entity,--[[int]] team)return native_invoker.unified_int(entity, team, 0x4DC9A62F844D9337, "ii")end, - ["GET_NEAREST_PARTICIPANT_TO_ENTITY"]=--[[int]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0xFFBD7052D65BE0FF, "i")end, - -- Returns: - -- 0 = no entity - -- 1 = ped - -- 2 = vehicle - -- 3 = object - ["GET_ENTITY_TYPE"]=--[[int]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0x8ACD366038D14505, "i")end, - -- A population type, from the following enum: https://alloc8or.re/gta5/doc/enums/ePopulationType.txt - ["GET_ENTITY_POPULATION_TYPE"]=--[[int]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0xF6F5161F4534EDFF, "i")end, - ["IS_AN_ENTITY"]=--[[BOOL (bool)]] function(--[[ScrHandle (int)]] handle)return native_invoker.unified_bool(handle, 0x731EC8A916BD11A1, "i")end, - ["IS_ENTITY_A_PED"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x524AC5ECEA15343E, "i")end, - ["IS_ENTITY_A_MISSION_ENTITY"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x0A7B270912999B3C, "i")end, - ["IS_ENTITY_A_VEHICLE"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x6AC7003FA6E5575E, "i")end, - ["IS_ENTITY_AN_OBJECT"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x8D68C8FD0FACA94E, "i")end, - -- Checks if entity is within x/y/zSize distance of x/y/z. - -- - -- Last three are unknown ints, almost always p7 = 0, p8 = 1, p9 = 0 - ["IS_ENTITY_AT_COORD"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[float]] xPos,--[[float]] yPos,--[[float]] zPos,--[[float]] xSize,--[[float]] ySize,--[[float]] zSize,--[[BOOL (bool)]] p7,--[[BOOL (bool)]] p8,--[[int]] p9)return native_invoker.unified_bool(entity, xPos, yPos, zPos, xSize, ySize, zSize, p7, p8, p9, 0x20B60995556D004F, "iffffffbbi")end, - -- Checks if entity1 is within the box defined by x/y/zSize of entity2. - -- - -- Last three parameters are almost alwasy p5 = 0, p6 = 1, p7 = 0 - ["IS_ENTITY_AT_ENTITY"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity1,--[[Entity (int)]] entity2,--[[float]] xSize,--[[float]] ySize,--[[float]] zSize,--[[BOOL (bool)]] p5,--[[BOOL (bool)]] p6,--[[int]] p7)return native_invoker.unified_bool(entity1, entity2, xSize, ySize, zSize, p5, p6, p7, 0x751B70C3D034E187, "iifffbbi")end, - -- Whether the entity is attached to any other entity. - ["IS_ENTITY_ATTACHED"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0xB346476EF1A64897, "i")end, - ["IS_ENTITY_ATTACHED_TO_ANY_OBJECT"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0xCF511840CEEDE0CC, "i")end, - ["IS_ENTITY_ATTACHED_TO_ANY_PED"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0xB1632E9A5F988D11, "i")end, - ["IS_ENTITY_ATTACHED_TO_ANY_VEHICLE"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x26AA915AD89BFB4B, "i")end, - ["IS_ENTITY_ATTACHED_TO_ENTITY"]=--[[BOOL (bool)]] function(--[[Entity (int)]] from,--[[Entity (int)]] to)return native_invoker.unified_bool(from, to, 0xEFBE71898A993728, "ii")end, - ["IS_ENTITY_DEAD"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] p1)return native_invoker.unified_bool(entity, p1, 0x5F9532F3B5CC2551, "ib")end, - ["IS_ENTITY_IN_AIR"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x886E37EC497200B6, "i")end, - -- `p8` is a debug flag invoking functions in the same path as ``DRAW_MARKER`` - -- `p10` is some entity flag check, also used in `IS_ENTITY_AT_ENTITY`, `IS_ENTITY_IN_AREA`, and `IS_ENTITY_AT_COORD`. - -- See IS_POINT_IN_ANGLED_AREA for the definition of an angled area. - ["IS_ENTITY_IN_ANGLED_AREA"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] width,--[[BOOL (bool)]] debug,--[[BOOL (bool)]] includeZ,--[[Any (int)]] p10)return native_invoker.unified_bool(entity, x1, y1, z1, x2, y2, z2, width, debug, includeZ, p10, 0x51210CED3DA1C78A, "ifffffffbbi")end, - ["IS_ENTITY_IN_AREA"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[BOOL (bool)]] p7,--[[BOOL (bool)]] p8,--[[Any (int)]] p9)return native_invoker.unified_bool(entity, x1, y1, z1, x2, y2, z2, p7, p8, p9, 0x54736AA40E271165, "iffffffbbi")end, - -- Full list of zones by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/zones.json - ["IS_ENTITY_IN_ZONE"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[string]] zone)return native_invoker.unified_bool(entity, zone, 0xB6463CF6AF527071, "is")end, - ["IS_ENTITY_IN_WATER"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0xCFB0A0D8EDD145A3, "i")end, - -- Get how much of the entity is submerged. 1.0f is whole entity. - ["GET_ENTITY_SUBMERGED_LEVEL"]=--[[float]] function(--[[Entity (int)]] entity)return native_invoker.unified_float(entity, 0xE81AFC1BC4CC41CE, "i")end, - ["SET_ENTITY_REQUIRES_MORE_EXPENSIVE_RIVER_CHECK"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0x694E00132F2823ED, "ib")end, - -- Returns true if the entity is in between the minimum and maximum values for the 2d screen coords. - -- This means that it will return true even if the entity is behind a wall for example, as long as you're looking at their location. - -- Chipping - ["IS_ENTITY_ON_SCREEN"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0xE659E47AF827484B, "i")end, - -- See also PED::IS_SCRIPTED_SCENARIO_PED_USING_CONDITIONAL_ANIM 0x6EC47A344923E1ED 0x3C30B447 - -- - -- Taken from ENTITY::IS_ENTITY_PLAYING_ANIM(PLAYER::PLAYER_PED_ID(), "creatures@shark@move", "attack_player", 3) - -- - -- p4 is always 3 in the scripts. - -- - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - ["IS_ENTITY_PLAYING_ANIM"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[string]] animDict,--[[string]] animName,--[[int]] taskFlag)return native_invoker.unified_bool(entity, animDict, animName, taskFlag, 0x1F0B79228E461EC9, "issi")end, - -- a static ped will not react to natives like "APPLY_FORCE_TO_ENTITY" or "SET_ENTITY_VELOCITY" and oftentimes will not react to task-natives like "TASK::TASK_COMBAT_PED". The only way I know of to make one of these peds react is to ragdoll them (or sometimes to use CLEAR_PED_TASKS_IMMEDIATELY(). Static peds include almost all far-away peds, beach-combers, peds in certain scenarios, peds crossing a crosswalk, peds walking to get back into their cars, and others. If anyone knows how to make a ped non-static without ragdolling them, please edit this with the solution. - -- - -- how can I make an entity static??? - ["IS_ENTITY_STATIC"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x1218E6886D3D8327, "i")end, - ["IS_ENTITY_TOUCHING_ENTITY"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[Entity (int)]] targetEntity)return native_invoker.unified_bool(entity, targetEntity, 0x17FFC1B2BA35A494, "ii")end, - ["IS_ENTITY_TOUCHING_MODEL"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[Hash (int)]] modelHash)return native_invoker.unified_bool(entity, modelHash, 0x0F42323798A58C8C, "ii")end, - ["IS_ENTITY_UPRIGHT"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[float]] angle)return native_invoker.unified_bool(entity, angle, 0x5333F526F6AB19AA, "if")end, - ["IS_ENTITY_UPSIDEDOWN"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x1DBD58820FA61D71, "i")end, - ["IS_ENTITY_VISIBLE"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x47D6F43D77935C75, "i")end, - ["IS_ENTITY_VISIBLE_TO_SCRIPT"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0xD796CB5BA8F20E32, "i")end, - ["IS_ENTITY_OCCLUDED"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0xE31C2C72B8692B64, "i")end, - ["WOULD_ENTITY_BE_OCCLUDED"]=--[[BOOL (bool)]] function(--[[Hash (int)]] entityModelHash,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] p4)return native_invoker.unified_bool(entityModelHash, x, y, z, p4, 0xEE5D2A122E09EC42, "ifffb")end, - ["IS_ENTITY_WAITING_FOR_WORLD_COLLISION"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0xD05BFF0C0A12C68F, "i")end, - -- Applies a force to the specified entity. - -- - -- **List of force types (p1)**: - -- public enum ForceType - -- { - -- MinForce = 0, - -- MaxForceRot = 1, - -- MinForce2 = 2, - -- MaxForceRot2 = 3, - -- ForceNoRot = 4, - -- ForceRotPlusForce = 5 - -- } - -- Research/documentation on the gtaforums can be found here https://gtaforums.com/topic/885669-precisely-define-object-physics/) and here https://gtaforums.com/topic/887362-apply-forces-and-momentums-to-entityobject/. - -- - -- p6/relative - makes the xyz force not relative to world coords, but to something else - -- p7/highForce - setting false will make the force really low - ["APPLY_FORCE_TO_ENTITY_CENTER_OF_MASS"]=--[[void]] function(--[[Entity (int)]] entity,--[[int]] forceType,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] p5,--[[BOOL (bool)]] isDirectionRel,--[[BOOL (bool)]] isForceRel,--[[BOOL (bool)]] p8)return native_invoker.unified_void(entity, forceType, x, y, z, p5, isDirectionRel, isForceRel, p8, 0x18FF00FC7EFF559E, "iifffbbbb")end, - -- Documented here: - -- gtaforums.com/topic/885669-precisely-define-object-physics/ - -- gtaforums.com/topic/887362-apply-forces-and-momentums-to-entityobject/ - -- - -- forceFlags: - -- First bit (lowest): Strong force flag, factor 100 - -- Second bit: Unkown flag - -- Third bit: Momentum flag=1 (vector (x,y,z) is a momentum, more research needed) - -- If higher bits are unequal 0 the function doesn't applay any forces at all. - -- (As integer possible values are 0-7) - -- - -- 0: weak force - -- 1: strong force - -- 2: same as 0 (2nd bit?) - -- 3: same as 1 - -- 4: weak momentum - -- 5: strong momentum - -- 6: same as 4 - -- 7: same as 5 - -- - -- isLocal: vector defined in local (body-fixed) coordinate frame - -- isMassRel: if true the force gets multiplied with the objects mass (this is why it was known as highForce) and different objects will have the same acceleration. - -- - -- p8 !!! Whenever I set this !=0, my script stopped. - ["APPLY_FORCE_TO_ENTITY"]=--[[void]] function(--[[Entity (int)]] entity,--[[int]] forceFlags,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] offX,--[[float]] offY,--[[float]] offZ,--[[int]] boneIndex,--[[BOOL (bool)]] isDirectionRel,--[[BOOL (bool)]] ignoreUpVec,--[[BOOL (bool)]] isForceRel,--[[BOOL (bool)]] p12,--[[BOOL (bool)]] p13)return native_invoker.unified_void(entity, forceFlags, x, y, z, offX, offY, offZ, boneIndex, isDirectionRel, ignoreUpVec, isForceRel, p12, p13, 0xC5F68BE9613E2D18, "iiffffffibbbbb")end, - -- Attaches entity1 to bone (boneIndex) of entity2. - -- - -- boneIndex - this is different to boneID, use GET_PED_BONE_INDEX to get the index from the ID. use the index for attaching to specific bones. entity1 will be attached to entity2's centre if bone index given doesn't correspond to bone indexes for that entity type. - -- - -- useSoftPinning - if set to false attached entity will not detach when fixed - -- collision - controls collision between the two entities (FALSE disables collision). - -- isPed - pitch doesnt work when false and roll will only work on negative numbers (only peds) - -- vertexIndex - position of vertex - -- fixedRot - if false it ignores entity vector - -- - ["ATTACH_ENTITY_TO_ENTITY"]=--[[void]] function(--[[Entity (int)]] entity1,--[[Entity (int)]] entity2,--[[int]] boneIndex,--[[float]] xPos,--[[float]] yPos,--[[float]] zPos,--[[float]] xRot,--[[float]] yRot,--[[float]] zRot,--[[BOOL (bool)]] p9,--[[BOOL (bool)]] useSoftPinning,--[[BOOL (bool)]] collision,--[[BOOL (bool)]] isPed,--[[int]] vertexIndex,--[[BOOL (bool)]] fixedRot,--[[Any (int)]] p15)return native_invoker.unified_void(entity1, entity2, boneIndex, xPos, yPos, zPos, xRot, yRot, zRot, p9, useSoftPinning, collision, isPed, vertexIndex, fixedRot, p15, 0x6B9BBD38AB0796DF, "iiiffffffbbbbibi")end, - ["ATTACH_ENTITY_BONE_TO_ENTITY_BONE"]=--[[void]] function(--[[Entity (int)]] entity1,--[[Entity (int)]] entity2,--[[int]] boneIndex1,--[[int]] boneIndex2,--[[BOOL (bool)]] p4,--[[BOOL (bool)]] p5)return native_invoker.unified_void(entity1, entity2, boneIndex1, boneIndex2, p4, p5, 0x5C48B75732C8456C, "iiiibb")end, - ["ATTACH_ENTITY_BONE_TO_ENTITY_BONE_Y_FORWARD"]=--[[void]] function(--[[Entity (int)]] entity1,--[[Entity (int)]] entity2,--[[int]] boneIndex1,--[[int]] boneIndex2,--[[BOOL (bool)]] p4,--[[BOOL (bool)]] p5)return native_invoker.unified_void(entity1, entity2, boneIndex1, boneIndex2, p4, p5, 0xFD1695C5D3B05439, "iiiibb")end, - -- breakForce is the amount of force required to break the bond. - -- p14 - is always 1 in scripts - -- p15 - is 1 or 0 in scripts - unknoun what it does - -- p16 - controls collision between the two entities (FALSE disables collision). - -- p17 - do not teleport entity to be attached to the position of the bone Index of the target entity (if 1, entity will not be teleported to target bone) - -- p18 - is always 2 in scripts. - -- - -- - ["ATTACH_ENTITY_TO_ENTITY_PHYSICALLY"]=--[[void]] function(--[[Entity (int)]] entity1,--[[Entity (int)]] entity2,--[[int]] boneIndex1,--[[int]] boneIndex2,--[[float]] xPos1,--[[float]] yPos1,--[[float]] zPos1,--[[float]] xPos2,--[[float]] yPos2,--[[float]] zPos2,--[[float]] xRot,--[[float]] yRot,--[[float]] zRot,--[[float]] breakForce,--[[BOOL (bool)]] fixedRot,--[[BOOL (bool)]] p15,--[[BOOL (bool)]] collision,--[[BOOL (bool)]] p17,--[[int]] p18)return native_invoker.unified_void(entity1, entity2, boneIndex1, boneIndex2, xPos1, yPos1, zPos1, xPos2, yPos2, zPos2, xRot, yRot, zRot, breakForce, fixedRot, p15, collision, p17, p18, 0xC3675780C92F90F9, "iiiiffffffffffbbbbi")end, - ["ATTACH_ENTITY_TO_ENTITY_PHYSICALLY_OVERRIDE_INVERSE_MASS"]=--[[void]] function(--[[Entity (int)]] firstEntityIndex,--[[Entity (int)]] secondEntityIndex,--[[int]] firstEntityBoneIndex,--[[int]] secondEntityBoneIndex,--[[float]] secondEntityOffsetX,--[[float]] secondEntityOffsetY,--[[float]] secondEntityOffsetZ,--[[float]] firstEntityOffsetX,--[[float]] firstEntityOffsetY,--[[float]] firstEntityOffsetZ,--[[float]] vecRotationX,--[[float]] vecRotationY,--[[float]] vecRotationZ,--[[float]] physicalStrength,--[[BOOL (bool)]] constrainRotation,--[[BOOL (bool)]] doInitialWarp,--[[BOOL (bool)]] collideWithEntity,--[[BOOL (bool)]] addInitialSeperation,--[[int]] rotOrder,--[[float]] invMassScaleA,--[[float]] invMassScaleB)return native_invoker.unified_void(firstEntityIndex, secondEntityIndex, firstEntityBoneIndex, secondEntityBoneIndex, secondEntityOffsetX, secondEntityOffsetY, secondEntityOffsetZ, firstEntityOffsetX, firstEntityOffsetY, firstEntityOffsetZ, vecRotationX, vecRotationY, vecRotationZ, physicalStrength, constrainRotation, doInitialWarp, collideWithEntity, addInitialSeperation, rotOrder, invMassScaleA, invMassScaleB, 0x168A09D1B25B0BA4, "iiiiffffffffffbbbbiff")end, - -- Called to update entity attachments. - ["PROCESS_ENTITY_ATTACHMENTS"]=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0xF4080490ADC51C6F, "i")end, - -- Returns the index of the bone. If the bone was not found, -1 will be returned. - -- - -- list: - -- https://pastebin.com/D7JMnX1g - -- - -- BoneNames: - -- chassis, - -- windscreen, - -- seat_pside_r, - -- seat_dside_r, - -- bodyshell, - -- suspension_lm, - -- suspension_lr, - -- platelight, - -- attach_female, - -- attach_male, - -- bonnet, - -- boot, - -- chassis_dummy, //Center of the dummy - -- chassis_Control, //Not found yet - -- door_dside_f, //Door left, front - -- door_dside_r, //Door left, back - -- door_pside_f, //Door right, front - -- door_pside_r, //Door right, back - -- Gun_GripR, - -- windscreen_f, - -- platelight, //Position where the light above the numberplate is located - -- VFX_Emitter, - -- window_lf, //Window left, front - -- window_lr, //Window left, back - -- window_rf, //Window right, front - -- window_rr, //Window right, back - -- engine, //Position of the engine - -- gun_ammo, - -- ROPE_ATTATCH, //Not misspelled. In script "finale_heist2b.c4". - -- wheel_lf, //Wheel left, front - -- wheel_lr, //Wheel left, back - -- wheel_rf, //Wheel right, front - -- wheel_rr, //Wheel right, back - -- exhaust, //Exhaust. shows only the position of the stock-exhaust - -- overheat, //A position on the engine(not exactly sure, how to name it) - -- misc_e, //Not a car-bone. - -- seat_dside_f, //Driver-seat - -- seat_pside_f, //Seat next to driver - -- Gun_Nuzzle, - -- seat_r - -- - -- I doubt that the function is case-sensitive, since I found a "Chassis" and a "chassis". - Just tested: Definitely not case-sensitive. - -- - -- - ["GET_ENTITY_BONE_INDEX_BY_NAME"]=--[[int]] function(--[[Entity (int)]] entity,--[[string]] boneName)return native_invoker.unified_int(entity, boneName, 0xFB71170B7E76ACBA, "is")end, - ["CLEAR_ENTITY_LAST_DAMAGE_ENTITY"]=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0xA72CD9CA74A5ECBA, "i")end, - -- Deletes the specified entity, then sets the handle pointed to by the pointer to NULL. - ["DELETE_ENTITY"]=--[[void]] function(--[[Entity* (pointer)]] entity)return native_invoker.unified_void(entity, 0xAE3CBE5BF394C9C9, "p")end, - -- If `collision` is set to true, both entities won't collide with the other until the distance between them is above 4 meters. - -- Set `dynamic` to true to keep velocity after dettaching - ["DETACH_ENTITY"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] dynamic,--[[BOOL (bool)]] collision)return native_invoker.unified_void(entity, dynamic, collision, 0x961AC54BF0613F5D, "ibb")end, - -- Freezes or unfreezes an entity preventing its coordinates to change by the player if set to `true`. You can still change the entity position using SET_ENTITY_COORDS. - ["FREEZE_ENTITY_POSITION"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0x428CA6DBD1094446, "ib")end, - -- True means it can be deleted by the engine when switching lobbies/missions/etc, false means the script is expected to clean it up. - -- - -- "Allow Freeze If No Collision" - ["SET_ENTITY_SHOULD_FREEZE_WAITING_ON_COLLISION"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0x3910051CCECDB00C, "ib")end, - -- delta and bitset are guessed fields. They are based on the fact that most of the calls have 0 or nil field types passed in. - -- - -- The only time bitset has a value is 0x4000 and the only time delta has a value is during stealth with usually <1.0f values. - -- - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - ["PLAY_ENTITY_ANIM"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[string]] animName,--[[string]] animDict,--[[float]] p3,--[[BOOL (bool)]] loop,--[[BOOL (bool)]] stayInAnim,--[[BOOL (bool)]] p6,--[[float]] delta,--[[Any (int)]] bitset)return native_invoker.unified_bool(entity, animName, animDict, p3, loop, stayInAnim, p6, delta, bitset, 0x7FB218262B810701, "issfbbbfi")end, - -- p4 and p7 are usually 1000.0f. - -- - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - ["PLAY_SYNCHRONIZED_ENTITY_ANIM"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[int]] syncedScene,--[[string]] animation,--[[string]] propName,--[[float]] p4,--[[float]] p5,--[[Any (int)]] p6,--[[float]] p7)return native_invoker.unified_bool(entity, syncedScene, animation, propName, p4, p5, p6, p7, 0xC77720A12FE14A86, "iissffif")end, - -- p6,p7 probably animname and animdict - -- - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - ["PLAY_SYNCHRONIZED_MAP_ENTITY_ANIM"]=--[[BOOL (bool)]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[Any (int)]] y2,--[[float]] z2,--[[string]] p6,--[[string]] p7,--[[float]] p8,--[[float]] p9,--[[Any (int)]] p10,--[[float]] p11)return native_invoker.unified_bool(x1, y1, z1, x2, y2, z2, p6, p7, p8, p9, p10, p11, 0xB9C54555ED30FBC4, "ffffifssffif")end, - ["STOP_SYNCHRONIZED_MAP_ENTITY_ANIM"]=--[[BOOL (bool)]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[Any (int)]] y2,--[[float]] z2)return native_invoker.unified_bool(x1, y1, z1, x2, y2, z2, 0x11E79CAB7183B6F5, "ffffif")end, - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - -- - -- RAGEPluginHook list: docs.ragepluginhook.net/html/62951c37-a440-478c-b389-c471230ddfc5.htm - ["STOP_ENTITY_ANIM"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[string]] animation,--[[string]] animGroup,--[[float]] p3)return native_invoker.unified_bool(entity, animation, animGroup, p3, 0x28004F88151E03E0, "issf")end, - -- p1 sync task id? - ["STOP_SYNCHRONIZED_ENTITY_ANIM"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[float]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_bool(entity, p1, p2, 0x43D3807C077261E3, "ifb")end, - -- if (ENTITY::HAS_ANIM_EVENT_FIRED(PLAYER::PLAYER_PED_ID(), MISC::GET_HASH_KEY("CreateObject"))) - ["HAS_ANIM_EVENT_FIRED"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[Hash (int)]] actionHash)return native_invoker.unified_bool(entity, actionHash, 0xEAF4CD9EA3E7E922, "ii")end, - -- In the script "player_scene_t_bbfight.c4": - -- "if (ENTITY::FIND_ANIM_EVENT_PHASE(&l_16E, &l_19F[v_4/*16*/], v_9, &v_A, &v_B))" - -- -- &l_16E (p0) is requested as an anim dictionary earlier in the script. - -- -- &l_19F[v_4/*16*/] (p1) is used in other natives in the script as the "animation" param. - -- -- v_9 (p2) is instantiated as "victim_fall"; I'm guessing that's another anim - -- --v_A and v_B (p3 & p4) are both set as -1.0, but v_A is used immediately after this native for: - -- "if (v_A < ENTITY::GET_ENTITY_ANIM_CURRENT_TIME(...))" - -- Both v_A and v_B are seemingly used to contain both Vector3's and floats, so I can't say what either really is other than that they are both output parameters. p4 looks more like a *Vector3 though - -- - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - ["FIND_ANIM_EVENT_PHASE"]=--[[BOOL (bool)]] function(--[[string]] animDictionary,--[[string]] animName,--[[string]] p2,--[[Any* (pointer)]] p3,--[[Any* (pointer)]] p4)return native_invoker.unified_bool(animDictionary, animName, p2, p3, p4, 0x07F1BE2BCCAA27A7, "ssspp")end, - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - ["SET_ENTITY_ANIM_CURRENT_TIME"]=--[[void]] function(--[[Entity (int)]] entity,--[[string]] animDictionary,--[[string]] animName,--[[float]] time)return native_invoker.unified_void(entity, animDictionary, animName, time, 0x4487C259F0F70977, "issf")end, - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - ["SET_ENTITY_ANIM_SPEED"]=--[[void]] function(--[[Entity (int)]] entity,--[[string]] animDictionary,--[[string]] animName,--[[float]] speedMultiplier)return native_invoker.unified_void(entity, animDictionary, animName, speedMultiplier, 0x28D1A16553C51776, "issf")end, - -- Makes the specified entity (ped, vehicle or object) persistent. Persistent entities will not automatically be removed by the engine. - -- - -- p1 has no effect when either its on or off - -- maybe a quick disassembly will tell us what it does - -- - -- p2 has no effect when either its on or off - -- maybe a quick disassembly will tell us what it does - ["SET_ENTITY_AS_MISSION_ENTITY"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(entity, p1, p2, 0xAD738C3085FE7E11, "ibb")end, - -- Marks the specified entity (ped, vehicle or object) as no longer needed if its population type is set to the mission type. - -- If the entity is ped, it will also clear their tasks immediately just like when CLEAR_PED_TASKS_IMMEDIATELY is called. - -- Entities marked as no longer needed, will be deleted as the engine sees fit. - -- Use this if you just want to just let the game delete the ped: - -- void MarkPedAsAmbientPed(Ped ped) { - -- auto addr = getScriptHandleBaseAddress(ped); - -- - -- if (!addr) { - -- return; - -- } - -- - -- //the game uses only lower 4 bits as entity population type - -- BYTE origValue = *(BYTE *)(addr + 0xDA); - -- *(BYTE *)(addr + 0xDA) = ((origValue & 0xF0) | ePopulationType::POPTYPE_RANDOM_AMBIENT); - -- } - ["SET_ENTITY_AS_NO_LONGER_NEEDED"]=--[[void]] function(--[[Entity* (pointer)]] entity)return native_invoker.unified_void(entity, 0xB736A491E64A32CF, "p")end, - -- This is an alias of SET_ENTITY_AS_NO_LONGER_NEEDED. - ["SET_PED_AS_NO_LONGER_NEEDED"]=--[[void]] function(--[[Ped* (pointer)]] ped)return native_invoker.unified_void(ped, 0x2595DD4236549CE3, "p")end, - -- This is an alias of SET_ENTITY_AS_NO_LONGER_NEEDED. - ["SET_VEHICLE_AS_NO_LONGER_NEEDED"]=--[[void]] function(--[[Vehicle* (pointer)]] vehicle)return native_invoker.unified_void(vehicle, 0x629BFA74418D6239, "p")end, - -- This is an alias of SET_ENTITY_AS_NO_LONGER_NEEDED. - ["SET_OBJECT_AS_NO_LONGER_NEEDED"]=--[[void]] function(--[[Object* (pointer)]] object)return native_invoker.unified_void(object, 0x3AE22DEB5BA5A3E6, "p")end, - ["SET_ENTITY_CAN_BE_DAMAGED"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0x1760FFA8AB074D66, "ib")end, - ["GET_ENTITY_CAN_BE_DAMAGED"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0xD95CC5D2AB15A09F, "i")end, - ["SET_ENTITY_CAN_BE_DAMAGED_BY_RELATIONSHIP_GROUP"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] bCanBeDamaged,--[[int]] relGroup)return native_invoker.unified_void(entity, bCanBeDamaged, relGroup, 0xE22D8FDE858B8119, "ibi")end, - ["SET_ENTITY_CAN_ONLY_BE_DAMAGED_BY_SCRIPT_PARTICIPANTS"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0x352E2B5CF420BF3B, "ib")end, - -- Sets whether the entity can be targeted without being in line-of-sight. - ["SET_ENTITY_CAN_BE_TARGETED_WITHOUT_LOS"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0xD3997889736FD899, "ib")end, - ["SET_ENTITY_COLLISION"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle,--[[BOOL (bool)]] keepPhysics)return native_invoker.unified_void(entity, toggle, keepPhysics, 0x1A9205C1B9EE827F, "ibb")end, - ["GET_ENTITY_COLLISION_DISABLED"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0xCCF1E97BEFDAE480, "i")end, - ["SET_ENTITY_COMPLETELY_DISABLE_COLLISION"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle,--[[BOOL (bool)]] keepPhysics)return native_invoker.unified_void(entity, toggle, keepPhysics, 0x9EBC85ED0FFFE51C, "ibb")end, - -- p7 is always 1 in the scripts. Set to 1, an area around the destination coords for the moved entity is cleared from other entities. - -- - -- Often ends with 1, 0, 0, 1); in the scripts. It works. - -- - -- Axis - Invert Axis Flags - ["SET_ENTITY_COORDS"]=--[[void]] function(--[[Entity (int)]] entity,--[[float]] xPos,--[[float]] yPos,--[[float]] zPos,--[[BOOL (bool)]] xAxis,--[[BOOL (bool)]] yAxis,--[[BOOL (bool)]] zAxis,--[[BOOL (bool)]] clearArea)return native_invoker.unified_void(entity, xPos, yPos, zPos, xAxis, yAxis, zAxis, clearArea, 0x06843DA7060A026B, "ifffbbbb")end, - ["SET_ENTITY_COORDS_WITHOUT_PLANTS_RESET"]=--[[void]] function(--[[Entity (int)]] entity,--[[float]] xPos,--[[float]] yPos,--[[float]] zPos,--[[BOOL (bool)]] alive,--[[BOOL (bool)]] deadFlag,--[[BOOL (bool)]] ragdollFlag,--[[BOOL (bool)]] clearArea)return native_invoker.unified_void(entity, xPos, yPos, zPos, alive, deadFlag, ragdollFlag, clearArea, 0x621873ECE1178967, "ifffbbbb")end, - -- Axis - Invert Axis Flags - ["SET_ENTITY_COORDS_NO_OFFSET"]=--[[void]] function(--[[Entity (int)]] entity,--[[float]] xPos,--[[float]] yPos,--[[float]] zPos,--[[BOOL (bool)]] xAxis,--[[BOOL (bool)]] yAxis,--[[BOOL (bool)]] zAxis)return native_invoker.unified_void(entity, xPos, yPos, zPos, xAxis, yAxis, zAxis, 0x239A3351AC1DA385, "ifffbbb")end, - ["SET_ENTITY_DYNAMIC"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0x1718DE8E3F2823CA, "ib")end, - -- Set the heading of an entity in degrees also known as "Yaw". - ["SET_ENTITY_HEADING"]=--[[void]] function(--[[Entity (int)]] entity,--[[float]] heading)return native_invoker.unified_void(entity, heading, 0x8E2530AA8ADA980E, "if")end, - -- health >= 0 - -- male ped ~= 100 - 200 - -- female ped ~= 0 - 100 - ["SET_ENTITY_HEALTH"]=--[[void]] function(--[[Entity (int)]] entity,--[[int]] health,--[[Entity (int)]] instigator,--[[Hash (int)]] weaponType)return native_invoker.unified_void(entity, health, instigator, weaponType, 0x6B76DC1F3AE6E6A3, "iiii")end, - -- Sets a ped or an object totally invincible. It doesn't take any kind of damage. Peds will not ragdoll on explosions and the tazer animation won't apply either. - -- - -- If you use this for a ped and you want Ragdoll to stay enabled, then do: - -- *(DWORD *)(pedAddress + 0x188) |= (1 << 9); - -- - -- Use this if you want to get the invincibility status: - -- bool IsPedInvincible(Ped ped) - -- { - -- auto addr = getScriptHandleBaseAddress(ped); - -- - -- if (addr) - -- { - -- DWORD flag = *(DWORD *)(addr + 0x188); - -- return ((flag & (1 << 8)) != 0) || ((flag & (1 << 9)) != 0); - -- } - -- - -- return false; - -- } - ["SET_ENTITY_INVINCIBLE"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0x3882114BDE571AD4, "ib")end, - ["SET_ENTITY_IS_TARGET_PRIORITY"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] p1,--[[float]] p2)return native_invoker.unified_void(entity, p1, p2, 0xEA02E132F5C68722, "ibf")end, - ["SET_ENTITY_LIGHTS"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0x7CFBA6A80BDF3874, "ib")end, - -- Loads collision grid for an entity spawned outside of a player's loaded area. This allows peds to execute tasks rather than sit dormant because of a lack of a physics grid. - -- Certainly not the main usage of this native but when set to true for a Vehicle, it will prevent the vehicle to explode if it is spawned far away from the player. - ["SET_ENTITY_LOAD_COLLISION_FLAG"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle,--[[Any (int)]] p2)return native_invoker.unified_void(entity, toggle, p2, 0x0DC7CABAB1E9B67E, "ibi")end, - ["HAS_COLLISION_LOADED_AROUND_ENTITY"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0xE9676F61BC0B3321, "i")end, - ["SET_ENTITY_MAX_SPEED"]=--[[void]] function(--[[Entity (int)]] entity,--[[float]] speed)return native_invoker.unified_void(entity, speed, 0x0E46A3FCBDE2A1B1, "if")end, - ["SET_ENTITY_ONLY_DAMAGED_BY_PLAYER"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0x79F020FF9EDC0748, "ib")end, - ["SET_ENTITY_ONLY_DAMAGED_BY_RELATIONSHIP_GROUP"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(entity, p1, p2, 0x7022BD828FA0B082, "ibi")end, - -- Enable / disable each type of damage. - -- - -- waterProof is damage related to water not drowning - -- -------------- - -- p7 is to to '1' in am_mp_property_ext/int: ENTITY::SET_ENTITY_PROOFS(uParam0->f_19, true, true, true, true, true, true, 1, true); - -- - ["SET_ENTITY_PROOFS"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] bulletProof,--[[BOOL (bool)]] fireProof,--[[BOOL (bool)]] explosionProof,--[[BOOL (bool)]] collisionProof,--[[BOOL (bool)]] meleeProof,--[[BOOL (bool)]] steamProof,--[[BOOL (bool)]] p7,--[[BOOL (bool)]] waterProof)return native_invoker.unified_void(entity, bulletProof, fireProof, explosionProof, collisionProof, meleeProof, steamProof, p7, waterProof, 0xFAEE099C6F890BB8, "ibbbbbbbb")end, - ["GET_ENTITY_PROOFS"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[BOOL* (pointer)]] bulletProof,--[[BOOL* (pointer)]] fireProof,--[[BOOL* (pointer)]] explosionProof,--[[BOOL* (pointer)]] collisionProof,--[[BOOL* (pointer)]] meleeProof,--[[BOOL* (pointer)]] steamProof,--[[BOOL* (pointer)]] p7,--[[BOOL* (pointer)]] drownProof)return native_invoker.unified_bool(entity, bulletProof, fireProof, explosionProof, collisionProof, meleeProof, steamProof, p7, drownProof, 0xBE8CD9BE829BBEBF, "ipppppppp")end, - -- w is the correct parameter name! - ["SET_ENTITY_QUATERNION"]=--[[void]] function(--[[Entity (int)]] entity,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] w)return native_invoker.unified_void(entity, x, y, z, w, 0x77B21BE7AC540F07, "iffff")end, - ["SET_ENTITY_RECORDS_COLLISIONS"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0x0A50A1EEDAD01E65, "ib")end, - -- rotationOrder refers to the order yaw pitch roll is applied - -- value ranges from 0 to 5. What you use for rotationOrder when setting must be the same as rotationOrder when getting the rotation. - -- Unsure what value corresponds to what rotation order, more testing will be needed for that. - -- For the most part R* uses 1 or 2 as the order. - -- p5 is usually set as true - -- - ["SET_ENTITY_ROTATION"]=--[[void]] function(--[[Entity (int)]] entity,--[[float]] pitch,--[[float]] roll,--[[float]] yaw,--[[int]] rotationOrder,--[[BOOL (bool)]] p5)return native_invoker.unified_void(entity, pitch, roll, yaw, rotationOrder, p5, 0x8524A8B0171D5E07, "ifffib")end, - -- p2 is always 0. - ["SET_ENTITY_VISIBLE"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle,--[[BOOL (bool)]] p2)return native_invoker.unified_void(entity, toggle, p2, 0xEA1C610A04DB6BBB, "ibb")end, - ["SET_ENTITY_WATER_REFLECTION_FLAG"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0xC34BC448DA29F5E9, "ib")end, - ["SET_ENTITY_MIRROR_REFLECTION_FLAG"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] p1)return native_invoker.unified_void(entity, p1, 0xE66377CDDADA4810, "ib")end, - -- Note that the third parameter(denoted as z) is "up and down" with positive numbers encouraging upwards movement. - ["SET_ENTITY_VELOCITY"]=--[[void]] function(--[[Entity (int)]] entity,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(entity, x, y, z, 0x1C99BB7B6E96D16F, "ifff")end, - ["SET_ENTITY_ANGULAR_VELOCITY"]=--[[void]] function(--[[Entity (int)]] entity,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(entity, x, y, z, 0x8339643499D1222E, "ifff")end, - ["SET_ENTITY_HAS_GRAVITY"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0x4A4722448F18EEF5, "ib")end, - -- LOD distance can be 0 to 0xFFFF (higher values will result in 0xFFFF) as it is actually stored as a 16-bit value (aka uint16_t). - ["SET_ENTITY_LOD_DIST"]=--[[void]] function(--[[Entity (int)]] entity,--[[int]] value)return native_invoker.unified_void(entity, value, 0x5927F96A78577363, "ii")end, - -- Returns the LOD distance of an entity. - ["GET_ENTITY_LOD_DIST"]=--[[int]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0x4159C2762B5791D6, "i")end, - -- skin - everything alpha except skin - -- Set entity alpha level. Ranging from 0 to 255 but chnages occur after every 20 percent (after every 51). - ["SET_ENTITY_ALPHA"]=--[[void]] function(--[[Entity (int)]] entity,--[[int]] alphaLevel,--[[BOOL (bool)]] skin)return native_invoker.unified_void(entity, alphaLevel, skin, 0x44A0870B7E92D7C0, "iib")end, - ["GET_ENTITY_ALPHA"]=--[[int]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0x5A47B3B5E63E94C6, "i")end, - ["RESET_ENTITY_ALPHA"]=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0x9B1E824FFBB7027A, "i")end, - -- Similar to RESET_ENTITY_ALPHA - ["RESET_PICKUP_ENTITY_GLOW"]=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0x490861B88F4FD846, "i")end, - ["SET_PICKUP_COLLIDES_WITH_PROJECTILES"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xCEA7C8E1B48FF68C, "ii")end, - -- Only called once in the scripts. - -- - -- Related to weapon objects. - -- - ["SET_ENTITY_SORT_BIAS"]=--[[void]] function(--[[Entity (int)]] entity,--[[float]] p1)return native_invoker.unified_void(entity, p1, 0x5C3B791D580E0BC2, "if")end, - ["SET_ENTITY_ALWAYS_PRERENDER"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0xACAD101E1FB66689, "ib")end, - ["SET_ENTITY_RENDER_SCORCHED"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0x730F5F8D3F0F2050, "ib")end, - -- Example here: www.gtaforums.com/topic/830463-help-with-turning-lights-green-and-causing-peds-to-crash-into-each-other/#entry1068211340 - -- - -- 0 = green - -- 1 = red - -- 2 = yellow - -- 3 = reset changes - -- changing lights may not change the behavior of vehicles - ["SET_ENTITY_TRAFFICLIGHT_OVERRIDE"]=--[[void]] function(--[[Entity (int)]] entity,--[[int]] state)return native_invoker.unified_void(entity, state, 0x57C5DB656185EAC4, "ii")end, - ["SET_ENTITY_IS_IN_VEHICLE"]=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0x78E8E3A640178255, "i")end, - -- Only works with objects! - ["CREATE_MODEL_SWAP"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[Hash (int)]] originalModel,--[[Hash (int)]] newModel,--[[BOOL (bool)]] p6)return native_invoker.unified_void(x, y, z, radius, originalModel, newModel, p6, 0x92C47782FDA8B2A3, "ffffiib")end, - ["REMOVE_MODEL_SWAP"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[Hash (int)]] originalModel,--[[Hash (int)]] newModel,--[[BOOL (bool)]] p6)return native_invoker.unified_void(x, y, z, radius, originalModel, newModel, p6, 0x033C0F9A64E229AE, "ffffiib")end, - -- p5 = sets as true in scripts - -- Same as the comment for CREATE_MODEL_SWAP unless for some reason p5 affects it this only works with objects as well. - -- - -- Network players do not see changes done with this. - ["CREATE_MODEL_HIDE"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[Hash (int)]] modelHash,--[[BOOL (bool)]] p5)return native_invoker.unified_void(x, y, z, radius, modelHash, p5, 0x8A97BCA30A0CE478, "ffffib")end, - ["CREATE_MODEL_HIDE_EXCLUDING_SCRIPT_OBJECTS"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[Hash (int)]] modelHash,--[[BOOL (bool)]] p5)return native_invoker.unified_void(x, y, z, radius, modelHash, p5, 0x3A52AE588830BF7F, "ffffib")end, - -- This native makes entities visible that are hidden by the native CREATE_MODEL_HIDE. - -- p5 should be false, true does nothing - ["REMOVE_MODEL_HIDE"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[Hash (int)]] modelHash,--[[BOOL (bool)]] p5)return native_invoker.unified_void(x, y, z, radius, modelHash, p5, 0xD9E3006FB3CBD765, "ffffib")end, - ["CREATE_FORCED_OBJECT"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[Any (int)]] p3,--[[Hash (int)]] modelHash,--[[BOOL (bool)]] p5)return native_invoker.unified_void(x, y, z, p3, modelHash, p5, 0x150E808B375A385A, "fffiib")end, - ["REMOVE_FORCED_OBJECT"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] p3,--[[Hash (int)]] modelHash)return native_invoker.unified_void(x, y, z, p3, modelHash, 0x61B6775E83C0DB6F, "ffffi")end, - -- Calling this function disables collision between two entities. - -- The importance of the order for entity1 and entity2 is unclear. - -- The third parameter, `thisFrame`, decides whether the collision is to be disabled until it is turned back on, or if it's just this frame. - ["SET_ENTITY_NO_COLLISION_ENTITY"]=--[[void]] function(--[[Entity (int)]] entity1,--[[Entity (int)]] entity2,--[[BOOL (bool)]] thisFrameOnly)return native_invoker.unified_void(entity1, entity2, thisFrameOnly, 0xA53ED5520C07654A, "iib")end, - ["SET_ENTITY_MOTION_BLUR"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0x295D82A8559F9150, "ib")end, - -- p1 always false. - ["SET_CAN_AUTO_VAULT_ON_ENTITY"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0xE12ABE5E3A389A6C, "ib")end, - -- p1 always false. - ["SET_CAN_CLIMB_ON_ENTITY"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0xA80AE305E0A3044F, "ib")end, - -- Only called within 1 script for x360. 'fm_mission_controller' and it used on an object. - -- - -- Ran after these 2 natives, - -- set_object_targettable(uParam0, 0); - -- set_entity_invincible(uParam0, 1); - ["SET_WAIT_FOR_COLLISIONS_BEFORE_PROBE"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0xDC6F8601FAF2E893, "ib")end, - ["SET_ENTITY_NOWEAPONDECALS"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] p1)return native_invoker.unified_void(entity, p1, 0x2C2E3DC128F44309, "ib")end, - ["SET_ENTITY_USE_MAX_DISTANCE_FOR_WATER_REFLECTION"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] p1)return native_invoker.unified_void(entity, p1, 0x1A092BB0C3808B96, "ib")end, - -- Gets the world rotation of the specified bone of the specified entity. - ["GET_ENTITY_BONE_ROTATION"]=--[[Vector3 (vector3)]] function(--[[Entity (int)]] entity,--[[int]] boneIndex)return native_invoker.unified_vector3(entity, boneIndex, 0xCE6294A232D03786, "ii")end, - -- Gets the world position of the specified bone of the specified entity. - ["GET_ENTITY_BONE_POSTION"]=--[[Vector3 (vector3)]] function(--[[Entity (int)]] entity,--[[int]] boneIndex)return native_invoker.unified_vector3(entity, boneIndex, 0x46F8696933A63C9B, "ii")end, - -- Gets the local rotation of the specified bone of the specified entity. - ["GET_ENTITY_BONE_OBJECT_ROTATION"]=--[[Vector3 (vector3)]] function(--[[Entity (int)]] entity,--[[int]] boneIndex)return native_invoker.unified_vector3(entity, boneIndex, 0xBD8D32550E5CEBFE, "ii")end, - ["GET_ENTITY_BONE_OBJECT_POSTION"]=--[[Vector3 (vector3)]] function(--[[Entity (int)]] entity,--[[int]] boneIndex)return native_invoker.unified_vector3(entity, boneIndex, 0xCF1247CC86961FD6, "ii")end, - ["GET_ENTITY_BONE_COUNT"]=--[[int]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0xB328DCC3A3AA401B, "i")end, - ["ENABLE_ENTITY_BULLET_COLLISION"]=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0x6CE177D014502E8A, "i")end, - ["SET_ENTITY_CAN_ONLY_BE_DAMAGED_BY_ENTITY"]=--[[void]] function(--[[Entity (int)]] entity1,--[[Entity (int)]] entity2)return native_invoker.unified_void(entity1, entity2, 0xB17BC6453F6CF5AC, "ii")end, - ["SET_ENTITY_CANT_CAUSE_COLLISION_DAMAGED_ENTITY"]=--[[void]] function(--[[Entity (int)]] entity1,--[[Entity (int)]] entity2)return native_invoker.unified_void(entity1, entity2, 0x68B562E124CC0AEF, "ii")end, - -- p1 is always set to 1 - ["SET_ALLOW_MIGRATE_TO_SPECTATOR"]=--[[void]] function(--[[Entity (int)]] entity,--[[Any (int)]] p1)return native_invoker.unified_void(entity, p1, 0x36F32DE87082343E, "ii")end, - -- Gets the handle of an entity with a specific model hash attached to another entity, such as an object attached to a ped. - -- This native does not appear to have anything to do with pickups as in scripts it is used with objects. - -- - -- Example from fm_mission_controller_2020.c: - -- - -- iVar8 = ENTITY::GET_ENTITY_OF_TYPE_ATTACHED_TO_ENTITY(bParam0->f_9, joaat("p_cs_clipboard")); - ["GET_ENTITY_OF_TYPE_ATTACHED_TO_ENTITY"]=--[[Entity (int)]] function(--[[Entity (int)]] entity,--[[Hash (int)]] modelHash)return native_invoker.unified_int(entity, modelHash, 0x1F922734E259BD26, "ii")end, - ["SET_PICK_UP_BY_CARGOBOB_DISABLED"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0xD7B80E7C3BEFC396, "ib")end, -} -EVENT={ - ["SET_DECISION_MAKER"]=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] name)return native_invoker.unified_void(ped, name, 0xB604A2942ADED0EE, "ii")end, - -- eventType: https://alloc8or.re/gta5/doc/enums/eEventType.txt - ["CLEAR_DECISION_MAKER_EVENT_RESPONSE"]=--[[void]] function(--[[Hash (int)]] name,--[[int]] eventType)return native_invoker.unified_void(name, eventType, 0x4FC9381A7AEE8968, "ii")end, - -- eventType: https://alloc8or.re/gta5/doc/enums/eEventType.txt - -- - -- This is limited to 4 blocked events at a time. - ["BLOCK_DECISION_MAKER_EVENT"]=--[[void]] function(--[[Hash (int)]] name,--[[int]] eventType)return native_invoker.unified_void(name, eventType, 0xE42FCDFD0E4196F7, "ii")end, - -- eventType: https://alloc8or.re/gta5/doc/enums/eEventType.txt - ["UNBLOCK_DECISION_MAKER_EVENT"]=--[[void]] function(--[[Hash (int)]] name,--[[int]] eventType)return native_invoker.unified_void(name, eventType, 0xD7CD9CF34F2C99E8, "ii")end, - -- eventType: https://alloc8or.re/gta5/doc/enums/eEventType.txt - ["ADD_SHOCKING_EVENT_AT_POSITION"]=--[[int]] function(--[[int]] eventType,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] duration)return native_invoker.unified_int(eventType, x, y, z, duration, 0xD9F8455409B525E9, "iffff")end, - -- eventType: https://alloc8or.re/gta5/doc/enums/eEventType.txt - ["ADD_SHOCKING_EVENT_FOR_ENTITY"]=--[[int]] function(--[[int]] eventType,--[[Entity (int)]] entity,--[[float]] duration)return native_invoker.unified_int(eventType, entity, duration, 0x7FD8F3BE76F89422, "iif")end, - -- eventType: https://alloc8or.re/gta5/doc/enums/eEventType.txt - ["IS_SHOCKING_EVENT_IN_SPHERE"]=--[[BOOL (bool)]] function(--[[int]] eventType,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius)return native_invoker.unified_bool(eventType, x, y, z, radius, 0x1374ABB7C15BAB92, "iffff")end, - ["REMOVE_SHOCKING_EVENT"]=--[[BOOL (bool)]] function(--[[ScrHandle (int)]] event)return native_invoker.unified_bool(event, 0x2CDA538C44C6CCE5, "i")end, - ["REMOVE_ALL_SHOCKING_EVENTS"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xEAABE8FDFA21274C, "b")end, - ["REMOVE_SHOCKING_EVENT_SPAWN_BLOCKING_AREAS"]=--[[void]] function()return native_invoker.unified_void(0x340F1415B68AEADE, "")end, - ["SUPPRESS_SHOCKING_EVENTS_NEXT_FRAME"]=--[[void]] function()return native_invoker.unified_void(0x2F9A292AD0A3BD89, "")end, - -- eventType: https://alloc8or.re/gta5/doc/enums/eEventType.txt - ["SUPPRESS_SHOCKING_EVENT_TYPE_NEXT_FRAME"]=--[[void]] function(--[[int]] eventType)return native_invoker.unified_void(eventType, 0x3FD2EC8BF1F1CF30, "i")end, - ["SUPPRESS_AGITATION_EVENTS_NEXT_FRAME"]=--[[void]] function()return native_invoker.unified_void(0x5F3B7749C112D552, "")end, -} -FILES={ - -- Character types: - -- 0 = Michael, - -- 1 = Franklin, - -- 2 = Trevor, - -- 3 = MPMale, - -- 4 = MPFemale - ["GET_NUM_TATTOO_SHOP_DLC_ITEMS"]=--[[int]] function(--[[int]] character)return native_invoker.unified_int(character, 0x278F76C3B0A8F109, "i")end, - -- Character types: - -- 0 = Michael, - -- 1 = Franklin, - -- 2 = Trevor, - -- 3 = MPMale, - -- 4 = MPFemale - -- - -- - -- enum TattooZoneData - -- { - -- ZONE_TORSO = 0, - -- ZONE_HEAD = 1, - -- ZONE_LEFT_ARM = 2, - -- ZONE_RIGHT_ARM = 3, - -- ZONE_LEFT_LEG = 4, - -- ZONE_RIGHT_LEG = 5, - -- ZONE_UNKNOWN = 6, - -- ZONE_NONE = 7, - -- }; - -- struct outComponent - -- { - -- // these vars are suffixed with 4 bytes of padding each. - -- uint unk; - -- int unk2; - -- uint tattooCollectionHash; - -- uint tattooNameHash; - -- int unk3; - -- TattooZoneData zoneId; - -- uint unk4; - -- uint unk5; - -- // maybe more, not sure exactly, decompiled scripts are very vague around this part. - -- } - ["GET_TATTOO_SHOP_DLC_ITEM_DATA"]=--[[BOOL (bool)]] function(--[[int]] characterType,--[[int]] decorationIndex,--[[Any* (pointer)]] outComponent)return native_invoker.unified_bool(characterType, decorationIndex, outComponent, 0xFF56381874F82086, "iip")end, - -- Returns some sort of index/offset for overlays/decorations. - -- - -- Character types: - -- 0 = Michael, - -- 1 = Franklin, - -- 2 = Trevor, - -- 3 = MPMale, - -- 4 = MPFemale - ["GET_TATTOO_SHOP_DLC_ITEM_INDEX"]=--[[int]] function(--[[Hash (int)]] overlayHash,--[[Any (int)]] p1,--[[int]] character)return native_invoker.unified_int(overlayHash, p1, character, 0x10144267DD22866C, "iii")end, - ["INIT_SHOP_PED_COMPONENT"]=--[[void]] function(--[[Any* (pointer)]] outComponent)return native_invoker.unified_void(outComponent, 0x1E8C308FD312C036, "p")end, - ["INIT_SHOP_PED_PROP"]=--[[void]] function(--[[Any* (pointer)]] outProp)return native_invoker.unified_void(outProp, 0xEB0A2B758F7B850F, "p")end, - ["SETUP_SHOP_PED_APPAREL_QUERY"]=--[[int]] function(--[[int]] p0,--[[int]] p1,--[[int]] p2,--[[int]] p3)return native_invoker.unified_int(p0, p1, p2, p3, 0x50F457823CE6EB5F, "iiii")end, - -- character is 0 for Michael, 1 for Franklin, 2 for Trevor, 3 for freemode male, and 4 for freemode female. - -- - -- componentId is between 0 and 11 and corresponds to the usual component slots. - -- - -- p1 could be the outfit number; unsure. - -- - -- p2 is usually -1; unknown function. - -- - -- p3 appears to be for selecting between clothes and props; false is used with components/clothes, true is used with props. - -- - -- p4 is usually -1; unknown function. - -- - -- componentId is -1 when p3 is true in decompiled scripts. - ["SETUP_SHOP_PED_APPAREL_QUERY_TU"]=--[[int]] function(--[[int]] character,--[[int]] p1,--[[int]] p2,--[[BOOL (bool)]] p3,--[[int]] p4,--[[int]] componentId)return native_invoker.unified_int(character, p1, p2, p3, p4, componentId, 0x9BDF59818B1E38C1, "iiibii")end, - -- See https://git.io/JtcRf for example and structs. - ["GET_SHOP_PED_QUERY_COMPONENT"]=--[[void]] function(--[[int]] componentId,--[[Any* (pointer)]] outComponent)return native_invoker.unified_void(componentId, outComponent, 0x249E310B2D920699, "ip")end, - -- Returns some sort of index/offset for components. - -- Needs _GET_NUM_PROPS_FROM_OUTFIT to be called with p3 = false and componentId with the drawable's component slot first, returns -1 otherwise. - ["GET_SHOP_PED_QUERY_COMPONENT_INDEX"]=--[[int]] function(--[[Hash (int)]] componentHash)return native_invoker.unified_int(componentHash, 0x96E2929292A4DB77, "i")end, - -- More info here: https://gist.github.com/root-cause/3b80234367b0c856d60bf5cb4b826f86 - ["GET_SHOP_PED_COMPONENT"]=--[[void]] function(--[[Hash (int)]] componentHash,--[[Any* (pointer)]] outComponent)return native_invoker.unified_void(componentHash, outComponent, 0x74C0E2A57EC66760, "ip")end, - -- See https://git.io/JtcRf for example and structs. - ["GET_SHOP_PED_QUERY_PROP"]=--[[void]] function(--[[int]] componentId,--[[Any* (pointer)]] outProp)return native_invoker.unified_void(componentId, outProp, 0xDE44A00999B2837D, "ip")end, - -- Returns some sort of index/offset for props. - -- Needs _GET_NUM_PROPS_FROM_OUTFIT to be called with p3 = true and componentId = -1 first, returns -1 otherwise. - ["GET_SHOP_PED_QUERY_PROP_INDEX"]=--[[int]] function(--[[Hash (int)]] componentHash)return native_invoker.unified_int(componentHash, 0x6CEBE002E58DEE97, "i")end, - -- More info here: https://gist.github.com/root-cause/3b80234367b0c856d60bf5cb4b826f86 - ["GET_SHOP_PED_PROP"]=--[[void]] function(--[[Hash (int)]] componentHash,--[[Any* (pointer)]] outProp)return native_invoker.unified_void(componentHash, outProp, 0x5D5CAFF661DDF6FC, "ip")end, - ["GET_HASH_NAME_FOR_COMPONENT"]=--[[Hash (int)]] function(--[[Entity (int)]] entity,--[[int]] componentId,--[[int]] drawableVariant,--[[int]] textureVariant)return native_invoker.unified_int(entity, componentId, drawableVariant, textureVariant, 0x0368B3A838070348, "iiii")end, - ["GET_HASH_NAME_FOR_PROP"]=--[[Hash (int)]] function(--[[Entity (int)]] entity,--[[int]] componentId,--[[int]] propIndex,--[[int]] propTextureIndex)return native_invoker.unified_int(entity, componentId, propIndex, propTextureIndex, 0x5D6160275CAEC8DD, "iiii")end, - ["GET_SHOP_PED_APPAREL_VARIANT_COMPONENT_COUNT"]=--[[int]] function(--[[Hash (int)]] componentHash)return native_invoker.unified_int(componentHash, 0xC17AD0E5752BECDA, "i")end, - -- `propHash`: Ped helmet prop hash? - -- This native returns 1 when the player helmet has a visor (there is another prop index for the same helmet with closed/opened visor variant) that can be toggled. 0 if there's no alternative version with a visor for this helmet prop. - ["GET_SHOP_PED_APPAREL_VARIANT_PROP_COUNT"]=--[[int]] function(--[[Hash (int)]] propHash)return native_invoker.unified_int(propHash, 0xD40AAC51E8E4C663, "i")end, - ["GET_VARIANT_COMPONENT"]=--[[void]] function(--[[Hash (int)]] componentHash,--[[int]] variantComponentIndex,--[[Hash* (pointer)]] nameHash,--[[int* (pointer)]] enumValue,--[[int* (pointer)]] componentType)return native_invoker.unified_void(componentHash, variantComponentIndex, nameHash, enumValue, componentType, 0x6E11F282F11863B6, "iippp")end, - ["GET_VARIANT_PROP"]=--[[void]] function(--[[Hash (int)]] componentHash,--[[int]] variantPropIndex,--[[Hash* (pointer)]] nameHash,--[[int* (pointer)]] enumValue,--[[int* (pointer)]] anchorPoint)return native_invoker.unified_void(componentHash, variantPropIndex, nameHash, enumValue, anchorPoint, 0xD81B7F27BC773E66, "iippp")end, - -- Returns number of possible values of the forcedComponentIndex argument of GET_FORCED_COMPONENT. - ["GET_SHOP_PED_APPAREL_FORCED_COMPONENT_COUNT"]=--[[int]] function(--[[Hash (int)]] componentHash)return native_invoker.unified_int(componentHash, 0xC6B9DB42C04DD8C3, "i")end, - -- Returns number of possible values of the forcedPropIndex argument of GET_FORCED_PROP. - ["GET_SHOP_PED_APPAREL_FORCED_PROP_COUNT"]=--[[int]] function(--[[Hash (int)]] componentHash)return native_invoker.unified_int(componentHash, 0x017568A8182D98A6, "i")end, - ["GET_FORCED_COMPONENT"]=--[[void]] function(--[[Hash (int)]] componentHash,--[[int]] forcedComponentIndex,--[[Hash* (pointer)]] nameHash,--[[int* (pointer)]] enumValue,--[[int* (pointer)]] componentType)return native_invoker.unified_void(componentHash, forcedComponentIndex, nameHash, enumValue, componentType, 0x6C93ED8C2F74859B, "iippp")end, - ["GET_FORCED_PROP"]=--[[void]] function(--[[Hash (int)]] componentHash,--[[int]] forcedPropIndex,--[[Hash* (pointer)]] nameHash,--[[int* (pointer)]] enumValue,--[[int* (pointer)]] anchorPoint)return native_invoker.unified_void(componentHash, forcedPropIndex, nameHash, enumValue, anchorPoint, 0xE1CA84EBF72E691D, "iippp")end, - -- Full list of restriction tags by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedApparelRestrictionTags.json - -- - -- componentId/last parameter seems to be unused. - ["DOES_SHOP_PED_APPAREL_HAVE_RESTRICTION_TAG"]=--[[BOOL (bool)]] function(--[[Hash (int)]] componentHash,--[[Hash (int)]] restrictionTagHash,--[[int]] componentId)return native_invoker.unified_bool(componentHash, restrictionTagHash, componentId, 0x341DE7ED1D2A1BFD, "iii")end, - ["DOES_CURRENT_PED_COMPONENT_HAVE_RESTRICTION_TAG"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[int]] componentId,--[[Hash (int)]] restrictionTagHash)return native_invoker.unified_bool(ped, componentId, restrictionTagHash, 0x7796B21B76221BC5, "iii")end, - ["DOES_CURRENT_PED_PROP_HAVE_RESTRICTION_TAG"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[int]] componentId,--[[Hash (int)]] restrictionTagHash)return native_invoker.unified_bool(ped, componentId, restrictionTagHash, 0xD726BAB4554DA580, "iii")end, - -- characters - -- - -- 0: Michael - -- 1: Franklin - -- 2: Trevor - -- 3: MPMale - -- 4: MPFemale - ["SETUP_SHOP_PED_OUTFIT_QUERY"]=--[[int]] function(--[[int]] character,--[[BOOL (bool)]] p1)return native_invoker.unified_int(character, p1, 0xF3FBE2D50A6A8C28, "ib")end, - -- outfitIndex: from 0 to SETUP_SHOP_PED_OUTFIT_QUERY(characterIndex, false) - 1. - -- See https://git.io/JtcB8 for example and outfit struct. - ["GET_SHOP_PED_QUERY_OUTFIT"]=--[[void]] function(--[[int]] outfitIndex,--[[Any* (pointer)]] outfit)return native_invoker.unified_void(outfitIndex, outfit, 0x6D793F03A631FE56, "ip")end, - ["GET_SHOP_PED_OUTFIT"]=--[[void]] function(--[[Any (int)]] p0,--[[Any* (pointer)]] p1)return native_invoker.unified_void(p0, p1, 0xB7952076E444979D, "ip")end, - ["GET_SHOP_PED_OUTFIT_LOCATE"]=--[[int]] function(--[[Any (int)]] p0)return native_invoker.unified_int(p0, 0x073CA26B079F956E, "i")end, - -- See https://git.io/JtcBH for example and structs. - ["GET_SHOP_PED_OUTFIT_PROP_VARIANT"]=--[[BOOL (bool)]] function(--[[Hash (int)]] outfitHash,--[[int]] variantIndex,--[[Any* (pointer)]] outPropVariant)return native_invoker.unified_bool(outfitHash, variantIndex, outPropVariant, 0xA9F9C2E0FDE11CBB, "iip")end, - -- See https://git.io/JtcBH for example and structs. - ["GET_SHOP_PED_OUTFIT_COMPONENT_VARIANT"]=--[[BOOL (bool)]] function(--[[Hash (int)]] outfitHash,--[[int]] variantIndex,--[[Any* (pointer)]] outComponentVariant)return native_invoker.unified_bool(outfitHash, variantIndex, outComponentVariant, 0x19F2A026EDF0013F, "iip")end, - ["GET_NUM_DLC_VEHICLES"]=--[[int]] function()return native_invoker.unified_int(0xA7A866D21CD2329B, "")end, - -- dlcVehicleIndex is 0 to GET_NUM_DLC_VEHICLS() - 1 - ["GET_DLC_VEHICLE_MODEL"]=--[[Hash (int)]] function(--[[int]] dlcVehicleIndex)return native_invoker.unified_int(dlcVehicleIndex, 0xECC01B7C5763333C, "i")end, - -- dlcVehicleIndex takes a number from 0 - GET_NUM_DLC_VEHICLES() - 1. - -- outData is a struct of 3 8-byte items. - -- The Second item in the struct *(Hash *)(outData + 1) is the vehicle hash. - ["GET_DLC_VEHICLE_DATA"]=--[[BOOL (bool)]] function(--[[int]] dlcVehicleIndex,--[[Any* (pointer)]] outData)return native_invoker.unified_bool(dlcVehicleIndex, outData, 0x33468EDC08E371F6, "ip")end, - ["GET_DLC_VEHICLE_FLAGS"]=--[[int]] function(--[[int]] dlcVehicleIndex)return native_invoker.unified_int(dlcVehicleIndex, 0x5549EE11FA22FCF2, "i")end, - -- Returns the total number of DLC weapons. - ["GET_NUM_DLC_WEAPONS"]=--[[int]] function()return native_invoker.unified_int(0xEE47635F352DA367, "")end, - -- Returns the total number of DLC weapons that are available in SP (availableInSP field in shop_weapon.meta). - ["GET_NUM_DLC_WEAPONS_SP"]=--[[int]] function()return native_invoker.unified_int(0x4160B65AE085B5A9, "")end, - -- - -- dlcWeaponIndex takes a number from 0 - GET_NUM_DLC_WEAPONS() - 1. - -- struct DlcWeaponData - -- { - -- int emptyCheck; //use DLC1::IS_CONTENT_ITEM_LOCKED on this - -- int padding1; - -- int weaponHash; - -- int padding2; - -- int unk; - -- int padding3; - -- int weaponCost; - -- int padding4; - -- int ammoCost; - -- int padding5; - -- int ammoType; - -- int padding6; - -- int defaultClipSize; - -- int padding7; - -- char nameLabel[64]; - -- char descLabel[64]; - -- char desc2Label[64]; // usually "the" + name - -- char upperCaseNameLabel[64]; - -- }; - ["GET_DLC_WEAPON_DATA"]=--[[BOOL (bool)]] function(--[[int]] dlcWeaponIndex,--[[Any* (pointer)]] outData)return native_invoker.unified_bool(dlcWeaponIndex, outData, 0x79923CD21BECE14E, "ip")end, - -- Same as GET_DLC_WEAPON_DATA but only works for DLC weapons that are available in SP. - ["GET_DLC_WEAPON_DATA_SP"]=--[[BOOL (bool)]] function(--[[int]] dlcWeaponIndex,--[[Any* (pointer)]] outData)return native_invoker.unified_bool(dlcWeaponIndex, outData, 0x310836EE7129BA33, "ip")end, - -- Returns the total number of DLC weapon components. - ["GET_NUM_DLC_WEAPON_COMPONENTS"]=--[[int]] function(--[[int]] dlcWeaponIndex)return native_invoker.unified_int(dlcWeaponIndex, 0x405425358A7D61FE, "i")end, - -- Returns the total number of DLC weapon components that are available in SP. - ["GET_NUM_DLC_WEAPON_COMPONENTS_SP"]=--[[int]] function(--[[int]] dlcWeaponIndex)return native_invoker.unified_int(dlcWeaponIndex, 0xAD2A7A6DFF55841B, "i")end, - -- p0 seems to be the weapon index - -- p1 seems to be the weapon component index - -- struct DlcComponentData{ - -- int attachBone; - -- int padding1; - -- int bActiveByDefault; - -- int padding2; - -- int unk; - -- int padding3; - -- int componentHash; - -- int padding4; - -- int unk2; - -- int padding5; - -- int componentCost; - -- int padding6; - -- char nameLabel[64]; - -- char descLabel[64]; - -- }; - -- - ["GET_DLC_WEAPON_COMPONENT_DATA"]=--[[BOOL (bool)]] function(--[[int]] dlcWeaponIndex,--[[int]] dlcWeapCompIndex,--[[Any* (pointer)]] ComponentDataPtr)return native_invoker.unified_bool(dlcWeaponIndex, dlcWeapCompIndex, ComponentDataPtr, 0x6CF598A2957C2BF8, "iip")end, - -- Same as GET_DLC_WEAPON_COMPONENT_DATA but only works for DLC components that are available in SP. - ["GET_DLC_WEAPON_COMPONENT_DATA_SP"]=--[[BOOL (bool)]] function(--[[int]] dlcWeaponIndex,--[[int]] dlcWeapCompIndex,--[[Any* (pointer)]] ComponentDataPtr)return native_invoker.unified_bool(dlcWeaponIndex, dlcWeapCompIndex, ComponentDataPtr, 0x31D5E073B6F93CDC, "iip")end, - ["IS_CONTENT_ITEM_LOCKED"]=--[[BOOL (bool)]] function(--[[Hash (int)]] itemHash)return native_invoker.unified_bool(itemHash, 0xD4D7B033C3AA243C, "i")end, - ["IS_DLC_VEHICLE_MOD"]=--[[BOOL (bool)]] function(--[[Hash (int)]] hash)return native_invoker.unified_bool(hash, 0x0564B9FF9631B82C, "i")end, - ["GET_DLC_VEHICLE_MOD_LOCK_HASH"]=--[[Hash (int)]] function(--[[Hash (int)]] hash)return native_invoker.unified_int(hash, 0xC098810437312FFF, "i")end, - -- From fm_deathmatch_creator and fm_race_creator: - -- - -- FILES::REVERT_CONTENT_CHANGESET_GROUP_FOR_ALL(joaat("GROUP_MAP_SP")); - -- FILES::EXECUTE_CONTENT_CHANGESET_GROUP_FOR_ALL(joaat("GROUP_MAP")); - ["EXECUTE_CONTENT_CHANGESET_GROUP_FOR_ALL"]=--[[void]] function(--[[Hash (int)]] hash)return native_invoker.unified_void(hash, 0x6BEDF5769AC2DC07, "i")end, - -- From fm_deathmatch_creator and fm_race_creator: - -- - -- FILES::REVERT_CONTENT_CHANGESET_GROUP_FOR_ALL(joaat("GROUP_MAP_SP")); - -- FILES::EXECUTE_CONTENT_CHANGESET_GROUP_FOR_ALL(joaat("GROUP_MAP")); - ["REVERT_CONTENT_CHANGESET_GROUP_FOR_ALL"]=--[[void]] function(--[[Hash (int)]] hash)return native_invoker.unified_void(hash, 0x3C1978285B036B25, "i")end, -} -FIRE={ - -- Starts a fire: - -- - -- xyz: Location of fire - -- maxChildren: The max amount of times a fire can spread to other objects. Must be 25 or less, or the function will do nothing. - -- isGasFire: Whether or not the fire is powered by gasoline. - ["START_SCRIPT_FIRE"]=--[[FireId (int)]] function(--[[float]] X,--[[float]] Y,--[[float]] Z,--[[int]] maxChildren,--[[BOOL (bool)]] isGasFire)return native_invoker.unified_int(X, Y, Z, maxChildren, isGasFire, 0x6B83617E04503888, "fffib")end, - ["REMOVE_SCRIPT_FIRE"]=--[[void]] function(--[[FireId (int)]] fireHandle)return native_invoker.unified_void(fireHandle, 0x7FF548385680673F, "i")end, - ["START_ENTITY_FIRE"]=--[[FireId (int)]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0xF6A9D9708F6F23DF, "i")end, - ["STOP_ENTITY_FIRE"]=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0x7F0DD2EBBB651AFF, "i")end, - ["IS_ENTITY_ON_FIRE"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x28D3FED7190D3A0B, "i")end, - ["GET_NUMBER_OF_FIRES_IN_RANGE"]=--[[int]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius)return native_invoker.unified_int(x, y, z, radius, 0x50CAD495A460B305, "ffff")end, - ["SET_FLAMMABILITY_MULTIPLIER"]=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0x8F390AC4155099BA, "f")end, - ["STOP_FIRE_IN_RANGE"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius)return native_invoker.unified_void(x, y, z, radius, 0x056A8A219B8E829F, "ffff")end, - -- Returns TRUE if it found something. FALSE if not. - ["GET_CLOSEST_FIRE_POS"]=--[[BOOL (bool)]] function(--[[Vector3* (pointer)]] outPosition,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_bool(outPosition, x, y, z, 0x352A9F6BCF90081F, "pfff")end, - -- BOOL isAudible = If explosion makes a sound. - -- BOOL isInvisible = If the explosion is invisible or not. - -- - -- explosionType: https://alloc8or.re/gta5/doc/enums/eExplosionTag.txt - ["ADD_EXPLOSION"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] explosionType,--[[float]] damageScale,--[[BOOL (bool)]] isAudible,--[[BOOL (bool)]] isInvisible,--[[float]] cameraShake,--[[BOOL (bool)]] noDamage)return native_invoker.unified_void(x, y, z, explosionType, damageScale, isAudible, isInvisible, cameraShake, noDamage, 0xE3AD2BDBAEE269AC, "fffifbbfb")end, - -- isAudible: If explosion makes a sound. - -- isInvisible: If the explosion is invisible or not. - -- explosionType: See ADD_EXPLOSION. - ["ADD_OWNED_EXPLOSION"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] explosionType,--[[float]] damageScale,--[[BOOL (bool)]] isAudible,--[[BOOL (bool)]] isInvisible,--[[float]] cameraShake)return native_invoker.unified_void(ped, x, y, z, explosionType, damageScale, isAudible, isInvisible, cameraShake, 0x172AA1B624FA1013, "ifffifbbf")end, - -- isAudible: If explosion makes a sound. - -- isInvisible: If the explosion is invisible or not. - -- explosionType: See ADD_EXPLOSION. - ["ADD_EXPLOSION_WITH_USER_VFX"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] explosionType,--[[Hash (int)]] explosionFx,--[[float]] damageScale,--[[BOOL (bool)]] isAudible,--[[BOOL (bool)]] isInvisible,--[[float]] cameraShake)return native_invoker.unified_void(x, y, z, explosionType, explosionFx, damageScale, isAudible, isInvisible, cameraShake, 0x36DD3FE58B5E5212, "fffiifbbf")end, - -- explosionType: See ADD_EXPLOSION. - ["IS_EXPLOSION_IN_AREA"]=--[[BOOL (bool)]] function(--[[int]] explosionType,--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2)return native_invoker.unified_bool(explosionType, x1, y1, z1, x2, y2, z2, 0x2E2EBA0EE7CED0E0, "iffffff")end, - -- explosionType: See ADD_EXPLOSION. - ["IS_EXPLOSION_ACTIVE_IN_AREA"]=--[[BOOL (bool)]] function(--[[int]] explosionType,--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2)return native_invoker.unified_bool(explosionType, x1, y1, z1, x2, y2, z2, 0x6070104B699B2EF4, "iffffff")end, - -- explosionType: See ADD_EXPLOSION. - ["IS_EXPLOSION_IN_SPHERE"]=--[[BOOL (bool)]] function(--[[int]] explosionType,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius)return native_invoker.unified_bool(explosionType, x, y, z, radius, 0xAB0F816885B0E483, "iffff")end, - -- explosionType: See ADD_EXPLOSION. - ["GET_OWNER_OF_EXPLOSION_IN_SPHERE"]=--[[Entity (int)]] function(--[[int]] explosionType,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius)return native_invoker.unified_int(explosionType, x, y, z, radius, 0xB3CD51E3DB86F176, "iffff")end, - -- explosionType: See ADD_EXPLOSION, -1 for any explosion type - -- - ["IS_EXPLOSION_IN_ANGLED_AREA"]=--[[BOOL (bool)]] function(--[[int]] explosionType,--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] width)return native_invoker.unified_bool(explosionType, x1, y1, z1, x2, y2, z2, width, 0xA079A6C51525DC4B, "ifffffff")end, - -- Returns a handle to the first entity within the a circle spawned inside the 2 points from a radius. - -- - -- explosionType: See ADD_EXPLOSION. - ["GET_OWNER_OF_EXPLOSION_IN_ANGLED_AREA"]=--[[Entity (int)]] function(--[[int]] explosionType,--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] radius)return native_invoker.unified_int(explosionType, x1, y1, z1, x2, y2, z2, radius, 0x14BA4BA137AF6CEC, "ifffffff")end, -} -GRAPHICS={ - -- NOTE: Debugging functions are not present in the retail version of the game. - ["SET_DEBUG_LINES_AND_SPHERES_DRAWING_ACTIVE"]=--[[void]] function(--[[BOOL (bool)]] enabled)return native_invoker.unified_void(enabled, 0x175B6BFC15CDD0C5, "b")end, - ["DRAW_DEBUG_LINE"]=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[int]] r,--[[int]] g,--[[int]] b,--[[int]] alpha)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, r, g, b, alpha, 0x7FDFADE676AA3CB0, "ffffffiiii")end, - -- NOTE: Debugging functions are not present in the retail version of the game. - ["DRAW_DEBUG_LINE_WITH_TWO_COLOURS"]=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[int]] r1,--[[int]] g1,--[[int]] b1,--[[int]] r2,--[[int]] g2,--[[int]] b2,--[[int]] alpha1,--[[int]] alpha2)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, r1, g1, b1, r2, g2, b2, alpha1, alpha2, 0xD8B9A8AC5608FF94, "ffffffiiiiiiii")end, - -- NOTE: Debugging functions are not present in the retail version of the game. - ["DRAW_DEBUG_SPHERE"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha)return native_invoker.unified_void(x, y, z, radius, red, green, blue, alpha, 0xAAD68E1AB39DA632, "ffffiiii")end, - ["DRAW_DEBUG_BOX"]=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[int]] r,--[[int]] g,--[[int]] b,--[[int]] alpha)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, r, g, b, alpha, 0x083A2CA4F2E573BD, "ffffffiiii")end, - -- NOTE: Debugging functions are not present in the retail version of the game. - ["DRAW_DEBUG_CROSS"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] size,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha)return native_invoker.unified_void(x, y, z, size, red, green, blue, alpha, 0x73B1189623049839, "ffffiiii")end, - -- NOTE: Debugging functions are not present in the retail version of the game. - ["DRAW_DEBUG_TEXT"]=--[[void]] function(--[[string]] text,--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha)return native_invoker.unified_void(text, x, y, z, red, green, blue, alpha, 0x3903E216620488E8, "sfffiiii")end, - -- NOTE: Debugging functions are not present in the retail version of the game. - ["DRAW_DEBUG_TEXT_2D"]=--[[void]] function(--[[string]] text,--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha)return native_invoker.unified_void(text, x, y, z, red, green, blue, alpha, 0xA3BB2E9555C05A8F, "sfffiiii")end, - -- Draws a depth-tested line from one point to another. - -- ---------------- - -- x1, y1, z1 : Coordinates for the first point - -- x2, y2, z2 : Coordinates for the second point - -- r, g, b, alpha : Color with RGBA-Values - -- I recommend using a predefined function to call this. - -- [VB.NET] - -- Public Sub DrawLine(from As Vector3, [to] As Vector3, col As Color) - -- [Function].Call(Hash.DRAW_LINE, from.X, from.Y, from.Z, [to].X, [to].Y, [to].Z, col.R, col.G, col.B, col.A) - -- End Sub - -- - -- [C#] - -- public void DrawLine(Vector3 from, Vector3 to, Color col) - -- { - -- Function.Call(Hash.DRAW_LINE, from.X, from.Y, from.Z, to.X, to.Y, to.Z, col.R, col.G, col.B, col.A); - -- } - ["DRAW_LINE"]=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, red, green, blue, alpha, 0x6B7256074AE34680, "ffffffiiii")end, - -- x/y/z - Location of a vertex (in world coords), presumably. - -- ---------------- - -- x1, y1, z1 : Coordinates for the first point - -- x2, y2, z2 : Coordinates for the second point - -- x3, y3, z3 : Coordinates for the third point - -- r, g, b, alpha : Color with RGBA-Values - -- - -- Keep in mind that only one side of the drawn triangle is visible: It's the side, in which the vector-product of the vectors heads to: (b-a)x(c-a) Or (b-a)x(c-b). - -- But be aware: The function seems to work somehow differently. I have trouble having them drawn in rotated orientation. Try it yourself and if you somehow succeed, please edit this and post your solution. - -- I recommend using a predefined function to call this. - -- [VB.NET] - -- Public Sub DrawPoly(a As Vector3, b As Vector3, c As Vector3, col As Color) - -- [Function].Call(Hash.DRAW_POLY, a.X, a.Y, a.Z, b.X, b.Y, b.Z, c.X, c.Y, c.Z, col.R, col.G, col.B, col.A) - -- End Sub - -- - -- [C#] - -- public void DrawPoly(Vector3 a, Vector3 b, Vector3 c, Color col) - -- { - -- Function.Call(Hash.DRAW_POLY, a.X, a.Y, a.Z, b.X, b.Y, b.Z, c.X, c.Y, c.Z, col.R, col.G, col.B, col.A); - -- } - -- BTW: Intersecting triangles are not supported: They overlap in the order they were called. - ["DRAW_POLY"]=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] x3,--[[float]] y3,--[[float]] z3,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, x3, y3, z3, red, green, blue, alpha, 0xAC26716048436851, "fffffffffiiii")end, - -- Used for drawling Deadline trailing lights, see deadline.ytd - -- - -- p15 through p23 are values that appear to be related to illiumation, scaling, and rotation; more testing required. - -- For UVW mapping (u,v,w parameters), reference your favourite internet resource for more details. - ["DRAW_TEXTURED_POLY"]=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] x3,--[[float]] y3,--[[float]] z3,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha,--[[string]] textureDict,--[[string]] textureName,--[[float]] u1,--[[float]] v1,--[[float]] w1,--[[float]] u2,--[[float]] v2,--[[float]] w2,--[[float]] u3,--[[float]] v3,--[[float]] w3)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, x3, y3, z3, red, green, blue, alpha, textureDict, textureName, u1, v1, w1, u2, v2, w2, u3, v3, w3, 0x29280002282F1928, "fffffffffiiiissfffffffff")end, - -- Used for drawling Deadline trailing lights, see deadline.ytd - -- - -- Each vertex has its own colour that is blended/illuminated on the texture. Additionally, the R, G, and B components are floats that are int-casted internally. - -- For UVW mapping (u,v,w parameters), reference your favourite internet resource for more details. - ["DRAW_TEXTURED_POLY_WITH_THREE_COLOURS"]=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] x3,--[[float]] y3,--[[float]] z3,--[[float]] red1,--[[float]] green1,--[[float]] blue1,--[[int]] alpha1,--[[float]] red2,--[[float]] green2,--[[float]] blue2,--[[int]] alpha2,--[[float]] red3,--[[float]] green3,--[[float]] blue3,--[[int]] alpha3,--[[string]] textureDict,--[[string]] textureName,--[[float]] u1,--[[float]] v1,--[[float]] w1,--[[float]] u2,--[[float]] v2,--[[float]] w2,--[[float]] u3,--[[float]] v3,--[[float]] w3)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, x3, y3, z3, red1, green1, blue1, alpha1, red2, green2, blue2, alpha2, red3, green3, blue3, alpha3, textureDict, textureName, u1, v1, w1, u2, v2, w2, u3, v3, w3, 0x736D7AA1B750856B, "ffffffffffffifffifffissfffffffff")end, - -- x,y,z = start pos - -- x2,y2,z2 = end pos - -- - -- Draw's a 3D Box between the two x,y,z coords. - -- -------------- - -- Keep in mind that the edges of the box do only align to the worlds base-vectors. Therefore something like rotation cannot be applied. That means this function is pretty much useless, unless you want a static unicolor box somewhere. - -- I recommend using a predefined function to call this. - -- [VB.NET] - -- Public Sub DrawBox(a As Vector3, b As Vector3, col As Color) - -- [Function].Call(Hash.DRAW_BOX,a.X, a.Y, a.Z,b.X, b.Y, b.Z,col.R, col.G, col.B, col.A) - -- End Sub - -- - -- [C#] - -- public void DrawBox(Vector3 a, Vector3 b, Color col) - -- { - -- Function.Call(Hash.DRAW_BOX,a.X, a.Y, a.Z,b.X, b.Y, b.Z,col.R, col.G, col.B, col.A); - -- } - ["DRAW_BOX"]=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, red, green, blue, alpha, 0xD3A9971CADAC7252, "ffffffiiii")end, - ["SET_BACKFACECULLING"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x23BA6B0C2AD7B0D3, "b")end, - ["SET_DEPTHWRITING"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xC5C8F970D4EDFF71, "b")end, - ["BEGIN_TAKE_MISSION_CREATOR_PHOTO"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x1DD2139A9A20DCE8, "")end, - ["GET_STATUS_OF_TAKE_MISSION_CREATOR_PHOTO"]=--[[int]] function()return native_invoker.unified_int(0x90A78ECAA4E78453, "")end, - ["FREE_MEMORY_FOR_MISSION_CREATOR_PHOTO"]=--[[void]] function()return native_invoker.unified_void(0x0A46AF8A78DC5E0A, "")end, - ["LOAD_MISSION_CREATOR_PHOTO"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_bool(p0, p1, p2, p3, 0x4862437A486F91B0, "piii")end, - ["GET_STATUS_OF_LOAD_MISSION_CREATOR_PHOTO"]=--[[int]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_int(p0, 0x1670F8D05056F257, "p")end, - ["BEGIN_CREATE_MISSION_CREATOR_PHOTO_PREVIEW"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x7FA5D82B8F58EC06, "")end, - ["GET_STATUS_OF_CREATE_MISSION_CREATOR_PHOTO_PREVIEW"]=--[[int]] function()return native_invoker.unified_int(0x5B0316762AFD4A64, "")end, - ["FREE_MEMORY_FOR_MISSION_CREATOR_PHOTO_PREVIEW"]=--[[void]] function()return native_invoker.unified_void(0x346EF3ECAAAB149E, "")end, - ["BEGIN_TAKE_HIGH_QUALITY_PHOTO"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xA67C35C56EB1BD9D, "")end, - ["GET_STATUS_OF_TAKE_HIGH_QUALITY_PHOTO"]=--[[int]] function()return native_invoker.unified_int(0x0D6CA79EEEBD8CA3, "")end, - ["FREE_MEMORY_FOR_HIGH_QUALITY_PHOTO"]=--[[void]] function()return native_invoker.unified_void(0xD801CC02177FA3F1, "")end, - ["SET_TAKEN_PHOTO_IS_MUGSHOT"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x1BBC135A4D25EDDE, "b")end, - ["SET_ARENA_THEME_AND_VARIATION_FOR_TAKEN_PHOTO"]=--[[void]] function(--[[Any (int)]] p0,--[[int]] p1)return native_invoker.unified_void(p0, p1, 0xF3F776ADA161E47D, "ii")end, - ["SET_ON_ISLAND_X_FOR_TAKEN_PHOTO"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xADD6627C4D325458, "i")end, - -- 1 match in 1 script. cellphone_controller. - -- p0 is -1 in scripts. - ["SAVE_HIGH_QUALITY_PHOTO"]=--[[BOOL (bool)]] function(--[[int]] unused)return native_invoker.unified_bool(unused, 0x3DEC726C25A11BAC, "i")end, - ["GET_STATUS_OF_SAVE_HIGH_QUALITY_PHOTO"]=--[[int]] function()return native_invoker.unified_int(0x0C0C4E81E1AC60A0, "")end, - ["BEGIN_CREATE_LOW_QUALITY_COPY_OF_PHOTO"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x759650634F07B6B4, "i")end, - ["GET_STATUS_OF_CREATE_LOW_QUALITY_COPY_OF_PHOTO"]=--[[int]] function(--[[int]] p0)return native_invoker.unified_int(p0, 0xCB82A0BF0E3E3265, "i")end, - ["FREE_MEMORY_FOR_LOW_QUALITY_PHOTO"]=--[[void]] function()return native_invoker.unified_void(0x6A12D88881435DCA, "")end, - ["DRAW_LOW_QUALITY_PHOTO_TO_PHONE"]=--[[void]] function(--[[BOOL (bool)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0x1072F115DAB0717E, "bb")end, - -- This function is hard-coded to always return 0. - ["GET_MAXIMUM_NUMBER_OF_PHOTOS"]=--[[int]] function()return native_invoker.unified_int(0x34D23450F028B0BF, "")end, - -- This function is hard-coded to always return 96. - ["GET_MAXIMUM_NUMBER_OF_CLOUD_PHOTOS"]=--[[int]] function()return native_invoker.unified_int(0xDC54A7AF8B3A14EF, "")end, - ["GET_CURRENT_NUMBER_OF_CLOUD_PHOTOS"]=--[[int]] function()return native_invoker.unified_int(0x473151EBC762C6DA, "")end, - -- 2 matches across 2 scripts. Only showed in appcamera & appmedia. Both were 0. - ["QUEUE_OPERATION_TO_CREATE_SORTED_LIST_OF_PHOTOS"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x2A893980E96B659A, "i")end, - -- 3 matches across 3 scripts. First 2 were 0, 3rd was 1. Possibly a bool. - -- appcamera, appmedia, and cellphone_controller. - ["GET_STATUS_OF_SORTED_LIST_OPERATION"]=--[[int]] function(--[[Any (int)]] p0)return native_invoker.unified_int(p0, 0xF5BED327CEA362B1, "i")end, - ["CLEAR_STATUS_OF_SORTED_LIST_OPERATION"]=--[[void]] function()return native_invoker.unified_void(0x4AF92ACD3141D96C, "")end, - -- This function is hard-coded to always return 0. - ["DOES_THIS_PHOTO_SLOT_CONTAIN_A_VALID_PHOTO"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0xE791DF1F73ED2C8B, "i")end, - -- This function is hard-coded to always return 0. - ["LOAD_HIGH_QUALITY_PHOTO"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0xEC72C258667BE5EA, "i")end, - -- Hardcoded to always return 2. - ["GET_LOAD_HIGH_QUALITY_PHOTO_STATUS"]=--[[int]] function(--[[int]] p0)return native_invoker.unified_int(p0, 0x40AFB081F8ADD4EE, "i")end, - ["DRAW_LIGHT_WITH_RANGEEX"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] r,--[[int]] g,--[[int]] b,--[[float]] range,--[[float]] intensity,--[[float]] shadow)return native_invoker.unified_void(x, y, z, r, g, b, range, intensity, shadow, 0xF49E9A9716A04595, "fffiiifff")end, - ["DRAW_LIGHT_WITH_RANGE"]=--[[void]] function(--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[int]] colorR,--[[int]] colorG,--[[int]] colorB,--[[float]] range,--[[float]] intensity)return native_invoker.unified_void(posX, posY, posZ, colorR, colorG, colorB, range, intensity, 0xF2A1B2771A01DBD4, "fffiiiff")end, - -- Parameters: - -- * pos - coordinate where the spotlight is located - -- * dir - the direction vector the spotlight should aim at from its current position - -- * r,g,b - color of the spotlight - -- * distance - the maximum distance the light can reach - -- * brightness - the brightness of the light - -- * roundness - "smoothness" of the circle edge - -- * radius - the radius size of the spotlight - -- * falloff - the falloff size of the light's edge (example: www.i.imgur.com/DemAWeO.jpg) - -- - -- Example in C# (spotlight aims at the closest vehicle): - -- Vector3 myPos = Game.Player.Character.Position; - -- Vehicle nearest = World.GetClosestVehicle(myPos , 1000f); - -- Vector3 destinationCoords = nearest.Position; - -- Vector3 dirVector = destinationCoords - myPos; - -- dirVector.Normalize(); - -- Function.Call(Hash.DRAW_SPOT_LIGHT, pos.X, pos.Y, pos.Z, dirVector.X, dirVector.Y, dirVector.Z, 255, 255, 255, 100.0f, 1f, 0.0f, 13.0f, 1f); - ["DRAW_SPOT_LIGHT"]=--[[void]] function(--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[float]] dirX,--[[float]] dirY,--[[float]] dirZ,--[[int]] colorR,--[[int]] colorG,--[[int]] colorB,--[[float]] distance,--[[float]] brightness,--[[float]] hardness,--[[float]] radius,--[[float]] falloff)return native_invoker.unified_void(posX, posY, posZ, dirX, dirY, dirZ, colorR, colorG, colorB, distance, brightness, hardness, radius, falloff, 0xD0F64B265C8C8B33, "ffffffiiifffff")end, - ["DRAW_SHADOWED_SPOT_LIGHT"]=--[[void]] function(--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[float]] dirX,--[[float]] dirY,--[[float]] dirZ,--[[int]] colorR,--[[int]] colorG,--[[int]] colorB,--[[float]] distance,--[[float]] brightness,--[[float]] roundness,--[[float]] radius,--[[float]] falloff,--[[int]] shadowId)return native_invoker.unified_void(posX, posY, posZ, dirX, dirY, dirZ, colorR, colorG, colorB, distance, brightness, roundness, radius, falloff, shadowId, 0x5BCA583A583194DB, "ffffffiiifffffi")end, - ["FADE_UP_PED_LIGHT"]=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0xC9B18B4619F48F7B, "f")end, - ["UPDATE_LIGHTS_ON_ENTITY"]=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0xDEADC0DEDEADC0DE, "i")end, - ["SET_LIGHT_OVERRIDE_MAX_INTENSITY_SCALE"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x9641588DAB93B4B5, "i")end, - ["GET_LIGHT_OVERRIDE_MAX_INTENSITY_SCALE"]=--[[float]] function()return native_invoker.unified_float(0x393BD2275CEB7793, "")end, - -- enum MarkerTypes - -- { - -- MarkerTypeUpsideDownCone = 0, - -- MarkerTypeVerticalCylinder = 1, - -- MarkerTypeThickChevronUp = 2, - -- MarkerTypeThinChevronUp = 3, - -- MarkerTypeCheckeredFlagRect = 4, - -- MarkerTypeCheckeredFlagCircle = 5, - -- MarkerTypeVerticleCircle = 6, - -- MarkerTypePlaneModel = 7, - -- MarkerTypeLostMCDark = 8, - -- MarkerTypeLostMCLight = 9, - -- MarkerTypeNumber0 = 10, - -- MarkerTypeNumber1 = 11, - -- MarkerTypeNumber2 = 12, - -- MarkerTypeNumber3 = 13, - -- MarkerTypeNumber4 = 14, - -- MarkerTypeNumber5 = 15, - -- MarkerTypeNumber6 = 16, - -- MarkerTypeNumber7 = 17, - -- MarkerTypeNumber8 = 18, - -- MarkerTypeNumber9 = 19, - -- MarkerTypeChevronUpx1 = 20, - -- MarkerTypeChevronUpx2 = 21, - -- MarkerTypeChevronUpx3 = 22, - -- MarkerTypeHorizontalCircleFat = 23, - -- MarkerTypeReplayIcon = 24, - -- MarkerTypeHorizontalCircleSkinny = 25, - -- MarkerTypeHorizontalCircleSkinny_Arrow = 26, - -- MarkerTypeHorizontalSplitArrowCircle = 27, - -- MarkerTypeDebugSphere = 28, - -- MarkerTypeDallorSign = 29, - -- MarkerTypeHorizontalBars = 30, - -- MarkerTypeWolfHead = 31 - -- }; - -- - -- dirX/Y/Z represent a heading on each axis in which the marker should face, alternatively you can rotate each axis independently with rotX/Y/Z (and set dirX/Y/Z all to 0). - -- - -- faceCamera - Rotates only the y-axis (the heading) towards the camera - -- - -- p19 - no effect, default value in script is 2 - -- - -- rotate - Rotates only on the y-axis (the heading) - -- - -- textureDict - Name of texture dictionary to load texture from (e.g. "GolfPutting") - -- - -- textureName - Name of texture inside dictionary to load (e.g. "PuttingMarker") - -- - -- drawOnEnts - Draws the marker onto any entities that intersect it - -- - -- basically what he said, except textureDict and textureName are totally not const char*, or if so, then they are always set to 0/NULL/nullptr in every script I checked, eg: - -- - -- bj.c: graphics::draw_marker(6, vParam0, 0f, 0f, 1f, 0f, 0f, 0f, 4f, 4f, 4f, 240, 200, 80, iVar1, 0, 0, 2, 0, 0, 0, false); - -- - -- his is what I used to draw an amber downward pointing chevron "V", has to be redrawn every frame. The 180 is for 180 degrees rotation around the Y axis, the 50 is alpha, assuming max is 100, but it will accept 255. - -- - -- GRAPHICS::DRAW_MARKER(2, v.x, v.y, v.z + 2, 0, 0, 0, 0, 180, 0, 2, 2, 2, 255, 128, 0, 50, 0, 1, 1, 0, 0, 0, 0); - -- - -- - ["DRAW_MARKER"]=--[[void]] function(--[[int]] type,--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[float]] dirX,--[[float]] dirY,--[[float]] dirZ,--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ,--[[float]] scaleX,--[[float]] scaleY,--[[float]] scaleZ,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha,--[[BOOL (bool)]] bobUpAndDown,--[[BOOL (bool)]] faceCamera,--[[int]] p19,--[[BOOL (bool)]] rotate,--[[string]] textureDict,--[[string]] textureName,--[[BOOL (bool)]] drawOnEnts)return native_invoker.unified_void(type, posX, posY, posZ, dirX, dirY, dirZ, rotX, rotY, rotZ, scaleX, scaleY, scaleZ, red, green, blue, alpha, bobUpAndDown, faceCamera, p19, rotate, textureDict, textureName, drawOnEnts, 0x28477EC23D892089, "iffffffffffffiiiibbibssb")end, - ["DRAW_MARKER_EX"]=--[[void]] function(--[[int]] type,--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[float]] dirX,--[[float]] dirY,--[[float]] dirZ,--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ,--[[float]] scaleX,--[[float]] scaleY,--[[float]] scaleZ,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha,--[[BOOL (bool)]] bobUpAndDown,--[[BOOL (bool)]] faceCamera,--[[Any (int)]] p19,--[[BOOL (bool)]] rotate,--[[string]] textureDict,--[[string]] textureName,--[[BOOL (bool)]] drawOnEnts,--[[BOOL (bool)]] p24,--[[BOOL (bool)]] p25)return native_invoker.unified_void(type, posX, posY, posZ, dirX, dirY, dirZ, rotX, rotY, rotZ, scaleX, scaleY, scaleZ, red, green, blue, alpha, bobUpAndDown, faceCamera, p19, rotate, textureDict, textureName, drawOnEnts, p24, p25, 0xE82728F0DE75D13A, "iffffffffffffiiiibbibssbbb")end, - -- Draws a 3D sphere, typically seen in the GTA:O freemode event "Penned In". - -- Example https://imgur.com/nCbtS4H - -- - -- alpha - The alpha for the sphere. Goes from 0.0 to 1.0. - ["DRAW_MARKER_SPHERE"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[int]] red,--[[int]] green,--[[int]] blue,--[[float]] alpha)return native_invoker.unified_void(x, y, z, radius, red, green, blue, alpha, 0x799017F9E3B10112, "ffffiiif")end, - -- Creates a checkpoint. Returns the handle of the checkpoint. - -- - -- 20/03/17 : Attention, checkpoints are already handled by the game itself, so you must not loop it like markers. - -- - -- Parameters: - -- * type - The type of checkpoint to create. See below for a list of checkpoint types. - -- * pos1 - The position of the checkpoint. - -- * pos2 - The position of the next checkpoint to point to. - -- * radius - The radius of the checkpoint. - -- * color - The color of the checkpoint. - -- * reserved - Special parameter, see below for details. Usually set to 0 in the scripts. - -- - -- Checkpoint types: - -- 0-4---------Cylinder: 1 arrow, 2 arrow, 3 arrows, CycleArrow, Checker - -- 5-9---------Cylinder: 1 arrow, 2 arrow, 3 arrows, CycleArrow, Checker - -- 10-14-------Ring: 1 arrow, 2 arrow, 3 arrows, CycleArrow, Checker - -- 15-19-------1 arrow, 2 arrow, 3 arrows, CycleArrow, Checker - -- 20-24-------Cylinder: 1 arrow, 2 arrow, 3 arrows, CycleArrow, Checker - -- 25-29-------Cylinder: 1 arrow, 2 arrow, 3 arrows, CycleArrow, Checker - -- 30-34-------Cylinder: 1 arrow, 2 arrow, 3 arrows, CycleArrow, Checker - -- 35-38-------Ring: Airplane Up, Left, Right, UpsideDown - -- 39----------? - -- 40----------Ring: just a ring - -- 41----------? - -- 42-44-------Cylinder w/ number (uses 'reserved' parameter) - -- 45-47-------Cylinder no arrow or number - -- - -- If using type 42-44, reserved sets number / number and shape to display - -- - -- 0-99------------Just numbers (0-99) - -- 100-109-----------------Arrow (0-9) - -- 110-119------------Two arrows (0-9) - -- 120-129----------Three arrows (0-9) - -- 130-139----------------Circle (0-9) - -- 140-149------------CycleArrow (0-9) - -- 150-159----------------Circle (0-9) - -- 160-169----Circle w/ pointer (0-9) - -- 170-179-------Perforated ring (0-9) - -- 180-189----------------Sphere (0-9) - ["CREATE_CHECKPOINT"]=--[[int]] function(--[[int]] type,--[[float]] posX1,--[[float]] posY1,--[[float]] posZ1,--[[float]] posX2,--[[float]] posY2,--[[float]] posZ2,--[[float]] diameter,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha,--[[int]] reserved)return native_invoker.unified_int(type, posX1, posY1, posZ1, posX2, posY2, posZ2, diameter, red, green, blue, alpha, reserved, 0x0134F0835AB6BFCB, "ifffffffiiiii")end, - ["SET_CHECKPOINT_INSIDE_CYLINDER_HEIGHT_SCALE"]=--[[void]] function(--[[int]] checkpoint,--[[float]] scale)return native_invoker.unified_void(checkpoint, scale, 0x4B5B4DA5D79F1943, "if")end, - ["SET_CHECKPOINT_INSIDE_CYLINDER_SCALE"]=--[[void]] function(--[[int]] checkpoint,--[[float]] scale)return native_invoker.unified_void(checkpoint, scale, 0x44621483FF966526, "if")end, - -- Sets the cylinder height of the checkpoint. - -- - -- Parameters: - -- * nearHeight - The height of the checkpoint when inside of the radius. - -- * farHeight - The height of the checkpoint when outside of the radius. - -- * radius - The radius of the checkpoint. - ["SET_CHECKPOINT_CYLINDER_HEIGHT"]=--[[void]] function(--[[int]] checkpoint,--[[float]] nearHeight,--[[float]] farHeight,--[[float]] radius)return native_invoker.unified_void(checkpoint, nearHeight, farHeight, radius, 0x2707AAE9D9297D89, "ifff")end, - -- Sets the checkpoint color. - ["SET_CHECKPOINT_RGBA"]=--[[void]] function(--[[int]] checkpoint,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha)return native_invoker.unified_void(checkpoint, red, green, blue, alpha, 0x7167371E8AD747F7, "iiiii")end, - -- Sets the checkpoint icon color. - ["SET_CHECKPOINT_RGBA2"]=--[[void]] function(--[[int]] checkpoint,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha)return native_invoker.unified_void(checkpoint, red, green, blue, alpha, 0xB9EA40907C680580, "iiiii")end, - -- This does not move an existing checkpoint... so wtf. - ["SET_CHECKPOINT_CLIPPLANE_WITH_POS_NORM"]=--[[void]] function(--[[int]] checkpoint,--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[float]] unkX,--[[float]] unkY,--[[float]] unkZ)return native_invoker.unified_void(checkpoint, posX, posY, posZ, unkX, unkY, unkZ, 0xF51D36185993515D, "iffffff")end, - ["SET_CHECKPOINT_FORCE_OLD_ARROW_POINTING"]=--[[void]] function(--[[int]] checkpoint)return native_invoker.unified_void(checkpoint, 0xFCF6788FC4860CD4, "i")end, - -- Unknown. Called after creating a checkpoint (type: 51) in the creators. - ["SET_CHECKPOINT_DECAL_ROT_ALIGNED_TO_CAMERA_ROT"]=--[[void]] function(--[[int]] checkpoint)return native_invoker.unified_void(checkpoint, 0x615D3925E87A3B26, "i")end, - ["SET_CHECKPOINT_FORCE_DIRECTION"]=--[[void]] function(--[[int]] checkpoint)return native_invoker.unified_void(checkpoint, 0xDB1EA9411C8911EC, "i")end, - ["SET_CHECKPOINT_DIRECTION"]=--[[void]] function(--[[int]] checkpoint,--[[float]] posX,--[[float]] posY,--[[float]] posZ)return native_invoker.unified_void(checkpoint, posX, posY, posZ, 0x3C788E7F6438754D, "ifff")end, - ["DELETE_CHECKPOINT"]=--[[void]] function(--[[int]] checkpoint)return native_invoker.unified_void(checkpoint, 0xF5ED37F54CD4D52E, "i")end, - ["DONT_RENDER_IN_GAME_UI"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x22A249A53034450A, "b")end, - ["FORCE_RENDER_IN_GAME_UI"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xDC459CFA0CCE245B, "b")end, - -- This function can requests texture dictonaries from following RPFs: - -- scaleform_generic.rpf - -- scaleform_minigames.rpf - -- scaleform_minimap.rpf - -- scaleform_web.rpf - -- - -- last param isnt a toggle - ["REQUEST_STREAMED_TEXTURE_DICT"]=--[[void]] function(--[[string]] textureDict,--[[BOOL (bool)]] p1)return native_invoker.unified_void(textureDict, p1, 0xDFA2EF8E04127DD5, "sb")end, - ["HAS_STREAMED_TEXTURE_DICT_LOADED"]=--[[BOOL (bool)]] function(--[[string]] textureDict)return native_invoker.unified_bool(textureDict, 0x0145F696AAAAD2E4, "s")end, - ["SET_STREAMED_TEXTURE_DICT_AS_NO_LONGER_NEEDED"]=--[[void]] function(--[[string]] textureDict)return native_invoker.unified_void(textureDict, 0xBE2CACCF5A8AA805, "s")end, - -- Draws a rectangle on the screen. - -- - -- -x: The relative X point of the center of the rectangle. (0.0-1.0, 0.0 is the left edge of the screen, 1.0 is the right edge of the screen) - -- - -- -y: The relative Y point of the center of the rectangle. (0.0-1.0, 0.0 is the top edge of the screen, 1.0 is the bottom edge of the screen) - -- - -- -width: The relative width of the rectangle. (0.0-1.0, 1.0 means the whole screen width) - -- - -- -height: The relative height of the rectangle. (0.0-1.0, 1.0 means the whole screen height) - -- - -- -R: Red part of the color. (0-255) - -- - -- -G: Green part of the color. (0-255) - -- - -- -B: Blue part of the color. (0-255) - -- - -- -A: Alpha part of the color. (0-255, 0 means totally transparent, 255 means totally opaque) - -- - -- The total number of rectangles to be drawn in one frame is apparently limited to 399. - -- - ["DRAW_RECT"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] width,--[[float]] height,--[[int]] r,--[[int]] g,--[[int]] b,--[[int]] a,--[[BOOL (bool)]] p8)return native_invoker.unified_void(x, y, width, height, r, g, b, a, p8, 0x3A618A217E5154F0, "ffffiiiib")end, - -- Sets a flag defining whether or not script draw commands should continue being drawn behind the pause menu. This is usually used for TV channels and other draw commands that are used with a world render target. - ["SET_SCRIPT_GFX_DRAW_BEHIND_PAUSEMENU"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xC6372ECD45D73BCD, "b")end, - -- Sets the draw order for script draw commands. - -- - -- Examples from decompiled scripts: - -- GRAPHICS::SET_SCRIPT_GFX_DRAW_ORDER(7); - -- GRAPHICS::DRAW_RECT(0.5, 0.5, 3.0, 3.0, v_4, v_5, v_6, a_0._f172, 0); - -- - -- GRAPHICS::SET_SCRIPT_GFX_DRAW_ORDER(1); - -- GRAPHICS::DRAW_RECT(0.5, 0.5, 1.5, 1.5, 0, 0, 0, 255, 0); - ["SET_SCRIPT_GFX_DRAW_ORDER"]=--[[void]] function(--[[int]] drawOrder)return native_invoker.unified_void(drawOrder, 0x61BB1D9B3A95D802, "i")end, - -- horizontalAlign: The horizontal alignment. This can be 67 ('C'), 76 ('L'), or 82 ('R'). - -- verticalAlign: The vertical alignment. This can be 67 ('C'), 66 ('B'), or 84 ('T'). - -- - -- This function anchors script draws to a side of the safe zone. This needs to be called to make the interface independent of the player's safe zone configuration. - -- - -- These values are equivalent to alignX and alignY in common:/data/ui/frontend.xml, which can be used as a baseline for default alignment. - -- - -- Using any other value (including 0) will result in the safe zone not being taken into account for this draw. The canonical value for this is 'I' (73). - -- - -- For example, you can use SET_SCRIPT_GFX_ALIGN(0, 84) to only scale on the Y axis (to the top), but not change the X axis. - -- - -- To reset the value, use RESET_SCRIPT_GFX_ALIGN. - ["SET_SCRIPT_GFX_ALIGN"]=--[[void]] function(--[[int]] horizontalAlign,--[[int]] verticalAlign)return native_invoker.unified_void(horizontalAlign, verticalAlign, 0xB8A850F20A067EB6, "ii")end, - -- This function resets the alignment set using SET_SCRIPT_GFX_ALIGN and SET_SCRIPT_GFX_ALIGN_PARAMS to the default values ('I', 'I'; 0, 0, 0, 0). - -- This should be used after having used the aforementioned functions in order to not affect any other scripts attempting to draw. - ["RESET_SCRIPT_GFX_ALIGN"]=--[[void]] function()return native_invoker.unified_void(0xE3A3DB414A373DAB, "")end, - -- Sets the draw offset/calculated size for SET_SCRIPT_GFX_ALIGN. If using any alignment other than left/top, the game expects the width/height to be configured using this native in order to get a proper starting position for the draw command. - ["SET_SCRIPT_GFX_ALIGN_PARAMS"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] w,--[[float]] h)return native_invoker.unified_void(x, y, w, h, 0xF5A2C681787E579D, "ffff")end, - -- Calculates the effective X/Y fractions when applying the values set by SET_SCRIPT_GFX_ALIGN and SET_SCRIPT_GFX_ALIGN_PARAMS - ["GET_SCRIPT_GFX_ALIGN_POSITION"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float* (pointer)]] calculatedX,--[[float* (pointer)]] calculatedY)return native_invoker.unified_void(x, y, calculatedX, calculatedY, 0x6DD8F5AA635EB4B2, "ffpp")end, - -- Gets the scale of safe zone. if the safe zone size scale is max, it will return 1.0. - ["GET_SAFE_ZONE_SIZE"]=--[[float]] function()return native_invoker.unified_float(0xBAF107B6BB2C97F0, "")end, - -- Draws a 2D sprite on the screen. - -- - -- Parameters: - -- textureDict - Name of texture dictionary to load texture from (e.g. "CommonMenu", "MPWeaponsCommon", etc.) - -- - -- textureName - Name of texture to load from texture dictionary (e.g. "last_team_standing_icon", "tennis_icon", etc.) - -- - -- screenX/Y - Screen offset (0.5 = center) - -- scaleX/Y - Texture scaling. Negative values can be used to flip the texture on that axis. (0.5 = half) - -- - -- heading - Texture rotation in degrees (default = 0.0) positive is clockwise, measured in degrees - -- - -- red,green,blue - Sprite color (default = 255/255/255) - -- - -- alpha - opacity level - ["DRAW_SPRITE"]=--[[void]] function(--[[string]] textureDict,--[[string]] textureName,--[[float]] screenX,--[[float]] screenY,--[[float]] width,--[[float]] height,--[[float]] heading,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha,--[[BOOL (bool)]] p11,--[[Any (int)]] p12)return native_invoker.unified_void(textureDict, textureName, screenX, screenY, width, height, heading, red, green, blue, alpha, p11, p12, 0xE7FFAE5EBF23D890, "ssfffffiiiibi")end, - -- Used in arcade games and Beam hack minigame in Doomsday Heist. I will most certainly dive into this to try replicate arcade games. - -- x position must be between 0.0 and 1.0 (1.0 being the most right side of the screen) - -- y position must be between 0.0 and 1.0 (1.0 being the most bottom side of the screen) - -- width 0.0 - 1.0 is the reasonable amount generally - -- height 0.0 - 1.0 is the reasonable amount generally - -- p6 almost always 0.0 - -- p11 seems to be unknown but almost always 0 int - ["DRAW_SPRITE_ARX"]=--[[void]] function(--[[string]] textureDict,--[[string]] textureName,--[[float]] x,--[[float]] y,--[[float]] width,--[[float]] height,--[[float]] p6,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha,--[[Any (int)]] p11,--[[Any (int)]] p12)return native_invoker.unified_void(textureDict, textureName, x, y, width, height, p6, red, green, blue, alpha, p11, p12, 0x2D3B147AFAD49DE0, "ssfffffiiiiii")end, - -- Similar to _DRAW_SPRITE, but seems to be some kind of "interactive" sprite, at least used by render targets. - -- These seem to be the only dicts ever requested by this native: - -- - -- prop_screen_biker_laptop - -- Prop_Screen_GR_Disruption - -- Prop_Screen_TaleOfUs - -- prop_screen_nightclub - -- Prop_Screen_IE_Adhawk - -- prop_screen_sm_free_trade_shipping - -- prop_screen_hacker_truck - -- MPDesktop - -- Prop_Screen_Nightclub - -- And a few others - -- - ["DRAW_SPRITE_NAMED_RENDERTARGET"]=--[[void]] function(--[[string]] textureDict,--[[string]] textureName,--[[float]] screenX,--[[float]] screenY,--[[float]] width,--[[float]] height,--[[float]] heading,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha,--[[Any (int)]] p11)return native_invoker.unified_void(textureDict, textureName, screenX, screenY, width, height, heading, red, green, blue, alpha, p11, 0x2BC54A8188768488, "ssfffffiiiii")end, - -- Similar to DRAW_SPRITE, but allows to specify the texture coordinates used to draw the sprite. - -- - -- u1, v1 - texture coordinates for the top-left corner - -- u2, v2 - texture coordinates for the bottom-right corner - ["DRAW_SPRITE_ARX_WITH_UV"]=--[[void]] function(--[[string]] textureDict,--[[string]] textureName,--[[float]] x,--[[float]] y,--[[float]] width,--[[float]] height,--[[float]] u1,--[[float]] v1,--[[float]] u2,--[[float]] v2,--[[float]] heading,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha,--[[Any (int)]] p15)return native_invoker.unified_void(textureDict, textureName, x, y, width, height, u1, v1, u2, v2, heading, red, green, blue, alpha, p15, 0x95812F9B26074726, "ssfffffffffiiiii")end, - -- Example: - -- GRAPHICS::ADD_ENTITY_ICON(a_0, "MP_Arrow"); - -- - -- I tried this and nothing happened... - ["ADD_ENTITY_ICON"]=--[[int]] function(--[[Entity (int)]] entity,--[[string]] icon)return native_invoker.unified_int(entity, icon, 0x9CD43EEE12BF4DD0, "is")end, - ["SET_ENTITY_ICON_VISIBILITY"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0xE0E8BEECCA96BA31, "ib")end, - ["SET_ENTITY_ICON_COLOR"]=--[[void]] function(--[[Entity (int)]] entity,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha)return native_invoker.unified_void(entity, red, green, blue, alpha, 0x1D5F595CCAE2E238, "iiiii")end, - -- Sets the on-screen drawing origin for draw-functions (which is normally x=0,y=0 in the upper left corner of the screen) to a world coordinate. - -- From now on, the screen coordinate which displays the given world coordinate on the screen is seen as x=0,y=0. - -- - -- Example in C#: - -- Vector3 boneCoord = somePed.GetBoneCoord(Bone.SKEL_Head); - -- Function.Call(Hash.SET_DRAW_ORIGIN, boneCoord.X, boneCoord.Y, boneCoord.Z, 0); - -- Function.Call(Hash.DRAW_SPRITE, "helicopterhud", "hud_corner", -0.01, -0.015, 0.013, 0.013, 0.0, 255, 0, 0, 200); - -- Function.Call(Hash.DRAW_SPRITE, "helicopterhud", "hud_corner", 0.01, -0.015, 0.013, 0.013, 90.0, 255, 0, 0, 200); - -- Function.Call(Hash.DRAW_SPRITE, "helicopterhud", "hud_corner", -0.01, 0.015, 0.013, 0.013, 270.0, 255, 0, 0, 200); - -- Function.Call(Hash.DRAW_SPRITE, "helicopterhud", "hud_corner", 0.01, 0.015, 0.013, 0.013, 180.0, 255, 0, 0, 200); - -- Function.Call(Hash.CLEAR_DRAW_ORIGIN); - -- - -- Result: www11.pic-upload.de/19.06.15/bkqohvil2uao.jpg - -- If the pedestrian starts walking around now, the sprites are always around her head, no matter where the head is displayed on the screen. - -- - -- This function also effects the drawing of texts and other UI-elements. - -- The effect can be reset by calling GRAPHICS::CLEAR_DRAW_ORIGIN(). - ["SET_DRAW_ORIGIN"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] p3)return native_invoker.unified_void(x, y, z, p3, 0xAA0008F3BBB8F416, "fffb")end, - -- Resets the screen's draw-origin which was changed by the function GRAPHICS::SET_DRAW_ORIGIN(...) back to x=0,y=0. - -- - -- See GRAPHICS::SET_DRAW_ORIGIN(...) for further information. - ["CLEAR_DRAW_ORIGIN"]=--[[void]] function()return native_invoker.unified_void(0xFF0B610F6BE0D7AF, "")end, - ["SET_BINK_MOVIE"]=--[[int]] function(--[[string]] name)return native_invoker.unified_int(name, 0x338D9F609FD632DB, "s")end, - ["PLAY_BINK_MOVIE"]=--[[void]] function(--[[int]] binkMovie)return native_invoker.unified_void(binkMovie, 0x70D2CC8A542A973C, "i")end, - ["STOP_BINK_MOVIE"]=--[[void]] function(--[[int]] binkMovie)return native_invoker.unified_void(binkMovie, 0x63606A61DE68898A, "i")end, - ["RELEASE_BINK_MOVIE"]=--[[void]] function(--[[int]] binkMovie)return native_invoker.unified_void(binkMovie, 0x04D950EEFA4EED8C, "i")end, - ["DRAW_BINK_MOVIE"]=--[[void]] function(--[[int]] binkMovie,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[int]] r,--[[int]] g,--[[int]] b,--[[int]] a)return native_invoker.unified_void(binkMovie, p1, p2, p3, p4, p5, r, g, b, a, 0x7118E83EEB9F7238, "ifffffiiii")end, - -- In percentage: 0.0 - 100.0 - ["SET_BINK_MOVIE_TIME"]=--[[void]] function(--[[int]] binkMovie,--[[float]] progress)return native_invoker.unified_void(binkMovie, progress, 0x0CB6B3446855B57A, "if")end, - -- In percentage: 0.0 - 100.0 - ["GET_BINK_MOVIE_TIME"]=--[[float]] function(--[[int]] binkMovie)return native_invoker.unified_float(binkMovie, 0x8E17DDD6B9D5BF29, "i")end, - -- binkMovie: Is return value from _SET_BINK_MOVIE. Has something to do with bink volume? (audRequestedSettings::SetVolumeCurveScale) - ["SET_BINK_MOVIE_VOLUME"]=--[[void]] function(--[[int]] binkMovie,--[[float]] value)return native_invoker.unified_void(binkMovie, value, 0xAFF33B1178172223, "if")end, - -- Might be more appropriate in AUDIO? - ["ATTACH_TV_AUDIO_TO_ENTITY"]=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0x845BAD77CC770633, "i")end, - ["SET_BINK_MOVIE_AUDIO_FRONTEND"]=--[[void]] function(--[[int]] binkMovie,--[[BOOL (bool)]] p1)return native_invoker.unified_void(binkMovie, p1, 0xF816F2933752322D, "ib")end, - -- Probably changes tvs from being a 3d audio to being "global" audio - ["SET_TV_AUDIO_FRONTEND"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x113D2C5DC57E1774, "b")end, - ["SET_BINK_SHOULD_SKIP"]=--[[void]] function(--[[int]] binkMovie,--[[BOOL (bool)]] bShouldSkip)return native_invoker.unified_void(binkMovie, bShouldSkip, 0x6805D58CAA427B72, "ib")end, - ["LOAD_MOVIE_MESH_SET"]=--[[int]] function(--[[string]] movieMeshSetName)return native_invoker.unified_int(movieMeshSetName, 0xB66064452270E8F1, "s")end, - ["RELEASE_MOVIE_MESH_SET"]=--[[void]] function(--[[int]] movieMeshSet)return native_invoker.unified_void(movieMeshSet, 0xEB119AA014E89183, "i")end, - ["QUERY_MOVIE_MESH_SET_STATE"]=--[[int]] function(--[[Any (int)]] p0)return native_invoker.unified_int(p0, 0x9B6E70C5CEEF4EEB, "i")end, - -- int screenresx,screenresy; - -- GET_SCREEN_RESOLUTION(&screenresx,&screenresy); - ["GET_SCREEN_RESOLUTION"]=--[[void]] function(--[[int* (pointer)]] x,--[[int* (pointer)]] y)return native_invoker.unified_void(x, y, 0x888D57E407E63624, "pp")end, - -- Returns current screen resolution. - ["GET_ACTUAL_SCREEN_RESOLUTION"]=--[[void]] function(--[[int* (pointer)]] x,--[[int* (pointer)]] y)return native_invoker.unified_void(x, y, 0x873C9F3104101DD3, "pp")end, - ["GET_ASPECT_RATIO"]=--[[float]] function(--[[BOOL (bool)]] b)return native_invoker.unified_float(b, 0xF1307EF624A80D87, "b")end, - ["GET_SCREEN_ASPECT_RATIO"]=--[[float]] function()return native_invoker.unified_float(0xB2EBE8CBC58B90E9, "")end, - -- Setting Aspect Ratio Manually in game will return: - -- - -- false - for Narrow format Aspect Ratios (3:2, 4:3, 5:4, etc. ) - -- true - for Wide format Aspect Ratios (5:3, 16:9, 16:10, etc. ) - -- - -- Setting Aspect Ratio to "Auto" in game will return "false" or "true" based on the actual set Resolution Ratio. - ["GET_IS_WIDESCREEN"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x30CF4BDA4FCB1905, "")end, - -- false = Any resolution < 1280x720 - -- true = Any resolution >= 1280x720 - ["GET_IS_HIDEF"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x84ED31191CC5D2C9, "")end, - ["ADJUST_NEXT_POS_SIZE_AS_NORMALIZED_16_9"]=--[[void]] function()return native_invoker.unified_void(0xEFABC7722293DA7C, "")end, - -- Enables Night Vision. - -- - -- Example: - -- C#: Function.Call(Hash.SET_NIGHTVISION, true); - -- C++: GRAPHICS::SET_NIGHTVISION(true); - -- - -- BOOL toggle: - -- true = turns night vision on for your player. - -- false = turns night vision off for your player. - ["SET_NIGHTVISION"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x18F621F7A5B1F85D, "b")end, - ["GET_REQUESTINGNIGHTVISION"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x35FB78DC42B7BD21, "")end, - ["GET_USINGNIGHTVISION"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x2202A3F42C8E5F79, "")end, - ["SET_EXPOSURETWEAK"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xEF398BEEE4EF45F9, "b")end, - ["FORCE_EXPOSURE_READBACK"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x814AF7DCAACC597B, "b")end, - ["OVERRIDE_NIGHTVISION_LIGHT_RANGE"]=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0x43FA7CBE20DAB219, "f")end, - ["SET_NOISEOVERIDE"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xE787BF1C5CF823C9, "b")end, - ["SET_NOISINESSOVERIDE"]=--[[void]] function(--[[float]] value)return native_invoker.unified_void(value, 0xCB6A7C3BB17A0C67, "f")end, - -- Convert a world coordinate into its relative screen coordinate. (WorldToScreen) - -- - -- Returns a boolean; whether or not the operation was successful. It will return false if the coordinates given are not visible to the rendering camera. - -- - -- - -- For .NET users... - -- - -- VB: - -- Public Shared Function World3DToScreen2d(pos as vector3) As Vector2 - -- - -- Dim x2dp, y2dp As New Native.OutputArgument - -- - -- Native.Function.Call(Of Boolean)(Native.Hash.GET_SCREEN_COORD_FROM_WORLD_COORD , pos.x, pos.y, pos.z, x2dp, y2dp) - -- Return New Vector2(x2dp.GetResult(Of Single), y2dp.GetResult(Of Single)) - -- - -- End Function - -- - -- C#: - -- Vector2 World3DToScreen2d(Vector3 pos) - -- { - -- var x2dp = new OutputArgument(); - -- var y2dp = new OutputArgument(); - -- - -- Function.Call(Hash.GET_SCREEN_COORD_FROM_WORLD_COORD , pos.X, pos.Y, pos.Z, x2dp, y2dp); - -- return new Vector2(x2dp.GetResult(), y2dp.GetResult()); - -- } - -- //USE VERY SMALL VALUES FOR THE SCALE OF RECTS/TEXT because it is dramatically larger on screen than in 3D, e.g '0.05' small. - -- - -- Used to be called _WORLD3D_TO_SCREEN2D - -- - -- I thought we lost you from the scene forever. It does seem however that calling SET_DRAW_ORIGIN then your natives, then ending it. Seems to work better for certain things such as keeping boxes around people for a predator missile e.g. - ["GET_SCREEN_COORD_FROM_WORLD_COORD"]=--[[BOOL (bool)]] function(--[[float]] worldX,--[[float]] worldY,--[[float]] worldZ,--[[float* (pointer)]] screenX,--[[float* (pointer)]] screenY)return native_invoker.unified_bool(worldX, worldY, worldZ, screenX, screenY, 0x34E82F05DF2974F5, "fffpp")end, - -- Returns the texture resolution of the passed texture dict+name. - -- - -- Note: Most texture resolutions are doubled compared to the console version of the game. - ["GET_TEXTURE_RESOLUTION"]=--[[Vector3 (vector3)]] function(--[[string]] textureDict,--[[string]] textureName)return native_invoker.unified_vector3(textureDict, textureName, 0x35736EE65BD00C11, "ss")end, - -- Overriding ped badge texture to a passed texture. It's synced between players (even custom textures!), don't forget to request used dict on *all* clients to make it sync properly. Can be removed by passing empty strings. - ["OVERRIDE_PED_CREW_LOGO_TEXTURE"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[string]] txd,--[[string]] txn)return native_invoker.unified_bool(ped, txd, txn, 0x95EB5E34F821BABE, "iss")end, - ["SET_DISTANCE_BLUR_STRENGTH_OVERRIDE"]=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0xE2892E7E55D7073A, "f")end, - -- Purpose of p0 and p1 unknown. - ["SET_FLASH"]=--[[void]] function(--[[float]] p0,--[[float]] p1,--[[float]] fadeIn,--[[float]] duration,--[[float]] fadeOut)return native_invoker.unified_void(p0, p1, fadeIn, duration, fadeOut, 0x0AB84296FED9CFC6, "fffff")end, - ["DISABLE_OCCLUSION_THIS_FRAME"]=--[[void]] function()return native_invoker.unified_void(0x3669F1B198DCAA4F, "")end, - -- Does not affect weapons, particles, fire/explosions, flashlights or the sun. - -- When set to true, all emissive textures (including ped components that have light effects), street lights, building lights, vehicle lights, etc will all be turned off. - -- - -- Used in Humane Labs Heist for EMP. - -- - -- state: True turns off all artificial light sources in the map: buildings, street lights, car lights, etc. False turns them back on. - ["SET_ARTIFICIAL_LIGHTS_STATE"]=--[[void]] function(--[[BOOL (bool)]] state)return native_invoker.unified_void(state, 0x1268615ACE24D504, "b")end, - -- If "blackout" is enabled, this native allows you to ignore "blackout" for vehicles. - ["SET_ARTIFICIAL_VEHICLE_LIGHTS_STATE"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xE2B187C0939B3D32, "b")end, - ["DISABLE_HDTEX_THIS_FRAME"]=--[[void]] function()return native_invoker.unified_void(0xC35A6D07C93802B2, "")end, - -- Creates a tracked point, useful for checking the visibility of a 3D point on screen. - ["CREATE_TRACKED_POINT"]=--[[int]] function()return native_invoker.unified_int(0xE2C9439ED45DEA60, "")end, - ["SET_TRACKED_POINT_INFO"]=--[[void]] function(--[[int]] point,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius)return native_invoker.unified_void(point, x, y, z, radius, 0x164ECBB3CF750CB0, "iffff")end, - ["IS_TRACKED_POINT_VISIBLE"]=--[[BOOL (bool)]] function(--[[int]] point)return native_invoker.unified_bool(point, 0xC45CCDAAC9221CA8, "i")end, - ["DESTROY_TRACKED_POINT"]=--[[void]] function(--[[int]] point)return native_invoker.unified_void(point, 0xB25DC90BAD56CA42, "i")end, - -- This function is hard-coded to always return 0. - ["SET_GRASS_CULL_SPHERE"]=--[[int]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3)return native_invoker.unified_int(p0, p1, p2, p3, 0xBE197EAA669238F4, "ffff")end, - -- This native does absolutely nothing, just a nullsub - ["REMOVE_GRASS_CULL_SPHERE"]=--[[void]] function(--[[int]] handle)return native_invoker.unified_void(handle, 0x61F95E5BB3E0A8C6, "i")end, - ["PROCGRASS_ENABLE_CULLSPHERE"]=--[[void]] function(--[[int]] handle,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] scale)return native_invoker.unified_void(handle, x, y, z, scale, 0xAE51BC858F32BA66, "iffff")end, - ["PROCGRASS_DISABLE_CULLSPHERE"]=--[[void]] function(--[[int]] handle)return native_invoker.unified_void(handle, 0x649C97D52332341A, "i")end, - ["PROCGRASS_IS_CULLSPHERE_ENABLED"]=--[[BOOL (bool)]] function(--[[int]] handle)return native_invoker.unified_bool(handle, 0x2C42340F916C5930, "i")end, - ["PROCGRASS_ENABLE_AMBSCALESCAN"]=--[[void]] function()return native_invoker.unified_void(0x14FC5833464340A8, "")end, - ["PROCGRASS_DISABLE_AMBSCALESCAN"]=--[[void]] function()return native_invoker.unified_void(0x0218BA067D249DEA, "")end, - ["DISABLE_PROCOBJ_CREATION"]=--[[void]] function()return native_invoker.unified_void(0x1612C45F9E3E0D44, "")end, - ["ENABLE_PROCOBJ_CREATION"]=--[[void]] function()return native_invoker.unified_void(0x5DEBD9C4DC995692, "")end, - ["GRASSBATCH_ENABLE_FLATTENING_EXT_IN_SPHERE"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[Any (int)]] p3,--[[float]] p4,--[[float]] p5,--[[float]] p6,--[[float]] scale)return native_invoker.unified_void(x, y, z, p3, p4, p5, p6, scale, 0xAAE9BE70EC7C69AB, "fffiffff")end, - -- Wraps 0xAAE9BE70EC7C69AB with FLT_MAX as p7, Jenkins: 0x73E96210? - ["GRASSBATCH_ENABLE_FLATTENING_IN_SPHERE"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[float]] p4,--[[float]] p5,--[[float]] p6)return native_invoker.unified_void(x, y, z, radius, p4, p5, p6, 0x6D955F6A9E0295B1, "fffffff")end, - ["GRASSBATCH_DISABLE_FLATTENING"]=--[[void]] function()return native_invoker.unified_void(0x302C91AB2D477F7E, "")end, - ["CASCADE_SHADOWS_INIT_SESSION"]=--[[void]] function()return native_invoker.unified_void(0x03FC694AE06C5A20, "")end, - ["CASCADE_SHADOWS_SET_CASCADE_BOUNDS"]=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[BOOL (bool)]] p6,--[[float]] p7)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, p7, 0xD2936CAB8B58FCBD, "ibffffbf")end, - ["CASCADE_SHADOWS_SET_CASCADE_BOUNDS_SCALE"]=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0x5F0F3F56635809EF, "f")end, - ["CASCADE_SHADOWS_SET_ENTITY_TRACKER_SCALE"]=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0x5E9DAF5A20F15908, "f")end, - ["CASCADE_SHADOWS_SET_SPLIT_Z_EXP_WEIGHT"]=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0x36F6626459D91457, "f")end, - ["CASCADE_SHADOWS_SET_BOUND_POSITION"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x259BA6D4E6F808F1, "i")end, - -- When this is set to ON, shadows only draw as you get nearer. - -- - -- When OFF, they draw from a further distance. - ["CASCADE_SHADOWS_ENABLE_ENTITY_TRACKER"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x80ECBC0C856D3B0B, "b")end, - ["CASCADE_SHADOWS_SET_SCREEN_SIZE_CHECK_ENABLED"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x25FC3E33A31AD0C9, "b")end, - -- Possible values: - -- "CSM_ST_POINT" - -- "CSM_ST_LINEAR" - -- "CSM_ST_TWOTAP" - -- "CSM_ST_BOX3x3" - -- "CSM_ST_BOX4x4" - -- "CSM_ST_DITHER2_LINEAR" - -- "CSM_ST_CUBIC" - -- "CSM_ST_DITHER4" - -- "CSM_ST_DITHER16" - -- "CSM_ST_SOFT16" - -- "CSM_ST_DITHER16_RPDB" - -- "CSM_ST_POISSON16_RPDB_GNORM" - -- "CSM_ST_HIGHRES_BOX4x4" - -- "CSM_ST_CLOUDS_SIMPLE" - -- "CSM_ST_CLOUDS_LINEAR" - -- "CSM_ST_CLOUDS_TWOTAP" - -- "CSM_ST_CLOUDS_BOX3x3" - -- "CSM_ST_CLOUDS_BOX4x4" - -- "CSM_ST_CLOUDS_DITHER2_LINEAR" - -- "CSM_ST_CLOUDS_SOFT16" - -- "CSM_ST_CLOUDS_DITHER16_RPDB" - -- "CSM_ST_CLOUDS_POISSON16_RPDB_GNORM" - ["CASCADE_SHADOWS_SET_SHADOW_SAMPLE_TYPE"]=--[[void]] function(--[[string]] type)return native_invoker.unified_void(type, 0xB11D94BC55F41932, "s")end, - ["CASCADE_SHADOWS_CLEAR_SHADOW_SAMPLE_TYPE"]=--[[void]] function()return native_invoker.unified_void(0x27CB772218215325, "")end, - ["CASCADE_SHADOWS_SET_AIRCRAFT_MODE"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x6DDBF9DFFC4AC080, "b")end, - ["CASCADE_SHADOWS_SET_DYNAMIC_DEPTH_MODE"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xD39D13C9FEBF0511, "b")end, - ["CASCADE_SHADOWS_SET_DYNAMIC_DEPTH_VALUE"]=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0x02AC28F3A01FA04A, "f")end, - ["CASCADE_SHADOWS_ENABLE_FREEZER"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x0AE73D8DF3A762B2, "b")end, - ["WATER_REFLECTION_SET_SCRIPT_OBJECT_VISIBILITY"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xCA465D9CC0D231BA, "i")end, - ["GOLF_TRAIL_SET_ENABLED"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xA51C4B86B71652AE, "b")end, - -- p8 seems to always be false. - ["GOLF_TRAIL_SET_PATH"]=--[[void]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[float]] p6,--[[float]] p7,--[[BOOL (bool)]] p8)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, p7, p8, 0x312342E1A4874F3F, "ffffffffb")end, - ["GOLF_TRAIL_SET_RADIUS"]=--[[void]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2)return native_invoker.unified_void(p0, p1, p2, 0x2485D34E50A22E84, "fff")end, - ["GOLF_TRAIL_SET_COLOUR"]=--[[void]] function(--[[int]] p0,--[[int]] p1,--[[int]] p2,--[[int]] p3,--[[int]] p4,--[[int]] p5,--[[int]] p6,--[[int]] p7,--[[int]] p8,--[[int]] p9,--[[int]] p10,--[[int]] p11)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, 0x12995F2E53FFA601, "iiiiiiiiiiii")end, - ["GOLF_TRAIL_SET_TESSELLATION"]=--[[void]] function(--[[int]] p0,--[[int]] p1)return native_invoker.unified_void(p0, p1, 0xDBAA5EC848BA2D46, "ii")end, - ["GOLF_TRAIL_SET_FIXED_CONTROL_POINT_ENABLE"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xC0416B061F2B7E5E, "b")end, - -- 12 matches across 4 scripts. All 4 scripts were job creators. - -- - -- type ranged from 0 - 2. - -- p4 was always 0.2f. Likely scale. - -- assuming p5 - p8 is RGBA, the graphic is always yellow (255, 255, 0, 255). - -- - -- Tested but noticed nothing. - ["GOLF_TRAIL_SET_FIXED_CONTROL_POINT"]=--[[void]] function(--[[int]] type,--[[float]] xPos,--[[float]] yPos,--[[float]] zPos,--[[float]] p4,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha)return native_invoker.unified_void(type, xPos, yPos, zPos, p4, red, green, blue, alpha, 0xB1BB03742917A5D6, "iffffiiii")end, - -- Only appeared in Golf & Golf_mp. Parameters were all ptrs - ["GOLF_TRAIL_SET_SHADER_PARAMS"]=--[[void]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0x9CFDD90B2B844BF7, "fffff")end, - ["GOLF_TRAIL_SET_FACING"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x06F761EA47C1D3ED, "b")end, - ["GOLF_TRAIL_GET_MAX_HEIGHT"]=--[[float]] function()return native_invoker.unified_float(0xA4819F5E23E2FFAD, "")end, - ["GOLF_TRAIL_GET_VISUAL_CONTROL_POINT"]=--[[Vector3 (vector3)]] function(--[[int]] p0)return native_invoker.unified_vector3(p0, 0xA4664972A9B8F8BA, "i")end, - -- Toggles Heatvision on/off. - ["SET_SEETHROUGH"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x7E08924259E08CE0, "b")end, - ["GET_USINGSEETHROUGH"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x44B80ABAB9D80BD3, "")end, - ["SEETHROUGH_RESET"]=--[[void]] function()return native_invoker.unified_void(0x70A64C0234EF522C, "")end, - ["SEETHROUGH_SET_FADE_STARTDISTANCE"]=--[[void]] function(--[[float]] distance)return native_invoker.unified_void(distance, 0xA78DE25577300BA1, "f")end, - ["SEETHROUGH_SET_FADE_ENDDISTANCE"]=--[[void]] function(--[[float]] distance)return native_invoker.unified_void(distance, 0x9D75795B9DC6EBBF, "f")end, - ["SEETHROUGH_GET_MAX_THICKNESS"]=--[[float]] function()return native_invoker.unified_float(0x43DBAE39626CE83F, "")end, - -- 0.0 = you will not be able to see people behind the walls. 50.0 and more = you will see everyone through the walls. More value is "better" view. See https://gfycat.com/FirmFlippantGourami - -- min: 1.0 - -- max: 10000.0 - ["SEETHROUGH_SET_MAX_THICKNESS"]=--[[void]] function(--[[float]] thickness)return native_invoker.unified_void(thickness, 0x0C8FAC83902A62DF, "f")end, - ["SEETHROUGH_SET_NOISE_MIN"]=--[[void]] function(--[[float]] amount)return native_invoker.unified_void(amount, 0xFF5992E1C9E65D05, "f")end, - ["SEETHROUGH_SET_NOISE_MAX"]=--[[void]] function(--[[float]] amount)return native_invoker.unified_void(amount, 0xFEBFBFDFB66039DE, "f")end, - ["SEETHROUGH_SET_HILIGHT_INTENSITY"]=--[[void]] function(--[[float]] intensity)return native_invoker.unified_void(intensity, 0x19E50EB6E33E1D28, "f")end, - ["SEETHROUGH_SET_HIGHLIGHT_NOISE"]=--[[void]] function(--[[float]] noise)return native_invoker.unified_void(noise, 0x1636D7FC127B10D2, "f")end, - -- min: 0.0 - -- max: 0.75 - ["SEETHROUGH_SET_HEATSCALE"]=--[[void]] function(--[[int]] index,--[[float]] heatScale)return native_invoker.unified_void(index, heatScale, 0xD7D0B00177485411, "if")end, - ["SEETHROUGH_SET_COLOR_NEAR"]=--[[void]] function(--[[int]] red,--[[int]] green,--[[int]] blue)return native_invoker.unified_void(red, green, blue, 0x1086127B3A63505E, "iii")end, - -- Setter for GET_MOTIONBLUR_MAX_VEL_SCALER - ["SET_MOTIONBLUR_MAX_VEL_SCALER"]=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0xB3C641F3630BF6DA, "f")end, - -- Getter for SET_MOTIONBLUR_MAX_VEL_SCALER - ["GET_MOTIONBLUR_MAX_VEL_SCALER"]=--[[float]] function()return native_invoker.unified_float(0xE59343E9E96529E7, "")end, - ["SET_FORCE_MOTIONBLUR"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x6A51F78772175A51, "b")end, - ["TOGGLE_PLAYER_DAMAGE_OVERLAY"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xE63D7C6EECECB66B, "b")end, - -- Sets an value related to timecycles. - ["RESET_ADAPTATION"]=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0xE3E2C1B4C59DBC77, "i")end, - -- time in ms to transition to fully blurred screen - ["TRIGGER_SCREENBLUR_FADE_IN"]=--[[BOOL (bool)]] function(--[[float]] transitionTime)return native_invoker.unified_bool(transitionTime, 0xA328A24AAA6B7FDC, "f")end, - -- time in ms to transition from fully blurred to normal - ["TRIGGER_SCREENBLUR_FADE_OUT"]=--[[BOOL (bool)]] function(--[[float]] transitionTime)return native_invoker.unified_bool(transitionTime, 0xEFACC8AEF94430D5, "f")end, - ["DISABLE_SCREENBLUR_FADE"]=--[[void]] function()return native_invoker.unified_void(0xDE81239437E8C5A8, "")end, - ["GET_SCREENBLUR_FADE_CURRENT_TIME"]=--[[float]] function()return native_invoker.unified_float(0x5CCABFFCA31DDE33, "")end, - -- Returns whether screen transition to blur/from blur is running. - ["IS_SCREENBLUR_FADE_RUNNING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x7B226C785A52A0A9, "")end, - ["TOGGLE_PAUSED_RENDERPHASES"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xDFC252D8A3E15AB7, "b")end, - ["GET_TOGGLE_PAUSED_RENDERPHASES_STATUS"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xEB3DAC2C86001E5E, "")end, - ["RESET_PAUSED_RENDERPHASES"]=--[[void]] function()return native_invoker.unified_void(0xE1C8709406F2C41C, "")end, - ["GRAB_PAUSEMENU_OWNERSHIP"]=--[[void]] function()return native_invoker.unified_void(0x851CD923176EBA7C, "")end, - ["SET_HIDOF_OVERRIDE"]=--[[void]] function(--[[BOOL (bool)]] p0,--[[BOOL (bool)]] p1,--[[float]] nearplaneOut,--[[float]] nearplaneIn,--[[float]] farplaneOut,--[[float]] farplaneIn)return native_invoker.unified_void(p0, p1, nearplaneOut, nearplaneIn, farplaneOut, farplaneIn, 0xBA3D65906822BED5, "bbffff")end, - ["SET_LOCK_ADAPTIVE_DOF_DISTANCE"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xB569F41F3E7E83A4, "b")end, - ["PHONEPHOTOEDITOR_TOGGLE"]=--[[BOOL (bool)]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_bool(p0, 0x7AC24EAB6D74118D, "b")end, - ["PHONEPHOTOEDITOR_IS_ACTIVE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xBCEDB009461DA156, "")end, - ["PHONEPHOTOEDITOR_SET_FRAME_TXD"]=--[[BOOL (bool)]] function(--[[string]] textureDict,--[[BOOL (bool)]] p1)return native_invoker.unified_bool(textureDict, p1, 0x27FEB5254759CDE3, "sb")end, - -- GRAPHICS::START_PARTICLE_FX_NON_LOOPED_AT_COORD("scr_paleto_roof_impact", -140.8576f, 6420.789f, 41.1391f, 0f, 0f, 267.3957f, 0x3F800000, 0, 0, 0); - -- - -- Axis - Invert Axis Flags - -- - -- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - -- - -- - -- ------------------------------------------------------------------- - -- C# - -- - -- Function.Call(Hash.START_PARTICLE_FX_NON_LOOPED_AT_COORD, = you are calling this function. - -- - -- char *effectname = This is an in-game effect name, for e.g. "scr_fbi4_trucks_crash" is used to give the effects when truck crashes etc - -- - -- float x, y, z pos = this one is Simple, you just have to declare, where do you want this effect to take place at, so declare the ordinates - -- - -- float xrot, yrot, zrot = Again simple? just mention the value in case if you want the effect to rotate. - -- - -- float scale = is declare the scale of the effect, this may vary as per the effects for e.g 1.0f - -- - -- bool xaxis, yaxis, zaxis = To bool the axis values. - -- - -- example: - -- Function.Call(Hash.START_PARTICLE_FX_NON_LOOPED_AT_COORD, "scr_fbi4_trucks_crash", GTA.Game.Player.Character.Position.X, GTA.Game.Player.Character.Position.Y, GTA.Game.Player.Character.Position.Z + 4f, 0, 0, 0, 5.5f, 0, 0, 0); - ["START_PARTICLE_FX_NON_LOOPED_AT_COORD"]=--[[BOOL (bool)]] function(--[[string]] effectName,--[[float]] xPos,--[[float]] yPos,--[[float]] zPos,--[[float]] xRot,--[[float]] yRot,--[[float]] zRot,--[[float]] scale,--[[BOOL (bool)]] xAxis,--[[BOOL (bool)]] yAxis,--[[BOOL (bool)]] zAxis)return native_invoker.unified_bool(effectName, xPos, yPos, zPos, xRot, yRot, zRot, scale, xAxis, yAxis, zAxis, 0x25129531F77B9ED3, "sfffffffbbb")end, - -- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - ["START_NETWORKED_PARTICLE_FX_NON_LOOPED_AT_COORD"]=--[[BOOL (bool)]] function(--[[string]] effectName,--[[float]] xPos,--[[float]] yPos,--[[float]] zPos,--[[float]] xRot,--[[float]] yRot,--[[float]] zRot,--[[float]] scale,--[[BOOL (bool)]] xAxis,--[[BOOL (bool)]] yAxis,--[[BOOL (bool)]] zAxis,--[[BOOL (bool)]] p11)return native_invoker.unified_bool(effectName, xPos, yPos, zPos, xRot, yRot, zRot, scale, xAxis, yAxis, zAxis, p11, 0xF56B8137DF10135D, "sfffffffbbbb")end, - -- GRAPHICS::START_PARTICLE_FX_NON_LOOPED_ON_PED_BONE("scr_sh_bong_smoke", PLAYER::PLAYER_PED_ID(), -0.025f, 0.13f, 0f, 0f, 0f, 0f, 31086, 0x3F800000, 0, 0, 0); - -- - -- Axis - Invert Axis Flags - -- - -- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - ["START_PARTICLE_FX_NON_LOOPED_ON_PED_BONE"]=--[[BOOL (bool)]] function(--[[string]] effectName,--[[Ped (int)]] ped,--[[float]] offsetX,--[[float]] offsetY,--[[float]] offsetZ,--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ,--[[int]] boneIndex,--[[float]] scale,--[[BOOL (bool)]] axisX,--[[BOOL (bool)]] axisY,--[[BOOL (bool)]] axisZ)return native_invoker.unified_bool(effectName, ped, offsetX, offsetY, offsetZ, rotX, rotY, rotZ, boneIndex, scale, axisX, axisY, axisZ, 0x0E7E72961BA18619, "siffffffifbbb")end, - -- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - ["START_NETWORKED_PARTICLE_FX_NON_LOOPED_ON_PED_BONE"]=--[[BOOL (bool)]] function(--[[string]] effectName,--[[Ped (int)]] ped,--[[float]] offsetX,--[[float]] offsetY,--[[float]] offsetZ,--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ,--[[int]] boneIndex,--[[float]] scale,--[[BOOL (bool)]] axisX,--[[BOOL (bool)]] axisY,--[[BOOL (bool)]] axisZ)return native_invoker.unified_bool(effectName, ped, offsetX, offsetY, offsetZ, rotX, rotY, rotZ, boneIndex, scale, axisX, axisY, axisZ, 0xA41B6A43642AC2CF, "siffffffifbbb")end, - -- Starts a particle effect on an entity for example your player. - -- - -- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - -- - -- Example: - -- C#: - -- Function.Call(Hash.REQUEST_NAMED_PTFX_ASSET, "scr_rcbarry2"); Function.Call(Hash.USE_PARTICLE_FX_ASSET, "scr_rcbarry2"); Function.Call(Hash.START_PARTICLE_FX_NON_LOOPED_ON_ENTITY, "scr_clown_appears", Game.Player.Character, 0.0, 0.0, -0.5, 0.0, 0.0, 0.0, 1.0, false, false, false); - -- - -- Internally this calls the same function as GRAPHICS::START_PARTICLE_FX_NON_LOOPED_ON_PED_BONE - -- however it uses -1 for the specified bone index, so it should be possible to start a non looped fx on an entity bone using that native - -- - -- -can confirm START_PARTICLE_FX_NON_LOOPED_ON_PED_BONE does NOT work on vehicle bones. - ["START_PARTICLE_FX_NON_LOOPED_ON_ENTITY"]=--[[BOOL (bool)]] function(--[[string]] effectName,--[[Entity (int)]] entity,--[[float]] offsetX,--[[float]] offsetY,--[[float]] offsetZ,--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ,--[[float]] scale,--[[BOOL (bool)]] axisX,--[[BOOL (bool)]] axisY,--[[BOOL (bool)]] axisZ)return native_invoker.unified_bool(effectName, entity, offsetX, offsetY, offsetZ, rotX, rotY, rotZ, scale, axisX, axisY, axisZ, 0x0D53A3B8DA0809D2, "sifffffffbbb")end, - -- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - ["START_NETWORKED_PARTICLE_FX_NON_LOOPED_ON_ENTITY"]=--[[BOOL (bool)]] function(--[[string]] effectName,--[[Entity (int)]] entity,--[[float]] offsetX,--[[float]] offsetY,--[[float]] offsetZ,--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ,--[[float]] scale,--[[BOOL (bool)]] axisX,--[[BOOL (bool)]] axisY,--[[BOOL (bool)]] axisZ)return native_invoker.unified_bool(effectName, entity, offsetX, offsetY, offsetZ, rotX, rotY, rotZ, scale, axisX, axisY, axisZ, 0xC95EB1DB6E92113D, "sifffffffbbb")end, - -- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - ["START_PARTICLE_FX_NON_LOOPED_ON_ENTITY_BONE"]=--[[BOOL (bool)]] function(--[[string]] effectName,--[[Entity (int)]] entity,--[[float]] offsetX,--[[float]] offsetY,--[[float]] offsetZ,--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ,--[[int]] boneIndex,--[[float]] scale,--[[BOOL (bool)]] axisX,--[[BOOL (bool)]] axisY,--[[BOOL (bool)]] axisZ)return native_invoker.unified_bool(effectName, entity, offsetX, offsetY, offsetZ, rotX, rotY, rotZ, boneIndex, scale, axisX, axisY, axisZ, 0x02B1F2A72E0F5325, "siffffffifbbb")end, - -- only works on some fx's, not networked - ["SET_PARTICLE_FX_NON_LOOPED_COLOUR"]=--[[void]] function(--[[float]] r,--[[float]] g,--[[float]] b)return native_invoker.unified_void(r, g, b, 0x26143A59EF48B262, "fff")end, - -- Usage example for C#: - -- - -- Function.Call(Hash.SET_PARTICLE_FX_NON_LOOPED_ALPHA, new InputArgument[] { 0.1f }); - -- - -- Note: the argument alpha ranges from 0.0f-1.0f ! - ["SET_PARTICLE_FX_NON_LOOPED_ALPHA"]=--[[void]] function(--[[float]] alpha)return native_invoker.unified_void(alpha, 0x77168D722C58B2FC, "f")end, - ["SET_PARTICLE_FX_NON_LOOPED_SCALE"]=--[[void]] function(--[[float]] scale)return native_invoker.unified_void(scale, 0xB7EF5850C39FABCA, "f")end, - ["SET_PARTICLE_FX_NON_LOOPED_EMITTER_SIZE"]=--[[void]] function(--[[float]] p0,--[[float]] p1,--[[float]] scale)return native_invoker.unified_void(p0, p1, scale, 0x1E2E01C00837D26E, "fff")end, - -- Used only once in the scripts (taxi_clowncar) - ["SET_PARTICLE_FX_FORCE_VEHICLE_INTERIOR"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x8CDE909A0370BB3A, "b")end, - -- GRAPHICS::START_PARTICLE_FX_LOOPED_AT_COORD("scr_fbi_falling_debris", 93.7743f, -749.4572f, 70.86904f, 0f, 0f, 0f, 0x3F800000, 0, 0, 0, 0) - -- - -- - -- p11 seems to be always 0 - -- - -- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - ["START_PARTICLE_FX_LOOPED_AT_COORD"]=--[[int]] function(--[[string]] effectName,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] xRot,--[[float]] yRot,--[[float]] zRot,--[[float]] scale,--[[BOOL (bool)]] xAxis,--[[BOOL (bool)]] yAxis,--[[BOOL (bool)]] zAxis,--[[BOOL (bool)]] p11)return native_invoker.unified_int(effectName, x, y, z, xRot, yRot, zRot, scale, xAxis, yAxis, zAxis, p11, 0xE184F4F0DC5910E7, "sfffffffbbbb")end, - -- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - ["START_PARTICLE_FX_LOOPED_ON_PED_BONE"]=--[[int]] function(--[[string]] effectName,--[[Ped (int)]] ped,--[[float]] xOffset,--[[float]] yOffset,--[[float]] zOffset,--[[float]] xRot,--[[float]] yRot,--[[float]] zRot,--[[int]] boneIndex,--[[float]] scale,--[[BOOL (bool)]] xAxis,--[[BOOL (bool)]] yAxis,--[[BOOL (bool)]] zAxis)return native_invoker.unified_int(effectName, ped, xOffset, yOffset, zOffset, xRot, yRot, zRot, boneIndex, scale, xAxis, yAxis, zAxis, 0xF28DA9F38CD1787C, "siffffffifbbb")end, - -- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - ["START_PARTICLE_FX_LOOPED_ON_ENTITY"]=--[[int]] function(--[[string]] effectName,--[[Entity (int)]] entity,--[[float]] xOffset,--[[float]] yOffset,--[[float]] zOffset,--[[float]] xRot,--[[float]] yRot,--[[float]] zRot,--[[float]] scale,--[[BOOL (bool)]] xAxis,--[[BOOL (bool)]] yAxis,--[[BOOL (bool)]] zAxis)return native_invoker.unified_int(effectName, entity, xOffset, yOffset, zOffset, xRot, yRot, zRot, scale, xAxis, yAxis, zAxis, 0x1AE42C1660FD6517, "sifffffffbbb")end, - -- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - ["START_PARTICLE_FX_LOOPED_ON_ENTITY_BONE"]=--[[int]] function(--[[string]] effectName,--[[Entity (int)]] entity,--[[float]] xOffset,--[[float]] yOffset,--[[float]] zOffset,--[[float]] xRot,--[[float]] yRot,--[[float]] zRot,--[[int]] boneIndex,--[[float]] scale,--[[BOOL (bool)]] xAxis,--[[BOOL (bool)]] yAxis,--[[BOOL (bool)]] zAxis)return native_invoker.unified_int(effectName, entity, xOffset, yOffset, zOffset, xRot, yRot, zRot, boneIndex, scale, xAxis, yAxis, zAxis, 0xC6EB449E33977F0B, "siffffffifbbb")end, - -- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - ["START_NETWORKED_PARTICLE_FX_LOOPED_ON_ENTITY"]=--[[int]] function(--[[string]] effectName,--[[Entity (int)]] entity,--[[float]] xOffset,--[[float]] yOffset,--[[float]] zOffset,--[[float]] xRot,--[[float]] yRot,--[[float]] zRot,--[[float]] scale,--[[BOOL (bool)]] xAxis,--[[BOOL (bool)]] yAxis,--[[BOOL (bool)]] zAxis,--[[float]] r,--[[float]] g,--[[float]] b,--[[float]] a)return native_invoker.unified_int(effectName, entity, xOffset, yOffset, zOffset, xRot, yRot, zRot, scale, xAxis, yAxis, zAxis, r, g, b, a, 0x6F60E89A7B64EE1D, "sifffffffbbbffff")end, - -- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - ["START_NETWORKED_PARTICLE_FX_LOOPED_ON_ENTITY_BONE"]=--[[int]] function(--[[string]] effectName,--[[Entity (int)]] entity,--[[float]] xOffset,--[[float]] yOffset,--[[float]] zOffset,--[[float]] xRot,--[[float]] yRot,--[[float]] zRot,--[[int]] boneIndex,--[[float]] scale,--[[BOOL (bool)]] xAxis,--[[BOOL (bool)]] yAxis,--[[BOOL (bool)]] zAxis,--[[float]] r,--[[float]] g,--[[float]] b,--[[float]] a)return native_invoker.unified_int(effectName, entity, xOffset, yOffset, zOffset, xRot, yRot, zRot, boneIndex, scale, xAxis, yAxis, zAxis, r, g, b, a, 0xDDE23F30CC5A0F03, "siffffffifbbbffff")end, - -- p1 is always 0 in the native scripts - ["STOP_PARTICLE_FX_LOOPED"]=--[[void]] function(--[[int]] ptfxHandle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(ptfxHandle, p1, 0x8F75998877616996, "ib")end, - ["REMOVE_PARTICLE_FX"]=--[[void]] function(--[[int]] ptfxHandle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(ptfxHandle, p1, 0xC401503DFE8D53CF, "ib")end, - ["REMOVE_PARTICLE_FX_FROM_ENTITY"]=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0xB8FEAEEBCC127425, "i")end, - ["REMOVE_PARTICLE_FX_IN_RANGE"]=--[[void]] function(--[[float]] X,--[[float]] Y,--[[float]] Z,--[[float]] radius)return native_invoker.unified_void(X, Y, Z, radius, 0xDD19FA1C6D657305, "ffff")end, - ["FORCE_PARTICLE_FX_IN_VEHICLE_INTERIOR"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xBA0127DA25FD54C9, "ii")end, - ["DOES_PARTICLE_FX_LOOPED_EXIST"]=--[[BOOL (bool)]] function(--[[int]] ptfxHandle)return native_invoker.unified_bool(ptfxHandle, 0x74AFEF0D2E1E409B, "i")end, - ["SET_PARTICLE_FX_LOOPED_OFFSETS"]=--[[void]] function(--[[int]] ptfxHandle,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ)return native_invoker.unified_void(ptfxHandle, x, y, z, rotX, rotY, rotZ, 0xF7DDEBEC43483C43, "iffffff")end, - ["SET_PARTICLE_FX_LOOPED_EVOLUTION"]=--[[void]] function(--[[int]] ptfxHandle,--[[string]] propertyName,--[[float]] amount,--[[BOOL (bool)]] noNetwork)return native_invoker.unified_void(ptfxHandle, propertyName, amount, noNetwork, 0x5F0C4B5B1C393BE2, "isfb")end, - -- only works on some fx's - -- - -- p4 = 0 - ["SET_PARTICLE_FX_LOOPED_COLOUR"]=--[[void]] function(--[[int]] ptfxHandle,--[[float]] r,--[[float]] g,--[[float]] b,--[[BOOL (bool)]] p4)return native_invoker.unified_void(ptfxHandle, r, g, b, p4, 0x7F8F65877F88783B, "ifffb")end, - ["SET_PARTICLE_FX_LOOPED_ALPHA"]=--[[void]] function(--[[int]] ptfxHandle,--[[float]] alpha)return native_invoker.unified_void(ptfxHandle, alpha, 0x726845132380142E, "if")end, - ["SET_PARTICLE_FX_LOOPED_SCALE"]=--[[void]] function(--[[int]] ptfxHandle,--[[float]] scale)return native_invoker.unified_void(ptfxHandle, scale, 0xB44250AAA456492D, "if")end, - ["SET_PARTICLE_FX_LOOPED_FAR_CLIP_DIST"]=--[[void]] function(--[[int]] ptfxHandle,--[[float]] range)return native_invoker.unified_void(ptfxHandle, range, 0xDCB194B85EF7B541, "if")end, - ["_SET_PARTICLE_FX_LOOPED_CAMERA_BIAS"]=--[[void]] function(--[[int]] ptfxHandle,--[[float]] p1)return native_invoker.unified_void(ptfxHandle, p1, 0x4100BF0346A8D2C3, "if")end, - ["SET_PARTICLE_FX_CAM_INSIDE_VEHICLE"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xEEC4047028426510, "b")end, - ["SET_PARTICLE_FX_CAM_INSIDE_NONPLAYER_VEHICLE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0xACEE6F360FC1F6B6, "ib")end, - ["SET_PARTICLE_FX_SHOOTOUT_BOAT"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x96EF97DAEB89BEF5, "i")end, - ["CLEAR_PARTICLE_FX_SHOOTOUT_BOAT"]=--[[void]] function()return native_invoker.unified_void(0x2A251AA48B2B46DB, "")end, - ["SET_PARTICLE_FX_BLOOD_SCALE"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x908311265D42A820, "i")end, - ["DISABLE_IN_WATER_PTFX"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xCFD16F0DB5A3535C, "b")end, - ["DISABLE_DOWNWASH_PTFX"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x5F6DF3D92271E8A1, "b")end, - ["SET_PARTICLE_FX_SLIPSTREAM_LODRANGE_SCALE"]=--[[void]] function(--[[float]] scale)return native_invoker.unified_void(scale, 0x2B40A97646381508, "f")end, - -- Creates cartoon effect when Michel smokes the weed - ["ENABLE_CLOWN_BLOOD_VFX"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xD821490579791273, "b")end, - -- Creates a motion-blur sort of effect, this native does not seem to work, however by using the `START_SCREEN_EFFECT` native with `DrugsMichaelAliensFight` as the effect parameter, you should be able to get the effect. - ["ENABLE_ALIEN_BLOOD_VFX"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x9DCE1F0F78260875, "b")end, - ["SET_PARTICLE_FX_BULLET_IMPACT_SCALE"]=--[[void]] function(--[[float]] scale)return native_invoker.unified_void(scale, 0x27E32866E9A5C416, "f")end, - ["SET_PARTICLE_FX_BULLET_IMPACT_LODRANGE_SCALE"]=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0xBB90E12CAC1DAB25, "f")end, - ["SET_PARTICLE_FX_BULLET_TRACE_NO_ANGLE_REJECT"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xCA4AE345A153D573, "b")end, - ["SET_PARTICLE_FX_BANG_SCRAPE_LODRANGE_SCALE"]=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0x54E22EA2C1956A8D, "f")end, - ["SET_PARTICLE_FX_FOOT_LODRANGE_SCALE"]=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0x949F397A288B28B3, "f")end, - -- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - ["SET_PARTICLE_FX_FOOT_OVERRIDE_NAME"]=--[[void]] function(--[[string]] p0)return native_invoker.unified_void(p0, 0xBA3D194057C79A7B, "s")end, - ["SET_SKIDMARK_RANGE_SCALE"]=--[[void]] function(--[[float]] scale)return native_invoker.unified_void(scale, 0x5DBF05DB5926D089, "f")end, - ["SET_PTFX_FORCE_VEHICLE_INTERIOR_FLAG"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xC6730E0D14E50703, "i")end, - ["REGISTER_POSTFX_BULLET_IMPACT"]=--[[void]] function(--[[float]] weaponWorldPosX,--[[float]] weaponWorldPosY,--[[float]] weaponWorldPosZ,--[[float]] intensity)return native_invoker.unified_void(weaponWorldPosX, weaponWorldPosY, weaponWorldPosZ, intensity, 0x170911F37F646F29, "ffff")end, - ["FORCE_POSTFX_BULLET_IMPACTS_AFTER_HUD"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x9B079E5221D984D3, "b")end, - -- From the b678d decompiled scripts: - -- - -- GRAPHICS::USE_PARTICLE_FX_ASSET("FM_Mission_Controler"); - -- GRAPHICS::USE_PARTICLE_FX_ASSET("scr_apartment_mp"); - -- GRAPHICS::USE_PARTICLE_FX_ASSET("scr_indep_fireworks"); - -- GRAPHICS::USE_PARTICLE_FX_ASSET("scr_mp_cig_plane"); - -- GRAPHICS::USE_PARTICLE_FX_ASSET("scr_mp_creator"); - -- GRAPHICS::USE_PARTICLE_FX_ASSET("scr_ornate_heist"); - -- GRAPHICS::USE_PARTICLE_FX_ASSET("scr_prison_break_heist_station"); - -- - -- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - ["USE_PARTICLE_FX_ASSET"]=--[[void]] function(--[[string]] name)return native_invoker.unified_void(name, 0x6C38AF3693A69A91, "s")end, - -- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - ["SET_PARTICLE_FX_OVERRIDE"]=--[[void]] function(--[[string]] oldAsset,--[[string]] newAsset)return native_invoker.unified_void(oldAsset, newAsset, 0xEA1E2D93F6F75ED9, "ss")end, - -- Resets the effect of SET_PARTICLE_FX_OVERRIDE - -- - -- Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json - ["RESET_PARTICLE_FX_OVERRIDE"]=--[[void]] function(--[[string]] name)return native_invoker.unified_void(name, 0x89C8553DD3274AAE, "s")end, - -- Returns ptfxHandle - -- effectName: scr_sv_drag_burnout - ["_START_VEHICLE_PARTICLE_FX_LOOPED"]=--[[int]] function(--[[Vehicle (int)]] vehicle,--[[string]] effectName,--[[BOOL (bool)]] frontBack,--[[BOOL (bool)]] leftRight,--[[BOOL (bool)]] localOnly)return native_invoker.unified_int(vehicle, effectName, frontBack, leftRight, localOnly, 0xDF269BE2909E181A, "isbbb")end, - ["SET_WEATHER_PTFX_USE_OVERRIDE_SETTINGS"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xA46B73FAA3460AE1, "b")end, - ["SET_WEATHER_PTFX_OVERRIDE_CURR_LEVEL"]=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0xF78B803082D4386F, "f")end, - ["WASH_DECALS_IN_RANGE"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] range,--[[float]] p4)return native_invoker.unified_void(x, y, z, range, p4, 0x9C30613D50A6ADEF, "fffff")end, - ["WASH_DECALS_FROM_VEHICLE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] p1)return native_invoker.unified_void(vehicle, p1, 0x5B712761429DBC14, "if")end, - -- Fades nearby decals within the range specified - ["FADE_DECALS_IN_RANGE"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] p3,--[[float]] p4)return native_invoker.unified_void(x, y, z, p3, p4, 0xD77EDADB0420E6E0, "fffff")end, - -- Removes all decals in range from a position, it includes the bullet holes, blood pools, petrol... - ["REMOVE_DECALS_IN_RANGE"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] range)return native_invoker.unified_void(x, y, z, range, 0x5D6B2D4830A67C62, "ffff")end, - ["REMOVE_DECALS_FROM_OBJECT"]=--[[void]] function(--[[Object (int)]] obj)return native_invoker.unified_void(obj, 0xCCF71CBDDF5B6CB9, "i")end, - ["REMOVE_DECALS_FROM_OBJECT_FACING"]=--[[void]] function(--[[Object (int)]] obj,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(obj, x, y, z, 0xA6F6F70FDC6D144C, "ifff")end, - ["REMOVE_DECALS_FROM_VEHICLE"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0xE91F1B65F2B48D57, "i")end, - -- decal types: - -- - -- public enum DecalTypes - -- { - -- splatters_blood = 1010, - -- splatters_blood_dir = 1015, - -- splatters_blood_mist = 1017, - -- splatters_mud = 1020, - -- splatters_paint = 1030, - -- splatters_water = 1040, - -- splatters_water_hydrant = 1050, - -- splatters_blood2 = 1110, - -- weapImpact_metal = 4010, - -- weapImpact_concrete = 4020, - -- weapImpact_mattress = 4030, - -- weapImpact_mud = 4032, - -- weapImpact_wood = 4050, - -- weapImpact_sand = 4053, - -- weapImpact_cardboard = 4040, - -- weapImpact_melee_glass = 4100, - -- weapImpact_glass_blood = 4102, - -- weapImpact_glass_blood2 = 4104, - -- weapImpact_shotgun_paper = 4200, - -- weapImpact_shotgun_mattress, - -- weapImpact_shotgun_metal, - -- weapImpact_shotgun_wood, - -- weapImpact_shotgun_dirt, - -- weapImpact_shotgun_tvscreen, - -- weapImpact_shotgun_tvscreen2, - -- weapImpact_shotgun_tvscreen3, - -- weapImpact_melee_concrete = 4310, - -- weapImpact_melee_wood = 4312, - -- weapImpact_melee_metal = 4314, - -- burn1 = 4421, - -- burn2, - -- burn3, - -- burn4, - -- burn5, - -- bang_concrete_bang = 5000, - -- bang_concrete_bang2, - -- bang_bullet_bang, - -- bang_bullet_bang2 = 5004, - -- bang_glass = 5031, - -- bang_glass2, - -- solidPool_water = 9000, - -- solidPool_blood, - -- solidPool_oil, - -- solidPool_petrol, - -- solidPool_mud, - -- porousPool_water, - -- porousPool_blood, - -- porousPool_oil, - -- porousPool_petrol, - -- porousPool_mud, - -- porousPool_water_ped_drip, - -- liquidTrail_water = 9050 - -- } - ["ADD_DECAL"]=--[[int]] function(--[[int]] decalType,--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[float]] p4,--[[float]] p5,--[[float]] p6,--[[float]] p7,--[[float]] p8,--[[float]] p9,--[[float]] width,--[[float]] height,--[[float]] rCoef,--[[float]] gCoef,--[[float]] bCoef,--[[float]] opacity,--[[float]] timeout,--[[BOOL (bool)]] p17,--[[BOOL (bool)]] p18,--[[BOOL (bool)]] p19)return native_invoker.unified_int(decalType, posX, posY, posZ, p4, p5, p6, p7, p8, p9, width, height, rCoef, gCoef, bCoef, opacity, timeout, p17, p18, p19, 0xB302244A1839BDAD, "iffffffffffffffffbbb")end, - ["ADD_PETROL_DECAL"]=--[[int]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] groundLvl,--[[float]] width,--[[float]] transparency)return native_invoker.unified_int(x, y, z, groundLvl, width, transparency, 0x4F5212C7AD880DF8, "ffffff")end, - ["ADD_OIL_DECAL"]=--[[int]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] groundLvl,--[[float]] width,--[[float]] transparency)return native_invoker.unified_int(x, y, z, groundLvl, width, transparency, 0x126D7F89FE859A5E, "ffffff")end, - ["START_PETROL_TRAIL_DECALS"]=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0x99AC7F0D8B9C893D, "f")end, - ["ADD_PETROL_TRAIL_DECAL_INFO"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] p3)return native_invoker.unified_void(x, y, z, p3, 0x967278682CB6967A, "ffff")end, - ["END_PETROL_TRAIL_DECALS"]=--[[void]] function()return native_invoker.unified_void(0x0A123435A26C36CD, "")end, - ["REMOVE_DECAL"]=--[[void]] function(--[[int]] decal)return native_invoker.unified_void(decal, 0xED3F346429CCD659, "i")end, - ["IS_DECAL_ALIVE"]=--[[BOOL (bool)]] function(--[[int]] decal)return native_invoker.unified_bool(decal, 0xC694D74949CAFD0C, "i")end, - ["GET_DECAL_WASH_LEVEL"]=--[[float]] function(--[[int]] decal)return native_invoker.unified_float(decal, 0x323F647679A09103, "i")end, - ["SET_DISABLE_PETROL_DECALS_IGNITING_THIS_FRAME"]=--[[void]] function()return native_invoker.unified_void(0xD9454B5752C857DC, "")end, - ["SET_DISABLE_PETROL_DECALS_RECYCLING_THIS_FRAME"]=--[[void]] function()return native_invoker.unified_void(0x27CFB1B1E078CB2D, "")end, - ["SET_DISABLE_DECAL_RENDERING_THIS_FRAME"]=--[[void]] function()return native_invoker.unified_void(0x4B5CFC83122DF602, "")end, - ["GET_IS_PETROL_DECAL_IN_RANGE"]=--[[BOOL (bool)]] function(--[[float]] xCoord,--[[float]] yCoord,--[[float]] zCoord,--[[float]] radius)return native_invoker.unified_bool(xCoord, yCoord, zCoord, radius, 0x2F09F7976C512404, "ffff")end, - ["PATCH_DECAL_DIFFUSE_MAP"]=--[[void]] function(--[[int]] decalType,--[[string]] textureDict,--[[string]] textureName)return native_invoker.unified_void(decalType, textureDict, textureName, 0x8A35C742130C6080, "iss")end, - ["UNPATCH_DECAL_DIFFUSE_MAP"]=--[[void]] function(--[[int]] decalType)return native_invoker.unified_void(decalType, 0xB7ED70C49521A61D, "i")end, - ["MOVE_VEHICLE_DECALS"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x84C8D7C2D30D3280, "ii")end, - -- boneIndex is always chassis_dummy in the scripts. The x/y/z params are location relative to the chassis bone. - ["ADD_VEHICLE_CREW_EMBLEM"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[Ped (int)]] ped,--[[int]] boneIndex,--[[float]] x1,--[[float]] x2,--[[float]] x3,--[[float]] y1,--[[float]] y2,--[[float]] y3,--[[float]] z1,--[[float]] z2,--[[float]] z3,--[[float]] scale,--[[Any (int)]] p13,--[[int]] alpha)return native_invoker.unified_bool(vehicle, ped, boneIndex, x1, x2, x3, y1, y2, y3, z1, z2, z3, scale, p13, alpha, 0x428BDCB9DA58DA53, "iiiffffffffffii")end, - ["ABORT_VEHICLE_CREW_EMBLEM_REQUEST"]=--[[BOOL (bool)]] function(--[[int* (pointer)]] p0)return native_invoker.unified_bool(p0, 0x82ACC484FFA3B05F, "p")end, - ["REMOVE_VEHICLE_CREW_EMBLEM"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] p1)return native_invoker.unified_void(vehicle, p1, 0xD2300034310557E4, "ii")end, - ["GET_VEHICLE_CREW_EMBLEM_REQUEST_STATE"]=--[[int]] function(--[[Vehicle (int)]] vehicle,--[[int]] p1)return native_invoker.unified_int(vehicle, p1, 0xFE26117A5841B2FF, "ii")end, - ["DOES_VEHICLE_HAVE_CREW_EMBLEM"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[int]] p1)return native_invoker.unified_bool(vehicle, p1, 0x060D935D3981A275, "ii")end, - ["DISABLE_COMPOSITE_SHOTGUN_DECALS"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x0E4299C549F0D1F1, "b")end, - ["DISABLE_SCUFF_DECALS"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x02369D5C8A51FDCF, "b")end, - ["SET_DECAL_BULLET_IMPACT_RANGE_SCALE"]=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0x46D1A61A21F566FC, "f")end, - ["OVERRIDE_INTERIOR_SMOKE_NAME"]=--[[void]] function(--[[string]] name)return native_invoker.unified_void(name, 0x2A2A52824DB96700, "s")end, - ["OVERRIDE_INTERIOR_SMOKE_LEVEL"]=--[[void]] function(--[[float]] level)return native_invoker.unified_void(level, 0x1600FD8CF72EBC12, "f")end, - ["OVERRIDE_INTERIOR_SMOKE_END"]=--[[void]] function()return native_invoker.unified_void(0xEFB55E7C25D3B3BE, "")end, - -- Used with 'NG_filmnoir_BW{01,02}' timecycles and the "NOIR_FILTER_SOUNDS" audioref. - ["REGISTER_NOIR_LENS_EFFECT"]=--[[void]] function()return native_invoker.unified_void(0xA44FF770DFBC5DAE, "")end, - ["DISABLE_VEHICLE_DISTANTLIGHTS"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xC9F98AC1884E73A2, "b")end, - ["RENDER_SHADOWED_LIGHTS_WITH_NO_SHADOWS"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x03300B57FCAC6DDB, "b")end, - ["REQUEST_EARLY_LIGHT_CHECK"]=--[[void]] function()return native_invoker.unified_void(0x98EDF76A7271E4F2, "")end, - -- Forces footstep tracks on all surfaces. - ["USE_SNOW_FOOT_VFX_WHEN_UNSHELTERED"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xAEEDAD1420C65CC0, "b")end, - ["_FORCE_ALLOW_SNOW_FOOT_VFX_ON_ICE"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xA342A3763B3AFB6C, "b")end, - -- Forces vehicle trails on all surfaces. - ["USE_SNOW_WHEEL_VFX_WHEN_UNSHELTERED"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x4CC7F0FEA5283FE0, "b")end, - ["DISABLE_REGION_VFX"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xEFD97FF47B745B8D, "i")end, - ["_FORCE_GROUND_SNOW_PASS"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x6E9EF3A33C8899F8, "b")end, - -- Only one match in the scripts: - -- - -- GRAPHICS::PRESET_INTERIOR_AMBIENT_CACHE("int_carrier_hanger"); - ["PRESET_INTERIOR_AMBIENT_CACHE"]=--[[void]] function(--[[string]] timecycleModifierName)return native_invoker.unified_void(timecycleModifierName, 0xD7021272EB0A451E, "s")end, - -- Loads the specified timecycle modifier. Modifiers are defined separately in another file (e.g. "timecycle_mods_1.xml") - -- - -- Parameters: - -- modifierName - The modifier to load (e.g. "V_FIB_IT3", "scanline_cam", etc.) - -- - -- Full list of timecycle modifiers by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/timecycleModifiers.json - ["SET_TIMECYCLE_MODIFIER"]=--[[void]] function(--[[string]] modifierName)return native_invoker.unified_void(modifierName, 0x2C933ABF17A1DF41, "s")end, - ["SET_TIMECYCLE_MODIFIER_STRENGTH"]=--[[void]] function(--[[float]] strength)return native_invoker.unified_void(strength, 0x82E7FFCD5B2326B3, "f")end, - -- Full list of timecycle modifiers by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/timecycleModifiers.json - ["SET_TRANSITION_TIMECYCLE_MODIFIER"]=--[[void]] function(--[[string]] modifierName,--[[float]] transition)return native_invoker.unified_void(modifierName, transition, 0x3BCF567485E1971C, "sf")end, - ["SET_TRANSITION_OUT_OF_TIMECYCLE_MODIFIER"]=--[[void]] function(--[[float]] strength)return native_invoker.unified_void(strength, 0x1CBA05AE7BD7EE05, "f")end, - ["CLEAR_TIMECYCLE_MODIFIER"]=--[[void]] function()return native_invoker.unified_void(0x0F07E7745A236711, "")end, - -- Only use for this in the PC scripts is: - -- - -- if (GRAPHICS::GET_TIMECYCLE_MODIFIER_INDEX() != -1) - ["GET_TIMECYCLE_MODIFIER_INDEX"]=--[[int]] function()return native_invoker.unified_int(0xFDF3D97C674AFB66, "")end, - ["GET_TIMECYCLE_TRANSITION_MODIFIER_INDEX"]=--[[int]] function()return native_invoker.unified_int(0x459FD2C8D0AB78BC, "")end, - ["GET_IS_TIMECYCLE_TRANSITIONING_OUT"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x98D18905BF723B99, "")end, - ["PUSH_TIMECYCLE_MODIFIER"]=--[[void]] function()return native_invoker.unified_void(0x58F735290861E6B4, "")end, - ["POP_TIMECYCLE_MODIFIER"]=--[[void]] function()return native_invoker.unified_void(0x3C8938D7D872211E, "")end, - ["SET_CURRENT_PLAYER_TCMODIFIER"]=--[[void]] function(--[[string]] modifierName)return native_invoker.unified_void(modifierName, 0xBBF327DED94E4DEB, "s")end, - ["SET_PLAYER_TCMODIFIER_TRANSITION"]=--[[void]] function(--[[float]] value)return native_invoker.unified_void(value, 0xBDEB86F4D5809204, "f")end, - ["SET_NEXT_PLAYER_TCMODIFIER"]=--[[void]] function(--[[string]] modifierName)return native_invoker.unified_void(modifierName, 0xBF59707B3E5ED531, "s")end, - ["ADD_TCMODIFIER_OVERRIDE"]=--[[void]] function(--[[string]] modifierName1,--[[string]] modifierName2)return native_invoker.unified_void(modifierName1, modifierName2, 0x1A8E2C8B9CF4549C, "ss")end, - ["CLEAR_ALL_TCMODIFIER_OVERRIDES"]=--[[void]] function(--[[string]] p0)return native_invoker.unified_void(p0, 0x15E33297C3E8DC60, "s")end, - -- Full list of timecycle modifiers by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/timecycleModifiers.json - ["SET_EXTRA_TCMODIFIER"]=--[[void]] function(--[[string]] modifierName)return native_invoker.unified_void(modifierName, 0x5096FD9CCB49056D, "s")end, - -- Clears the secondary timecycle modifier usually set with _SET_EXTRA_TIMECYCLE_MODIFIER - ["CLEAR_EXTRA_TCMODIFIER"]=--[[void]] function()return native_invoker.unified_void(0x92CCC17A7A2285DA, "")end, - -- See GET_TIMECYCLE_MODIFIER_INDEX for use, works the same just for the secondary timecycle modifier. - -- Returns an integer representing the Timecycle modifier - ["GET_EXTRA_TCMODIFIER"]=--[[int]] function()return native_invoker.unified_int(0xBB0527EC6341496D, "")end, - -- The same as SET_TIMECYCLE_MODIFIER_STRENGTH but for the secondary timecycle modifier. - ["ENABLE_MOON_CYCLE_OVERRIDE"]=--[[void]] function(--[[float]] strength)return native_invoker.unified_void(strength, 0x2C328AF17210F009, "f")end, - -- Resets the extra timecycle modifier strength normally set with 0x2C328AF17210F009 - ["DISABLE_MOON_CYCLE_OVERRIDE"]=--[[void]] function()return native_invoker.unified_void(0x2BF72AD5B41AA739, "")end, - ["REQUEST_SCALEFORM_MOVIE"]=--[[int]] function(--[[string]] scaleformName)return native_invoker.unified_int(scaleformName, 0x11FE353CF9733E6F, "s")end, - -- Another REQUEST_SCALEFORM_MOVIE equivalent. - ["REQUEST_SCALEFORM_MOVIE_WITH_IGNORE_SUPER_WIDESCREEN"]=--[[int]] function(--[[string]] scaleformName)return native_invoker.unified_int(scaleformName, 0x65E7E78842E74CDB, "s")end, - ["REQUEST_SCALEFORM_MOVIE_INSTANCE"]=--[[int]] function(--[[string]] scaleformName)return native_invoker.unified_int(scaleformName, 0xC514489CFB8AF806, "s")end, - -- Similar to REQUEST_SCALEFORM_MOVIE, but seems to be some kind of "interactive" scaleform movie? - -- - -- These seem to be the only scaleforms ever requested by this native: - -- "breaking_news" - -- "desktop_pc" - -- "ECG_MONITOR" - -- "Hacking_PC" - -- "TEETH_PULLING" - -- - -- Note: Unless this hash is out-of-order, this native is next-gen only. - -- - ["REQUEST_SCALEFORM_MOVIE_SKIP_RENDER_WHILE_PAUSED"]=--[[int]] function(--[[string]] scaleformName)return native_invoker.unified_int(scaleformName, 0xBD06C611BB9048C2, "s")end, - ["HAS_SCALEFORM_MOVIE_LOADED"]=--[[BOOL (bool)]] function(--[[int]] scaleformHandle)return native_invoker.unified_bool(scaleformHandle, 0x85F01B8D5B90570E, "i")end, - -- val is 1-20 (0 will return false) - ["IS_ACTIVE_SCALEFORM_MOVIE_DELETING"]=--[[BOOL (bool)]] function(--[[int]] val)return native_invoker.unified_bool(val, 0x2FCB133CA50A49EB, "i")end, - -- val is 1-20. Return is related to INSTRUCTIONAL_BUTTONS, COLOUR_SWITCHER_02, etc? - ["IS_SCALEFORM_MOVIE_DELETING"]=--[[BOOL (bool)]] function(--[[int]] val)return native_invoker.unified_bool(val, 0x86255B1FC929E33E, "i")end, - -- Only values used in the scripts are: - -- - -- "heist_mp" - -- "heistmap_mp" - -- "instructional_buttons" - -- "heist_pre" - ["HAS_SCALEFORM_MOVIE_FILENAME_LOADED"]=--[[BOOL (bool)]] function(--[[string]] scaleformName)return native_invoker.unified_bool(scaleformName, 0x0C1C5D756FB5F337, "s")end, - ["HAS_SCALEFORM_CONTAINER_MOVIE_LOADED_INTO_PARENT"]=--[[BOOL (bool)]] function(--[[int]] scaleformHandle)return native_invoker.unified_bool(scaleformHandle, 0x8217150E1217EBFD, "i")end, - ["SET_SCALEFORM_MOVIE_AS_NO_LONGER_NEEDED"]=--[[void]] function(--[[int* (pointer)]] scaleformHandle)return native_invoker.unified_void(scaleformHandle, 0x1D132D614DD86811, "p")end, - ["SET_SCALEFORM_MOVIE_TO_USE_SYSTEM_TIME"]=--[[void]] function(--[[int]] scaleform,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(scaleform, toggle, 0x6D8EB211944DCE08, "ib")end, - ["SET_SCALEFORM_MOVIE_TO_USE_LARGE_RT"]=--[[void]] function(--[[int]] scaleformHandle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(scaleformHandle, toggle, 0x32F34FF7F617643B, "ib")end, - -- This native is used in some casino scripts to fit the scaleform in the rendertarget. - ["SET_SCALEFORM_MOVIE_TO_USE_SUPER_LARGE_RT"]=--[[void]] function(--[[int]] scaleformHandle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(scaleformHandle, toggle, 0xE6A9F00D4240B519, "ib")end, - ["DRAW_SCALEFORM_MOVIE"]=--[[void]] function(--[[int]] scaleformHandle,--[[float]] x,--[[float]] y,--[[float]] width,--[[float]] height,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha,--[[int]] p9)return native_invoker.unified_void(scaleformHandle, x, y, width, height, red, green, blue, alpha, p9, 0x54972ADAF0294A93, "iffffiiiii")end, - -- unk is not used so no need - ["DRAW_SCALEFORM_MOVIE_FULLSCREEN"]=--[[void]] function(--[[int]] scaleform,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha,--[[int]] p5)return native_invoker.unified_void(scaleform, red, green, blue, alpha, p5, 0x0DF606929C105BE1, "iiiiii")end, - ["DRAW_SCALEFORM_MOVIE_FULLSCREEN_MASKED"]=--[[void]] function(--[[int]] scaleform1,--[[int]] scaleform2,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha)return native_invoker.unified_void(scaleform1, scaleform2, red, green, blue, alpha, 0xCF537FDE4FBD4CE5, "iiiiii")end, - ["DRAW_SCALEFORM_MOVIE_3D"]=--[[void]] function(--[[int]] scaleform,--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ,--[[float]] p7,--[[float]] p8,--[[float]] p9,--[[float]] scaleX,--[[float]] scaleY,--[[float]] scaleZ,--[[int]] rotationOrder)return native_invoker.unified_void(scaleform, posX, posY, posZ, rotX, rotY, rotZ, p7, p8, p9, scaleX, scaleY, scaleZ, rotationOrder, 0x87D51D72255D4E78, "iffffffffffffi")end, - ["DRAW_SCALEFORM_MOVIE_3D_SOLID"]=--[[void]] function(--[[int]] scaleform,--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ,--[[float]] p7,--[[float]] p8,--[[float]] p9,--[[float]] scaleX,--[[float]] scaleY,--[[float]] scaleZ,--[[int]] rotationOrder)return native_invoker.unified_void(scaleform, posX, posY, posZ, rotX, rotY, rotZ, p7, p8, p9, scaleX, scaleY, scaleZ, rotationOrder, 0x1CE592FDC749D6F5, "iffffffffffffi")end, - -- Calls the Scaleform function. - ["CALL_SCALEFORM_MOVIE_METHOD"]=--[[void]] function(--[[int]] scaleform,--[[string]] method)return native_invoker.unified_void(scaleform, method, 0xFBD96D87AC96D533, "is")end, - -- Calls the Scaleform function and passes the parameters as floats. - -- - -- The number of parameters passed to the function varies, so the end of the parameter list is represented by -1.0. - ["CALL_SCALEFORM_MOVIE_METHOD_WITH_NUMBER"]=--[[void]] function(--[[int]] scaleform,--[[string]] methodName,--[[float]] param1,--[[float]] param2,--[[float]] param3,--[[float]] param4,--[[float]] param5)return native_invoker.unified_void(scaleform, methodName, param1, param2, param3, param4, param5, 0xD0837058AE2E4BEE, "isfffff")end, - -- Calls the Scaleform function and passes the parameters as strings. - -- - -- The number of parameters passed to the function varies, so the end of the parameter list is represented by 0 (NULL). - ["CALL_SCALEFORM_MOVIE_METHOD_WITH_STRING"]=--[[void]] function(--[[int]] scaleform,--[[string]] methodName,--[[string]] param1,--[[string]] param2,--[[string]] param3,--[[string]] param4,--[[string]] param5)return native_invoker.unified_void(scaleform, methodName, param1, param2, param3, param4, param5, 0x51BC1ED3CC44E8F7, "issssss")end, - -- Calls the Scaleform function and passes both float and string parameters (in their respective order). - -- - -- The number of parameters passed to the function varies, so the end of the float parameters is represented by -1.0, and the end of the string parameters is represented by 0 (NULL). - -- - -- NOTE: The order of parameters in the function prototype is important! All float parameters must come first, followed by the string parameters. - -- - -- Examples: - -- // function MY_FUNCTION(floatParam1, floatParam2, stringParam) - -- GRAPHICS::CALL_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING(scaleform, "MY_FUNCTION", 10.0, 20.0, -1.0, -1.0, -1.0, "String param", 0, 0, 0, 0); - -- - -- // function MY_FUNCTION_2(floatParam, stringParam1, stringParam2) - -- GRAPHICS::CALL_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING(scaleform, "MY_FUNCTION_2", 10.0, -1.0, -1.0, -1.0, -1.0, "String param #1", "String param #2", 0, 0, 0); - ["CALL_SCALEFORM_MOVIE_METHOD_WITH_NUMBER_AND_STRING"]=--[[void]] function(--[[int]] scaleform,--[[string]] methodName,--[[float]] floatParam1,--[[float]] floatParam2,--[[float]] floatParam3,--[[float]] floatParam4,--[[float]] floatParam5,--[[string]] stringParam1,--[[string]] stringParam2,--[[string]] stringParam3,--[[string]] stringParam4,--[[string]] stringParam5)return native_invoker.unified_void(scaleform, methodName, floatParam1, floatParam2, floatParam3, floatParam4, floatParam5, stringParam1, stringParam2, stringParam3, stringParam4, stringParam5, 0xEF662D8D57E290B1, "isfffffsssss")end, - -- Pushes a function from the Hud component Scaleform onto the stack. Same behavior as GRAPHICS::BEGIN_SCALEFORM_MOVIE_METHOD, just a hud component id instead of a Scaleform. - -- - -- Known components: - -- 19 - MP_RANK_BAR - -- 20 - HUD_DIRECTOR_MODE - -- - -- This native requires more research - all information can be found inside of 'hud.gfx'. Using a decompiler, the different components are located under "scripts\__Packages\com\rockstargames\gtav\hud\hudComponents" and "scripts\__Packages\com\rockstargames\gtav\Multiplayer". - ["BEGIN_SCALEFORM_SCRIPT_HUD_MOVIE_METHOD"]=--[[BOOL (bool)]] function(--[[int]] hudComponent,--[[string]] methodName)return native_invoker.unified_bool(hudComponent, methodName, 0x98C494FD5BDFBFD5, "is")end, - -- Push a function from the Scaleform onto the stack - -- - ["BEGIN_SCALEFORM_MOVIE_METHOD"]=--[[BOOL (bool)]] function(--[[int]] scaleform,--[[string]] methodName)return native_invoker.unified_bool(scaleform, methodName, 0xF6E48914C7A8694E, "is")end, - -- Starts frontend (pause menu) scaleform movie methods. - -- This can be used when you want to make custom frontend menus, and customize things like images or text in the menus etc. - -- Use `BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND_HEADER` for header scaleform functions. - ["BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND"]=--[[BOOL (bool)]] function(--[[string]] methodName)return native_invoker.unified_bool(methodName, 0xAB58C27C2E6123C6, "s")end, - -- Starts frontend (pause menu) scaleform movie methods for header options. - -- Use `BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND` to customize the content inside the frontend menus. - ["BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND_HEADER"]=--[[BOOL (bool)]] function(--[[string]] methodName)return native_invoker.unified_bool(methodName, 0xB9449845F73F5E9C, "s")end, - -- Pops and calls the Scaleform function on the stack - ["END_SCALEFORM_MOVIE_METHOD"]=--[[void]] function()return native_invoker.unified_void(0xC6796A8FFA375E53, "")end, - ["END_SCALEFORM_MOVIE_METHOD_RETURN_VALUE"]=--[[int]] function()return native_invoker.unified_int(0xC50AA39A577AF886, "")end, - -- methodReturn: The return value of this native: END_SCALEFORM_MOVIE_METHOD_RETURN_VALUE - -- Returns true if the return value of a scaleform function is ready to be collected (using GET_SCALEFORM_MOVIE_METHOD_RETURN_VALUE_STRING or GET_SCALEFORM_MOVIE_METHOD_RETURN_VALUE_INT). - ["IS_SCALEFORM_MOVIE_METHOD_RETURN_VALUE_READY"]=--[[BOOL (bool)]] function(--[[int]] methodReturn)return native_invoker.unified_bool(methodReturn, 0x768FF8961BA904D6, "i")end, - -- methodReturn: The return value of this native: END_SCALEFORM_MOVIE_METHOD_RETURN_VALUE - -- Used to get a return value from a scaleform function. Returns an int in the same way GET_SCALEFORM_MOVIE_METHOD_RETURN_VALUE_STRING returns a string. - ["GET_SCALEFORM_MOVIE_METHOD_RETURN_VALUE_INT"]=--[[int]] function(--[[int]] methodReturn)return native_invoker.unified_int(methodReturn, 0x2DE7EFA66B906036, "i")end, - -- methodReturn: The return value of this native: END_SCALEFORM_MOVIE_METHOD_RETURN_VALUE - ["GET_SCALEFORM_MOVIE_METHOD_RETURN_VALUE_BOOL"]=--[[BOOL (bool)]] function(--[[int]] methodReturn)return native_invoker.unified_bool(methodReturn, 0xD80A80346A45D761, "i")end, - -- methodReturn: The return value of this native: END_SCALEFORM_MOVIE_METHOD_RETURN_VALUE - -- Used to get a return value from a scaleform function. Returns a string in the same way GET_SCALEFORM_MOVIE_METHOD_RETURN_VALUE_INT returns an int. - ["GET_SCALEFORM_MOVIE_METHOD_RETURN_VALUE_STRING"]=--[[string]] function(--[[int]] methodReturn)return native_invoker.unified_string(methodReturn, 0xE1E258829A885245, "i")end, - -- Pushes an integer for the Scaleform function onto the stack. - ["SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT"]=--[[void]] function(--[[int]] value)return native_invoker.unified_void(value, 0xC3D0841A0CC546A6, "i")end, - -- Pushes a float for the Scaleform function onto the stack. - ["SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT"]=--[[void]] function(--[[float]] value)return native_invoker.unified_void(value, 0xD69736AAE04DB51A, "f")end, - -- Pushes a boolean for the Scaleform function onto the stack. - ["SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL"]=--[[void]] function(--[[BOOL (bool)]] value)return native_invoker.unified_void(value, 0xC58424BA936EB458, "b")end, - -- Called prior to adding a text component to the UI. After doing so, GRAPHICS::END_TEXT_COMMAND_SCALEFORM_STRING is called. - -- - -- Examples: - -- GRAPHICS::BEGIN_TEXT_COMMAND_SCALEFORM_STRING("NUMBER"); - -- HUD::ADD_TEXT_COMPONENT_INTEGER(MISC::ABSI(a_1)); - -- GRAPHICS::END_TEXT_COMMAND_SCALEFORM_STRING(); - -- - -- GRAPHICS::BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRING"); - -- HUD::ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(a_2); - -- GRAPHICS::END_TEXT_COMMAND_SCALEFORM_STRING(); - -- - -- GRAPHICS::BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRTNM2"); - -- HUD::ADD_TEXT_COMPONENT_SUBSTRING_TEXT_LABEL_HASH_KEY(v_3); - -- HUD::ADD_TEXT_COMPONENT_SUBSTRING_TEXT_LABEL_HASH_KEY(v_4); - -- GRAPHICS::END_TEXT_COMMAND_SCALEFORM_STRING(); - -- - -- GRAPHICS::BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRTNM1"); - -- HUD::ADD_TEXT_COMPONENT_SUBSTRING_TEXT_LABEL_HASH_KEY(v_3); - -- GRAPHICS::END_TEXT_COMMAND_SCALEFORM_STRING(); - ["BEGIN_TEXT_COMMAND_SCALEFORM_STRING"]=--[[void]] function(--[[string]] componentType)return native_invoker.unified_void(componentType, 0x80338406F3475E55, "s")end, - ["END_TEXT_COMMAND_SCALEFORM_STRING"]=--[[void]] function()return native_invoker.unified_void(0x362E2D3FE93A9959, "")end, - -- Same as END_TEXT_COMMAND_SCALEFORM_STRING but does not perform HTML conversion for text tokens. - -- - -- END_TEXT_COMMAND_VIA_SPECIAL_MODIFIABLE_STRING? - ["END_TEXT_COMMAND_UNPARSED_SCALEFORM_STRING"]=--[[void]] function()return native_invoker.unified_void(0xAE4E8157D9ECF087, "")end, - -- Same as SCALEFORM_MOVIE_METHOD_ADD_PARAM_TEXTURE_NAME_STRING - -- Both SCALEFORM_MOVIE_METHOD_ADD_PARAM_TEXTURE_NAME_STRING / _SCALEFORM_MOVIE_METHOD_ADD_PARAM_TEXTURE_NAME_STRING_2 works, but _SCALEFORM_MOVIE_METHOD_ADD_PARAM_TEXTURE_NAME_STRING_2 is usually used for "name" (organisation, players..). - ["SCALEFORM_MOVIE_METHOD_ADD_PARAM_LITERAL_STRING"]=--[[void]] function(--[[string]] string)return native_invoker.unified_void(string, 0x77FE3402004CD1B0, "s")end, - ["SCALEFORM_MOVIE_METHOD_ADD_PARAM_TEXTURE_NAME_STRING"]=--[[void]] function(--[[string]] string)return native_invoker.unified_void(string, 0xBA7148484BD90365, "s")end, - ["SCALEFORM_MOVIE_METHOD_ADD_PARAM_PLAYER_NAME_STRING"]=--[[void]] function(--[[string]] string)return native_invoker.unified_void(string, 0xE83A3E3557A56640, "s")end, - ["DOES_LATEST_BRIEF_STRING_EXIST"]=--[[BOOL (bool)]] function(--[[int]] p0)return native_invoker.unified_bool(p0, 0x5E657EF1099EDD65, "i")end, - ["SCALEFORM_MOVIE_METHOD_ADD_PARAM_LATEST_BRIEF_STRING"]=--[[void]] function(--[[int]] value)return native_invoker.unified_void(value, 0xEC52C631A1831C03, "i")end, - ["REQUEST_SCALEFORM_SCRIPT_HUD_MOVIE"]=--[[void]] function(--[[int]] hudComponent)return native_invoker.unified_void(hudComponent, 0x9304881D6F6537EA, "i")end, - ["HAS_SCALEFORM_SCRIPT_HUD_MOVIE_LOADED"]=--[[BOOL (bool)]] function(--[[int]] hudComponent)return native_invoker.unified_bool(hudComponent, 0xDF6E5987D2B4D140, "i")end, - ["REMOVE_SCALEFORM_SCRIPT_HUD_MOVIE"]=--[[void]] function(--[[int]] hudComponent)return native_invoker.unified_void(hudComponent, 0xF44A5456AC3F4F97, "i")end, - ["PASS_KEYBOARD_INPUT_TO_SCALEFORM"]=--[[BOOL (bool)]] function(--[[int]] scaleformHandle)return native_invoker.unified_bool(scaleformHandle, 0xD1C7CB175E012964, "i")end, - ["SET_TV_CHANNEL"]=--[[void]] function(--[[int]] channel)return native_invoker.unified_void(channel, 0xBAABBB23EB6E484E, "i")end, - ["GET_TV_CHANNEL"]=--[[int]] function()return native_invoker.unified_int(0xFC1E275A90D39995, "")end, - ["SET_TV_VOLUME"]=--[[void]] function(--[[float]] volume)return native_invoker.unified_void(volume, 0x2982BF73F66E9DDC, "f")end, - ["GET_TV_VOLUME"]=--[[float]] function()return native_invoker.unified_float(0x2170813D3DD8661B, "")end, - -- All calls to this native are preceded by calls to GRAPHICS::SET_SCRIPT_GFX_DRAW_ORDER and GRAPHICS::SET_SCRIPT_GFX_DRAW_BEHIND_PAUSEMENU, respectively. - -- - -- "act_cinema.ysc", line 1483: - -- HUD::SET_HUD_COMPONENT_POSITION(15, 0.0, -0.0375); - -- HUD::SET_TEXT_RENDER_ID(l_AE); - -- GRAPHICS::SET_SCRIPT_GFX_DRAW_ORDER(4); - -- GRAPHICS::SET_SCRIPT_GFX_DRAW_BEHIND_PAUSEMENU(1); - -- if (GRAPHICS::IS_TVSHOW_CURRENTLY_PLAYING(${movie_arthouse})) { - -- GRAPHICS::DRAW_TV_CHANNEL(0.5, 0.5, 0.7375, 1.0, 0.0, 255, 255, 255, 255); - -- } else { - -- GRAPHICS::DRAW_TV_CHANNEL(0.5, 0.5, 1.0, 1.0, 0.0, 255, 255, 255, 255); - -- } - -- - -- "am_mp_property_int.ysc", line 102545: - -- if (ENTITY::DOES_ENTITY_EXIST(a_2._f3)) { - -- if (HUD::IS_NAMED_RENDERTARGET_LINKED(ENTITY::GET_ENTITY_MODEL(a_2._f3))) { - -- HUD::SET_TEXT_RENDER_ID(a_2._f1); - -- GRAPHICS::SET_SCRIPT_GFX_DRAW_ORDER(4); - -- GRAPHICS::SET_SCRIPT_GFX_DRAW_BEHIND_PAUSEMENU(1); - -- GRAPHICS::DRAW_TV_CHANNEL(0.5, 0.5, 1.0, 1.0, 0.0, 255, 255, 255, 255); - -- if (GRAPHICS::GET_TV_CHANNEL() == -1) { - -- sub_a8fa5(a_2, 1); - -- } else { - -- sub_a8fa5(a_2, 1); - -- GRAPHICS::ATTACH_TV_AUDIO_TO_ENTITY(a_2._f3); - -- } - -- HUD::SET_TEXT_RENDER_ID(HUD::GET_DEFAULT_SCRIPT_RENDERTARGET_RENDER_ID()); - -- } - -- } - -- - ["DRAW_TV_CHANNEL"]=--[[void]] function(--[[float]] xPos,--[[float]] yPos,--[[float]] xScale,--[[float]] yScale,--[[float]] rotation,--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha)return native_invoker.unified_void(xPos, yPos, xScale, yScale, rotation, red, green, blue, alpha, 0xFDDC2B4ED3C69DF0, "fffffiiii")end, - -- Loads specified video sequence into the TV Channel - -- TV_Channel ranges from 0-2 - -- VideoSequence can be any of the following: - -- "PL_STD_CNT" CNT Standard Channel - -- "PL_STD_WZL" Weazel Standard Channel - -- "PL_LO_CNT" - -- "PL_LO_WZL" - -- "PL_SP_WORKOUT" - -- "PL_SP_INV" - Jay Norris Assassination Mission Fail - -- "PL_SP_INV_EXP" - Jay Norris Assassination Mission Success - -- "PL_LO_RS" - Righteous Slaughter Ad - -- "PL_LO_RS_CUTSCENE" - Righteous Slaughter Cut-scene - -- "PL_SP_PLSH1_INTRO" - -- "PL_LES1_FAME_OR_SHAME" - -- "PL_STD_WZL_FOS_EP2" - -- "PL_MP_WEAZEL" - Weazel Logo on loop - -- "PL_MP_CCTV" - Generic CCTV loop - -- - -- Restart: - -- 0=video sequence continues as normal - -- 1=sequence restarts from beginning every time that channel is selected - -- - -- - -- The above playlists work as intended, and are commonly used, but there are many more playlists, as seen in `tvplaylists.xml`. A pastebin below outlines all playlists, they will be surronded by the name tag I.E. (PL_STD_CNT = PL_STD_CNT). - -- https://pastebin.com/zUzGB6h7 - ["SET_TV_CHANNEL_PLAYLIST"]=--[[void]] function(--[[int]] tvChannel,--[[string]] playlistName,--[[BOOL (bool)]] restart)return native_invoker.unified_void(tvChannel, playlistName, restart, 0xF7B38B8305F1FE8B, "isb")end, - ["SET_TV_CHANNEL_PLAYLIST_AT_HOUR"]=--[[void]] function(--[[int]] tvChannel,--[[string]] playlistName,--[[int]] hour)return native_invoker.unified_void(tvChannel, playlistName, hour, 0x2201C576FACAEBE8, "isi")end, - ["_SET_TV_CHANNEL_PLAYLIST_DIRTY"]=--[[void]] function(--[[int]] tvChannel,--[[BOOL (bool)]] p1)return native_invoker.unified_void(tvChannel, p1, 0xEE831F15A8D0D94A, "ib")end, - ["CLEAR_TV_CHANNEL_PLAYLIST"]=--[[void]] function(--[[int]] tvChannel)return native_invoker.unified_void(tvChannel, 0xBEB3D46BB7F043C0, "i")end, - ["IS_PLAYLIST_ON_CHANNEL"]=--[[BOOL (bool)]] function(--[[int]] tvChannel,--[[Any (int)]] p1)return native_invoker.unified_bool(tvChannel, p1, 0x1F710BFF7DAE6261, "ii")end, - ["IS_TVSHOW_CURRENTLY_PLAYING"]=--[[BOOL (bool)]] function(--[[Hash (int)]] videoCliphash)return native_invoker.unified_bool(videoCliphash, 0x0AD973CA1E077B60, "i")end, - ["ENABLE_MOVIE_KEYFRAME_WAIT"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x74C180030FDE4B69, "b")end, - ["SET_TV_PLAYER_WATCHING_THIS_FRAME"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xD1C55B110E4DF534, "i")end, - ["GET_CURRENT_TV_CLIP_NAMEHASH"]=--[[Hash (int)]] function()return native_invoker.unified_int(0x30432A0118736E00, "")end, - ["ENABLE_MOVIE_SUBTITLES"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x873FA65C778AD970, "b")end, - ["UI3DSCENE_IS_AVAILABLE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xD3A10FC7FD8D98CD, "")end, - -- All presets can be found in common\data\ui\uiscenes.meta - ["UI3DSCENE_PUSH_PRESET"]=--[[BOOL (bool)]] function(--[[string]] presetName)return native_invoker.unified_bool(presetName, 0xF1CEA8A4198D8E9A, "s")end, - -- It's called after UI3DSCENE_IS_AVAILABLE and UI3DSCENE_PUSH_PRESET - -- - -- presetName was always "CELEBRATION_WINNER" - -- All presets can be found in common\data\ui\uiscenes.meta - ["UI3DSCENE_ASSIGN_PED_TO_SLOT"]=--[[BOOL (bool)]] function(--[[string]] presetName,--[[Ped (int)]] ped,--[[int]] slot,--[[float]] posX,--[[float]] posY,--[[float]] posZ)return native_invoker.unified_bool(presetName, ped, slot, posX, posY, posZ, 0x98C4FE6EC34154CA, "siifff")end, - ["UI3DSCENE_CLEAR_PATCHED_DATA"]=--[[void]] function()return native_invoker.unified_void(0x7A42B2E236E71415, "")end, - ["UI3DSCENE_MAKE_PUSHED_PRESET_PERSISTENT"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x108BE26959A9D9BB, "b")end, - -- This native enables/disables the gold putting grid display (https://i.imgur.com/TC6cku6.png). - -- This requires these two natives to be called as well to configure the grid: `TERRAINGRID_SET_PARAMS` and `TERRAINGRID_SET_COLOURS`. - ["TERRAINGRID_ACTIVATE"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xA356990E161C9E65, "b")end, - -- This native is used along with these two natives: `TERRAINGRID_ACTIVATE` and `TERRAINGRID_SET_COLOURS`. - -- This native configures the location, size, rotation, normal height, and the difference ratio between min, normal and max. - -- - -- All those natives combined they will output something like this: https://i.imgur.com/TC6cku6.png - -- - -- This native renders a box at the given position, with a special shader that renders a grid on world geometry behind it. This box does not have backface culling. - -- The forward args here are a direction vector, something similar to what's returned by GET_ENTITY_FORWARD_VECTOR. - -- normalHeight and heightDiff are used for positioning the color gradient of the grid, colors specified via TERRAINGRID_SET_COLOURS. - -- - -- Example with box superimposed on the image to demonstrate: https://i.imgur.com/wdqskxd.jpg - ["TERRAINGRID_SET_PARAMS"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] forwardX,--[[float]] forwardY,--[[float]] forwardZ,--[[float]] sizeX,--[[float]] sizeY,--[[float]] sizeZ,--[[float]] gridScale,--[[float]] glowIntensity,--[[float]] normalHeight,--[[float]] heightDiff)return native_invoker.unified_void(x, y, z, forwardX, forwardY, forwardZ, sizeX, sizeY, sizeZ, gridScale, glowIntensity, normalHeight, heightDiff, 0x1C4FC5752BCD8E48, "fffffffffffff")end, - -- This native is used along with these two natives: `TERRAINGRID_ACTIVATE` and `TERRAINGRID_SET_PARAMS`. - -- This native sets the colors for the golf putting grid. the 'min...' values are for the lower areas that the grid covers, the 'max...' values are for the higher areas that the grid covers, all remaining values are for the 'normal' ground height. - -- All those natives combined they will output something like this: https://i.imgur.com/TC6cku6.png - ["TERRAINGRID_SET_COLOURS"]=--[[void]] function(--[[int]] lowR,--[[int]] lowG,--[[int]] lowB,--[[int]] lowAlpha,--[[int]] r,--[[int]] g,--[[int]] b,--[[int]] alpha,--[[int]] highR,--[[int]] highG,--[[int]] highB,--[[int]] highAlpha)return native_invoker.unified_void(lowR, lowG, lowB, lowAlpha, r, g, b, alpha, highR, highG, highB, highAlpha, 0x5CE62918F8D703C7, "iiiiiiiiiiii")end, - -- duration - is how long to play the effect for in milliseconds. If 0, it plays the default length - -- if loop is true, the effect won't stop until you call ANIMPOSTFX_STOP on it. (only loopable effects) - -- - -- Full list of animpostFX / screen effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animPostFxNamesCompact.json - ["ANIMPOSTFX_PLAY"]=--[[void]] function(--[[string]] effectName,--[[int]] duration,--[[BOOL (bool)]] looped)return native_invoker.unified_void(effectName, duration, looped, 0x2206BF9A37B7F724, "sib")end, - -- See ANIMPOSTFX_PLAY - -- - -- Full list of animpostFX / screen effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animPostFxNamesCompact.json - ["ANIMPOSTFX_STOP"]=--[[void]] function(--[[string]] effectName)return native_invoker.unified_void(effectName, 0x068E835A1D0DC0E3, "s")end, - -- See ANIMPOSTFX_PLAY - -- - -- Full list of animpostFX / screen effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animPostFxNamesCompact.json - ["ANIMPOSTFX_GET_CURRENT_TIME"]=--[[float]] function(--[[string]] effectName)return native_invoker.unified_float(effectName, 0xE35B38A27E8E7179, "s")end, - -- Returns whether the specified effect is active. - -- See ANIMPOSTFX_PLAY - -- - -- Full list of animpostFX / screen effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animPostFxNamesCompact.json - ["ANIMPOSTFX_IS_RUNNING"]=--[[BOOL (bool)]] function(--[[string]] effectName)return native_invoker.unified_bool(effectName, 0x36AD3E690DA5ACEB, "s")end, - -- Stops ALL currently playing effects. - ["ANIMPOSTFX_STOP_ALL"]=--[[void]] function()return native_invoker.unified_void(0xB4EDDC19532BFB85, "")end, - -- Stops the effect and sets a value (bool) in its data (+0x199) to false. - -- See ANIMPOSTFX_PLAY - -- - -- Full list of animpostFX / screen effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animPostFxNamesCompact.json - ["ANIMPOSTFX_STOP_AND_FLUSH_REQUESTS"]=--[[void]] function(--[[string]] effectName)return native_invoker.unified_void(effectName, 0xD2209BE128B5418C, "s")end, -} -HUD={ - -- Initializes the text entry for the the text next to a loading prompt. All natives for building UI texts can be used here - -- - -- - -- e.g - -- void StartLoadingMessage(char *text, int spinnerType = 3) - -- { - -- BEGIN_TEXT_COMMAND_BUSYSPINNER_ON("STRING"); - -- ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(text); - -- END_TEXT_COMMAND_BUSYSPINNER_ON(spinnerType); - -- } - -- /*OR*/ - -- void ShowLoadingMessage(char *text, int spinnerType = 3, int timeMs = 10000) - -- { - -- BEGIN_TEXT_COMMAND_BUSYSPINNER_ON("STRING"); - -- ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(text); - -- END_TEXT_COMMAND_BUSYSPINNER_ON(spinnerType); - -- WAIT(timeMs); - -- BUSYSPINNER_OFF(); - -- } - -- - -- - -- These are some localized strings used in the loading spinner. - -- "PM_WAIT" = Please Wait - -- "CELEB_WPLYRS" = Waiting For Players. - -- "CELL_SPINNER2" = Scanning storage. - -- "ERROR_CHECKYACHTNAME" = Registering your yacht's name. Please wait. - -- "ERROR_CHECKPROFANITY" = Checking your text for profanity. Please wait. - -- "FM_COR_AUTOD" = Just spinner no text - -- "FM_IHELP_WAT2" = Waiting for other players - -- "FM_JIP_WAITO" = Game options are being set - -- "FMMC_DOWNLOAD" = Downloading - -- "FMMC_PLYLOAD" = Loading - -- "FMMC_STARTTRAN" = Launching session - -- "HUD_QUITTING" = Quiting session - -- "KILL_STRIP_IDM" = Waiting for to accept - -- "MP_SPINLOADING" = Loading - ["BEGIN_TEXT_COMMAND_BUSYSPINNER_ON"]=--[[void]] function(--[[string]] string)return native_invoker.unified_void(string, 0xABA17D7CE615ADBF, "s")end, - -- enum eBusySpinnerType - -- { - -- BUSY_SPINNER_LEFT, - -- BUSY_SPINNER_LEFT_2, - -- BUSY_SPINNER_LEFT_3, - -- BUSY_SPINNER_SAVE, - -- BUSY_SPINNER_RIGHT, - -- }; - ["END_TEXT_COMMAND_BUSYSPINNER_ON"]=--[[void]] function(--[[int]] busySpinnerType)return native_invoker.unified_void(busySpinnerType, 0xBD12F8228410D9B4, "i")end, - -- Removes the loading prompt at the bottom right of the screen. - ["BUSYSPINNER_OFF"]=--[[void]] function()return native_invoker.unified_void(0x10D373323E5B9C0D, "")end, - ["PRELOAD_BUSYSPINNER"]=--[[void]] function()return native_invoker.unified_void(0xC65AB383CD91DF98, "")end, - ["BUSYSPINNER_IS_ON"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xD422FCC5F239A915, "")end, - ["BUSYSPINNER_IS_DISPLAYING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xB2A592B04648A9CB, "")end, - ["DISABLE_PAUSEMENU_SPINNER"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x9245E81072704B8A, "b")end, - -- Shows the cursor on screen for one frame. - ["SET_MOUSE_CURSOR_THIS_FRAME"]=--[[void]] function()return native_invoker.unified_void(0xAAE7CE1D63167423, "")end, - -- Changes the mouse cursor's sprite. - -- 1 = Normal - -- 6 = Left Arrow - -- 7 = Right Arrow - ["SET_MOUSE_CURSOR_STYLE"]=--[[void]] function(--[[int]] spriteId)return native_invoker.unified_void(spriteId, 0x8DB8CFFD58B62552, "i")end, - -- Shows/hides the frontend cursor on the pause menu or similar menus. - -- Clicking off and then on the game window will show it again. - ["SET_MOUSE_CURSOR_VISIBLE"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x98215325A695E78A, "b")end, - -- Returns TRUE if mouse is hovering above instructional buttons. Works with all buttons gfx, such as popup_warning, pause_menu_instructional_buttons, instructional_buttons, etc. Note: You have to call TOGGLE_MOUSE_BUTTONS on the scaleform if you want this native to work. - ["IS_MOUSE_ROLLED_OVER_INSTRUCTIONAL_BUTTONS"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x3D9ACB1EB139E702, "")end, - ["GET_MOUSE_EVENT"]=--[[BOOL (bool)]] function(--[[int]] scaleformHandle,--[[Any* (pointer)]] p1,--[[Any* (pointer)]] p2,--[[Any* (pointer)]] p3)return native_invoker.unified_bool(scaleformHandle, p1, p2, p3, 0x632B2940C67F4EA9, "ippp")end, - ["THEFEED_ONLY_SHOW_TOOLTIPS"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x6F1554B0CC2089FA, "b")end, - ["THEFEED_SET_SCRIPTED_MENU_HEIGHT"]=--[[void]] function(--[[float]] pos)return native_invoker.unified_void(pos, 0x55598D21339CB998, "f")end, - -- Stops loading screen tips shown by invoking `THEFEED_SHOW` - ["THEFEED_HIDE"]=--[[void]] function()return native_invoker.unified_void(0x32888337579A5970, "")end, - -- Once called each frame hides all above radar notifications. - ["THEFEED_HIDE_THIS_FRAME"]=--[[void]] function()return native_invoker.unified_void(0x25F87B30C382FCA7, "")end, - -- Displays loading screen tips, requires `THEFEED_AUTO_POST_GAMETIPS_ON` to be called beforehand. - ["THEFEED_SHOW"]=--[[void]] function()return native_invoker.unified_void(0x15CFA549788D35EF, "")end, - ["THEFEED_FLUSH_QUEUE"]=--[[void]] function()return native_invoker.unified_void(0xA8FDB297A8D25FBA, "")end, - -- Removes a notification instantly instead of waiting for it to disappear - ["THEFEED_REMOVE_ITEM"]=--[[void]] function(--[[int]] notificationId)return native_invoker.unified_void(notificationId, 0xBE4390CB40B3E627, "i")end, - ["THEFEED_FORCE_RENDER_ON"]=--[[void]] function()return native_invoker.unified_void(0xA13C11E1B5C06BFC, "")end, - -- Enables loading screen tips to be be shown (`THEFEED_SHOW`), blocks other kinds of notifications from being displayed (at least from current script). Call `0xADED7F5748ACAFE6` to display those again. - ["THEFEED_FORCE_RENDER_OFF"]=--[[void]] function()return native_invoker.unified_void(0x583049884A2EEE3C, "")end, - ["THEFEED_PAUSE"]=--[[void]] function()return native_invoker.unified_void(0xFDB423997FA30340, "")end, - ["THEFEED_RESUME"]=--[[void]] function()return native_invoker.unified_void(0xE1CD1E48E025E661, "")end, - ["THEFEED_IS_PAUSED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xA9CBFD40B3FA3010, "")end, - ["THEFEED_REPORT_LOGO_ON"]=--[[void]] function()return native_invoker.unified_void(0xD4438C0564490E63, "")end, - ["THEFEED_REPORT_LOGO_OFF"]=--[[void]] function()return native_invoker.unified_void(0xB695E2CD0A2DA9EE, "")end, - -- Returns the handle for the notification currently displayed on the screen. Name may be a hash collision, but describes the function accurately. - ["THEFEED_GET_LAST_SHOWN_PHONE_ACTIVATABLE_FEED_ID"]=--[[int]] function()return native_invoker.unified_int(0x82352748437638CA, "")end, - -- Enables loading screen tips to be be shown (`THEFEED_SHOW`), blocks other kinds of notifications from being displayed (at least from current script). Call `THEFEED_AUTO_POST_GAMETIPS_OFF` to display those again. - ["THEFEED_AUTO_POST_GAMETIPS_ON"]=--[[void]] function()return native_invoker.unified_void(0x56C8B608CFD49854, "")end, - -- Displays "normal" notifications again after calling `THEFEED_AUTO_POST_GAMETIPS_ON` (those that were drawn before calling this native too), though those will have a weird offset and stay on screen forever (tested with notifications created from same script). - ["THEFEED_AUTO_POST_GAMETIPS_OFF"]=--[[void]] function()return native_invoker.unified_void(0xADED7F5748ACAFE6, "")end, - -- From the decompiled scripts: - -- HUD::THEFEED_SET_BACKGROUND_COLOR_FOR_NEXT_POST(6); - -- HUD::THEFEED_SET_BACKGROUND_COLOR_FOR_NEXT_POST(184); - -- HUD::THEFEED_SET_BACKGROUND_COLOR_FOR_NEXT_POST(190); - -- - -- sets background color for the next notification - -- 6 = red - -- 184 = green - -- 190 = yellow - -- - -- Here is a list of some colors that can be used: https://gyazo.com/68bd384455fceb0a85a8729e48216e15 - ["THEFEED_SET_BACKGROUND_COLOR_FOR_NEXT_POST"]=--[[void]] function(--[[int]] hudColorIndex)return native_invoker.unified_void(hudColorIndex, 0x92F0DA1E27DB96DC, "i")end, - ["THEFEED_SET_RGBA_PARAMETER_FOR_NEXT_MESSAGE"]=--[[void]] function(--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha)return native_invoker.unified_void(red, green, blue, alpha, 0x17430B918701C342, "iiii")end, - -- Related to notification color flashing, setting count to 0 invalidates a `THEFEED_SET_RGBA_PARAMETER_FOR_NEXT_MESSAGE` call for the target notification. - ["THEFEED_SET_FLASH_DURATION_PARAMETER_FOR_NEXT_MESSAGE"]=--[[void]] function(--[[int]] count)return native_invoker.unified_void(count, 0x17AD8C9706BDD88A, "i")end, - ["THEFEED_SET_VIBRATE_PARAMETER_FOR_NEXT_MESSAGE"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x4A0C7C9BB10ABB36, "b")end, - ["THEFEED_RESET_ALL_PARAMETERS"]=--[[void]] function()return native_invoker.unified_void(0xFDD85225B2DEA55E, "")end, - -- Requires manual management of game stream handles (i.e., 0xBE4390CB40B3E627). - ["THEFEED_FREEZE_NEXT_POST"]=--[[void]] function()return native_invoker.unified_void(0xFDEC055AB549E328, "")end, - ["THEFEED_CLEAR_FROZEN_POST"]=--[[void]] function()return native_invoker.unified_void(0x80FE4F3AB4E1B62A, "")end, - ["THEFEED_SET_SNAP_FEED_ITEM_POSITIONS"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xBAE4F9B97CD43B30, "b")end, - -- Used in the native scripts to reference "GET_PEDHEADSHOT_TXD_STRING" and "CHAR_DEFAULT". - ["THEFEED_UPDATE_ITEM_TEXTURE"]=--[[void]] function(--[[string]] txdString1,--[[string]] txnString1,--[[string]] txdString2,--[[string]] txnString2)return native_invoker.unified_void(txdString1, txnString1, txdString2, txnString2, 0x317EBA71D7543F52, "ssss")end, - -- Declares the entry type of a notification, for example "STRING". - -- - -- int ShowNotification(char *text) - -- { - -- BEGIN_TEXT_COMMAND_THEFEED_POST("STRING"); - -- ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(text); - -- return END_TEXT_COMMAND_THEFEED_POST_TICKER(1, 1); - -- } - ["BEGIN_TEXT_COMMAND_THEFEED_POST"]=--[[void]] function(--[[string]] text)return native_invoker.unified_void(text, 0x202709F4C58A0424, "s")end, - -- List of picture names: https://pastebin.com/XdpJVbHz - -- Example result: https://i.imgur.com/SdEZ22m.png - ["END_TEXT_COMMAND_THEFEED_POST_STATS"]=--[[int]] function(--[[string]] statTitle,--[[int]] iconEnum,--[[BOOL (bool)]] stepVal,--[[int]] barValue,--[[BOOL (bool)]] isImportant,--[[string]] pictureTextureDict,--[[string]] pictureTextureName)return native_invoker.unified_int(statTitle, iconEnum, stepVal, barValue, isImportant, pictureTextureDict, pictureTextureName, 0x2B7E9A4EAAA93C89, "sibibss")end, - -- This function can show pictures of every texture that can be requested by REQUEST_STREAMED_TEXTURE_DICT. - -- - -- List of picNames: https://pastebin.com/XdpJVbHz - -- - -- - -- flash is a bool for fading in. - -- iconTypes: - -- 1 : Chat Box - -- 2 : Email - -- 3 : Add Friend Request - -- 4 : Nothing - -- 5 : Nothing - -- 6 : Nothing - -- 7 : Right Jumping Arrow - -- 8 : RP Icon - -- 9 : $ Icon - -- - -- "sender" is the very top header. This can be any old string. - -- "subject" is the header under the sender. - ["END_TEXT_COMMAND_THEFEED_POST_MESSAGETEXT"]=--[[int]] function(--[[string]] txdName,--[[string]] textureName,--[[BOOL (bool)]] flash,--[[int]] iconType,--[[string]] sender,--[[string]] subject)return native_invoker.unified_int(txdName, textureName, flash, iconType, sender, subject, 0x1CCD9A37359072CF, "ssbiss")end, - -- This function can show pictures of every texture that can be requested by REQUEST_STREAMED_TEXTURE_DICT. - -- - -- Needs more research. - -- - -- Only one type of usage in the scripts: - -- - -- HUD::END_TEXT_COMMAND_THEFEED_POST_MESSAGETEXT_SUBTITLE_LABEL("CHAR_ACTING_UP", "CHAR_ACTING_UP", 0, 0, "DI_FEED_CHAR", a_0); - ["END_TEXT_COMMAND_THEFEED_POST_MESSAGETEXT_SUBTITLE_LABEL"]=--[[int]] function(--[[string]] txdName,--[[string]] textureName,--[[BOOL (bool)]] flash,--[[int]] iconType,--[[string]] sender,--[[string]] subject)return native_invoker.unified_int(txdName, textureName, flash, iconType, sender, subject, 0xC6F580E4C94926AC, "ssbiss")end, - -- This function can show pictures of every texture that can be requested by REQUEST_STREAMED_TEXTURE_DICT. - -- - -- NOTE: 'duration' is a multiplier, so 1.0 is normal, 2.0 is twice as long (very slow), and 0.5 is half as long. - -- - -- Example, only occurrence in the scripts: - -- v_8 = HUD::END_TEXT_COMMAND_THEFEED_POST_MESSAGETEXT_TU("CHAR_SOCIAL_CLUB", "CHAR_SOCIAL_CLUB", 0, 0, &v_9, "", a_5); - ["END_TEXT_COMMAND_THEFEED_POST_MESSAGETEXT_TU"]=--[[int]] function(--[[string]] txdName,--[[string]] textureName,--[[BOOL (bool)]] flash,--[[int]] iconType,--[[string]] sender,--[[string]] subject,--[[float]] duration)return native_invoker.unified_int(txdName, textureName, flash, iconType, sender, subject, duration, 0x1E6611149DB3DB6B, "ssbissf")end, - -- This function can show pictures of every texture that can be requested by REQUEST_STREAMED_TEXTURE_DICT. - -- - -- List of picNames https://pastebin.com/XdpJVbHz - -- - -- flash is a bool for fading in. - -- iconTypes: - -- 1 : Chat Box - -- 2 : Email - -- 3 : Add Friend Request - -- 4 : Nothing - -- 5 : Nothing - -- 6 : Nothing - -- 7 : Right Jumping Arrow - -- 8 : RP Icon - -- 9 : $ Icon - -- - -- "sender" is the very top header. This can be any old string. - -- "subject" is the header under the sender. - -- "duration" is a multiplier, so 1.0 is normal, 2.0 is twice as long (very slow), and 0.5 is half as long. - -- "clanTag" shows a crew tag in the "sender" header, after the text. You need to use 3 underscores as padding. Maximum length of this field seems to be 7. (e.g. "MK" becomes "___MK", "ACE" becomes "___ACE", etc.) - ["END_TEXT_COMMAND_THEFEED_POST_MESSAGETEXT_WITH_CREW_TAG"]=--[[int]] function(--[[string]] txdName,--[[string]] textureName,--[[BOOL (bool)]] flash,--[[int]] iconType,--[[string]] sender,--[[string]] subject,--[[float]] duration,--[[string]] clanTag)return native_invoker.unified_int(txdName, textureName, flash, iconType, sender, subject, duration, clanTag, 0x5CBF7BADE20DB93E, "ssbissfs")end, - -- This function can show pictures of every texture that can be requested by REQUEST_STREAMED_TEXTURE_DICT. - -- - -- List of picNames: https://pastebin.com/XdpJVbHz - -- - -- flash is a bool for fading in. - -- iconTypes: - -- 1 : Chat Box - -- 2 : Email - -- 3 : Add Friend Request - -- 4 : Nothing - -- 5 : Nothing - -- 6 : Nothing - -- 7 : Right Jumping Arrow - -- 8 : RP Icon - -- 9 : $ Icon - -- - -- "sender" is the very top header. This can be any old string. - -- "subject" is the header under the sender. - -- "duration" is a multiplier, so 1.0 is normal, 2.0 is twice as long (very slow), and 0.5 is half as long. - -- "clanTag" shows a crew tag in the "sender" header, after the text. You need to use 3 underscores as padding. Maximum length of this field seems to be 7. (e.g. "MK" becomes "___MK", "ACE" becomes "___ACE", etc.) - -- iconType2 is a mirror of iconType. It shows in the "subject" line, right under the original iconType. - -- - -- - -- int IconNotification(char *text, char *text2, char *Subject) - -- { - -- BEGIN_TEXT_COMMAND_THEFEED_POST("STRING"); - -- ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(text); - -- _SET_NOTIFICATION_MESSAGE_CLAN_TAG_2("CHAR_SOCIAL_CLUB", "CHAR_SOCIAL_CLUB", 1, 7, text2, Subject, 1.0f, "__EXAMPLE", 7); - -- return END_TEXT_COMMAND_THEFEED_POST_TICKER(1, 1); - -- } - ["END_TEXT_COMMAND_THEFEED_POST_MESSAGETEXT_WITH_CREW_TAG_AND_ADDITIONAL_ICON"]=--[[int]] function(--[[string]] txdName,--[[string]] textureName,--[[BOOL (bool)]] flash,--[[int]] iconType1,--[[string]] sender,--[[string]] subject,--[[float]] duration,--[[string]] clanTag,--[[int]] iconType2,--[[int]] p9)return native_invoker.unified_int(txdName, textureName, flash, iconType1, sender, subject, duration, clanTag, iconType2, p9, 0x531B84E7DA981FB6, "ssbissfsii")end, - ["END_TEXT_COMMAND_THEFEED_POST_TICKER"]=--[[int]] function(--[[BOOL (bool)]] blink,--[[BOOL (bool)]] p1)return native_invoker.unified_int(blink, p1, 0x2ED7843F8F801023, "bb")end, - ["END_TEXT_COMMAND_THEFEED_POST_TICKER_FORCED"]=--[[int]] function(--[[BOOL (bool)]] blink,--[[BOOL (bool)]] p1)return native_invoker.unified_int(blink, p1, 0x44FA03975424A0EE, "bb")end, - ["END_TEXT_COMMAND_THEFEED_POST_TICKER_WITH_TOKENS"]=--[[int]] function(--[[BOOL (bool)]] blink,--[[BOOL (bool)]] p1)return native_invoker.unified_int(blink, p1, 0x378E809BF61EC840, "bb")end, - -- Shows an "award" notification above the minimap, example: https://i.imgur.com/e2DNaKX.png - -- Example: - -- - -- HUD::BEGIN_TEXT_COMMAND_THEFEED_POST("HUNT"); - -- HUD::END_TEXT_COMMAND_THEFEED_POST_AWARD("Hunting", "Hunting_Gold_128", 0, 109, "HUD_MED_UNLKED"); - ["END_TEXT_COMMAND_THEFEED_POST_AWARD"]=--[[int]] function(--[[string]] textureDict,--[[string]] textureName,--[[int]] rpBonus,--[[int]] colorOverlay,--[[string]] titleLabel)return native_invoker.unified_int(textureDict, textureName, rpBonus, colorOverlay, titleLabel, 0xAA295B6F28BD587D, "ssiis")end, - ["END_TEXT_COMMAND_THEFEED_POST_CREWTAG"]=--[[int]] function(--[[BOOL (bool)]] p0,--[[BOOL (bool)]] p1,--[[int* (pointer)]] p2,--[[int]] p3,--[[BOOL (bool)]] isLeader,--[[BOOL (bool)]] unk0,--[[int]] clanDesc,--[[int]] R,--[[int]] G,--[[int]] B)return native_invoker.unified_int(p0, p1, p2, p3, isLeader, unk0, clanDesc, R, G, B, 0x97C9E4E7024A8F2C, "bbpibbiiii")end, - ["END_TEXT_COMMAND_THEFEED_POST_CREWTAG_WITH_GAME_NAME"]=--[[int]] function(--[[BOOL (bool)]] p0,--[[BOOL (bool)]] p1,--[[int* (pointer)]] p2,--[[int]] p3,--[[BOOL (bool)]] isLeader,--[[BOOL (bool)]] unk0,--[[int]] clanDesc,--[[string]] playerName,--[[int]] R,--[[int]] G,--[[int]] B)return native_invoker.unified_int(p0, p1, p2, p3, isLeader, unk0, clanDesc, playerName, R, G, B, 0x137BC35589E34E1E, "bbpibbisiii")end, - ["END_TEXT_COMMAND_THEFEED_POST_UNLOCK"]=--[[int]] function(--[[string]] gxtLabel1,--[[int]] p1,--[[string]] gxtLabel2)return native_invoker.unified_int(gxtLabel1, p1, gxtLabel2, 0x33EE12743CCD6343, "sis")end, - ["END_TEXT_COMMAND_THEFEED_POST_UNLOCK_TU"]=--[[int]] function(--[[string]] gxtLabel1,--[[int]] p1,--[[string]] gxtLabel2,--[[int]] p3)return native_invoker.unified_int(gxtLabel1, p1, gxtLabel2, p3, 0xC8F3AAF93D0600BF, "sisi")end, - ["END_TEXT_COMMAND_THEFEED_POST_UNLOCK_TU_WITH_COLOR"]=--[[int]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5)return native_invoker.unified_int(p0, p1, p2, p3, p4, p5, 0x7AE0589093A2E088, "iiiiii")end, - ["END_TEXT_COMMAND_THEFEED_POST_MPTICKER"]=--[[int]] function(--[[BOOL (bool)]] blink,--[[BOOL (bool)]] p1)return native_invoker.unified_int(blink, p1, 0xF020C96915705B3A, "bb")end, - ["END_TEXT_COMMAND_THEFEED_POST_CREW_RANKUP_WITH_LITERAL_FLAG"]=--[[int]] function(--[[string]] p0,--[[string]] p1,--[[string]] p2,--[[BOOL (bool)]] p3,--[[BOOL (bool)]] p4)return native_invoker.unified_int(p0, p1, p2, p3, p4, 0x8EFCCF6EC66D85E4, "sssbb")end, - -- This function can show pictures of every texture that can be requested by REQUEST_STREAMED_TEXTURE_DICT. - -- - -- List of picNames: https://pastebin.com/XdpJVbHz - -- HUD colors and their values: https://pastebin.com/d9aHPbXN - -- - -- Shows a deathmatch score above the minimap, example: https://i.imgur.com/YmoMklG.png - ["END_TEXT_COMMAND_THEFEED_POST_VERSUS_TU"]=--[[int]] function(--[[string]] txdName1,--[[string]] textureName1,--[[int]] count1,--[[string]] txdName2,--[[string]] textureName2,--[[int]] count2,--[[int]] hudColor1,--[[int]] hudColor2)return native_invoker.unified_int(txdName1, textureName1, count1, txdName2, textureName2, count2, hudColor1, hudColor2, 0xB6871B0555B02996, "ssissiii")end, - -- returns a notification handle, prints out a notification like below: - -- type range: 0 - 2 - -- if you set type to 1, image goes from 0 - 39 - Xbox you can add text to - -- - -- example: - -- HUD::END_TEXT_COMMAND_THEFEED_POST_REPLAY_INPUT(1, 20, "Who you trynna get crazy with, ese? Don't you know I'm LOCO?!"); - -- - https://imgur.com/lGBPCz3 - ["END_TEXT_COMMAND_THEFEED_POST_REPLAY"]=--[[int]] function(--[[int]] type,--[[int]] image,--[[string]] text)return native_invoker.unified_int(type, image, text, 0xD202B92CBF1D816F, "iis")end, - -- returns a notification handle, prints out a notification like below: - -- type range: 0 - 2 - -- if you set type to 1, button accepts "~INPUT_SOMETHING~" - -- - -- example: - -- HUD::END_TEXT_COMMAND_THEFEED_POST_REPLAY_INPUT(1, "~INPUT_TALK~", "Who you trynna get crazy with, ese? Don't you know I'm LOCO?!"); - -- - https://imgur.com/UPy0Ial - -- - -- - -- Examples from the scripts: - -- l_D1[1/*1*/]=HUD::END_TEXT_COMMAND_THEFEED_POST_REPLAY_INPUT(1,"~INPUT_REPLAY_START_STOP_RECORDING~",""); - -- l_D1[2/*1*/]=HUD::END_TEXT_COMMAND_THEFEED_POST_REPLAY_INPUT(1,"~INPUT_SAVE_REPLAY_CLIP~",""); - -- l_D1[1/*1*/]=HUD::END_TEXT_COMMAND_THEFEED_POST_REPLAY_INPUT(1,"~INPUT_REPLAY_START_STOP_RECORDING~",""); - -- l_D1[2/*1*/]=HUD::END_TEXT_COMMAND_THEFEED_POST_REPLAY_INPUT(1,"~INPUT_REPLAY_START_STOP_RECORDING_SECONDARY~",""); - -- - ["END_TEXT_COMMAND_THEFEED_POST_REPLAY_INPUT"]=--[[int]] function(--[[int]] type,--[[string]] button,--[[string]] text)return native_invoker.unified_int(type, button, text, 0xDD6CB2CCE7C2735C, "iss")end, - -- void ShowSubtitle(const char *text) - -- { - -- BEGIN_TEXT_COMMAND_PRINT("STRING"); - -- ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(text); - -- END_TEXT_COMMAND_PRINT(2000, true); - -- } - ["BEGIN_TEXT_COMMAND_PRINT"]=--[[void]] function(--[[string]] GxtEntry)return native_invoker.unified_void(GxtEntry, 0xB87A37EEB7FAA67D, "s")end, - -- Draws the subtitle at middle center of the screen. - -- - -- int duration = time in milliseconds to show text on screen before disappearing - -- - -- drawImmediately = If true, the text will be drawn immediately, if false, the text will be drawn after the previous subtitle has finished - -- - -- Used to be known as _DRAW_SUBTITLE_TIMED - ["END_TEXT_COMMAND_PRINT"]=--[[void]] function(--[[int]] duration,--[[BOOL (bool)]] drawImmediately)return native_invoker.unified_void(duration, drawImmediately, 0x9D77056A530643F6, "ib")end, - -- nothin doin. - -- - -- BOOL Message(const char* text) - -- { - -- BEGIN_TEXT_COMMAND_IS_MESSAGE_DISPLAYED("STRING"); - -- ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(text); - -- return END_TEXT_COMMAND_IS_MESSAGE_DISPLAYED(); - -- } - ["BEGIN_TEXT_COMMAND_IS_MESSAGE_DISPLAYED"]=--[[void]] function(--[[string]] text)return native_invoker.unified_void(text, 0x853648FD1063A213, "s")end, - ["END_TEXT_COMMAND_IS_MESSAGE_DISPLAYED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x8A9BA1AB3E237613, "")end, - -- The following were found in the decompiled script files: - -- STRING, TWOSTRINGS, NUMBER, PERCENTAGE, FO_TWO_NUM, ESMINDOLLA, ESDOLLA, MTPHPER_XPNO, AHD_DIST, CMOD_STAT_0, CMOD_STAT_1, CMOD_STAT_2, CMOD_STAT_3, DFLT_MNU_OPT, F3A_TRAFDEST, ES_HELP_SOC3 - -- - -- ESDOLLA - cash - -- ESMINDOLLA - cash (negative) - -- - -- Used to be known as _SET_TEXT_ENTRY - ["BEGIN_TEXT_COMMAND_DISPLAY_TEXT"]=--[[void]] function(--[[string]] text)return native_invoker.unified_void(text, 0x25FBB336DF1804CB, "s")end, - -- After applying the properties to the text (See HUD::SET_TEXT_), this will draw the text in the applied position. Also 0.0f < x, y < 1.0f, percentage of the axis. - -- - -- Used to be known as _DRAW_TEXT - ["END_TEXT_COMMAND_DISPLAY_TEXT"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[int]] p2)return native_invoker.unified_void(x, y, p2, 0xCD015E5BB0D96A57, "ffi")end, - ["BEGIN_TEXT_COMMAND_GET_SCREEN_WIDTH_OF_DISPLAY_TEXT"]=--[[void]] function(--[[string]] text)return native_invoker.unified_void(text, 0x54CE8AC98E120CAB, "s")end, - ["END_TEXT_COMMAND_GET_SCREEN_WIDTH_OF_DISPLAY_TEXT"]=--[[float]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_float(p0, 0x85F061DA64ED2F67, "b")end, - -- int GetLineCount(char *text, float x, float y) - -- { - -- BEGIN_TEXT_COMMAND_GET_NUMBER_OF_LINES_FOR_STRING("STRING"); - -- ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(text); - -- return BEGIN_TEXT_COMMAND_GET_NUMBER_OF_LINES_FOR_STRING(x, y); - -- } - ["BEGIN_TEXT_COMMAND_GET_NUMBER_OF_LINES_FOR_STRING"]=--[[void]] function(--[[string]] entry)return native_invoker.unified_void(entry, 0x521FB041D93DD0E4, "s")end, - -- Determines how many lines the text string will use when drawn on screen. - -- Must use 0x521FB041D93DD0E4 for setting up - ["END_TEXT_COMMAND_GET_NUMBER_OF_LINES_FOR_STRING"]=--[[int]] function(--[[float]] x,--[[float]] y)return native_invoker.unified_int(x, y, 0x9040DFB09BE75706, "ff")end, - -- Used to be known as _SET_TEXT_COMPONENT_FORMAT - ["BEGIN_TEXT_COMMAND_DISPLAY_HELP"]=--[[void]] function(--[[string]] inputType)return native_invoker.unified_void(inputType, 0x8509B634FBE7DA11, "s")end, - -- shape goes from -1 to 50 (may be more). - -- p0 is always 0. - -- - -- Example: - -- void FloatingHelpText(const char* text) - -- { - -- BEGIN_TEXT_COMMAND_DISPLAY_HELP("STRING"); - -- ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(text); - -- END_TEXT_COMMAND_DISPLAY_HELP (0, 0, 1, -1); - -- } - -- - -- Image: - -- - imgbin.org/images/26209.jpg - -- - -- more inputs/icons: - -- - https://pastebin.com/nqNYWMSB - -- - -- Used to be known as _DISPLAY_HELP_TEXT_FROM_STRING_LABEL - ["END_TEXT_COMMAND_DISPLAY_HELP"]=--[[void]] function(--[[int]] p0,--[[BOOL (bool)]] loop,--[[BOOL (bool)]] beep,--[[int]] shape)return native_invoker.unified_void(p0, loop, beep, shape, 0x238FFE5C7B0498A6, "ibbi")end, - -- BOOL IsContextActive(char *ctx) - -- { - -- BEGIN_TEXT_COMMAND_IS_THIS_HELP_MESSAGE_BEING_DISPLAYED(ctx); - -- return END_TEXT_COMMAND_IS_THIS_HELP_MESSAGE_BEING_DISPLAYED(0); - -- } - ["BEGIN_TEXT_COMMAND_IS_THIS_HELP_MESSAGE_BEING_DISPLAYED"]=--[[void]] function(--[[string]] labelName)return native_invoker.unified_void(labelName, 0x0A24DA3A41B718F5, "s")end, - ["END_TEXT_COMMAND_IS_THIS_HELP_MESSAGE_BEING_DISPLAYED"]=--[[BOOL (bool)]] function(--[[int]] p0)return native_invoker.unified_bool(p0, 0x10BDDBFC529428DD, "i")end, - -- Starts a text command to change the name of a blip displayed in the pause menu. - -- This should be paired with `END_TEXT_COMMAND_SET_BLIP_NAME`, once adding all required text components. - -- Example: - -- - -- HUD::BEGIN_TEXT_COMMAND_SET_BLIP_NAME("STRING"); - -- HUD::ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME("Name"); - -- HUD::END_TEXT_COMMAND_SET_BLIP_NAME(blip); - ["BEGIN_TEXT_COMMAND_SET_BLIP_NAME"]=--[[void]] function(--[[string]] textLabel)return native_invoker.unified_void(textLabel, 0xF9113A30DE5C6670, "s")end, - -- Finalizes a text command started with BEGIN_TEXT_COMMAND_SET_BLIP_NAME, setting the name of the specified blip. - ["END_TEXT_COMMAND_SET_BLIP_NAME"]=--[[void]] function(--[[Blip (int)]] blip)return native_invoker.unified_void(blip, 0xBC38B49BCB83BC9B, "i")end, - ["BEGIN_TEXT_COMMAND_ADD_DIRECTLY_TO_PREVIOUS_BRIEFS"]=--[[void]] function(--[[string]] p0)return native_invoker.unified_void(p0, 0x23D69E0465570028, "s")end, - ["END_TEXT_COMMAND_ADD_DIRECTLY_TO_PREVIOUS_BRIEFS"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xCFDBDF5AE59BA0F4, "b")end, - -- clears a print text command with this text - ["BEGIN_TEXT_COMMAND_CLEAR_PRINT"]=--[[void]] function(--[[string]] text)return native_invoker.unified_void(text, 0xE124FA80A759019C, "s")end, - ["END_TEXT_COMMAND_CLEAR_PRINT"]=--[[void]] function()return native_invoker.unified_void(0xFCC75460ABA29378, "")end, - ["BEGIN_TEXT_COMMAND_OVERRIDE_BUTTON_TEXT"]=--[[void]] function(--[[string]] gxtEntry)return native_invoker.unified_void(gxtEntry, 0x8F9EE5687F8EECCD, "s")end, - ["END_TEXT_COMMAND_OVERRIDE_BUTTON_TEXT"]=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0xA86911979638106F, "i")end, - ["ADD_TEXT_COMPONENT_INTEGER"]=--[[void]] function(--[[int]] value)return native_invoker.unified_void(value, 0x03B504CF259931BC, "i")end, - ["ADD_TEXT_COMPONENT_FLOAT"]=--[[void]] function(--[[float]] value,--[[int]] decimalPlaces)return native_invoker.unified_void(value, decimalPlaces, 0xE7DCB5B874BCD96E, "fi")end, - ["ADD_TEXT_COMPONENT_SUBSTRING_TEXT_LABEL"]=--[[void]] function(--[[string]] labelName)return native_invoker.unified_void(labelName, 0xC63CD5D2920ACBE7, "s")end, - -- It adds the localized text of the specified GXT entry name. Eg. if the argument is GET_HASH_KEY("ES_HELP"), adds "Continue". Just uses a text labels hash key - ["ADD_TEXT_COMPONENT_SUBSTRING_TEXT_LABEL_HASH_KEY"]=--[[void]] function(--[[Hash (int)]] gxtEntryHash)return native_invoker.unified_void(gxtEntryHash, 0x17299B63C7683A2B, "i")end, - ["ADD_TEXT_COMPONENT_SUBSTRING_BLIP_NAME"]=--[[void]] function(--[[Blip (int)]] blip)return native_invoker.unified_void(blip, 0x80EAD8E2E1D5D52E, "i")end, - ["ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME"]=--[[void]] function(--[[string]] text)return native_invoker.unified_void(text, 0x6C188BE134E074AA, "s")end, - -- Adds a timer (e.g. "00:00:00:000"). The appearance of the timer depends on the flags, which needs more research. - ["ADD_TEXT_COMPONENT_SUBSTRING_TIME"]=--[[void]] function(--[[int]] timestamp,--[[int]] flags)return native_invoker.unified_void(timestamp, flags, 0x1115F16B8AB9E8BF, "ii")end, - ["ADD_TEXT_COMPONENT_FORMATTED_INTEGER"]=--[[void]] function(--[[int]] value,--[[BOOL (bool)]] commaSeparated)return native_invoker.unified_void(value, commaSeparated, 0x0E4C749FF9DE9CC4, "ib")end, - -- p1 was always -1 - ["ADD_TEXT_COMPONENT_SUBSTRING_PHONE_NUMBER"]=--[[void]] function(--[[string]] p0,--[[int]] p1)return native_invoker.unified_void(p0, p1, 0x761B77454205A61D, "si")end, - -- This native (along with ADD_TEXT_COMPONENT_SUBSTRING_KEYBOARD_DISPLAY and ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME) do not actually filter anything. They simply add the provided text (as of 944) - ["ADD_TEXT_COMPONENT_SUBSTRING_WEBSITE"]=--[[void]] function(--[[string]] website)return native_invoker.unified_void(website, 0x94CF4AC034C9C986, "s")end, - ["ADD_TEXT_COMPONENT_SUBSTRING_KEYBOARD_DISPLAY"]=--[[void]] function(--[[string]] string)return native_invoker.unified_void(string, 0x5F68520888E69014, "s")end, - ["SET_COLOUR_OF_NEXT_TEXT_COMPONENT"]=--[[void]] function(--[[int]] hudColor)return native_invoker.unified_void(hudColor, 0x39BBF623FC803EAC, "i")end, - -- Returns a substring of a specified length starting at a specified position. - -- - -- Example: - -- // Get "STRING" text from "MY_STRING" - -- subStr = HUD::GET_CHARACTER_FROM_AUDIO_CONVERSATION_FILENAME("MY_STRING", 3, 6); - ["GET_CHARACTER_FROM_AUDIO_CONVERSATION_FILENAME"]=--[[string]] function(--[[string]] text,--[[int]] position,--[[int]] length)return native_invoker.unified_string(text, position, length, 0x169BD9382084C8C0, "sii")end, - -- Returns a substring of a specified length starting at a specified position. The result is guaranteed not to exceed the specified max length. - -- - -- NOTE: The 'maxLength' parameter might actually be the size of the buffer that is returned. More research is needed. -CL69 - -- - -- Example: - -- // Condensed example of how Rockstar uses this function - -- strLen = HUD::GET_LENGTH_OF_LITERAL_STRING(MISC::GET_ONSCREEN_KEYBOARD_RESULT()); - -- subStr = HUD::GET_CHARACTER_FROM_AUDIO_CONVERSATION_FILENAME_WITH_BYTE_LIMIT(MISC::GET_ONSCREEN_KEYBOARD_RESULT(), 0, strLen, 63); - -- - -- -- - -- - -- "fm_race_creator.ysc", line 85115: - -- // parameters modified for clarity - -- BOOL sub_8e5aa(char *text, int length) { - -- for (i = 0; i <= (length - 2); i += 1) { - -- if (!MISC::ARE_STRINGS_EQUAL(HUD::GET_CHARACTER_FROM_AUDIO_CONVERSATION_FILENAME_WITH_BYTE_LIMIT(text, i, i + 1, 1), " ")) { - -- return FALSE; - -- } - -- } - -- return TRUE; - -- } - ["GET_CHARACTER_FROM_AUDIO_CONVERSATION_FILENAME_WITH_BYTE_LIMIT"]=--[[string]] function(--[[string]] text,--[[int]] position,--[[int]] length,--[[int]] maxLength)return native_invoker.unified_string(text, position, length, maxLength, 0xB2798643312205C5, "siii")end, - -- Returns a substring that is between two specified positions. The length of the string will be calculated using (endPosition - startPosition). - -- - -- Example: - -- // Get "STRING" text from "MY_STRING" - -- subStr = HUD::GET_CHARACTER_FROM_AUDIO_CONVERSATION_FILENAME_BYTES("MY_STRING", 3, 9); - -- // Overflows are possibly replaced with underscores (needs verification) - -- subStr = HUD::GET_CHARACTER_FROM_AUDIO_CONVERSATION_FILENAME_BYTES("MY_STRING", 3, 10); // "STRING_"? - ["GET_CHARACTER_FROM_AUDIO_CONVERSATION_FILENAME_BYTES"]=--[[string]] function(--[[string]] text,--[[int]] startPosition,--[[int]] endPosition)return native_invoker.unified_string(text, startPosition, endPosition, 0xCE94AEBA5D82908A, "sii")end, - -- Gets a localized string literal from a label name. Can be used for output of e.g. VEHICLE::GET_LIVERY_NAME. To check if a GXT label can be localized with this, HUD::DOES_TEXT_LABEL_EXIST can be used. - ["GET_FILENAME_FOR_AUDIO_CONVERSATION"]=--[[string]] function(--[[string]] labelName)return native_invoker.unified_string(labelName, 0x7B5280EBA9840C72, "s")end, - ["CLEAR_PRINTS"]=--[[void]] function()return native_invoker.unified_void(0xCC33FA791322B9D9, "")end, - ["CLEAR_BRIEF"]=--[[void]] function()return native_invoker.unified_void(0x9D292F73ADBD9313, "")end, - ["CLEAR_ALL_HELP_MESSAGES"]=--[[void]] function()return native_invoker.unified_void(0x6178F68A87A4D3A0, "")end, - -- p0: found arguments in the b617d scripts: https://pastebin.com/X5akCN7z - ["CLEAR_THIS_PRINT"]=--[[void]] function(--[[string]] p0)return native_invoker.unified_void(p0, 0xCF708001E1E536DD, "s")end, - ["CLEAR_SMALL_PRINTS"]=--[[void]] function()return native_invoker.unified_void(0x2CEA2839313C09AC, "")end, - ["DOES_TEXT_BLOCK_EXIST"]=--[[BOOL (bool)]] function(--[[string]] gxt)return native_invoker.unified_bool(gxt, 0x1C7302E725259789, "s")end, - -- Request a gxt into the passed slot. - ["REQUEST_ADDITIONAL_TEXT"]=--[[void]] function(--[[string]] gxt,--[[int]] slot)return native_invoker.unified_void(gxt, slot, 0x71A78003C8E71424, "si")end, - ["REQUEST_ADDITIONAL_TEXT_FOR_DLC"]=--[[void]] function(--[[string]] gxt,--[[int]] slot)return native_invoker.unified_void(gxt, slot, 0x6009F9F1AE90D8A6, "si")end, - ["HAS_ADDITIONAL_TEXT_LOADED"]=--[[BOOL (bool)]] function(--[[int]] slot)return native_invoker.unified_bool(slot, 0x02245FE4BED318B8, "i")end, - ["CLEAR_ADDITIONAL_TEXT"]=--[[void]] function(--[[int]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0x2A179DF17CCF04CD, "ib")end, - ["IS_STREAMING_ADDITIONAL_TEXT"]=--[[BOOL (bool)]] function(--[[int]] p0)return native_invoker.unified_bool(p0, 0x8B6817B71B85EBF0, "i")end, - -- Checks if the specified gxt has loaded into the passed slot. - ["HAS_THIS_ADDITIONAL_TEXT_LOADED"]=--[[BOOL (bool)]] function(--[[string]] gxt,--[[int]] slot)return native_invoker.unified_bool(gxt, slot, 0xADBF060E2B30C5BC, "si")end, - ["IS_MESSAGE_BEING_DISPLAYED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x7984C03AA5CC2F41, "")end, - -- Checks if the passed gxt name exists in the game files. - ["DOES_TEXT_LABEL_EXIST"]=--[[BOOL (bool)]] function(--[[string]] gxt)return native_invoker.unified_bool(gxt, 0xAC09CA973C564252, "s")end, - ["GET_FIRST_N_CHARACTERS_OF_LITERAL_STRING"]=--[[string]] function(--[[string]] string,--[[int]] length)return native_invoker.unified_string(string, length, 0x98C3CF913D895111, "si")end, - -- Returns the string length of the string from the gxt string . - ["GET_LENGTH_OF_STRING_WITH_THIS_TEXT_LABEL"]=--[[int]] function(--[[string]] gxt)return native_invoker.unified_int(gxt, 0x801BD273D3A23F74, "s")end, - -- Returns the length of the string passed (much like strlen). - ["GET_LENGTH_OF_LITERAL_STRING"]=--[[int]] function(--[[string]] string)return native_invoker.unified_int(string, 0xF030907CCBB8A9FD, "s")end, - ["GET_LENGTH_OF_LITERAL_STRING_IN_BYTES"]=--[[int]] function(--[[string]] string)return native_invoker.unified_int(string, 0x43E4111189E54F0E, "s")end, - -- This functions converts the hash of a street name into a readable string. - -- - -- For how to get the hashes, see PATHFIND::GET_STREET_NAME_AT_COORD. - ["GET_STREET_NAME_FROM_HASH_KEY"]=--[[string]] function(--[[Hash (int)]] hash)return native_invoker.unified_string(hash, 0xD0EF8A959B8A4CB9, "i")end, - ["IS_HUD_PREFERENCE_SWITCHED_ON"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x1930DFA731813EC4, "")end, - ["IS_RADAR_PREFERENCE_SWITCHED_ON"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x9EB6522EA68F22FE, "")end, - ["IS_SUBTITLE_PREFERENCE_SWITCHED_ON"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xAD6DACA4BA53E0A4, "")end, - -- If Hud should be displayed - ["DISPLAY_HUD"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xA6294919E56FF02A, "b")end, - -- Enables drawing some hud components, such as help labels, this frame, when the player is dead. - ["DISPLAY_HUD_WHEN_NOT_IN_STATE_OF_PLAY_THIS_FRAME"]=--[[void]] function()return native_invoker.unified_void(0x7669F9E39DC17063, "")end, - ["DISPLAY_HUD_WHEN_PAUSED_THIS_FRAME"]=--[[void]] function()return native_invoker.unified_void(0x402F9ED62087E898, "")end, - -- If Minimap / Radar should be displayed. - ["DISPLAY_RADAR"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xA0EBB943C300E693, "b")end, - -- Setter for GET_FAKE_SPECTATOR_MODE - ["SET_FAKE_SPECTATOR_MODE"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xCD74233600C4EA6B, "b")end, - -- Getter for SET_FAKE_SPECTATOR_MODE - ["GET_FAKE_SPECTATOR_MODE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC2D2AD9EAAE265B8, "")end, - ["IS_HUD_HIDDEN"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xA86478C6958735C5, "")end, - ["IS_RADAR_HIDDEN"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x157F93B036700462, "")end, - ["IS_MINIMAP_RENDERING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xAF754F20EB5CD51A, "")end, - ["USE_VEHICLE_TARGETING_RETICULE"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x0C698D8F099174C7, "i")end, - ["_USE_VEHICLE_TARGETING_RETICULE_ON_VEHICLES"]=--[[void]] function(--[[BOOL (bool)]] enable)return native_invoker.unified_void(enable, 0x1BC0EA2912708625, "b")end, - ["ADD_VALID_VEHICLE_HIT_HASH"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xE4C3B169876D33D7, "i")end, - ["CLEAR_VALID_VEHICLE_HIT_HASHES"]=--[[void]] function()return native_invoker.unified_void(0xEB81A3DADD503187, "")end, - -- Enable / disable showing route for the Blip-object. - ["SET_BLIP_ROUTE"]=--[[void]] function(--[[Blip (int)]] blip,--[[BOOL (bool)]] enabled)return native_invoker.unified_void(blip, enabled, 0x4F7D8A9BFB0B43E9, "ib")end, - ["CLEAR_ALL_BLIP_ROUTES"]=--[[void]] function()return native_invoker.unified_void(0xD12882D3FF82BF11, "")end, - ["SET_BLIP_ROUTE_COLOUR"]=--[[void]] function(--[[Blip (int)]] blip,--[[int]] colour)return native_invoker.unified_void(blip, colour, 0x837155CD2F63DA09, "ii")end, - ["SET_FORCE_SHOW_GPS"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x2790F4B17D098E26, "b")end, - ["SET_USE_SET_DESTINATION_IN_PAUSE_MAP"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x6CDD58146A436083, "b")end, - ["SET_BLOCK_WANTED_FLASH"]=--[[void]] function(--[[BOOL (bool)]] disabled)return native_invoker.unified_void(disabled, 0xD1942374085C8469, "b")end, - ["ADD_NEXT_MESSAGE_TO_PREVIOUS_BRIEFS"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x60296AF4BA14ABC5, "b")end, - ["FORCE_NEXT_MESSAGE_TO_PREVIOUS_BRIEFS_LIST"]=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0x57D760D55F54E071, "i")end, - -- zoom ranges from 0 to 90f in R* Scripts - ["SET_RADAR_ZOOM_PRECISE"]=--[[void]] function(--[[float]] zoom)return native_invoker.unified_void(zoom, 0xBD12C5EEE184C337, "f")end, - -- zoomLevel ranges from 0 to 1400 in R* Scripts - ["SET_RADAR_ZOOM"]=--[[void]] function(--[[int]] zoomLevel)return native_invoker.unified_void(zoomLevel, 0x096EF57A0C999BBA, "i")end, - ["SET_RADAR_ZOOM_TO_BLIP"]=--[[void]] function(--[[Blip (int)]] blip,--[[float]] zoom)return native_invoker.unified_void(blip, zoom, 0xF98E4B3E56AFC7B1, "if")end, - ["SET_RADAR_ZOOM_TO_DISTANCE"]=--[[void]] function(--[[float]] zoom)return native_invoker.unified_void(zoom, 0xCB7CC0D58405AD41, "f")end, - -- Does nothing (it's a nullsub). - ["UPDATE_RADAR_ZOOM_TO_BLIP"]=--[[void]] function()return native_invoker.unified_void(0xD2049635DEB9C375, "")end, - ["GET_HUD_COLOUR"]=--[[void]] function(--[[int]] hudColorIndex,--[[int* (pointer)]] r,--[[int* (pointer)]] g,--[[int* (pointer)]] b,--[[int* (pointer)]] a)return native_invoker.unified_void(hudColorIndex, r, g, b, a, 0x7C9C91AB74A0360F, "ipppp")end, - -- Sets the color of HUD_COLOUR_SCRIPT_VARIABLE - ["SET_SCRIPT_VARIABLE_HUD_COLOUR"]=--[[void]] function(--[[int]] r,--[[int]] g,--[[int]] b,--[[int]] a)return native_invoker.unified_void(r, g, b, a, 0xD68A5FF8A3A89874, "iiii")end, - -- Sets the color of HUD_COLOUR_SCRIPT_VARIABLE_2 - ["SET_SECOND_SCRIPT_VARIABLE_HUD_COLOUR"]=--[[void]] function(--[[int]] r,--[[int]] g,--[[int]] b,--[[int]] a)return native_invoker.unified_void(r, g, b, a, 0x16A304E6CB2BFAB9, "iiii")end, - -- makes hudColorIndex2 color into hudColorIndex color - ["REPLACE_HUD_COLOUR"]=--[[void]] function(--[[int]] hudColorIndex,--[[int]] hudColorIndex2)return native_invoker.unified_void(hudColorIndex, hudColorIndex2, 0x1CCC708F0F850613, "ii")end, - ["REPLACE_HUD_COLOUR_WITH_RGBA"]=--[[void]] function(--[[int]] hudColorIndex,--[[int]] r,--[[int]] g,--[[int]] b,--[[int]] a)return native_invoker.unified_void(hudColorIndex, r, g, b, a, 0xF314CF4F0211894E, "iiiii")end, - ["SET_ABILITY_BAR_VISIBILITY"]=--[[void]] function(--[[BOOL (bool)]] visible)return native_invoker.unified_void(visible, 0x1DFEDD15019315A9, "b")end, - ["SET_ALLOW_ABILITY_BAR"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x889329C80FE5963C, "b")end, - ["FLASH_ABILITY_BAR"]=--[[void]] function(--[[int]] millisecondsToFlash)return native_invoker.unified_void(millisecondsToFlash, 0x02CFBA0C9E9275CE, "i")end, - ["SET_ABILITY_BAR_VALUE"]=--[[void]] function(--[[float]] p0,--[[float]] p1)return native_invoker.unified_void(p0, p1, 0x9969599CCFF5D85E, "ff")end, - ["FLASH_WANTED_DISPLAY"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xA18AFB39081B6A1F, "b")end, - ["FORCE_OFF_WANTED_STAR_FLASH"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xBA8D65C1C65702E5, "b")end, - ["SET_CUSTOM_MP_HUD_COLOR"]=--[[void]] function(--[[int]] hudColorId)return native_invoker.unified_void(hudColorId, 0x2ACCB195F3CCD9DE, "i")end, - -- This gets the height of the FONT and not the total text. You need to get the number of lines your text uses, and get the height of a newline (I'm using a smaller value) to get the total text height. - ["GET_RENDERED_CHARACTER_HEIGHT"]=--[[float]] function(--[[float]] size,--[[int]] font)return native_invoker.unified_float(size, font, 0xDB88A37483346780, "fi")end, - -- Size range : 0F to 1.0F - -- p0 is unknown and doesn't seem to have an effect, yet in the game scripts it changes to 1.0F sometimes. - ["SET_TEXT_SCALE"]=--[[void]] function(--[[float]] scale,--[[float]] size)return native_invoker.unified_void(scale, size, 0x07C837F9A01C34C9, "ff")end, - -- colors you input not same as you think? - -- A: for some reason its R B G A - ["SET_TEXT_COLOUR"]=--[[void]] function(--[[int]] red,--[[int]] green,--[[int]] blue,--[[int]] alpha)return native_invoker.unified_void(red, green, blue, alpha, 0xBE6B23FFA53FB442, "iiii")end, - ["SET_TEXT_CENTRE"]=--[[void]] function(--[[BOOL (bool)]] align)return native_invoker.unified_void(align, 0xC02F4DBFB51D988B, "b")end, - ["SET_TEXT_RIGHT_JUSTIFY"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x6B3C4650BC8BEE47, "b")end, - -- Types - - -- 0: Center-Justify - -- 1: Left-Justify - -- 2: Right-Justify - -- - -- Right-Justify requires SET_TEXT_WRAP, otherwise it will draw to the far right of the screen - ["SET_TEXT_JUSTIFICATION"]=--[[void]] function(--[[int]] justifyType)return native_invoker.unified_void(justifyType, 0x4E096588B13FFECA, "i")end, - ["SET_TEXT_LINE_HEIGHT_MULT"]=--[[void]] function(--[[float]] lineHeightMult)return native_invoker.unified_void(lineHeightMult, 0x9F4624F76E6953D1, "f")end, - -- It sets the text in a specified box and wraps the text if it exceeds the boundries. Both values are for X axis. Useful when positioning text set to center or aligned to the right. - -- - -- start - left boundry on screen position (0.0 - 1.0) - -- end - right boundry on screen position (0.0 - 1.0) - ["SET_TEXT_WRAP"]=--[[void]] function(--[[float]] start,--[[float]] _end)return native_invoker.unified_void(start, _end, 0x63145D9C883A1A70, "ff")end, - ["SET_TEXT_LEADING"]=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0xA50ABC31E3CDFAFF, "i")end, - -- This native does absolutely nothing, just a nullsub - ["SET_TEXT_PROPORTIONAL"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x038C1F517D7FDCF8, "b")end, - -- fonts that mess up your text where made for number values/misc stuff - ["SET_TEXT_FONT"]=--[[void]] function(--[[int]] fontType)return native_invoker.unified_void(fontType, 0x66E0276CC5F6B9DA, "i")end, - ["SET_TEXT_DROP_SHADOW"]=--[[void]] function()return native_invoker.unified_void(0x1CA3E9EAC9D93E5E, "")end, - -- distance - shadow distance in pixels, both horizontal and vertical - -- r, g, b, a - color - ["SET_TEXT_DROPSHADOW"]=--[[void]] function(--[[int]] distance,--[[int]] r,--[[int]] g,--[[int]] b,--[[int]] a)return native_invoker.unified_void(distance, r, g, b, a, 0x465C84BC39F1C351, "iiiii")end, - ["SET_TEXT_OUTLINE"]=--[[void]] function()return native_invoker.unified_void(0x2513DFB0FB8400FE, "")end, - -- This native does absolutely nothing, just a nullsub - ["SET_TEXT_EDGE"]=--[[void]] function(--[[int]] p0,--[[int]] r,--[[int]] g,--[[int]] b,--[[int]] a)return native_invoker.unified_void(p0, r, g, b, a, 0x441603240D202FA6, "iiiii")end, - ["SET_TEXT_RENDER_ID"]=--[[void]] function(--[[int]] renderId)return native_invoker.unified_void(renderId, 0x5F15302936E07111, "i")end, - -- This function is hard-coded to always return 1. - ["GET_DEFAULT_SCRIPT_RENDERTARGET_RENDER_ID"]=--[[int]] function()return native_invoker.unified_int(0x52F0982D7FD156B6, "")end, - ["REGISTER_NAMED_RENDERTARGET"]=--[[BOOL (bool)]] function(--[[string]] name,--[[BOOL (bool)]] p1)return native_invoker.unified_bool(name, p1, 0x57D9C12635E25CE3, "sb")end, - ["IS_NAMED_RENDERTARGET_REGISTERED"]=--[[BOOL (bool)]] function(--[[string]] name)return native_invoker.unified_bool(name, 0x78DCDC15C9F116B4, "s")end, - ["RELEASE_NAMED_RENDERTARGET"]=--[[BOOL (bool)]] function(--[[string]] name)return native_invoker.unified_bool(name, 0xE9F6FFE837354DD4, "s")end, - ["LINK_NAMED_RENDERTARGET"]=--[[void]] function(--[[Hash (int)]] modelHash)return native_invoker.unified_void(modelHash, 0xF6C09E276AEB3F2D, "i")end, - ["GET_NAMED_RENDERTARGET_RENDER_ID"]=--[[int]] function(--[[string]] name)return native_invoker.unified_int(name, 0x1A6478B61C6BDC3B, "s")end, - ["IS_NAMED_RENDERTARGET_LINKED"]=--[[BOOL (bool)]] function(--[[Hash (int)]] modelHash)return native_invoker.unified_bool(modelHash, 0x113750538FA31298, "i")end, - ["CLEAR_HELP"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x8DFCED7A656F8802, "b")end, - ["IS_HELP_MESSAGE_ON_SCREEN"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xDAD37F45428801AE, "")end, - ["HAS_SCRIPT_HIDDEN_HELP_THIS_FRAME"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x214CD562A939246A, "")end, - ["IS_HELP_MESSAGE_BEING_DISPLAYED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x4D79439A6B55AC67, "")end, - ["IS_HELP_MESSAGE_FADING_OUT"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x327EDEEEAC55C369, "")end, - ["SET_HELP_MESSAGE_STYLE"]=--[[void]] function(--[[int]] style,--[[int]] hudColor,--[[int]] alpha,--[[int]] p3,--[[int]] p4)return native_invoker.unified_void(style, hudColor, alpha, p3, p4, 0xB9C362BABECDDC7A, "iiiii")end, - ["GET_STANDARD_BLIP_ENUM_ID"]=--[[int]] function()return native_invoker.unified_int(0x4A9923385BDB9DAD, "")end, - ["GET_WAYPOINT_BLIP_ENUM_ID"]=--[[int]] function()return native_invoker.unified_int(0x186E5D252FA50E7D, "")end, - ["GET_NUMBER_OF_ACTIVE_BLIPS"]=--[[int]] function()return native_invoker.unified_int(0x9A3FF3DE163034E8, "")end, - ["GET_NEXT_BLIP_INFO_ID"]=--[[Blip (int)]] function(--[[int]] blipSprite)return native_invoker.unified_int(blipSprite, 0x14F96AA50D6FBEA7, "i")end, - ["GET_FIRST_BLIP_INFO_ID"]=--[[Blip (int)]] function(--[[int]] blipSprite)return native_invoker.unified_int(blipSprite, 0x1BEDE233E6CD2A1F, "i")end, - ["GET_CLOSEST_BLIP_INFO_ID"]=--[[Blip (int)]] function(--[[int]] blipSprite)return native_invoker.unified_int(blipSprite, 0xD484BF71050CA1EE, "i")end, - ["GET_BLIP_INFO_ID_COORD"]=--[[Vector3 (vector3)]] function(--[[Blip (int)]] blip)return native_invoker.unified_vector3(blip, 0xFA7C7F0AADF25D09, "i")end, - ["GET_BLIP_INFO_ID_DISPLAY"]=--[[int]] function(--[[Blip (int)]] blip)return native_invoker.unified_int(blip, 0x1E314167F701DC3B, "i")end, - -- Returns a value based on what the blip is attached to - -- 1 - Vehicle - -- 2 - Ped - -- 3 - Object - -- 4 - Coord - -- 5 - unk - -- 6 - Pickup - -- 7 - Radius - ["GET_BLIP_INFO_ID_TYPE"]=--[[int]] function(--[[Blip (int)]] blip)return native_invoker.unified_int(blip, 0xBE9B0959FFD0779B, "i")end, - ["GET_BLIP_INFO_ID_ENTITY_INDEX"]=--[[Entity (int)]] function(--[[Blip (int)]] blip)return native_invoker.unified_int(blip, 0x4BA4E2553AFEDC2C, "i")end, - -- This function is hard-coded to always return 0. - ["GET_BLIP_INFO_ID_PICKUP_INDEX"]=--[[Pickup (int)]] function(--[[Blip (int)]] blip)return native_invoker.unified_int(blip, 0x9B6786E4C03DD382, "i")end, - -- Returns the Blip handle of given Entity. - ["GET_BLIP_FROM_ENTITY"]=--[[Blip (int)]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0xBC8DBDCA2436F7E8, "i")end, - ["ADD_BLIP_FOR_RADIUS"]=--[[Blip (int)]] function(--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[float]] radius)return native_invoker.unified_int(posX, posY, posZ, radius, 0x46818D79B1F7499A, "ffff")end, - -- Adds a rectangular blip for the specified coordinates/area. - -- - -- It is recommended to use SET_BLIP_ROTATION and SET_BLIP_COLOUR to make the blip not rotate along with the camera. - -- - -- By default, the blip will show as a _regular_ blip with the specified color/sprite if it is outside of the minimap view. - -- - -- Example image: - -- minimap https://w.wew.wtf/pdcjig.png - -- big map https://w.wew.wtf/zgcjcm.png - -- - -- (Native name is _likely_ to actually be ADD_BLIP_FOR_AREA, but due to the usual reasons this can't be confirmed) - ["ADD_BLIP_FOR_AREA"]=--[[Blip (int)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] width,--[[float]] height)return native_invoker.unified_int(x, y, z, width, height, 0xCE5D0E5E315DB238, "fffff")end, - -- Returns red ( default ) blip attached to entity. - -- - -- Example: - -- Blip blip; //Put this outside your case or option - -- blip = HUD::ADD_BLIP_FOR_ENTITY(YourPedOrBodyguardName); - -- HUD::SET_BLIP_AS_FRIENDLY(blip, true); - ["ADD_BLIP_FOR_ENTITY"]=--[[Blip (int)]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0x5CDE92C702A8FCE7, "i")end, - ["ADD_BLIP_FOR_PICKUP"]=--[[Blip (int)]] function(--[[Pickup (int)]] pickup)return native_invoker.unified_int(pickup, 0xBE339365C863BD36, "i")end, - -- Creates an orange ( default ) Blip-object. Returns a Blip-object which can then be modified. - ["ADD_BLIP_FOR_COORD"]=--[[Blip (int)]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_int(x, y, z, 0x5A039BB0BCA604B6, "fff")end, - ["TRIGGER_SONAR_BLIP"]=--[[void]] function(--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[float]] radius,--[[int]] p4)return native_invoker.unified_void(posX, posY, posZ, radius, p4, 0x72DD432F3CDFC0EE, "ffffi")end, - ["ALLOW_SONAR_BLIPS"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x60734CC207C9833C, "b")end, - ["SET_BLIP_COORDS"]=--[[void]] function(--[[Blip (int)]] blip,--[[float]] posX,--[[float]] posY,--[[float]] posZ)return native_invoker.unified_void(blip, posX, posY, posZ, 0xAE2AF67E9D9AF65D, "ifff")end, - ["GET_BLIP_COORDS"]=--[[Vector3 (vector3)]] function(--[[Blip (int)]] blip)return native_invoker.unified_vector3(blip, 0x586AFE3FF72D996E, "i")end, - -- Sets the displayed sprite for a specific blip.. - -- - -- You may have your own list, but since dev-c didn't show it I was bored and started looking through scripts and functions to get a presumable almost positive list of a majority of blip IDs - -- https://pastebin.com/Bpj9Sfft - -- - -- Blips Images + IDs: - -- https://gtaxscripting.blogspot.com/2016/05/gta-v-blips-id-and-image.html - ["SET_BLIP_SPRITE"]=--[[void]] function(--[[Blip (int)]] blip,--[[int]] spriteId)return native_invoker.unified_void(blip, spriteId, 0xDF735600A4696DAF, "ii")end, - -- Blips Images + IDs: - -- gtaxscripting.blogspot.com/2016/05/gta-v-blips-id-and-image.html - ["GET_BLIP_SPRITE"]=--[[int]] function(--[[Blip (int)]] blip)return native_invoker.unified_int(blip, 0x1FC877464A04FC4F, "i")end, - ["SET_COP_BLIP_SPRITE"]=--[[void]] function(--[[int]] p0,--[[float]] p1)return native_invoker.unified_void(p0, p1, 0x9FCB3CBFB3EAD69A, "if")end, - ["SET_COP_BLIP_SPRITE_AS_STANDARD"]=--[[void]] function()return native_invoker.unified_void(0xB7B873520C84C118, "")end, - -- Doesn't work if the label text of gxtEntry is >= 80. - ["SET_BLIP_NAME_FROM_TEXT_FILE"]=--[[void]] function(--[[Blip (int)]] blip,--[[string]] gxtEntry)return native_invoker.unified_void(blip, gxtEntry, 0xEAA0FFE120D92784, "is")end, - ["SET_BLIP_NAME_TO_PLAYER_NAME"]=--[[void]] function(--[[Blip (int)]] blip,--[[Player (int)]] player)return native_invoker.unified_void(blip, player, 0x127DE7B20C60A6A3, "ii")end, - -- Sets alpha-channel for blip color. - -- - -- Example: - -- - -- Blip blip = HUD::ADD_BLIP_FOR_ENTITY(entity); - -- HUD::SET_BLIP_COLOUR(blip , 3); - -- HUD::SET_BLIP_ALPHA(blip , 64); - -- - ["SET_BLIP_ALPHA"]=--[[void]] function(--[[Blip (int)]] blip,--[[int]] alpha)return native_invoker.unified_void(blip, alpha, 0x45FF974EEE1C8734, "ii")end, - ["GET_BLIP_ALPHA"]=--[[int]] function(--[[Blip (int)]] blip)return native_invoker.unified_int(blip, 0x970F608F0EE6C885, "i")end, - ["SET_BLIP_FADE"]=--[[void]] function(--[[Blip (int)]] blip,--[[int]] opacity,--[[int]] duration)return native_invoker.unified_void(blip, opacity, duration, 0x2AEE8F8390D2298C, "iii")end, - -- Returns -1, 0, +1, depending on if the blip is fading out, doing nothing, or fading in respectively. - ["GET_BLIP_FADE_DIRECTION"]=--[[int]] function(--[[Blip (int)]] blip)return native_invoker.unified_int(blip, 0x2C173AE2BDB9385E, "i")end, - -- After some testing, looks like you need to use CEIL() on the rotation (vehicle/ped heading) before using it there. - ["SET_BLIP_ROTATION"]=--[[void]] function(--[[Blip (int)]] blip,--[[int]] rotation)return native_invoker.unified_void(blip, rotation, 0xF87683CDF73C3F6E, "ii")end, - -- Does not require whole number/integer rotations. - ["SET_BLIP_ROTATION_WITH_FLOAT"]=--[[void]] function(--[[Blip (int)]] blip,--[[float]] heading)return native_invoker.unified_void(blip, heading, 0xA8B6AFDAC320AC87, "if")end, - ["GET_BLIP_ROTATION"]=--[[int]] function(--[[Blip (int)]] blip)return native_invoker.unified_int(blip, 0x003E92BA477F9D7F, "i")end, - -- Adds up after viewing multiple R* scripts. I believe that the duration is in miliseconds. - ["SET_BLIP_FLASH_TIMER"]=--[[void]] function(--[[Blip (int)]] blip,--[[int]] duration)return native_invoker.unified_void(blip, duration, 0xD3CD6FD297AE87CC, "ii")end, - ["SET_BLIP_FLASH_INTERVAL"]=--[[void]] function(--[[Blip (int)]] blip,--[[Any (int)]] p1)return native_invoker.unified_void(blip, p1, 0xAA51DB313C010A7E, "ii")end, - -- https://gtaforums.com/topic/864881-all-blip-color-ids-pictured/ - ["SET_BLIP_COLOUR"]=--[[void]] function(--[[Blip (int)]] blip,--[[int]] color)return native_invoker.unified_void(blip, color, 0x03D7FB09E75D6B7E, "ii")end, - -- Can be used to give blips any RGB colour with SET_BLIP_COLOUR(blip, 84). - ["SET_BLIP_SECONDARY_COLOUR"]=--[[void]] function(--[[Blip (int)]] blip,--[[int]] r,--[[int]] g,--[[int]] b)return native_invoker.unified_void(blip, r, g, b, 0x14892474891E09EB, "iiii")end, - ["GET_BLIP_COLOUR"]=--[[int]] function(--[[Blip (int)]] blip)return native_invoker.unified_int(blip, 0xDF729E8D20CF7327, "i")end, - ["GET_BLIP_HUD_COLOUR"]=--[[int]] function(--[[Blip (int)]] blip)return native_invoker.unified_int(blip, 0x729B5F1EFBC0AAEE, "i")end, - ["IS_BLIP_SHORT_RANGE"]=--[[BOOL (bool)]] function(--[[Blip (int)]] blip)return native_invoker.unified_bool(blip, 0xDA5F8727EB75B926, "i")end, - ["IS_BLIP_ON_MINIMAP"]=--[[BOOL (bool)]] function(--[[Blip (int)]] blip)return native_invoker.unified_bool(blip, 0xE41CA53051197A27, "i")end, - ["DOES_BLIP_HAVE_GPS_ROUTE"]=--[[BOOL (bool)]] function(--[[Blip (int)]] blip)return native_invoker.unified_bool(blip, 0xDD2238F57B977751, "i")end, - ["SET_BLIP_HIDDEN_ON_LEGEND"]=--[[void]] function(--[[Blip (int)]] blip,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(blip, toggle, 0x54318C915D27E4CE, "ib")end, - ["SET_BLIP_HIGH_DETAIL"]=--[[void]] function(--[[Blip (int)]] blip,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(blip, toggle, 0xE2590BC29220CEBB, "ib")end, - ["SET_BLIP_AS_MISSION_CREATOR_BLIP"]=--[[void]] function(--[[Blip (int)]] blip,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(blip, toggle, 0x24AC0137444F9FD5, "ib")end, - ["IS_MISSION_CREATOR_BLIP"]=--[[BOOL (bool)]] function(--[[Blip (int)]] blip)return native_invoker.unified_bool(blip, 0x26F49BF3381D933D, "i")end, - ["GET_NEW_SELECTED_MISSION_CREATOR_BLIP"]=--[[Blip (int)]] function()return native_invoker.unified_int(0x5C90988E7C8E1AF4, "")end, - ["IS_HOVERING_OVER_MISSION_CREATOR_BLIP"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x4167EFE0527D706E, "")end, - ["SHOW_START_MISSION_INSTRUCTIONAL_BUTTON"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xF1A6C18B35BCADE6, "b")end, - ["SHOW_CONTACT_INSTRUCTIONAL_BUTTON"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xC772A904CDE1186F, "b")end, - ["RELOAD_MAP_MENU"]=--[[void]] function()return native_invoker.unified_void(0x2916A928514C9827, "")end, - ["SET_BLIP_MARKER_LONG_DISTANCE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xB552929B85FC27EC, "ii")end, - ["SET_BLIP_FLASHES"]=--[[void]] function(--[[Blip (int)]] blip,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(blip, toggle, 0xB14552383D39CE3E, "ib")end, - ["SET_BLIP_FLASHES_ALTERNATE"]=--[[void]] function(--[[Blip (int)]] blip,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(blip, toggle, 0x2E8D9498C56DD0D1, "ib")end, - ["IS_BLIP_FLASHING"]=--[[BOOL (bool)]] function(--[[Blip (int)]] blip)return native_invoker.unified_bool(blip, 0xA5E41FD83AD6CEF0, "i")end, - -- Sets whether or not the specified blip should only be displayed when nearby, or on the minimap. - ["SET_BLIP_AS_SHORT_RANGE"]=--[[void]] function(--[[Blip (int)]] blip,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(blip, toggle, 0xBE8BE4FE60E27B72, "ib")end, - ["SET_BLIP_SCALE"]=--[[void]] function(--[[Blip (int)]] blip,--[[float]] scale)return native_invoker.unified_void(blip, scale, 0xD38744167B2FA257, "if")end, - -- See https://imgur.com/a/lLkEsMN - ["SET_BLIP_SCALE_2D"]=--[[void]] function(--[[Blip (int)]] blip,--[[float]] xScale,--[[float]] yScale)return native_invoker.unified_void(blip, xScale, yScale, 0xCD6524439909C979, "iff")end, - -- See this topic for more details : gtaforums.com/topic/717612-v-scriptnative-documentation-and-research/page-35?p=1069477935 - ["SET_BLIP_PRIORITY"]=--[[void]] function(--[[Blip (int)]] blip,--[[int]] priority)return native_invoker.unified_void(blip, priority, 0xAE9FC9EF6A9FAC79, "ii")end, - -- Display Id behaviours: - -- 0 = Doesn't show up, ever, anywhere. - -- 1 = Doesn't show up, ever, anywhere. - -- 2 = Shows on both main map and minimap. (Selectable on map) - -- 3 = Shows on main map only. (Selectable on map) - -- 4 = Shows on main map only. (Selectable on map) - -- 5 = Shows on minimap only. - -- 6 = Shows on both main map and minimap. (Selectable on map) - -- 7 = Doesn't show up, ever, anywhere. - -- 8 = Shows on both main map and minimap. (Not selectable on map) - -- 9 = Shows on minimap only. - -- 10 = Shows on both main map and minimap. (Not selectable on map) - -- - -- Anything higher than 10 seems to be exactly the same as 10. - ["SET_BLIP_DISPLAY"]=--[[void]] function(--[[Blip (int)]] blip,--[[int]] displayId)return native_invoker.unified_void(blip, displayId, 0x9029B2F3DA924928, "ii")end, - -- Example: https://i.imgur.com/skY6vAJ.png - -- - -- Index: - -- 1 = No distance shown in legend - -- 2 = Distance shown in legend - -- 7 = "Other Players" category, also shows distance in legend - -- 10 = "Property" category - -- 11 = "Owned Property" category - -- - -- Any other value behaves like index = 1, index wraps around after 255 - -- Blips with categories 7, 10 or 11 will all show under the specific categories listing in the map legend, regardless of sprite or name. - -- Legend entries: - -- 7 = Other Players (BLIP_OTHPLYR) - -- 10 = Property (BLIP_PROPCAT) - -- 11 = Owned Property (BLIP_APARTCAT) - -- - -- Category needs to be `7` in order for blip names to show on the expanded minimap when using DISPLAY_PLAYER_NAME_TAGS_ON_BLIPS. - ["SET_BLIP_CATEGORY"]=--[[void]] function(--[[Blip (int)]] blip,--[[int]] index)return native_invoker.unified_void(blip, index, 0x234CDD44D996FD9A, "ii")end, - -- In the C++ SDK, this seems not to work-- the blip isn't removed immediately. I use it for saving cars. - -- - -- E.g.: - -- - -- Ped pped = PLAYER::PLAYER_PED_ID(); - -- Vehicle v = PED::GET_VEHICLE_PED_IS_USING(pped); - -- Blip b = HUD::ADD_BLIP_FOR_ENTITY(v); - -- - -- works fine. - -- But later attempting to delete it with: - -- - -- Blip b = HUD::GET_BLIP_FROM_ENTITY(v); - -- if (HUD::DOES_BLIP_EXIST(b)) HUD::REMOVE_BLIP(&b); - -- - -- doesn't work. And yes, doesn't work without the DOES_BLIP_EXIST check either. Also, if you attach multiple blips to the same thing (say, a vehicle), and that thing disappears, the blips randomly attach to other things (in my case, a vehicle). - -- - -- Thus for me, HUD::REMOVE_BLIP(&b) only works if there's one blip, (in my case) the vehicle is marked as no longer needed, you drive away from it and it eventually despawns, AND there is only one blip attached to it. I never intentionally attach multiple blips but if the user saves the car, this adds a blip. Then if they delete it, it is supposed to remove the blip, but it doesn't. Then they can immediately save it again, causing another blip to re-appear. - -- ------------- - -- - -- Passing the address of the variable instead of the value works for me. - -- e.g. - -- int blip = HUD::ADD_BLIP_FOR_ENTITY(ped); - -- HUD::REMOVE_BLIP(&blip); - -- - -- - -- Remove blip will currently crash your game, just artificially remove the blip by setting the sprite to a id that is 'invisible'. - ["REMOVE_BLIP"]=--[[void]] function(--[[Blip* (pointer)]] blip)return native_invoker.unified_void(blip, 0x86A652570E5F25DD, "p")end, - -- false for enemy - -- true for friendly - ["SET_BLIP_AS_FRIENDLY"]=--[[void]] function(--[[Blip (int)]] blip,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(blip, toggle, 0x6F6F290102C02AB4, "ib")end, - ["PULSE_BLIP"]=--[[void]] function(--[[Blip (int)]] blip)return native_invoker.unified_void(blip, 0x742D6FD43115AF73, "i")end, - ["SHOW_NUMBER_ON_BLIP"]=--[[void]] function(--[[Blip (int)]] blip,--[[int]] number)return native_invoker.unified_void(blip, number, 0xA3C0B359DCB848B6, "ii")end, - ["HIDE_NUMBER_ON_BLIP"]=--[[void]] function(--[[Blip (int)]] blip)return native_invoker.unified_void(blip, 0x532CFF637EF80148, "i")end, - ["SHOW_HEIGHT_ON_BLIP"]=--[[void]] function(--[[Blip (int)]] blip,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(blip, toggle, 0x75A16C3DA34F1245, "ib")end, - -- Adds a green checkmark on top of a blip. - ["SHOW_TICK_ON_BLIP"]=--[[void]] function(--[[Blip (int)]] blip,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(blip, toggle, 0x74513EA3E505181E, "ib")end, - -- Adds a orange checkmark on top of a given blip handle: https://imgur.com/a/aw5OTMF - -- _SHOW_FRIEND_INDICATOR_ON_BLIP* - _SHOW_HEADING_INDICATOR_ON_BLIP* - ["SHOW_GOLD_TICK_ON_BLIP"]=--[[void]] function(--[[Blip (int)]] blip,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(blip, toggle, 0xCAC2031EBF79B1A8, "ib")end, - ["SHOW_FOR_SALE_ICON_ON_BLIP"]=--[[void]] function(--[[Blip (int)]] blip,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(blip, toggle, 0x19BD6E3C0E16A8FA, "ib")end, - -- Adds the GTA: Online player heading indicator to a blip. - ["SHOW_HEADING_INDICATOR_ON_BLIP"]=--[[void]] function(--[[Blip (int)]] blip,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(blip, toggle, 0x5FBCA48327B914DF, "ib")end, - -- Highlights a blip by a cyan color circle. - -- - -- Color can be changed with SET_BLIP_SECONDARY_COLOUR - ["SHOW_OUTLINE_INDICATOR_ON_BLIP"]=--[[void]] function(--[[Blip (int)]] blip,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(blip, toggle, 0xB81656BC81FE24D1, "ib")end, - -- Highlights a blip by a half cyan circle on the right side of the blip. https://i.imgur.com/FrV9M4e.png - -- .Indicating that that player is a friend (in GTA:O). This color can not be changed. - -- To toggle the left side (crew member indicator) of the half circle around the blip, use: `SHOW_CREW_INDICATOR_ON_BLIP` - ["SHOW_FRIEND_INDICATOR_ON_BLIP"]=--[[void]] function(--[[Blip (int)]] blip,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(blip, toggle, 0x23C3EB807312F01A, "ib")end, - -- Enables or disables the blue half circle https://i.imgur.com/iZes9Ec.png around the specified blip on the left side of the blip. This is used to indicate that the player is in your crew in GTA:O. Color is changeable by using `SET_BLIP_SECONDARY_COLOUR`. - ["SHOW_CREW_INDICATOR_ON_BLIP"]=--[[void]] function(--[[Blip (int)]] blip,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(blip, toggle, 0xDCFB5D4DB8BF367E, "ib")end, - -- Must be toggled before being queued for animation - ["SET_BLIP_EXTENDED_HEIGHT_THRESHOLD"]=--[[void]] function(--[[Blip (int)]] blip,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(blip, toggle, 0xC4278F70131BAA6D, "ib")end, - ["SET_BLIP_SHORT_HEIGHT_THRESHOLD"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x4B5B620C9B59ED34, "ii")end, - ["SET_BLIP_USE_HEIGHT_INDICATOR_ON_EDGE"]=--[[void]] function(--[[Blip (int)]] blip,--[[Any (int)]] p1)return native_invoker.unified_void(blip, p1, 0x2C9F302398E13141, "ii")end, - -- Makes a blip go small when off the minimap. - ["SET_BLIP_AS_MINIMAL_ON_EDGE"]=--[[void]] function(--[[Blip (int)]] blip,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(blip, toggle, 0x2B6D467DAB714E8D, "ib")end, - -- Enabling this on a radius blip will make it outline only. See https://cdn.discordapp.com/attachments/553235301632573459/575132227935928330/unknown.png - ["SET_RADIUS_BLIP_EDGE"]=--[[void]] function(--[[Blip (int)]] blip,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(blip, toggle, 0x25615540D894B814, "ib")end, - ["DOES_BLIP_EXIST"]=--[[BOOL (bool)]] function(--[[Blip (int)]] blip)return native_invoker.unified_bool(blip, 0xA6DB27D19ECBB7DA, "i")end, - -- This native removes the current waypoint from the map. - -- - -- Example: - -- C#: - -- Function.Call(Hash.SET_WAYPOINT_OFF); - -- - -- C++: - -- HUD::SET_WAYPOINT_OFF(); - ["SET_WAYPOINT_OFF"]=--[[void]] function()return native_invoker.unified_void(0xA7E4E2D361C2627F, "")end, - ["DELETE_WAYPOINTS_FROM_THIS_PLAYER"]=--[[void]] function()return native_invoker.unified_void(0xD8E694757BCEA8E9, "")end, - ["REFRESH_WAYPOINT"]=--[[void]] function()return native_invoker.unified_void(0x81FA173F170560D1, "")end, - ["IS_WAYPOINT_ACTIVE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x1DD1F58F493F1DA5, "")end, - ["SET_NEW_WAYPOINT"]=--[[void]] function(--[[float]] x,--[[float]] y)return native_invoker.unified_void(x, y, 0xFE43368D2AA4F2FC, "ff")end, - ["SET_BLIP_BRIGHT"]=--[[void]] function(--[[Blip (int)]] blip,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(blip, toggle, 0xB203913733F27884, "ib")end, - -- As of b2189, the third parameter sets the color of the cone (before b2189 it was ignored). Note that it uses HUD colors, not blip colors. - ["SET_BLIP_SHOW_CONE"]=--[[void]] function(--[[Blip (int)]] blip,--[[BOOL (bool)]] toggle,--[[int]] hudColorIndex)return native_invoker.unified_void(blip, toggle, hudColorIndex, 0x13127EC3665E8EE1, "ibi")end, - -- Interesting fact: A hash collision for this is RESET_JETPACK_MODEL_SETTINGS - ["REMOVE_COP_BLIP_FROM_PED"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xC594B315EDF2D4AF, "i")end, - ["SETUP_FAKE_CONE_DATA"]=--[[void]] function(--[[Blip (int)]] blip,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[float]] p6,--[[Any (int)]] p7,--[[int]] p8)return native_invoker.unified_void(blip, p1, p2, p3, p4, p5, p6, p7, p8, 0xF83D0FEBE75E62C9, "iffffffii")end, - ["REMOVE_FAKE_CONE_DATA"]=--[[void]] function(--[[Blip (int)]] blip)return native_invoker.unified_void(blip, 0x35A3CD97B2C0A6D2, "i")end, - ["CLEAR_FAKE_CONE_ARRAY"]=--[[void]] function()return native_invoker.unified_void(0x8410C5E0CD847B9D, "")end, - -- Applies to new eBlipParams _BLIP_CHANGE_46* and _BLIP_CHANGE_47* - ["_SET_BLIP_GPS_ROUTE_DISPLAY_DISTANCE"]=--[[void]] function(--[[Blip (int)]] blip,--[[int]] blipChangeParam46,--[[BOOL (bool)]] blipChangeParam47)return native_invoker.unified_void(blip, blipChangeParam46, blipChangeParam47, 0x25D984CFB64ED6DE, "iib")end, - -- This native is used to colorize certain map components like the army base at the top of the map. - -- p2 appears to be always -1. If p2 is -1 then native wouldn't change the color. See https://gfycat.com/SkinnyPinkChupacabra - ["SET_MINIMAP_COMPONENT"]=--[[BOOL (bool)]] function(--[[int]] componentId,--[[BOOL (bool)]] toggle,--[[int]] overrideColor)return native_invoker.unified_bool(componentId, toggle, overrideColor, 0x75A9A10948D1DEA6, "ibi")end, - ["SET_MINIMAP_SONAR_SWEEP"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x6B50FC8749632EC1, "b")end, - ["SHOW_ACCOUNT_PICKER"]=--[[void]] function()return native_invoker.unified_void(0x60E892BA4F5BDCA4, "")end, - ["GET_MAIN_PLAYER_BLIP_ID"]=--[[Blip (int)]] function()return native_invoker.unified_int(0xDCD4EC3F419D02FA, "")end, - ["SET_PM_WARNINGSCREEN_ACTIVE"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x41350B4FC28E3941, "b")end, - ["HIDE_LOADING_ON_FADE_THIS_FRAME"]=--[[void]] function()return native_invoker.unified_void(0x4B0311D3CDC4648F, "")end, - -- List of interior hashes: https://pastebin.com/1FUyXNqY - -- Not for every interior zoom > 0 available. - ["SET_RADAR_AS_INTERIOR_THIS_FRAME"]=--[[void]] function(--[[Hash (int)]] interior,--[[float]] x,--[[float]] y,--[[int]] z,--[[int]] zoom)return native_invoker.unified_void(interior, x, y, z, zoom, 0x59E727A1C9D3E31A, "iffii")end, - ["SET_INSIDE_VERY_SMALL_INTERIOR"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x504DFE62A1692296, "b")end, - ["SET_INSIDE_VERY_LARGE_INTERIOR"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x7EC8ABA5E74B3D7A, "b")end, - ["SET_RADAR_AS_EXTERIOR_THIS_FRAME"]=--[[void]] function()return native_invoker.unified_void(0xE81B7D2A3DAB2D81, "")end, - -- Sets the position of the arrow icon representing the player on both the minimap and world map. - -- - -- Too bad this wouldn't work over the network (obviously not). Could spoof where we would be. - ["SET_FAKE_PAUSEMAP_PLAYER_POSITION_THIS_FRAME"]=--[[void]] function(--[[float]] x,--[[float]] y)return native_invoker.unified_void(x, y, 0x77E2DD177910E1CF, "ff")end, - -- p2 maybe z float? - ["SET_FAKE_GPS_PLAYER_POSITION_THIS_FRAME"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[Any (int)]] p2)return native_invoker.unified_void(x, y, p2, 0xA17784FCA9548D15, "ffi")end, - ["IS_PAUSEMAP_IN_INTERIOR_MODE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x9049FE339D5F6F6F, "")end, - ["HIDE_MINIMAP_EXTERIOR_MAP_THIS_FRAME"]=--[[void]] function()return native_invoker.unified_void(0x5FBAE526203990C9, "")end, - ["HIDE_MINIMAP_INTERIOR_MAP_THIS_FRAME"]=--[[void]] function()return native_invoker.unified_void(0x20FE7FDFEEAD38C0, "")end, - -- Toggles the Cayo Perico map. - ["SET_USE_ISLAND_MAP"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x5E1460624D194A38, "b")end, - ["_SET_PAUSE_EXTERIOR_RENDERING_WHILE_IN_INTERIOR"]=--[[void]] function()return native_invoker.unified_void(0x35CCE12EAECB4A51, "")end, - -- When calling this, the current frame will have the players "arrow icon" be focused on the dead center of the radar. - ["DONT_TILT_MINIMAP_THIS_FRAME"]=--[[void]] function()return native_invoker.unified_void(0x6D14BFDC33B34F55, "")end, - ["DONT_ZOOM_MINIMAP_WHEN_RUNNING_THIS_FRAME"]=--[[void]] function()return native_invoker.unified_void(0x89DA85D949CE57A0, "")end, - ["DONT_ZOOM_MINIMAP_WHEN_SNIPING_THIS_FRAME"]=--[[void]] function()return native_invoker.unified_void(0x55F5A5F07134DE60, "")end, - ["SET_WIDESCREEN_FORMAT"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xC3B07BA00A83B0F1, "i")end, - ["DISPLAY_AREA_NAME"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x276B6CE369C33678, "b")end, - -- "DISPLAY_CASH(false);" makes the cash amount render on the screen when appropriate - -- "DISPLAY_CASH(true);" disables cash amount rendering - ["DISPLAY_CASH"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x96DEC8D5430208B7, "b")end, - -- Related to displaying cash on the HUD - -- Always called before HUD::CHANGE_FAKE_MP_CASH in decompiled scripts - ["USE_FAKE_MP_CASH"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x170F541E1CADD1DE, "b")end, - -- Displays cash change notifications on HUD. - ["CHANGE_FAKE_MP_CASH"]=--[[void]] function(--[[int]] cash,--[[int]] bank)return native_invoker.unified_void(cash, bank, 0x0772DF77852C2E30, "ii")end, - ["DISPLAY_AMMO_THIS_FRAME"]=--[[void]] function(--[[BOOL (bool)]] display)return native_invoker.unified_void(display, 0xA5E78BA2B1331C55, "b")end, - -- Displays the crosshair for this frame. - ["DISPLAY_SNIPER_SCOPE_THIS_FRAME"]=--[[void]] function()return native_invoker.unified_void(0x73115226F4814E62, "")end, - -- Hides HUD and radar this frame and prohibits switching to other weapons (or accessing the weapon wheel) - ["HIDE_HUD_AND_RADAR_THIS_FRAME"]=--[[void]] function()return native_invoker.unified_void(0x719FF505F097FD20, "")end, - -- Controls whether to display 'Cash'/'Bank' next to the money balance HUD in Multiplayer (https://i.imgur.com/MiYUtNl.png) - ["ALLOW_DISPLAY_OF_MULTIPLAYER_CASH_TEXT"]=--[[void]] function(--[[BOOL (bool)]] allow)return native_invoker.unified_void(allow, 0xE67C6DFD386EA5E7, "b")end, - ["SET_MULTIPLAYER_WALLET_CASH"]=--[[void]] function()return native_invoker.unified_void(0xC2D15BEF167E27BC, "")end, - ["REMOVE_MULTIPLAYER_WALLET_CASH"]=--[[void]] function()return native_invoker.unified_void(0x95CF81BD06EE1887, "")end, - ["SET_MULTIPLAYER_BANK_CASH"]=--[[void]] function()return native_invoker.unified_void(0xDD21B55DF695CD0A, "")end, - ["REMOVE_MULTIPLAYER_BANK_CASH"]=--[[void]] function()return native_invoker.unified_void(0xC7C6789AA1CFEDD0, "")end, - -- This native does absolutely nothing, just a nullsub - ["SET_MULTIPLAYER_HUD_CASH"]=--[[void]] function(--[[int]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0xFD1D220394BCB824, "ib")end, - -- Removes multiplayer cash hud each frame - ["REMOVE_MULTIPLAYER_HUD_CASH"]=--[[void]] function()return native_invoker.unified_void(0x968F270E39141ECA, "")end, - ["HIDE_HELP_TEXT_THIS_FRAME"]=--[[void]] function()return native_invoker.unified_void(0xD46923FC481CA285, "")end, - ["IS_IME_IN_PROGRESS"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x801879A9B4F4B2FB, "")end, - -- The messages are localized strings. - -- Examples: - -- "No_bus_money" - -- "Enter_bus" - -- "Tour_help" - -- "LETTERS_HELP2" - -- "Dummy" - -- - -- **The bool appears to always be false (if it even is a bool, as it's represented by a zero)** - -- -------- - -- p1 doesn't seem to make a difference, regardless of the state it's in. - -- - -- - -- picture of where on the screen this is displayed? - ["DISPLAY_HELP_TEXT_THIS_FRAME"]=--[[void]] function(--[[string]] message,--[[BOOL (bool)]] p1)return native_invoker.unified_void(message, p1, 0x960C9FF8F616E41C, "sb")end, - -- Forces the weapon wheel to show/hide. - ["HUD_FORCE_WEAPON_WHEEL"]=--[[void]] function(--[[BOOL (bool)]] show)return native_invoker.unified_void(show, 0xEB354E5376BC81A7, "b")end, - -- Displays "blazer_wheels_up" and "blazer_wheels_down" "weapon" icons when switching between jetski and quadbike modes. Works only on vehicles using "VEHICLE_TYPE_AMPHIBIOUS_QUADBIKE" vehicle type. Needs to be called every time prior to switching modes, otherwise the icon will only appear when switching modes once. - ["HUD_FORCE_SPECIAL_VEHICLE_WEAPON_WHEEL"]=--[[void]] function()return native_invoker.unified_void(0x488043841BBE156F, "")end, - -- Calling this each frame, stops the player from receiving a weapon via the weapon wheel. - ["HUD_SUPPRESS_WEAPON_WHEEL_RESULTS_THIS_FRAME"]=--[[void]] function()return native_invoker.unified_void(0x0AFC4AF510774B47, "")end, - -- Returns the weapon hash to the selected/highlighted weapon in the wheel - ["HUD_GET_WEAPON_WHEEL_CURRENTLY_HIGHLIGHTED"]=--[[Hash (int)]] function()return native_invoker.unified_int(0xA48931185F0536FE, "")end, - -- Set the active slotIndex in the wheel weapon to the slot associated with the provided Weapon hash - ["HUD_SET_WEAPON_WHEEL_TOP_SLOT"]=--[[void]] function(--[[Hash (int)]] weaponHash)return native_invoker.unified_void(weaponHash, 0x72C1056D678BB7D8, "i")end, - -- Returns the weapon hash active in a specific weapon wheel slotList - ["HUD_GET_WEAPON_WHEEL_TOP_SLOT"]=--[[Hash (int)]] function(--[[int]] weaponTypeIndex)return native_invoker.unified_int(weaponTypeIndex, 0xA13E93403F26C812, "i")end, - -- Sets a global that disables many weapon input tasks (shooting, aiming, etc.). Does not work with vehicle weapons, only used in selector.ysc - ["HUD_SHOWING_CHARACTER_SWITCH_SELECTION"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x14C9FDCC41F81F63, "b")end, - -- Only the script that originally called SET_GPS_FLAGS can set them again. Another script cannot set the flags, until the first script that called it has called CLEAR_GPS_FLAGS. - -- - -- Doesn't seem like the flags are actually read by the game at all. - ["SET_GPS_FLAGS"]=--[[void]] function(--[[int]] p0,--[[float]] p1)return native_invoker.unified_void(p0, p1, 0x5B440763A4C8D15B, "if")end, - -- Clears the GPS flags. Only the script that originally called SET_GPS_FLAGS can clear them. - -- - -- Doesn't seem like the flags are actually read by the game at all. - ["CLEAR_GPS_FLAGS"]=--[[void]] function()return native_invoker.unified_void(0x21986729D6A3A830, "")end, - ["SET_RACE_TRACK_RENDER"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x1EAC5F91BCBC5073, "b")end, - -- Does the same as SET_RACE_TRACK_RENDER(false); - ["CLEAR_GPS_RACE_TRACK"]=--[[void]] function()return native_invoker.unified_void(0x7AA5B4CE533C858B, "")end, - -- Starts a new GPS custom-route, allowing you to plot lines on the map. - -- Lines are drawn directly between points. - -- The GPS custom route works like the GPS multi route, except it does not follow roads. - -- Example result: https://i.imgur.com/BDm5pzt.png - -- hudColor: The HUD color of the GPS path. - -- displayOnFoot: Draws the path regardless if the player is in a vehicle or not. - -- followPlayer: Draw the path partially between the previous and next point based on the players position between them. When false, the GPS appears to not disappear after the last leg is completed. - ["START_GPS_CUSTOM_ROUTE"]=--[[void]] function(--[[int]] hudColor,--[[BOOL (bool)]] displayOnFoot,--[[BOOL (bool)]] followPlayer)return native_invoker.unified_void(hudColor, displayOnFoot, followPlayer, 0xDB34E8D56FC13B08, "ibb")end, - ["ADD_POINT_TO_GPS_CUSTOM_ROUTE"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(x, y, z, 0x311438A071DD9B1A, "fff")end, - -- radarThickness: The width of the GPS route on the radar - -- mapThickness: The width of the GPS route on the map - ["SET_GPS_CUSTOM_ROUTE_RENDER"]=--[[void]] function(--[[BOOL (bool)]] toggle,--[[int]] radarThickness,--[[int]] mapThickness)return native_invoker.unified_void(toggle, radarThickness, mapThickness, 0x900086F371220B6F, "bii")end, - ["CLEAR_GPS_CUSTOM_ROUTE"]=--[[void]] function()return native_invoker.unified_void(0xE6DE0561D9232A64, "")end, - -- Starts a new GPS multi-route, allowing you to create custom GPS paths. - -- GPS functions like the waypoint, except it can contain multiple points it's forced to go through. - -- Once the player has passed a point, the GPS will no longer force its path through it. - -- - -- Works independently from the player-placed waypoint and blip routes. - -- Example result: https://i.imgur.com/ZZHQatX.png - -- hudColor: The HUD color of the GPS path. - -- routeFromPlayer: Makes the GPS draw a path from the player to the next point, rather than the original path from the previous point. - -- displayOnFoot: Draws the GPS path regardless if the player is in a vehicle or not. - ["START_GPS_MULTI_ROUTE"]=--[[void]] function(--[[int]] hudColor,--[[BOOL (bool)]] routeFromPlayer,--[[BOOL (bool)]] displayOnFoot)return native_invoker.unified_void(hudColor, routeFromPlayer, displayOnFoot, 0x3D3D15AF7BCAAF83, "ibb")end, - ["ADD_POINT_TO_GPS_MULTI_ROUTE"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(x, y, z, 0xA905192A6781C41B, "fff")end, - ["SET_GPS_MULTI_ROUTE_RENDER"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x3DDA37128DD1ACA8, "b")end, - -- Does the same as SET_GPS_MULTI_ROUTE_RENDER(false); - ["CLEAR_GPS_MULTI_ROUTE"]=--[[void]] function()return native_invoker.unified_void(0x67EEDEA1B9BAFD94, "")end, - ["CLEAR_GPS_PLAYER_WAYPOINT"]=--[[void]] function()return native_invoker.unified_void(0xFF4FB7C8CDFA3DA7, "")end, - ["SET_GPS_FLASHES"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x320D0E0D936A0E9B, "b")end, - ["SET_PLAYER_ICON_COLOUR"]=--[[void]] function(--[[int]] color)return native_invoker.unified_void(color, 0x7B21E0BB01E8224A, "i")end, - -- adds a short flash to the Radar/Minimap - -- Usage: UI.FLASH_MINIMAP_DISPLAY - ["FLASH_MINIMAP_DISPLAY"]=--[[void]] function()return native_invoker.unified_void(0xF2DD778C22B15BDA, "")end, - ["FLASH_MINIMAP_DISPLAY_WITH_COLOR"]=--[[void]] function(--[[int]] hudColorIndex)return native_invoker.unified_void(hudColorIndex, 0x6B1DE27EE78E6A19, "i")end, - ["TOGGLE_STEALTH_RADAR"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x6AFDFB93754950C7, "b")end, - ["SET_MINIMAP_IN_SPECTATOR_MODE"]=--[[void]] function(--[[BOOL (bool)]] toggle,--[[Ped (int)]] ped)return native_invoker.unified_void(toggle, ped, 0x1A5CD7752DD28CD3, "bi")end, - ["SET_MISSION_NAME"]=--[[void]] function(--[[BOOL (bool)]] p0,--[[string]] name)return native_invoker.unified_void(p0, name, 0x5F28ECF5FC84772F, "bs")end, - ["SET_MISSION_NAME_FOR_UGC_MISSION"]=--[[void]] function(--[[BOOL (bool)]] p0,--[[string]] name)return native_invoker.unified_void(p0, name, 0xE45087D85F468BC2, "bs")end, - ["SET_DESCRIPTION_FOR_UGC_MISSION_EIGHT_STRINGS"]=--[[void]] function(--[[BOOL (bool)]] p0,--[[string]] p1,--[[string]] p2,--[[string]] p3,--[[string]] p4,--[[string]] p5,--[[string]] p6,--[[string]] p7,--[[string]] p8)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, p7, p8, 0x817B86108EB94E51, "bssssssss")end, - ["SET_MINIMAP_BLOCK_WAYPOINT"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x58FADDED207897DC, "b")end, - -- Toggles the North Yankton map - ["SET_MINIMAP_IN_PROLOGUE"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x9133955F1A2DA957, "b")end, - -- If true, the entire map will be revealed. - -- - -- FOW = Fog of War - ["SET_MINIMAP_HIDE_FOW"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xF8DEE0A5600CBB93, "b")end, - ["GET_MINIMAP_FOW_DISCOVERY_RATIO"]=--[[float]] function()return native_invoker.unified_float(0xE0130B41D3CF4574, "")end, - ["GET_MINIMAP_FOW_COORDINATE_IS_REVEALED"]=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_bool(x, y, z, 0x6E31B91145873922, "fff")end, - ["SET_MINIMAP_FOW_DO_NOT_UPDATE"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x62E849B7EB28E770, "b")end, - -- Up to eight coordinates may be revealed per frame - ["SET_MINIMAP_FOW_REVEAL_COORDINATE"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(x, y, z, 0x0923DBF87DFF735E, "fff")end, - -- Not much is known so far on what it does _exactly_. - -- All I know for sure is that it draws the specified hole ID on the pause menu map as well as on the mini-map/radar. This native also seems to change some other things related to the pause menu map's behaviour, for example: you can no longer set waypoints, the pause menu map starts up in a 'zoomed in' state. This native does not need to be executed every tick. - -- You need to center the minimap manually as well as change/lock it's zoom and angle in order for it to appear correctly on the minimap. - -- You'll also need to use the `GOLF` scaleform in order to get the correct minmap border to show up. - -- Use `0x35edd5b2e3ff01c0` to reset the map when you no longer want to display any golf holes (you still need to unlock zoom, position and angle of the radar manually after calling this). - ["SET_MINIMAP_GOLF_COURSE"]=--[[void]] function(--[[int]] hole)return native_invoker.unified_void(hole, 0x71BDB63DBAF8DA59, "i")end, - ["SET_MINIMAP_GOLF_COURSE_OFF"]=--[[void]] function()return native_invoker.unified_void(0x35EDD5B2E3FF01C0, "")end, - -- Locks the minimap to the specified angle in integer degrees. - -- - -- angle: The angle in whole degrees. If less than 0 or greater than 360, unlocks the angle. - ["LOCK_MINIMAP_ANGLE"]=--[[void]] function(--[[int]] angle)return native_invoker.unified_void(angle, 0x299FAEBB108AE05B, "i")end, - ["UNLOCK_MINIMAP_ANGLE"]=--[[void]] function()return native_invoker.unified_void(0x8183455E16C42E3A, "")end, - -- Locks the minimap to the specified world position. - ["LOCK_MINIMAP_POSITION"]=--[[void]] function(--[[float]] x,--[[float]] y)return native_invoker.unified_void(x, y, 0x1279E861A329E73F, "ff")end, - ["UNLOCK_MINIMAP_POSITION"]=--[[void]] function()return native_invoker.unified_void(0x3E93E06DB8EF1F30, "")end, - -- Argument must be 0.0f or above 38.0f, or it will be ignored. - ["SET_FAKE_MINIMAP_MAX_ALTIMETER_HEIGHT"]=--[[void]] function(--[[float]] altitude,--[[BOOL (bool)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(altitude, p1, p2, 0xD201F3FF917A506D, "fbi")end, - ["SET_HEALTH_HUD_DISPLAY_VALUES"]=--[[void]] function(--[[int]] health,--[[int]] capacity,--[[BOOL (bool)]] wasAdded)return native_invoker.unified_void(health, capacity, wasAdded, 0x3F5CC444DCAAA8F2, "iib")end, - ["SET_MAX_HEALTH_HUD_DISPLAY"]=--[[void]] function(--[[int]] maximumValue)return native_invoker.unified_void(maximumValue, 0x975D66A0BC17064C, "i")end, - ["SET_MAX_ARMOUR_HUD_DISPLAY"]=--[[void]] function(--[[int]] maximumValue)return native_invoker.unified_void(maximumValue, 0x06A320535F5F0248, "i")end, - -- Toggles the big minimap state like in GTA:Online. - ["SET_BIGMAP_ACTIVE"]=--[[void]] function(--[[BOOL (bool)]] toggleBigMap,--[[BOOL (bool)]] showFullMap)return native_invoker.unified_void(toggleBigMap, showFullMap, 0x231C8F89D0539D8F, "bb")end, - -- Full list of components below - -- - -- HUD = 0; - -- HUD_WANTED_STARS = 1; - -- HUD_WEAPON_ICON = 2; - -- HUD_CASH = 3; - -- HUD_MP_CASH = 4; - -- HUD_MP_MESSAGE = 5; - -- HUD_VEHICLE_NAME = 6; - -- HUD_AREA_NAME = 7; - -- HUD_VEHICLE_CLASS = 8; - -- HUD_STREET_NAME = 9; - -- HUD_HELP_TEXT = 10; - -- HUD_FLOATING_HELP_TEXT_1 = 11; - -- HUD_FLOATING_HELP_TEXT_2 = 12; - -- HUD_CASH_CHANGE = 13; - -- HUD_RETICLE = 14; - -- HUD_SUBTITLE_TEXT = 15; - -- HUD_RADIO_STATIONS = 16; - -- HUD_SAVING_GAME = 17; - -- HUD_GAME_STREAM = 18; - -- HUD_WEAPON_WHEEL = 19; - -- HUD_WEAPON_WHEEL_STATS = 20; - -- MAX_HUD_COMPONENTS = 21; - -- MAX_HUD_WEAPONS = 22; - -- MAX_SCRIPTED_HUD_COMPONENTS = 141; - ["IS_HUD_COMPONENT_ACTIVE"]=--[[BOOL (bool)]] function(--[[int]] id)return native_invoker.unified_bool(id, 0xBC4C9EA5391ECC0D, "i")end, - ["IS_SCRIPTED_HUD_COMPONENT_ACTIVE"]=--[[BOOL (bool)]] function(--[[int]] id)return native_invoker.unified_bool(id, 0xDD100EB17A94FF65, "i")end, - ["HIDE_SCRIPTED_HUD_COMPONENT_THIS_FRAME"]=--[[void]] function(--[[int]] id)return native_invoker.unified_void(id, 0xE374C498D8BADC14, "i")end, - ["SHOW_SCRIPTED_HUD_COMPONENT_THIS_FRAME"]=--[[void]] function(--[[int]] id)return native_invoker.unified_void(id, 0x4F38DCA127DAAEA2, "i")end, - ["IS_SCRIPTED_HUD_COMPONENT_HIDDEN_THIS_FRAME"]=--[[BOOL (bool)]] function(--[[int]] id)return native_invoker.unified_bool(id, 0x09C0403ED9A751C2, "i")end, - -- This function hides various HUD (Heads-up Display) components. - -- Listed below are the integers and the corresponding HUD component. - -- - 1 : WANTED_STARS - -- - 2 : WEAPON_ICON - -- - 3 : CASH - -- - 4 : MP_CASH - -- - 5 : MP_MESSAGE - -- - 6 : VEHICLE_NAME - -- - 7 : AREA_NAME - -- - 8 : VEHICLE_CLASS - -- - 9 : STREET_NAME - -- - 10 : HELP_TEXT - -- - 11 : FLOATING_HELP_TEXT_1 - -- - 12 : FLOATING_HELP_TEXT_2 - -- - 13 : CASH_CHANGE - -- - 14 : RETICLE - -- - 15 : SUBTITLE_TEXT - -- - 16 : RADIO_STATIONS - -- - 17 : SAVING_GAME - -- - 18 : GAME_STREAM - -- - 19 : WEAPON_WHEEL - -- - 20 : WEAPON_WHEEL_STATS - -- - 21 : HUD_COMPONENTS - -- - 22 : HUD_WEAPONS - -- - -- These integers also work for the `SHOW_HUD_COMPONENT_THIS_FRAME` native, but instead shows the HUD Component. - ["HIDE_HUD_COMPONENT_THIS_FRAME"]=--[[void]] function(--[[int]] id)return native_invoker.unified_void(id, 0x6806C51AD12B83B8, "i")end, - -- This function hides various HUD (Heads-up Display) components. - -- Listed below are the integers and the corresponding HUD component. - -- - 1 : WANTED_STARS - -- - 2 : WEAPON_ICON - -- - 3 : CASH - -- - 4 : MP_CASH - -- - 5 : MP_MESSAGE - -- - 6 : VEHICLE_NAME - -- - 7 : AREA_NAME - -- - 8 : VEHICLE_CLASS - -- - 9 : STREET_NAME - -- - 10 : HELP_TEXT - -- - 11 : FLOATING_HELP_TEXT_1 - -- - 12 : FLOATING_HELP_TEXT_2 - -- - 13 : CASH_CHANGE - -- - 14 : RETICLE - -- - 15 : SUBTITLE_TEXT - -- - 16 : RADIO_STATIONS - -- - 17 : SAVING_GAME - -- - 18 : GAME_STREAM - -- - 19 : WEAPON_WHEEL - -- - 20 : WEAPON_WHEEL_STATS - -- - 21 : HUD_COMPONENTS - -- - 22 : HUD_WEAPONS - -- - -- These integers also work for the `HIDE_HUD_COMPONENT_THIS_FRAME` native, but instead hides the HUD Component. - ["SHOW_HUD_COMPONENT_THIS_FRAME"]=--[[void]] function(--[[int]] id)return native_invoker.unified_void(id, 0x0B4DF1FA60C0E664, "i")end, - -- Hides area and vehicle name HUD components for one frame. - ["HIDE_STREET_AND_CAR_NAMES_THIS_FRAME"]=--[[void]] function()return native_invoker.unified_void(0xA4DEDE28B1814289, "")end, - ["RESET_RETICULE_VALUES"]=--[[void]] function()return native_invoker.unified_void(0x12782CE0A636E9F0, "")end, - ["RESET_HUD_COMPONENT_VALUES"]=--[[void]] function(--[[int]] id)return native_invoker.unified_void(id, 0x450930E616475D0D, "i")end, - ["SET_HUD_COMPONENT_POSITION"]=--[[void]] function(--[[int]] id,--[[float]] x,--[[float]] y)return native_invoker.unified_void(id, x, y, 0xAABB1F56E2A17CED, "iff")end, - ["GET_HUD_COMPONENT_POSITION"]=--[[Vector3 (vector3)]] function(--[[int]] id)return native_invoker.unified_vector3(id, 0x223CA69A8C4417FD, "i")end, - -- This native does absolutely nothing, just a nullsub - ["CLEAR_REMINDER_MESSAGE"]=--[[void]] function()return native_invoker.unified_void(0xB57D8DD645CFA2CF, "")end, - -- World to relative screen coords, this world to screen will keep the text on screen. Was named _GET_SCREEN_COORD_FROM_WORLD_COORD, but this conflicts with 0x34E82F05DF2974F5. As that hash actually matches GET_SCREEN_COORD_FROM_WORLD_COORD that one supercedes and this one was renamed to _GET_2D_COORD_FROM_3D_COORD - ["GET_HUD_SCREEN_POSITION_FROM_WORLD_POSITION"]=--[[int]] function(--[[float]] worldX,--[[float]] worldY,--[[float]] worldZ,--[[float* (pointer)]] screenX,--[[float* (pointer)]] screenY)return native_invoker.unified_int(worldX, worldY, worldZ, screenX, screenY, 0xF9904D11F1ACBEC3, "fffpp")end, - -- Shows a menu for reporting UGC content. - ["OPEN_REPORTUGC_MENU"]=--[[void]] function()return native_invoker.unified_void(0x523A590C1A3CC0D3, "")end, - ["FORCE_CLOSE_REPORTUGC_MENU"]=--[[void]] function()return native_invoker.unified_void(0xEE4C0E6DBC6F2C6F, "")end, - ["IS_REPORTUGC_MENU_OPEN"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x9135584D09A3437E, "")end, - ["IS_FLOATING_HELP_TEXT_ON_SCREEN"]=--[[BOOL (bool)]] function(--[[int]] hudIndex)return native_invoker.unified_bool(hudIndex, 0x2432784ACA090DA4, "i")end, - ["SET_FLOATING_HELP_TEXT_SCREEN_POSITION"]=--[[void]] function(--[[int]] hudIndex,--[[float]] x,--[[float]] y)return native_invoker.unified_void(hudIndex, x, y, 0x7679CC1BCEBE3D4C, "iff")end, - ["SET_FLOATING_HELP_TEXT_WORLD_POSITION"]=--[[void]] function(--[[int]] hudIndex,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(hudIndex, x, y, z, 0x784BA7E0ECEB4178, "ifff")end, - ["SET_FLOATING_HELP_TEXT_TO_ENTITY"]=--[[void]] function(--[[int]] hudIndex,--[[Entity (int)]] entity,--[[float]] offsetX,--[[float]] offsetY)return native_invoker.unified_void(hudIndex, entity, offsetX, offsetY, 0xB094BC1DB4018240, "iiff")end, - ["SET_FLOATING_HELP_TEXT_STYLE"]=--[[void]] function(--[[int]] hudIndex,--[[int]] p1,--[[int]] p2,--[[int]] p3,--[[int]] p4,--[[int]] p5)return native_invoker.unified_void(hudIndex, p1, p2, p3, p4, p5, 0x788E7FD431BD67F1, "iiiiii")end, - ["CLEAR_FLOATING_HELP"]=--[[void]] function(--[[int]] hudIndex,--[[BOOL (bool)]] p1)return native_invoker.unified_void(hudIndex, p1, 0x50085246ABD3FEFA, "ib")end, - -- clanFlag: takes a number 0-5 - ["CREATE_MP_GAMER_TAG_WITH_CREW_COLOR"]=--[[void]] function(--[[Player (int)]] player,--[[string]] username,--[[BOOL (bool)]] pointedClanTag,--[[BOOL (bool)]] isRockstarClan,--[[string]] clanTag,--[[int]] clanFlag,--[[int]] r,--[[int]] g,--[[int]] b)return native_invoker.unified_void(player, username, pointedClanTag, isRockstarClan, clanTag, clanFlag, r, g, b, 0x6DD05E9D83EFA4C9, "isbbsiiii")end, - ["IS_MP_GAMER_TAG_MOVIE_ACTIVE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x6E0EB3EB47C8D7AA, "")end, - -- clanFlag: takes a number 0-5 - ["CREATE_FAKE_MP_GAMER_TAG"]=--[[int]] function(--[[Ped (int)]] ped,--[[string]] username,--[[BOOL (bool)]] pointedClanTag,--[[BOOL (bool)]] isRockstarClan,--[[string]] clanTag,--[[int]] clanFlag)return native_invoker.unified_int(ped, username, pointedClanTag, isRockstarClan, clanTag, clanFlag, 0xBFEFE3321A3F5015, "isbbsi")end, - ["REMOVE_MP_GAMER_TAG"]=--[[void]] function(--[[int]] gamerTagId)return native_invoker.unified_void(gamerTagId, 0x31698AA80E0223F8, "i")end, - ["IS_MP_GAMER_TAG_ACTIVE"]=--[[BOOL (bool)]] function(--[[int]] gamerTagId)return native_invoker.unified_bool(gamerTagId, 0x4E929E7A5796FD26, "i")end, - ["IS_MP_GAMER_TAG_FREE"]=--[[BOOL (bool)]] function(--[[int]] gamerTagId)return native_invoker.unified_bool(gamerTagId, 0x595B5178E412E199, "i")end, - -- enum eMpGamerTagComponent - -- { - -- MP_TAG_GAMER_NAME, - -- MP_TAG_CREW_TAG, - -- MP_TAG_HEALTH_ARMOUR, - -- MP_TAG_BIG_TEXT, - -- MP_TAG_AUDIO_ICON, - -- MP_TAG_USING_MENU, - -- MP_TAG_PASSIVE_MODE, - -- MP_TAG_WANTED_STARS, - -- MP_TAG_DRIVER, - -- MP_TAG_CO_DRIVER, - -- MP_TAG_TAGGED, - -- MP_TAG_GAMER_NAME_NEARBY, - -- MP_TAG_ARROW, - -- MP_TAG_PACKAGES, - -- MP_TAG_INV_IF_PED_FOLLOWING, - -- MP_TAG_RANK_TEXT, - -- MP_TAG_TYPING, - -- MP_TAG_BAG_LARGE, - -- MP_TAG_ARROW, - -- MP_TAG_GANG_CEO, - -- MP_TAG_GANG_BIKER, - -- MP_TAG_BIKER_ARROW, - -- MP_TAG_MC_ROLE_PRESIDENT, - -- MP_TAG_MC_ROLE_VICE_PRESIDENT, - -- MP_TAG_MC_ROLE_ROAD_CAPTAIN, - -- MP_TAG_MC_ROLE_SARGEANT, - -- MP_TAG_MC_ROLE_ENFORCER, - -- MP_TAG_MC_ROLE_PROSPECT, - -- MP_TAG_TRANSMITTER, - -- MP_TAG_BOMB - -- }; - ["SET_MP_GAMER_TAG_VISIBILITY"]=--[[void]] function(--[[int]] gamerTagId,--[[int]] component,--[[BOOL (bool)]] toggle,--[[Any (int)]] p3)return native_invoker.unified_void(gamerTagId, component, toggle, p3, 0x63BB75ABEDC1F6A0, "iibi")end, - ["SET_ALL_MP_GAMER_TAGS_VISIBILITY"]=--[[void]] function(--[[int]] gamerTagId,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(gamerTagId, toggle, 0xEE76FF7E6A0166B0, "ib")end, - -- Displays a bunch of icons above the players name, and level, and their name twice - ["SET_MP_GAMER_TAGS_SHOULD_USE_VEHICLE_HEALTH"]=--[[void]] function(--[[int]] gamerTagId,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(gamerTagId, toggle, 0xA67F9C46D612B6F1, "ib")end, - ["SET_MP_GAMER_TAGS_SHOULD_USE_POINTS_HEALTH"]=--[[void]] function(--[[int]] gamerTagId,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(gamerTagId, toggle, 0xD29EC58C2F6B5014, "ib")end, - ["SET_MP_GAMER_TAGS_POINT_HEALTH"]=--[[void]] function(--[[int]] gamerTagId,--[[int]] value,--[[int]] maximumValue)return native_invoker.unified_void(gamerTagId, value, maximumValue, 0x1563FE35E9928E67, "iii")end, - -- Sets a gamer tag's component colour - -- - -- gamerTagId is obtained using for example CREATE_FAKE_MP_GAMER_TAG - -- Ranges from 0 to 255. 0 is grey health bar, ~50 yellow, 200 purple. - ["SET_MP_GAMER_TAG_COLOUR"]=--[[void]] function(--[[int]] gamerTagId,--[[int]] component,--[[int]] hudColorIndex)return native_invoker.unified_void(gamerTagId, component, hudColorIndex, 0x613ED644950626AE, "iii")end, - -- Ranges from 0 to 255. 0 is grey health bar, ~50 yellow, 200 purple. - -- Should be enabled as flag (2). Has 0 opacity by default. - -- - -- - This was _SET_MP_GAMER_TAG_HEALTH_BAR_COLOR, - -- -> Rockstar use the EU spelling of 'color' so I hashed the same name with COLOUR and it came back as the correct hash, so it has been corrected above. - ["SET_MP_GAMER_TAG_HEALTH_BAR_COLOUR"]=--[[void]] function(--[[int]] gamerTagId,--[[int]] hudColorIndex)return native_invoker.unified_void(gamerTagId, hudColorIndex, 0x3158C77A7E888AB4, "ii")end, - -- Sets flag's sprite transparency. 0-255. - ["SET_MP_GAMER_TAG_ALPHA"]=--[[void]] function(--[[int]] gamerTagId,--[[int]] component,--[[int]] alpha)return native_invoker.unified_void(gamerTagId, component, alpha, 0xD48FE545CD46F857, "iii")end, - -- displays wanted star above head - ["SET_MP_GAMER_TAG_WANTED_LEVEL"]=--[[void]] function(--[[int]] gamerTagId,--[[int]] wantedlvl)return native_invoker.unified_void(gamerTagId, wantedlvl, 0xCF228E2AA03099C3, "ii")end, - ["SET_MP_GAMER_TAG_NUM_PACKAGES"]=--[[void]] function(--[[int]] gamerTagId,--[[int]] p1)return native_invoker.unified_void(gamerTagId, p1, 0x9C16459B2324B2CF, "ii")end, - ["SET_MP_GAMER_TAG_NAME"]=--[[void]] function(--[[int]] gamerTagId,--[[string]] string)return native_invoker.unified_void(gamerTagId, string, 0xDEA2B8283BAA3944, "is")end, - ["IS_UPDATING_MP_GAMER_TAG_NAME_AND_CREW_DETAILS"]=--[[BOOL (bool)]] function(--[[int]] gamerTagId)return native_invoker.unified_bool(gamerTagId, 0xEB709A36958ABE0D, "i")end, - ["SET_MP_GAMER_TAG_BIG_TEXT"]=--[[void]] function(--[[int]] gamerTagId,--[[string]] string)return native_invoker.unified_void(gamerTagId, string, 0x7B7723747CCB55B6, "is")end, - ["GET_CURRENT_WEBPAGE_ID"]=--[[int]] function()return native_invoker.unified_int(0x01A358D9128B7A86, "")end, - ["GET_CURRENT_WEBSITE_ID"]=--[[int]] function()return native_invoker.unified_int(0x97D47996FC48CBAD, "")end, - -- Returns the ActionScript flagValue. - -- ActionScript flags are global flags that scaleforms use - -- Flags found during testing - -- 0: Returns 1 if the web_browser keyboard is open, otherwise 0 - -- 1: Returns 1 if the player has clicked back twice on the opening page, otherwise 0 (web_browser) - -- 2: Returns how many links the player has clicked in the web_browser scaleform, returns 0 when the browser gets closed - -- 9: Returns the current selection on the mobile phone scaleform - -- - -- There are 20 flags in total. - ["GET_GLOBAL_ACTIONSCRIPT_FLAG"]=--[[int]] function(--[[int]] flagIndex)return native_invoker.unified_int(flagIndex, 0xE3B05614DCE1D014, "i")end, - ["RESET_GLOBAL_ACTIONSCRIPT_FLAG"]=--[[void]] function(--[[int]] flagIndex)return native_invoker.unified_void(flagIndex, 0xB99C4E4D9499DF29, "i")end, - ["IS_WARNING_MESSAGE_READY_FOR_CONTROL"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xAF42195A42C63BBA, "")end, - -- You can only use text entries. No custom text. - -- - -- Example: SET_WARNING_MESSAGE("t20", 3, "adder", false, -1, 0, 0, true); - -- errorCode: shows an error code at the bottom left if nonzero - ["SET_WARNING_MESSAGE"]=--[[void]] function(--[[string]] titleMsg,--[[int]] flags,--[[string]] promptMsg,--[[BOOL (bool)]] p3,--[[int]] p4,--[[string]] p5,--[[string]] p6,--[[BOOL (bool)]] showBackground,--[[int]] errorCode)return native_invoker.unified_void(titleMsg, flags, promptMsg, p3, p4, p5, p6, showBackground, errorCode, 0x7B1776B3B53F8D74, "sisbissbi")end, - -- Shows a warning message on screen with a header. - -- Note: You can only use text entries. No custom text. You can recreate this easily with scaleforms. - -- Example: https://i.imgur.com/ITJt8bJ.png - ["SET_WARNING_MESSAGE_WITH_HEADER"]=--[[void]] function(--[[string]] entryHeader,--[[string]] entryLine1,--[[int]] instructionalKey,--[[string]] entryLine2,--[[BOOL (bool)]] p4,--[[Any (int)]] p5,--[[Any* (pointer)]] showBackground,--[[Any* (pointer)]] p7,--[[BOOL (bool)]] p8,--[[Any (int)]] p9)return native_invoker.unified_void(entryHeader, entryLine1, instructionalKey, entryLine2, p4, p5, showBackground, p7, p8, p9, 0xDC38CC1E35B6A5D7, "ssisbippbi")end, - -- You can use this native for custom input, without having to use any scaleform-related natives. - -- The native must be called on tick. - -- The entryHeader must be a valid label. - -- For Single lines use JL_INVITE_N as entryLine1, JL_INVITE_ND for multiple. - -- Notes: - -- - additionalIntInfo: replaces first occurrence of ~1~ in provided label with an integer - -- - additionalTextInfoLine1: replaces first occurrence of ~a~ in provided label, with your custom text - -- - additionalTextInfoLine2: replaces second occurrence of ~a~ in provided label, with your custom text - -- - showBackground: shows black background of the warning screen - -- - errorCode: shows an error code at the bottom left if nonzero - -- Example of usage: - -- SET_WARNING_MESSAGE_WITH_HEADER_AND_SUBSTRING_FLAGS("ALERT", "JL_INVITE_ND", 66, "", true, -1, -1, "Testing line 1", "Testing line 2", true, 0); - -- Screenshot: - -- https://imgur.com/a/IYA7vJ8 - ["SET_WARNING_MESSAGE_WITH_HEADER_AND_SUBSTRING_FLAGS"]=--[[void]] function(--[[string]] entryHeader,--[[string]] entryLine1,--[[int]] instructionalKey,--[[string]] entryLine2,--[[BOOL (bool)]] p4,--[[Any (int)]] p5,--[[Any (int)]] additionalIntInfo,--[[string]] additionalTextInfoLine1,--[[string]] additionalTextInfoLine2,--[[BOOL (bool)]] showBackground,--[[int]] errorCode)return native_invoker.unified_void(entryHeader, entryLine1, instructionalKey, entryLine2, p4, p5, additionalIntInfo, additionalTextInfoLine1, additionalTextInfoLine2, showBackground, errorCode, 0x701919482C74B5AB, "ssisbiissbi")end, - ["SET_WARNING_MESSAGE_WITH_HEADER_EXTENDED"]=--[[void]] function(--[[string]] entryHeader,--[[string]] entryLine1,--[[int]] flags,--[[string]] entryLine2,--[[BOOL (bool)]] p4,--[[Any (int)]] p5,--[[Any* (pointer)]] p6,--[[Any* (pointer)]] p7,--[[BOOL (bool)]] showBg,--[[Any (int)]] p9,--[[Any (int)]] p10)return native_invoker.unified_void(entryHeader, entryLine1, flags, entryLine2, p4, p5, p6, p7, showBg, p9, p10, 0x38B55259C2E078ED, "ssisbippbii")end, - -- labelTitle: Label of the alert's title. - -- labelMsg: Label of the alert's message. - -- p2: This is an enum, check the description for a list. - -- p3: This is an enum, check the description for a list. - -- labelMsg2: Label of another message line - -- p5: usually 0 - -- p6: usually -1 - -- p7: usually 0 - -- p8: unknown label - -- p9: unknown label - -- background: Set to anything other than 0 or false (even any string) and it will draw a background. Setting it to 0 or false will draw no background. - -- errorCode: Error code, shown at the bottom left if set to value other than 0. - -- - -- instructionalKey enum list: - -- Buttons = { - -- Empty = 0, - -- Select = 1, -- (RETURN) - -- Ok = 2, -- (RETURN) - -- Yes = 4, -- (RETURN) - -- Back = 8, -- (ESC) - -- Cancel = 16, -- (ESC) - -- No = 32, -- (ESC) - -- RetrySpace = 64, -- (SPACE) - -- Restart = 128, -- (SPACE) - -- Skip = 256, -- (SPACE) - -- Quit = 512, -- (ESC) - -- Adjust = 1024, -- (ARROWS) - -- SpaceKey = 2048, -- (SPACE) - -- Share = 4096, -- (SPACE) - -- SignIn = 8192, -- (SPACE) - -- Continue = 16384, -- (RETURN) - -- AdjustLeftRight = 32768, -- (SCROLL L/R) - -- AdjustUpDown = 65536, -- (SCROLL U/D) - -- Overwrite = 131072, -- (SPACE) - -- SocialClubSignup = 262144, -- (RETURN) - -- Confirm = 524288, -- (RETURN) - -- Queue = 1048576, -- (RETURN) - -- RetryReturn = 2097152, -- (RETURN) - -- BackEsc = 4194304, -- (ESC) - -- SocialClub = 8388608, -- (RETURN) - -- Spectate = 16777216, -- (SPACE) - -- OkEsc = 33554432, -- (ESC) - -- CancelTransfer = 67108864, -- (ESC) - -- LoadingSpinner = 134217728, - -- NoReturnToGTA = 268435456, -- (ESC) - -- CancelEsc = 536870912, -- (ESC) - -- } - -- - -- Alt = { - -- Empty = 0, - -- No = 1, -- (SPACE) - -- Host = 2, -- (ESC) - -- SearchForJob = 4, -- (RETURN) - -- ReturnKey = 8, -- (TURN) - -- Freemode = 16, -- (ESC) - -- } - -- - -- Example: https://i.imgur.com/TvmNF4k.png - ["SET_WARNING_MESSAGE_WITH_HEADER_AND_SUBSTRING_FLAGS_EXTENDED"]=--[[void]] function(--[[string]] labelTitle,--[[string]] labelMessage,--[[int]] p2,--[[int]] p3,--[[string]] labelMessage2,--[[BOOL (bool)]] p5,--[[int]] p6,--[[int]] p7,--[[string]] p8,--[[string]] p9,--[[BOOL (bool)]] background,--[[int]] errorCode)return native_invoker.unified_void(labelTitle, labelMessage, p2, p3, labelMessage2, p5, p6, p7, p8, p9, background, errorCode, 0x15803FEC3B9A872B, "ssiisbiissbi")end, - -- Has to do with the confirmation overlay (E.g. confirm exit) - ["GET_WARNING_SCREEN_MESSAGE_HASH"]=--[[Hash (int)]] function()return native_invoker.unified_int(0x81DF9ABA6C83DFF9, "")end, - -- Some sort of list displayed in a warning message. Yet unknown how to prevent repeating. - -- Param names copied from the corresponding scaleform function "SET_LIST_ROW". - -- Example: https://i.imgur.com/arKvOYx.png - ["SET_WARNING_MESSAGE_OPTION_ITEMS"]=--[[BOOL (bool)]] function(--[[int]] index,--[[string]] name,--[[int]] cash,--[[int]] rp,--[[int]] lvl,--[[int]] colour)return native_invoker.unified_bool(index, name, cash, rp, lvl, colour, 0x0C5A80A9E096D529, "isiiii")end, - ["SET_WARNING_MESSAGE_OPTION_HIGHLIGHT"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0xDAF87174BE7454FF, "i")end, - ["REMOVE_WARNING_MESSAGE_OPTION_ITEMS"]=--[[void]] function()return native_invoker.unified_void(0x6EF54AB721DC6242, "")end, - ["IS_WARNING_MESSAGE_ACTIVE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xE18B138FABC53103, "")end, - ["CLEAR_DYNAMIC_PAUSE_MENU_ERROR_MESSAGE"]=--[[void]] function()return native_invoker.unified_void(0x7792424AA0EAC32E, "")end, - -- If toggle is true, the map is shown in full screen - -- If toggle is false, the map is shown in normal mode - ["CUSTOM_MINIMAP_SET_ACTIVE"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x5354C5BA2EA868A4, "b")end, - -- Sets the sprite of the next BLIP_GALLERY blip, values used in the native scripts: 143 (ObjectiveBlue), 144 (ObjectiveGreen), 145 (ObjectiveRed), 146 (ObjectiveYellow). - ["CUSTOM_MINIMAP_SET_BLIP_OBJECT"]=--[[void]] function(--[[int]] spriteId)return native_invoker.unified_void(spriteId, 0x1EAE6DD17B7A5EFA, "i")end, - -- Add a BLIP_GALLERY at the specific coordinate. Used in fm_maintain_transition_players to display race track points. - ["CUSTOM_MINIMAP_CREATE_BLIP"]=--[[int]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_int(x, y, z, 0x551DF99658DB6EE8, "fff")end, - ["CUSTOM_MINIMAP_CLEAR_BLIPS"]=--[[void]] function()return native_invoker.unified_void(0x2708FC083123F9FF, "")end, - -- Doesn't actually return anything. - ["FORCE_SONAR_BLIPS_THIS_FRAME"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x1121BFA1A1A522A8, "")end, - ["GET_NORTH_BLID_INDEX"]=--[[Blip (int)]] function()return native_invoker.unified_int(0x3F0CF9CB7E589B88, "")end, - -- Toggles whether or not name labels are shown on the expanded minimap next to player blips, like in GTA:O. - -- Doesn't need to be called every frame. - -- Preview: https://i.imgur.com/DfqKWfJ.png - -- - -- Make sure to call SET_BLIP_CATEGORY with index 7 for this to work on the desired blip. - ["DISPLAY_PLAYER_NAME_TAGS_ON_BLIPS"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x82CEDC33687E1F50, "b")end, - -- This native does absolutely nothing, just a nullsub - ["DRAW_FRONTEND_BACKGROUND_THIS_FRAME"]=--[[void]] function()return native_invoker.unified_void(0x211C4EF450086857, "")end, - ["DRAW_HUD_OVER_FADE_THIS_FRAME"]=--[[void]] function()return native_invoker.unified_void(0xBF4F34A85CA2970C, "")end, - -- Does stuff like this: - -- gyazo.com/7fcb78ea3520e3dbc5b2c0c0f3712617 - -- - -- Example: - -- int GetHash = GET_HASH_KEY("fe_menu_version_corona_lobby"); - -- ACTIVATE_FRONTEND_MENU(GetHash, 0, -1); - -- - -- BOOL p1 is a toggle to define the game in pause. - -- int p2 is unknown but -1 always works, not sure why though. - -- - -- [30/03/2017] ins1de : - -- - -- the int p2 is actually a component variable. When the pause menu is visible, it opens the tab related to it. - -- - -- Example : Function.Call(Hash.ACTIVATE_FRONTEND_MENU,-1171018317, 0, 42); - -- Result : Opens the "Online" tab without pausing the menu, with -1 it opens the map.Below is a list of all known Frontend Menu Hashes. - -- - FE_MENU_VERSION_SP_PAUSE - -- - FE_MENU_VERSION_MP_PAUSE - -- - FE_MENU_VERSION_CREATOR_PAUSE - -- - FE_MENU_VERSION_CUTSCENE_PAUSE - -- - FE_MENU_VERSION_SAVEGAME - -- - FE_MENU_VERSION_PRE_LOBBY - -- - FE_MENU_VERSION_LOBBY - -- - FE_MENU_VERSION_MP_CHARACTER_SELECT - -- - FE_MENU_VERSION_MP_CHARACTER_CREATION - -- - FE_MENU_VERSION_EMPTY - -- - FE_MENU_VERSION_EMPTY_NO_BACKGROUND - -- - FE_MENU_VERSION_TEXT_SELECTION - -- - FE_MENU_VERSION_CORONA - -- - FE_MENU_VERSION_CORONA_LOBBY - -- - FE_MENU_VERSION_CORONA_JOINED_PLAYERS - -- - FE_MENU_VERSION_CORONA_INVITE_PLAYERS - -- - FE_MENU_VERSION_CORONA_INVITE_FRIENDS - -- - FE_MENU_VERSION_CORONA_INVITE_CREWS - -- - FE_MENU_VERSION_CORONA_INVITE_MATCHED_PLAYERS - -- - FE_MENU_VERSION_CORONA_INVITE_LAST_JOB_PLAYERS - -- - FE_MENU_VERSION_CORONA_RACE - -- - FE_MENU_VERSION_CORONA_BETTING - -- - FE_MENU_VERSION_JOINING_SCREEN - -- - FE_MENU_VERSION_LANDING_MENU - -- - FE_MENU_VERSION_LANDING_KEYMAPPING_MENU - ["ACTIVATE_FRONTEND_MENU"]=--[[void]] function(--[[Hash (int)]] menuhash,--[[BOOL (bool)]] togglePause,--[[int]] component)return native_invoker.unified_void(menuhash, togglePause, component, 0xEF01D36B9C9D0C7B, "ibi")end, - -- Before using this native click the native above and look at the decription. - -- - -- Example: - -- int GetHash = Function.Call(Hash.GET_HASH_KEY, "fe_menu_version_corona_lobby"); - -- Function.Call(Hash.ACTIVATE_FRONTEND_MENU, GetHash, 0, -1); - -- Function.Call(Hash.RESTART_FRONTEND_MENU(GetHash, -1); - -- - -- This native refreshes the frontend menu. - -- - -- p1 = Hash of Menu - -- p2 = Unknown but always works with -1. - ["RESTART_FRONTEND_MENU"]=--[[void]] function(--[[Hash (int)]] menuHash,--[[int]] p1)return native_invoker.unified_void(menuHash, p1, 0x10706DC6AD2D49C0, "ii")end, - -- if (HUD::GET_CURRENT_FRONTEND_MENU_VERSION() == joaat("fe_menu_version_empty_no_background")) - ["GET_CURRENT_FRONTEND_MENU_VERSION"]=--[[Hash (int)]] function()return native_invoker.unified_int(0x2309595AD6145265, "")end, - ["SET_PAUSE_MENU_ACTIVE"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xDF47FC56C71569CF, "b")end, - ["DISABLE_FRONTEND_THIS_FRAME"]=--[[void]] function()return native_invoker.unified_void(0x6D3465A73092F0E6, "")end, - ["SUPPRESS_FRONTEND_RENDERING_THIS_FRAME"]=--[[void]] function()return native_invoker.unified_void(0xBA751764F0821256, "")end, - -- Allows opening the pause menu this frame, when the player is dead. - ["ALLOW_PAUSE_WHEN_NOT_IN_STATE_OF_PLAY_THIS_FRAME"]=--[[void]] function()return native_invoker.unified_void(0xCC3FDDED67BCFC63, "")end, - ["SET_FRONTEND_ACTIVE"]=--[[void]] function(--[[BOOL (bool)]] active)return native_invoker.unified_void(active, 0x745711A75AB09277, "b")end, - ["IS_PAUSE_MENU_ACTIVE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xB0034A223497FFCB, "")end, - ["IS_STORE_PENDING_NETWORK_SHUTDOWN_TO_OPEN"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x2F057596F2BD0061, "")end, - -- Returns: - -- - -- 0 - -- 5 - -- 10 - -- 15 - -- 20 - -- 25 - -- 30 - -- 35 - -- - ["GET_PAUSE_MENU_STATE"]=--[[int]] function()return native_invoker.unified_int(0x272ACD84970869C5, "")end, - ["GET_PAUSE_MENU_POSITION"]=--[[Vector3 (vector3)]] function()return native_invoker.unified_vector3(0x5BFF36D6ED83E0AE, "")end, - ["IS_PAUSE_MENU_RESTARTING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x1C491717107431C7, "")end, - -- Not present in retail version of the game, actual definiton seems to be - -- _LOG_DEBUG_INFO(const char* category, const char* debugText); - ["FORCE_SCRIPTED_GFX_WHEN_FRONTEND_ACTIVE"]=--[[void]] function(--[[string]] p0)return native_invoker.unified_void(p0, 0x2162C446DFDF38FD, "s")end, - ["PAUSE_MENUCEPTION_GO_DEEPER"]=--[[void]] function(--[[int]] page)return native_invoker.unified_void(page, 0x77F16B447824DA6C, "i")end, - ["PAUSE_MENUCEPTION_THE_KICK"]=--[[void]] function()return native_invoker.unified_void(0xCDCA26E80FAECB8F, "")end, - ["PAUSE_TOGGLE_FULLSCREEN_MAP"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x2DE6C5E2E996F178, "i")end, - -- Activates the specified frontend menu context. - -- pausemenu.xml defines some specific menu options using 'context'. Context is basically a 'condition'. - -- The `*ALL*` part of the context means that whatever is being defined, will be active when any or all of those conditions after `*ALL*` are met. - -- The `*NONE*` part of the context section means that whatever is being defined, will NOT be active if any or all of the conditions after `*NONE*` are met. - -- This basically allows you to hide certain menu sections, or things like instructional buttons. - ["PAUSE_MENU_ACTIVATE_CONTEXT"]=--[[void]] function(--[[Hash (int)]] contextHash)return native_invoker.unified_void(contextHash, 0xDD564BDD0472C936, "i")end, - ["PAUSE_MENU_DEACTIVATE_CONTEXT"]=--[[void]] function(--[[Hash (int)]] contextHash)return native_invoker.unified_void(contextHash, 0x444D8CF241EC25C5, "i")end, - ["PAUSE_MENU_IS_CONTEXT_ACTIVE"]=--[[BOOL (bool)]] function(--[[Hash (int)]] contextHash)return native_invoker.unified_bool(contextHash, 0x84698AB38D0C6636, "i")end, - ["PAUSE_MENU_IS_CONTEXT_MENU_ACTIVE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x2A25ADC48F87841F, "")end, - ["PAUSE_MENU_GET_HAIR_COLOUR_INDEX"]=--[[int]] function()return native_invoker.unified_int(0xDE03620F8703A9DF, "")end, - ["PAUSE_MENU_GET_MOUSE_HOVER_INDEX"]=--[[int]] function()return native_invoker.unified_int(0x359AF31A4B52F5ED, "")end, - ["PAUSE_MENU_GET_MOUSE_HOVER_UNIQUE_ID"]=--[[int]] function()return native_invoker.unified_int(0x13C4B962653A5280, "")end, - ["PAUSE_MENU_GET_MOUSE_CLICK_EVENT"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[Any* (pointer)]] p1,--[[Any* (pointer)]] p2)return native_invoker.unified_bool(p0, p1, p2, 0xC8E1071177A23BE5, "ppp")end, - ["PAUSE_MENU_REDRAW_INSTRUCTIONAL_BUTTONS"]=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0x4895BDEA16E7C080, "i")end, - ["PAUSE_MENU_SET_BUSY_SPINNER"]=--[[void]] function(--[[BOOL (bool)]] p0,--[[int]] position,--[[int]] spinnerIndex)return native_invoker.unified_void(p0, position, spinnerIndex, 0xC78E239AC5B2DDB9, "bii")end, - ["PAUSE_MENU_SET_WARN_ON_TAB_CHANGE"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xF06EBB91A81E09E3, "b")end, - ["IS_FRONTEND_READY_FOR_CONTROL"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x3BAB9A4E4F2FF5C7, "")end, - -- Disables frontend (works in custom frontends, not sure about regular pause menu) navigation keys on keyboard. Not sure about controller. Does not disable mouse controls. No need to call this every tick. - -- - -- To enable the keys again, use `0x14621BB1DF14E2B2`. - ["TAKE_CONTROL_OF_FRONTEND"]=--[[void]] function()return native_invoker.unified_void(0xEC9264727EEC0F28, "")end, - -- Enables frontend (works in custom frontends, not sure about regular pause menu) navigation keys on keyboard if they were disabled using the native below. - -- To disable the keys, use `0xEC9264727EEC0F28` - ["RELEASE_CONTROL_OF_FRONTEND"]=--[[void]] function()return native_invoker.unified_void(0x14621BB1DF14E2B2, "")end, - ["CODE_WANTS_SCRIPT_TO_TAKE_CONTROL"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x66E7CB63C97B7D20, "")end, - ["GET_SCREEN_CODE_WANTS_SCRIPT_TO_CONTROL"]=--[[int]] function()return native_invoker.unified_int(0x593FEAE1F73392D4, "")end, - ["IS_NAVIGATING_MENU_CONTENT"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x4E3CD0EF8A489541, "")end, - ["HAS_MENU_TRIGGER_EVENT_OCCURRED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xF284AC67940C6812, "")end, - ["HAS_MENU_LAYOUT_CHANGED_EVENT_OCCURRED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x2E22FEFA0100275E, "")end, - ["SET_SAVEGAME_LIST_UNIQUE_ID"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x0CF54F20DE43879C, "i")end, - ["GET_MENU_TRIGGER_EVENT_DETAILS"]=--[[void]] function(--[[int* (pointer)]] lastItemMenuId,--[[int* (pointer)]] selectedItemUniqueId)return native_invoker.unified_void(lastItemMenuId, selectedItemUniqueId, 0x36C1451A88A09630, "pp")end, - -- lastItemMenuId: this is the menuID of the last selected item minus 1000 (lastItem.menuID - 1000) - -- selectedItemMenuId: same as lastItemMenuId except for the currently selected menu item - -- selectedItemUniqueId: this is uniqueID of the currently selected menu item - -- - -- when the pausemenu is closed: - -- lastItemMenuId = -1 - -- selectedItemMenuId = -1 - -- selectedItemUniqueId = 0 - -- - -- when the header gains focus: - -- lastItemMenuId updates as normal or 0 if the pausemenu was just opened - -- selectedItemMenuId becomes a unique id for the pausemenu page that focus was taken from (?) or 0 if the pausemenu was just opened - -- selectedItemUniqueId = -1 - -- - -- when focus is moved from the header to a pausemenu page: - -- lastItemMenuId becomes a unique id for the pausemenu page that focus was moved to (?) - -- selectedItemMenuId = -1 - -- selectedItemUniqueId updates as normal - ["GET_MENU_LAYOUT_CHANGED_EVENT_DETAILS"]=--[[void]] function(--[[int* (pointer)]] lastItemMenuId,--[[int* (pointer)]] selectedItemMenuId,--[[int* (pointer)]] selectedItemUniqueId)return native_invoker.unified_void(lastItemMenuId, selectedItemMenuId, selectedItemUniqueId, 0x7E17BE53E1AAABAF, "ppp")end, - ["GET_PM_PLAYER_CREW_COLOR"]=--[[BOOL (bool)]] function(--[[int* (pointer)]] r,--[[int* (pointer)]] g,--[[int* (pointer)]] b)return native_invoker.unified_bool(r, g, b, 0xA238192F33110615, "ppp")end, - ["GET_MENU_PED_INT_STAT"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any* (pointer)]] p1)return native_invoker.unified_bool(p0, p1, 0xEF4CED81CEBEDC6D, "ip")end, - ["GET_CHARACTER_MENU_PED_INT_STAT"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any* (pointer)]] p1,--[[Any (int)]] p2)return native_invoker.unified_bool(p0, p1, p2, 0xCA6B2F7CE32AB653, "ipi")end, - ["GET_MENU_PED_MASKED_INT_STAT"]=--[[BOOL (bool)]] function(--[[Hash (int)]] statHash,--[[int* (pointer)]] outValue,--[[int]] mask,--[[BOOL (bool)]] p3)return native_invoker.unified_bool(statHash, outValue, mask, p3, 0x90A6526CF0381030, "ipib")end, - ["GET_CHARACTER_MENU_PED_MASKED_INT_STAT"]=--[[BOOL (bool)]] function(--[[Hash (int)]] statHash,--[[Any* (pointer)]] outValue,--[[int]] p2,--[[int]] mask,--[[BOOL (bool)]] p4)return native_invoker.unified_bool(statHash, outValue, p2, mask, p4, 0x24A49BEAF468DC90, "ipiib")end, - ["GET_MENU_PED_FLOAT_STAT"]=--[[BOOL (bool)]] function(--[[Hash (int)]] statHash,--[[float* (pointer)]] outValue)return native_invoker.unified_bool(statHash, outValue, 0x5FBD7095FE7AE57F, "ip")end, - ["GET_CHARACTER_MENU_PED_FLOAT_STAT"]=--[[BOOL (bool)]] function(--[[float]] statHash,--[[float* (pointer)]] outValue,--[[BOOL (bool)]] p2)return native_invoker.unified_bool(statHash, outValue, p2, 0x8F08017F9D7C47BD, "fpb")end, - -- p0 was always 0xAE2602A3. - ["GET_MENU_PED_BOOL_STAT"]=--[[BOOL (bool)]] function(--[[Hash (int)]] statHash,--[[BOOL* (pointer)]] outValue)return native_invoker.unified_bool(statHash, outValue, 0x052991E59076E4E4, "ip")end, - ["CLEAR_PED_IN_PAUSE_MENU"]=--[[void]] function()return native_invoker.unified_void(0x5E62BE5DC58E9E06, "")end, - -- p1 is either 1 or 2 in the PC scripts. - ["GIVE_PED_TO_PAUSE_MENU"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] p1)return native_invoker.unified_void(ped, p1, 0xAC0BFBDC3BE00E14, "ii")end, - -- Toggles the light state for the pause menu ped in frontend menus. - -- - -- This is used by R* in combination with `SET_PAUSE_MENU_PED_SLEEP_STATE` to toggle the "offline" or "online" state in the "friends" tab of the pause menu in GTA Online. - -- - -- - -- Example: - -- Lights On: https://vespura.com/hi/i/2019-04-01_16-09_540ee_1015.png - -- Lights Off: https://vespura.com/hi/i/2019-04-01_16-10_8b5e7_1016.png - ["SET_PAUSE_MENU_PED_LIGHTING"]=--[[void]] function(--[[BOOL (bool)]] state)return native_invoker.unified_void(state, 0x3CA6050692BC61B0, "b")end, - -- Toggles the pause menu ped sleep state for frontend menus. - -- - -- Example: https://vespura.com/hi/i/2019-04-01_15-51_8ed38_1014.gif - -- - -- `state` 0 will make the ped slowly fall asleep, 1 will slowly wake the ped up. - ["SET_PAUSE_MENU_PED_SLEEP_STATE"]=--[[void]] function(--[[BOOL (bool)]] state)return native_invoker.unified_void(state, 0xECF128344E9FF9F1, "b")end, - ["OPEN_ONLINE_POLICIES_MENU"]=--[[void]] function()return native_invoker.unified_void(0x805D7CBB36FD6C4C, "")end, - ["ARE_ONLINE_POLICIES_UP_TO_DATE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xF13FE2A80C05C561, "")end, - -- Returns the same as IS_SOCIAL_CLUB_ACTIVE - ["IS_ONLINE_POLICIES_MENU_ACTIVE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x6F72CD94F7B5B68C, "")end, - -- Uses the `SOCIAL_CLUB2` scaleform. - -- menu: GALLERY, MISSIONS, CREWS, MIGRATE, PLAYLISTS, JOBS - ["OPEN_SOCIAL_CLUB_MENU"]=--[[void]] function(--[[Hash (int)]] menu)return native_invoker.unified_void(menu, 0x75D3691713C3B05A, "i")end, - ["CLOSE_SOCIAL_CLUB_MENU"]=--[[void]] function()return native_invoker.unified_void(0xD2B32BE3FC1626C6, "")end, - -- HUD::SET_SOCIAL_CLUB_TOUR("Gallery"); - -- HUD::SET_SOCIAL_CLUB_TOUR("Missions"); - -- HUD::SET_SOCIAL_CLUB_TOUR("General"); - -- HUD::SET_SOCIAL_CLUB_TOUR("Playlists"); - ["SET_SOCIAL_CLUB_TOUR"]=--[[void]] function(--[[string]] name)return native_invoker.unified_void(name, 0x9E778248D6685FE0, "s")end, - ["IS_SOCIAL_CLUB_ACTIVE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC406BE343FC4B9AF, "")end, - ["SET_TEXT_INPUT_BOX_ENABLED"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x1185A8087587322C, "b")end, - ["FORCE_CLOSE_TEXT_INPUT_BOX"]=--[[void]] function()return native_invoker.unified_void(0x8817605C2BA76200, "")end, - ["SET_ALLOW_COMMA_ON_TEXT_INPUT"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x577599CCED639CA2, "i")end, - ["OVERRIDE_MP_TEXT_CHAT_TEAM_STRING"]=--[[void]] function(--[[Hash (int)]] gxtEntryHash)return native_invoker.unified_void(gxtEntryHash, 0x6A1738B4323FE2D9, "i")end, - -- Returns whether or not the text chat (MULTIPLAYER_CHAT Scaleform component) is active. - ["IS_MP_TEXT_CHAT_TYPING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xB118AF58B5F332A1, "")end, - ["CLOSE_MP_TEXT_CHAT"]=--[[void]] function()return native_invoker.unified_void(0x1AC8F4AD40E22127, "")end, - ["MP_TEXT_CHAT_IS_TEAM_JOB"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x7C226D5346D4D10A, "i")end, - ["OVERRIDE_MP_TEXT_CHAT_COLOR"]=--[[void]] function(--[[int]] p0,--[[int]] hudColor)return native_invoker.unified_void(p0, hudColor, 0xF47E567B3630DD12, "ii")end, - -- Hides the chat history, closes the input box and makes it unable to be opened unless called again with FALSE. - ["MP_TEXT_CHAT_DISABLE"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x1DB21A44B09E8BA3, "b")end, - ["FLAG_PLAYER_CONTEXT_IN_TOURNAMENT"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xCEF214315D276FD1, "b")end, - -- This native turns on the AI blip on the specified ped. It also disappears automatically when the ped is too far or if the ped is dead. You don't need to control it with other natives. - -- - -- See gtaforums.com/topic/884370-native-research-ai-blips for further information. - ["SET_PED_HAS_AI_BLIP"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] hasCone)return native_invoker.unified_void(ped, hasCone, 0xD30C50DF888D58B5, "ib")end, - -- color: see SET_BLIP_COLOUR - ["SET_PED_HAS_AI_BLIP_WITH_COLOUR"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] hasCone,--[[int]] color)return native_invoker.unified_void(ped, hasCone, color, 0xB13DCB4C6FAAD238, "ibi")end, - ["DOES_PED_HAVE_AI_BLIP"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x15B8ECF844EE67ED, "i")end, - ["SET_PED_AI_BLIP_GANG_ID"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] gangId)return native_invoker.unified_void(ped, gangId, 0xE52B8E7F85D39A08, "ii")end, - ["SET_PED_AI_BLIP_HAS_CONE"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x3EED80DFF7325CAA, "ib")end, - ["SET_PED_AI_BLIP_FORCED_ON"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x0C4BBF625CA98C4E, "ib")end, - ["SET_PED_AI_BLIP_NOTICE_RANGE"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] range)return native_invoker.unified_void(ped, range, 0x97C65887D4B37FA9, "if")end, - ["SET_PED_AI_BLIP_SPRITE"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] spriteId)return native_invoker.unified_void(ped, spriteId, 0xFCFACD0DB9D7A57D, "ii")end, - ["GET_AI_PED_PED_BLIP_INDEX"]=--[[Blip (int)]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x7CD934010E115C2C, "i")end, - -- Returns the current AI BLIP for the specified ped - ["GET_AI_PED_VEHICLE_BLIP_INDEX"]=--[[Blip (int)]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x56176892826A4FE8, "i")end, - ["HAS_DIRECTOR_MODE_BEEN_LAUNCHED_BY_CODE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xA277800A9EAE340E, "")end, - ["SET_DIRECTOR_MODE_LAUNCHED_BY_SCRIPT"]=--[[void]] function()return native_invoker.unified_void(0x2632482FD6B9AB87, "")end, - -- If toggle is true, hides special ability bar / character name in the pause menu - -- If toggle is false, shows special ability bar / character name in the pause menu - ["SET_PLAYER_IS_IN_DIRECTOR_MODE"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x808519373FD336A3, "b")end, - ["SET_DIRECTOR_MODE_AVAILABLE"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x04655F9D075D0AE5, "b")end, - ["HIDE_HUDMARKERS_THIS_FRAME"]=--[[void]] function()return native_invoker.unified_void(0x243296A510B562B6, "")end, -} -INTERIOR={ - ["GET_INTERIOR_HEADING"]=--[[float]] function(--[[Interior (int)]] interior)return native_invoker.unified_float(interior, 0xF49B58631D9E22D9, "i")end, - ["GET_INTERIOR_LOCATION_AND_NAMEHASH"]=--[[void]] function(--[[Interior (int)]] interior,--[[Vector3* (pointer)]] position,--[[Hash* (pointer)]] nameHash)return native_invoker.unified_void(interior, position, nameHash, 0x252BDC06B73FA6EA, "ipp")end, - -- Returns the group ID of the specified interior. - -- 0 = default - -- 1 = subway station, subway tracks, sewers - -- 3 = train tunnel under mirror park - -- 5 = tunnel near del perro - -- 6 = train tunnel near chilliad - -- 7 = train tunnel near josiah - -- 8 = train tunnel in sandy shores - -- 9 = braddock tunnel (near chilliad) - -- 12 = tunnel under fort zancudo - -- 14 = train tunnel under cypress flats - -- 18 = rockford plaza parking garage - -- 19 = arcadius parking garage - -- 20 = union depository parking garage - -- 21 = fib parking garage - ["GET_INTERIOR_GROUP_ID"]=--[[int]] function(--[[Interior (int)]] interior)return native_invoker.unified_int(interior, 0xE4A84ABF135EF91A, "i")end, - ["GET_OFFSET_FROM_INTERIOR_IN_WORLD_COORDS"]=--[[Vector3 (vector3)]] function(--[[Interior (int)]] interior,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_vector3(interior, x, y, z, 0x9E3B3E6D66F6E22F, "ifff")end, - ["IS_INTERIOR_SCENE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xBC72B5D7A1CBD54D, "")end, - ["IS_VALID_INTERIOR"]=--[[BOOL (bool)]] function(--[[Interior (int)]] interior)return native_invoker.unified_bool(interior, 0x26B0E73D7EAAF4D3, "i")end, - ["CLEAR_ROOM_FOR_ENTITY"]=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0xB365FC0C4E27FFA7, "i")end, - ["FORCE_ROOM_FOR_ENTITY"]=--[[void]] function(--[[Entity (int)]] entity,--[[Interior (int)]] interior,--[[Hash (int)]] roomHashKey)return native_invoker.unified_void(entity, interior, roomHashKey, 0x52923C4710DD9907, "iii")end, - -- Gets the room hash key from the room that the specified entity is in. Each room in every interior has a unique key. Returns 0 if the entity is outside. - ["GET_ROOM_KEY_FROM_ENTITY"]=--[[Hash (int)]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0x47C2A06D4F5F424B, "i")end, - -- Seems to do the exact same as INTERIOR::GET_ROOM_KEY_FROM_ENTITY - ["GET_KEY_FOR_ENTITY_IN_ROOM"]=--[[Hash (int)]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0x399685DB942336BC, "i")end, - -- Returns the handle of the interior that the entity is in. Returns 0 if outside. - ["GET_INTERIOR_FROM_ENTITY"]=--[[Interior (int)]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0x2107BA504071A6BB, "i")end, - ["RETAIN_ENTITY_IN_INTERIOR"]=--[[void]] function(--[[Entity (int)]] entity,--[[Interior (int)]] interior)return native_invoker.unified_void(entity, interior, 0x82EBB79E258FA2B7, "ii")end, - -- Immediately removes entity from an interior. Like sets entity to `limbo` room. - ["CLEAR_INTERIOR_STATE_OF_ENTITY"]=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0x85D5422B2039A70D, "i")end, - ["FORCE_ACTIVATING_TRACKING_ON_ENTITY"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x38C1CB1CB119A016, "ii")end, - ["FORCE_ROOM_FOR_GAME_VIEWPORT"]=--[[void]] function(--[[int]] interiorID,--[[Hash (int)]] roomHashKey)return native_invoker.unified_void(interiorID, roomHashKey, 0x920D853F3E17F1DA, "ii")end, - -- Example of use (carmod_shop) - -- INTERIOR::SET_ROOM_FOR_GAME_VIEWPORT_BY_NAME("V_CarModRoom"); - ["SET_ROOM_FOR_GAME_VIEWPORT_BY_NAME"]=--[[void]] function(--[[string]] roomName)return native_invoker.unified_void(roomName, 0xAF348AFCB575A441, "s")end, - -- Usage: INTERIOR::SET_ROOM_FOR_GAME_VIEWPORT_BY_KEY(INTERIOR::GET_KEY_FOR_ENTITY_IN_ROOM(PLAYER::PLAYER_PED_ID())); - ["SET_ROOM_FOR_GAME_VIEWPORT_BY_KEY"]=--[[void]] function(--[[Hash (int)]] roomHashKey)return native_invoker.unified_void(roomHashKey, 0x405DC2AEF6AF95B9, "i")end, - ["GET_ROOM_KEY_FOR_GAME_VIEWPORT"]=--[[Hash (int)]] function()return native_invoker.unified_int(0xA6575914D2A0B450, "")end, - ["CLEAR_ROOM_FOR_GAME_VIEWPORT"]=--[[void]] function()return native_invoker.unified_void(0x23B59D8912F94246, "")end, - -- Returns the current interior id from gameplay camera - ["GET_INTERIOR_FROM_PRIMARY_VIEW"]=--[[Interior (int)]] function()return native_invoker.unified_int(0xE7D267EC6CA966C3, "")end, - -- Returns interior ID from specified coordinates. If coordinates are outside, then it returns 0. - -- - -- Example for VB.NET - -- Dim interiorID As Integer = Native.Function.Call(Of Integer)(Hash.GET_INTERIOR_AT_COORDS, X, Y, Z) - ["GET_INTERIOR_AT_COORDS"]=--[[Interior (int)]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_int(x, y, z, 0xB0F7F8663821D9C3, "fff")end, - ["ADD_PICKUP_TO_INTERIOR_ROOM_BY_NAME"]=--[[void]] function(--[[Pickup (int)]] pickup,--[[string]] roomName)return native_invoker.unified_void(pickup, roomName, 0x3F6167F351168730, "is")end, - ["PIN_INTERIOR_IN_MEMORY"]=--[[void]] function(--[[Interior (int)]] interior)return native_invoker.unified_void(interior, 0x2CA429C029CCF247, "i")end, - -- Does something similar to INTERIOR::DISABLE_INTERIOR. - -- - -- You don't fall through the floor but everything is invisible inside and looks the same as when INTERIOR::DISABLE_INTERIOR is used. Peds behaves normally inside. - ["UNPIN_INTERIOR"]=--[[void]] function(--[[Interior (int)]] interior)return native_invoker.unified_void(interior, 0x261CCE7EED010641, "i")end, - ["IS_INTERIOR_READY"]=--[[BOOL (bool)]] function(--[[Interior (int)]] interior)return native_invoker.unified_bool(interior, 0x6726BDCCC1932F0E, "i")end, - -- Only used once in the entire game scripts. - -- Does not actually return anything. - ["SET_INTERIOR_IN_USE"]=--[[BOOL (bool)]] function(--[[Interior (int)]] interior)return native_invoker.unified_bool(interior, 0x4C2330E61D3DEB56, "i")end, - -- Returns the interior ID representing the requested interior at that location (if found?). The supplied interior string is not the same as the one used to load the interior. - -- - -- Use: INTERIOR::UNPIN_INTERIOR(INTERIOR::GET_INTERIOR_AT_COORDS_WITH_TYPE(x, y, z, interior)) - -- - -- Interior types include: "V_Michael", "V_Franklins", "V_Franklinshouse", etc.. you can find them in the scripts. - -- - -- Not a very useful native as you could just use GET_INTERIOR_AT_COORDS instead and get the same result, without even having to specify the interior type. - ["GET_INTERIOR_AT_COORDS_WITH_TYPE"]=--[[Interior (int)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[string]] interiorType)return native_invoker.unified_int(x, y, z, interiorType, 0x05B7A89BD78797FC, "fffs")end, - -- Hashed version of GET_INTERIOR_AT_COORDS_WITH_TYPE - ["GET_INTERIOR_AT_COORDS_WITH_TYPEHASH"]=--[[Interior (int)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[Hash (int)]] typeHash)return native_invoker.unified_int(x, y, z, typeHash, 0xF0F77ADB9F67E79D, "fffi")end, - ["ACTIVATE_INTERIOR_GROUPS_USING_CAMERA"]=--[[void]] function()return native_invoker.unified_void(0x483ACA1176CA93F1, "")end, - -- Returns true if the collision at the specified coords is marked as being outside (false if there's an interior) - ["IS_COLLISION_MARKED_OUTSIDE"]=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_bool(x, y, z, 0xEEA5AC2EDA7C33E8, "fff")end, - ["GET_INTERIOR_FROM_COLLISION"]=--[[Interior (int)]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_int(x, y, z, 0xEC4CF9FCB29A4424, "fff")end, - ["ENABLE_STADIUM_PROBES_THIS_FRAME"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x7ECDF98587E92DEC, "b")end, - -- More info: http://gtaforums.com/topic/836367-adding-props-to-interiors/ - -- - -- Full list of IPLs and interior entity sets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ipls.json - ["ACTIVATE_INTERIOR_ENTITY_SET"]=--[[void]] function(--[[Interior (int)]] interior,--[[string]] entitySetName)return native_invoker.unified_void(interior, entitySetName, 0x55E86AF2712B36A1, "is")end, - -- Full list of IPLs and interior entity sets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ipls.json - ["DEACTIVATE_INTERIOR_ENTITY_SET"]=--[[void]] function(--[[Interior (int)]] interior,--[[string]] entitySetName)return native_invoker.unified_void(interior, entitySetName, 0x420BD37289EEE162, "is")end, - -- Full list of IPLs and interior entity sets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ipls.json - ["IS_INTERIOR_ENTITY_SET_ACTIVE"]=--[[BOOL (bool)]] function(--[[Interior (int)]] interior,--[[string]] entitySetName)return native_invoker.unified_bool(interior, entitySetName, 0x35F7DD45E8C0A16D, "is")end, - -- Full list of IPLs and interior entity sets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ipls.json - ["SET_INTERIOR_ENTITY_SET_TINT_INDEX"]=--[[void]] function(--[[Interior (int)]] interior,--[[string]] entitySetName,--[[int]] color)return native_invoker.unified_void(interior, entitySetName, color, 0xC1F1920BAF281317, "isi")end, - ["REFRESH_INTERIOR"]=--[[void]] function(--[[Interior (int)]] interior)return native_invoker.unified_void(interior, 0x41F37C3427C75AE0, "i")end, - -- This is the native that is used to hide the exterior of GTA Online apartment buildings when you are inside an apartment. - -- - -- More info: http://gtaforums.com/topic/836301-hiding-gta-online-apartment-exteriors/ - ["ENABLE_EXTERIOR_CULL_MODEL_THIS_FRAME"]=--[[void]] function(--[[Hash (int)]] mapObjectHash)return native_invoker.unified_void(mapObjectHash, 0xA97F257D0151A6AB, "i")end, - ["ENABLE_SHADOW_CULL_MODEL_THIS_FRAME"]=--[[void]] function(--[[Hash (int)]] mapObjectHash)return native_invoker.unified_void(mapObjectHash, 0x50C375537449F369, "i")end, - -- Example: - -- This removes the interior from the strip club and when trying to walk inside the player just falls: - -- - -- INTERIOR::DISABLE_INTERIOR(118018, true); - ["DISABLE_INTERIOR"]=--[[void]] function(--[[Interior (int)]] interior,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(interior, toggle, 0x6170941419D7D8EC, "ib")end, - ["IS_INTERIOR_DISABLED"]=--[[BOOL (bool)]] function(--[[Interior (int)]] interior)return native_invoker.unified_bool(interior, 0xBC5115A5A939DD15, "i")end, - -- Does something similar to INTERIOR::DISABLE_INTERIOR - ["CAP_INTERIOR"]=--[[void]] function(--[[Interior (int)]] interior,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(interior, toggle, 0xD9175F941610DB54, "ib")end, - ["IS_INTERIOR_CAPPED"]=--[[BOOL (bool)]] function(--[[Interior (int)]] interior)return native_invoker.unified_bool(interior, 0x92BAC8ACF88CEC26, "i")end, - ["DISABLE_METRO_SYSTEM"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x9E6542F0CE8E70A3, "b")end, - -- Jenkins hash _might_ be 0xFC227584. - ["SET_IS_EXTERIOR_ONLY"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0x7241CCB7D020DB69, "ib")end, -} -ITEMSET={ - ["CREATE_ITEMSET"]=--[[ScrHandle (int)]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_int(p0, 0x35AD299F50D91B24, "b")end, - ["DESTROY_ITEMSET"]=--[[void]] function(--[[ScrHandle (int)]] itemset)return native_invoker.unified_void(itemset, 0xDE18220B1C183EDA, "i")end, - ["IS_ITEMSET_VALID"]=--[[BOOL (bool)]] function(--[[ScrHandle (int)]] itemset)return native_invoker.unified_bool(itemset, 0xB1B1EA596344DFAB, "i")end, - ["ADD_TO_ITEMSET"]=--[[BOOL (bool)]] function(--[[ScrHandle (int)]] item,--[[ScrHandle (int)]] itemset)return native_invoker.unified_bool(item, itemset, 0xE3945201F14637DD, "ii")end, - ["REMOVE_FROM_ITEMSET"]=--[[void]] function(--[[ScrHandle (int)]] item,--[[ScrHandle (int)]] itemset)return native_invoker.unified_void(item, itemset, 0x25E68244B0177686, "ii")end, - ["GET_ITEMSET_SIZE"]=--[[int]] function(--[[ScrHandle (int)]] itemset)return native_invoker.unified_int(itemset, 0xD9127E83ABF7C631, "i")end, - ["GET_INDEXED_ITEM_IN_ITEMSET"]=--[[ScrHandle (int)]] function(--[[int]] index,--[[ScrHandle (int)]] itemset)return native_invoker.unified_int(index, itemset, 0x7A197E2521EE2BAB, "ii")end, - ["IS_IN_ITEMSET"]=--[[BOOL (bool)]] function(--[[ScrHandle (int)]] item,--[[ScrHandle (int)]] itemset)return native_invoker.unified_bool(item, itemset, 0x2D0FC594D1E9C107, "ii")end, - ["CLEAN_ITEMSET"]=--[[void]] function(--[[ScrHandle (int)]] itemset)return native_invoker.unified_void(itemset, 0x41BC0D722FC04221, "i")end, -} -LOADINGSCREEN={ - -- This function is hard-coded to always return 0. - ["LOBBY_AUTO_MULTIPLAYER_MENU"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xF2CA003F167E21D2, "")end, - ["LOBBY_AUTO_MULTIPLAYER_FREEMODE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xEF7D17BC6C85264C, "")end, - ["LOBBY_SET_AUTO_MULTIPLAYER"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xB0C56BD3D808D863, "b")end, - ["LOBBY_AUTO_MULTIPLAYER_EVENT"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x8AA464D4E0F6ACCD, "")end, - ["LOBBY_SET_AUTO_MULTIPLAYER_EVENT"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xFC309E94546FCDB5, "b")end, - ["LOBBY_AUTO_MULTIPLAYER_RANDOM_JOB"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC6DC823253FBB366, "")end, - ["LOBBY_SET_AUTO_MP_RANDOM_JOB"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xC7E7181C09F33B69, "b")end, - ["SHUTDOWN_SESSION_CLEARS_AUTO_MULTIPLAYER"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xFA1E0E893D915215, "b")end, -} -LOCALIZATION={ - -- Same return values as GET_CURRENT_LANGUAGE - ["LOCALIZATION_GET_SYSTEM_LANGUAGE"]=--[[int]] function()return native_invoker.unified_int(0x497420E022796B3F, "")end, - -- 0 = american (en-US) - -- 1 = french (fr-FR) - -- 2 = german (de-DE) - -- 3 = italian (it-IT) - -- 4 = spanish (es-ES) - -- 5 = brazilian (pt-BR) - -- 6 = polish (pl-PL) - -- 7 = russian (ru-RU) - -- 8 = korean (ko-KR) - -- 9 = chinesetrad (zh-TW) - -- 10 = japanese (ja-JP) - -- 11 = mexican (es-MX) - -- 12 = chinesesimp (zh-CN) - ["GET_CURRENT_LANGUAGE"]=--[[int]] function()return native_invoker.unified_int(0x2BDD44CC428A7EAE, "")end, - -- Possible return values: 0, 1, 2 - ["LOCALIZATION_GET_SYSTEM_DATE_TYPE"]=--[[int]] function()return native_invoker.unified_int(0xA8AE43AEC1A61314, "")end, -} -MISC={ - ["GET_ALLOCATED_STACK_SIZE"]=--[[int]] function()return native_invoker.unified_int(0x8B3CA62B1EF19B62, "")end, - ["GET_NUMBER_OF_FREE_STACKS_OF_THIS_SIZE"]=--[[int]] function(--[[int]] stackSize)return native_invoker.unified_int(stackSize, 0xFEAD16FC8F9DFC0F, "i")end, - ["SET_RANDOM_SEED"]=--[[void]] function(--[[int]] seed)return native_invoker.unified_void(seed, 0x444D98F98C11F3EC, "i")end, - -- Maximum value is 1. - -- At a value of 0 the game will still run at a minimum time scale. - -- - -- Slow Motion 1: 0.6 - -- Slow Motion 2: 0.4 - -- Slow Motion 3: 0.2 - ["SET_TIME_SCALE"]=--[[void]] function(--[[float]] timeScale)return native_invoker.unified_void(timeScale, 0x1D408577D440E81E, "f")end, - -- If true, the player can't save the game. - -- - -- - -- If the parameter is true, sets the mission flag to true, if the parameter is false, the function does nothing at all. - -- - -- ^ also, if the mission flag is already set, the function does nothing at all - ["SET_MISSION_FLAG"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xC4301E5121A0ED73, "b")end, - ["GET_MISSION_FLAG"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xA33CDCCDA663159E, "")end, - -- If the parameter is true, sets the random event flag to true, if the parameter is false, the function does nothing at all. - -- Does nothing if the mission flag is set. - ["SET_RANDOM_EVENT_FLAG"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x971927086CFD2158, "b")end, - ["GET_RANDOM_EVENT_FLAG"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xD2D57F1D764117B1, "")end, - -- Returns pointer to an empty string. - ["GET_CONTENT_TO_LOAD"]=--[[string]] function()return native_invoker.unified_string(0x24DA7D7667FD7B09, "")end, - -- Does nothing (it's a nullsub). Seems to be PS4 specific. - ["ACTIVITY_FEED_CREATE"]=--[[void]] function(--[[string]] p0,--[[string]] p1)return native_invoker.unified_void(p0, p1, 0x4DCDF92BF64236CD, "ss")end, - -- Does nothing (it's a nullsub). Seems to be PS4 specific. - ["ACTIVITY_FEED_ADD_SUBSTRING_TO_CAPTION"]=--[[void]] function(--[[string]] p0)return native_invoker.unified_void(p0, 0x31125FD509D9043F, "s")end, - -- Does nothing (it's a nullsub). Seems to be PS4 specific. - ["ACTIVITY_FEED_ADD_LITERAL_SUBSTRING_TO_CAPTION"]=--[[void]] function(--[[string]] p0)return native_invoker.unified_void(p0, 0xEBD3205A207939ED, "s")end, - -- Does nothing (it's a nullsub). Seems to be PS4 specific. - ["ACTIVITY_FEED_ADD_INT_TO_CAPTION"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x97E7E2C04245115B, "i")end, - -- Does nothing (it's a nullsub). Seems to be PS4 specific. - ["ACTIVITY_FEED_LARGE_IMAGE_URL"]=--[[void]] function(--[[string]] p0)return native_invoker.unified_void(p0, 0x916CA67D26FD1E37, "s")end, - -- Does nothing (it's a nullsub). Seems to be PS4 specific. - ["ACTIVITY_FEED_ACTION_START_WITH_COMMAND_LINE"]=--[[void]] function(--[[string]] p0,--[[string]] p1)return native_invoker.unified_void(p0, p1, 0xEB078CA2B5E82ADD, "ss")end, - -- Does nothing (it's a nullsub). Seems to be PS4 specific. - ["ACTIVITY_FEED_ACTION_START_WITH_COMMAND_LINE_ADD"]=--[[void]] function(--[[string]] p0)return native_invoker.unified_void(p0, 0x703CC7F60CBB2B57, "s")end, - -- Does nothing (it's a nullsub). Seems to be PS4 specific. - ["ACTIVITY_FEED_POST"]=--[[void]] function()return native_invoker.unified_void(0x8951EB9C6906D3C8, "")end, - -- Does nothing (it's a nullsub). Seems to be PS4 specific. - -- - -- Used only once in the scripts (ingamehud) with p0 = "AF_GAMEMODE" - ["ACTIVITY_FEED_ONLINE_PLAYED_WITH_POST"]=--[[void]] function(--[[string]] p0)return native_invoker.unified_void(p0, 0xBA4B8D83BDC75551, "s")end, - -- Hardcoded to return false. - ["HAS_RESUMED_FROM_SUSPEND"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xE8B9C0EC9E183F35, "")end, - -- Sets GtaThread+0x14A - ["SET_SCRIPT_HIGH_PRIO"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x65D2EBB47E1CEC21, "b")end, - -- Sets bit 3 in GtaThread+0x150 - ["SET_THIS_IS_A_TRIGGER_SCRIPT"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x6F2135B6129620C1, "b")end, - ["INFORM_CODE_OF_CONTENT_ID_OF_CURRENT_UGC_MISSION"]=--[[void]] function(--[[string]] p0)return native_invoker.unified_void(p0, 0x8D74E26F54B4E5C3, "s")end, - ["GET_BASE_ELEMENT_LOCATION_FROM_METADATA_BLOCK"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[Any* (pointer)]] p1,--[[Any (int)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_bool(p0, p1, p2, p3, 0xB335F761606DB47C, "ppib")end, - -- Returns current weather name hash - ["GET_PREV_WEATHER_TYPE_HASH_NAME"]=--[[Hash (int)]] function()return native_invoker.unified_int(0x564B884A05EC45A3, "")end, - -- Returns weather name hash - ["GET_NEXT_WEATHER_TYPE_HASH_NAME"]=--[[Hash (int)]] function()return native_invoker.unified_int(0x711327CD09C8F162, "")end, - ["IS_PREV_WEATHER_TYPE"]=--[[BOOL (bool)]] function(--[[string]] weatherType)return native_invoker.unified_bool(weatherType, 0x44F28F86433B10A9, "s")end, - ["IS_NEXT_WEATHER_TYPE"]=--[[BOOL (bool)]] function(--[[string]] weatherType)return native_invoker.unified_bool(weatherType, 0x2FAA3A30BEC0F25D, "s")end, - -- The following weatherTypes are used in the scripts: - -- "CLEAR" - -- "EXTRASUNNY" - -- "CLOUDS" - -- "OVERCAST" - -- "RAIN" - -- "CLEARING" - -- "THUNDER" - -- "SMOG" - -- "FOGGY" - -- "XMAS" - -- "SNOW" - -- "SNOWLIGHT" - -- "BLIZZARD" - -- "HALLOWEEN" - -- "NEUTRAL" - ["SET_WEATHER_TYPE_PERSIST"]=--[[void]] function(--[[string]] weatherType)return native_invoker.unified_void(weatherType, 0x704983DF373B198F, "s")end, - -- The following weatherTypes are used in the scripts: - -- "CLEAR" - -- "EXTRASUNNY" - -- "CLOUDS" - -- "OVERCAST" - -- "RAIN" - -- "CLEARING" - -- "THUNDER" - -- "SMOG" - -- "FOGGY" - -- "XMAS" - -- "SNOW" - -- "SNOWLIGHT" - -- "BLIZZARD" - -- "HALLOWEEN" - -- "NEUTRAL" - ["SET_WEATHER_TYPE_NOW_PERSIST"]=--[[void]] function(--[[string]] weatherType)return native_invoker.unified_void(weatherType, 0xED712CA327900C8A, "s")end, - -- The following weatherTypes are used in the scripts: - -- "CLEAR" - -- "EXTRASUNNY" - -- "CLOUDS" - -- "OVERCAST" - -- "RAIN" - -- "CLEARING" - -- "THUNDER" - -- "SMOG" - -- "FOGGY" - -- "XMAS" - -- "SNOW" - -- "SNOWLIGHT" - -- "BLIZZARD" - -- "HALLOWEEN" - -- "NEUTRAL" - ["SET_WEATHER_TYPE_NOW"]=--[[void]] function(--[[string]] weatherType)return native_invoker.unified_void(weatherType, 0x29B487C359E19889, "s")end, - ["SET_WEATHER_TYPE_OVERTIME_PERSIST"]=--[[void]] function(--[[string]] weatherType,--[[float]] time)return native_invoker.unified_void(weatherType, time, 0xFB5045B7C42B75BF, "sf")end, - ["SET_RANDOM_WEATHER_TYPE"]=--[[void]] function()return native_invoker.unified_void(0x8B05F884CF7E8020, "")end, - ["CLEAR_WEATHER_TYPE_PERSIST"]=--[[void]] function()return native_invoker.unified_void(0xCCC39339BEF76CF5, "")end, - ["CLEAR_WEATHER_TYPE_NOW_PERSIST_NETWORK"]=--[[void]] function(--[[int]] milliseconds)return native_invoker.unified_void(milliseconds, 0x0CF97F497FE7D048, "i")end, - ["GET_CURR_WEATHER_STATE"]=--[[void]] function(--[[Hash* (pointer)]] weatherType1,--[[Hash* (pointer)]] weatherType2,--[[float* (pointer)]] percentWeather2)return native_invoker.unified_void(weatherType1, weatherType2, percentWeather2, 0xF3BBE884A14BB413, "ppp")end, - -- Mixes two weather types. If percentWeather2 is set to 0.0f, then the weather will be entirely of weatherType1, if it is set to 1.0f it will be entirely of weatherType2. If it's set somewhere in between, there will be a mixture of weather behaviors. To test, try this in the RPH console, and change the float to different values between 0 and 1: - -- - -- execute "NativeFunction.Natives.x578C752848ECFA0C(Game.GetHashKey(""RAIN""), Game.GetHashKey(""SMOG""), 0.50f); - -- - -- Note that unlike most of the other weather natives, this native takes the hash of the weather name, not the plain string. These are the weather names and their hashes: - -- - -- CLEAR 0x36A83D84 - -- EXTRASUNNY 0x97AA0A79 - -- CLOUDS 0x30FDAF5C - -- OVERCAST 0xBB898D2D - -- RAIN 0x54A69840 - -- CLEARING 0x6DB1A50D - -- THUNDER 0xB677829F - -- SMOG 0x10DCF4B5 - -- FOGGY 0xAE737644 - -- XMAS 0xAAC9C895 - -- SNOWLIGHT 0x23FB812B - -- BLIZZARD 0x27EA2814 - -- - -- - -- - -- - -- - -- /* OLD INVALID INFO BELOW */ - -- Not tested. Based purely on disassembly. Instantly sets the weather to sourceWeather, then transitions to targetWeather over the specified transitionTime in seconds. - -- - -- If an invalid hash is specified for sourceWeather, the current weather type will be used. - -- If an invalid hash is specified for targetWeather, the next weather type will be used. - -- If an invalid hash is specified for both sourceWeather and targetWeather, the function just changes the transition time of the current transition. - ["SET_CURR_WEATHER_STATE"]=--[[void]] function(--[[Hash (int)]] weatherType1,--[[Hash (int)]] weatherType2,--[[float]] percentWeather2)return native_invoker.unified_void(weatherType1, weatherType2, percentWeather2, 0x578C752848ECFA0C, "iif")end, - -- Appears to have an optional bool parameter that is unused in the scripts. - -- - -- If you pass true, something will be set to zero. - ["SET_OVERRIDE_WEATHER"]=--[[void]] function(--[[string]] weatherType)return native_invoker.unified_void(weatherType, 0xA43D5C6FE51ADBEF, "s")end, - -- Identical to SET_OVERRIDE_WEATHER but has an additional BOOL param that sets some weather var to 0 if true - ["SET_OVERRIDE_WEATHEREX"]=--[[void]] function(--[[string]] weatherType,--[[BOOL (bool)]] p1)return native_invoker.unified_void(weatherType, p1, 0x1178E104409FE58C, "sb")end, - ["CLEAR_OVERRIDE_WEATHER"]=--[[void]] function()return native_invoker.unified_void(0x338D2E3477711050, "")end, - ["WATER_OVERRIDE_SET_SHOREWAVEAMPLITUDE"]=--[[void]] function(--[[float]] amplitude)return native_invoker.unified_void(amplitude, 0xB8F87EAD7533B176, "f")end, - ["WATER_OVERRIDE_SET_SHOREWAVEMINAMPLITUDE"]=--[[void]] function(--[[float]] minAmplitude)return native_invoker.unified_void(minAmplitude, 0xC3EAD29AB273ECE8, "f")end, - ["WATER_OVERRIDE_SET_SHOREWAVEMAXAMPLITUDE"]=--[[void]] function(--[[float]] maxAmplitude)return native_invoker.unified_void(maxAmplitude, 0xA7A1127490312C36, "f")end, - ["WATER_OVERRIDE_SET_OCEANNOISEMINAMPLITUDE"]=--[[void]] function(--[[float]] minAmplitude)return native_invoker.unified_void(minAmplitude, 0x31727907B2C43C55, "f")end, - ["WATER_OVERRIDE_SET_OCEANWAVEAMPLITUDE"]=--[[void]] function(--[[float]] amplitude)return native_invoker.unified_void(amplitude, 0x405591EC8FD9096D, "f")end, - ["WATER_OVERRIDE_SET_OCEANWAVEMINAMPLITUDE"]=--[[void]] function(--[[float]] minAmplitude)return native_invoker.unified_void(minAmplitude, 0xF751B16FB32ABC1D, "f")end, - ["WATER_OVERRIDE_SET_OCEANWAVEMAXAMPLITUDE"]=--[[void]] function(--[[float]] maxAmplitude)return native_invoker.unified_void(maxAmplitude, 0xB3E6360DDE733E82, "f")end, - ["WATER_OVERRIDE_SET_RIPPLEBUMPINESS"]=--[[void]] function(--[[float]] bumpiness)return native_invoker.unified_void(bumpiness, 0x7C9C0B1EEB1F9072, "f")end, - ["WATER_OVERRIDE_SET_RIPPLEMINBUMPINESS"]=--[[void]] function(--[[float]] minBumpiness)return native_invoker.unified_void(minBumpiness, 0x6216B116083A7CB4, "f")end, - ["WATER_OVERRIDE_SET_RIPPLEMAXBUMPINESS"]=--[[void]] function(--[[float]] maxBumpiness)return native_invoker.unified_void(maxBumpiness, 0x9F5E6BB6B34540DA, "f")end, - ["WATER_OVERRIDE_SET_RIPPLEDISTURB"]=--[[void]] function(--[[float]] disturb)return native_invoker.unified_void(disturb, 0xB9854DFDE0D833D6, "f")end, - -- This seems to edit the water wave, intensity around your current location. - -- - -- 0.0f = Normal - -- 1.0f = So Calm and Smooth, a boat will stay still. - -- 3.0f = Really Intense. - ["WATER_OVERRIDE_SET_STRENGTH"]=--[[void]] function(--[[float]] strength)return native_invoker.unified_void(strength, 0xC54A08C85AE4D410, "f")end, - ["WATER_OVERRIDE_FADE_IN"]=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0xA8434F1DFF41D6E7, "f")end, - ["WATER_OVERRIDE_FADE_OUT"]=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0xC3C221ADDDE31A11, "f")end, - -- Sets the the normalized wind speed value. The wind speed clamps always at 12.0, SET_WIND sets the wind in a percentage, 0.0 is 0 and 1.0 is 12.0. Setting this value to a negative number resumes the random wind speed changes provided by the game. - ["SET_WIND"]=--[[void]] function(--[[float]] speed)return native_invoker.unified_void(speed, 0xAC3A74E8384A9919, "f")end, - -- Using this native will set the absolute wind speed value. The wind speed clamps to a range of 0.0- 12.0. Setting this value to a negative number resumes the random wind speed changes provided by the game. - ["SET_WIND_SPEED"]=--[[void]] function(--[[float]] speed)return native_invoker.unified_void(speed, 0xEE09ECEDBABE47FC, "f")end, - ["GET_WIND_SPEED"]=--[[float]] function()return native_invoker.unified_float(0xA8CF1CC0AFCD3F12, "")end, - -- The wind direction in radians - -- 180 degrees (PI), wind will blow from the south. Setting this value to a negative number resumes the random wind direction changes provided by the game. - ["SET_WIND_DIRECTION"]=--[[void]] function(--[[float]] direction)return native_invoker.unified_void(direction, 0xEB0F4468467B4528, "f")end, - ["GET_WIND_DIRECTION"]=--[[Vector3 (vector3)]] function()return native_invoker.unified_vector3(0x1F400FEF721170DA, "")end, - -- With an `intensity` higher than `0.5f`, only the creation of puddles gets faster, rain and rain sound won't increase after that. - -- With an `intensity` of `0.0f` rain and rain sounds are disabled and there won't be any new puddles. - -- To use the rain intensity of the current weather, call this native with `-1f` as `intensity`. - ["SET_RAIN"]=--[[void]] function(--[[float]] intensity)return native_invoker.unified_void(intensity, 0x643E26EA6E024D92, "f")end, - ["GET_RAIN_LEVEL"]=--[[float]] function()return native_invoker.unified_float(0x96695E368AD855F3, "")end, - ["SET_SNOW"]=--[[void]] function(--[[float]] level)return native_invoker.unified_void(level, 0x7F06937B0CDCBC1A, "f")end, - ["GET_SNOW_LEVEL"]=--[[float]] function()return native_invoker.unified_float(0xC5868A966E5BE3AE, "")end, - -- creates single lightning+thunder at random position - ["FORCE_LIGHTNING_FLASH"]=--[[void]] function()return native_invoker.unified_void(0xF6062E089251C898, "")end, - ["SET_CLOUD_SETTINGS_OVERRIDE"]=--[[void]] function(--[[string]] p0)return native_invoker.unified_void(p0, 0x02DEAAC8F8EA7FE7, "s")end, - ["PRELOAD_CLOUD_HAT"]=--[[void]] function(--[[string]] name)return native_invoker.unified_void(name, 0x11B56FBBF7224868, "s")end, - -- The following cloudhats are useable: - -- altostratus - -- Cirrus - -- cirrocumulus - -- Clear 01 - -- Cloudy 01 - -- Contrails - -- Horizon - -- horizonband1 - -- horizonband2 - -- horizonband3 - -- horsey - -- Nimbus - -- Puffs - -- RAIN - -- Snowy 01 - -- Stormy 01 - -- stratoscumulus - -- Stripey - -- shower - -- Wispy - -- - ["LOAD_CLOUD_HAT"]=--[[void]] function(--[[string]] name,--[[float]] transitionTime)return native_invoker.unified_void(name, transitionTime, 0xFC4842A34657BFCB, "sf")end, - ["UNLOAD_CLOUD_HAT"]=--[[void]] function(--[[string]] name,--[[float]] p1)return native_invoker.unified_void(name, p1, 0xA74802FB8D0B7814, "sf")end, - ["UNLOAD_ALL_CLOUD_HATS"]=--[[void]] function()return native_invoker.unified_void(0x957E790EA1727B64, "")end, - ["SET_CLOUDS_ALPHA"]=--[[void]] function(--[[float]] opacity)return native_invoker.unified_void(opacity, 0xF36199225D6D8C86, "f")end, - ["GET_CLOUDS_ALPHA"]=--[[float]] function()return native_invoker.unified_float(0x20AC25E781AE4A84, "")end, - ["GET_GAME_TIMER"]=--[[int]] function()return native_invoker.unified_int(0x9CD27B0045628463, "")end, - ["GET_FRAME_TIME"]=--[[float]] function()return native_invoker.unified_float(0x15C40837039FFAF7, "")end, - ["GET_SYSTEM_TIME_STEP"]=--[[float]] function()return native_invoker.unified_float(0xE599A503B3837E1B, "")end, - ["GET_FRAME_COUNT"]=--[[int]] function()return native_invoker.unified_int(0xFC8202EFC642E6F2, "")end, - ["GET_RANDOM_FLOAT_IN_RANGE"]=--[[float]] function(--[[float]] startRange,--[[float]] endRange)return native_invoker.unified_float(startRange, endRange, 0x313CE5879CEB6FCD, "ff")end, - ["GET_RANDOM_INT_IN_RANGE"]=--[[int]] function(--[[int]] startRange,--[[int]] endRange)return native_invoker.unified_int(startRange, endRange, 0xD53343AA4FB7DD28, "ii")end, - ["GET_RANDOM_MWC_INT_IN_RANGE"]=--[[int]] function(--[[int]] startRange,--[[int]] endRange)return native_invoker.unified_int(startRange, endRange, 0xF2D49816A804D134, "ii")end, - -- Gets the ground elevation at the specified position. Note that if the specified position is below ground level, the function will output zero! - -- - -- x: Position on the X-axis to get ground elevation at. - -- y: Position on the Y-axis to get ground elevation at. - -- z: Position on the Z-axis to get ground elevation at. - -- groundZ: The ground elevation at the specified position. - -- ignoreWater: Nearly always 0, very rarely 1 in the scripts: https://gfycat.com/NiftyTatteredCricket - -- - -- Bear in mind this native can only calculate the elevation when the coordinates are within the client's render distance. - ["GET_GROUND_Z_FOR_3D_COORD"]=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float* (pointer)]] groundZ,--[[BOOL (bool)]] ignoreWater,--[[BOOL (bool)]] p5)return native_invoker.unified_bool(x, y, z, groundZ, ignoreWater, p5, 0xC906A7DAB05C8D2B, "fffpbb")end, - ["GET_GROUND_Z_AND_NORMAL_FOR_3D_COORD"]=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float* (pointer)]] groundZ,--[[Vector3* (pointer)]] normal)return native_invoker.unified_bool(x, y, z, groundZ, normal, 0x8BDC7BFC57A81E76, "fffpp")end, - ["GET_GROUND_Z_EXCLUDING_OBJECTS_FOR_3D_COORD"]=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float* (pointer)]] groundZ,--[[BOOL (bool)]] p4,--[[BOOL (bool)]] p5)return native_invoker.unified_bool(x, y, z, groundZ, p4, p5, 0x9E82F0F362881B29, "fffpbb")end, - ["ASIN"]=--[[float]] function(--[[float]] p0)return native_invoker.unified_float(p0, 0xC843060B5765DCE7, "f")end, - ["ACOS"]=--[[float]] function(--[[float]] p0)return native_invoker.unified_float(p0, 0x1D08B970013C34B6, "f")end, - ["TAN"]=--[[float]] function(--[[float]] p0)return native_invoker.unified_float(p0, 0x632106CC96E82E91, "f")end, - ["ATAN"]=--[[float]] function(--[[float]] p0)return native_invoker.unified_float(p0, 0xA9D1795CD5043663, "f")end, - ["ATAN2"]=--[[float]] function(--[[float]] p0,--[[float]] p1)return native_invoker.unified_float(p0, p1, 0x8927CBF9D22261A4, "ff")end, - -- Returns the distance between two three-dimensional points, optionally ignoring the Z values. - -- If useZ is false, only the 2D plane (X-Y) will be considered for calculating the distance. - -- - -- Consider using this faster native instead: SYSTEM::VDIST - DVIST always takes in consideration the 3D coordinates. - ["GET_DISTANCE_BETWEEN_COORDS"]=--[[float]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[BOOL (bool)]] useZ)return native_invoker.unified_float(x1, y1, z1, x2, y2, z2, useZ, 0xF1B760881820C952, "ffffffb")end, - ["GET_ANGLE_BETWEEN_2D_VECTORS"]=--[[float]] function(--[[float]] x1,--[[float]] y1,--[[float]] x2,--[[float]] y2)return native_invoker.unified_float(x1, y1, x2, y2, 0x186FC4BE848E1C92, "ffff")end, - -- dx = x1 - x2 - -- dy = y1 - y2 - ["GET_HEADING_FROM_VECTOR_2D"]=--[[float]] function(--[[float]] dx,--[[float]] dy)return native_invoker.unified_float(dx, dy, 0x2FFB6B224F4B2926, "ff")end, - -- returns a float between 0.0 and 1.0, clamp: sets whether the product should be clamped between the given coordinates - ["GET_RATIO_OF_CLOSEST_POINT_ON_LINE"]=--[[float]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] x3,--[[float]] y3,--[[float]] z3,--[[BOOL (bool)]] clamp)return native_invoker.unified_float(x1, y1, z1, x2, y2, z2, x3, y3, z3, clamp, 0x7F8F6405F4777AF6, "fffffffffb")end, - -- clamp: sets whether the product should be clamped between the given coordinates - ["GET_CLOSEST_POINT_ON_LINE"]=--[[Vector3 (vector3)]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] x3,--[[float]] y3,--[[float]] z3,--[[BOOL (bool)]] clamp)return native_invoker.unified_vector3(x1, y1, z1, x2, y2, z2, x3, y3, z3, clamp, 0x21C235BC64831E5A, "fffffffffb")end, - ["GET_LINE_PLANE_INTERSECTION"]=--[[BOOL (bool)]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[float]] p6,--[[float]] p7,--[[float]] p8,--[[float]] p9,--[[float]] p10,--[[float]] p11,--[[float* (pointer)]] p12)return native_invoker.unified_bool(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, 0xF56DFB7B61BE7276, "ffffffffffffp")end, - ["GET_POINT_AREA_OVERLAP"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5,--[[Any (int)]] p6,--[[Any (int)]] p7,--[[Any (int)]] p8,--[[Any (int)]] p9,--[[Any (int)]] p10,--[[Any (int)]] p11,--[[Any (int)]] p12,--[[Any (int)]] p13)return native_invoker.unified_bool(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, 0xA0AD167E4B39D9A2, "iiiiiiiiiiiiii")end, - -- This sets bit [offset] of [address] to on. - -- - -- The offsets used are different bits to be toggled on and off, typically there is only one address used in a script. - -- - -- Example: - -- MISC::SET_BIT(&bitAddress, 1); - -- - -- To check if this bit has been enabled: - -- MISC::IS_BIT_SET(bitAddress, 1); // will return 1 afterwards - -- - -- Please note, this method may assign a value to [address] when used. - ["SET_BIT"]=--[[void]] function(--[[int* (pointer)]] address,--[[int]] offset)return native_invoker.unified_void(address, offset, 0x933D6A9EEC1BACD0, "pi")end, - -- This sets bit [offset] of [address] to off. - -- - -- Example: - -- MISC::CLEAR_BIT(&bitAddress, 1); - -- - -- To check if this bit has been enabled: - -- MISC::IS_BIT_SET(bitAddress, 1); // will return 0 afterwards - ["CLEAR_BIT"]=--[[void]] function(--[[int* (pointer)]] address,--[[int]] offset)return native_invoker.unified_void(address, offset, 0xE80492A9AC099A93, "pi")end, - -- This native converts its past string to hash. It is hashed using jenkins one at a time method. - ["GET_HASH_KEY"]=--[[Hash (int)]] function(--[[string]] string)return native_invoker.unified_int(string, 0xD24D37CC275948CC, "s")end, - -- This native always come right before SET_ENTITY_QUATERNION where its final 4 parameters are SLERP_NEAR_QUATERNION p9 to p12 - ["SLERP_NEAR_QUATERNION"]=--[[void]] function(--[[float]] t,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] w,--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] w1,--[[float* (pointer)]] outX,--[[float* (pointer)]] outY,--[[float* (pointer)]] outZ,--[[float* (pointer)]] outW)return native_invoker.unified_void(t, x, y, z, w, x1, y1, z1, w1, outX, outY, outZ, outW, 0xF2F6A2FA49278625, "fffffffffpppp")end, - ["IS_AREA_OCCUPIED"]=--[[BOOL (bool)]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[BOOL (bool)]] p6,--[[BOOL (bool)]] p7,--[[BOOL (bool)]] p8,--[[BOOL (bool)]] p9,--[[BOOL (bool)]] p10,--[[Any (int)]] p11,--[[BOOL (bool)]] p12)return native_invoker.unified_bool(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, 0xA61B4DF533DCB56E, "ffffffbbbbbib")end, - ["IS_AREA_OCCUPIED_SLOW"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5,--[[Any (int)]] p6,--[[Any (int)]] p7,--[[Any (int)]] p8,--[[Any (int)]] p9,--[[Any (int)]] p10,--[[Any (int)]] p11,--[[Any (int)]] p12)return native_invoker.unified_bool(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, 0x39455BF4F4F55186, "iiiiiiiiiiiii")end, - -- `range`: The range, seems to not be very accurate during testing. - -- `p4`: Unknown, when set to true it seems to always return true no matter what I try. - -- `checkVehicle`: Check for any vehicles in that area. - -- `checkPeds`: Check for any peds in that area. - -- `ignoreEntity`: This entity will be ignored if it's in the area. Set to 0 if you don't want to exclude any entities. - -- The BOOL parameters that are documented have not been confirmed. They are just documented from what I've found during testing. They may not work as expected in all cases. - -- - -- Returns true if there is anything in that location matching the provided parameters. - ["IS_POSITION_OCCUPIED"]=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] range,--[[BOOL (bool)]] p4,--[[BOOL (bool)]] checkVehicles,--[[BOOL (bool)]] checkPeds,--[[BOOL (bool)]] p7,--[[BOOL (bool)]] p8,--[[Entity (int)]] ignoreEntity,--[[BOOL (bool)]] p10)return native_invoker.unified_bool(x, y, z, range, p4, checkVehicles, checkPeds, p7, p8, ignoreEntity, p10, 0xADCDE75E1C60F32D, "ffffbbbbbib")end, - ["IS_POINT_OBSCURED_BY_A_MISSION_ENTITY"]=--[[BOOL (bool)]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[Any (int)]] p6)return native_invoker.unified_bool(p0, p1, p2, p3, p4, p5, p6, 0xE54E209C35FFA18D, "ffffffi")end, - -- Example: CLEAR_AREA(0, 0, 0, 30, true, false, false, false); - ["CLEAR_AREA"]=--[[void]] function(--[[float]] X,--[[float]] Y,--[[float]] Z,--[[float]] radius,--[[BOOL (bool)]] p4,--[[BOOL (bool)]] ignoreCopCars,--[[BOOL (bool)]] ignoreObjects,--[[BOOL (bool)]] p7)return native_invoker.unified_void(X, Y, Z, radius, p4, ignoreCopCars, ignoreObjects, p7, 0xA56F01F3765B93A0, "ffffbbbb")end, - -- MISC::CLEAR_AREA_LEAVE_VEHICLE_HEALTH(x, y, z, radius, false, false, false, false); seem to make all objects go away, peds, vehicles etc. All booleans set to true doesn't seem to change anything. - ["CLEAR_AREA_LEAVE_VEHICLE_HEALTH"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[BOOL (bool)]] p4,--[[BOOL (bool)]] p5,--[[BOOL (bool)]] p6,--[[BOOL (bool)]] p7)return native_invoker.unified_void(x, y, z, radius, p4, p5, p6, p7, 0x957838AAF91BD12D, "ffffbbbb")end, - -- Example: - -- CLEAR_AREA_OF_VEHICLES(0.0f, 0.0f, 0.0f, 10000.0f, false, false, false, false, false, false); - ["CLEAR_AREA_OF_VEHICLES"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[BOOL (bool)]] p4,--[[BOOL (bool)]] p5,--[[BOOL (bool)]] p6,--[[BOOL (bool)]] p7,--[[BOOL (bool)]] p8,--[[BOOL (bool)]] p9,--[[Any (int)]] p10)return native_invoker.unified_void(x, y, z, radius, p4, p5, p6, p7, p8, p9, p10, 0x01C7B9B38428AEB6, "ffffbbbbbbi")end, - ["CLEAR_ANGLED_AREA_OF_VEHICLES"]=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] width,--[[BOOL (bool)]] p7,--[[BOOL (bool)]] p8,--[[BOOL (bool)]] p9,--[[BOOL (bool)]] p10,--[[BOOL (bool)]] p11,--[[Any (int)]] p12,--[[Any (int)]] p13)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, width, p7, p8, p9, p10, p11, p12, p13, 0x11DB3500F042A8AA, "fffffffbbbbbii")end, - -- I looked through the PC scripts that this site provides you with a link to find. It shows the last param mainly uses, (0, 2, 6, 16, and 17) so I am going to assume it is a type of flag. - ["CLEAR_AREA_OF_OBJECTS"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[int]] flags)return native_invoker.unified_void(x, y, z, radius, flags, 0xDD9B9B385AAC7F5B, "ffffi")end, - -- Example: CLEAR_AREA_OF_PEDS(0, 0, 0, 10000, 1); - ["CLEAR_AREA_OF_PEDS"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[int]] flags)return native_invoker.unified_void(x, y, z, radius, flags, 0xBE31FD6CE464AC59, "ffffi")end, - -- flags appears to always be 0 - ["CLEAR_AREA_OF_COPS"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[int]] flags)return native_invoker.unified_void(x, y, z, radius, flags, 0x04F8FC8FCF58F88D, "ffffi")end, - -- flags is usually 0 in the scripts. - ["CLEAR_AREA_OF_PROJECTILES"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[int]] flags)return native_invoker.unified_void(x, y, z, radius, flags, 0x0A1CB9094635D1A6, "ffffi")end, - -- Possibly used to clear scenario points. - ["CLEAR_SCENARIO_SPAWN_HISTORY"]=--[[void]] function()return native_invoker.unified_void(0x7EC6F9A478A6A512, "")end, - -- ignoreVehicle - bypasses vehicle check of the local player (it will not open if you are in a vehicle and this is set to false) - ["SET_SAVE_MENU_ACTIVE"]=--[[void]] function(--[[BOOL (bool)]] ignoreVehicle)return native_invoker.unified_void(ignoreVehicle, 0xC9BF75D28165FF77, "b")end, - ["GET_STATUS_OF_MANUAL_SAVE"]=--[[int]] function()return native_invoker.unified_int(0x397BAA01068BAA96, "")end, - ["SET_CREDITS_ACTIVE"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xB938B7E6D3C0620C, "b")end, - ["SET_CREDITS_FADE_OUT_WITH_SCREEN"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xB51B9AB9EF81868C, "b")end, - ["HAVE_CREDITS_REACHED_END"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x075F1D57402C93BA, "")end, - ["ARE_CREDITS_RUNNING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xD19C0826DC20CF1C, "")end, - ["TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME"]=--[[void]] function(--[[string]] scriptName)return native_invoker.unified_void(scriptName, 0x9DC711BC69C548DF, "s")end, - ["NETWORK_SET_SCRIPT_IS_SAFE_FOR_NETWORK_GAME"]=--[[void]] function()return native_invoker.unified_void(0x9243BAC96D64C050, "")end, - -- Returns the index of the newly created hospital spawn point. - -- - -- p3 might be radius? - ["ADD_HOSPITAL_RESTART"]=--[[int]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] p3,--[[Any (int)]] p4)return native_invoker.unified_int(x, y, z, p3, p4, 0x1F464EF988465A81, "ffffi")end, - -- The game by default has 5 hospital respawn points. Disabling them all will cause the player to respawn at the last position they were. - ["DISABLE_HOSPITAL_RESTART"]=--[[void]] function(--[[int]] hospitalIndex,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(hospitalIndex, toggle, 0xC8535819C450EBA8, "ib")end, - ["ADD_POLICE_RESTART"]=--[[int]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[Any (int)]] p4)return native_invoker.unified_int(p0, p1, p2, p3, p4, 0x452736765B31FC4B, "ffffi")end, - -- Disables the spawn point at the police house on the specified index. - -- - -- policeIndex: The police house index. - -- toggle: true to enable the spawn point, false to disable. - -- - -- - Nacorpio - ["DISABLE_POLICE_RESTART"]=--[[void]] function(--[[int]] policeIndex,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(policeIndex, toggle, 0x23285DED6EBD7EA3, "ib")end, - ["SET_RESTART_COORD_OVERRIDE"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] heading)return native_invoker.unified_void(x, y, z, heading, 0x706B5EDCAA7FA663, "ffff")end, - ["CLEAR_RESTART_COORD_OVERRIDE"]=--[[void]] function()return native_invoker.unified_void(0xA2716D40842EAF79, "")end, - ["PAUSE_DEATH_ARREST_RESTART"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x2C2B3493FBF51C71, "b")end, - ["IGNORE_NEXT_RESTART"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x21FFB63D8C615361, "b")end, - -- Sets whether the game should fade out after the player dies. - ["SET_FADE_OUT_AFTER_DEATH"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x4A18E01DF2C87B86, "b")end, - -- Sets whether the game should fade out after the player is arrested. - ["SET_FADE_OUT_AFTER_ARREST"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x1E0B4DC0D990A4E7, "b")end, - -- Sets whether the game should fade in after the player dies or is arrested. - ["SET_FADE_IN_AFTER_DEATH_ARREST"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xDA66D2796BA33F12, "b")end, - ["SET_FADE_IN_AFTER_LOAD"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xF3D78F59DFE18D79, "b")end, - -- returns savehouseHandle - ["REGISTER_SAVE_HOUSE"]=--[[int]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] p3,--[[string]] p4,--[[Any (int)]] p5,--[[Any (int)]] p6)return native_invoker.unified_int(x, y, z, p3, p4, p5, p6, 0xC0714D0A7EEECA54, "ffffsii")end, - ["SET_SAVE_HOUSE"]=--[[void]] function(--[[int]] savehouseHandle,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(savehouseHandle, p1, p2, 0x4F548CABEAE553BC, "ibb")end, - ["OVERRIDE_SAVE_HOUSE"]=--[[BOOL (bool)]] function(--[[BOOL (bool)]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[BOOL (bool)]] p5,--[[float]] p6,--[[float]] p7)return native_invoker.unified_bool(p0, p1, p2, p3, p4, p5, p6, p7, 0x1162EA8AE9D24EEA, "bffffbff")end, - ["GET_SAVE_HOUSE_DETAILS_AFTER_SUCCESSFUL_LOAD"]=--[[BOOL (bool)]] function(--[[Vector3* (pointer)]] p0,--[[float* (pointer)]] p1,--[[BOOL* (pointer)]] fadeInAfterLoad,--[[BOOL* (pointer)]] p3)return native_invoker.unified_bool(p0, p1, fadeInAfterLoad, p3, 0xA4A0065E39C9F25C, "pppp")end, - ["DO_AUTO_SAVE"]=--[[void]] function()return native_invoker.unified_void(0x50EEAAD86232EE55, "")end, - -- Returns true if profile setting 208 is equal to 0. - ["GET_IS_AUTO_SAVE_OFF"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x6E04F06094C87047, "")end, - ["IS_AUTO_SAVE_IN_PROGRESS"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x69240733738C19A0, "")end, - ["HAS_CODE_REQUESTED_AUTOSAVE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x2107A3773771186D, "")end, - ["CLEAR_CODE_REQUESTED_AUTOSAVE"]=--[[void]] function()return native_invoker.unified_void(0x06462A961E94B67C, "")end, - ["BEGIN_REPLAY_STATS"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xE0E500246FF73D66, "ii")end, - ["ADD_REPLAY_STAT_VALUE"]=--[[void]] function(--[[Any (int)]] value)return native_invoker.unified_void(value, 0x69FE6DC87BD2A5E9, "i")end, - ["END_REPLAY_STATS"]=--[[void]] function()return native_invoker.unified_void(0xA23E821FBDF8A5F2, "")end, - ["HAVE_REPLAY_STATS_BEEN_STORED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xD642319C54AADEB6, "")end, - ["GET_REPLAY_STAT_MISSION_ID"]=--[[int]] function()return native_invoker.unified_int(0x5B1F2E327B6B6FE1, "")end, - ["GET_REPLAY_STAT_MISSION_TYPE"]=--[[int]] function()return native_invoker.unified_int(0x2B626A0150E4D449, "")end, - ["GET_REPLAY_STAT_COUNT"]=--[[int]] function()return native_invoker.unified_int(0xDC9274A7EF6B2867, "")end, - ["GET_REPLAY_STAT_AT_INDEX"]=--[[int]] function(--[[int]] index)return native_invoker.unified_int(index, 0x8098C8D6597AAE18, "i")end, - ["CLEAR_REPLAY_STATS"]=--[[void]] function()return native_invoker.unified_void(0x1B1AB132A16FDA55, "")end, - ["QUEUE_MISSION_REPEAT_LOAD"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x72DE52178C291CB5, "")end, - -- Shows the screen which is visible before you redo a mission? The game will make a restoration point where you will cameback when the mission is over. - -- Returns 1 if the message isn't currently on screen - ["QUEUE_MISSION_REPEAT_SAVE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x44A0BDC559B35F6E, "")end, - ["QUEUE_MISSION_REPEAT_SAVE_FOR_BENCHMARK_TEST"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xEB2104E905C6F2E9, "")end, - ["GET_STATUS_OF_MISSION_REPEAT_SAVE"]=--[[int]] function()return native_invoker.unified_int(0x2B5E102E4A42F2BF, "")end, - ["IS_MEMORY_CARD_IN_USE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x8A75CE2956274ADD, "")end, - ["SHOOT_SINGLE_BULLET_BETWEEN_COORDS"]=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[int]] damage,--[[BOOL (bool)]] p7,--[[Hash (int)]] weaponHash,--[[Ped (int)]] ownerPed,--[[BOOL (bool)]] isAudible,--[[BOOL (bool)]] isInvisible,--[[float]] speed)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, damage, p7, weaponHash, ownerPed, isAudible, isInvisible, speed, 0x867654CBC7606F2C, "ffffffibiibbf")end, - -- entity - entity to ignore - ["SHOOT_SINGLE_BULLET_BETWEEN_COORDS_IGNORE_ENTITY"]=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[int]] damage,--[[BOOL (bool)]] p7,--[[Hash (int)]] weaponHash,--[[Ped (int)]] ownerPed,--[[BOOL (bool)]] isAudible,--[[BOOL (bool)]] isInvisible,--[[float]] speed,--[[Entity (int)]] entity,--[[Any (int)]] p14)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, damage, p7, weaponHash, ownerPed, isAudible, isInvisible, speed, entity, p14, 0xE3A7742E0B7A2F8B, "ffffffibiibbfii")end, - -- entity - entity to ignore - -- targetEntity - entity to home in on, if the weapon hash provided supports homing - ["SHOOT_SINGLE_BULLET_BETWEEN_COORDS_IGNORE_ENTITY_NEW"]=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[int]] damage,--[[BOOL (bool)]] p7,--[[Hash (int)]] weaponHash,--[[Ped (int)]] ownerPed,--[[BOOL (bool)]] isAudible,--[[BOOL (bool)]] isInvisible,--[[float]] speed,--[[Entity (int)]] entity,--[[BOOL (bool)]] p14,--[[BOOL (bool)]] p15,--[[Entity (int)]] targetEntity,--[[BOOL (bool)]] p17,--[[Any (int)]] p18,--[[Any (int)]] p19,--[[Any (int)]] p20)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, damage, p7, weaponHash, ownerPed, isAudible, isInvisible, speed, entity, p14, p15, targetEntity, p17, p18, p19, p20, 0xBFE5756E7407064A, "ffffffibiibbfibbibiii")end, - -- Gets the dimensions of a model. - -- - -- Calculate (maximum - minimum) to get the size, in which case, Y will be how long the model is. - -- - -- Example from the scripts: MISC::GET_MODEL_DIMENSIONS(ENTITY::GET_ENTITY_MODEL(PLAYER::PLAYER_PED_ID()), &v_1A, &v_17); - ["GET_MODEL_DIMENSIONS"]=--[[void]] function(--[[Hash (int)]] modelHash,--[[Vector3* (pointer)]] minimum,--[[Vector3* (pointer)]] maximum)return native_invoker.unified_void(modelHash, minimum, maximum, 0x03E8D3D5F549087A, "ipp")end, - -- Sets a visually fake wanted level on the user interface. Used by Rockstar's scripts to "override" regular wanted levels and make custom ones while the real wanted level and multipliers are still in effect. - -- - -- Max is 6, anything above this makes it just 6. Also the mini-map gets the red & blue flashing effect. - ["SET_FAKE_WANTED_LEVEL"]=--[[void]] function(--[[int]] fakeWantedLevel)return native_invoker.unified_void(fakeWantedLevel, 0x1454F2448DE30163, "i")end, - ["GET_FAKE_WANTED_LEVEL"]=--[[int]] function()return native_invoker.unified_int(0x4C9296CBCD1B971E, "")end, - ["USING_MISSION_CREATOR"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xF14878FC50BEC6EE, "b")end, - ["ALLOW_MISSION_CREATOR_WARP"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xDEA36202FC3382DF, "b")end, - ["SET_MINIGAME_IN_PROGRESS"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x19E00D7322C6F85B, "b")end, - ["IS_MINIGAME_IN_PROGRESS"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x2B4A15E44DE0F478, "")end, - ["IS_THIS_A_MINIGAME_SCRIPT"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x7B30F65D7B710098, "")end, - -- This function is hard-coded to always return 0. - ["IS_SNIPER_INVERTED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x61A23B7EDA9BDA24, "")end, - -- Returns true if the game is using the metric measurement system (profile setting 227), false if imperial is used. - ["SHOULD_USE_METRIC_MEASUREMENTS"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xD3D15555431AB793, "")end, - ["GET_PROFILE_SETTING"]=--[[int]] function(--[[int]] profileSetting)return native_invoker.unified_int(profileSetting, 0xC488FF2356EA7791, "i")end, - ["ARE_STRINGS_EQUAL"]=--[[BOOL (bool)]] function(--[[string]] string1,--[[string]] string2)return native_invoker.unified_bool(string1, string2, 0x0C515FAB3FF9EA92, "ss")end, - -- Compares two strings up to a specified number of characters. - -- - -- Parameters: - -- str1 - String to be compared. - -- str2 - String to be compared. - -- matchCase - Comparison will be case-sensitive. - -- maxLength - Maximum number of characters to compare. A value of -1 indicates an infinite length. - -- - -- Returns: - -- A value indicating the relationship between the strings: - -- <0 - The first non-matching character in 'str1' is less than the one in 'str2'. (e.g. 'A' < 'B', so result = -1) - -- 0 - The contents of both strings are equal. - -- >0 - The first non-matching character in 'str1' is less than the one in 'str2'. (e.g. 'B' > 'A', so result = 1) - -- - -- Examples: - -- MISC::COMPARE_STRINGS("STRING", "string", false, -1); // 0; equal - -- MISC::COMPARE_STRINGS("TESTING", "test", false, 4); // 0; equal - -- MISC::COMPARE_STRINGS("R2D2", "R2xx", false, 2); // 0; equal - -- MISC::COMPARE_STRINGS("foo", "bar", false, -1); // 4; 'f' > 'b' - -- MISC::COMPARE_STRINGS("A", "A", true, 1); // 0; equal - -- - -- When comparing case-sensitive strings, lower-case characters are greater than upper-case characters: - -- MISC::COMPARE_STRINGS("A", "a", true, 1); // -1; 'A' < 'a' - -- MISC::COMPARE_STRINGS("a", "A", true, 1); // 1; 'a' > 'A' - ["COMPARE_STRINGS"]=--[[int]] function(--[[string]] str1,--[[string]] str2,--[[BOOL (bool)]] matchCase,--[[int]] maxLength)return native_invoker.unified_int(str1, str2, matchCase, maxLength, 0x1E34710ECD4AB0EB, "ssbi")end, - ["ABSI"]=--[[int]] function(--[[int]] value)return native_invoker.unified_int(value, 0xF0D31AD191A74F87, "i")end, - ["ABSF"]=--[[float]] function(--[[float]] value)return native_invoker.unified_float(value, 0x73D57CFFDD12C355, "f")end, - -- Determines whether there is a sniper bullet within the specified coordinates. The coordinates form an axis-aligned bounding box. - ["IS_SNIPER_BULLET_IN_AREA"]=--[[BOOL (bool)]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2)return native_invoker.unified_bool(x1, y1, z1, x2, y2, z2, 0xFEFCF11B01287125, "ffffff")end, - -- Determines whether there is a projectile within the specified coordinates. The coordinates form a rectangle. - -- - -- - Nacorpio - -- - -- - -- ownedByPlayer = only projectiles fired by the player will be detected. - ["IS_PROJECTILE_IN_AREA"]=--[[BOOL (bool)]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[BOOL (bool)]] ownedByPlayer)return native_invoker.unified_bool(x1, y1, z1, x2, y2, z2, ownedByPlayer, 0x5270A8FBC098C3F8, "ffffffb")end, - -- Determines whether there is a projectile of a specific type within the specified coordinates. The coordinates form a axis-aligned bounding box. - ["IS_PROJECTILE_TYPE_IN_AREA"]=--[[BOOL (bool)]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[int]] type,--[[BOOL (bool)]] ownedByPlayer)return native_invoker.unified_bool(x1, y1, z1, x2, y2, z2, type, ownedByPlayer, 0x2E0DC353342C4A6D, "ffffffib")end, - -- See IS_POINT_IN_ANGLED_AREA for the definition of an angled area. - ["IS_PROJECTILE_TYPE_IN_ANGLED_AREA"]=--[[BOOL (bool)]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] width,--[[Any (int)]] p7,--[[BOOL (bool)]] ownedByPlayer)return native_invoker.unified_bool(x1, y1, z1, x2, y2, z2, width, p7, ownedByPlayer, 0xF0BC12401061DEA0, "fffffffib")end, - ["IS_PROJECTILE_TYPE_WITHIN_DISTANCE"]=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[Hash (int)]] projectileHash,--[[float]] radius,--[[BOOL (bool)]] ownedByPlayer)return native_invoker.unified_bool(x, y, z, projectileHash, radius, ownedByPlayer, 0x34318593248C8FB2, "fffifb")end, - ["GET_COORDS_OF_PROJECTILE_TYPE_IN_AREA"]=--[[BOOL (bool)]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[Hash (int)]] projectileHash,--[[Vector3* (pointer)]] projectilePos,--[[BOOL (bool)]] ownedByPlayer)return native_invoker.unified_bool(x1, y1, z1, x2, y2, z2, projectileHash, projectilePos, ownedByPlayer, 0x8D7A43EC6A5FEA45, "ffffffipb")end, - ["GET_COORDS_OF_PROJECTILE_TYPE_IN_ANGLED_AREA"]=--[[BOOL (bool)]] function(--[[float]] vecAngledAreaPoint1X,--[[float]] vecAngledAreaPoint1Y,--[[float]] vecAngledAreaPoint1Z,--[[float]] vecAngledAreaPoint2X,--[[float]] vecAngledAreaPoint2Y,--[[float]] vecAngledAreaPoint2Z,--[[float]] distanceOfOppositeFace,--[[Hash (int)]] weaponType,--[[Vector3* (pointer)]] positionOut,--[[BOOL (bool)]] bIsPlayer)return native_invoker.unified_bool(vecAngledAreaPoint1X, vecAngledAreaPoint1Y, vecAngledAreaPoint1Z, vecAngledAreaPoint2X, vecAngledAreaPoint2Y, vecAngledAreaPoint2Z, distanceOfOppositeFace, weaponType, positionOut, bIsPlayer, 0x3DA8C28346B62CED, "fffffffipb")end, - ["GET_COORDS_OF_PROJECTILE_TYPE_WITHIN_DISTANCE"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[float]] distance,--[[Vector3* (pointer)]] outCoords,--[[BOOL (bool)]] p4)return native_invoker.unified_bool(ped, weaponHash, distance, outCoords, p4, 0xDFB4138EEFED7B81, "iifpb")end, - ["GET_PROJECTILE_OF_PROJECTILE_TYPE_WITHIN_DISTANCE"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[float]] distance,--[[Vector3* (pointer)]] outCoords,--[[Object* (pointer)]] outProjectile,--[[BOOL (bool)]] p5)return native_invoker.unified_bool(ped, weaponHash, distance, outCoords, outProjectile, p5, 0x82FDE6A57EE4EE44, "iifppb")end, - -- For projectiles, see: IS_PROJECTILE_TYPE_IN_ANGLED_AREA - -- See IS_POINT_IN_ANGLED_AREA for the definition of an angled area. - -- Returns True if a bullet, as maintained by a pool within CWeaponManager, has been fired into the defined angled area. - ["IS_BULLET_IN_ANGLED_AREA"]=--[[BOOL (bool)]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] width,--[[BOOL (bool)]] ownedByPlayer)return native_invoker.unified_bool(x1, y1, z1, x2, y2, z2, width, ownedByPlayer, 0x1A8B5F3C01E2B477, "fffffffb")end, - ["IS_BULLET_IN_AREA"]=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[BOOL (bool)]] ownedByPlayer)return native_invoker.unified_bool(x, y, z, radius, ownedByPlayer, 0x3F2023999AD51C1F, "ffffb")end, - ["IS_BULLET_IN_BOX"]=--[[BOOL (bool)]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[BOOL (bool)]] ownedByPlayer)return native_invoker.unified_bool(x1, y1, z1, x2, y2, z2, ownedByPlayer, 0xDE0F6D7450D37351, "ffffffb")end, - -- p3 - possibly radius? - ["HAS_BULLET_IMPACTED_IN_AREA"]=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] p3,--[[BOOL (bool)]] p4,--[[BOOL (bool)]] p5)return native_invoker.unified_bool(x, y, z, p3, p4, p5, 0x9870ACFB89A90995, "ffffbb")end, - ["HAS_BULLET_IMPACTED_IN_BOX"]=--[[BOOL (bool)]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[BOOL (bool)]] p6,--[[BOOL (bool)]] p7)return native_invoker.unified_bool(p0, p1, p2, p3, p4, p5, p6, p7, 0xDC8C5D7CFEAB8394, "ffffffbb")end, - -- PS4 - ["IS_ORBIS_VERSION"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xA72BC0B675B1519E, "")end, - -- XBOX ONE - ["IS_DURANGO_VERSION"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x4D982ADB1978442D, "")end, - ["IS_XBOX360_VERSION"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xF6201B4DAF662A9D, "")end, - ["IS_PS3_VERSION"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xCCA1072C29D096C2, "")end, - ["IS_PC_VERSION"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x48AF36444B965238, "")end, - ["IS_STEAM_VERSION"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x0A27B2B6282F7169, "")end, - -- Used to block some of the prostitute stuff due to laws in Australia. - ["IS_AUSSIE_VERSION"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x9F1935CA1F724008, "")end, - ["IS_JAPANESE_VERSION"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xB8C0BB75D8A77DB3, "")end, - ["IS_XBOX_PLATFORM"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x138679CA01E21F53, "")end, - -- Xbox Series (Scarlett) version... - ["IS_SCARLETT_VERSION"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC545AB1CF97ABB34, "")end, - ["IS_SCE_PLATFORM"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xF911E695C1EB8518, "")end, - -- PS5 (Prospero) version... - ["IS_PROSPERO_VERSION"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x807ABE1AB65C24D2, "")end, - ["IS_STRING_NULL"]=--[[BOOL (bool)]] function(--[[string]] string)return native_invoker.unified_bool(string, 0xF22B6C47C6EAB066, "s")end, - ["IS_STRING_NULL_OR_EMPTY"]=--[[BOOL (bool)]] function(--[[string]] string)return native_invoker.unified_bool(string, 0xCA042B6957743895, "s")end, - -- Returns false if it's a null or empty string or if the string is too long. outInteger will be set to -999 in that case. - -- - -- If all checks have passed successfully, the return value will be set to whatever strtol(string, 0i64, 10); returns. - ["STRING_TO_INT"]=--[[BOOL (bool)]] function(--[[string]] string,--[[int* (pointer)]] outInteger)return native_invoker.unified_bool(string, outInteger, 0x5A5F40FE637EB584, "sp")end, - ["SET_BITS_IN_RANGE"]=--[[void]] function(--[[int* (pointer)]] var,--[[int]] rangeStart,--[[int]] rangeEnd,--[[int]] p3)return native_invoker.unified_void(var, rangeStart, rangeEnd, p3, 0x8EF07E15701D61ED, "piii")end, - ["GET_BITS_IN_RANGE"]=--[[int]] function(--[[int]] var,--[[int]] rangeStart,--[[int]] rangeEnd)return native_invoker.unified_int(var, rangeStart, rangeEnd, 0x53158863FCC0893A, "iii")end, - -- See description of `ADD_STUNT_JUMP_ANGLED` for detailed info. The only difference really is this one does not have the radius (or angle, not sure) floats parameters for entry and landing zones. - ["ADD_STUNT_JUMP"]=--[[int]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] x3,--[[float]] y3,--[[float]] z3,--[[float]] x4,--[[float]] y4,--[[float]] z4,--[[float]] camX,--[[float]] camY,--[[float]] camZ,--[[int]] p15,--[[int]] p16,--[[int]] p17)return native_invoker.unified_int(x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4, camX, camY, camZ, p15, p16, p17, 0x1A992DA297A4630C, "fffffffffffffffiii")end, - -- Creates a new stunt jump. - -- - -- The radius1 and radius2 might actually not be a radius at all, but that's what it seems to me testing them in-game. But they may be 'angle' floats instead, considering this native is named ADD_STUNT_JUMP_**ANGLED**. - -- - -- Info about the specific 'parameter sections': - -- - -- - -- **x1, y1, z1, x2, y2, z2 and radius1:** - -- - -- First coordinates are for the jump entry area, and the radius that will be checked around that area. So if you're not exactly within the coordinates, but you are within the outter radius limit then it will still register as entering the stunt jump. Note as mentioned above, the radius is just a guess, I'm not really sure about it's exact purpose. - -- - -- - -- **x3, y3, z3, x4, y4, z4 and radius2:** - -- - -- Next part is the landing area, again starting with the left bottom (nearest to the stunt jump entry zone) coordinate, and the second one being the top right furthest away part of the landing area. Followed by another (most likely) radius float, this is usually slightly larger than the entry zone 'radius' float value, just because you have quite a lot of places where you can land (I'm guessing). - -- - -- - -- **camX, camY and camZ:** - -- - -- The final coordinate in this native is the Camera position. Rotation and zoom/FOV is managed by the game itself, you just need to provide the camera location. - -- - -- - -- **unk1, unk2 and unk3:** - -- - -- Not sure what these are for, but they're always `150, 0, 0` in decompiled scripts. - -- - -- Here is a list of almost all of the stunt jumps from GTA V (taken from decompiled scripts): https://pastebin.com/EW1jBPkY - ["ADD_STUNT_JUMP_ANGLED"]=--[[int]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] radius1,--[[float]] x3,--[[float]] y3,--[[float]] z3,--[[float]] x4,--[[float]] y4,--[[float]] z4,--[[float]] radius2,--[[float]] camX,--[[float]] camY,--[[float]] camZ,--[[int]] p17,--[[int]] p18,--[[int]] p19)return native_invoker.unified_int(x1, y1, z1, x2, y2, z2, radius1, x3, y3, z3, x4, y4, z4, radius2, camX, camY, camZ, p17, p18, p19, 0xBBE5D803A5360CBF, "fffffffffffffffffiii")end, - -- Toggles some stunt jump stuff. - ["TOGGLE_SHOW_OPTIONAL_STUNT_JUMP_CAMERA"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xFB80AB299D2EE1BD, "b")end, - ["DELETE_STUNT_JUMP"]=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0xDC518000E39DAE1F, "i")end, - ["ENABLE_STUNT_JUMP_SET"]=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0xE369A5783B866016, "i")end, - ["DISABLE_STUNT_JUMP_SET"]=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0xA5272EBEDD4747F6, "i")end, - ["SET_STUNT_JUMPS_CAN_TRIGGER"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xD79185689F8FD5DF, "b")end, - ["IS_STUNT_JUMP_IN_PROGRESS"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x7A3F19700A4D0525, "")end, - ["IS_STUNT_JUMP_MESSAGE_SHOWING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x2272B0A1343129F4, "")end, - ["GET_NUM_SUCCESSFUL_STUNT_JUMPS"]=--[[int]] function()return native_invoker.unified_int(0x996DD1E1E02F1008, "")end, - ["GET_TOTAL_SUCCESSFUL_STUNT_JUMPS"]=--[[int]] function()return native_invoker.unified_int(0x6856EC3D35C81EA4, "")end, - ["CANCEL_STUNT_JUMP"]=--[[void]] function()return native_invoker.unified_void(0xE6B7B0ACD4E4B75E, "")end, - -- Make sure to call this from the correct thread if you're using multiple threads because all other threads except the one which is calling SET_GAME_PAUSED will be paused which means you will lose control and the game remains in paused mode until you exit GTA5.exe - ["SET_GAME_PAUSED"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x577D1284D6873711, "b")end, - ["SET_THIS_SCRIPT_CAN_BE_PAUSED"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xAA391C728106F7AF, "b")end, - ["SET_THIS_SCRIPT_CAN_REMOVE_BLIPS_CREATED_BY_ANY_SCRIPT"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xB98236CAAECEF897, "b")end, - -- This native appears on the cheat_controller script and tracks a combination of buttons, which may be used to toggle cheats in-game. Credits to ThreeSocks for the info. The hash contains the combination, while the "amount" represents the amount of buttons used in a combination. The following page can be used to make a button combination: gta5offset.com/ts/hash/ - -- - -- INT_SCORES_SCORTED was a hash collision - ["HAS_CHEAT_WITH_HASH_BEEN_ACTIVATED"]=--[[BOOL (bool)]] function(--[[Hash (int)]] hash,--[[int]] amount)return native_invoker.unified_bool(hash, amount, 0x071E2A839DE82D90, "ii")end, - -- Get inputted "Cheat code", for example: - -- - -- while (TRUE) - -- { - -- if (MISC::HAS_PC_CHEAT_WITH_HASH_BEEN_ACTIVATED(${fugitive})) - -- { - -- // Do something. - -- } - -- SYSTEM::WAIT(0); - -- } - -- - -- Calling this will also set the last saved string hash to zero. - -- - ["HAS_PC_CHEAT_WITH_HASH_BEEN_ACTIVATED"]=--[[BOOL (bool)]] function(--[[Hash (int)]] hash)return native_invoker.unified_bool(hash, 0x557E43C447E700A8, "i")end, - ["OVERRIDE_FREEZE_FLAGS"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xFA3FFB0EEBC288A3, "b")end, - -- Formerly known as _LOWER_MAP_PROP_DENSITY and wrongly due to idiots as _ENABLE_MP_DLC_MAPS. - -- Sets the maximum prop density and changes a loading screen flag from 'loading story mode' to 'loading GTA Online'. Does not touch DLC map data at all. - -- - -- In fact, I doubt this changes the flag whatsoever, that's the OTHER native idiots use together with this that does so, this one only causes a loading screen to show as it reloads map data. - ["SET_INSTANCE_PRIORITY_MODE"]=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0x9BAE5AD2508DF078, "i")end, - -- Sets an unknown flag used by CScene in determining which entities from CMapData scene nodes to draw, similar to SET_INSTANCE_PRIORITY_MODE. - ["SET_INSTANCE_PRIORITY_HINT"]=--[[void]] function(--[[int]] flag)return native_invoker.unified_void(flag, 0xC5F0A8EBD3F361CE, "i")end, - -- This function is hard-coded to always return 0. - ["IS_FRONTEND_FADING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x7EA2B6AF97ECA6ED, "")end, - -- spawns a few distant/out-of-sight peds, vehicles, animals etc each time it is called - ["POPULATE_NOW"]=--[[void]] function()return native_invoker.unified_void(0x7472BB270D7B4F3E, "")end, - ["GET_INDEX_OF_CURRENT_LEVEL"]=--[[int]] function()return native_invoker.unified_int(0xCBAD6729F7B1F4FC, "")end, - -- level can be from 0 to 3 - -- 0: 9.8 - normal - -- 1: 2.4 - low - -- 2: 0.1 - very low - -- 3: 0.0 - off - ["SET_GRAVITY_LEVEL"]=--[[void]] function(--[[int]] level)return native_invoker.unified_void(level, 0x740E14FAD5842351, "i")end, - ["START_SAVE_DATA"]=--[[void]] function(--[[Any* (pointer)]] p0,--[[Any (int)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xA9575F812C6A7997, "pib")end, - ["STOP_SAVE_DATA"]=--[[void]] function()return native_invoker.unified_void(0x74E20C9145FB66FD, "")end, - ["GET_SIZE_OF_SAVE_DATA"]=--[[int]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_int(p0, 0xA09F896CE912481F, "b")end, - ["REGISTER_INT_TO_SAVE"]=--[[void]] function(--[[Any* (pointer)]] p0,--[[string]] name)return native_invoker.unified_void(p0, name, 0x34C9EE5986258415, "ps")end, - ["REGISTER_INT64_TO_SAVE"]=--[[void]] function(--[[Any* (pointer)]] p0,--[[string]] name)return native_invoker.unified_void(p0, name, 0xA735353C77334EA0, "ps")end, - ["REGISTER_ENUM_TO_SAVE"]=--[[void]] function(--[[Any* (pointer)]] p0,--[[string]] name)return native_invoker.unified_void(p0, name, 0x10C2FA78D0E128A1, "ps")end, - ["REGISTER_FLOAT_TO_SAVE"]=--[[void]] function(--[[Any* (pointer)]] p0,--[[string]] name)return native_invoker.unified_void(p0, name, 0x7CAEC29ECB5DFEBB, "ps")end, - ["REGISTER_BOOL_TO_SAVE"]=--[[void]] function(--[[Any* (pointer)]] p0,--[[string]] name)return native_invoker.unified_void(p0, name, 0xC8F4131414C835A1, "ps")end, - ["REGISTER_TEXT_LABEL_TO_SAVE"]=--[[void]] function(--[[Any* (pointer)]] p0,--[[string]] name)return native_invoker.unified_void(p0, name, 0xEDB1232C5BEAE62F, "ps")end, - -- MISC::REGISTER_TEXT_LABEL_15_TO_SAVE(&a_0._f1, "tlPlateText"); - -- MISC::REGISTER_TEXT_LABEL_15_TO_SAVE(&a_0._f1C, "tlPlateText_pending"); - -- MISC::REGISTER_TEXT_LABEL_15_TO_SAVE(&a_0._f10B, "tlCarAppPlateText"); - ["REGISTER_TEXT_LABEL_15_TO_SAVE"]=--[[void]] function(--[[Any* (pointer)]] p0,--[[string]] name)return native_invoker.unified_void(p0, name, 0x6F7794F28C6B2535, "ps")end, - -- Only found 3 times in decompiled scripts. - -- - -- MISC::REGISTER_TEXT_LABEL_23_TO_SAVE(a_0, "Movie_Name_For_This_Player"); - -- MISC::REGISTER_TEXT_LABEL_23_TO_SAVE(&a_0._fB, "Ringtone_For_This_Player"); - -- MISC::REGISTER_TEXT_LABEL_23_TO_SAVE(&a_0._f1EC4._f12[v_A/*6*/], &v_13); // where v_13 is "MPATMLOGSCRS0" thru "MPATMLOGSCRS15" - ["REGISTER_TEXT_LABEL_23_TO_SAVE"]=--[[void]] function(--[[Any* (pointer)]] p0,--[[string]] name)return native_invoker.unified_void(p0, name, 0x48F069265A0E4BEC, "ps")end, - -- Only found 2 times in decompiled scripts. - -- - -- MISC::REGISTER_TEXT_LABEL_31_TO_SAVE(&a_0._f1F5A._f6[0/*8*/], "TEMPSTAT_LABEL"); // gets saved in a struct called "g_SaveData_STRING_ScriptSaves" - -- MISC::REGISTER_TEXT_LABEL_31_TO_SAVE(&a_0._f4B4[v_1A/*8*/], &v_5); // where v_5 is "Name0" thru "Name9", gets saved in a struct called "OUTFIT_Name" - ["REGISTER_TEXT_LABEL_31_TO_SAVE"]=--[[void]] function(--[[Any* (pointer)]] p0,--[[string]] name)return native_invoker.unified_void(p0, name, 0x8269816F6CFD40F8, "ps")end, - -- MISC::REGISTER_TEXT_LABEL_63_TO_SAVE(a_0, "Thumb_label"); - -- MISC::REGISTER_TEXT_LABEL_63_TO_SAVE(&a_0._f10, "Photo_label"); - -- MISC::REGISTER_TEXT_LABEL_63_TO_SAVE(a_0, "GXTlabel"); - -- MISC::REGISTER_TEXT_LABEL_63_TO_SAVE(&a_0._f21, "StringComp"); - -- MISC::REGISTER_TEXT_LABEL_63_TO_SAVE(&a_0._f43, "SecondStringComp"); - -- MISC::REGISTER_TEXT_LABEL_63_TO_SAVE(&a_0._f53, "ThirdStringComp"); - -- MISC::REGISTER_TEXT_LABEL_63_TO_SAVE(&a_0._f32, "SenderStringComp"); - -- MISC::REGISTER_TEXT_LABEL_63_TO_SAVE(&a_0._f726[v_1A/*16*/], &v_20); // where v_20 is "LastJobTL_0_1" thru "LastJobTL_2_1", gets saved in a struct called "LAST_JobGamer_TL" - -- MISC::REGISTER_TEXT_LABEL_63_TO_SAVE(&a_0._f4B, "PAID_PLAYER"); - -- MISC::REGISTER_TEXT_LABEL_63_TO_SAVE(&a_0._f5B, "RADIO_STATION"); - ["REGISTER_TEXT_LABEL_63_TO_SAVE"]=--[[void]] function(--[[Any* (pointer)]] p0,--[[string]] name)return native_invoker.unified_void(p0, name, 0xFAA457EF263E8763, "ps")end, - ["START_SAVE_STRUCT_WITH_SIZE"]=--[[void]] function(--[[Any* (pointer)]] p0,--[[int]] size,--[[string]] structName)return native_invoker.unified_void(p0, size, structName, 0xBF737600CDDBEADD, "pis")end, - ["STOP_SAVE_STRUCT"]=--[[void]] function()return native_invoker.unified_void(0xEB1774DF12BB9F12, "")end, - ["START_SAVE_ARRAY_WITH_SIZE"]=--[[void]] function(--[[Any* (pointer)]] p0,--[[int]] size,--[[string]] arrayName)return native_invoker.unified_void(p0, size, arrayName, 0x60FE567DF1B1AF9D, "pis")end, - ["STOP_SAVE_ARRAY"]=--[[void]] function()return native_invoker.unified_void(0x04456F95153C6BE4, "")end, - ["COPY_SCRIPT_STRUCT"]=--[[void]] function(--[[Any* (pointer)]] dst,--[[Any* (pointer)]] src,--[[int]] size)return native_invoker.unified_void(dst, src, size, 0x213AEB2B90CBA7AC, "ppi")end, - -- https://alloc8or.re/gta5/doc/enums/DispatchType.txt - ["ENABLE_DISPATCH_SERVICE"]=--[[void]] function(--[[int]] dispatchService,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(dispatchService, toggle, 0xDC0F817884CDD856, "ib")end, - ["BLOCK_DISPATCH_SERVICE_RESOURCE_CREATION"]=--[[void]] function(--[[int]] dispatchService,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(dispatchService, toggle, 0x9B2BD3773123EA2F, "ib")end, - ["GET_NUMBER_RESOURCES_ALLOCATED_TO_WANTED_LEVEL"]=--[[int]] function(--[[int]] dispatchService)return native_invoker.unified_int(dispatchService, 0xEB4A0C2D56441717, "i")end, - -- As for the 'police' incident, it will call police cars to you, but unlike PedsInCavalcades & Merryweather they won't start shooting at you unless you shoot first or shoot at them. The top 2 however seem to cancel theirselves if there is noone dead around you or a fire. I only figured them out as I found out the 3rd param is definately the amountOfPeople and they called incident 3 in scripts with 4 people (which the firetruck has) and incident 5 with 2 people (which the ambulence has). The 4 param I cant say is radius, but for the pedsInCavalcades and Merryweather R* uses 0.0f and for the top 3 (Emergency Services) they use 3.0f. - -- - -- Side Note: It seems calling the pedsInCavalcades or Merryweather then removing it seems to break you from calling the EmergencyEvents and I also believe pedsInCavalcades. (The V cavalcades of course not IV). - -- - -- Side Note 2: I say it breaks as if you call this proper, - -- if(CREATE_INCIDENT) etc it will return false if you do as I said above. - -- ===================================================== - ["CREATE_INCIDENT"]=--[[BOOL (bool)]] function(--[[int]] dispatchService,--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] numUnits,--[[float]] radius,--[[int* (pointer)]] outIncidentID,--[[Any (int)]] p7,--[[Any (int)]] p8)return native_invoker.unified_bool(dispatchService, x, y, z, numUnits, radius, outIncidentID, p7, p8, 0x3F892CAF67444AE7, "ifffifpii")end, - -- As for the 'police' incident, it will call police cars to you, but unlike PedsInCavalcades & Merryweather they won't start shooting at you unless you shoot first or shoot at them. The top 2 however seem to cancel theirselves if there is noone dead around you or a fire. I only figured them out as I found out the 3rd param is definately the amountOfPeople and they called incident 3 in scripts with 4 people (which the firetruck has) and incident 5 with 2 people (which the ambulence has). The 4 param I cant say is radius, but for the pedsInCavalcades and Merryweather R* uses 0.0f and for the top 3 (Emergency Services) they use 3.0f. - -- - -- Side Note: It seems calling the pedsInCavalcades or Merryweather then removing it seems to break you from calling the EmergencyEvents and I also believe pedsInCavalcades. (The V cavalcades of course not IV). - -- - -- Side Note 2: I say it breaks as if you call this proper, - -- if(CREATE_INCIDENT) etc it will return false if you do as I said above. - -- ===================================================== - ["CREATE_INCIDENT_WITH_ENTITY"]=--[[BOOL (bool)]] function(--[[int]] dispatchService,--[[Ped (int)]] ped,--[[int]] numUnits,--[[float]] radius,--[[int* (pointer)]] outIncidentID,--[[Any (int)]] p5,--[[Any (int)]] p6)return native_invoker.unified_bool(dispatchService, ped, numUnits, radius, outIncidentID, p5, p6, 0x05983472F0494E60, "iiifpii")end, - -- Delete an incident with a given id. - -- - -- ======================================================= - -- Correction, I have change this to int, instead of int* - -- as it doesn't use a pointer to the createdIncident. - -- If you try it you will crash (or) freeze. - -- ======================================================= - ["DELETE_INCIDENT"]=--[[void]] function(--[[int]] incidentId)return native_invoker.unified_void(incidentId, 0x556C1AA270D5A207, "i")end, - -- ======================================================= - -- Correction, I have change this to int, instead of int* - -- as it doesn't use a pointer to the createdIncident. - -- If you try it you will crash (or) freeze. - -- ======================================================= - ["IS_INCIDENT_VALID"]=--[[BOOL (bool)]] function(--[[int]] incidentId)return native_invoker.unified_bool(incidentId, 0xC8BC6461E629BEAA, "i")end, - ["SET_INCIDENT_REQUESTED_UNITS"]=--[[void]] function(--[[int]] incidentId,--[[int]] dispatchService,--[[int]] numUnits)return native_invoker.unified_void(incidentId, dispatchService, numUnits, 0xB08B85D860E7BA3C, "iii")end, - ["SET_IDEAL_SPAWN_DISTANCE_FOR_INCIDENT"]=--[[void]] function(--[[int]] incidentId,--[[float]] p1)return native_invoker.unified_void(incidentId, p1, 0xD261BA3E7E998072, "if")end, - -- Finds a position ahead of the player by predicting the players next actions. - -- The positions match path finding node positions. - -- When roads diverge, the position may rapidly change between two or more positions. This is due to the engine not being certain of which path the player will take. - ["FIND_SPAWN_POINT_IN_DIRECTION"]=--[[BOOL (bool)]] function(--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[float]] fwdVecX,--[[float]] fwdVecY,--[[float]] fwdVecZ,--[[float]] distance,--[[Vector3* (pointer)]] spawnPoint)return native_invoker.unified_bool(posX, posY, posZ, fwdVecX, fwdVecY, fwdVecZ, distance, spawnPoint, 0x6874E2190B0C1972, "fffffffp")end, - ["ADD_POP_MULTIPLIER_AREA"]=--[[int]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] p6,--[[float]] p7,--[[BOOL (bool)]] p8,--[[BOOL (bool)]] p9)return native_invoker.unified_int(x1, y1, z1, x2, y2, z2, p6, p7, p8, p9, 0x67F6413D3220E18D, "ffffffffbb")end, - ["DOES_POP_MULTIPLIER_AREA_EXIST"]=--[[BOOL (bool)]] function(--[[int]] id)return native_invoker.unified_bool(id, 0x1327E2FE9746BAEE, "i")end, - ["REMOVE_POP_MULTIPLIER_AREA"]=--[[void]] function(--[[int]] id,--[[BOOL (bool)]] p1)return native_invoker.unified_void(id, p1, 0xB129E447A2EDA4BF, "ib")end, - ["IS_POP_MULTIPLIER_AREA_NETWORKED"]=--[[BOOL (bool)]] function(--[[int]] id)return native_invoker.unified_bool(id, 0x1312F4B242609CE3, "i")end, - -- This native is adding a zone, where you can change density settings. For example, you can add a zone on 0.0, 0.0, 0.0 with radius 900.0 and vehicleMultiplier 0.0, and you will not see any new population vehicle spawned in a radius of 900.0 from 0.0, 0.0, 0.0. Returns the id. You can have only 15 zones at the same time. You can remove zone using REMOVE_POP_MULTIPLIER_SPHERE - ["ADD_POP_MULTIPLIER_SPHERE"]=--[[int]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[float]] pedMultiplier,--[[float]] vehicleMultiplier,--[[BOOL (bool)]] p6,--[[BOOL (bool)]] p7)return native_invoker.unified_int(x, y, z, radius, pedMultiplier, vehicleMultiplier, p6, p7, 0x32C7A7E8C43A1F80, "ffffffbb")end, - ["DOES_POP_MULTIPLIER_SPHERE_EXIST"]=--[[BOOL (bool)]] function(--[[int]] id)return native_invoker.unified_bool(id, 0x171BAFB3C60389F4, "i")end, - -- Removes population multiplier sphere - ["REMOVE_POP_MULTIPLIER_SPHERE"]=--[[void]] function(--[[int]] id,--[[BOOL (bool)]] p1)return native_invoker.unified_void(id, p1, 0xE6869BECDD8F2403, "ib")end, - -- Makes the ped jump around like they're in a tennis match - ["ENABLE_TENNIS_MODE"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle,--[[BOOL (bool)]] p2)return native_invoker.unified_void(ped, toggle, p2, 0x28A04B411933F8A6, "ibb")end, - ["IS_TENNIS_MODE"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x5D5479D115290C3F, "i")end, - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - ["PLAY_TENNIS_SWING_ANIM"]=--[[void]] function(--[[Ped (int)]] ped,--[[string]] animDict,--[[string]] animName,--[[float]] p3,--[[float]] p4,--[[BOOL (bool)]] p5)return native_invoker.unified_void(ped, animDict, animName, p3, p4, p5, 0xE266ED23311F24D4, "issffb")end, - ["GET_TENNIS_SWING_ANIM_COMPLETE"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x17DF68D720AA77F8, "i")end, - ["GET_TENNIS_SWING_ANIM_CAN_BE_INTERRUPTED"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x19BFED045C647C49, "i")end, - ["GET_TENNIS_SWING_ANIM_SWUNG"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xE95B0C7D5BA3B96B, "i")end, - ["PLAY_TENNIS_DIVE_ANIM"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[BOOL (bool)]] p5)return native_invoker.unified_void(ped, p1, p2, p3, p4, p5, 0x8FA9C42FC5D7C64B, "iifffb")end, - -- From the scripts: - -- - -- MISC::SET_TENNIS_MOVE_NETWORK_SIGNAL_FLOAT(sub_aa49(a_0), "ForcedStopDirection", v_E); - -- - -- Related to tennis mode. - ["SET_TENNIS_MOVE_NETWORK_SIGNAL_FLOAT"]=--[[void]] function(--[[Ped (int)]] ped,--[[string]] p1,--[[float]] p2)return native_invoker.unified_void(ped, p1, p2, 0x54F157E0336A3822, "isf")end, - ["RESET_DISPATCH_SPAWN_LOCATION"]=--[[void]] function()return native_invoker.unified_void(0x5896F2BD5683A4E1, "")end, - ["SET_DISPATCH_SPAWN_LOCATION"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(x, y, z, 0xD10F442036302D50, "fff")end, - ["RESET_DISPATCH_IDEAL_SPAWN_DISTANCE"]=--[[void]] function()return native_invoker.unified_void(0x77A84429DD9F0A15, "")end, - ["SET_DISPATCH_IDEAL_SPAWN_DISTANCE"]=--[[void]] function(--[[float]] distance)return native_invoker.unified_void(distance, 0x6FE601A64180D423, "f")end, - ["RESET_DISPATCH_TIME_BETWEEN_SPAWN_ATTEMPTS"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xEB2DB0CAD13154B3, "i")end, - ["SET_DISPATCH_TIME_BETWEEN_SPAWN_ATTEMPTS"]=--[[void]] function(--[[Any (int)]] p0,--[[float]] p1)return native_invoker.unified_void(p0, p1, 0x44F7CBC1BEB3327D, "if")end, - ["SET_DISPATCH_TIME_BETWEEN_SPAWN_ATTEMPTS_MULTIPLIER"]=--[[void]] function(--[[Any (int)]] p0,--[[float]] p1)return native_invoker.unified_void(p0, p1, 0x48838ED9937A15D1, "if")end, - -- To remove, see: REMOVE_DISPATCH_SPAWN_BLOCKING_AREA - -- See IS_POINT_IN_ANGLED_AREA for the definition of an angled area. - ["ADD_DISPATCH_SPAWN_ANGLED_BLOCKING_AREA"]=--[[int]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] width)return native_invoker.unified_int(x1, y1, z1, x2, y2, z2, width, 0x918C7B2D2FF3928B, "fffffff")end, - ["ADD_DISPATCH_SPAWN_SPHERE_BLOCKING_AREA"]=--[[int]] function(--[[float]] x1,--[[float]] y1,--[[float]] x2,--[[float]] y2)return native_invoker.unified_int(x1, y1, x2, y2, 0x2D4259F1FEB81DA9, "ffff")end, - ["REMOVE_DISPATCH_SPAWN_BLOCKING_AREA"]=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0x264AC28B01B353A5, "i")end, - ["RESET_DISPATCH_SPAWN_BLOCKING_AREAS"]=--[[void]] function()return native_invoker.unified_void(0xAC7BFD5C1D83EA75, "")end, - ["RESET_WANTED_RESPONSE_NUM_PEDS_TO_SPAWN"]=--[[void]] function()return native_invoker.unified_void(0xD9F692D349249528, "")end, - ["SET_WANTED_RESPONSE_NUM_PEDS_TO_SPAWN"]=--[[void]] function(--[[int]] p0,--[[int]] p1)return native_invoker.unified_void(p0, p1, 0xE532EC1A63231B4F, "ii")end, - ["ADD_TACTICAL_NAV_MESH_POINT"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(x, y, z, 0xB8721407EE9C3FF6, "fff")end, - ["CLEAR_TACTICAL_NAV_MESH_POINTS"]=--[[void]] function()return native_invoker.unified_void(0xB3CD58CCA6CDA852, "")end, - -- Activates (usused?) riot mode. All NPCs are being hostile to each other (including player). Also the game will give weapons (pistols, smgs) to random NPCs. - ["SET_RIOT_MODE_ENABLED"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x2587A48BC88DFADF, "b")end, - ["DISPLAY_ONSCREEN_KEYBOARD_WITH_LONGER_INITIAL_STRING"]=--[[void]] function(--[[int]] p0,--[[string]] windowTitle,--[[Any* (pointer)]] p2,--[[string]] defaultText,--[[string]] defaultConcat1,--[[string]] defaultConcat2,--[[string]] defaultConcat3,--[[string]] defaultConcat4,--[[string]] defaultConcat5,--[[string]] defaultConcat6,--[[string]] defaultConcat7,--[[int]] maxInputLength)return native_invoker.unified_void(p0, windowTitle, p2, defaultText, defaultConcat1, defaultConcat2, defaultConcat3, defaultConcat4, defaultConcat5, defaultConcat6, defaultConcat7, maxInputLength, 0xCA78CFA0366592FE, "ispssssssssi")end, - -- sfink: note, p0 is set to 6 for PC platform in at least 1 script, or to `unk::_get_ui_language_id() == 0` otherwise. - -- - -- NOTE: windowTitle uses text labels, and an invalid value will display nothing. - -- - -- www.gtaforums.com/topic/788343-vrel-script-hook-v/?p=1067380474 - -- - -- windowTitle's - -- ----------------- - -- CELL_EMAIL_BOD = "Enter your Eyefind message" - -- CELL_EMAIL_BODE = "Message too long. Try again" - -- CELL_EMAIL_BODF = "Forbidden message. Try again" - -- CELL_EMAIL_SOD = "Enter your Eyefind subject" - -- CELL_EMAIL_SODE = "Subject too long. Try again" - -- CELL_EMAIL_SODF = "Forbidden text. Try again" - -- CELL_EMASH_BOD = "Enter your Eyefind message" - -- CELL_EMASH_BODE = "Message too long. Try again" - -- CELL_EMASH_BODF = "Forbidden message. Try again" - -- CELL_EMASH_SOD = "Enter your Eyefind subject" - -- CELL_EMASH_SODE = "Subject too long. Try again" - -- CELL_EMASH_SODF = "Forbidden Text. Try again" - -- FMMC_KEY_TIP10 = "Enter Synopsis" - -- FMMC_KEY_TIP12 = "Enter Custom Team Name" - -- FMMC_KEY_TIP12F = "Forbidden Text. Try again" - -- FMMC_KEY_TIP12N = "Custom Team Name" - -- FMMC_KEY_TIP8 = "Enter Message" - -- FMMC_KEY_TIP8F = "Forbidden Text. Try again" - -- FMMC_KEY_TIP8FS = "Invalid Message. Try again" - -- FMMC_KEY_TIP8S = "Enter Message" - -- FMMC_KEY_TIP9 = "Enter Outfit Name" - -- FMMC_KEY_TIP9F = "Invalid Outfit Name. Try again" - -- FMMC_KEY_TIP9N = "Outfit Name" - -- PM_NAME_CHALL = "Enter Challenge Name" - ["DISPLAY_ONSCREEN_KEYBOARD"]=--[[void]] function(--[[int]] p0,--[[string]] windowTitle,--[[string]] p2,--[[string]] defaultText,--[[string]] defaultConcat1,--[[string]] defaultConcat2,--[[string]] defaultConcat3,--[[int]] maxInputLength)return native_invoker.unified_void(p0, windowTitle, p2, defaultText, defaultConcat1, defaultConcat2, defaultConcat3, maxInputLength, 0x00DC833F2568DBF6, "issssssi")end, - -- Returns the current status of the onscreen keyboard, and updates the output. - -- - -- Status Codes: - -- - -- -1: Keyboard isn't active - -- 0: User still editing - -- 1: User has finished editing - -- 2: User has canceled editing - ["UPDATE_ONSCREEN_KEYBOARD"]=--[[int]] function()return native_invoker.unified_int(0x0CF2B696BBF945AE, "")end, - -- Returns NULL unless UPDATE_ONSCREEN_KEYBOARD() returns 1 in the same tick. - ["GET_ONSCREEN_KEYBOARD_RESULT"]=--[[string]] function()return native_invoker.unified_string(0x8362B09B91893647, "")end, - -- DO NOT use this as it doesn't clean up the text input box properly and your script will get stuck in the UPDATE_ONSCREEN_KEYBOARD() loop. - -- Use FORCE_CLOSE_TEXT_INPUT_BOX instead. - ["CANCEL_ONSCREEN_KEYBOARD"]=--[[void]] function()return native_invoker.unified_void(0x58A39BE597CE99CD, "")end, - -- p0 was always 2 in R* scripts. - -- Called before calling DISPLAY_ONSCREEN_KEYBOARD if the input needs to be saved. - ["NEXT_ONSCREEN_KEYBOARD_RESULT_WILL_DISPLAY_USING_THESE_FONTS"]=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0x3ED1438C1F5C6612, "i")end, - -- Appears to remove stealth kill action from memory - ["ACTION_MANAGER_ENABLE_ACTION"]=--[[void]] function(--[[Hash (int)]] hash,--[[BOOL (bool)]] enable)return native_invoker.unified_void(hash, enable, 0xA6A12939F16D85BE, "ib")end, - -- GET_GAME_TIMER() / 1000 - ["GET_REAL_WORLD_TIME"]=--[[int]] function()return native_invoker.unified_int(0x3F60413F5DF65748, "")end, - ["SUPRESS_RANDOM_EVENT_THIS_FRAME"]=--[[void]] function(--[[int]] eventType,--[[BOOL (bool)]] suppress)return native_invoker.unified_void(eventType, suppress, 0x1EAE0A6E978894A2, "ib")end, - ["SET_EXPLOSIVE_AMMO_THIS_FRAME"]=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0xA66C71C98D5F2CFB, "i")end, - ["SET_FIRE_AMMO_THIS_FRAME"]=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0x11879CDD803D30F4, "i")end, - ["SET_EXPLOSIVE_MELEE_THIS_FRAME"]=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0xFF1BED81BFDC0FE0, "i")end, - ["SET_SUPER_JUMP_THIS_FRAME"]=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0x57FFF03E423A4C0B, "i")end, - ["SET_BEAST_JUMP_THIS_FRAME"]=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0x438822C279B73B93, "i")end, - ["SET_FORCED_JUMP_THIS_FRAME"]=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0xA1183BCFEE0F93D1, "i")end, - ["HAS_GAME_INSTALLED_THIS_SESSION"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x6FDDF453C0C756EC, "")end, - ["SET_TICKER_JOHNMARSTON_IS_DONE"]=--[[void]] function()return native_invoker.unified_void(0xFB00CA71DA386228, "")end, - ["ARE_PROFILE_SETTINGS_VALID"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x5AA3BEFA29F03AD4, "")end, - ["PREVENT_ARREST_STATE_THIS_FRAME"]=--[[void]] function()return native_invoker.unified_void(0xE3D969D2785FFB5E, "")end, - -- Sets the localplayer playerinfo state back to playing (State 0) - -- - -- States are: - -- -1: "Invalid" - -- 0: "Playing" - -- 1: "Died" - -- 2: "Arrested" - -- 3: "Failed Mission" - -- 4: "Left Game" - -- 5: "Respawn" - -- 6: "In MP Cutscene" - ["FORCE_GAME_STATE_PLAYING"]=--[[void]] function()return native_invoker.unified_void(0xC0AA53F866B3134D, "")end, - ["SCRIPT_RACE_INIT"]=--[[void]] function(--[[int]] p0,--[[int]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x0A60017F841A54F2, "iiii")end, - ["SCRIPT_RACE_SHUTDOWN"]=--[[void]] function()return native_invoker.unified_void(0x1FF6BF9A63E5757F, "")end, - ["SCRIPT_RACE_PLAYER_HIT_CHECKPOINT"]=--[[void]] function(--[[Player (int)]] player,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(player, p1, p2, p3, 0x1BB299305C3E8C13, "iiii")end, - ["SCRIPT_RACE_GET_PLAYER_SPLIT_TIME"]=--[[BOOL (bool)]] function(--[[Player (int)]] player,--[[int* (pointer)]] p1,--[[int* (pointer)]] p2)return native_invoker.unified_bool(player, p1, p2, 0x8EF5573A1F801A5C, "ipp")end, - ["START_END_USER_BENCHMARK"]=--[[void]] function()return native_invoker.unified_void(0x92790862E36C2ADA, "")end, - ["STOP_END_USER_BENCHMARK"]=--[[void]] function()return native_invoker.unified_void(0xC7DB36C24634F52B, "")end, - ["RESET_END_USER_BENCHMARK"]=--[[void]] function()return native_invoker.unified_void(0x437138B6A830166A, "")end, - -- Saves the benchmark recording to %USERPROFILE%\Documents\Rockstar Games\GTA V\Benchmarks and submits some metrics. - ["SAVE_END_USER_BENCHMARK"]=--[[void]] function()return native_invoker.unified_void(0x37DEB0AA183FB6D8, "")end, - -- Returns true if the current frontend menu is FE_MENU_VERSION_SP_PAUSE - ["UI_STARTED_END_USER_BENCHMARK"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xEA2F2061875EED90, "")end, - -- Returns true if the current frontend menu is FE_MENU_VERSION_LANDING_MENU - ["LANDING_SCREEN_STARTED_END_USER_BENCHMARK"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x3BBBD13E5041A79E, "")end, - -- Returns true if command line option '-benchmark' is set. - ["IS_COMMANDLINE_END_USER_BENCHMARK"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xA049A5BE0F04F2F8, "")end, - -- Returns value of the '-benchmarkIterations' command line option. - ["GET_BENCHMARK_ITERATIONS"]=--[[int]] function()return native_invoker.unified_int(0x4750FC27570311EC, "")end, - -- Returns value of the '-benchmarkPass' command line option. - ["GET_BENCHMARK_PASS"]=--[[int]] function()return native_invoker.unified_int(0x1B2366C3F2A5C8DF, "")end, - -- In singleplayer it does exactly what the name implies. In FiveM / GTA:Online it shows `Disconnecting from GTA Online` HUD and then quits the game. - ["RESTART_GAME"]=--[[void]] function()return native_invoker.unified_void(0xE574A662ACAEFBB1, "")end, - -- Exits the game and downloads a fresh social club update on next restart. - ["QUIT_GAME"]=--[[void]] function()return native_invoker.unified_void(0xEB6891F03362FB12, "")end, - -- Hardcoded to always return true. - ["HAS_ASYNC_INSTALL_FINISHED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x14832BF2ABA53FC5, "")end, - ["CLEANUP_ASYNC_INSTALL"]=--[[void]] function()return native_invoker.unified_void(0xC79AE21974B01FB2, "")end, - -- aka "constrained" - ["PLM_IS_IN_CONSTRAINED_MODE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x684A41975F077262, "")end, - -- Returns duration of how long the game has been in power-saving mode (aka "constrained") in milliseconds. - ["PLM_GET_CONSTRAINED_DURATION_MS"]=--[[int]] function()return native_invoker.unified_int(0xABB2FA71C83A1B72, "")end, - -- If toggle is true, the ped's head is shown in the pause menu - -- If toggle is false, the ped's head is not shown in the pause menu - ["SET_PLAYER_IS_IN_ANIMAL_FORM"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x4EBB7E87AA0DBED4, "b")end, - -- Although we don't have a jenkins hash for this one, the name is 100% confirmed. - ["GET_IS_PLAYER_IN_ANIMAL_FORM"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x9689123E3F213AA5, "")end, - ["SET_PLAYER_IS_REPEATING_A_MISSION"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x9D8D44ADBBA61EF2, "b")end, - -- Does nothing (it's a nullsub). - ["DISABLE_SCREEN_DIMMING_THIS_FRAME"]=--[[void]] function()return native_invoker.unified_void(0x23227DF0B2115469, "")end, - ["GET_CITY_DENSITY"]=--[[float]] function()return native_invoker.unified_float(0xD10282B6E3751BA0, "")end, - ["USE_ACTIVE_CAMERA_FOR_TIMESLICING_CENTRE"]=--[[void]] function()return native_invoker.unified_void(0x693478ACBD7F18E7, "")end, - ["SET_CONTENT_ID_INDEX"]=--[[void]] function(--[[Hash (int)]] contentId,--[[int]] index)return native_invoker.unified_void(contentId, index, 0x4B82FA6F2D624634, "ii")end, - ["GET_CONTENT_ID_INDEX"]=--[[int]] function(--[[Hash (int)]] contentId)return native_invoker.unified_int(contentId, 0xECF041186C5A94DC, "i")end, - ["_SET_CONTENT_PROP_TYPE"]=--[[void]] function(--[[Hash (int)]] model,--[[int]] type)return native_invoker.unified_void(model, type, 0xBA4583AF4C678A9B, "ii")end, - -- Returns prop type for given model hash - ["_GET_CONTENT_PROP_TYPE"]=--[[int]] function(--[[Hash (int)]] model)return native_invoker.unified_int(model, 0x8BAF8AD59F47AAFC, "i")end, -} -MOBILE={ - -- Creates a mobile phone of the specified type. - -- - -- Possible phone types: - -- - -- 0 - Default phone / Michael's phone - -- 1 - Trevor's phone - -- 2 - Franklin's phone - -- 3 - Unused police phone - -- 4 - Prologue phone - -- - -- Higher values may crash your game. - ["CREATE_MOBILE_PHONE"]=--[[void]] function(--[[int]] phoneType)return native_invoker.unified_void(phoneType, 0xA4E8E696C532FBC7, "i")end, - -- Destroys the currently active mobile phone. - ["DESTROY_MOBILE_PHONE"]=--[[void]] function()return native_invoker.unified_void(0x3BC861DF703E5097, "")end, - -- The minimum/default is 500.0f. If you plan to make it bigger set it's position as well. Also this seems to need to be called in a loop as when you close the phone the scale is reset. If not in a loop you'd need to call it everytime before you re-open the phone. - ["SET_MOBILE_PHONE_SCALE"]=--[[void]] function(--[[float]] scale)return native_invoker.unified_void(scale, 0xCBDD322A73D6D932, "f")end, - -- Last parameter is unknown and always zero. - ["SET_MOBILE_PHONE_ROTATION"]=--[[void]] function(--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ,--[[Any (int)]] p3)return native_invoker.unified_void(rotX, rotY, rotZ, p3, 0xBB779C0CA917E865, "fffi")end, - ["GET_MOBILE_PHONE_ROTATION"]=--[[void]] function(--[[Vector3* (pointer)]] rotation,--[[Vehicle (int)]] p1)return native_invoker.unified_void(rotation, p1, 0x1CEFB61F193070AE, "pi")end, - ["SET_MOBILE_PHONE_POSITION"]=--[[void]] function(--[[float]] posX,--[[float]] posY,--[[float]] posZ)return native_invoker.unified_void(posX, posY, posZ, 0x693A5C6D6734085B, "fff")end, - ["GET_MOBILE_PHONE_POSITION"]=--[[void]] function(--[[Vector3* (pointer)]] position)return native_invoker.unified_void(position, 0x584FDFDA48805B86, "p")end, - -- If bool Toggle = true so the mobile is hide to screen. - -- If bool Toggle = false so the mobile is show to screen. - ["SCRIPT_IS_MOVING_MOBILE_PHONE_OFFSCREEN"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xF511F759238A5122, "b")end, - -- This one is weird and seems to return a TRUE state regardless of whether the phone is visible on screen or tucked away. - -- - -- - -- I can confirm the above. This function is hard-coded to always return 1. - ["CAN_PHONE_BE_SEEN_ON_SCREEN"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC4E2813898C97A4B, "")end, - ["SET_MOBILE_PHONE_DOF_STATE"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x375A706A5C2FD084, "b")end, - -- For move the finger of player, the value of int goes 1 at 5. - ["CELL_SET_INPUT"]=--[[void]] function(--[[int]] direction)return native_invoker.unified_void(direction, 0x95C9E72F3D7DEC9B, "i")end, - -- if the bool "Toggle" is "true" so the phone is lean. - -- if the bool "Toggle" is "false" so the phone is not lean. - ["CELL_HORIZONTAL_MODE_TOGGLE"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x44E44169EF70138E, "b")end, - ["CELL_CAM_ACTIVATE"]=--[[void]] function(--[[BOOL (bool)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0xFDE8F069C542D126, "bb")end, - ["CELL_CAM_ACTIVATE_SELFIE_MODE"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x015C49A93E3E086E, "b")end, - ["CELL_CAM_ACTIVATE_SHALLOW_DOF_MODE"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xA2CCBE62CD4C91A4, "b")end, - ["CELL_CAM_SET_SELFIE_MODE_SIDE_OFFSET_SCALING"]=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0x1B0B4AEED5B9B41C, "f")end, - ["CELL_CAM_SET_SELFIE_MODE_HORZ_PAN_OFFSET"]=--[[void]] function(--[[float]] horizontalPan)return native_invoker.unified_void(horizontalPan, 0x53F4892D18EC90A4, "f")end, - ["CELL_CAM_SET_SELFIE_MODE_VERT_PAN_OFFSET"]=--[[void]] function(--[[float]] vertPan)return native_invoker.unified_void(vertPan, 0x3117D84EFA60F77B, "f")end, - ["CELL_CAM_SET_SELFIE_MODE_ROLL_OFFSET"]=--[[void]] function(--[[float]] roll)return native_invoker.unified_void(roll, 0x15E69E2802C24B8D, "f")end, - ["CELL_CAM_SET_SELFIE_MODE_DISTANCE_SCALING"]=--[[void]] function(--[[float]] distanceScaling)return native_invoker.unified_void(distanceScaling, 0xAC2890471901861C, "f")end, - ["CELL_CAM_SET_SELFIE_MODE_HEAD_YAW_OFFSET"]=--[[void]] function(--[[float]] yaw)return native_invoker.unified_void(yaw, 0xD6ADE981781FCA09, "f")end, - ["CELL_CAM_SET_SELFIE_MODE_HEAD_ROLL_OFFSET"]=--[[void]] function(--[[float]] roll)return native_invoker.unified_void(roll, 0xF1E22DC13F5EEBAD, "f")end, - ["CELL_CAM_SET_SELFIE_MODE_HEAD_PITCH_OFFSET"]=--[[void]] function(--[[float]] pitch)return native_invoker.unified_void(pitch, 0x466DA42C89865553, "f")end, - ["CELL_CAM_IS_CHAR_VISIBLE_NO_FACE_CHECK"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x439E9BC95B7E7FBE, "i")end, - ["GET_MOBILE_PHONE_RENDER_ID"]=--[[void]] function(--[[int* (pointer)]] renderId)return native_invoker.unified_void(renderId, 0xB4A53E05F68B6FA1, "p")end, -} -MONEY={ - ["NETWORK_INITIALIZE_CASH"]=--[[void]] function(--[[int]] wallet,--[[int]] bank)return native_invoker.unified_void(wallet, bank, 0x3DA5ECD1A56CBA6D, "ii")end, - -- Note the 2nd parameters are always 1, 0. I have a feeling it deals with your money, wallet, bank. So when you delete the character it of course wipes the wallet cash at that time. So if that was the case, it would be eg, NETWORK_DELETE_CHARACTER(characterIndex, deleteWalletCash, deleteBankCash); - ["NETWORK_DELETE_CHARACTER"]=--[[void]] function(--[[int]] characterSlot,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(characterSlot, p1, p2, 0x05A50AF38947EB8D, "ibb")end, - ["NETWORK_MANUAL_DELETE_CHARACTER"]=--[[void]] function(--[[int]] characterSlot)return native_invoker.unified_void(characterSlot, 0x821418C727FCACD7, "i")end, - ["NETWORK_GET_PLAYER_IS_HIGH_EARNER"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xFB2456B2040A6A67, "")end, - ["NETWORK_CLEAR_CHARACTER_WALLET"]=--[[void]] function(--[[int]] characterSlot)return native_invoker.unified_void(characterSlot, 0xA921DED15FDF28F5, "i")end, - ["NETWORK_GIVE_PLAYER_JOBSHARE_CASH"]=--[[void]] function(--[[int]] amount,--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_void(amount, gamerHandle, 0xFB18DF9CB95E0105, "ip")end, - ["NETWORK_RECEIVE_PLAYER_JOBSHARE_CASH"]=--[[void]] function(--[[int]] value,--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_void(value, gamerHandle, 0x56A3B51944C50598, "ip")end, - ["NETWORK_CAN_SHARE_JOB_CASH"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x1C2473301B1C66BA, "")end, - -- index - -- ------- - -- See function sub_1005 in am_boat_taxi.ysc - -- - -- context - -- ---------- - -- "BACKUP_VAGOS" - -- "BACKUP_LOST" - -- "BACKUP_FAMILIES" - -- "HIRE_MUGGER" - -- "HIRE_MERCENARY" - -- "BUY_CARDROPOFF" - -- "HELI_PICKUP" - -- "BOAT_PICKUP" - -- "CLEAR_WANTED" - -- "HEAD_2_HEAD" - -- "CHALLENGE" - -- "SHARE_LAST_JOB" - -- "DEFAULT" - -- - -- reason - -- --------- - -- "NOTREACHTARGET" - -- "TARGET_ESCAPE" - -- "DELIVERY_FAIL" - -- "NOT_USED" - -- "TEAM_QUIT" - -- "SERVER_ERROR" - -- "RECEIVE_LJ_L" - -- "CHALLENGE_PLAYER_LEFT" - -- "DEFAULT" - -- - -- unk - -- ----- - -- Unknown bool value - -- - -- - ["NETWORK_REFUND_CASH"]=--[[void]] function(--[[int]] index,--[[string]] context,--[[string]] reason,--[[BOOL (bool)]] p3)return native_invoker.unified_void(index, context, reason, p3, 0xF9C812CD7C46E817, "issb")end, - ["NETWORK_DEDUCT_CASH"]=--[[void]] function(--[[int]] amount,--[[string]] p1,--[[string]] p2,--[[BOOL (bool)]] p3,--[[BOOL (bool)]] p4,--[[BOOL (bool)]] p5)return native_invoker.unified_void(amount, p1, p2, p3, p4, p5, 0x18B7AE224B087E26, "issbbb")end, - ["NETWORK_MONEY_CAN_BET"]=--[[BOOL (bool)]] function(--[[int]] amount,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_bool(amount, p1, p2, 0x81404F3DC124FE5B, "ibb")end, - ["NETWORK_CAN_BET"]=--[[BOOL (bool)]] function(--[[int]] amount)return native_invoker.unified_bool(amount, 0x3A54E33660DED67F, "i")end, - -- GTAO_CASINO_HOUSE - -- GTAO_CASINO_INSIDETRACK - -- GTAO_CASINO_LUCKYWHEEL - -- GTAO_CASINO_BLACKJACK - -- GTAO_CASINO_ROULETTE - -- GTAO_CASINO_SLOTS - -- GTAO_CASINO_PURCHASE_CHIPS - -- - -- NETWORK_C* - ["NETWORK_CASINO_CAN_BET"]=--[[BOOL (bool)]] function(--[[Hash (int)]] hash)return native_invoker.unified_bool(hash, 0x158C16F5E4CF41F8, "i")end, - ["NETWORK_CASINO_CAN_BET_PVC"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x394DCDB9E836B7A9, "")end, - ["NETWORK_CASINO_CAN_BET_AMOUNT"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0xF62F6D9528358FE4, "i")end, - ["NETWORK_CASINO_CAN_BUY_CHIPS_PVC"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x8968D4D8C6C40C11, "")end, - ["NETWORK_CASINO_BUY_CHIPS"]=--[[BOOL (bool)]] function(--[[int]] p0,--[[int]] p1)return native_invoker.unified_bool(p0, p1, 0x3BD101471C7F9EEC, "ii")end, - ["NETWORK_CASINO_SELL_CHIPS"]=--[[BOOL (bool)]] function(--[[int]] p0,--[[int]] p1)return native_invoker.unified_bool(p0, p1, 0xED44897CB336F480, "ii")end, - -- Does nothing (it's a nullsub). - ["NETWORK_DEFER_CASH_TRANSACTIONS_UNTIL_SHOP_SAVE"]=--[[void]] function()return native_invoker.unified_void(0xCD0F5B5D932AE473, "")end, - ["CAN_PAY_AMOUNT_TO_BOSS"]=--[[BOOL (bool)]] function(--[[int]] p0,--[[int]] p1,--[[int]] amount,--[[int* (pointer)]] p3)return native_invoker.unified_bool(p0, p1, amount, p3, 0x9777734DAD16992F, "iiip")end, - ["NETWORK_EARN_FROM_PICKUP"]=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0xED1517D3AF17C698, "i")end, - ["NETWORK_EARN_FROM_CASHING_OUT"]=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0x718FBBF67414FA36, "i")end, - ["NETWORK_EARN_FROM_GANGATTACK_PICKUP"]=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0xA03D4ACE0A3284CE, "i")end, - ["NETWORK_EARN_ASSASSINATE_TARGET_KILLED"]=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0xFA700D8A9905F78A, "i")end, - -- For the money bags that drop a max of $40,000. Often called 40k bags. - -- - -- Most likely NETWORK_EARN_FROM_ROB*** - ["NETWORK_EARN_FROM_ROB_ARMORED_CARS"]=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0xF514621E8EA463D0, "i")end, - ["NETWORK_EARN_FROM_CRATE_DROP"]=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0xB1CC1B9EC3007A2A, "i")end, - ["NETWORK_EARN_FROM_BETTING"]=--[[void]] function(--[[int]] amount,--[[string]] p1)return native_invoker.unified_void(amount, p1, 0x827A5BA1A44ACA6D, "is")end, - ["NETWORK_EARN_FROM_JOB"]=--[[void]] function(--[[int]] amount,--[[string]] p1)return native_invoker.unified_void(amount, p1, 0xB2CC4836834E8A98, "is")end, - ["NETWORK_EARN_FROM_JOBX2"]=--[[void]] function(--[[int]] amount,--[[string]] p1)return native_invoker.unified_void(amount, p1, 0xDEBBF584665411D0, "is")end, - ["NETWORK_EARN_FROM_PREMIUM_JOB"]=--[[void]] function(--[[int]] amount,--[[string]] p1)return native_invoker.unified_void(amount, p1, 0xC8407624CEF2354B, "is")end, - ["NETWORK_EARN_FROM_BEND_JOB"]=--[[void]] function(--[[int]] amount,--[[string]] heistHash)return native_invoker.unified_void(amount, heistHash, 0x61326EE6DF15B0CA, "is")end, - ["NETWORK_EARN_FROM_CHALLENGE_WIN"]=--[[void]] function(--[[Any (int)]] p0,--[[Any* (pointer)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x2B171E6B2F64D8DF, "ipb")end, - ["NETWORK_EARN_FROM_BOUNTY"]=--[[void]] function(--[[int]] amount,--[[Any* (pointer)]] gamerHandle,--[[Any* (pointer)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(amount, gamerHandle, p2, p3, 0x131BB5DA15453ACF, "ippi")end, - ["NETWORK_EARN_FROM_IMPORT_EXPORT"]=--[[void]] function(--[[int]] amount,--[[Hash (int)]] modelHash)return native_invoker.unified_void(amount, modelHash, 0xF92A014A634442D6, "ii")end, - ["NETWORK_EARN_FROM_HOLDUPS"]=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0x45B8154E077D9E4D, "i")end, - ["NETWORK_EARN_FROM_PROPERTY"]=--[[void]] function(--[[int]] amount,--[[Hash (int)]] propertyName)return native_invoker.unified_void(amount, propertyName, 0x849648349D77F5C5, "ii")end, - -- DSPORT - ["NETWORK_EARN_FROM_AI_TARGET_KILL"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x515B4A22E4D3C6D7, "ii")end, - ["NETWORK_EARN_FROM_NOT_BADSPORT"]=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0x4337511FA8221D36, "i")end, - ["NETWORK_EARN_FROM_VEHICLE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5,--[[Any (int)]] p6,--[[Any (int)]] p7)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, p7, 0xB539BD8A4C1EECF8, "iiiiiiii")end, - ["NETWORK_EARN_FROM_PERSONAL_VEHICLE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5,--[[Any (int)]] p6,--[[Any (int)]] p7,--[[Any (int)]] p8)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, p7, p8, 0x3F4D00167E41E0AD, "iiiiiiiii")end, - -- type either Monthly,Weekly,Daily - ["NETWORK_EARN_FROM_DAILY_OBJECTIVES"]=--[[void]] function(--[[int]] amount,--[[string]] type,--[[int]] characterSlot)return native_invoker.unified_void(amount, type, characterSlot, 0x6EA318C91C1A8786, "isi")end, - -- Example for p1: "AM_DISTRACT_COPS" - ["NETWORK_EARN_FROM_AMBIENT_JOB"]=--[[void]] function(--[[int]] p0,--[[string]] p1,--[[Any* (pointer)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xFB6DB092FBAE29E6, "isp")end, - ["NETWORK_EARN_FROM_JOB_BONUS"]=--[[void]] function(--[[Any (int)]] p0,--[[Any* (pointer)]] p1,--[[Any* (pointer)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x6816FB4416760775, "ipp")end, - ["NETWORK_EARN_FROM_CRIMINAL_MASTERMIND"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xFA009A62990671D4, "iii")end, - ["NETWORK_EARN_HEIST_AWARD"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x9D4FDBB035229669, "iii")end, - ["NETWORK_EARN_FIRST_TIME_BONUS"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x11B0A20C493F7E36, "iii")end, - ["NETWORK_EARN_GOON"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xCDA1C62BE2777802, "iii")end, - ["NETWORK_EARN_BOSS"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x08B0CA7A6AB3AC32, "iii")end, - ["NETWORK_EARN_AGENCY"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x0CB1BE0633C024A8, "iiii")end, - ["NETWORK_EARN_FROM_WAREHOUSE"]=--[[void]] function(--[[int]] amount,--[[int]] id)return native_invoker.unified_void(amount, id, 0x3E4ADAFF1830F146, "ii")end, - ["NETWORK_EARN_FROM_CONTRABAND"]=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1)return native_invoker.unified_void(amount, p1, 0xECA658CE2A4E5A72, "ii")end, - ["NETWORK_EARN_FROM_DESTROYING_CONTRABAND"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x84C0116D012E8FC2, "iii")end, - ["NETWORK_EARN_FROM_SMUGGLER_WORK"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, 0x6B7E4FB50D5F3D65, "iiiiii")end, - ["NETWORK_EARN_FROM_HANGAR_TRADE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x31BA138F6304FB9F, "ii")end, - ["NETWORK_EARN_PURCHASE_CLUB_HOUSE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x55A1E095DB052FA5, "ii")end, - ["NETWORK_EARN_FROM_BUSINESS_PRODUCT"]=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(amount, p1, p2, p3, 0x8586789730B10CAF, "iiii")end, - ["NETWORK_EARN_FROM_VEHICLE_EXPORT"]=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(amount, p1, p2, 0xEDEAD9A91EC768B3, "iii")end, - ["NETWORK_EARN_SMUGGLER_AGENCY"]=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(amount, p1, p2, p3, 0xDEE612F2D71B0308, "iiii")end, - ["NETWORK_EARN_BOUNTY_HUNTER_REWARD"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xF6B170F9A02E9E87, "i")end, - ["NETWORK_EARN_FROM_BUSINESS_BATTLE"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x42FCE14F50F27291, "i")end, - ["NETWORK_EARN_FROM_CLUB_MANAGEMENT_PARTICIPATION"]=--[[void]] function(--[[Any (int)]] p0,--[[int]] p1)return native_invoker.unified_void(p0, p1, 0xA75EAC69F59E96E7, "ii")end, - ["NETWORK_EARN_FROM_FMBB_PHONECALL_MISSION"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xC5156361F26E2212, "i")end, - ["NETWORK_EARN_FROM_BUSINESS_HUB_SELL"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x0B39CF0D53F1C883, "iii")end, - ["NETWORK_EARN_FROM_FMBB_BOSS_WORK"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x1FDA0AA679C9919B, "i")end, - ["NETWORK_EARN_FMBB_WAGE_BONUS"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xFFFBA1B1F7C0B6F4, "i")end, - ["NETWORK_CAN_SPEND_MONEY"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5)return native_invoker.unified_bool(p0, p1, p2, p3, p4, p5, 0xAB3CAA6B422164DA, "ibbbii")end, - ["NETWORK_CAN_SPEND_MONEY2"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3,--[[Any* (pointer)]] p4,--[[Any (int)]] p5,--[[Any (int)]] p6)return native_invoker.unified_bool(p0, p1, p2, p3, p4, p5, p6, 0x7303E27CC6532080, "ibbbpii")end, - ["NETWORK_BUY_ITEM"]=--[[void]] function(--[[int]] amount,--[[Hash (int)]] item,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[BOOL (bool)]] p4,--[[string]] item_name,--[[Any (int)]] p6,--[[Any (int)]] p7,--[[Any (int)]] p8,--[[BOOL (bool)]] p9)return native_invoker.unified_void(amount, item, p2, p3, p4, item_name, p6, p7, p8, p9, 0xF0077C797F66A355, "iiiibsiiib")end, - ["NETWORK_SPENT_TAXI"]=--[[void]] function(--[[int]] amount,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(amount, p1, p2, p3, p4, 0x17C3A7D31EAE39F9, "ibbii")end, - ["NETWORK_PAY_EMPLOYEE_WAGE"]=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x5FD5ED82CBBE9989, "ibb")end, - ["NETWORK_PAY_MATCH_ENTRY_FEE"]=--[[void]] function(--[[int]] amount,--[[string]] matchId,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(amount, matchId, p2, p3, 0x9346E14F2AF74D46, "isbb")end, - ["NETWORK_SPENT_BETTING"]=--[[void]] function(--[[int]] amount,--[[int]] p1,--[[string]] matchId,--[[BOOL (bool)]] p3,--[[BOOL (bool)]] p4)return native_invoker.unified_void(amount, p1, matchId, p3, p4, 0x1C436FD11FFA692F, "iisbb")end, - ["NETWORK_SPENT_WAGER"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[int]] amount)return native_invoker.unified_void(p0, p1, amount, 0xD99DB210089617FE, "iii")end, - ["NETWORK_SPENT_IN_STRIPCLUB"]=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[Any (int)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xEE99784E4467689C, "ibib")end, - ["NETWORK_BUY_HEALTHCARE"]=--[[void]] function(--[[int]] cost,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(cost, p1, p2, 0xD9B067E55253E3DD, "ibb")end, - -- p1 = 0 (always) - -- p2 = 1 (always) - ["NETWORK_BUY_AIRSTRIKE"]=--[[void]] function(--[[int]] cost,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(cost, p1, p2, p3, 0x763B4BD305338F19, "ibbi")end, - ["NETWORK_BUY_BACKUP_GANG"]=--[[void]] function(--[[int]] p0,--[[int]] p1,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3,--[[int]] npcProvider)return native_invoker.unified_void(p0, p1, p2, p3, npcProvider, 0xA3EDDAA42411D3B9, "iibbi")end, - -- p1 = 0 (always) - -- p2 = 1 (always) - ["NETWORK_BUY_HELI_STRIKE"]=--[[void]] function(--[[int]] cost,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(cost, p1, p2, p3, 0x81AA4610E3FD3A69, "ibbi")end, - ["NETWORK_SPENT_AMMO_DROP"]=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xB162DC95C0A3317B, "ibbi")end, - -- p1 is just an assumption. p2 was false and p3 was true. - ["NETWORK_BUY_BOUNTY"]=--[[void]] function(--[[int]] amount,--[[Player (int)]] victim,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(amount, victim, p2, p3, p4, 0x7B718E197453F2D9, "iibbi")end, - ["NETWORK_BUY_PROPERTY"]=--[[void]] function(--[[int]] cost,--[[Hash (int)]] propertyName,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(cost, propertyName, p2, p3, 0x650A08A280870AF6, "iibb")end, - ["NETWORK_BUY_SMOKES"]=--[[void]] function(--[[int]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x75AF80E61248EEBD, "ibb")end, - ["NETWORK_SPENT_HELI_PICKUP"]=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x7BF1D73DB2ECA492, "ibbi")end, - ["NETWORK_SPENT_BOAT_PICKUP"]=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x524EE43A37232C00, "ibbi")end, - ["NETWORK_SPENT_BULL_SHARK"]=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xA6DD8458CE24012C, "ibbi")end, - ["NETWORK_SPENT_CASH_DROP"]=--[[void]] function(--[[int]] amount,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(amount, p1, p2, 0x289016EC778D60E0, "ibb")end, - -- Only used once in a script (am_contact_requests) - -- p1 = 0 - -- p2 = 1 - ["NETWORK_SPENT_HIRE_MUGGER"]=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xE404BFB981665BF0, "ibbi")end, - ["NETWORK_SPENT_ROBBED_BY_MUGGER"]=--[[void]] function(--[[int]] amount,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(amount, p1, p2, p3, 0x995A65F15F581359, "ibbi")end, - ["NETWORK_SPENT_HIRE_MERCENARY"]=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xE7B80E2BF9D80BD6, "ibbi")end, - ["NETWORK_SPENT_BUY_WANTEDLEVEL"]=--[[void]] function(--[[Any (int)]] p0,--[[Any* (pointer)]] p1,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0xE1B13771A843C4F6, "ipbbi")end, - ["NETWORK_SPENT_BUY_OFFTHERADAR"]=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xA628A745E2275C5D, "ibbi")end, - ["NETWORK_SPENT_BUY_REVEAL_PLAYERS"]=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x6E176F1B18BC0637, "ibbi")end, - ["NETWORK_SPENT_CARWASH"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[BOOL (bool)]] p3,--[[BOOL (bool)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0xEC03C719DB2F4306, "iiibb")end, - ["NETWORK_SPENT_CINEMA"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x6B38ECB05A63A685, "iibb")end, - ["NETWORK_SPENT_TELESCOPE"]=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x7FE61782AD94CC09, "ibb")end, - ["NETWORK_SPENT_HOLDUPS"]=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xD9B86B9872039763, "ibb")end, - ["NETWORK_SPENT_BUY_PASSIVE_MODE"]=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x6D3A430D1A809179, "ibbi")end, - ["NETWORK_SPENT_BANK_INTEREST"]=--[[void]] function(--[[int]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xCA230C9682556CF1, "ibb")end, - ["NETWORK_SPENT_PROSTITUTES"]=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xB21B89501CFAC79E, "ibb")end, - ["NETWORK_SPENT_ARREST_BAIL"]=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x812F5488B1B2A299, "ibb")end, - -- According to how I understood this in the freemode script alone, - -- The first parameter is determined by a function named, func_5749 within the freemode script which has a list of all the vehicles and a set price to return which some vehicles deals with globals as well. So the first parameter is basically the set in stone insurance cost it's gonna charge you for that specific vehicle model. - -- - -- The second parameter whoever put it was right, they call GET_ENTITY_MODEL with the vehicle as the paremeter. - -- - -- The third parameter is the network handle as they call their little struct<13> func or atleast how the script decompiled it to look which in lamens terms just returns the network handle of the previous owner based on DECOR_GET_INT(vehicle, "Previous_Owner"). - -- - -- The fourth parameter is a bool that returns true/false depending on if your bank balance is greater then 0. - -- - -- The fifth and last parameter is a bool that returns true/false depending on if you have the money for the car based on the cost returned by func_5749. In the freemode script eg, - -- bool hasTheMoney = MONEY::_GET_BANK_BALANCE() < carCost. - ["NETWORK_SPENT_PAY_VEHICLE_INSURANCE_PREMIUM"]=--[[void]] function(--[[int]] amount,--[[Hash (int)]] vehicleModel,--[[Any* (pointer)]] gamerHandle,--[[BOOL (bool)]] notBankrupt,--[[BOOL (bool)]] hasTheMoney)return native_invoker.unified_void(amount, vehicleModel, gamerHandle, notBankrupt, hasTheMoney, 0x9FF28D88C766E3E8, "iipbb")end, - ["NETWORK_SPENT_CALL_PLAYER"]=--[[void]] function(--[[Any (int)]] p0,--[[Any* (pointer)]] p1,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xACDE7185B374177C, "ipbb")end, - ["NETWORK_SPENT_BOUNTY"]=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x29B260B84947DFCC, "ibb")end, - ["NETWORK_SPENT_FROM_ROCKSTAR"]=--[[void]] function(--[[int]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x6A445B64ED7ABEB5, "ibb")end, - -- Hardcoded to return 0. - ["NETWORK_SPEND_EARNED_FROM_BANK_AND_WALLETS"]=--[[int]] function(--[[int]] amount)return native_invoker.unified_int(amount, 0x9B5016A6433A68C5, "i")end, - -- This isn't a hash collision. - ["PROCESS_CASH_GIFT"]=--[[string]] function(--[[int* (pointer)]] p0,--[[int* (pointer)]] p1,--[[string]] p2)return native_invoker.unified_string(p0, p1, p2, 0x20194D48EAEC9A41, "pps")end, - ["NETWORK_SPENT_MOVE_SUBMARINE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xCD4D66B43B1DD28D, "iii")end, - ["NETWORK_SPENT_PLAYER_HEALTHCARE"]=--[[void]] function(--[[int]] p0,--[[int]] p1,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x7C99101F7FCE2EE5, "iibb")end, - ["NETWORK_SPENT_NO_COPS"]=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xD5BB406F4E04019F, "ibbi")end, - ["NETWORK_SPENT_CARGO_SOURCING"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, 0x948705F6F9C50824, "iiiiii")end, - ["NETWORK_SPENT_REQUEST_JOB"]=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x8204DA7934DF3155, "ibbi")end, - ["NETWORK_SPENT_REQUEST_HEIST"]=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x9D26502BB97BFE62, "ibbi")end, - -- The first parameter is the amount spent which is store in a global when this native is called. The global returns 10. Which is the price for both rides. - -- - -- The last 3 parameters are, - -- 2,0,1 in the am_ferriswheel.c - -- 1,0,1 in the am_rollercoaster.c - -- - ["NETWORK_BUY_FAIRGROUND_RIDE"]=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(amount, p1, p2, p3, p4, 0x8A7B3952DD64D2B5, "iibbi")end, - ["NETWORK_ECONOMY_HAS_FIXED_CRAZY_NUMBERS"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x7C4FCCD2E4DEB394, "")end, - ["NETWORK_SPENT_JOB_SKIP"]=--[[void]] function(--[[int]] amount,--[[string]] matchId,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(amount, matchId, p2, p3, 0x28F174A67B8D0C2F, "isbb")end, - ["NETWORK_SPENT_BOSS_GOON"]=--[[BOOL (bool)]] function(--[[int]] amount,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_bool(amount, p1, p2, 0xFFBE02CD385356BD, "ibb")end, - ["NETWORK_SPEND_GOON"]=--[[void]] function(--[[int]] p0,--[[int]] p1,--[[int]] amount)return native_invoker.unified_void(p0, p1, amount, 0x08A1B82B91900682, "iii")end, - ["NETWORK_SPEND_BOSS"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xDBC966A01C02BCA7, "iii")end, - ["NETWORK_SPENT_MOVE_YACHT"]=--[[void]] function(--[[int]] amount,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(amount, p1, p2, 0xE7DF4E0545DFB56E, "ibb")end, - ["NETWORK_SPENT_RENAME_ORGANIZATION"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xFC4EE00A7B3BFB76, "iiii")end, - ["NETWORK_BUY_CONTRABAND_MISSION"]=--[[void]] function(--[[int]] p0,--[[int]] p1,--[[Hash (int)]] p2,--[[BOOL (bool)]] p3,--[[BOOL (bool)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0x30FD873ECE50E9F6, "iiibb")end, - ["NETWORK_SPENT_PA_SERVICE_HELI"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x112209CE0290C03A, "iiii")end, - ["NETWORK_SPENT_PA_SERVICE_VEHICLE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xED5FD7AF10F5E262, "iiii")end, - ["NETWORK_SPENT_PA_SERVICE_SNACK"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x0D30EB83668E63C5, "iiii")end, - ["NETWORK_SPENT_PA_SERVICE_DANCER"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xB49ECA122467D05F, "iiii")end, - ["NETWORK_SPENT_PA_SERVICE_IMPOUND"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xE23ADC6FCB1F29AE, "iii")end, - ["NETWORK_SPENT_PA_HELI_PICKUP"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x0FE8E1FCD2B86B33, "iiii")end, - ["NETWORK_SPENT_PURCHASE_OFFICE_PROPERTY"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0x69EF772B192614C1, "iiiii")end, - ["NETWORK_SPENT_UPGRADE_OFFICE_PROPERTY"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0x8E243837643D9583, "iiiii")end, - ["NETWORK_SPENT_PURCHASE_WAREHOUSE_PROPERTY"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xBD0EFB25CCA8F97A, "iiii")end, - ["NETWORK_SPENT_UPGRADE_WAREHOUSE_PROPERTY"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xA95F667A755725DA, "iiii")end, - ["NETWORK_SPENT_PURCHASE_IMPEXP_WAREHOUSE_PROPERTY"]=--[[void]] function(--[[int]] amount,--[[Any* (pointer)]] data,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(amount, data, p2, p3, 0x33981D6804E62F49, "ipbb")end, - ["NETWORK_SPENT_UPGRADE_IMPEXP_WAREHOUSE_PROPERTY"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x4128464231E3CA0B, "iiii")end, - ["NETWORK_SPENT_TRADE_IMPEXP_WAREHOUSE_PROPERTY"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x2FAB6614CE22E196, "iiii")end, - ["NETWORK_SPENT_ORDER_WAREHOUSE_VEHICLE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x05F04155A226FBBF, "iiii")end, - ["NETWORK_SPENT_ORDER_BODYGUARD_VEHICLE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xE8B0B270B6E7C76E, "iiii")end, - ["NETWORK_SPENT_JUKEBOX"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x5BCDE0F640C773D2, "iiii")end, - ["NETWORK_SPENT_PURCHASE_CLUB_HOUSE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x998E18CEB44487FC, "iiii")end, - ["NETWORK_SPENT_UPGRADE_CLUB_HOUSE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xFA07759E6FDDD7CF, "iiii")end, - ["NETWORK_SPENT_PURCHASE_BUSINESS_PROPERTY"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x6FD97159FE3C971A, "iiii")end, - ["NETWORK_SPENT_UPGRADE_BUSINESS_PROPERTY"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x675D19C6067CAE08, "iiii")end, - ["NETWORK_SPENT_TRADE_BUSINESS_PROPERTY"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xA51B086B0B2C0F7A, "iiii")end, - ["NETWORK_SPENT_MC_ABILITY"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0xD7CCCBA28C4ECAF0, "iiiii")end, - ["NETWORK_SPENT_PAY_BUSINESS_SUPPLIES"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x0035BB914316F1E3, "iiii")end, - ["NETWORK_SPENT_CHANGE_APPEARANCE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x5F456788B05FAEAC, "iii")end, - ["NETWORK_SPENT_VEHICLE_EXPORT_MODS"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5,--[[Any (int)]] p6,--[[Any (int)]] p7,--[[Any (int)]] p8,--[[Any (int)]] p9)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, 0xA75CCF58A60A5FD1, "iiiiiiiiii")end, - ["NETWORK_SPENT_PURCHASE_OFFICE_GARAGE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xB4C2EC463672474E, "iiii")end, - ["NETWORK_SPENT_UPGRADE_OFFICE_GARAGE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x2AFC2D19B50797F2, "iiii")end, - ["NETWORK_SPENT_IMPORT_EXPORT_REPAIR"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xC1952F3773BA18FE, "iii")end, - ["NETWORK_SPENT_PURCHASE_HANGAR"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xCCB339CC970452DA, "iiii")end, - ["NETWORK_SPENT_UPGRADE_HANGAR"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x615EB504B0788DAF, "iiii")end, - ["NETWORK_SPENT_HANGAR_UTILITY_CHARGES"]=--[[void]] function(--[[int]] amount,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(amount, p1, p2, 0xB18AC2ECBB15CB6A, "ibb")end, - ["NETWORK_SPENT_HANGAR_STAFF_CHARGES"]=--[[void]] function(--[[int]] amount,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(amount, p1, p2, 0xB1F1346FD57685D7, "ibb")end, - ["NETWORK_SPENT_BUY_TRUCK"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xAC272C0AE01B4BD8, "iiii")end, - ["NETWORK_SPENT_UPGRADE_TRUCK"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x365E877C61D6988B, "iiii")end, - ["NETWORK_SPENT_BUY_BUNKER"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x12D148D26538D0F9, "iiii")end, - ["NETWORK_SPENT_UPRADE_BUNKER"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x0C82D21A77C22D49, "iiii")end, - ["NETWORK_EARN_FROM_SELL_BUNKER"]=--[[void]] function(--[[int]] amount,--[[Hash (int)]] bunkerHash)return native_invoker.unified_void(amount, bunkerHash, 0x9251B6ABF2D0A5B4, "ii")end, - ["NETWORK_SPENT_BALLISTIC_EQUIPMENT"]=--[[void]] function(--[[int]] amount,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(amount, p1, p2, 0x5D97630A8A0EF123, "ibb")end, - ["NETWORK_EARN_RDR_BONUS"]=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1)return native_invoker.unified_void(amount, p1, 0x7A5349B773584675, "ii")end, - ["NETWORK_EARN_WAGE_PAYMENT"]=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1)return native_invoker.unified_void(amount, p1, 0x35F8DA0E8A31EF1B, "ii")end, - ["NETWORK_EARN_WAGE_PAYMENT_BONUS"]=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0x005ACA7100BD101D, "i")end, - ["NETWORK_SPENT_BUY_BASE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x4EA3F425C7744D21, "iiii")end, - ["NETWORK_SPENT_UPGRADE_BASE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x3DD3F33A5D55EA6F, "iiii")end, - ["NETWORK_SPENT_BUY_TILTROTOR"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x0CCE73BC7A11E885, "iiii")end, - ["NETWORK_SPENT_UPGRADE_TILTROTOR"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x165E135D6DFA2907, "iiii")end, - ["NETWORK_SPENT_EMPLOY_ASSASSINS"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x5BBBD92186E1F1C5, "iiii")end, - ["NETWORK_SPEND_GANGOPS_CANNON"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x771ADB0E7635B7BF, "iiii")end, - ["NETWORK_SPEND_GANGOPS_SKIP_MISSION"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xDA947AE8880D5C18, "iiii")end, - ["NETWORK_SPEND_CASINO_HEIST_SKIP_MISSION"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x487009DD91D93429, "iiii")end, - ["NETWORK_EARN_SELL_BASE"]=--[[void]] function(--[[int]] amount,--[[Hash (int)]] baseNameHash)return native_invoker.unified_void(amount, baseNameHash, 0x0E1E2FF3F4EC11AA, "ii")end, - ["NETWORK_EARN_TARGET_REFUND"]=--[[void]] function(--[[int]] amount,--[[int]] p1)return native_invoker.unified_void(amount, p1, 0x5B669CF2299A271F, "ii")end, - ["NETWORK_EARN_GANGOPS_WAGES"]=--[[void]] function(--[[int]] amount,--[[int]] p1)return native_invoker.unified_void(amount, p1, 0x2DCB19ABAB0380A8, "ii")end, - ["NETWORK_EARN_GANGOPS_WAGES_BONUS"]=--[[void]] function(--[[int]] amount,--[[int]] p1)return native_invoker.unified_void(amount, p1, 0x15BB2A5C757EB91F, "ii")end, - ["NETWORK_EARN_DAR_CHALLENGE"]=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1)return native_invoker.unified_void(amount, p1, 0xCAC672087B4A24AB, "ii")end, - ["NETWORK_EARN_DOOMSDAY_FINALE_BONUS"]=--[[void]] function(--[[int]] amount,--[[Hash (int)]] vehicleHash)return native_invoker.unified_void(amount, vehicleHash, 0x128A747F4A230952, "ii")end, - ["NETWORK_EARN_GANGOPS_AWARD"]=--[[void]] function(--[[int]] amount,--[[string]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(amount, p1, p2, 0xA9A31475F530DFDA, "isi")end, - ["NETWORK_EARN_GANGOPS_ELITE"]=--[[void]] function(--[[int]] amount,--[[string]] p1,--[[int]] actIndex)return native_invoker.unified_void(amount, p1, actIndex, 0x2597A0D4A4FC2C77, "isi")end, - ["NETWORK_SERVICE_EARN_GANGOPS_RIVAL_DELIVERY"]=--[[void]] function(--[[int]] earnedMoney)return native_invoker.unified_void(earnedMoney, 0x1B882107C23A9022, "i")end, - ["NETWORK_SPEND_GANGOPS_START_STRAND"]=--[[void]] function(--[[int]] type,--[[int]] amount,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(type, amount, p2, p3, 0xA19EC0786E326E06, "iibb")end, - ["NETWORK_SPEND_GANGOPS_TRIP_SKIP"]=--[[void]] function(--[[int]] amount,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(amount, p1, p2, 0x5ECE6FD7B4EC8D6A, "ibb")end, - ["NETWORK_EARN_GANGOPS_PREP_PARTICIPATION"]=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0xED26584F6BDCBBFD, "i")end, - ["NETWORK_EARN_GANGOPS_SETUP"]=--[[void]] function(--[[int]] amount,--[[string]] p1)return native_invoker.unified_void(amount, p1, 0xA9160796D47A2CF8, "is")end, - ["NETWORK_EARN_GANGOPS_FINALE"]=--[[void]] function(--[[int]] amount,--[[string]] p1)return native_invoker.unified_void(amount, p1, 0x1C121FC9545E0D52, "is")end, - ["NETWORK_SPEND_GANGOPS_REPAIR_COST"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x2A7CEC72C3443BCC, "iii")end, - ["NETWORK_EARN_NIGHTCLUB"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xE0F82D68C7039158, "i")end, - ["NETWORK_EARN_NIGHTCLUB_DANCING"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xB4DEAE67F35E2ACD, "i")end, - ["NETWORK_EARN_BB_EVENT_BONUS"]=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0xFDD8D2440DAF1590, "i")end, - ["NETWORK_SPENT_PURCHASE_HACKER_TRUCK"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x2A93C46AAB1EACC9, "iiii")end, - ["NETWORK_SPENT_UPGRADE_HACKER_TRUCK"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x226C284C830D0CA8, "iiii")end, - ["NETWORK_EARN_HACKER_TRUCK"]=--[[void]] function(--[[Any (int)]] p0,--[[int]] amount,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, amount, p2, p3, 0xE8815FE993896AD3, "iiii")end, - ["NETWORK_SPENT_PURCHASE_NIGHTCLUB_AND_WAREHOUSE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xED76D195E6E3BF7F, "iiii")end, - ["NETWORK_SPENT_UPGRADE_NIGHTCLUB_AND_WAREHOUSE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x1DC9B749E7AE282B, "iiii")end, - ["NETWORK_EARN_NIGHTCLUB_AND_WAREHOUSE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5,--[[Any (int)]] p6)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, 0xC6E74CF8C884C880, "iiiiiii")end, - ["NETWORK_SPEND_NIGHTCLUB_AND_WAREHOUSE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x65482BFD0923C8A1, "iiii")end, - ["NETWORK_SPENT_RDR_HATCHET_BONUS"]=--[[void]] function(--[[int]] amount,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(amount, p1, p2, 0xE284D46FFDB82E36, "ibb")end, - ["NETWORK_SPENT_NIGHTCLUB_ENTRY_FEE"]=--[[void]] function(--[[Player (int)]] player,--[[int]] amount,--[[Any (int)]] p1,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(player, amount, p1, p2, p3, 0x876056684281655D, "iiibb")end, - ["NETWORK_SPEND_NIGHTCLUB_BAR_DRINK"]=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(amount, p1, p2, p3, 0xDD21B016E4289465, "iibb")end, - ["NETWORK_SPEND_BOUNTY_HUNTER_MISSION"]=--[[void]] function(--[[int]] amount,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(amount, p1, p2, 0x1BEA0CD93470BB1F, "ibb")end, - ["NETWORK_SPENT_REHIRE_DJ"]=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(amount, p1, p2, p3, 0xF6C8A544E4CF14FC, "iibb")end, - ["NETWORK_SPENT_ARENA_JOIN_SPECTATOR"]=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(amount, p1, p2, p3, 0x14EAEA58F93B55AF, "iibb")end, - ["NETWORK_EARN_ARENA_SKILL_LEVEL_PROGRESSION"]=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1)return native_invoker.unified_void(amount, p1, 0xE08256F972C7BB2C, "ii")end, - ["NETWORK_EARN_ARENA_CAREER_PROGRESSION"]=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1)return native_invoker.unified_void(amount, p1, 0x0F99F70C61F14619, "ii")end, - ["NETWORK_SPEND_MAKE_IT_RAIN"]=--[[void]] function(--[[int]] amount,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(amount, p1, p2, 0xE5F5A060439C2F5D, "ibb")end, - ["NETWORK_SPEND_BUY_ARENA"]=--[[void]] function(--[[int]] amount,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[string]] p3)return native_invoker.unified_void(amount, p1, p2, p3, 0x40D5DA9550B7CB46, "ibbs")end, - ["NETWORK_SPEND_UPGRADE_ARENA"]=--[[void]] function(--[[int]] amount,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[string]] p3)return native_invoker.unified_void(amount, p1, p2, p3, 0x037ABB06825D7AB1, "ibbs")end, - -- type either, 1 for cam spectate, 2 for drone - ["NETWORK_SPEND_ARENA_SPECTATOR_BOX"]=--[[void]] function(--[[int]] amount,--[[int]] type,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(amount, type, p2, p3, 0x7049BF858601DC0F, "iibb")end, - ["NETWORK_SPEND_SPIN_THE_WHEEL_PAYMENT"]=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(amount, p1, p2, 0x9A5BD1D0000B339C, "iib")end, - ["NETWORK_EARN_SPIN_THE_WHEEL_CASH"]=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0x676C48776CACBB5A, "i")end, - ["NETWORK_SPEND_ARENA_PREMIUM"]=--[[void]] function(--[[int]] amount,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(amount, p1, p2, 0x619496D837EFD920, "ibb")end, - ["NETWORK_EARN_ARENA_WAR"]=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(amount, p1, p2, p3, 0x631F1CB8FB4130AA, "iiii")end, - ["NETWORK_EARN_ARENA_WAR_ASSASSINATE_TARGET"]=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0x5E7AE8AABE8B7C0D, "i")end, - ["NETWORK_EARN_ARENA_WAR_EVENT_CARGO"]=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0xA82959062361B259, "i")end, - ["NETWORK_EARN_RC_TIME_TRIAL"]=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0xDFF49EE984E7AAE8, "i")end, - ["NETWORK_EARN_DAILY_OBJECTIVE_EVENT"]=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0x5128DF14A5BB86FC, "i")end, - ["NETWORK_SPEND_CASINO_MEMBERSHIP"]=--[[void]] function(--[[int]] amount,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[int]] p3)return native_invoker.unified_void(amount, p1, p2, p3, 0xFBBE0570EDF39D46, "ibbi")end, - ["NETWORK_SPEND_BUY_CASINO"]=--[[void]] function(--[[int]] amount,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any* (pointer)]] data)return native_invoker.unified_void(amount, p1, p2, data, 0x34A6FC4D06C4DA0F, "ibbp")end, - ["NETWORK_SPEND_UPGRADE_CASINO"]=--[[void]] function(--[[int]] amount,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any* (pointer)]] data)return native_invoker.unified_void(amount, p1, p2, data, 0x4740D62BC1B4EBEA, "ibbp")end, - ["NETWORK_SPEND_CASINO_GENERIC"]=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(amount, p1, p2, p3, p4, 0x88BF9B612B84D3C3, "iiiii")end, - ["NETWORK_EARN_CASINO_TIME_TRIAL_WIN"]=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0x0819DB99FD2FBBD8, "i")end, - ["NETWORK_EARN_COLLECTABLES_ACTION_FIGURES"]=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0x5517F90043466049, "i")end, - ["NETWORK_EARN_CASINO_COLLECTABLE_COMPLETED_COLLECTION"]=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0x83AD64F53F4E9483, "i")end, - ["NETWORK_EARN_SELL_PRIZE_VEHICLE"]=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(amount, p1, p2, 0x8BCB27A057DF7B7F, "iii")end, - ["NETWORK_EARN_CASINO_MISSION_REWARD"]=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0x566FD402B25787DE, "i")end, - ["NETWORK_EARN_CASINO_STORY_MISSION_REWARD"]=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0xAC95ED552157E092, "i")end, - ["NETWORK_EARN_CASINO_MISSION_PARTICIPATION"]=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0x09E8F18641BE2575, "i")end, - ["NETWORK_EARN_CASINO_AWARD"]=--[[void]] function(--[[int]] amount,--[[Hash (int)]] hash)return native_invoker.unified_void(amount, hash, 0x973A9781A34F8DEB, "ii")end, - ["NETWORK_SPEND_BUY_ARCADE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x870289A558348378, "iiii")end, - ["NETWORK_SPEND_UPGRADE_ARCADE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x5574637681911FDA, "iiii")end, - ["NETWORK_SPEND_CASINO_HEIST"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5,--[[Any (int)]] p6,--[[Any (int)]] p7,--[[Any (int)]] p8,--[[Any (int)]] p9,--[[Any (int)]] p10)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, 0xD30E8392F407C328, "iiiiiiiiiii")end, - ["NETWORK_SPEND_ARCADE_MGMT"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0xB5B58E24868CB09E, "iiiii")end, - ["NETWORK_SPEND_PLAY_ARCADE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0xEAD3D81F2C3A1458, "iiiii")end, - ["NETWORK_SPEND_ARCADE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0x43AA7FAC4E6D6687, "iiiii")end, - ["NETWORK_EARN_CASINO_HEIST"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5,--[[Any (int)]] p6)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, 0x72E7C7B9615FA3C3, "iiiiiii")end, - ["NETWORK_EARN_UPGRADE_ARCADE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x4C3B75694F7E0D9C, "iii")end, - ["NETWORK_EARN_ARCADE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0xD29334ED1A256DBF, "iiiii")end, - ["NETWORK_EARN_COLLECTABLES"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xA95CFB4E02390842, "iii")end, - ["NETWORK_EARN_CHALLENGE"]=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(amount, p1, p2, 0x0DD362F14F18942A, "iii")end, - ["NETWORK_EARN_CASINO_HEIST_AWARDS"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0x3EC7471E6909798A, "iiiii")end, - ["NETWORK_EARN_COLLECTABLE_ITEM"]=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1)return native_invoker.unified_void(amount, p1, 0x84FF63BD4966F33D, "ii")end, - ["NETWORK_EARN_COLLECTABLE_COMPLETED_COLLECTION"]=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1)return native_invoker.unified_void(amount, p1, 0x5C9B198AF5A54FA6, "ii")end, - ["NETWORK_EARN_YATCH_MISSION"]=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1)return native_invoker.unified_void(amount, p1, 0xDE68E30D89F97132, "ii")end, - ["NETWORK_EARN_DISPATCH_CALL"]=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1)return native_invoker.unified_void(amount, p1, 0xE2E244AB823B4483, "ii")end, - ["NETWORK_SPEND_BEACH_PARTY"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x54ABA22FA6371249, "i")end, - ["NETWORK_SPEND_SUBMARINE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, 0x6C8BC1488527AAAB, "iiiiii")end, - ["NETWORK_SPEND_CASINO_CLUB"]=--[[void]] function(--[[int]] amount1,--[[Any (int)]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3,--[[int]] p4,--[[int]] p5,--[[int]] p6,--[[int]] amount2,--[[Any (int)]] p8)return native_invoker.unified_void(amount1, p1, p2, p3, p4, p5, p6, amount2, p8, 0xC991C255AA6D90B2, "iibiiiiii")end, - ["NETWORK_SPEND_BUY_SUB"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x90CD7C6871FBF1B4, "iiii")end, - ["NETWORK_SPEND_UPGRADE_SUB"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x89049A84065CE68E, "iiii")end, - ["NETWORK_SPEND_ISLAND_HEIST"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xE86689E5F82DE429, "iiii")end, - ["NETWORK_EARN_ISLAND_HEIST"]=--[[void]] function(--[[int]] amount1,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[int]] amount2,--[[int]] p5)return native_invoker.unified_void(amount1, p1, p2, p3, amount2, p5, 0xD21D111C46BA9F15, "iiiiii")end, - ["NETWORK_EARN_BEACH_PARTY_LOST_FOUND"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xA51338E0DCCD4065, "iii")end, - ["NETWORK_EARN_FROM_ISLAND_HEIST_DJ_MISSION"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xE2BB399D90942091, "ii")end, - ["NETWORK_SPEND_CAR_CLUB_MEMBERSHIP"]=--[[void]] function(--[[int]] amount1,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[int]] amount2,--[[Any (int)]] p4)return native_invoker.unified_void(amount1, p1, p2, amount2, p4, 0x1464E17207CD36E2, "iiiii")end, - ["NETWORK_SPEND_CAR_CLUB_BAR"]=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x925227803A0EAA1B, "ibbi")end, - ["NETWORK_SPEND_AUTOSHOP_MODIFY"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0x9BEA350D7C48061B, "iiiii")end, - ["NETWORK_SPEND_CAR_CLUB_TAKEOVER"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xD1E46824E6FB92B5, "iiii")end, - ["NETWORK_SPEND_BUY_AUTOSHOP"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xEEB7E5D1FEB20869, "iiii")end, - ["NETWORK_SPEND_UPGRADE_AUTOSHOP"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xDD829AA198FDC46C, "iiii")end, - ["NETWORK_EARN_AUTOSHOP_BUSINESS"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x36A7FD5A7194B03E, "iii")end, - ["NETWORK_EARN_AUTOSHOP_INCOME"]=--[[void]] function(--[[Any (int)]] p0,--[[int]] p1)return native_invoker.unified_void(p0, p1, 0xC66D1CF99ED7FE25, "ii")end, - ["NETWORK_EARN_CARCLUB_MEMBERSHIP"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xBC6227792A188E2E, "i")end, - ["NETWORK_EARN_DAILY_VEHICLE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x533073E8A596008C, "ii")end, - ["NETWORK_EARN_DAILY_VEHICLE_BONUS"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xFE65AFE7308E32B2, "i")end, - ["NETWORK_EARN_TUNER_AWARD"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xB846F547D3792DF6, "iii")end, - ["NETWORK_EARN_TUNER_ROBBERY"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0xBCB266247193AC61, "iiiii")end, - ["NETWORK_EARN_UPGRADE_AUTOSHOP"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xC10322A8D3E061EE, "ii")end, - ["NETWORK_SPEND_INTERACTION_MENU_ABILITY"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x93AA4165CB67E925, "iiii")end, - ["NETWORK_SPEND_SET_COMMON_FIELDS"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xB9F7A469460E7A4A, "iiib")end, - ["NETWORK_SPEND_SET_DISCOUNT"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x7E2F4E8F44CAF4E0, "b")end, - ["NETWORK_SPEND_BUY_AGENCY"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xEA8CD3C9B3C35884, "iiii")end, - ["NETWORK_SPEND_UPGRADE_AGENCY"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x6CCA64840589A3B6, "iiii")end, - ["NETWORK_SPEND_AGENCY"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0x1B2120405080125C, "iiiii")end, - ["NETWORK_SPEND_HIDDEN"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xBF8793B91EA094A7, "iiii")end, - ["NETWORK_SPEND_SOURCE_BIKE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xD9DF467CBE4398C8, "iiii")end, - ["NETWORK_SPEND_COMP_SUV"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xD86581F9E7CDA383, "iiii")end, - ["NETWORK_SPEND_SUV_FST_TRVL"]=--[[void]] function(--[[int]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x61A2DF64ED2D396E, "ibbi")end, - ["NETWORK_SPEND_SUPPLY"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xEBD482B82ACB8BAD, "iiii")end, - ["NETWORK_SPEND_BIKE_SHOP"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x923AEA8E78F8DF0B, "iiii")end, - ["NETWORK_SPEND_VEHICLE_REQUESTED"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0x02D24A35A9CC3503, "iiiii")end, - ["NETWORK_SPEND_GUNRUNNING"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x2CEB0E0BC2A77C05, "iiii")end, - ["NETWORK_EARN_AGENCY_SAFE"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x663B4B9D11742A12, "i")end, - ["NETWORK_EARN_AWARD_CONTRACT"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x146D4EB6D22A403F, "ii")end, - ["NETWORK_EARN_AGENCY_CONTRACT"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x38482AD49CB905C7, "ii")end, - ["NETWORK_EARN_AWARD_PHONE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x7397A115030F1BE3, "ii")end, - ["NETWORK_EARN_AGENCY_PHONE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xE29F3D5FA63B1B82, "iii")end, - ["NETWORK_EARN_AWARD_FIXER_MISSION"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x88D6C327D6C57C45, "ii")end, - ["NETWORK_EARN_FIXER_PREP"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x6283E5DE4C4460C6, "ii")end, - ["NETWORK_EARN_FIXER_FINALE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xBA154373C5FE51E8, "ii")end, - ["NETWORK_EARN_FIXER_AGENCY_SHORT_TRIP"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xF4A8E57460BF2037, "ii")end, - ["NETWORK_EARN_AWARD_SHORT_TRIP"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x5B4DBDED84D6A420, "ii")end, - ["NETWORK_EARN_FIXER_RIVAL_DELIVERY"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x235D41210B3A1A5E, "ii")end, - ["NETWORK_EARN_UPGRADE_AGENCY"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xD07C7C3F1995108C, "ii")end, - ["NETWORK_SPEND_APARTMENT_UTILITIES"]=--[[void]] function(--[[int]] amount,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any* (pointer)]] data)return native_invoker.unified_void(amount, p1, p2, data, 0x1254B5B3925EFD3D, "ibbp")end, - ["NETWORK_SPEND_BUSINESS_PROPERTY_FEES"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x92D1CFDA1227FF1C, "iiii")end, - ["NETWORK_EARN_SIGHTSEEING_REWARD"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x45087AE480B233AC, "iiii")end, - ["NETWORK_EARN_BIKER_SHOP"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x2C5809EB9DF57257, "ii")end, - ["NETWORK_EARN_BIKER"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x71BEC32FA466E105, "i")end, - ["NETWORK_YOHAN_SOURCE_GOODS"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x59498BC8B1C8B15C, "iiii")end, - ["_NETWORK_SPEND_BUY_MFGARAGE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xA2ED36DCF0FCA413, "iiii")end, - ["_NETWORK_SPEND_UPGRADE_MFGARAGE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xCF8F346DDDC66643, "iiii")end, - ["_NETWORK_SPEND_BUY_SUPPLIES"]=--[[void]] function(--[[int]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[int]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xB48185C0CA67B16B, "ibbi")end, - ["_NETWORK_SPEND_BUY_ACID_LAB"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xF1E26A7924327152, "iiii")end, - ["_NETWORK_SPEND_UPGRADE_ACID_LAB_EQUIPMENT"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x110EE9D486C23126, "iiii")end, - ["_NETWORK_SPEND_UPGRADE_ACID_LAB_ARMOR"]=--[[void]] function(--[[int]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[int]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xA7D541C9ACD63133, "ibbi")end, - ["_NETWORK_SPEND_UPGRADE_ACID_LAB_SCOOP"]=--[[void]] function(--[[int]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[int]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x2940558E05BCC2EC, "ibbi")end, - ["_NETWORK_SPEND_UPGRADE_ACID_LAB_MINES"]=--[[void]] function(--[[int]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[int]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x4B99AB08C92C54E4, "ibbi")end, - ["_NETWORK_SPEND_RENAME_ACID_LAB"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x842B1C5AF61ACDE9, "iiii")end, - ["_NETWORK_SPEND_RENAME_ACID_PRODUCT"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x446798F7495DD7D8, "iiii")end, - ["_NETWORK_EARN_AWARD_JUGGALO_MISSION"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xDDF047577F1A02A7, "ii")end, - ["_NETWORK_EARN_AWARD_ACID_LAB"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xD1A8165767AD2D23, "ii")end, - ["_NETWORK_EARN_AWARD_DAILY_STASH"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xC30650FA74A19D02, "ii")end, - ["_NETWORK_EARN_AWARD_DEAD_DROP"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xD01EBAEA1F905EF6, "ii")end, - ["_NETWORK_EARN_AWARD_RANDOM_EVENT"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xBEAFBB1B98B7EF55, "ii")end, - ["_NETWORK_EARN_AWARD_TAXI"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xA914768AD35CD3A5, "ii")end, - ["_NETWORK_EARN_STREET_DEALER"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xA81017EE1324FDFE, "ii")end, - ["_NETWORK_EARN_SELL_ACID"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x79B656937DF6DF5D, "ii")end, - ["_NETWORK_EARN_SETUP_PARTICIPATION_ACID_LAB"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xE3942D59E8A7F70D, "ii")end, - ["_NETWORK_EARN_SOURCE_PARTICIPATION_ACID_LAB"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x136F11B5DF1B304D, "ii")end, - ["_NETWORK_EARN_SELL_PARTICIPATION_ACID_LAB"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xCA3EF9B09A8D76B4, "ii")end, - ["_NETWORK_EARN_JUGGALO_STORY_MISSION"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xE01D10BA8CD53621, "ii")end, - ["_NETWORK_EARN_JUGGALO_STORY_MISSION_PARTICIPATION"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x40FF6CCCC476185C, "ii")end, - -- JUGGALO_PHONE_MISSION... - ["_NETWORK_EARN_FOOLIGAN_JOB"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xCE4452AE85F5E252, "ii")end, - -- JUGGALO_PHONE_MISSION_PARTICIPATION... - ["_NETWORK_EARN_FOOLIGAN_JOB_PARTICIPATION"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xC376B92D0E060970, "ii")end, - ["_NETWORK_EARN_TAXI_JOB"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x991E1588FAD9019D, "ii")end, - ["_NETWORK_EARN_DAILY_STASH_HOUSE_COMPLETED"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xCABC9874AFA70D6D, "ii")end, - ["_NETWORK_EARN_DAILY_STASH_HOUSE_PARTICIPATION"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x9C0C6BD0F94CE391, "ii")end, - -- Used for SERVICE_EARN_AVENGER_OPERATIONS & SERVICE_EARN_AVENGER_OPS_BONUS - ["_NETWORK_EARN_AVENGER"]=--[[void]] function(--[[int]] amount,--[[int]] p1)return native_invoker.unified_void(amount, p1, 0x55F006B9D4A46C1D, "ii")end, - ["_NETWORK_EARN_SMUGGLER_OPS"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xDEA273D5F8A9661A, "iii")end, - ["_NETWORK_EARN_BONUS_OBJECTIVE"]=--[[void]] function(--[[int]] amount,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(amount, p1, p2, 0xDCEF983C24191997, "iii")end, - ["_NETWORK_EARN_PROGRESS_HUB"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xF8332B06F0EECC9C, "ii")end, - ["_NETWORK_SPENT_AIR_FREIGHT"]=--[[void]] function(--[[int]] hangarCargoSourcingPrice,--[[BOOL (bool)]] fromBank,--[[BOOL (bool)]] fromBankAndWallet,--[[int]] cost,--[[int]] warehouseId,--[[int]] warehouseSlot)return native_invoker.unified_void(hangarCargoSourcingPrice, fromBank, fromBankAndWallet, cost, warehouseId, warehouseSlot, 0x8C7E8D6F96C9E948, "ibbiii")end, - ["_NETWORK_SPENT_SKIP_CARGO_SOURCE_SETUP"]=--[[void]] function(--[[int]] amount,--[[BOOL (bool)]] fromBank,--[[BOOL (bool)]] fromBankAndWallet,--[[int]] cost)return native_invoker.unified_void(amount, fromBank, fromBankAndWallet, cost, 0xED1B407BADA42CEC, "ibbi")end, - -- Hash p3 = STEALTH_MODULE - ["_NETWORK_SPENT_STEALTH_MODULE"]=--[[void]] function(--[[int]] amount,--[[BOOL (bool)]] fromBank,--[[BOOL (bool)]] fromBankAndWallet,--[[Hash (int)]] p3)return native_invoker.unified_void(amount, fromBank, fromBankAndWallet, p3, 0x95CE79A6939C537A, "ibbi")end, - -- Hash p3 = MISSILE_JAMMER - ["_NETWORK_SPENT_MISSILE_JAMMER"]=--[[void]] function(--[[int]] amount,--[[BOOL (bool)]] fromBank,--[[BOOL (bool)]] fromBankAndWallet,--[[Hash (int)]] p3)return native_invoker.unified_void(amount, fromBank, fromBankAndWallet, p3, 0xD687100F616163F4, "ibbi")end, - ["_NETWORK_SPENT_GENERIC"]=--[[void]] function(--[[int]] price,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Hash (int)]] stat,--[[Hash (int)]] spent,--[[string]] p5,--[[string]] p6,--[[Any* (pointer)]] data)return native_invoker.unified_void(price, p1, p2, stat, spent, p5, p6, data, 0x2803B027479FB640, "ibbiissp")end, - -- _NETWORK_EARN_G* - ["_NETWORK_EARN_GENERIC"]=--[[void]] function(--[[int]] amount,--[[Hash (int)]] earn,--[[string]] p2,--[[string]] p3,--[[Any* (pointer)]] data)return native_invoker.unified_void(amount, earn, p2, p3, data, 0xBF7B5BB7ED890380, "iissp")end, - ["_NETWORK_CLEAR_TRANSACTION_TELEMETRY_NONCE"]=--[[void]] function()return native_invoker.unified_void(0xE03B9F95556E48E9, "")end, - ["NETWORK_GET_VC_BANK_BALANCE"]=--[[int]] function()return native_invoker.unified_int(0x76EF28DA05EA395A, "")end, - ["NETWORK_GET_VC_WALLET_BALANCE"]=--[[int]] function(--[[int]] characterSlot)return native_invoker.unified_int(characterSlot, 0xA40F9C2623F6A8B5, "i")end, - ["NETWORK_GET_VC_BALANCE"]=--[[int]] function()return native_invoker.unified_int(0x5CBAD97E059E1B94, "")end, - ["NETWORK_GET_EVC_BALANCE"]=--[[int]] function()return native_invoker.unified_int(0x5D1E75F91C07DEE5, "")end, - ["NETWORK_GET_PVC_BALANCE"]=--[[int]] function()return native_invoker.unified_int(0x4F54F3B6C202FB4E, "")end, - ["NETWORK_GET_STRING_WALLET_BALANCE"]=--[[string]] function(--[[int]] characterSlot)return native_invoker.unified_string(characterSlot, 0xF9B10B529DCFB33B, "i")end, - ["NETWORK_GET_STRING_BANK_BALANCE"]=--[[string]] function()return native_invoker.unified_string(0xA6FA3979BED01B81, "")end, - ["NETWORK_GET_STRING_BANK_WALLET_BALANCE"]=--[[string]] function(--[[int]] character)return native_invoker.unified_string(character, 0x700AF71AE615E6DD, "i")end, - -- Returns true if wallet balance >= amount. - ["NETWORK_GET_CAN_SPEND_FROM_WALLET"]=--[[BOOL (bool)]] function(--[[int]] amount,--[[int]] characterSlot)return native_invoker.unified_bool(amount, characterSlot, 0xED5AB8860415BABA, "ii")end, - -- Returns true if bank balance >= amount. - ["NETWORK_GET_CAN_SPEND_FROM_BANK"]=--[[BOOL (bool)]] function(--[[int]] amount)return native_invoker.unified_bool(amount, 0xA31FD6A0865B6D14, "i")end, - -- Returns true if bank balance + wallet balance >= amount. - ["NETWORK_GET_CAN_SPEND_FROM_BANK_AND_WALLET"]=--[[BOOL (bool)]] function(--[[int]] amount,--[[int]] characterSlot)return native_invoker.unified_bool(amount, characterSlot, 0xDC18531D7019A535, "ii")end, - -- Retturns the same value as NETWORK_GET_REMAINING_TRANSFER_BALANCE. - ["NETWORK_GET_PVC_TRANSFER_BALANCE"]=--[[int]] function()return native_invoker.unified_int(0x13A8DE2FD77D04F3, "")end, - -- Returns false if amount > wallet balance or daily transfer limit has been hit. - ["NETWORK_GET_CAN_TRANSFER_CASH"]=--[[BOOL (bool)]] function(--[[int]] amount)return native_invoker.unified_bool(amount, 0x08E8EEADFD0DC4A0, "i")end, - ["NETWORK_CAN_RECEIVE_PLAYER_CASH"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_bool(p0, p1, p2, p3, 0x5D17BE59D2123284, "iiii")end, - -- Returns the same value as NETWORK_GET_PVC_TRANSFER_BALANCE. - ["NETWORK_GET_REMAINING_TRANSFER_BALANCE"]=--[[int]] function()return native_invoker.unified_int(0xEA560AC9EEB1E19B, "")end, - -- Does nothing and always returns 0. - ["WITHDRAW_VC"]=--[[int]] function(--[[int]] amount)return native_invoker.unified_int(amount, 0xF70EFA14FE091429, "i")end, - -- Does nothing and always returns false. - ["DEPOSIT_VC"]=--[[BOOL (bool)]] function(--[[int]] amount)return native_invoker.unified_bool(amount, 0xE260E0BB9CD995AC, "i")end, - -- This function is hard-coded to always return 1. - ["HAS_VC_WITHDRAWAL_COMPLETED"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0xE154B48B68EF72BC, "i")end, - -- This function is hard-coded to always return 1. - ["WAS_VC_WITHDRAWAL_SUCCESSFUL"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x6FCF8DDEA146C45B, "i")end, -} -NETSHOPPING={ - ["NET_GAMESERVER_USE_SERVER_TRANSACTIONS"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x7D2708796355B20B, "")end, - ["NET_GAMESERVER_CATALOG_ITEM_IS_VALID"]=--[[BOOL (bool)]] function(--[[string]] name)return native_invoker.unified_bool(name, 0xBD4D7EAF8A30F637, "s")end, - ["NET_GAMESERVER_CATALOG_ITEM_KEY_IS_VALID"]=--[[BOOL (bool)]] function(--[[Hash (int)]] hash)return native_invoker.unified_bool(hash, 0x247F0F73A182EA0B, "i")end, - -- bool is always true in game scripts - ["NET_GAMESERVER_GET_PRICE"]=--[[int]] function(--[[Hash (int)]] itemHash,--[[Hash (int)]] categoryHash,--[[BOOL (bool)]] p2)return native_invoker.unified_int(itemHash, categoryHash, p2, 0xC27009422FCCA88D, "iib")end, - ["NET_GAMESERVER_CATALOG_IS_VALID"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x3C4487461E9B0DCB, "")end, - ["NET_GAMESERVER_IS_CATALOG_CURRENT"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x2B949A1E6AEC8F6A, "")end, - ["NET_GAMESERVER_GET_CATALOG_CLOUD_CRC"]=--[[Hash (int)]] function()return native_invoker.unified_int(0x85F6C9ABA1DE2BCF, "")end, - ["NET_GAMESERVER_REFRESH_SERVER_CATALOG"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x357B152EF96C30B6, "")end, - ["NET_GAMESERVER_RETRIEVE_CATALOG_REFRESH_STATUS"]=--[[BOOL (bool)]] function(--[[int* (pointer)]] state)return native_invoker.unified_bool(state, 0xCF38DAFBB49EDE5E, "p")end, - ["NET_GAMESERVER_INIT_SESSION"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xE3E5A7C64CA2C6ED, "")end, - ["NET_GAMESERVER_RETRIEVE_INIT_SESSION_STATUS"]=--[[BOOL (bool)]] function(--[[int* (pointer)]] p0)return native_invoker.unified_bool(p0, 0x0395CB47B022E62C, "p")end, - ["NET_GAMESERVER_START_SESSION"]=--[[BOOL (bool)]] function(--[[int]] charSlot)return native_invoker.unified_bool(charSlot, 0xA135AC892A58FC07, "i")end, - ["NET_GAMESERVER_START_SESSION_PENDING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x72EB7BA9B69BF6AB, "")end, - ["NET_GAMESERVER_RETRIEVE_START_SESSION_STATUS"]=--[[BOOL (bool)]] function(--[[int* (pointer)]] p0)return native_invoker.unified_bool(p0, 0x170910093218C8B9, "p")end, - ["NET_GAMESERVER_RETRIEVE_SESSION_ERROR_CODE"]=--[[BOOL (bool)]] function(--[[int* (pointer)]] p0)return native_invoker.unified_bool(p0, 0xC13C38E47EA5DF31, "p")end, - ["NET_GAMESERVER_IS_SESSION_VALID"]=--[[BOOL (bool)]] function(--[[int]] charSlot)return native_invoker.unified_bool(charSlot, 0xB24F0944DA203D9E, "i")end, - ["NET_GAMESERVER_CLEAR_SESSION"]=--[[BOOL (bool)]] function(--[[int]] p0)return native_invoker.unified_bool(p0, 0x74A0FD0688F1EE45, "i")end, - ["NET_GAMESERVER_SESSION_APPLY_RECEIVED_DATA"]=--[[BOOL (bool)]] function(--[[int]] charSlot)return native_invoker.unified_bool(charSlot, 0x2F41D51BA3BCD1F1, "i")end, - ["NET_GAMESERVER_IS_SESSION_REFRESH_PENDING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x810E8431C0614BF9, "")end, - -- Note: only one of the arguments can be set to true at a time - ["NET_GAMESERVER_START_SESSION_RESTART"]=--[[BOOL (bool)]] function(--[[BOOL (bool)]] inventory,--[[BOOL (bool)]] playerbalance)return native_invoker.unified_bool(inventory, playerbalance, 0x35A1B3E1D1315CFA, "bb")end, - ["NET_GAMESERVER_TRANSACTION_IN_PROGRESS"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x613F125BA3BD2EB9, "")end, - ["NET_GAMESERVER_GET_SESSION_STATE_AND_STATUS"]=--[[BOOL (bool)]] function(--[[int* (pointer)]] p0,--[[BOOL* (pointer)]] p1)return native_invoker.unified_bool(p0, p1, 0x897433D292B44130, "pp")end, - ["NET_GAMESERVER_BASKET_START"]=--[[BOOL (bool)]] function(--[[int* (pointer)]] transactionId,--[[Hash (int)]] categoryHash,--[[Hash (int)]] actionHash,--[[int]] flags)return native_invoker.unified_bool(transactionId, categoryHash, actionHash, flags, 0x279F08B1A4B29B7E, "piii")end, - ["NET_GAMESERVER_BASKET_END"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xFA336E7F40C0A0D0, "")end, - ["NET_GAMESERVER_BASKET_IS_ACTIVE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xA65568121DF2EA26, "")end, - ["NET_GAMESERVER_BASKET_ADD_ITEM"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] itemData,--[[int]] quantity)return native_invoker.unified_bool(itemData, quantity, 0xF30980718C8ED876, "pi")end, - ["NET_GAMESERVER_BASKET_IS_FULL"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x27F76CC6C55AD30E, "")end, - ["NET_GAMESERVER_BASKET_APPLY_SERVER_DATA"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any* (pointer)]] p1)return native_invoker.unified_bool(p0, p1, 0xE1A0450ED46A7812, "ip")end, - ["NET_GAMESERVER_CHECKOUT_START"]=--[[BOOL (bool)]] function(--[[int]] transactionId)return native_invoker.unified_bool(transactionId, 0x39BE7CEA8D9CC8E6, "i")end, - ["NET_GAMESERVER_BEGIN_SERVICE"]=--[[BOOL (bool)]] function(--[[int* (pointer)]] transactionId,--[[Hash (int)]] categoryHash,--[[Hash (int)]] itemHash,--[[Hash (int)]] actionTypeHash,--[[int]] value,--[[int]] flags)return native_invoker.unified_bool(transactionId, categoryHash, itemHash, actionTypeHash, value, flags, 0x3C5FD37B5499582E, "piiiii")end, - ["NET_GAMESERVER_END_SERVICE"]=--[[BOOL (bool)]] function(--[[int]] transactionId)return native_invoker.unified_bool(transactionId, 0xE2A99A9B524BEFFF, "i")end, - ["NET_GAMESERVER_DELETE_CHARACTER"]=--[[BOOL (bool)]] function(--[[int]] slot,--[[BOOL (bool)]] transfer,--[[Hash (int)]] reason)return native_invoker.unified_bool(slot, transfer, reason, 0x51F1A8E48C3D2F6D, "ibi")end, - ["NET_GAMESERVER_DELETE_CHARACTER_GET_STATUS"]=--[[int]] function()return native_invoker.unified_int(0x0A6D923DFFC9BD89, "")end, - ["NET_GAMESERVER_DELETE_SET_TELEMETRY_NONCE_SEED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x112CEF1615A1139F, "")end, - ["NET_GAMESERVER_TRANSFER_BANK_TO_WALLET"]=--[[BOOL (bool)]] function(--[[int]] charSlot,--[[int]] amount)return native_invoker.unified_bool(charSlot, amount, 0xD47A2C1BA117471D, "ii")end, - ["NET_GAMESERVER_TRANSFER_WALLET_TO_BANK"]=--[[BOOL (bool)]] function(--[[int]] charSlot,--[[int]] amount)return native_invoker.unified_bool(charSlot, amount, 0xC2F7FE5309181C7D, "ii")end, - -- Same as 0x350AA5EBC03D3BD2 - ["NET_GAMESERVER_TRANSFER_BANK_TO_WALLET_GET_STATUS"]=--[[int]] function()return native_invoker.unified_int(0x23789E777D14CE44, "")end, - -- Same as 0x23789E777D14CE44 - ["NET_GAMESERVER_TRANSFER_WALLET_TO_BANK_GET_STATUS"]=--[[int]] function()return native_invoker.unified_int(0x350AA5EBC03D3BD2, "")end, - -- Used to be NETWORK_SHOP_CASH_TRANSFER_SET_TELEMETRY_NONCE_SEED - ["NET_GAMESERVER_TRANSFER_CASH_SET_TELEMETRY_NONCE_SEED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x498C1E05CE5F7877, "")end, - ["NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED"]=--[[BOOL (bool)]] function(--[[int]] p0)return native_invoker.unified_bool(p0, 0x9507D4271988E1AE, "i")end, -} -NETWORK={ - -- Online version is defined here: update\update.rpf\common\data\version.txt - -- - -- Example: - -- - -- [ONLINE_VERSION_NUMBER] - -- 1.33 - -- - -- _GET_ONLINE_VERSION() will return "1.33" - ["GET_ONLINE_VERSION"]=--[[string]] function()return native_invoker.unified_string(0xFCA9373EF340AC0A, "")end, - -- Returns whether the player is signed into Social Club. - ["NETWORK_IS_SIGNED_IN"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x054354A99211EB96, "")end, - -- Returns whether the game is not in offline mode. - -- - -- seemed not to work for some ppl - ["NETWORK_IS_SIGNED_ONLINE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x1077788E268557C2, "")end, - -- This function is hard-coded to always return 1. - ["NETWORK_IS_NP_AVAILABLE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xBD545D44CCE70597, "")end, - -- This function is hard-coded to always return 1. - ["NETWORK_IS_NP_PENDING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xEBCAB9E5048434F4, "")end, - -- Hardcoded to return zero. - -- - -- ==== PS4 specific info ==== - -- - -- Returns some sort of unavailable reason: - -- -1 = REASON_INVALID - -- 0 = REASON_OTHER - -- 1 = REASON_SYSTEM_UPDATE - -- 2 = REASON_GAME_UPDATE - -- 3 = REASON_SIGNED_OUT - -- 4 = REASON_AGE - -- 5 = REASON_CONNECTION - -- - -- ================================= - ["NETWORK_GET_NP_UNAVAILABLE_REASON"]=--[[int]] function()return native_invoker.unified_int(0x74FB3E29E6D10FA9, "")end, - -- This function is hard-coded to always return 1. - ["NETWORK_IS_CONNETED_TO_NP_PRESENCE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x7808619F31FF22DB, "")end, - -- This function is hard-coded to always return 0. - ["NETWORK_IS_LOGGED_IN_TO_PSN"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xA0FA4EC6A05DA44E, "")end, - -- Returns whether the signed-in user has valid Rockstar Online Services (ROS) credentials. - ["NETWORK_HAS_VALID_ROS_CREDENTIALS"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x85443FF4C328F53B, "")end, - ["NETWORK_IS_REFRESHING_ROS_CREDENTIALS"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x8D11E61A4ABF49CC, "")end, - ["NETWORK_IS_CLOUD_AVAILABLE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x9A4CF4F48AD77302, "")end, - ["NETWORK_HAS_SOCIAL_CLUB_ACCOUNT"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x67A5589628E0CFF6, "")end, - ["NETWORK_ARE_SOCIAL_CLUB_POLICIES_CURRENT"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xBA9775570DB788CF, "")end, - -- If you are host, returns true else returns false. - ["NETWORK_IS_HOST"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x8DB296B814EDDA07, "")end, - ["NETWORK_GET_HOST_PLAYER_INDEX"]=--[[Player (int)]] function()return native_invoker.unified_int(0x8251FB94DC4FDFC8, "")end, - ["NETWORK_WAS_GAME_SUSPENDED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x4237E822315D8BA9, "")end, - ["NETWORK_HAVE_ONLINE_PRIVILEGES"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x25CB5A9F37BFD063, "")end, - ["NETWORK_HAS_AGE_RESTRICTIONS"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x1353F87E89946207, "")end, - ["NETWORK_HAVE_USER_CONTENT_PRIVILEGES"]=--[[BOOL (bool)]] function(--[[int]] p0)return native_invoker.unified_bool(p0, 0x72D918C99BCACC54, "i")end, - ["NETWORK_HAVE_COMMUNICATION_PRIVILEGES"]=--[[BOOL (bool)]] function(--[[int]] p0,--[[Player (int)]] player)return native_invoker.unified_bool(p0, player, 0xAEEF48CDF5B6CE7C, "ii")end, - -- Appears to be PlayStation-specific. Always returns true on other platforms if signed in with the primary user profile - ["_NETWORK_HAVE_PLATFORM_COMMUNICATION_PRIVILEGES"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xE1E02509169C124E, "")end, - ["NETWORK_CHECK_ONLINE_PRIVILEGES"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_bool(p0, p1, 0x78321BEA235FD8CD, "ib")end, - ["NETWORK_CHECK_USER_CONTENT_PRIVILEGES"]=--[[BOOL (bool)]] function(--[[int]] p0,--[[int]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_bool(p0, p1, p2, 0x595F028698072DD9, "iib")end, - ["NETWORK_CHECK_COMMUNICATION_PRIVILEGES"]=--[[BOOL (bool)]] function(--[[int]] p0,--[[int]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_bool(p0, p1, p2, 0x83F28CE49FBBFFBA, "iib")end, - ["NETWORK_CHECK_TEXT_COMMUNICATION_PRIVILEGES"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_bool(p0, p1, p2, 0x07EAB372C8841D99, "iii")end, - ["NETWORK_IS_USING_ONLINE_PROMOTION"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x906CA41A4B74ECA4, "")end, - ["NETWORK_SHOULD_SHOW_PROMOTION_ALERT_SCREEN"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x023ACAB2DC9DC4A4, "")end, - ["NETWORK_HAS_SOCIAL_NETWORKING_SHARING_PRIV"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x76BF03FADBF154F5, "")end, - ["NETWORK_GET_AGE_GROUP"]=--[[int]] function()return native_invoker.unified_int(0x9614B71F8ADB982B, "")end, - ["NETWORK_CHECK_PRIVILEGES"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_bool(p0, p1, p2, 0x0CF6CC51AA18F0F8, "iii")end, - -- Hardcoded to return false. - ["NETWORK_IS_PRIVILEGE_CHECK_IN_PROGRESS"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x64E5C4CC82847B73, "")end, - ["NETWORK_SET_PRIVILEGE_CHECK_RESULT_NOT_NEEDED"]=--[[void]] function()return native_invoker.unified_void(0x1F7BC3539F9E0224, "")end, - -- Hardcoded to return true. - ["NETWORK_RESOLVE_PRIVILEGE_USER_CONTENT"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xDE9225854F37BF72, "")end, - ["NETWORK_HAVE_PLATFORM_SUBSCRIPTION"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x5EA784D197556507, "")end, - ["NETWORK_IS_PLATFORM_SUBSCRIPTION_CHECK_PENDING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xA8ACB6459542A8C8, "")end, - ["NETWORK_SHOW_ACCOUNT_UPGRADE_UI"]=--[[void]] function()return native_invoker.unified_void(0x83FE8D7229593017, "")end, - ["NETWORK_IS_SHOWING_SYSTEM_UI_OR_RECENTLY_REQUESTED_UPSELL"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x7788DFE15016A182, "")end, - ["NETWORK_NEED_TO_START_NEW_GAME_BUT_BLOCKED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x53C10C8BD774F2C9, "")end, - ["NETWORK_CAN_BAIL"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x580CE4438479CC61, "")end, - ["NETWORK_BAIL"]=--[[void]] function(--[[int]] p0,--[[int]] p1,--[[int]] p2)return native_invoker.unified_void(p0, p1, p2, 0x95914459A87EBA28, "iii")end, - ["NETWORK_ON_RETURN_TO_SINGLE_PLAYER"]=--[[void]] function()return native_invoker.unified_void(0x283B6062A2C01E9B, "")end, - ["NETWORK_TRANSITION_START"]=--[[BOOL (bool)]] function(--[[int]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_bool(p0, p1, p2, p3, 0x8B4FFC790CA131EF, "iiii")end, - ["NETWORK_TRANSITION_ADD_STAGE"]=--[[BOOL (bool)]] function(--[[Hash (int)]] hash,--[[int]] p1,--[[int]] p2,--[[int]] state,--[[int]] p4)return native_invoker.unified_bool(hash, p1, p2, state, p4, 0xC3BFED92026A2AAD, "iiiii")end, - ["NETWORK_TRANSITION_FINISH"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_bool(p0, p1, p2, 0x04918A41BC9B8157, "iii")end, - -- 11 - Need to download tunables. - -- 12 - Need to download background script. - -- - -- Returns 1 if the multiplayer is loaded, otherwhise 0. - ["NETWORK_CAN_ACCESS_MULTIPLAYER"]=--[[BOOL (bool)]] function(--[[int* (pointer)]] loadingState)return native_invoker.unified_bool(loadingState, 0xAF50DA1A3F8B1BA4, "p")end, - ["NETWORK_IS_MULTIPLAYER_DISABLED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x9747292807126EDA, "")end, - ["NETWORK_CAN_ENTER_MULTIPLAYER"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x7E782A910C362C25, "")end, - ["NETWORK_SESSION_DO_FREEROAM_QUICKMATCH"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_bool(p0, p1, p2, 0x330ED4D05491934F, "iii")end, - ["NETWORK_SESSION_DO_FRIEND_MATCHMAKING"]=--[[BOOL (bool)]] function(--[[int]] p0,--[[int]] p1,--[[int]] p2)return native_invoker.unified_bool(p0, p1, p2, 0x2CFC76E0D087C994, "iii")end, - -- p4 seems to be unused in 1.60/build 2628 - ["NETWORK_SESSION_DO_CREW_MATCHMAKING"]=--[[BOOL (bool)]] function(--[[int]] crewId,--[[int]] p1,--[[int]] p2,--[[int]] maxPlayers)return native_invoker.unified_bool(crewId, p1, p2, maxPlayers, 0x94BC51E9449D917F, "iiii")end, - ["NETWORK_SESSION_DO_ACTIVITY_QUICKMATCH"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_bool(p0, p1, p2, p3, p4, 0xBE3E347A87ACEB82, "iiiii")end, - -- Does nothing in online but in offline it will cause the screen to fade to black. Nothing happens past then, the screen will sit at black until you restart GTA. Other stuff must be needed to actually host a session. - ["NETWORK_SESSION_HOST"]=--[[BOOL (bool)]] function(--[[int]] p0,--[[int]] maxPlayers,--[[BOOL (bool)]] p2)return native_invoker.unified_bool(p0, maxPlayers, p2, 0x6F3D4ED9BEE4E61D, "iib")end, - ["NETWORK_SESSION_HOST_CLOSED"]=--[[BOOL (bool)]] function(--[[int]] p0,--[[int]] maxPlayers)return native_invoker.unified_bool(p0, maxPlayers, 0xED34C0C02C098BB7, "ii")end, - -- Does nothing in online but in offline it will cause the screen to fade to black. Nothing happens past then, the screen will sit at black until you restart GTA. Other stuff must be needed to actually host a session. - ["NETWORK_SESSION_HOST_FRIENDS_ONLY"]=--[[BOOL (bool)]] function(--[[int]] p0,--[[int]] maxPlayers)return native_invoker.unified_bool(p0, maxPlayers, 0xB9CFD27A5D578D83, "ii")end, - ["NETWORK_SESSION_IS_CLOSED_FRIENDS"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xFBCFA2EA2E206890, "")end, - ["NETWORK_SESSION_IS_CLOSED_CREW"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x74732C6CA90DA2B4, "")end, - ["NETWORK_SESSION_IS_SOLO"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xF3929C2379B60CCE, "")end, - ["NETWORK_SESSION_IS_PRIVATE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xCEF70AA5B3F89BA1, "")end, - ["_NETWORK_SESSION_LEAVE_INCLUDING_REASON"]=--[[BOOL (bool)]] function(--[[int]] leaveFlags,--[[int]] leaveReason)return native_invoker.unified_bool(leaveFlags, leaveReason, 0xE0128328CF1FD9F4, "ii")end, - -- p0 is always false and p1 varies. - -- NETWORK_SESSION_END(0, 1) - -- NETWORK_SESSION_END(0, 0) - -- Results in: "Connection to session lost due to an unknown network error. Please return to Grand Theft Auto V and try again later." - ["NETWORK_SESSION_END"]=--[[BOOL (bool)]] function(--[[BOOL (bool)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_bool(p0, p1, 0xA02E59562D711006, "bb")end, - ["NETWORK_SESSION_LEAVE"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0xB9351A07A0D458B1, "i")end, - -- Only works as host. - ["NETWORK_SESSION_KICK_PLAYER"]=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0xFA8904DC5F304220, "i")end, - ["NETWORK_SESSION_GET_KICK_VOTE"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0xD6D09A6F32F49EF1, "i")end, - ["NETWORK_SESSION_RESERVE_SLOTS_TRANSITION"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_bool(p0, p1, p2, 0x041C7F2A6C9894E6, "iii")end, - ["NETWORK_JOIN_PREVIOUSLY_FAILED_SESSION"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x59DF79317F85A7E0, "")end, - ["NETWORK_JOIN_PREVIOUSLY_FAILED_TRANSITION"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xFFE1E5B792D92B34, "")end, - ["NETWORK_SESSION_SET_MATCHMAKING_GROUP"]=--[[void]] function(--[[int]] matchmakingGroup)return native_invoker.unified_void(matchmakingGroup, 0x49EC8030F5015F8B, "i")end, - -- playerType is an unsigned int from 0 to 4 - -- 0 = regular joiner - -- 4 = spectator - ["NETWORK_SESSION_SET_MATCHMAKING_GROUP_MAX"]=--[[void]] function(--[[int]] playerType,--[[int]] playerCount)return native_invoker.unified_void(playerType, playerCount, 0x8B6A4DD0AF9CE215, "ii")end, - ["NETWORK_SESSION_GET_MATCHMAKING_GROUP_FREE"]=--[[int]] function(--[[int]] p0)return native_invoker.unified_int(p0, 0x56CE820830EF040B, "i")end, - -- groupId range: [0, 4] - ["NETWORK_SESSION_ADD_ACTIVE_MATCHMAKING_GROUP"]=--[[void]] function(--[[int]] groupId)return native_invoker.unified_void(groupId, 0xCAE55F48D3D7875C, "i")end, - ["NETWORK_SESSION_SET_UNIQUE_CREW_LIMIT"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xF49ABC20D8552257, "i")end, - ["NETWORK_SESSION_GET_UNIQUE_CREW_LIMIT"]=--[[int]] function()return native_invoker.unified_int(0xCDC936BF35EDCB73, "")end, - ["NETWORK_SESSION_SET_UNIQUE_CREW_LIMIT_TRANSITION"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x4811BBAC21C5FCD5, "i")end, - ["NETWORK_SESSION_SET_UNIQUE_CREW_ONLY_CREWS_TRANSITION"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x5539C3EBF104A53A, "b")end, - ["NETWORK_SESSION_SET_CREW_LIMIT_MAX_MEMBERS_TRANSITION"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x702BC4D605522539, "i")end, - ["NETWORK_SESSION_SET_MATCHMAKING_PROPERTY_ID"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x3F52E880AAF6C8CA, "b")end, - -- p0 in the decompiled scripts is always the stat mesh_texblend * 0.07 to int - ["NETWORK_SESSION_SET_MATCHMAKING_MENTAL_STATE"]=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0xF1EEA2DDA9FFA69D, "i")end, - ["NETWORK_SESSION_SET_NUM_BOSSES"]=--[[void]] function(--[[int]] num)return native_invoker.unified_void(num, 0x59D421683D31835A, "i")end, - ["NETWORK_SESSION_SET_SCRIPT_VALIDATE_JOIN"]=--[[void]] function()return native_invoker.unified_void(0x1153FA02A659051C, "")end, - ["NETWORK_SESSION_VALIDATE_JOIN"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xC19F6C8E7865A6FF, "b")end, - -- .. - ["NETWORK_ADD_FOLLOWERS"]=--[[void]] function(--[[int* (pointer)]] p0,--[[int]] p1)return native_invoker.unified_void(p0, p1, 0x236406F60CF216D6, "pi")end, - ["NETWORK_CLEAR_FOLLOWERS"]=--[[void]] function()return native_invoker.unified_void(0x058F43EC59A8631A, "")end, - ["NETWORK_GET_GLOBAL_MULTIPLAYER_CLOCK"]=--[[void]] function(--[[int* (pointer)]] hours,--[[int* (pointer)]] minutes,--[[int* (pointer)]] seconds)return native_invoker.unified_void(hours, minutes, seconds, 0x6D03BFBD643B2A02, "ppp")end, - ["NETWORK_SESSION_SET_GAMEMODE"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x600F8CB31C7AAB6E, "i")end, - ["NETWORK_SESSION_GET_HOST_AIM_PREFERENCE"]=--[[int]] function()return native_invoker.unified_int(0xDFFA5BE8381C3314, "")end, - ["NETWORK_FIND_GAMERS_IN_CREW"]=--[[BOOL (bool)]] function(--[[int]] crewId)return native_invoker.unified_bool(crewId, 0xE532D6811B3A4D2A, "i")end, - -- Uses attributes to find players with similar stats. Upper/Lower limit must be above zero or the fallback limit +/-0.1 is used. - -- There can be up to 15 attributes, they are as follows: - -- - -- 0 = Races - -- 1 = Parachuting - -- 2 = Horde - -- 3 = Darts - -- 4 = Arm Wrestling - -- 5 = Tennis - -- 6 = Golf - -- 7 = Shooting Range - -- 8 = Deathmatch - -- 9 = MPPLY_MCMWIN/MPPLY_CRMISSION - ["NETWORK_FIND_MATCHED_GAMERS"]=--[[BOOL (bool)]] function(--[[int]] attribute,--[[float]] fallbackLimit,--[[float]] lowerLimit,--[[float]] upperLimit)return native_invoker.unified_bool(attribute, fallbackLimit, lowerLimit, upperLimit, 0xF7B2CFDE5C9F700D, "ifff")end, - ["NETWORK_IS_FINDING_GAMERS"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xDDDF64C91BFCF0AA, "")end, - ["NETWORK_DID_FIND_GAMERS_SUCCEED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xF9B83B77929D8863, "")end, - ["NETWORK_GET_NUM_FOUND_GAMERS"]=--[[int]] function()return native_invoker.unified_int(0xA1B043EE79A916FB, "")end, - ["NETWORK_GET_FOUND_GAMER"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[Any (int)]] p1)return native_invoker.unified_bool(p0, p1, 0x9DCFF2AFB68B3476, "pi")end, - ["NETWORK_CLEAR_FOUND_GAMERS"]=--[[void]] function()return native_invoker.unified_void(0x6D14CCEE1B40381A, "")end, - ["NETWORK_QUEUE_GAMER_FOR_STATUS"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_bool(p0, 0x85A0EF54A500882C, "p")end, - ["NETWORK_GET_GAMER_STATUS_FROM_QUEUE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x2CC848A861D01493, "")end, - ["NETWORK_IS_GETTING_GAMER_STATUS"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x94A8394D150B013A, "")end, - ["NETWORK_DID_GET_GAMER_STATUS_SUCCEED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x5AE17C6B0134B7F1, "")end, - ["NETWORK_GET_GAMER_STATUS_RESULT"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[Any (int)]] p1)return native_invoker.unified_bool(p0, p1, 0x02A8BEC6FD9AF660, "pi")end, - ["NETWORK_CLEAR_GET_GAMER_STATUS"]=--[[void]] function()return native_invoker.unified_void(0x86E0660E4F5C956D, "")end, - ["NETWORK_SESSION_JOIN_INVITE"]=--[[void]] function()return native_invoker.unified_void(0xC6F8AB8A4189CF3A, "")end, - ["NETWORK_SESSION_CANCEL_INVITE"]=--[[void]] function()return native_invoker.unified_void(0x2FBF47B1B36D36F9, "")end, - ["NETWORK_SESSION_FORCE_CANCEL_INVITE"]=--[[void]] function()return native_invoker.unified_void(0xA29177F7703B5644, "")end, - ["NETWORK_HAS_PENDING_INVITE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xAC8C7B9B88C4A668, "")end, - ["NETWORK_HAS_CONFIRMED_INVITE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC42DD763159F3461, "")end, - -- Triggers a CEventNetworkInviteConfirmed event - ["NETWORK_REQUEST_INVITE_CONFIRMED_EVENT"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x62A0296C1BB1CEB3, "")end, - ["NETWORK_SESSION_WAS_INVITED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x23DFB504655D0CE4, "")end, - ["NETWORK_SESSION_GET_INVITER"]=--[[void]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_void(gamerHandle, 0xE57397B4A3429DD0, "p")end, - -- Seems to be true while "Getting GTA Online session details" shows up. - ["NETWORK_SESSION_IS_AWAITING_INVITE_RESPONSE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xD313DE83394AF134, "")end, - ["NETWORK_SESSION_IS_DISPLAYING_INVITE_CONFIRMATION"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xBDB6F89C729CF388, "")end, - ["NETWORK_SUPPRESS_INVITE"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xA0682D67EF1FBA3D, "b")end, - ["NETWORK_BLOCK_INVITES"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x34F9E9049454A7A0, "b")end, - ["NETWORK_BLOCK_JOIN_QUEUE_INVITES"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xCFEB8AF24FC1D0BB, "b")end, - ["NETWORK_SET_CAN_RECEIVE_RS_INVITES"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x68980414688F7F9D, "b")end, - ["NETWORK_STORE_INVITE_THROUGH_RESTART"]=--[[void]] function()return native_invoker.unified_void(0xF814FEC6A19FD6E0, "")end, - ["NETWORK_ALLOW_INVITE_PROCESS_IN_PLAYER_SWITCH"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x6B07B9CE4D390375, "b")end, - ["NETWORK_SET_SCRIPT_READY_FOR_EVENTS"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x7AC752103856FB20, "b")end, - ["NETWORK_IS_OFFLINE_INVITE_PENDING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x74698374C45701D2, "")end, - ["NETWORK_CLEAR_OFFLINE_INVITE_PENDING"]=--[[void]] function()return native_invoker.unified_void(0x140E6A44870A11CE, "")end, - -- Loads up the map that is loaded when beeing in mission creator - -- Player gets placed in a mix between online/offline mode - -- p0 is always 2 in R* scripts. - -- - -- Appears to be patched in gtav b757 (game gets terminated) alonside with most other network natives to prevent online modding ~ghost30812 - ["NETWORK_SESSION_HOST_SINGLE_PLAYER"]=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0xC74C33FCA52856D5, "i")end, - ["NETWORK_SESSION_LEAVE_SINGLE_PLAYER"]=--[[void]] function()return native_invoker.unified_void(0x3442775428FD2DAA, "")end, - ["NETWORK_IS_GAME_IN_PROGRESS"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x10FAB35428CCC9D7, "")end, - ["NETWORK_IS_SESSION_ACTIVE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xD83C2B94E7508980, "")end, - ["NETWORK_IS_IN_SESSION"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xCA97246103B63917, "")end, - -- Hardcoded to return 0. - ["_NETWORK_IS_AMERICAS_VERSION"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x0292BD7F3766CEBC, "")end, - -- This checks if player is playing on gta online or not. - -- Please add an if and block your mod if this is "true". - ["NETWORK_IS_SESSION_STARTED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x9DE624D2FC4B603F, "")end, - ["NETWORK_IS_SESSION_BUSY"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xF4435D66A8E2905E, "")end, - ["NETWORK_CAN_SESSION_END"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x4EEBC3694E49C572, "")end, - ["NETWORK_GET_GAME_MODE"]=--[[int]] function()return native_invoker.unified_int(0x4C9034162368E206, "")end, - ["NETWORK_SESSION_MARK_VISIBLE"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x271CC6AB59EBF9A5, "b")end, - ["NETWORK_SESSION_IS_VISIBLE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xBA416D68C631496A, "")end, - ["NETWORK_SESSION_BLOCK_JOIN_REQUESTS"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xA73667484D7037C3, "b")end, - -- num player slots allowed in session, seems to work? 32 max - ["NETWORK_SESSION_CHANGE_SLOTS"]=--[[void]] function(--[[int]] slots,--[[BOOL (bool)]] p1)return native_invoker.unified_void(slots, p1, 0xB4AB419E0D86ACAE, "ib")end, - ["NETWORK_SESSION_GET_PRIVATE_SLOTS"]=--[[int]] function()return native_invoker.unified_int(0x53AFD64C6758F2F9, "")end, - ["NETWORK_SESSION_VOICE_HOST"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x9C1556705F864230, "")end, - ["NETWORK_SESSION_VOICE_LEAVE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x6793E42BE02B575D, "")end, - ["NETWORK_SESSION_VOICE_CONNECT_TO_PLAYER"]=--[[void]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_void(gamerHandle, 0xABD5E88B8A2D3DB2, "p")end, - ["NETWORK_SESSION_VOICE_RESPOND_TO_REQUEST"]=--[[void]] function(--[[BOOL (bool)]] p0,--[[int]] p1)return native_invoker.unified_void(p0, p1, 0x7F8413B7FC2AA6B9, "bi")end, - ["NETWORK_SESSION_VOICE_SET_TIMEOUT"]=--[[void]] function(--[[int]] timeout)return native_invoker.unified_void(timeout, 0x5B8ED3DB018927B1, "i")end, - ["NETWORK_SESSION_IS_IN_VOICE_SESSION"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x855BC38818F6F684, "")end, - ["NETWORK_SESSION_IS_VOICE_SESSION_ACTIVE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xB5D3453C98456528, "")end, - ["NETWORK_SESSION_IS_VOICE_SESSION_BUSY"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xEF0912DDF7C4CB4B, "")end, - -- Message is limited to 64 characters. - ["NETWORK_SEND_TEXT_MESSAGE"]=--[[BOOL (bool)]] function(--[[string]] message,--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(message, gamerHandle, 0x3A214F2EC889B100, "sp")end, - ["NETWORK_SET_ACTIVITY_SPECTATOR"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x75138790B4359A74, "b")end, - ["NETWORK_IS_ACTIVITY_SPECTATOR"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x12103B9E0C9F92FB, "")end, - ["NETWORK_SET_ACTIVITY_PLAYER_MAX"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x0E4F77F7B9D74D84, "i")end, - ["NETWORK_SET_ACTIVITY_SPECTATOR_MAX"]=--[[void]] function(--[[int]] maxSpectators)return native_invoker.unified_void(maxSpectators, 0x9D277B76D1D12222, "i")end, - ["NETWORK_GET_ACTIVITY_PLAYER_NUM"]=--[[int]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_int(p0, 0x73E2B500410DA5A2, "b")end, - ["NETWORK_IS_ACTIVITY_SPECTATOR_FROM_HANDLE"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0x2763BBAA72A7BCB9, "p")end, - -- p0: Unknown int - -- p1: Unknown int - -- p2: Unknown int - -- p3: Unknown int - -- p4: Unknown always 0 in decompiled scripts - -- p5: BOOL purpose unknown, both 0 and 1 are used in decompiled scripts. - -- p6: BOOL purpose unknown, both 0 and 1 are used in decompiled scripts. - -- p7: Unknown int, it's an int according to decompiled scripts, however the value is always 0 or 1. - -- p8: Unknown int, it's an int according to decompiled scripts, however the value is always 0 or 1. - -- p9: Unknown int, sometimes 0, but also 32768 or 16384 appear in decompiled scripst, maybe a flag of some sort? - -- - -- From what I can tell it looks like it does the following: - -- Creates/hosts a new transition to another online session, using this in FiveM will result in other players being disconencted from the server/preventing them from joining. This is most likely because I entered the wrong session parameters since they're pretty much all unknown right now. - -- You also need to use `NetworkJoinTransition(Player player)` and `NetworkLaunchTransition()`. - ["NETWORK_HOST_TRANSITION"]=--[[BOOL (bool)]] function(--[[int]] p0,--[[int]] p1,--[[int]] p2,--[[int]] p3,--[[Any (int)]] p4,--[[BOOL (bool)]] p5,--[[BOOL (bool)]] p6,--[[int]] p7,--[[Any (int)]] p8,--[[int]] p9)return native_invoker.unified_bool(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, 0xA60BB5CE242BB254, "iiiiibbiii")end, - ["NETWORK_DO_TRANSITION_QUICKMATCH"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5)return native_invoker.unified_bool(p0, p1, p2, p3, p4, p5, 0x71FB0EBCD4915D56, "iiiiii")end, - ["NETWORK_DO_TRANSITION_QUICKMATCH_ASYNC"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5)return native_invoker.unified_bool(p0, p1, p2, p3, p4, p5, 0xA091A5E44F0072E5, "iiiiii")end, - ["NETWORK_DO_TRANSITION_QUICKMATCH_WITH_GROUP"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any* (pointer)]] p4,--[[Any (int)]] p5,--[[Any (int)]] p6,--[[Any (int)]] p7)return native_invoker.unified_bool(p0, p1, p2, p3, p4, p5, p6, p7, 0x9C4AB58491FDC98A, "iiiipiii")end, - ["NETWORK_JOIN_GROUP_ACTIVITY"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xA06509A691D12BE4, "")end, - ["NETWORK_CLEAR_GROUP_ACTIVITY"]=--[[void]] function()return native_invoker.unified_void(0x1888694923EF4591, "")end, - ["NETWORK_RETAIN_ACTIVITY_GROUP"]=--[[void]] function()return native_invoker.unified_void(0xB13E88E655E5A3BC, "")end, - ["NETWORK_IS_TRANSITION_CLOSED_FRIENDS"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x6512765E3BE78C50, "")end, - ["NETWORK_IS_TRANSITION_CLOSED_CREW"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x0DBD5D7E3C5BEC3B, "")end, - ["NETWORK_IS_TRANSITION_SOLO"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x5DC577201723960A, "")end, - ["NETWORK_IS_TRANSITION_PRIVATE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x5A6AA44FF8E931E6, "")end, - ["NETWORK_GET_NUM_TRANSITION_NON_ASYNC_GAMERS"]=--[[int]] function()return native_invoker.unified_int(0x617F49C2668E6155, "")end, - ["NETWORK_MARK_AS_PREFERRED_ACTIVITY"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x261E97AD7BCF3D40, "b")end, - ["NETWORK_MARK_AS_WAITING_ASYNC"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x39917E1B4CB0F911, "b")end, - ["NETWORK_SET_IN_PROGRESS_FINISH_TIME"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x2CE9D95E4051AECD, "i")end, - ["NETWORK_SET_TRANSITION_CREATOR_HANDLE"]=--[[void]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_void(p0, 0xEF26739BCD9907D5, "p")end, - ["NETWORK_CLEAR_TRANSITION_CREATOR_HANDLE"]=--[[void]] function()return native_invoker.unified_void(0xFB3272229A82C759, "")end, - ["NETWORK_INVITE_GAMERS_TO_TRANSITION"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[Any (int)]] p1)return native_invoker.unified_bool(p0, p1, 0x4A595C32F77DFF76, "pi")end, - ["NETWORK_SET_GAMER_INVITED_TO_TRANSITION"]=--[[void]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_void(gamerHandle, 0xCA2C8073411ECDB6, "p")end, - ["NETWORK_LEAVE_TRANSITION"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xD23A1A815D21DB19, "")end, - ["NETWORK_LAUNCH_TRANSITION"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x2DCF46CB1A4F0884, "")end, - -- Appears to set whether a transition should be started when the session is migrating. - ["NETWORK_SET_DO_NOT_LAUNCH_FROM_JOIN_AS_MIGRATED_HOST"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xA2E9C1AB8A92E8CD, "b")end, - ["NETWORK_CANCEL_TRANSITION_MATCHMAKING"]=--[[void]] function()return native_invoker.unified_void(0x023782EFC70585EE, "")end, - ["NETWORK_BAIL_TRANSITION"]=--[[void]] function(--[[int]] p0,--[[int]] p1,--[[int]] p2)return native_invoker.unified_void(p0, p1, p2, 0xEAA572036990CD1B, "iii")end, - ["NETWORK_DO_TRANSITION_TO_GAME"]=--[[BOOL (bool)]] function(--[[BOOL (bool)]] p0,--[[int]] maxPlayers)return native_invoker.unified_bool(p0, maxPlayers, 0x3E9BB38102A589B0, "bi")end, - ["NETWORK_DO_TRANSITION_TO_NEW_GAME"]=--[[BOOL (bool)]] function(--[[BOOL (bool)]] p0,--[[int]] maxPlayers,--[[BOOL (bool)]] p2)return native_invoker.unified_bool(p0, maxPlayers, p2, 0x4665F51EFED00034, "bib")end, - -- p2 is true 3/4 of the occurrences I found. - -- 'players' is the number of players for a session. On PS3/360 it's always 18. On PC it's 32. - ["NETWORK_DO_TRANSITION_TO_FREEMODE"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[Any (int)]] p1,--[[BOOL (bool)]] p2,--[[int]] players,--[[BOOL (bool)]] p4)return native_invoker.unified_bool(p0, p1, p2, players, p4, 0x3AAD8B2FCA1E289F, "pibib")end, - ["NETWORK_DO_TRANSITION_TO_NEW_FREEMODE"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[Any (int)]] p1,--[[int]] players,--[[BOOL (bool)]] p3,--[[BOOL (bool)]] p4,--[[BOOL (bool)]] p5)return native_invoker.unified_bool(p0, p1, players, p3, p4, p5, 0x9E80A5BA8109F974, "piibbb")end, - ["NETWORK_IS_TRANSITION_TO_GAME"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x9D7696D8F4FA6CB7, "")end, - -- Returns count. - ["NETWORK_GET_TRANSITION_MEMBERS"]=--[[int]] function(--[[Any* (pointer)]] data,--[[int]] dataCount)return native_invoker.unified_int(data, dataCount, 0x73B000F7FBC55829, "pi")end, - ["NETWORK_APPLY_TRANSITION_PARAMETER"]=--[[void]] function(--[[int]] p0,--[[int]] p1)return native_invoker.unified_void(p0, p1, 0x521638ADA1BA0D18, "ii")end, - ["NETWORK_APPLY_TRANSITION_PARAMETER_STRING"]=--[[void]] function(--[[int]] p0,--[[string]] string,--[[BOOL (bool)]] p2)return native_invoker.unified_void(p0, string, p2, 0xEBEFC2E77084F599, "isb")end, - ["NETWORK_SEND_TRANSITION_GAMER_INSTRUCTION"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle,--[[string]] p1,--[[int]] p2,--[[int]] p3,--[[BOOL (bool)]] p4)return native_invoker.unified_bool(gamerHandle, p1, p2, p3, p4, 0x31D1D2B858D25E6B, "psiib")end, - ["NETWORK_MARK_TRANSITION_GAMER_AS_FULLY_JOINED"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_bool(p0, 0x5728BB6D63E3FF1D, "p")end, - ["NETWORK_IS_TRANSITION_HOST"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x0B824797C9BF2159, "")end, - ["NETWORK_IS_TRANSITION_HOST_FROM_HANDLE"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0x6B5C83BA3EFE6A10, "p")end, - ["NETWORK_GET_TRANSITION_HOST"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0x65042B9774C4435E, "p")end, - ["NETWORK_IS_IN_TRANSITION"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x68049AEFF83D8F0A, "")end, - ["NETWORK_IS_TRANSITION_STARTED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x53FA83401D9C07FE, "")end, - ["NETWORK_IS_TRANSITION_BUSY"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x520F3282A53D26B7, "")end, - ["NETWORK_IS_TRANSITION_MATCHMAKING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x292564C735375EDF, "")end, - ["NETWORK_IS_TRANSITION_LEAVE_POSTPONED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC571D0E77D8BBC29, "")end, - ["NETWORK_TRANSITION_SET_IN_PROGRESS"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x1398582B7F72B3ED, "i")end, - ["NETWORK_TRANSITION_SET_CONTENT_CREATOR"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x1F8E00FB18239600, "i")end, - ["NETWORK_TRANSITION_SET_ACTIVITY_ISLAND"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xF6F4383B7C92F11A, "i")end, - ["NETWORK_OPEN_TRANSITION_MATCHMAKING"]=--[[void]] function()return native_invoker.unified_void(0x2B3A8F7CA3A38FDE, "")end, - ["NETWORK_CLOSE_TRANSITION_MATCHMAKING"]=--[[void]] function()return native_invoker.unified_void(0x43F4DBA69710E01E, "")end, - ["NETWORK_IS_TRANSITION_OPEN_TO_MATCHMAKING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x37A4494483B9F5C9, "")end, - ["NETWORK_SET_TRANSITION_VISIBILITY_LOCK"]=--[[void]] function(--[[BOOL (bool)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0x0C978FDA19692C2C, "bb")end, - ["NETWORK_IS_TRANSITION_VISIBILITY_LOCKED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xD0A484CB2F829FBE, "")end, - ["NETWORK_SET_TRANSITION_ACTIVITY_ID"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x30DE938B516F0AD2, "i")end, - ["NETWORK_CHANGE_TRANSITION_SLOTS"]=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0xEEEDA5E6D7080987, "ib")end, - ["NETWORK_TRANSITION_BLOCK_JOIN_REQUESTS"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x973D76AA760A6CB6, "b")end, - ["NETWORK_HAS_PLAYER_STARTED_TRANSITION"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x9AC9CCBFA8C29795, "i")end, - ["NETWORK_ARE_TRANSITION_DETAILS_VALID"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x2615AA2A695930C1, "i")end, - -- int handle[76]; - -- NETWORK_HANDLE_FROM_FRIEND(iSelectedPlayer, &handle[0], 13); - -- Player uVar2 = NETWORK_GET_PLAYER_FROM_GAMER_HANDLE(&handle[0]); - -- NETWORK_JOIN_TRANSITION(uVar2); - -- nothing doin. - ["NETWORK_JOIN_TRANSITION"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x9D060B08CD63321A, "i")end, - ["NETWORK_HAS_INVITED_GAMER_TO_TRANSITION"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_bool(p0, 0x7284A47B3540E6CF, "p")end, - ["NETWORK_HAS_TRANSITION_INVITE_BEEN_ACKED"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_bool(p0, 0x3F9990BF5F22759C, "p")end, - ["NETWORK_IS_ACTIVITY_SESSION"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x05095437424397FA, "")end, - ["NETWORK_DISABLE_REALTIME_MULTIPLAYER"]=--[[void]] function()return native_invoker.unified_void(0x236905C700FDB54D, "")end, - -- Does nothing. It's just a nullsub. - ["NETWORK_SET_PRESENCE_SESSION_INVITES_BLOCKED"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x4A9FDE3A5A6D0437, "b")end, - ["NETWORK_SEND_INVITE_VIA_PRESENCE"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle,--[[string]] p1,--[[int]] dataCount,--[[int]] p3)return native_invoker.unified_bool(gamerHandle, p1, dataCount, p3, 0xC3C7A6AFDB244624, "psii")end, - ["NETWORK_SEND_TRANSITION_INVITE_VIA_PRESENCE"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle,--[[string]] p1,--[[int]] dataCount,--[[int]] p3)return native_invoker.unified_bool(gamerHandle, p1, dataCount, p3, 0xC116FF9B4D488291, "psii")end, - -- Contains the string "NETWORK_SEND_PRESENCE_TRANSITION_INVITE" but so does 0xC116FF9B4D488291; seems to fit alphabetically here, tho. - ["NETWORK_SEND_IMPORTANT_TRANSITION_INVITE_VIA_PRESENCE"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle,--[[string]] p1,--[[int]] dataCount,--[[int]] p3)return native_invoker.unified_bool(gamerHandle, p1, dataCount, p3, 0x1171A97A3D3981B6, "psii")end, - ["NETWORK_GET_PRESENCE_INVITE_INDEX_BY_ID"]=--[[int]] function(--[[int]] p0)return native_invoker.unified_int(p0, 0x742B58F723233ED9, "i")end, - ["NETWORK_GET_NUM_PRESENCE_INVITES"]=--[[int]] function()return native_invoker.unified_int(0xCEFA968912D0F78D, "")end, - ["NETWORK_ACCEPT_PRESENCE_INVITE"]=--[[BOOL (bool)]] function(--[[int]] p0)return native_invoker.unified_bool(p0, 0xFA91550DF9318B22, "i")end, - ["NETWORK_REMOVE_PRESENCE_INVITE"]=--[[BOOL (bool)]] function(--[[int]] p0)return native_invoker.unified_bool(p0, 0xF0210268DB0974B1, "i")end, - ["NETWORK_GET_PRESENCE_INVITE_ID"]=--[[int]] function(--[[int]] p0)return native_invoker.unified_int(p0, 0xDFF09646E12EC386, "i")end, - ["NETWORK_GET_PRESENCE_INVITE_INVITER"]=--[[string]] function(--[[int]] p0)return native_invoker.unified_string(p0, 0x4962CC4AA2F345B7, "i")end, - ["NETWORK_GET_PRESENCE_INVITE_HANDLE"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any* (pointer)]] p1)return native_invoker.unified_bool(p0, p1, 0x38D5B0FEBB086F75, "ip")end, - ["NETWORK_GET_PRESENCE_INVITE_SESSION_ID"]=--[[int]] function(--[[Any (int)]] p0)return native_invoker.unified_int(p0, 0x26E1CD96B0903D60, "i")end, - ["NETWORK_GET_PRESENCE_INVITE_CONTENT_ID"]=--[[string]] function(--[[int]] p0)return native_invoker.unified_string(p0, 0x24409FC4C55CB22D, "i")end, - ["NETWORK_GET_PRESENCE_INVITE_PLAYLIST_LENGTH"]=--[[int]] function(--[[int]] p0)return native_invoker.unified_int(p0, 0xD39B3FFF8FFDD5BF, "i")end, - ["NETWORK_GET_PRESENCE_INVITE_PLAYLIST_CURRENT"]=--[[int]] function(--[[int]] p0)return native_invoker.unified_int(p0, 0x728C4CC7920CD102, "i")end, - ["NETWORK_GET_PRESENCE_INVITE_FROM_ADMIN"]=--[[BOOL (bool)]] function(--[[int]] p0)return native_invoker.unified_bool(p0, 0x3DBF2DF0AEB7D289, "i")end, - ["NETWORK_GET_PRESENCE_INVITE_IS_TOURNAMENT"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x8806CEBFABD3CE05, "i")end, - ["NETWORK_HAS_FOLLOW_INVITE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x76D9B976C4C09FDE, "")end, - ["NETWORK_ACTION_FOLLOW_INVITE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC88156EBB786F8D5, "")end, - ["NETWORK_CLEAR_FOLLOW_INVITE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x439BFDE3CD0610F6, "")end, - ["NETWORK_REMOVE_AND_CANCEL_ALL_INVITES"]=--[[void]] function()return native_invoker.unified_void(0xEBF8284D8CADEB53, "")end, - ["NETWORK_REMOVE_TRANSITION_INVITE"]=--[[void]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_void(p0, 0x7524B431B2E6F7EE, "p")end, - ["NETWORK_REMOVE_ALL_TRANSITION_INVITE"]=--[[void]] function()return native_invoker.unified_void(0x726E0375C7A26368, "")end, - ["NETWORK_REMOVE_AND_CANCEL_ALL_TRANSITION_INVITES"]=--[[void]] function()return native_invoker.unified_void(0xF083835B70BA9BFE, "")end, - ["NETWORK_INVITE_GAMERS"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[Any (int)]] p1,--[[Any* (pointer)]] p2,--[[Any (int)]] p3)return native_invoker.unified_bool(p0, p1, p2, p3, 0x9D80CD1D0E6327DE, "pipi")end, - ["NETWORK_HAS_INVITED_GAMER"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_bool(p0, 0x4D86CD31E8976ECE, "p")end, - ["NETWORK_HAS_MADE_INVITE_DECISION"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0x71DC455F5CD1C2B1, "p")end, - ["NETWORK_GET_INVITE_REPLY_STATUS"]=--[[int]] function(--[[Any (int)]] p0)return native_invoker.unified_int(p0, 0x3855FB5EB2C5E8B2, "i")end, - ["NETWORK_GET_CURRENTLY_SELECTED_GAMER_HANDLE_FROM_INVITE_MENU"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_bool(p0, 0x74881E6BCAE2327C, "p")end, - ["NETWORK_SET_CURRENTLY_SELECTED_GAMER_HANDLE_FROM_INVITE_MENU"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_bool(p0, 0x7206F674F2A3B1BB, "p")end, - ["NETWORK_SET_INVITE_ON_CALL_FOR_INVITE_MENU"]=--[[void]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_void(p0, 0x66F010A4B031A331, "p")end, - ["NETWORK_CHECK_DATA_MANAGER_SUCCEEDED_FOR_HANDLE"]=--[[BOOL (bool)]] function(--[[int]] p0,--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(p0, gamerHandle, 0x44B37CDCAE765AAE, "ip")end, - ["NETWORK_CHECK_DATA_MANAGER_FOR_HANDLE"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(p0, gamerHandle, 0x4AD490AE1536933B, "ip")end, - ["NETWORK_SET_INVITE_FAILED_MESSAGE_FOR_INVITE_MENU"]=--[[void]] function(--[[Any* (pointer)]] p0,--[[Any* (pointer)]] p1)return native_invoker.unified_void(p0, p1, 0x0D77A82DC2D0DA59, "pp")end, - ["FILLOUT_PM_PLAYER_LIST"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_bool(gamerHandle, p1, p2, 0xCBBD7C4991B64809, "pii")end, - ["FILLOUT_PM_PLAYER_LIST_WITH_NAMES"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[Any* (pointer)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_bool(p0, p1, p2, p3, 0x716B6DB9D1886106, "ppii")end, - ["REFRESH_PLAYER_LIST_STATS"]=--[[BOOL (bool)]] function(--[[int]] p0)return native_invoker.unified_bool(p0, 0xE26CCFF8094D8C74, "i")end, - ["NETWORK_SET_CURRENT_DATA_MANAGER_HANDLE"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_bool(p0, 0x796A87B3B68D1F3D, "p")end, - -- Hardcoded to return false. - ["NETWORK_IS_IN_PLATFORM_PARTY"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x2FC5650B0271CB57, "")end, - ["NETWORK_GET_PLATFORM_PARTY_MEMBER_COUNT"]=--[[int]] function()return native_invoker.unified_int(0x01ABCE5E7CBDA196, "")end, - ["NETWORK_GET_PLATFORM_PARTY_MEMBERS"]=--[[int]] function(--[[Any* (pointer)]] data,--[[int]] dataSize)return native_invoker.unified_int(data, dataSize, 0x120364DE2845DAF8, "pi")end, - -- Hardcoded to return false. - ["NETWORK_IS_IN_PLATFORM_PARTY_CHAT"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xFD8B834A8BA05048, "")end, - -- This would be nice to see if someone is in party chat, but 2 sad notes. - -- 1) It only becomes true if said person is speaking in that party at the time. - -- 2) It will never, become true unless you are in that party with said person. - ["NETWORK_IS_CHATTING_IN_PLATFORM_PARTY"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0x8DE9945BCC9AEC52, "p")end, - ["NETWORK_CAN_QUEUE_FOR_PREVIOUS_SESSION_JOIN"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x2BF66D2E7414F686, "")end, - ["NETWORK_IS_QUEUING_FOR_SESSION_JOIN"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x14922ED3E38761F0, "")end, - ["NETWORK_CLEAR_QUEUED_JOIN_REQUEST"]=--[[void]] function()return native_invoker.unified_void(0x6CE50E47F5543D0C, "")end, - ["NETWORK_SEND_QUEUED_JOIN_REQUEST"]=--[[void]] function()return native_invoker.unified_void(0xFA2888E3833C8E96, "")end, - ["NETWORK_REMOVE_ALL_QUEUED_JOIN_REQUESTS"]=--[[void]] function()return native_invoker.unified_void(0x25D990F8E0E3F13C, "")end, - ["NETWORK_SEED_RANDOM_NUMBER_GENERATOR"]=--[[void]] function(--[[int]] seed)return native_invoker.unified_void(seed, 0xF1B84178F8674195, "i")end, - ["NETWORK_GET_RANDOM_INT"]=--[[int]] function()return native_invoker.unified_int(0x599E4FA1F87EB5FF, "")end, - -- Same as GET_RANDOM_INT_IN_RANGE - ["NETWORK_GET_RANDOM_INT_RANGED"]=--[[int]] function(--[[int]] rangeStart,--[[int]] rangeEnd)return native_invoker.unified_int(rangeStart, rangeEnd, 0xE30CF56F1EFA5F43, "ii")end, - ["_NETWORK_GET_RANDOM_FLOAT_RANGED"]=--[[float]] function(--[[float]] rangeStart,--[[float]] rangeEnd)return native_invoker.unified_float(rangeStart, rangeEnd, 0x04BD27B5ACB67067, "ff")end, - ["NETWORK_PLAYER_IS_CHEATER"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x655B91F1495A9090, "")end, - ["NETWORK_PLAYER_GET_CHEATER_REASON"]=--[[int]] function()return native_invoker.unified_int(0x172F75B6EE2233BA, "")end, - ["NETWORK_PLAYER_IS_BADSPORT"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x19D8DA0E5A68045A, "")end, - ["REMOTE_CHEATER_PLAYER_DETECTED"]=--[[BOOL (bool)]] function(--[[Player (int)]] player,--[[int]] a,--[[int]] b)return native_invoker.unified_bool(player, a, b, 0x472841A026D26D8B, "iii")end, - ["BAD_SPORT_PLAYER_LEFT_DETECTED"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle,--[[int]] event,--[[int]] amountReceived)return native_invoker.unified_bool(gamerHandle, event, amountReceived, 0xEC5E3AF5289DCA81, "pii")end, - ["NETWORK_ADD_INVALID_OBJECT_MODEL"]=--[[void]] function(--[[Hash (int)]] modelHash)return native_invoker.unified_void(modelHash, 0x7F562DBC212E81F9, "i")end, - ["NETWORK_REMOVE_INVALID_OBJECT_MODEL"]=--[[void]] function(--[[Hash (int)]] modelHash)return native_invoker.unified_void(modelHash, 0x791EDB5803B2F468, "i")end, - ["NETWORK_CLEAR_INVALID_OBJECT_MODELS"]=--[[void]] function()return native_invoker.unified_void(0x03B2F03A53D85E41, "")end, - ["NETWORK_APPLY_PED_SCAR_DATA"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] p1)return native_invoker.unified_void(ped, p1, 0xE66C690248F11150, "ii")end, - ["NETWORK_SET_THIS_SCRIPT_IS_NETWORK_SCRIPT"]=--[[void]] function(--[[int]] maxNumMissionParticipants,--[[BOOL (bool)]] p1,--[[int]] instanceId)return native_invoker.unified_void(maxNumMissionParticipants, p1, instanceId, 0x1CA59E306ECB80A5, "ibi")end, - ["NETWORK_TRY_TO_SET_THIS_SCRIPT_IS_NETWORK_SCRIPT"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[Any (int)]] p2)return native_invoker.unified_bool(p0, p1, p2, 0xD1110739EEADB592, "ibi")end, - ["NETWORK_GET_THIS_SCRIPT_IS_NETWORK_SCRIPT"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x2910669969E9535E, "")end, - ["NETWORK_GET_MAX_NUM_PARTICIPANTS"]=--[[int]] function()return native_invoker.unified_int(0xA6C90FBC38E395EE, "")end, - ["NETWORK_GET_NUM_PARTICIPANTS"]=--[[int]] function()return native_invoker.unified_int(0x18D0456E86604654, "")end, - ["NETWORK_GET_SCRIPT_STATUS"]=--[[int]] function()return native_invoker.unified_int(0x57D158647A6BFABF, "")end, - ["NETWORK_REGISTER_HOST_BROADCAST_VARIABLES"]=--[[void]] function(--[[int* (pointer)]] vars,--[[int]] numVars,--[[string]] debugName)return native_invoker.unified_void(vars, numVars, debugName, 0x3E9B2F01C50DF595, "pis")end, - ["NETWORK_REGISTER_PLAYER_BROADCAST_VARIABLES"]=--[[void]] function(--[[int* (pointer)]] vars,--[[int]] numVars,--[[string]] debugName)return native_invoker.unified_void(vars, numVars, debugName, 0x3364AA97340CA215, "pis")end, - ["NETWORK_REGISTER_HIGH_FREQUENCY_HOST_BROADCAST_VARIABLES"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xEA8C0DDB10E2822A, "iii")end, - ["NETWORK_REGISTER_HIGH_FREQUENCY_PLAYER_BROADCAST_VARIABLES"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xD6D7478CA62B8D41, "iii")end, - ["NETWORK_FINISH_BROADCASTING_DATA"]=--[[void]] function()return native_invoker.unified_void(0x64F62AFB081E260D, "")end, - ["NETWORK_HAS_RECEIVED_HOST_BROADCAST_DATA"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x5D10B3795F3FC886, "")end, - ["NETWORK_GET_PLAYER_INDEX"]=--[[Player (int)]] function(--[[Player (int)]] player)return native_invoker.unified_int(player, 0x24FB80D107371267, "i")end, - ["NETWORK_GET_PARTICIPANT_INDEX"]=--[[int]] function(--[[int]] index)return native_invoker.unified_int(index, 0x1B84DF6AF2A46938, "i")end, - -- Returns the Player associated to a given Ped when in an online session. - ["NETWORK_GET_PLAYER_INDEX_FROM_PED"]=--[[Player (int)]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x6C0E2E0125610278, "i")end, - -- Returns the amount of players connected in the current session. Only works when connected to a session/server. - ["NETWORK_GET_NUM_CONNECTED_PLAYERS"]=--[[int]] function()return native_invoker.unified_int(0xA4A79DD2D9600654, "")end, - ["NETWORK_IS_PLAYER_CONNECTED"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x93DC1BE4E1ABE9D1, "i")end, - ["NETWORK_GET_TOTAL_NUM_PLAYERS"]=--[[int]] function()return native_invoker.unified_int(0xCF61D4B4702EE9EB, "")end, - ["NETWORK_IS_PARTICIPANT_ACTIVE"]=--[[BOOL (bool)]] function(--[[int]] p0)return native_invoker.unified_bool(p0, 0x6FF8FF40B6357D45, "i")end, - ["NETWORK_IS_PLAYER_ACTIVE"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0xB8DFD30D6973E135, "i")end, - ["NETWORK_IS_PLAYER_A_PARTICIPANT"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x3CA58F6CB7CBD784, "i")end, - ["NETWORK_IS_HOST_OF_THIS_SCRIPT"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x83CD99A1E6061AB5, "")end, - ["NETWORK_GET_HOST_OF_THIS_SCRIPT"]=--[[Player (int)]] function()return native_invoker.unified_int(0xC7B4D79B01FA7A5C, "")end, - -- scriptName examples: - -- "freemode", "AM_CR_SecurityVan", ... - -- - -- Most of the time, these values are used: - -- instance_id = -1 - -- position_hash = 0 - ["NETWORK_GET_HOST_OF_SCRIPT"]=--[[Player (int)]] function(--[[string]] scriptName,--[[int]] instance_id,--[[int]] position_hash)return native_invoker.unified_int(scriptName, instance_id, position_hash, 0x1D6A14F1F9A736FC, "sii")end, - ["NETWORK_SET_MISSION_FINISHED"]=--[[void]] function()return native_invoker.unified_void(0x3B3D11CD9FFCDFC9, "")end, - ["NETWORK_IS_SCRIPT_ACTIVE"]=--[[BOOL (bool)]] function(--[[string]] scriptName,--[[int]] instance_id,--[[BOOL (bool)]] p2,--[[int]] position_hash)return native_invoker.unified_bool(scriptName, instance_id, p2, position_hash, 0x9D40DF90FAD26098, "sibi")end, - ["NETWORK_IS_SCRIPT_ACTIVE_BY_HASH"]=--[[BOOL (bool)]] function(--[[Hash (int)]] scriptHash,--[[int]] p1,--[[BOOL (bool)]] p2,--[[int]] p3)return native_invoker.unified_bool(scriptHash, p1, p2, p3, 0xDA7DE67F5FE5EE13, "iibi")end, - ["NETWORK_IS_THREAD_A_NETWORK_SCRIPT"]=--[[BOOL (bool)]] function(--[[int]] threadId)return native_invoker.unified_bool(threadId, 0x560B423D73015E77, "i")end, - ["NETWORK_GET_NUM_SCRIPT_PARTICIPANTS"]=--[[int]] function(--[[string]] scriptName,--[[int]] instance_id,--[[int]] position_hash)return native_invoker.unified_int(scriptName, instance_id, position_hash, 0x3658E8CD94FC121A, "sii")end, - ["NETWORK_GET_INSTANCE_ID_OF_THIS_SCRIPT"]=--[[int]] function()return native_invoker.unified_int(0x638A3A81733086DB, "")end, - ["NETWORK_GET_POSITION_HASH_OF_THIS_SCRIPT"]=--[[Hash (int)]] function()return native_invoker.unified_int(0x257ED0FADF750BCF, "")end, - ["NETWORK_IS_PLAYER_A_PARTICIPANT_ON_SCRIPT"]=--[[BOOL (bool)]] function(--[[Player (int)]] player,--[[string]] script,--[[int]] instance_id)return native_invoker.unified_bool(player, script, instance_id, 0x1AD5B71586B94820, "isi")end, - ["NETWORK_PREVENT_SCRIPT_HOST_MIGRATION"]=--[[void]] function()return native_invoker.unified_void(0x2302C0264EA58D31, "")end, - ["NETWORK_REQUEST_TO_BE_HOST_OF_THIS_SCRIPT"]=--[[void]] function()return native_invoker.unified_void(0x741A3D8380319A81, "")end, - -- Return the local Participant ID - ["PARTICIPANT_ID"]=--[[Player (int)]] function()return native_invoker.unified_int(0x90986E8876CE0A83, "")end, - -- Return the local Participant ID. - -- - -- This native is exactly the same as 'PARTICIPANT_ID' native. - ["PARTICIPANT_ID_TO_INT"]=--[[int]] function()return native_invoker.unified_int(0x57A3BDDAD8E5AA0A, "")end, - ["NETWORK_GET_KILLER_OF_PLAYER"]=--[[Player (int)]] function(--[[Player (int)]] player,--[[Hash* (pointer)]] weaponHash)return native_invoker.unified_int(player, weaponHash, 0x2DA41ED6E1FCD7A5, "ip")end, - ["NETWORK_GET_DESTROYER_OF_NETWORK_ID"]=--[[Player (int)]] function(--[[int]] netId,--[[Hash* (pointer)]] weaponHash)return native_invoker.unified_int(netId, weaponHash, 0x7A1ADEEF01740A24, "ip")end, - ["NETWORK_GET_DESTROYER_OF_ENTITY"]=--[[Player (int)]] function(--[[Entity (int)]] entity,--[[Hash* (pointer)]] weaponHash)return native_invoker.unified_int(entity, weaponHash, 0xC434133D9BA52777, "ip")end, - -- NETWORK_GET_ASSISTED_DAMAGE_OF_ENTITY that ensures the entity is dead (IS_ENTITY_DEAD) - ["NETWORK_GET_ASSISTED_KILL_OF_ENTITY"]=--[[BOOL (bool)]] function(--[[Player (int)]] player,--[[Entity (int)]] entity,--[[int* (pointer)]] p2)return native_invoker.unified_bool(player, entity, p2, 0x83660B734994124D, "iip")end, - ["NETWORK_GET_ASSISTED_DAMAGE_OF_ENTITY"]=--[[BOOL (bool)]] function(--[[Player (int)]] player,--[[Entity (int)]] entity,--[[int* (pointer)]] p2)return native_invoker.unified_bool(player, entity, p2, 0x4CACA84440FA26F6, "iip")end, - ["NETWORK_GET_ENTITY_KILLER_OF_PLAYER"]=--[[Entity (int)]] function(--[[Player (int)]] player,--[[Hash* (pointer)]] weaponHash)return native_invoker.unified_int(player, weaponHash, 0x42B2DAA6B596F5F8, "ip")end, - ["NETWORK_SET_CURRENT_PUBLIC_CONTENT_ID"]=--[[void]] function(--[[string]] missionId)return native_invoker.unified_void(missionId, 0x2C863ACDCD12B3DB, "s")end, - ["NETWORK_SET_CURRENT_CHAT_OPTION"]=--[[void]] function(--[[int]] newChatOption)return native_invoker.unified_void(newChatOption, 0x3DAD00265FBF356B, "i")end, - -- mpSettingSpawn: - -- - -- enum eMpSettingSpawn - -- { - -- MP_SETTING_SPAWN_NULL, - -- MP_SETTING_SPAWN_PROPERTY, - -- MP_SETTING_SPAWN_LAST_POSITION, - -- MP_SETTING_SPAWN_GARAGE, - -- MP_SETTING_SPAWN_RANDOM, - -- MP_SETTING_SPAWN_PRIVATE_YACHT, - -- MP_SETTING_SPAWN_OFFICE, - -- MP_SETTING_SPAWN_CLUBHOUSE, - -- MP_SETTING_SPAWN_IE_WAREHOUSE, - -- MP_SETTING_SPAWN_BUNKER, - -- MP_SETTING_SPAWN_HANGAR, - -- MP_SETTING_SPAWN_DEFUNCT_BASE, - -- MP_SETTING_SPAWN_NIGHTCLUB, - -- MP_SETTING_SPAWN_ARENA_GARAGE, - -- MP_SETTING_SPAWN_CASINO_APARTMENT, - -- MP_SETTING_SPAWN_ARCADE, - -- MP_SETTING_SPAWN_SUBMARINE, - -- MP_SETTING_SPAWN_CAR_MEET, - -- MP_SETTING_SPAWN_AUTO_SHOP, - -- MP_SETTING_SPAWN_FIXER_HQ, - -- MP_SETTING_SPAWN_MAX, - -- }; - ["NETWORK_SET_CURRENT_SPAWN_LOCATION_OPTION"]=--[[void]] function(--[[Hash (int)]] mpSettingSpawn)return native_invoker.unified_void(mpSettingSpawn, 0xAA6D5451DC3448B6, "i")end, - -- Used by MetricVEHICLE_DIST_DRIVEN - ["NETWORK_SET_VEHICLE_DRIVEN_IN_TEST_DRIVE"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x8C70252FC40F320B, "b")end, - -- Sets 'loc' variable used in MetricVEHICLE_DIST_DRIVEN - ["NETWORK_SET_VEHICLE_DRIVEN_LOCATION"]=--[[void]] function(--[[Hash (int)]] location)return native_invoker.unified_void(location, 0xA0CE91E47531D3BB, "i")end, - ["NETWORK_RESURRECT_LOCAL_PLAYER"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] heading,--[[BOOL (bool)]] p4,--[[BOOL (bool)]] changetime,--[[BOOL (bool)]] p6,--[[int]] p7,--[[int]] p8)return native_invoker.unified_void(x, y, z, heading, p4, changetime, p6, p7, p8, 0xEA23C49EAA83ACFB, "ffffbbbii")end, - ["NETWORK_SET_LOCAL_PLAYER_INVINCIBLE_TIME"]=--[[void]] function(--[[int]] time)return native_invoker.unified_void(time, 0x2D95C7E2D7E07307, "i")end, - ["NETWORK_IS_LOCAL_PLAYER_INVINCIBLE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x8A8694B48715B000, "")end, - ["NETWORK_DISABLE_INVINCIBLE_FLASHING"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0x9DD368BF06983221, "ib")end, - ["NETWORK_PATCH_POST_CUTSCENE_HS4F_TUN_ENT"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xF0BC9BCD24A511D5, "i")end, - ["NETWORK_SET_LOCAL_PLAYER_SYNC_LOOK_AT"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x524FF0AEFF9C3973, "b")end, - ["NETWORK_HAS_ENTITY_BEEN_REGISTERED_WITH_THIS_THREAD"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0xB07D3185E11657A5, "i")end, - ["NETWORK_GET_NETWORK_ID_FROM_ENTITY"]=--[[int]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0xA11700682F3AD45C, "i")end, - ["NETWORK_GET_ENTITY_FROM_NETWORK_ID"]=--[[Entity (int)]] function(--[[int]] netId)return native_invoker.unified_int(netId, 0xCE4E5D9B0A4FF560, "i")end, - ["NETWORK_GET_ENTITY_IS_NETWORKED"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0xC7827959479DCC78, "i")end, - ["NETWORK_GET_ENTITY_IS_LOCAL"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x0991549DE4D64762, "i")end, - ["NETWORK_REGISTER_ENTITY_AS_NETWORKED"]=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0x06FAACD625D80CAA, "i")end, - ["NETWORK_UNREGISTER_NETWORKED_ENTITY"]=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0x7368E683BB9038D6, "i")end, - ["NETWORK_DOES_NETWORK_ID_EXIST"]=--[[BOOL (bool)]] function(--[[int]] netId)return native_invoker.unified_bool(netId, 0x38CE16C96BD11344, "i")end, - ["NETWORK_DOES_ENTITY_EXIST_WITH_NETWORK_ID"]=--[[BOOL (bool)]] function(--[[int]] netId)return native_invoker.unified_bool(netId, 0x18A47D074708FD68, "i")end, - ["NETWORK_REQUEST_CONTROL_OF_NETWORK_ID"]=--[[BOOL (bool)]] function(--[[int]] netId)return native_invoker.unified_bool(netId, 0xA670B3662FAFFBD0, "i")end, - ["NETWORK_HAS_CONTROL_OF_NETWORK_ID"]=--[[BOOL (bool)]] function(--[[int]] netId)return native_invoker.unified_bool(netId, 0x4D36070FE0215186, "i")end, - -- Returns true if the specified network id is controlled by someone else. - ["NETWORK_IS_NETWORK_ID_REMOTELY_CONTROLLED"]=--[[BOOL (bool)]] function(--[[int]] netId)return native_invoker.unified_bool(netId, 0x7242F8B741CE1086, "i")end, - ["NETWORK_REQUEST_CONTROL_OF_ENTITY"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0xB69317BF5E782347, "i")end, - ["NETWORK_REQUEST_CONTROL_OF_DOOR"]=--[[BOOL (bool)]] function(--[[int]] doorID)return native_invoker.unified_bool(doorID, 0x870DDFD5A4A796E4, "i")end, - ["NETWORK_HAS_CONTROL_OF_ENTITY"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x01BF60A500E28887, "i")end, - ["NETWORK_HAS_CONTROL_OF_PICKUP"]=--[[BOOL (bool)]] function(--[[Pickup (int)]] pickup)return native_invoker.unified_bool(pickup, 0x5BC9495F0B3B6FA6, "i")end, - ["NETWORK_HAS_CONTROL_OF_DOOR"]=--[[BOOL (bool)]] function(--[[Hash (int)]] doorHash)return native_invoker.unified_bool(doorHash, 0xCB3C68ADB06195DF, "i")end, - ["NETWORK_IS_DOOR_NETWORKED"]=--[[BOOL (bool)]] function(--[[Hash (int)]] doorHash)return native_invoker.unified_bool(doorHash, 0xC01E93FAC20C3346, "i")end, - -- calls from vehicle to net. - -- - ["VEH_TO_NET"]=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0xB4C94523F023419C, "i")end, - -- gets the network id of a ped - ["PED_TO_NET"]=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x0EDEC3C276198689, "i")end, - -- Lets objects spawn online simply do it like this: - -- - -- int createdObject = OBJ_TO_NET(CREATE_OBJECT_NO_OFFSET(oball, pCoords.x, pCoords.y, pCoords.z, 1, 0, 0)); - ["OBJ_TO_NET"]=--[[int]] function(--[[Object (int)]] object)return native_invoker.unified_int(object, 0x99BFDC94A603E541, "i")end, - ["NET_TO_VEH"]=--[[Vehicle (int)]] function(--[[int]] netHandle)return native_invoker.unified_int(netHandle, 0x367B936610BA360C, "i")end, - -- gets the ped id of a network id - ["NET_TO_PED"]=--[[Ped (int)]] function(--[[int]] netHandle)return native_invoker.unified_int(netHandle, 0xBDCD95FC216A8B3E, "i")end, - -- gets the object id of a network id - ["NET_TO_OBJ"]=--[[Object (int)]] function(--[[int]] netHandle)return native_invoker.unified_int(netHandle, 0xD8515F5FEA14CB3F, "i")end, - -- gets the entity id of a network id - ["NET_TO_ENT"]=--[[Entity (int)]] function(--[[int]] netHandle)return native_invoker.unified_int(netHandle, 0xBFFEAB45A9A9094A, "i")end, - ["NETWORK_GET_LOCAL_HANDLE"]=--[[void]] function(--[[Any* (pointer)]] gamerHandle,--[[int]] gamerHandleSize)return native_invoker.unified_void(gamerHandle, gamerHandleSize, 0xE86051786B66CD8E, "pi")end, - ["NETWORK_HANDLE_FROM_USER_ID"]=--[[void]] function(--[[string]] userId,--[[Any* (pointer)]] gamerHandle,--[[int]] gamerHandleSize)return native_invoker.unified_void(userId, gamerHandle, gamerHandleSize, 0xDCD51DD8F87AEC5C, "spi")end, - ["NETWORK_HANDLE_FROM_MEMBER_ID"]=--[[void]] function(--[[string]] memberId,--[[Any* (pointer)]] gamerHandle,--[[int]] gamerHandleSize)return native_invoker.unified_void(memberId, gamerHandle, gamerHandleSize, 0xA0FD21BED61E5C4C, "spi")end, - ["NETWORK_HANDLE_FROM_PLAYER"]=--[[void]] function(--[[Player (int)]] player,--[[Any* (pointer)]] gamerHandle,--[[int]] gamerHandleSize)return native_invoker.unified_void(player, gamerHandle, gamerHandleSize, 0x388EB2B86C73B6B3, "ipi")end, - ["NETWORK_HASH_FROM_PLAYER_HANDLE"]=--[[Hash (int)]] function(--[[Player (int)]] player)return native_invoker.unified_int(player, 0xBC1D768F2F5D6C05, "i")end, - ["NETWORK_HASH_FROM_GAMER_HANDLE"]=--[[Hash (int)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_int(gamerHandle, 0x58575AC3CF2CA8EC, "p")end, - ["NETWORK_HANDLE_FROM_FRIEND"]=--[[void]] function(--[[int]] friendIndex,--[[Any* (pointer)]] gamerHandle,--[[int]] gamerHandleSize)return native_invoker.unified_void(friendIndex, gamerHandle, gamerHandleSize, 0xD45CB817D7E177D2, "ipi")end, - ["NETWORK_GAMERTAG_FROM_HANDLE_START"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0x9F0C0A981D73FA56, "p")end, - ["NETWORK_GAMERTAG_FROM_HANDLE_PENDING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xB071E27958EF4CF0, "")end, - ["NETWORK_GAMERTAG_FROM_HANDLE_SUCCEEDED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xFD00798DBA7523DD, "")end, - ["NETWORK_GET_GAMERTAG_FROM_HANDLE"]=--[[string]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_string(gamerHandle, 0x426141162EBE5CDB, "p")end, - -- Hardcoded to return -1. - ["NETWORK_DISPLAYNAMES_FROM_HANDLES_START"]=--[[int]] function(--[[Any* (pointer)]] p0,--[[Any (int)]] p1)return native_invoker.unified_int(p0, p1, 0xD66C9E72B3CC4982, "pi")end, - -- This function is hard-coded to always return 0. - ["NETWORK_GET_DISPLAYNAMES_FROM_HANDLES"]=--[[int]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_int(p0, p1, p2, 0x58CC181719256197, "iii")end, - ["NETWORK_ARE_HANDLES_THE_SAME"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle1,--[[Any* (pointer)]] gamerHandle2)return native_invoker.unified_bool(gamerHandle1, gamerHandle2, 0x57DBA049E110F217, "pp")end, - ["NETWORK_IS_HANDLE_VALID"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle,--[[int]] gamerHandleSize)return native_invoker.unified_bool(gamerHandle, gamerHandleSize, 0x6F79B93B0A8E4133, "pi")end, - ["NETWORK_GET_PLAYER_FROM_GAMER_HANDLE"]=--[[Player (int)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_int(gamerHandle, 0xCE5F689CF5A0A49D, "p")end, - ["NETWORK_MEMBER_ID_FROM_GAMER_HANDLE"]=--[[string]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_string(gamerHandle, 0xC82630132081BB6F, "p")end, - ["NETWORK_IS_GAMER_IN_MY_SESSION"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0x0F10B05DDF8D16E9, "p")end, - ["NETWORK_SHOW_PROFILE_UI"]=--[[void]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_void(gamerHandle, 0x859ED1CEA343FCA8, "p")end, - -- Returns the name of a given player. Returns "**Invalid**" if rlGamerInfo of the given player cannot be retrieved or the player doesn't exist. - ["NETWORK_PLAYER_GET_NAME"]=--[[string]] function(--[[Player (int)]] player)return native_invoker.unified_string(player, 0x7718D2E2060837D2, "i")end, - -- Returns a string of the player's Rockstar Id. - -- Takes a 24 char buffer. Returns the buffer or "**Invalid**" if rlGamerInfo of the given player cannot be retrieved or the player doesn't exist. - ["NETWORK_PLAYER_GET_USERID"]=--[[string]] function(--[[Player (int)]] player,--[[int* (pointer)]] userID)return native_invoker.unified_string(player, userID, 0x4927FC39CD0869A0, "ip")end, - -- Checks if a specific value (BYTE) in CNetGamePlayer is nonzero. - -- Returns always false in Singleplayer. - -- - -- No longer used for dev checks since first mods were released on PS3 & 360. - -- R* now checks with the IS_DLC_PRESENT native for the dlc hash 2532323046, - -- if that is present it will unlock dev stuff. - ["NETWORK_PLAYER_IS_ROCKSTAR_DEV"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x544ABDDA3B409B6D, "i")end, - ["NETWORK_PLAYER_INDEX_IS_CHEATER"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x565E430DB3B05BEC, "i")end, - ["NETWORK_ENTITY_GET_OBJECT_ID"]=--[[int]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0x815F18AD865F057F, "i")end, - -- I've had this return the player's ped handle sometimes, but also other random entities. - -- Whatever p0 is, it's at least not synced to other players. - -- At least not all the time, some p0 values actually output the same entity, (different handle of course, but same entity). - -- But another p0 value may return an entity for player x, but not for player y (it'll just return -1 even if the entity exists on both clients). - -- - -- Returns an entity handle or -1, value changes based on p0's value. - ["NETWORK_GET_ENTITY_FROM_OBJECT_ID"]=--[[Entity (int)]] function(--[[Any (int)]] p0)return native_invoker.unified_int(p0, 0x37D5F739FD494675, "i")end, - ["NETWORK_IS_INACTIVE_PROFILE"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_bool(p0, 0x7E58745504313A2E, "p")end, - ["NETWORK_GET_MAX_FRIENDS"]=--[[int]] function()return native_invoker.unified_int(0xAFEBB0D5D8F687D2, "")end, - ["NETWORK_GET_FRIEND_COUNT"]=--[[int]] function()return native_invoker.unified_int(0x203F1CFD823B27A4, "")end, - ["NETWORK_GET_FRIEND_NAME"]=--[[string]] function(--[[int]] friendIndex)return native_invoker.unified_string(friendIndex, 0xE11EBBB2A783FE8B, "i")end, - ["NETWORK_GET_FRIEND_DISPLAY_NAME"]=--[[string]] function(--[[int]] friendIndex)return native_invoker.unified_string(friendIndex, 0x4164F227D052E293, "i")end, - ["NETWORK_IS_FRIEND_ONLINE"]=--[[BOOL (bool)]] function(--[[string]] name)return native_invoker.unified_bool(name, 0x425A44533437B64D, "s")end, - ["NETWORK_IS_FRIEND_HANDLE_ONLINE"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0x87EB7A3FFCB314DB, "p")end, - -- In scripts R* calls 'NETWORK_GET_FRIEND_NAME' in this param. - ["NETWORK_IS_FRIEND_IN_SAME_TITLE"]=--[[BOOL (bool)]] function(--[[string]] friendName)return native_invoker.unified_bool(friendName, 0x2EA9A3BEDF3F17B8, "s")end, - ["NETWORK_IS_FRIEND_IN_MULTIPLAYER"]=--[[BOOL (bool)]] function(--[[string]] friendName)return native_invoker.unified_bool(friendName, 0x57005C18827F3A28, "s")end, - ["NETWORK_IS_FRIEND"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0x1A24A179F9B31654, "p")end, - -- This function is hard-coded to always return 0. - ["NETWORK_IS_PENDING_FRIEND"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x0BE73DA6984A6E33, "i")end, - ["NETWORK_IS_ADDING_FRIEND"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x6EA101606F6E4D81, "")end, - ["NETWORK_ADD_FRIEND"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle,--[[string]] message)return native_invoker.unified_bool(gamerHandle, message, 0x8E02D73914064223, "ps")end, - ["NETWORK_IS_FRIEND_INDEX_ONLINE"]=--[[BOOL (bool)]] function(--[[int]] friendIndex)return native_invoker.unified_bool(friendIndex, 0xBAD8F2A42B844821, "i")end, - ["NETWORK_SET_PLAYER_IS_PASSIVE"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x1B857666604B1A74, "b")end, - ["NETWORK_GET_PLAYER_OWNS_WAYPOINT"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x82377B65E943F72D, "i")end, - ["NETWORK_CAN_SET_WAYPOINT"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC927EC229934AF60, "")end, - ["NETWORK_IGNORE_REMOTE_WAYPOINTS"]=--[[void]] function()return native_invoker.unified_void(0x4C2A9FDC22377075, "")end, - -- communicationType: 0 = VOICE; 1 = TEXT_CHAT; 2 = TEXT_MESSAGE; 3 = EMAIL; 4 = USER_CONTENT; 5 = USER_TEXT - ["_NETWORK_DOES_COMMUNICATION_GROUP_EXIST"]=--[[BOOL (bool)]] function(--[[int]] communicationType)return native_invoker.unified_bool(communicationType, 0xDBDF80673BBA3D65, "i")end, - -- Returns communicationGroupFlag - -- communicationType: see 0xDBDF80673BBA3D65 - -- - -- enum eCommunicationGroupFlag - -- { - -- COMMUNICATION_GROUP_LOCAL_PLAYER = 1 << 0, - -- COMMUNICATION_GROUP_FRIENDS = 1 << 1, - -- COMMUNICATION_GROUP_SMALL_CREW = 1 << 2, - -- COMMUNICATION_GROUP_LARGE_CREW = 1 << 3, - -- COMMUNICATION_GROUP_RECENT_PLAYER = 1 << 4, - -- COMMUNICATION_GROUP_SAME_SESSION = 1 << 5, - -- COMMUNICATION_GROUP_SAME_TEAM = 1 << 6, - -- COMMUNICATION_GROUP_INVALID = 1 << 7, - -- }; - ["_NETWORK_GET_COMMUNICATION_GROUP_FLAGS"]=--[[int]] function(--[[int]] communicationType)return native_invoker.unified_int(communicationType, 0x40DF02F371F40883, "i")end, - -- communicationType: see 0xDBDF80673BBA3D65 - -- communicationGroupFlag: see 0x40DF02F371F40883 - ["_NETWORK_SET_COMMUNICATION_GROUP_FLAGS"]=--[[void]] function(--[[int]] communicationType,--[[int]] communicationGroupFlag)return native_invoker.unified_void(communicationType, communicationGroupFlag, 0xE549F846DE7D32D5, "ii")end, - ["NETWORK_IS_PLAYER_ON_BLOCKLIST"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0xAD4326FCA30D62F8, "p")end, - ["NETWORK_SET_SCRIPT_AUTOMUTED"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0xB309EBEA797E001F, "i")end, - ["NETWORK_HAS_AUTOMUTE_OVERRIDE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x26F07DD83A5F7F98, "")end, - ["NETWORK_HAS_HEADSET"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xE870F9F1F7B4F1FA, "")end, - ["NETWORK_SET_LOOK_AT_TALKERS"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x7D395EA61622E116, "b")end, - ["NETWORK_IS_PUSH_TO_TALK_ACTIVE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC0D2AF00BCC234CA, "")end, - ["NETWORK_GAMER_HAS_HEADSET"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0xF2FD55CB574BCC55, "p")end, - ["NETWORK_IS_GAMER_TALKING"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0x71C33B22606CD88A, "p")end, - ["NETWORK_PERMISSIONS_HAS_GAMER_RECORD"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0x559EBF901A8C68E0, "p")end, - ["NETWORK_CAN_COMMUNICATE_WITH_GAMER"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0x8F5D1AD832AEB06C, "p")end, - ["NETWORK_CAN_TEXT_CHAT_WITH_GAMER"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0xA150A4F065806B1F, "p")end, - ["NETWORK_IS_GAMER_MUTED_BY_ME"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0xCE60DE011B6C7978, "p")end, - ["NETWORK_AM_I_MUTED_BY_GAMER"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0xDF02A2C93F1F26DA, "p")end, - ["NETWORK_IS_GAMER_BLOCKED_BY_ME"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0xE944C4F5AF1B5883, "p")end, - ["NETWORK_AM_I_BLOCKED_BY_GAMER"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0x15337C7C268A27B2, "p")end, - ["NETWORK_CAN_VIEW_GAMER_USER_CONTENT"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0xB57A49545BA53CE7, "p")end, - ["NETWORK_HAS_VIEW_GAMER_USER_CONTENT_RESULT"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0xCCA4318E1AB03F1F, "p")end, - ["NETWORK_CAN_PLAY_MULTIPLAYER_WITH_GAMER"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0x07DD29D5E22763F1, "p")end, - ["NETWORK_CAN_GAMER_PLAY_MULTIPLAYER_WITH_ME"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0x135F9B7B7ADD2185, "p")end, - ["NETWORK_CAN_SEND_LOCAL_INVITE"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0x021ABCBD98EC4320, "p")end, - ["NETWORK_CAN_RECEIVE_LOCAL_INVITE"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0x421E34C55F125964, "p")end, - -- returns true if someone is screaming or talking in a microphone - ["NETWORK_IS_PLAYER_TALKING"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x031E11F3D447647E, "i")end, - ["NETWORK_PLAYER_HAS_HEADSET"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x3FB99A8B08D18FD6, "i")end, - ["NETWORK_IS_PLAYER_MUTED_BY_ME"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x8C71288AE68EDE39, "i")end, - ["NETWORK_AM_I_MUTED_BY_PLAYER"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x9D6981DFC91A8604, "i")end, - ["NETWORK_IS_PLAYER_BLOCKED_BY_ME"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x57AF1F8E27483721, "i")end, - ["NETWORK_AM_I_BLOCKED_BY_PLAYER"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x87F395D957D4353D, "i")end, - ["NETWORK_GET_PLAYER_LOUDNESS"]=--[[float]] function(--[[Player (int)]] player)return native_invoker.unified_float(player, 0x21A1684A25C2867F, "i")end, - ["NETWORK_SET_TALKER_PROXIMITY"]=--[[void]] function(--[[float]] value)return native_invoker.unified_void(value, 0xCBF12D65F95AD686, "f")end, - ["NETWORK_GET_TALKER_PROXIMITY"]=--[[float]] function()return native_invoker.unified_float(0x84F0F13120B4E098, "")end, - ["NETWORK_SET_VOICE_ACTIVE"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xBABEC9E69A91C57B, "b")end, - ["NETWORK_REMAIN_IN_GAME_CHAT"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xCFEB46DCD7D8D5EB, "b")end, - ["NETWORK_OVERRIDE_TRANSITION_CHAT"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xAF66059A131AA269, "b")end, - ["NETWORK_SET_TEAM_ONLY_CHAT"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xD5B4883AC32F24C3, "b")end, - ["NETWORK_SET_SCRIPT_CONTROLLING_TEAMS"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x265559DA40B3F327, "i")end, - ["NETWORK_SET_SAME_TEAM_AS_LOCAL_PLAYER"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_bool(p0, p1, 0x4348BFDA56023A2F, "ii")end, - ["NETWORK_OVERRIDE_TEAM_RESTRICTIONS"]=--[[void]] function(--[[int]] team,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(team, toggle, 0x6F697A66CE78674E, "ib")end, - ["NETWORK_SET_OVERRIDE_SPECTATOR_MODE"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x70DA3BF8DACD3210, "b")end, - ["NETWORK_SET_OVERRIDE_TUTORIAL_SESSION_CHAT"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x3C5C1E2C2FF814B1, "b")end, - ["NETWORK_SET_PROXIMITY_AFFECTS_TEAM"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x9D7AFCBF21C51712, "b")end, - ["NETWORK_SET_NO_SPECTATOR_CHAT"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xF46A1E03E8755980, "b")end, - ["NETWORK_SET_IGNORE_SPECTATOR_CHAT_LIMITS_SAME_TEAM"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x6A5D89D7769A40D8, "b")end, - -- Could possibly bypass being muted or automatically muted - ["NETWORK_OVERRIDE_CHAT_RESTRICTIONS"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0x3039AE5AD2C9C0C4, "ib")end, - -- This is used alongside the native, - -- 'NETWORK_OVERRIDE_RECEIVE_RESTRICTIONS'. Read its description for more info. - ["NETWORK_OVERRIDE_SEND_RESTRICTIONS"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0x97DD4C5944CC2E6A, "ib")end, - ["NETWORK_OVERRIDE_SEND_RESTRICTIONS_ALL"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x57B192B4D4AD23D5, "b")end, - -- R* uses this to hear all player when spectating. - -- It allows you to hear other online players when their chat is on none, crew and or friends - ["NETWORK_OVERRIDE_RECEIVE_RESTRICTIONS"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0xDDF73E2B1FEC5AB4, "ib")end, - -- p0 is always false in scripts. - ["NETWORK_OVERRIDE_RECEIVE_RESTRICTIONS_ALL"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x0FF2862B61A58AF9, "b")end, - ["NETWORK_SET_VOICE_CHANNEL"]=--[[void]] function(--[[int]] channel)return native_invoker.unified_void(channel, 0xEF6212C2EFEF1A23, "i")end, - ["NETWORK_CLEAR_VOICE_CHANNEL"]=--[[void]] function()return native_invoker.unified_void(0xE036A705F989E049, "")end, - ["NETWORK_APPLY_VOICE_PROXIMITY_OVERRIDE"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(x, y, z, 0xDBD2056652689917, "fff")end, - ["NETWORK_CLEAR_VOICE_PROXIMITY_OVERRIDE"]=--[[void]] function()return native_invoker.unified_void(0xF03755696450470C, "")end, - ["NETWORK_ENABLE_VOICE_BANDWIDTH_RESTRICTION"]=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0x5E3AA4CA2B6FB0EE, "i")end, - ["NETWORK_DISABLE_VOICE_BANDWIDTH_RESTRICTION"]=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0xCA575C391FEA25CC, "i")end, - -- NETWORK_GET_M[A-U] - ["NETWORK_GET_MUTE_COUNT_FOR_PLAYER"]=--[[void]] function(--[[Player (int)]] p0,--[[float* (pointer)]] p1,--[[float* (pointer)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xADB57E5B663CCA8B, "ipp")end, - ["NETWORK_SET_SPECTATOR_TO_NON_SPECTATOR_TEXT_CHAT"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x8EF52ACAECC51D9C, "b")end, - -- Same as _IS_TEXT_CHAT_ACTIVE, except it does not check if the text chat HUD component is initialized, and therefore may crash. - ["NETWORK_TEXT_CHAT_IS_TYPING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x5FCF4D7069B09026, "")end, - -- Starts a new singleplayer game (at the prologue). - ["SHUTDOWN_AND_LAUNCH_SINGLE_PLAYER_GAME"]=--[[void]] function()return native_invoker.unified_void(0x593850C16A36B692, "")end, - -- In singleplayer this will re-load your game. - -- - -- In FiveM / GTA:Online this disconnects you from the session, and starts loading single player, however you still remain connected to the server (only if you're the host, if you're not then you also (most likely) get disconnected from the server) and other players will not be able to join until you exit the game. - -- - -- You might need to DoScreenFadeIn and ShutdownLoadingScreen otherwise you probably won't end up loading into SP at all. - -- - -- Somewhat related note: opening the pause menu after loading into this 'singleplayer' mode crashes the game. - ["SHUTDOWN_AND_LOAD_MOST_RECENT_SAVE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x9ECA15ADFE141431, "")end, - ["NETWORK_SET_FRIENDLY_FIRE_OPTION"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xF808475FA571D823, "b")end, - -- This native does absolutely nothing, just a nullsub - ["NETWORK_SET_RICH_PRESENCE"]=--[[void]] function(--[[int]] p0,--[[int]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x1DCCACDCFC569362, "iiii")end, - -- This native does absolutely nothing, just a nullsub - ["NETWORK_SET_RICH_PRESENCE_STRING"]=--[[void]] function(--[[int]] p0,--[[string]] textLabel)return native_invoker.unified_void(p0, textLabel, 0x3E200C2BCF4164EB, "is")end, - ["NETWORK_GET_TIMEOUT_TIME"]=--[[int]] function()return native_invoker.unified_int(0x5ED0356A0CE3A34F, "")end, - -- p4 and p5 are always 0 in scripts - ["NETWORK_LEAVE_PED_BEHIND_BEFORE_WARP"]=--[[void]] function(--[[Player (int)]] player,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] p4,--[[BOOL (bool)]] p5)return native_invoker.unified_void(player, x, y, z, p4, p5, 0x9769F811D1785B03, "ifffbb")end, - ["NETWORK_LEAVE_PED_BEHIND_BEFORE_CUTSCENE"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] p1)return native_invoker.unified_void(player, p1, 0xBF22E0F32968E967, "ib")end, - -- entity must be a valid entity; ped can be NULL - ["REMOVE_ALL_STICKY_BOMBS_FROM_ENTITY"]=--[[void]] function(--[[Entity (int)]] entity,--[[Ped (int)]] ped)return native_invoker.unified_void(entity, ped, 0x715135F4B82AC90D, "ii")end, - ["NETWORK_KEEP_ENTITY_COLLISION_DISABLED_AFTER_ANIM_SCENE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x17C9E241111A674D, "ii")end, - ["NETWORK_IS_ANY_PLAYER_NEAR"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5,--[[Any (int)]] p6)return native_invoker.unified_bool(p0, p1, p2, p3, p4, p5, p6, 0x2E4C123D1C8A710E, "iiiiiii")end, - ["NETWORK_CLAN_SERVICE_IS_VALID"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x579CCED0265D4896, "")end, - ["NETWORK_CLAN_PLAYER_IS_ACTIVE"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0xB124B57F571D8F18, "p")end, - -- bufferSize is 35 in the scripts. - -- - -- bufferSize is the elementCount of p0(desc), sizeof(p0) == 280 == p1*8 == 35 * 8, p2(netHandle) is obtained from NETWORK::NETWORK_HANDLE_FROM_PLAYER. And no, I can't explain why 35 * sizeof(int) == 280 and not 140, but I'll get back to you on that. - -- - -- the answer is: because p0 an int64_t* / int64_t[35]. and FYI p2 is an int64_t[13] - -- - -- https://pastebin.com/cSZniHak - ["NETWORK_CLAN_PLAYER_GET_DESC"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] clanDesc,--[[int]] bufferSize,--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(clanDesc, bufferSize, gamerHandle, 0xEEE6EACBE8874FBA, "pip")end, - -- bufferSize is 35 in the scripts. - ["NETWORK_CLAN_IS_ROCKSTAR_CLAN"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] clanDesc,--[[int]] bufferSize)return native_invoker.unified_bool(clanDesc, bufferSize, 0x7543BB439F63792B, "pi")end, - -- bufferSize is 35 in the scripts. - ["NETWORK_CLAN_GET_UI_FORMATTED_TAG"]=--[[void]] function(--[[Any* (pointer)]] clanDesc,--[[int]] bufferSize,--[[char* (pointer)]] formattedTag)return native_invoker.unified_void(clanDesc, bufferSize, formattedTag, 0xF45352426FF3A4F0, "pip")end, - ["NETWORK_CLAN_GET_LOCAL_MEMBERSHIPS_COUNT"]=--[[int]] function()return native_invoker.unified_int(0x1F471B79ACC90BEF, "")end, - ["NETWORK_CLAN_GET_MEMBERSHIP_DESC"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] memberDesc,--[[int]] p1)return native_invoker.unified_bool(memberDesc, p1, 0x48DE78AF2C8885B8, "pi")end, - ["NETWORK_CLAN_DOWNLOAD_MEMBERSHIP"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_bool(gamerHandle, 0xA989044E70010ABE, "p")end, - ["NETWORK_CLAN_DOWNLOAD_MEMBERSHIP_PENDING"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_bool(p0, 0x5B9E023DC6EBEDC0, "p")end, - ["NETWORK_CLAN_ANY_DOWNLOAD_MEMBERSHIP_PENDING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xB3F64A6A91432477, "")end, - ["NETWORK_CLAN_REMOTE_MEMBERSHIPS_ARE_IN_CACHE"]=--[[BOOL (bool)]] function(--[[int* (pointer)]] p0)return native_invoker.unified_bool(p0, 0xBB6E6FEE99D866B2, "p")end, - ["NETWORK_CLAN_GET_MEMBERSHIP_COUNT"]=--[[int]] function(--[[int* (pointer)]] p0)return native_invoker.unified_int(p0, 0xAAB11F6C4ADBC2C1, "p")end, - ["NETWORK_CLAN_GET_MEMBERSHIP_VALID"]=--[[BOOL (bool)]] function(--[[int* (pointer)]] p0,--[[Any (int)]] p1)return native_invoker.unified_bool(p0, p1, 0x48A59CF88D43DF0E, "pi")end, - ["NETWORK_CLAN_GET_MEMBERSHIP"]=--[[BOOL (bool)]] function(--[[int* (pointer)]] p0,--[[Any* (pointer)]] clanMembership,--[[int]] p2)return native_invoker.unified_bool(p0, clanMembership, p2, 0xC8BC2011F67B3411, "ppi")end, - ["NETWORK_CLAN_JOIN"]=--[[BOOL (bool)]] function(--[[int]] clanDesc)return native_invoker.unified_bool(clanDesc, 0x9FAAA4F4FC71F87F, "i")end, - -- Only documented... - -- - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - ["NETWORK_CLAN_CREWINFO_GET_STRING_VALUE"]=--[[BOOL (bool)]] function(--[[string]] animDict,--[[string]] animName)return native_invoker.unified_bool(animDict, animName, 0x729E3401F0430686, "ss")end, - ["NETWORK_CLAN_CREWINFO_GET_CREWRANKTITLE"]=--[[BOOL (bool)]] function(--[[int]] p0,--[[string]] p1)return native_invoker.unified_bool(p0, p1, 0x2B51EDBEFC301339, "is")end, - ["NETWORK_CLAN_HAS_CREWINFO_METADATA_BEEN_RECEIVED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC32EA7A2F6CA7557, "")end, - ["NETWORK_CLAN_GET_EMBLEM_TXD_NAME"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] netHandle,--[[char* (pointer)]] txdName)return native_invoker.unified_bool(netHandle, txdName, 0x5835D9CD92E83184, "pp")end, - ["NETWORK_CLAN_REQUEST_EMBLEM"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x13518FF1C6B28938, "i")end, - ["NETWORK_CLAN_IS_EMBLEM_READY"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any* (pointer)]] p1)return native_invoker.unified_bool(p0, p1, 0xA134777FF7F33331, "ip")end, - ["NETWORK_CLAN_RELEASE_EMBLEM"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x113E6E3E50E286B0, "i")end, - ["NETWORK_GET_PRIMARY_CLAN_DATA_CLEAR"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x9AA46BADAD0E27ED, "")end, - ["NETWORK_GET_PRIMARY_CLAN_DATA_CANCEL"]=--[[void]] function()return native_invoker.unified_void(0x042E4B70B93E6054, "")end, - ["NETWORK_GET_PRIMARY_CLAN_DATA_START"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[Any (int)]] p1)return native_invoker.unified_bool(p0, p1, 0xCE86D8191B762107, "pi")end, - ["NETWORK_GET_PRIMARY_CLAN_DATA_PENDING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xB5074DB804E28CE7, "")end, - ["NETWORK_GET_PRIMARY_CLAN_DATA_SUCCESS"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x5B4F04F19376A0BA, "")end, - ["NETWORK_GET_PRIMARY_CLAN_DATA_NEW"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[Any* (pointer)]] p1)return native_invoker.unified_bool(p0, p1, 0xC080FF658B2E41DA, "pp")end, - -- Whether or not another player is allowed to take control of the entity - ["SET_NETWORK_ID_CAN_MIGRATE"]=--[[void]] function(--[[int]] netId,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(netId, toggle, 0x299EEB23175895FC, "ib")end, - ["SET_NETWORK_ID_EXISTS_ON_ALL_MACHINES"]=--[[void]] function(--[[int]] netId,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(netId, toggle, 0xE05E81A888FA63C8, "ib")end, - ["SET_NETWORK_ID_ALWAYS_EXISTS_FOR_PLAYER"]=--[[void]] function(--[[int]] netId,--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(netId, player, toggle, 0xA8A024587329F36A, "iib")end, - -- "No Reassign" in CPhysicalScriptGameStateDataNode - ["SET_NETWORK_ID_CAN_BE_REASSIGNED"]=--[[void]] function(--[[int]] netId,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(netId, toggle, 0x9D724B400A7E8FFC, "ib")end, - ["NETWORK_SET_ENTITY_CAN_BLEND"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0xD830567D88A1E873, "ib")end, - ["NETWORK_SET_OBJECT_CAN_BLEND_WHEN_FIXED"]=--[[void]] function(--[[Object (int)]] object,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(object, toggle, 0x0379DAF89BA09AA5, "ib")end, - -- if set to true other network players can't see it - -- if set to false other network player can see it - -- ========================================= - -- ^^ I attempted this by grabbing an object with GET_ENTITY_PLAYER_IS_FREE_AIMING_AT and setting this naive no matter the toggle he could still see it. - -- - -- pc or last gen? - -- - -- ^^ last-gen - ["NETWORK_SET_ENTITY_ONLY_EXISTS_FOR_PARTICIPANTS"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0xF1CA12B18AEF5298, "ib")end, - ["SET_NETWORK_ID_VISIBLE_IN_CUTSCENE"]=--[[void]] function(--[[int]] netId,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(netId, p1, p2, 0xA6928482543022B4, "ibb")end, - ["SET_NETWORK_ID_VISIBLE_IN_CUTSCENE_HACK"]=--[[void]] function(--[[int]] netId,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(netId, p1, p2, 0x32EBD154CB6B8B99, "ibb")end, - ["SET_NETWORK_ID_VISIBLE_IN_CUTSCENE_REMAIN_HACK"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x76B3F29D3F967692, "iii")end, - ["SET_NETWORK_CUTSCENE_ENTITIES"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xAAA553E7DD28A457, "b")end, - -- Getter for SET_NETWORK_CUTSCENE_ENTITIES. - ["ARE_CUTSCENE_ENTITIES_NETWORKED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x66D6A5E9C511214A, "")end, - ["SET_NETWORK_ID_PASS_CONTROL_IN_TUTORIAL"]=--[[void]] function(--[[int]] netId,--[[BOOL (bool)]] state)return native_invoker.unified_void(netId, state, 0x3FA36981311FA4FF, "ib")end, - ["IS_NETWORK_ID_OWNED_BY_PARTICIPANT"]=--[[BOOL (bool)]] function(--[[int]] netId)return native_invoker.unified_bool(netId, 0xA1607996431332DF, "i")end, - ["SET_REMOTE_PLAYER_VISIBLE_IN_CUTSCENE"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] locallyVisible)return native_invoker.unified_void(player, locallyVisible, 0x96320E6549DAE7B4, "ib")end, - ["SET_LOCAL_PLAYER_VISIBLE_IN_CUTSCENE"]=--[[void]] function(--[[BOOL (bool)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0xD1065D68947E7B6E, "bb")end, - ["SET_LOCAL_PLAYER_INVISIBLE_LOCALLY"]=--[[void]] function(--[[BOOL (bool)]] bIncludePlayersVehicle)return native_invoker.unified_void(bIncludePlayersVehicle, 0xE5F773C1A1D9D168, "b")end, - ["SET_LOCAL_PLAYER_VISIBLE_LOCALLY"]=--[[void]] function(--[[BOOL (bool)]] bIncludePlayersVehicle)return native_invoker.unified_void(bIncludePlayersVehicle, 0x7619364C82D3BF14, "b")end, - ["SET_PLAYER_INVISIBLE_LOCALLY"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] bIncludePlayersVehicle)return native_invoker.unified_void(player, bIncludePlayersVehicle, 0x12B37D54667DB0B8, "ib")end, - ["SET_PLAYER_VISIBLE_LOCALLY"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] bIncludePlayersVehicle)return native_invoker.unified_void(player, bIncludePlayersVehicle, 0xFAA10F1FAFB11AF2, "ib")end, - -- Hardcoded to not work in SP. - ["FADE_OUT_LOCAL_PLAYER"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x416DBD4CD6ED8DD2, "b")end, - -- normal - transition like when your coming out of LSC - -- slow - transition like when you walk into a mission - -- - ["NETWORK_FADE_OUT_ENTITY"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] normal,--[[BOOL (bool)]] slow)return native_invoker.unified_void(entity, normal, slow, 0xDE564951F95E09ED, "ibb")end, - -- state - 0 does 5 fades - -- state - 1 does 6 fades - -- - -- p3: setting to 1 made vehicle fade in slower, probably "slow" as per NETWORK_FADE_OUT_ENTITY - ["NETWORK_FADE_IN_ENTITY"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] state,--[[Any (int)]] p2)return native_invoker.unified_void(entity, state, p2, 0x1F4ED342ACEFE62D, "ibi")end, - ["NETWORK_IS_PLAYER_FADING"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x631DC5DFF4B110E3, "i")end, - ["NETWORK_IS_ENTITY_FADING"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x422F32CC7E56ABAD, "i")end, - ["IS_PLAYER_IN_CUTSCENE"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0xE73092F4157CD126, "i")end, - ["SET_ENTITY_VISIBLE_IN_CUTSCENE"]=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xE0031D3C8F36AB82, "ibb")end, - -- Makes the provided entity visible for yourself for the current frame. - ["SET_ENTITY_LOCALLY_INVISIBLE"]=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0xE135A9FF3F5D05D8, "i")end, - ["SET_ENTITY_LOCALLY_VISIBLE"]=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0x241E289B5C059EDC, "i")end, - ["IS_DAMAGE_TRACKER_ACTIVE_ON_NETWORK_ID"]=--[[BOOL (bool)]] function(--[[int]] netID)return native_invoker.unified_bool(netID, 0x6E192E33AD436366, "i")end, - ["ACTIVATE_DAMAGE_TRACKER_ON_NETWORK_ID"]=--[[void]] function(--[[int]] netID,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(netID, toggle, 0xD45B1FFCCD52FF19, "ib")end, - ["IS_DAMAGE_TRACKER_ACTIVE_ON_PLAYER"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0xB2092A1EAA7FD45F, "i")end, - ["ACTIVATE_DAMAGE_TRACKER_ON_PLAYER"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0xBEC0816FF5ACBCDA, "ib")end, - ["IS_SPHERE_VISIBLE_TO_ANOTHER_MACHINE"]=--[[BOOL (bool)]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3)return native_invoker.unified_bool(p0, p1, p2, p3, 0xD82CF8E64C8729D8, "ffff")end, - ["IS_SPHERE_VISIBLE_TO_PLAYER"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4)return native_invoker.unified_bool(p0, p1, p2, p3, p4, 0xDC3A310219E5DA62, "iffff")end, - ["RESERVE_NETWORK_MISSION_OBJECTS"]=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0x4E5C93BD0C32FBF8, "i")end, - ["RESERVE_NETWORK_MISSION_PEDS"]=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0xB60FEBA45333D36F, "i")end, - ["RESERVE_NETWORK_MISSION_VEHICLES"]=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0x76B02E21ED27A469, "i")end, - ["RESERVE_LOCAL_NETWORK_MISSION_OBJECTS"]=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0x797F9C5E661D920E, "i")end, - ["RESERVE_LOCAL_NETWORK_MISSION_PEDS"]=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0x2C8DF5D129595281, "i")end, - ["RESERVE_LOCAL_NETWORK_MISSION_VEHICLES"]=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0x42613035157E4208, "i")end, - ["CAN_REGISTER_MISSION_OBJECTS"]=--[[BOOL (bool)]] function(--[[int]] amount)return native_invoker.unified_bool(amount, 0x800DD4721A8B008B, "i")end, - ["CAN_REGISTER_MISSION_PEDS"]=--[[BOOL (bool)]] function(--[[int]] amount)return native_invoker.unified_bool(amount, 0xBCBF4FEF9FA5D781, "i")end, - ["CAN_REGISTER_MISSION_VEHICLES"]=--[[BOOL (bool)]] function(--[[int]] amount)return native_invoker.unified_bool(amount, 0x7277F1F2E085EE74, "i")end, - ["CAN_REGISTER_MISSION_PICKUPS"]=--[[BOOL (bool)]] function(--[[int]] amount)return native_invoker.unified_bool(amount, 0x0A49D1CB6E34AF72, "i")end, - ["CAN_REGISTER_MISSION_DOORS"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0xE16AA70CE9BEEDC3, "i")end, - ["CAN_REGISTER_MISSION_ENTITIES"]=--[[BOOL (bool)]] function(--[[int]] ped_amt,--[[int]] vehicle_amt,--[[int]] object_amt,--[[int]] pickup_amt)return native_invoker.unified_bool(ped_amt, vehicle_amt, object_amt, pickup_amt, 0x69778E7564BADE6D, "iiii")end, - -- p0 appears to be for MP - ["GET_NUM_RESERVED_MISSION_OBJECTS"]=--[[int]] function(--[[BOOL (bool)]] p0,--[[Any (int)]] p1)return native_invoker.unified_int(p0, p1, 0xAA81B5F10BC43AC2, "bi")end, - -- p0 appears to be for MP - ["GET_NUM_RESERVED_MISSION_PEDS"]=--[[int]] function(--[[BOOL (bool)]] p0,--[[Any (int)]] p1)return native_invoker.unified_int(p0, p1, 0x1F13D5AE5CB17E17, "bi")end, - -- p0 appears to be for MP - ["GET_NUM_RESERVED_MISSION_VEHICLES"]=--[[int]] function(--[[BOOL (bool)]] p0,--[[Any (int)]] p1)return native_invoker.unified_int(p0, p1, 0xCF3A965906452031, "bi")end, - ["GET_NUM_CREATED_MISSION_OBJECTS"]=--[[int]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_int(p0, 0x12B6281B6C6706C0, "b")end, - ["GET_NUM_CREATED_MISSION_PEDS"]=--[[int]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_int(p0, 0xCB215C4B56A7FAE7, "b")end, - ["GET_NUM_CREATED_MISSION_VEHICLES"]=--[[int]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_int(p0, 0x0CD9AB83489430EA, "b")end, - ["GET_RESERVED_MISSION_ENTITIES_IN_AREA"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[Any (int)]] p3,--[[Any* (pointer)]] out1,--[[Any* (pointer)]] out2,--[[Any* (pointer)]] out3)return native_invoker.unified_void(x, y, z, p3, out1, out2, out3, 0xE42D626EEC94E5D9, "fffippp")end, - ["GET_MAX_NUM_NETWORK_OBJECTS"]=--[[int]] function()return native_invoker.unified_int(0xC7BE335216B5EC7C, "")end, - ["GET_MAX_NUM_NETWORK_PEDS"]=--[[int]] function()return native_invoker.unified_int(0x0C1F7D49C39D2289, "")end, - ["GET_MAX_NUM_NETWORK_VEHICLES"]=--[[int]] function()return native_invoker.unified_int(0x0AFCE529F69B21FF, "")end, - ["GET_MAX_NUM_NETWORK_PICKUPS"]=--[[int]] function()return native_invoker.unified_int(0xA72835064DD63E4C, "")end, - ["NETWORK_SET_OBJECT_SCOPE_DISTANCE"]=--[[void]] function(--[[Object (int)]] object,--[[float]] range)return native_invoker.unified_void(object, range, 0xBA7F0B77D80A4EB7, "if")end, - ["NETWORK_ALLOW_CLONING_WHILE_IN_TUTORIAL"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x0F1A4B45B7693B95, "ii")end, - -- A value between 1.0 and 5.0 - -- - -- _NETWORK_SET_TASK_CUTSCENE_PROXIMITY_SCALE? - ["NETWORK_SET_TASK_CUTSCENE_INSCOPE_MULTIPLER"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xC6FCEE21C6FCEE21, "i")end, - ["GET_NETWORK_TIME"]=--[[int]] function()return native_invoker.unified_int(0x7A5487FE9FAA6B48, "")end, - -- Returns the same value as GET_NETWORK_TIME in freemode, but as opposed to `GET_NETWORK_TIME` it always gets the most recent time, instead of once per tick. - -- Could be used for benchmarking since it can return times in ticks. - ["GET_NETWORK_TIME_ACCURATE"]=--[[int]] function()return native_invoker.unified_int(0x89023FBBF9200E9F, "")end, - ["HAS_NETWORK_TIME_STARTED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x46718ACEEDEAFC84, "")end, - -- Adds the first argument to the second. - ["GET_TIME_OFFSET"]=--[[int]] function(--[[int]] timeA,--[[int]] timeB)return native_invoker.unified_int(timeA, timeB, 0x017008CCDAD48503, "ii")end, - -- Subtracts the second argument from the first, then returns whether the result is negative. - ["IS_TIME_LESS_THAN"]=--[[BOOL (bool)]] function(--[[int]] timeA,--[[int]] timeB)return native_invoker.unified_bool(timeA, timeB, 0xCB2CF5148012C8D0, "ii")end, - -- Subtracts the first argument from the second, then returns whether the result is negative. - ["IS_TIME_MORE_THAN"]=--[[BOOL (bool)]] function(--[[int]] timeA,--[[int]] timeB)return native_invoker.unified_bool(timeA, timeB, 0xDE350F8651E4346C, "ii")end, - -- Returns true if the two times are equal; otherwise returns false. - ["IS_TIME_EQUAL_TO"]=--[[BOOL (bool)]] function(--[[int]] timeA,--[[int]] timeB)return native_invoker.unified_bool(timeA, timeB, 0xF5BC95857BD6D512, "ii")end, - -- Subtracts the second argument from the first. - ["GET_TIME_DIFFERENCE"]=--[[int]] function(--[[int]] timeA,--[[int]] timeB)return native_invoker.unified_int(timeA, timeB, 0xA2C6FC031D46FFF0, "ii")end, - ["GET_TIME_AS_STRING"]=--[[string]] function(--[[int]] time)return native_invoker.unified_string(time, 0x9E23B1777A927DAD, "i")end, - -- Same as GET_CLOUD_TIME_AS_INT but returns the value as a hex string (%I64X). - ["GET_CLOUD_TIME_AS_STRING"]=--[[string]] function()return native_invoker.unified_string(0xF12E6CD06C73D69E, "")end, - -- Returns POSIX timestamp, an int representing the cloud time. - ["GET_CLOUD_TIME_AS_INT"]=--[[int]] function()return native_invoker.unified_int(0x9A73240B49945C76, "")end, - -- Takes the specified time and writes it to the structure specified in the second argument. - -- - -- struct date_time - -- { - -- int year; - -- int PADDING1; - -- int month; - -- int PADDING2; - -- int day; - -- int PADDING3; - -- int hour; - -- int PADDING4; - -- int minute; - -- int PADDING5; - -- int second; - -- int PADDING6; - -- }; - ["CONVERT_POSIX_TIME"]=--[[void]] function(--[[int]] posixTime,--[[Any* (pointer)]] timeStructure)return native_invoker.unified_void(posixTime, timeStructure, 0xAC97AF97FA68E5D5, "ip")end, - ["NETWORK_SET_IN_SPECTATOR_MODE"]=--[[void]] function(--[[BOOL (bool)]] toggle,--[[Ped (int)]] playerPed)return native_invoker.unified_void(toggle, playerPed, 0x423DE3854BB50894, "bi")end, - ["NETWORK_SET_IN_SPECTATOR_MODE_EXTENDED"]=--[[void]] function(--[[BOOL (bool)]] toggle,--[[Ped (int)]] playerPed,--[[BOOL (bool)]] p2)return native_invoker.unified_void(toggle, playerPed, p2, 0x419594E137637120, "bib")end, - ["NETWORK_SET_IN_FREE_CAM_MODE"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xFC18DB55AE19E046, "b")end, - ["NETWORK_SET_ANTAGONISTIC_TO_PLAYER"]=--[[void]] function(--[[BOOL (bool)]] toggle,--[[Player (int)]] player)return native_invoker.unified_void(toggle, player, 0x5C707A667DF8B9FA, "bi")end, - ["NETWORK_IS_IN_SPECTATOR_MODE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x048746E388762E11, "")end, - ["NETWORK_SET_IN_MP_CUTSCENE"]=--[[void]] function(--[[BOOL (bool)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0x9CA5DE655269FEC4, "bb")end, - ["NETWORK_IS_IN_MP_CUTSCENE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x6CC27C9FA2040220, "")end, - ["NETWORK_IS_PLAYER_IN_MP_CUTSCENE"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x63F9EE203C3619F2, "i")end, - ["NETWORK_HIDE_PROJECTILE_IN_CUTSCENE"]=--[[void]] function()return native_invoker.unified_void(0xFAC18E7356BD3210, "")end, - ["SET_NETWORK_VEHICLE_RESPOT_TIMER"]=--[[void]] function(--[[int]] netId,--[[int]] time,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(netId, time, p2, p3, 0xEC51713AB6EC36E8, "iiii")end, - ["IS_NETWORK_VEHICLE_RUNNING_RESPOT_TIMER"]=--[[BOOL (bool)]] function(--[[int]] networkID)return native_invoker.unified_bool(networkID, 0xDD7CEF5B3A4DA8A6, "i")end, - ["SET_NETWORK_VEHICLE_AS_GHOST"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x6274C4712850841E, "ib")end, - -- rage::netBlenderLinInterp::GetPositionMaxForUpdateLevel - ["SET_NETWORK_VEHICLE_MAX_POSITION_DELTA_MULTIPLIER"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] multiplier)return native_invoker.unified_void(vehicle, multiplier, 0xA2A707979FE754DC, "if")end, - -- Enables a periodic ShapeTest within the NetBlender and invokes rage::netBlenderLinInterp::GoStraightToTarget (or some functional wrapper). - ["SET_NETWORK_ENABLE_HIGH_SPEED_EDGE_FALL_DETECTION"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x838DA0936A24ED4D, "ib")end, - ["SET_LOCAL_PLAYER_AS_GHOST"]=--[[void]] function(--[[BOOL (bool)]] toggle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(toggle, p1, 0x5FFE9B4144F9712F, "bb")end, - ["IS_ENTITY_A_GHOST"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x21D04D7BC538C146, "i")end, - ["SET_NON_PARTICIPANTS_OF_THIS_SCRIPT_AS_GHOSTS"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x13F1FCB111B820B0, "b")end, - -- Enables ghosting between specific players - ["SET_REMOTE_PLAYER_AS_GHOST"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] p1)return native_invoker.unified_void(player, p1, 0xA7C511FA1C5BDA38, "ib")end, - -- Must be a value between 1 and 254 - ["SET_GHOST_ALPHA"]=--[[void]] function(--[[int]] alpha)return native_invoker.unified_void(alpha, 0x658500AE6D723A7E, "i")end, - -- Resets the entity ghost alpha to the default value (128) - ["RESET_GHOST_ALPHA"]=--[[void]] function()return native_invoker.unified_void(0x17330EBF2F2124A8, "")end, - ["SET_ENTITY_GHOSTED_FOR_GHOST_PLAYERS"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0x4BA166079D658ED4, "ib")end, - ["SET_INVERT_GHOSTING"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xD7B6C73CAD419BCF, "b")end, - ["IS_ENTITY_IN_GHOST_COLLISION"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x7EF7649B64D7FF10, "i")end, - ["USE_PLAYER_COLOUR_INSTEAD_OF_TEAM_COLOUR"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x77758139EC9B66C7, "b")end, - ["NETWORK_CREATE_SYNCHRONISED_SCENE"]=--[[int]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] xRot,--[[float]] yRot,--[[float]] zRot,--[[int]] rotationOrder,--[[BOOL (bool)]] useOcclusionPortal,--[[BOOL (bool)]] looped,--[[float]] p9,--[[float]] animTime,--[[float]] p11)return native_invoker.unified_int(x, y, z, xRot, yRot, zRot, rotationOrder, useOcclusionPortal, looped, p9, animTime, p11, 0x7CD6BC4C2BBDD526, "ffffffibbfff")end, - ["NETWORK_ADD_PED_TO_SYNCHRONISED_SCENE"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] netScene,--[[string]] animDict,--[[string]] animnName,--[[float]] speed,--[[float]] speedMultiplier,--[[int]] duration,--[[int]] flag,--[[float]] playbackRate,--[[Any (int)]] p9)return native_invoker.unified_void(ped, netScene, animDict, animnName, speed, speedMultiplier, duration, flag, playbackRate, p9, 0x742A637471BCECD9, "iissffiifi")end, - ["NETWORK_ADD_PED_TO_SYNCHRONISED_SCENE_WITH_IK"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5,--[[Any (int)]] p6,--[[Any (int)]] p7,--[[Any (int)]] p8,--[[Any (int)]] p9)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, 0xA5EAFE473E45C442, "iiiiiiiiii")end, - ["NETWORK_ADD_ENTITY_TO_SYNCHRONISED_SCENE"]=--[[void]] function(--[[Entity (int)]] entity,--[[int]] netScene,--[[string]] animDict,--[[string]] animName,--[[float]] speed,--[[float]] speedMulitiplier,--[[int]] flag)return native_invoker.unified_void(entity, netScene, animDict, animName, speed, speedMulitiplier, flag, 0xF2404D68CBC855FA, "iissffi")end, - -- Similar structure as NETWORK_ADD_ENTITY_TO_SYNCHRONISED_SCENE but it includes this time a hash. - -- In casino_slots it is used one time in a synced scene involving a ped and the slot machine? - ["NETWORK_ADD_MAP_ENTITY_TO_SYNCHRONISED_SCENE"]=--[[void]] function(--[[int]] netScene,--[[Hash (int)]] modelHash,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] p5,--[[string]] p6,--[[float]] p7,--[[float]] p8,--[[int]] flags)return native_invoker.unified_void(netScene, modelHash, x, y, z, p5, p6, p7, p8, flags, 0x45F35C0EDC33B03B, "iiffffsffi")end, - ["NETWORK_ADD_SYNCHRONISED_SCENE_CAMERA"]=--[[void]] function(--[[int]] netScene,--[[string]] animDict,--[[string]] animName)return native_invoker.unified_void(netScene, animDict, animName, 0xCF8BD3B0BD6D42D7, "iss")end, - ["NETWORK_ATTACH_SYNCHRONISED_SCENE_TO_ENTITY"]=--[[void]] function(--[[int]] netScene,--[[Entity (int)]] entity,--[[int]] bone)return native_invoker.unified_void(netScene, entity, bone, 0x478DCBD2A98B705A, "iii")end, - ["NETWORK_START_SYNCHRONISED_SCENE"]=--[[void]] function(--[[int]] netScene)return native_invoker.unified_void(netScene, 0x9A1B3FCDB36C8697, "i")end, - ["NETWORK_STOP_SYNCHRONISED_SCENE"]=--[[void]] function(--[[int]] netScene)return native_invoker.unified_void(netScene, 0xC254481A4574CB2F, "i")end, - ["NETWORK_GET_LOCAL_SCENE_FROM_NETWORK_ID"]=--[[int]] function(--[[int]] netId)return native_invoker.unified_int(netId, 0x02C40BF885C567B6, "i")end, - ["NETWORK_FORCE_LOCAL_USE_OF_SYNCED_SCENE_CAMERA"]=--[[void]] function(--[[int]] netScene)return native_invoker.unified_void(netScene, 0xC9B43A33D09CADA7, "i")end, - ["NETWORK_ALLOW_REMOTE_SYNCED_SCENE_LOCAL_PLAYER_REQUESTS"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x144DA052257AE7D8, "i")end, - -- p0 is always 0. p1 is pointing to a global. - ["NETWORK_FIND_LARGEST_BUNCH_OF_PLAYERS"]=--[[BOOL (bool)]] function(--[[int]] p0,--[[Any (int)]] p1)return native_invoker.unified_bool(p0, p1, 0xFB1F9381E80FA13F, "ii")end, - -- One of the first things it does is get the players ped. - -- Then it calls a function that is used in some tasks and ped based functions. - -- p5, p6, p7 is another coordinate (or zero), often related to `GET_BLIP_COORDS, in the decompiled scripts. - ["NETWORK_START_RESPAWN_SEARCH_FOR_PLAYER"]=--[[BOOL (bool)]] function(--[[Player (int)]] player,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[float]] p5,--[[float]] p6,--[[float]] p7,--[[int]] flags)return native_invoker.unified_bool(player, x, y, z, radius, p5, p6, p7, flags, 0x5A6FFA2433E2F14C, "ifffffffi")end, - -- p8, p9, p10 is another coordinate, or zero, often related to `GET_BLIP_COORDS in the decompiled scripts. - ["NETWORK_START_RESPAWN_SEARCH_IN_ANGLED_AREA_FOR_PLAYER"]=--[[BOOL (bool)]] function(--[[Player (int)]] player,--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] width,--[[float]] p8,--[[float]] p9,--[[float]] p10,--[[int]] flags)return native_invoker.unified_bool(player, x1, y1, z1, x2, y2, z2, width, p8, p9, p10, flags, 0x4BA92A18502BCA61, "iffffffffffi")end, - ["NETWORK_QUERY_RESPAWN_RESULTS"]=--[[int]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_int(p0, 0x3C891A251567DFCE, "p")end, - ["NETWORK_CANCEL_RESPAWN_SEARCH"]=--[[void]] function()return native_invoker.unified_void(0xFB8F2A6F3DF08CBE, "")end, - -- Based on scripts such as in freemode.c how they call their vars vVar and fVar the 2nd and 3rd param it a Vector3 and Float, but the first is based on get_random_int_in_range.. - ["NETWORK_GET_RESPAWN_RESULT"]=--[[void]] function(--[[int]] randomInt,--[[Vector3* (pointer)]] coordinates,--[[float* (pointer)]] heading)return native_invoker.unified_void(randomInt, coordinates, heading, 0x371EA43692861CF1, "ipp")end, - ["NETWORK_GET_RESPAWN_RESULT_FLAGS"]=--[[int]] function(--[[int]] p0)return native_invoker.unified_int(p0, 0x6C34F1208B8923FD, "i")end, - ["NETWORK_START_SOLO_TUTORIAL_SESSION"]=--[[void]] function()return native_invoker.unified_void(0x17E0198B3882C2CB, "")end, - -- teamId must be < 3, instanceId must be < 64 - ["NETWORK_ALLOW_GANG_TO_JOIN_TUTORIAL_SESSION"]=--[[void]] function(--[[int]] teamId,--[[int]] instanceId)return native_invoker.unified_void(teamId, instanceId, 0xFB680D403909DC70, "ii")end, - ["NETWORK_END_TUTORIAL_SESSION"]=--[[void]] function()return native_invoker.unified_void(0xD0AFAFF5A51D72F7, "")end, - ["NETWORK_IS_IN_TUTORIAL_SESSION"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xADA24309FE08DACF, "")end, - ["NETWORK_WAITING_POP_CLEAR_TUTORIAL_SESSION"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xB37E4E6A2388CA7B, "")end, - ["NETWORK_IS_TUTORIAL_SESSION_CHANGE_PENDING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x35F0B98A8387274D, "")end, - ["NETWORK_GET_PLAYER_TUTORIAL_SESSION_INSTANCE"]=--[[int]] function(--[[Player (int)]] player)return native_invoker.unified_int(player, 0x3B39236746714134, "i")end, - ["NETWORK_ARE_PLAYERS_IN_SAME_TUTORIAL_SESSION"]=--[[BOOL (bool)]] function(--[[Player (int)]] player,--[[int]] index)return native_invoker.unified_bool(player, index, 0x9DE986FC9A87C474, "ii")end, - ["NETWORK_BLOCK_PROXY_MIGRATION_BETWEEN_TUTORIAL_SESSIONS"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xFEA7A352DDB34D52, "i")end, - ["NETWORK_CONCEAL_PLAYER"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle,--[[BOOL (bool)]] p2)return native_invoker.unified_void(player, toggle, p2, 0xBBDF066252829606, "ibb")end, - ["NETWORK_IS_PLAYER_CONCEALED"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x919B3C98ED8292F9, "i")end, - ["NETWORK_CONCEAL_ENTITY"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0x1632BE0AC1E62876, "ib")end, - -- Note: This only works for vehicles, which appears to be a bug (since the setter _does_ work for every entity type and the name is 99% correct). - ["NETWORK_IS_ENTITY_CONCEALED"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x71302EC70689052A, "i")end, - -- Works in Singleplayer too. - -- Passing wrong data (e.g. hours above 23) will cause the game to crash. - ["NETWORK_OVERRIDE_CLOCK_TIME"]=--[[void]] function(--[[int]] hours,--[[int]] minutes,--[[int]] seconds)return native_invoker.unified_void(hours, minutes, seconds, 0xE679E3E06E363892, "iii")end, - ["NETWORK_OVERRIDE_CLOCK_RATE"]=--[[void]] function(--[[int]] ms)return native_invoker.unified_void(ms, 0x42BF1D2E723B6D7E, "i")end, - ["NETWORK_CLEAR_CLOCK_TIME_OVERRIDE"]=--[[void]] function()return native_invoker.unified_void(0xD972DF67326F966E, "")end, - ["NETWORK_IS_CLOCK_TIME_OVERRIDDEN"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xD7C95D322FF57522, "")end, - ["NETWORK_ADD_ENTITY_AREA"]=--[[int]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2)return native_invoker.unified_int(x1, y1, z1, x2, y2, z2, 0x494C8FB299290269, "ffffff")end, - -- To remove, see: NETWORK_REMOVE_ENTITY_AREA - -- See IS_POINT_IN_ANGLED_AREA for the definition of an angled area. - ["NETWORK_ADD_ENTITY_ANGLED_AREA"]=--[[int]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] width)return native_invoker.unified_int(x1, y1, z1, x2, y2, z2, width, 0x376C6375BA60293A, "fffffff")end, - ["NETWORK_ADD_CLIENT_ENTITY_AREA"]=--[[int]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2)return native_invoker.unified_int(x1, y1, z1, x2, y2, z2, 0x25B99872D588A101, "ffffff")end, - ["NETWORK_ADD_CLIENT_ENTITY_ANGLED_AREA"]=--[[int]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] radius)return native_invoker.unified_int(x1, y1, z1, x2, y2, z2, radius, 0x2B1C623823DB0D9D, "fffffff")end, - ["NETWORK_REMOVE_ENTITY_AREA"]=--[[BOOL (bool)]] function(--[[int]] areaHandle)return native_invoker.unified_bool(areaHandle, 0x93CF869BAA0C4874, "i")end, - ["NETWORK_ENTITY_AREA_DOES_EXIST"]=--[[BOOL (bool)]] function(--[[int]] areaHandle)return native_invoker.unified_bool(areaHandle, 0xE64A3CA08DFA37A9, "i")end, - ["NETWORK_ENTITY_AREA_HAVE_ALL_REPLIED"]=--[[BOOL (bool)]] function(--[[int]] areaHandle)return native_invoker.unified_bool(areaHandle, 0x4DF7CFFF471A7FB1, "i")end, - ["NETWORK_ENTITY_AREA_IS_OCCUPIED"]=--[[BOOL (bool)]] function(--[[int]] areaHandle)return native_invoker.unified_bool(areaHandle, 0x4A2D4E8BF4265B0F, "i")end, - ["NETWORK_USE_HIGH_PRECISION_BLENDING"]=--[[void]] function(--[[int]] netID,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(netID, toggle, 0x2B1813ABA29016C5, "ib")end, - ["NETWORK_SET_CUSTOM_ARENA_BALL_PARAMS"]=--[[void]] function(--[[int]] netId)return native_invoker.unified_void(netId, 0xA6FCECCF4721D679, "i")end, - ["NETWORK_ENTITY_USE_HIGH_PRECISION_ROTATION"]=--[[void]] function(--[[int]] netId,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(netId, toggle, 0x95BAF97C82464629, "ib")end, - ["NETWORK_REQUEST_CLOUD_BACKGROUND_SCRIPTS"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x924426BFFD82E915, "")end, - ["NETWORK_IS_CLOUD_BACKGROUND_SCRIPT_REQUEST_PENDING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x8132C0EB8B2B3293, "")end, - ["NETWORK_REQUEST_CLOUD_TUNABLES"]=--[[void]] function()return native_invoker.unified_void(0x42FB3B532D526E6C, "")end, - ["NETWORK_IS_TUNABLE_CLOUD_REQUEST_PENDING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x0467C11ED88B7D28, "")end, - -- Actually returns the version (TUNABLE_VERSION) - ["NETWORK_GET_TUNABLE_CLOUD_CRC"]=--[[int]] function()return native_invoker.unified_int(0x10BD227A753B0D84, "")end, - ["NETWORK_DOES_TUNABLE_EXIST"]=--[[BOOL (bool)]] function(--[[string]] tunableContext,--[[string]] tunableName)return native_invoker.unified_bool(tunableContext, tunableName, 0x85E5F8B9B898B20A, "ss")end, - ["NETWORK_ACCESS_TUNABLE_INT"]=--[[BOOL (bool)]] function(--[[string]] tunableContext,--[[string]] tunableName,--[[int* (pointer)]] value)return native_invoker.unified_bool(tunableContext, tunableName, value, 0x8BE1146DFD5D4468, "ssp")end, - ["NETWORK_ACCESS_TUNABLE_FLOAT"]=--[[BOOL (bool)]] function(--[[string]] tunableContext,--[[string]] tunableName,--[[float* (pointer)]] value)return native_invoker.unified_bool(tunableContext, tunableName, value, 0xE5608CA7BC163A5F, "ssp")end, - ["NETWORK_ACCESS_TUNABLE_BOOL"]=--[[BOOL (bool)]] function(--[[string]] tunableContext,--[[string]] tunableName)return native_invoker.unified_bool(tunableContext, tunableName, 0xAA6A47A573ABB75A, "ss")end, - ["NETWORK_DOES_TUNABLE_EXIST_HASH"]=--[[BOOL (bool)]] function(--[[Hash (int)]] tunableContext,--[[Hash (int)]] tunableName)return native_invoker.unified_bool(tunableContext, tunableName, 0xE4E53E1419D81127, "ii")end, - ["NETWORK_ACCESS_TUNABLE_MODIFICATION_DETECTION_CLEAR"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xFAFC23AEE23868DB, "")end, - ["NETWORK_ACCESS_TUNABLE_INT_HASH"]=--[[BOOL (bool)]] function(--[[Hash (int)]] tunableContext,--[[Hash (int)]] tunableName,--[[int* (pointer)]] value)return native_invoker.unified_bool(tunableContext, tunableName, value, 0x40FCE03E50E8DBE8, "iip")end, - ["NETWORK_ACCESS_TUNABLE_INT_MODIFICATION_DETECTION_REGISTRATION_HASH"]=--[[BOOL (bool)]] function(--[[Hash (int)]] contextHash,--[[Hash (int)]] nameHash,--[[int* (pointer)]] value)return native_invoker.unified_bool(contextHash, nameHash, value, 0x3A8B55FDA4C8DDEF, "iip")end, - ["NETWORK_ACCESS_TUNABLE_FLOAT_HASH"]=--[[BOOL (bool)]] function(--[[Hash (int)]] tunableContext,--[[Hash (int)]] tunableName,--[[float* (pointer)]] value)return native_invoker.unified_bool(tunableContext, tunableName, value, 0x972BC203BBC4C4D5, "iip")end, - ["NETWORK_ACCESS_TUNABLE_FLOAT_MODIFICATION_DETECTION_REGISTRATION_HASH"]=--[[BOOL (bool)]] function(--[[Hash (int)]] contextHash,--[[Hash (int)]] nameHash,--[[float* (pointer)]] value)return native_invoker.unified_bool(contextHash, nameHash, value, 0x1950DAE9848A4739, "iip")end, - ["NETWORK_ACCESS_TUNABLE_BOOL_HASH"]=--[[BOOL (bool)]] function(--[[Hash (int)]] tunableContext,--[[Hash (int)]] tunableName)return native_invoker.unified_bool(tunableContext, tunableName, 0xEA16B69D93D71A45, "ii")end, - ["NETWORK_ACCESS_TUNABLE_BOOL_MODIFICATION_DETECTION_REGISTRATION_HASH"]=--[[BOOL (bool)]] function(--[[Hash (int)]] contextHash,--[[Hash (int)]] nameHash,--[[BOOL* (pointer)]] value)return native_invoker.unified_bool(contextHash, nameHash, value, 0x697F508861875B42, "iip")end, - -- Returns defaultValue if the tunable doesn't exist. - ["NETWORK_TRY_ACCESS_TUNABLE_BOOL_HASH"]=--[[BOOL (bool)]] function(--[[Hash (int)]] tunableContext,--[[Hash (int)]] tunableName,--[[BOOL (bool)]] defaultValue)return native_invoker.unified_bool(tunableContext, tunableName, defaultValue, 0xC7420099936CE286, "iib")end, - -- Return the content modifier id (the tunables context if you want) of a specific content. - -- - -- It takes the content hash (which is the mission id hash), and return the content modifier id, used as the tunables context. - -- - -- The mission id can be found on the Social club, for example, 'socialclub.rockstargames.com/games/gtav/jobs/job/A8M6Bz8MLEC5xngvDCzGwA' - -- - -- 'A8M6Bz8MLEC5xngvDCzGwA' is the mission id, so the game hash this and use it as the parameter for this native. - -- - ["NETWORK_GET_CONTENT_MODIFIER_LIST_ID"]=--[[int]] function(--[[Hash (int)]] contentHash)return native_invoker.unified_int(contentHash, 0x187382F8A3E0A6C3, "i")end, - ["NETWORK_GET_BONE_ID_OF_FATAL_HIT"]=--[[int]] function()return native_invoker.unified_int(0x7DB53B37A2F211A0, "")end, - ["NETWORK_RESET_BODY_TRACKER"]=--[[void]] function()return native_invoker.unified_void(0x72433699B4E6DD64, "")end, - ["NETWORK_GET_NUMBER_BODY_TRACKER_HITS"]=--[[int]] function()return native_invoker.unified_int(0xD38C4A6D047C019D, "")end, - ["NETWORK_HAS_BONE_BEEN_HIT_BY_KILLER"]=--[[BOOL (bool)]] function(--[[int]] boneIndex)return native_invoker.unified_bool(boneIndex, 0x2E0BF682CC778D49, "i")end, - ["NETWORK_SET_ATTRIBUTE_DAMAGE_TO_PLAYER"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Player (int)]] player)return native_invoker.unified_bool(ped, player, 0x0EDE326D47CD0F3E, "ii")end, - -- Allows vehicle wheels to be destructible even when the vehicle entity is invincible. - ["NETWORK_TRIGGER_DAMAGE_EVENT_FOR_ZERO_DAMAGE"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0x890E2C5ABED7236D, "ib")end, - ["NETWORK_TRIGGER_DAMAGE_EVENT_FOR_ZERO_WEAPON_HASH"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0x38B7C51AB1EDC7D8, "ib")end, - ["NETWORK_SET_NO_LONGER_NEEDED"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0x3FC795691834481D, "ib")end, - -- In the console script dumps, this is only referenced once. - -- NETWORK::NETWORK_EXPLODE_VEHICLE(vehicle, 1, 0, 0); - -- - -- ^^^^^ That must be PC script dumps? In X360 Script Dumps it is reference a few times with 2 differences in the parameters. - -- Which as you see below is 1, 0, 0 + 1, 1, 0 + 1, 0, and a *param? - -- - -- am_plane_takedown.c - -- network_explode_vehicle(net_to_veh(Local_40.imm_2), 1, 1, 0); - -- - -- armenian2.c - -- network_explode_vehicle(Local_80[6 <2>], 1, 0, 0); - -- - -- fm_horde_controler.c - -- network_explode_vehicle(net_to_veh(*uParam0), 1, 0, *uParam0); - -- - -- fm_mission_controller.c, has 6 hits so not going to list them. - -- - -- Side note, setting the first parameter to 0 seems to mute sound or so? - -- - -- Seems it's like ADD_EXPLOSION, etc. the first 2 params. The 3rd atm no need to worry since it always seems to be 0. - -- - ["NETWORK_EXPLODE_VEHICLE"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] isAudible,--[[BOOL (bool)]] isInvisible,--[[int]] netId)return native_invoker.unified_bool(vehicle, isAudible, isInvisible, netId, 0x301A42153C9AD707, "ibbi")end, - ["NETWORK_EXPLODE_HELI"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] isAudible,--[[BOOL (bool)]] isInvisible,--[[int]] netId)return native_invoker.unified_void(vehicle, isAudible, isInvisible, netId, 0x2A5E0621DD815A9A, "ibbi")end, - ["NETWORK_USE_LOGARITHMIC_BLENDING_THIS_FRAME"]=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0xCD71A4ECAB22709E, "i")end, - ["NETWORK_OVERRIDE_COORDS_AND_HEADING"]=--[[void]] function(--[[Entity (int)]] entity,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] heading)return native_invoker.unified_void(entity, x, y, z, heading, 0xA7E30DE9272B6D49, "iffff")end, - ["NETWORK_ENABLE_EXTRA_VEHICLE_ORIENTATION_BLEND_CHECKS"]=--[[void]] function(--[[int]] netId,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(netId, toggle, 0xE6717E652B8C8D8A, "ib")end, - ["NETWORK_DISABLE_PROXIMITY_MIGRATION"]=--[[void]] function(--[[int]] netID)return native_invoker.unified_void(netID, 0x407091CF6037118E, "i")end, - -- value must be < 255 - ["NETWORK_SET_PROPERTY_ID"]=--[[void]] function(--[[int]] id)return native_invoker.unified_void(id, 0x1775961C2FBBCB5C, "i")end, - ["NETWORK_CLEAR_PROPERTY_ID"]=--[[void]] function()return native_invoker.unified_void(0xC2B82527CA77053E, "")end, - -- p0 in the decompiled scripts is always the stat mesh_texblend * 0.07 to int - ["NETWORK_SET_PLAYER_MENTAL_STATE"]=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0x367EF5E2F439B4C6, "i")end, - ["NETWORK_SET_MINIMUM_RANK_FOR_MISSION"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x94538037EE44F5CF, "b")end, - ["NETWORK_CACHE_LOCAL_PLAYER_HEAD_BLEND_DATA"]=--[[void]] function()return native_invoker.unified_void(0xBD0BE0BFC927EAC1, "")end, - ["NETWORK_HAS_CACHED_PLAYER_HEAD_BLEND_DATA"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x237D5336A9A54108, "i")end, - ["NETWORK_APPLY_CACHED_PLAYER_HEAD_BLEND_DATA"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Player (int)]] player)return native_invoker.unified_bool(ped, player, 0x99B72C7ABDE5C910, "ii")end, - ["GET_NUM_COMMERCE_ITEMS"]=--[[int]] function()return native_invoker.unified_int(0xF2EAC213D5EA0623, "")end, - ["IS_COMMERCE_DATA_VALID"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xEA14EEF5B7CD2C30, "")end, - -- Does nothing (it's a nullsub). - ["TRIGGER_COMMERCE_DATA_FETCH"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xB606E6CC59664972, "i")end, - ["IS_COMMERCE_DATA_FETCH_IN_PROGRESS"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x1D4DC17C38FEAFF0, "")end, - ["GET_COMMERCE_ITEM_ID"]=--[[string]] function(--[[int]] index)return native_invoker.unified_string(index, 0x662635855957C411, "i")end, - ["GET_COMMERCE_ITEM_NAME"]=--[[string]] function(--[[int]] index)return native_invoker.unified_string(index, 0xB4271092CA7EDF48, "i")end, - ["GET_COMMERCE_PRODUCT_PRICE"]=--[[string]] function(--[[int]] index)return native_invoker.unified_string(index, 0xCA94551B50B4932C, "i")end, - ["GET_COMMERCE_ITEM_NUM_CATS"]=--[[int]] function(--[[int]] index)return native_invoker.unified_int(index, 0x2A7776C709904AB0, "i")end, - -- index2 is unused - ["GET_COMMERCE_ITEM_CAT"]=--[[string]] function(--[[int]] index,--[[int]] index2)return native_invoker.unified_string(index, index2, 0x6F44CBF56D79FAC0, "ii")end, - ["OPEN_COMMERCE_STORE"]=--[[void]] function(--[[string]] p0,--[[string]] p1,--[[int]] p2)return native_invoker.unified_void(p0, p1, p2, 0x58C21165F6545892, "ssi")end, - ["IS_COMMERCE_STORE_OPEN"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x2EAC52B4019E2782, "")end, - -- Access to the store for shark cards etc... - ["SET_STORE_ENABLED"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x9641A9FF718E9C5E, "b")end, - ["REQUEST_COMMERCE_ITEM_IMAGE"]=--[[BOOL (bool)]] function(--[[int]] index)return native_invoker.unified_bool(index, 0xA2F952104FC6DD4B, "i")end, - ["RELEASE_ALL_COMMERCE_ITEM_IMAGES"]=--[[void]] function()return native_invoker.unified_void(0x72D0706CD6CCDB58, "")end, - ["GET_COMMERCE_ITEM_TEXTURENAME"]=--[[string]] function(--[[int]] index)return native_invoker.unified_string(index, 0x722F5D28B61C5EA8, "i")end, - ["IS_STORE_AVAILABLE_TO_USER"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x883D79C4071E18B3, "")end, - ["DELAY_MP_STORE_OPEN"]=--[[void]] function()return native_invoker.unified_void(0x265635150FB0D82E, "")end, - ["RESET_STORE_NETWORK_GAME_TRACKING"]=--[[void]] function()return native_invoker.unified_void(0x444C4525ECE0A4B9, "")end, - ["IS_USER_OLD_ENOUGH_TO_ACCESS_STORE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x59328EB08C5CEB2B, "")end, - ["SET_LAST_VIEWED_SHOP_ITEM"]=--[[void]] function(--[[Hash (int)]] p0,--[[int]] p1,--[[Hash (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xFAE628F1E9ADB239, "iii")end, - -- Checks some commerce stuff - ["GET_USER_PREMIUM_ACCESS"]=--[[int]] function()return native_invoker.unified_int(0x754615490A029508, "")end, - -- Checks some commerce stuff - ["GET_USER_STARTER_ACCESS"]=--[[int]] function()return native_invoker.unified_int(0x155467ACA0F55705, "")end, - ["CLOUD_DELETE_MEMBER_FILE"]=--[[int]] function(--[[string]] p0)return native_invoker.unified_int(p0, 0xC64DED7EF0D2FE37, "s")end, - ["CLOUD_HAS_REQUEST_COMPLETED"]=--[[BOOL (bool)]] function(--[[int]] requestId)return native_invoker.unified_bool(requestId, 0x4C61B39930D045DA, "i")end, - ["CLOUD_DID_REQUEST_SUCCEED"]=--[[BOOL (bool)]] function(--[[int]] requestId)return native_invoker.unified_bool(requestId, 0x3A3D5568AF297CD5, "i")end, - -- Downloads prod.cloud.rockstargames.com/titles/gta5/[platform]/check.json - ["CLOUD_CHECK_AVAILABILITY"]=--[[void]] function()return native_invoker.unified_void(0x4F18196C8D38768D, "")end, - ["CLOUD_IS_CHECKING_AVAILABILITY"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC7ABAC5DE675EE3B, "")end, - ["CLOUD_GET_AVAILABILITY_CHECK_RESULT"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x0B0CC10720653F3B, "")end, - -- This function is hard-coded to always return 0. - ["GET_CONTENT_TO_LOAD_TYPE"]=--[[int]] function()return native_invoker.unified_int(0x8B0C2964BA471961, "")end, - -- This function is hard-coded to always return 0. - ["GET_IS_LAUNCH_FROM_LIVE_AREA"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x88B588B41FF7868E, "")end, - -- This function is hard-coded to always return 0. - ["GET_IS_LIVE_AREA_LAUNCH_WITH_CONTENT"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x67FC09BC554A75E5, "")end, - -- This native does absolutely nothing, just a nullsub - ["CLEAR_SERVICE_EVENT_ARGUMENTS"]=--[[void]] function()return native_invoker.unified_void(0x966DD84FB6A46017, "")end, - ["UGC_COPY_CONTENT"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[Any* (pointer)]] p1)return native_invoker.unified_bool(p0, p1, 0x152D90E4C1B4738A, "pp")end, - ["UGC_IS_CREATING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x9FEDF86898F100E9, "")end, - ["UGC_HAS_CREATE_FINISHED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x5E24341A7F92A74B, "")end, - ["UGC_DID_CREATE_SUCCEED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x24E4E51FC16305F9, "")end, - ["UGC_GET_CREATE_RESULT"]=--[[int]] function()return native_invoker.unified_int(0xFBC5E768C7A77A6A, "")end, - ["UGC_GET_CREATE_CONTENT_ID"]=--[[string]] function()return native_invoker.unified_string(0xC55A0B40FFB1ED23, "")end, - ["UGC_CLEAR_CREATE_RESULT"]=--[[void]] function()return native_invoker.unified_void(0x17440AA15D1D3739, "")end, - ["UGC_QUERY_MY_CONTENT"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any* (pointer)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5)return native_invoker.unified_bool(p0, p1, p2, p3, p4, p5, 0x9BF438815F5D96EA, "iipiii")end, - ["UGC_QUERY_BY_CATEGORY"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[string]] p3,--[[Any (int)]] p4,--[[BOOL (bool)]] p5)return native_invoker.unified_bool(p0, p1, p2, p3, p4, p5, 0x692D58DF40657E8C, "iiisib")end, - ["UGC_QUERY_BY_CONTENT_ID"]=--[[BOOL (bool)]] function(--[[string]] contentId,--[[BOOL (bool)]] latestVersion,--[[string]] contentTypeName)return native_invoker.unified_bool(contentId, latestVersion, contentTypeName, 0x158EC424F35EC469, "sbs")end, - ["UGC_QUERY_BY_CONTENT_IDS"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] data,--[[int]] count,--[[BOOL (bool)]] latestVersion,--[[string]] contentTypeName)return native_invoker.unified_bool(data, count, latestVersion, contentTypeName, 0xC7397A83F7A2A462, "pibs")end, - ["UGC_QUERY_MOST_RECENTLY_CREATED_CONTENT"]=--[[BOOL (bool)]] function(--[[int]] offset,--[[int]] count,--[[string]] contentTypeName,--[[int]] p3)return native_invoker.unified_bool(offset, count, contentTypeName, p3, 0x6D4CB481FAC835E8, "iisi")end, - ["UGC_GET_BOOKMARKED_CONTENT"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[string]] p2,--[[Any* (pointer)]] p3)return native_invoker.unified_bool(p0, p1, p2, p3, 0xD5A4B59980401588, "iisp")end, - ["UGC_GET_MY_CONTENT"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[string]] p2,--[[Any* (pointer)]] p3)return native_invoker.unified_bool(p0, p1, p2, p3, 0x3195F8DD0D531052, "iisp")end, - ["UGC_GET_FRIEND_CONTENT"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[string]] p2,--[[Any* (pointer)]] p3)return native_invoker.unified_bool(p0, p1, p2, p3, 0xF9E1CCAE8BA4C281, "iisp")end, - ["UGC_GET_CREW_CONTENT"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[string]] p3,--[[Any* (pointer)]] p4)return native_invoker.unified_bool(p0, p1, p2, p3, p4, 0x9F6E2821885CAEE2, "iiisp")end, - ["UGC_GET_GET_BY_CATEGORY"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[string]] p3,--[[Any* (pointer)]] p4)return native_invoker.unified_bool(p0, p1, p2, p3, p4, 0x678BB03C1A3BD51E, "iiisp")end, - ["UGC_GET_GET_BY_CONTENT_ID"]=--[[BOOL (bool)]] function(--[[string]] contentId,--[[string]] contentTypeName)return native_invoker.unified_bool(contentId, contentTypeName, 0x815E5E3073DA1D67, "ss")end, - ["UGC_GET_GET_BY_CONTENT_IDS"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] data,--[[int]] dataCount,--[[string]] contentTypeName)return native_invoker.unified_bool(data, dataCount, contentTypeName, 0xB8322EEB38BE7C26, "pis")end, - ["UGC_GET_MOST_RECENTLY_CREATED_CONTENT"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any* (pointer)]] p2,--[[Any* (pointer)]] p3)return native_invoker.unified_bool(p0, p1, p2, p3, 0xA7862BC5ED1DFD7E, "iipp")end, - ["UGC_GET_MOST_RECENTLY_PLAYED_CONTENT"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any* (pointer)]] p2,--[[Any* (pointer)]] p3)return native_invoker.unified_bool(p0, p1, p2, p3, 0x97A770BEEF227E2B, "iipp")end, - ["UGC_GET_TOP_RATED_CONTENT"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any* (pointer)]] p2,--[[Any* (pointer)]] p3)return native_invoker.unified_bool(p0, p1, p2, p3, 0x5324A0E3E4CE3570, "iipp")end, - ["UGC_CANCEL_QUERY"]=--[[void]] function()return native_invoker.unified_void(0xE9B99B6853181409, "")end, - ["UGC_IS_GETTING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xD53ACDBEF24A46E8, "")end, - ["UGC_HAS_GET_FINISHED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x02ADA21EA2F6918F, "")end, - ["UGC_DID_GET_SUCCEED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x941E5306BCD7C2C7, "")end, - ["UGC_WAS_QUERY_FORCE_CANCELLED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC87E740D9F3872CC, "")end, - ["UGC_GET_QUERY_RESULT"]=--[[int]] function()return native_invoker.unified_int(0xEDF7F927136C224B, "")end, - ["UGC_GET_CONTENT_NUM"]=--[[int]] function()return native_invoker.unified_int(0xE0A6138401BCB837, "")end, - ["UGC_GET_CONTENT_TOTAL"]=--[[int]] function()return native_invoker.unified_int(0x769951E2455E2EB5, "")end, - ["UGC_GET_CONTENT_HASH"]=--[[Hash (int)]] function()return native_invoker.unified_int(0x3A17A27D75C74887, "")end, - ["UGC_CLEAR_QUERY_RESULTS"]=--[[void]] function()return native_invoker.unified_void(0xBA96394A0EECFA65, "")end, - ["UGC_GET_CONTENT_USER_ID"]=--[[string]] function(--[[int]] p0)return native_invoker.unified_string(p0, 0xCD67AD041A394C9C, "i")end, - ["UGC_GET_CONTENT_CREATOR_GAMER_HANDLE"]=--[[BOOL (bool)]] function(--[[int]] p0,--[[Any* (pointer)]] p1)return native_invoker.unified_bool(p0, p1, 0x584770794D758C18, "ip")end, - ["UGC_GET_CONTENT_CREATED_BY_LOCAL_PLAYER"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x8C8D2739BA44AF0F, "i")end, - ["UGC_GET_CONTENT_USER_NAME"]=--[[string]] function(--[[Any (int)]] p0)return native_invoker.unified_string(p0, 0x703F12425ECA8BF5, "i")end, - ["UGC_GET_CONTENT_IS_USING_SC_NICKNAME"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0xAEAB987727C5A8A4, "i")end, - ["UGC_GET_CONTENT_CATEGORY"]=--[[int]] function(--[[int]] p0)return native_invoker.unified_int(p0, 0xA7BAB11E7C9C6C5A, "i")end, - -- Return the mission id of a job. - ["UGC_GET_CONTENT_ID"]=--[[string]] function(--[[int]] p0)return native_invoker.unified_string(p0, 0x55AA95F481D694D2, "i")end, - -- Return the root content id of a job. - ["UGC_GET_ROOT_CONTENT_ID"]=--[[string]] function(--[[int]] p0)return native_invoker.unified_string(p0, 0xC0173D6BFF4E0348, "i")end, - ["UGC_GET_CONTENT_NAME"]=--[[string]] function(--[[Any (int)]] p0)return native_invoker.unified_string(p0, 0xBF09786A7FCAB582, "i")end, - ["UGC_GET_CONTENT_DESCRIPTION_HASH"]=--[[int]] function(--[[Any (int)]] p0)return native_invoker.unified_int(p0, 0x7CF0448787B23758, "i")end, - ["UGC_GET_CONTENT_PATH"]=--[[string]] function(--[[int]] p0,--[[int]] p1)return native_invoker.unified_string(p0, p1, 0xBAF6BABF9E7CCC13, "ii")end, - ["UGC_GET_CONTENT_UPDATED_DATE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any* (pointer)]] p1)return native_invoker.unified_void(p0, p1, 0xCFD115B373C0DF63, "ip")end, - ["UGC_GET_CONTENT_FILE_VERSION"]=--[[int]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_int(p0, p1, 0x37025B27D9B658B1, "ii")end, - ["UGC_GET_CONTENT_HAS_LO_RES_PHOTO"]=--[[BOOL (bool)]] function(--[[int]] p0)return native_invoker.unified_bool(p0, 0x1D610EB0FEA716D9, "i")end, - ["UGC_GET_CONTENT_HAS_HI_RES_PHOTO"]=--[[BOOL (bool)]] function(--[[int]] p0)return native_invoker.unified_bool(p0, 0x7FCC39C46C3C03BD, "i")end, - ["UGC_GET_CONTENT_LANGUAGE"]=--[[int]] function(--[[Any (int)]] p0)return native_invoker.unified_int(p0, 0x32DD916F3F7C9672, "i")end, - ["UGC_GET_CONTENT_IS_PUBLISHED"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x3054F114121C21EA, "i")end, - ["UGC_GET_CONTENT_IS_VERIFIED"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0xA9240A96C74CCA13, "i")end, - ["UGC_GET_CONTENT_RATING"]=--[[float]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_float(p0, p1, 0x1ACCFBA3D8DAB2EE, "ii")end, - ["UGC_GET_CONTENT_RATING_COUNT"]=--[[int]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_int(p0, p1, 0x759299C5BB31D2A9, "ii")end, - ["UGC_GET_CONTENT_RATING_POSITIVE_COUNT"]=--[[int]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_int(p0, p1, 0x87E5C46C187FE0AE, "ii")end, - ["UGC_GET_CONTENT_RATING_NEGATIVE_COUNT"]=--[[int]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_int(p0, p1, 0x4E548C0D7AE39FF9, "ii")end, - ["UGC_GET_CONTENT_HAS_PLAYER_RECORD"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x70EA8DA57840F9BE, "i")end, - ["UGC_GET_CONTENT_HAS_PLAYER_BOOKMARKED"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x993CBE59D350D225, "i")end, - ["UGC_REQUEST_CONTENT_DATA_FROM_INDEX"]=--[[int]] function(--[[int]] p0,--[[int]] p1)return native_invoker.unified_int(p0, p1, 0x171DF6A0C07FB3DC, "ii")end, - ["UGC_REQUEST_CONTENT_DATA_FROM_PARAMS"]=--[[int]] function(--[[string]] contentTypeName,--[[string]] contentId,--[[int]] p2,--[[int]] p3,--[[int]] p4)return native_invoker.unified_int(contentTypeName, contentId, p2, p3, p4, 0x7FD2990AF016795E, "ssiii")end, - ["UGC_REQUEST_CACHED_DESCRIPTION"]=--[[int]] function(--[[int]] p0)return native_invoker.unified_int(p0, 0x5E0165278F6339EE, "i")end, - ["UGC_IS_DESCRIPTION_REQUEST_IN_PROGRESS"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x2D5DC831176D0114, "i")end, - ["UGC_HAS_DESCRIPTION_REQUEST_FINISHED"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0xEBFA8D50ADDC54C4, "i")end, - ["UGC_DID_DESCRIPTION_REQUEST_SUCCEED"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x162C23CA83ED0A62, "i")end, - ["UGC_GET_CACHED_DESCRIPTION"]=--[[string]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_string(p0, p1, 0x40F7E66472DF3E5C, "ii")end, - ["UGC_RELEASE_CACHED_DESCRIPTION"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x5A34CD9C3C5BEC44, "i")end, - ["UGC_RELEASE_ALL_CACHED_DESCRIPTIONS"]=--[[void]] function()return native_invoker.unified_void(0x68103E2247887242, "")end, - ["UGC_HAS_PERMISSION_TO_WRITE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC33E7CBC06EC1A8D, "")end, - ["UGC_PUBLISH"]=--[[BOOL (bool)]] function(--[[string]] contentId,--[[string]] baseContentId,--[[string]] contentTypeName)return native_invoker.unified_bool(contentId, baseContentId, contentTypeName, 0x1DE0F5F50D723CAA, "sss")end, - ["UGC_SET_BOOKMARKED"]=--[[BOOL (bool)]] function(--[[string]] contentId,--[[BOOL (bool)]] bookmarked,--[[string]] contentTypeName)return native_invoker.unified_bool(contentId, bookmarked, contentTypeName, 0x274A1519DFC1094F, "sbs")end, - ["UGC_SET_DELETED"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[BOOL (bool)]] p1,--[[string]] p2)return native_invoker.unified_bool(p0, p1, p2, 0xD05D1A6C74DA3498, "pbs")end, - ["UGC_IS_MODIFYING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x45E816772E93A9DB, "")end, - ["UGC_HAS_MODIFY_FINISHED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x299EF3C576773506, "")end, - ["UGC_DID_MODIFY_SUCCEED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x793FF272D5B365F4, "")end, - ["UGC_GET_MODIFY_RESULT"]=--[[int]] function()return native_invoker.unified_int(0x5A0A3D1A186A5508, "")end, - ["UGC_CLEAR_MODIFY_RESULT"]=--[[void]] function()return native_invoker.unified_void(0xA1E5E0204A6FCC70, "")end, - ["UGC_GET_CREATORS_BY_USER_ID"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[Any* (pointer)]] p1)return native_invoker.unified_bool(p0, p1, 0xB746D20B17F2A229, "pp")end, - ["UGC_HAS_QUERY_CREATORS_FINISHED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x63B406D7884BFA95, "")end, - ["UGC_DID_QUERY_CREATORS_SUCCEED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x4D02279C83BE69FE, "")end, - ["UGC_GET_CREATOR_NUM"]=--[[int]] function()return native_invoker.unified_int(0x597F8DBA9B206FC7, "")end, - ["UGC_LOAD_OFFLINE_QUERY"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x5CAE833B0EE0C500, "i")end, - ["UGC_CLEAR_OFFLINE_QUERY"]=--[[void]] function()return native_invoker.unified_void(0x61A885D3F7CFEE9A, "")end, - ["UGC_SET_QUERY_DATA_FROM_OFFLINE"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xF98DDE0A8ED09323, "b")end, - ["UGC_SET_USING_OFFLINE_CONTENT"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xFD75DABC0957BF33, "b")end, - ["UGC_IS_LANGUAGE_SUPPORTED"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0xF53E48461B71EECB, "i")end, - ["FACEBOOK_POST_COMPLETED_HEIST"]=--[[BOOL (bool)]] function(--[[string]] heistName,--[[int]] cashEarned,--[[int]] xpEarned)return native_invoker.unified_bool(heistName, cashEarned, xpEarned, 0x098AB65B9ED9A9EC, "sii")end, - ["FACEBOOK_POST_CREATE_CHARACTER"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xDC48473142545431, "")end, - ["FACEBOOK_POST_COMPLETED_MILESTONE"]=--[[BOOL (bool)]] function(--[[int]] milestoneId)return native_invoker.unified_bool(milestoneId, 0x0AE1F1653B554AB9, "i")end, - ["FACEBOOK_HAS_POST_COMPLETED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x62B9FEC9A11F10EF, "")end, - ["FACEBOOK_DID_POST_SUCCEED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xA75E2B6733DA5142, "")end, - ["FACEBOOK_CAN_POST_TO_FACEBOOK"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x43865688AE10F0D7, "")end, - ["TEXTURE_DOWNLOAD_REQUEST"]=--[[int]] function(--[[Any* (pointer)]] gamerHandle,--[[string]] filePath,--[[string]] name,--[[BOOL (bool)]] p3)return native_invoker.unified_int(gamerHandle, filePath, name, p3, 0x16160DA74A8E74A2, "pssb")end, - ["TITLE_TEXTURE_DOWNLOAD_REQUEST"]=--[[int]] function(--[[string]] filePath,--[[string]] name,--[[BOOL (bool)]] p2)return native_invoker.unified_int(filePath, name, p2, 0x0B203B4AFDE53A4F, "ssb")end, - ["UGC_TEXTURE_DOWNLOAD_REQUEST"]=--[[int]] function(--[[string]] p0,--[[int]] p1,--[[int]] p2,--[[int]] p3,--[[string]] p4,--[[BOOL (bool)]] p5)return native_invoker.unified_int(p0, p1, p2, p3, p4, p5, 0x308F96458B7087CC, "siiisb")end, - ["TEXTURE_DOWNLOAD_RELEASE"]=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0x487EB90B98E9FB19, "i")end, - ["TEXTURE_DOWNLOAD_HAS_FAILED"]=--[[BOOL (bool)]] function(--[[int]] p0)return native_invoker.unified_bool(p0, 0x5776ED562C134687, "i")end, - ["TEXTURE_DOWNLOAD_GET_NAME"]=--[[string]] function(--[[int]] p0)return native_invoker.unified_string(p0, 0x3448505B6E35262D, "i")end, - -- 0 = succeeded - -- 1 = pending - -- 2 = failed - ["GET_STATUS_OF_TEXTURE_DOWNLOAD"]=--[[int]] function(--[[int]] p0)return native_invoker.unified_int(p0, 0x8BD6C6DEA20E82C6, "i")end, - -- Returns true if profile setting 901 is set to true and sets it to false. - ["NETWORK_CHECK_ROS_LINK_WENTDOWN_NOT_NET"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x60EDD13EB3AC1FF3, "")end, - -- Returns true if the NAT type is Strict (3) and a certain number of connections have failed. - ["NETWORK_SHOULD_SHOW_STRICT_NAT_WARNING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x82A2B386716608F1, "")end, - ["NETWORK_IS_CABLE_CONNECTED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xEFFB25453D8600F9, "")end, - ["NETWORK_HAVE_SCS_PRIVATE_MSG_PRIV"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x66B59CFFD78467AF, "")end, - ["NETWORK_HAVE_ROS_SOCIAL_CLUB_PRIV"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x606E4D3E3CCCF3EB, "")end, - ["NETWORK_HAVE_ROS_BANNED_PRIV"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x8020A73847E0CA7D, "")end, - ["NETWORK_HAVE_ROS_CREATE_TICKET_PRIV"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xA0AD7E2AF5349F61, "")end, - ["NETWORK_HAVE_ROS_MULTIPLAYER_PRIV"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x5F91D5D0B36AA310, "")end, - ["NETWORK_HAVE_ROS_LEADERBOARD_WRITE_PRIV"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x422D396F80A96547, "")end, - -- index is always 18 in scripts - ["NETWORK_HAS_ROS_PRIVILEGE"]=--[[BOOL (bool)]] function(--[[int]] index)return native_invoker.unified_bool(index, 0xA699957E60D80214, "i")end, - ["NETWORK_HAS_ROS_PRIVILEGE_END_DATE"]=--[[BOOL (bool)]] function(--[[int]] privilege,--[[int* (pointer)]] banType,--[[Any* (pointer)]] timeData)return native_invoker.unified_bool(privilege, banType, timeData, 0xC22912B1D85F26B1, "ipp")end, - ["NETWORK_HAS_ROS_PRIVILEGE_PLAYED_LAST_GEN"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x593570C289A77688, "")end, - ["NETWORK_HAS_ROS_PRIVILEGE_SPECIAL_EDITION_CONTENT"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x91B87C55093DE351, "")end, - -- Checks for privilege 29 - ["_NETWORK_HAS_ROS_PRIVILEGE_MP_TEXT_COMMUNICATION"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xD9719341663C385F, "")end, - -- Checks for privilege 30 - ["_NETWORK_HAS_ROS_PRIVILEGE_MP_VOICE_COMMUNICATION"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x8956A309BE90057C, "")end, - ["NETWORK_START_COMMUNICATION_PERMISSIONS_CHECK"]=--[[int]] function(--[[Any (int)]] p0)return native_invoker.unified_int(p0, 0x36391F397731595D, "i")end, - -- Always returns -1. Seems to be XB1 specific. - ["NETWORK_START_USER_CONTENT_PERMISSIONS_CHECK"]=--[[int]] function(--[[Any* (pointer)]] netHandle)return native_invoker.unified_int(netHandle, 0xDEB2B99A1AF1A2A6, "p")end, - ["NETWORK_SKIP_RADIO_RESET_NEXT_CLOSE"]=--[[void]] function()return native_invoker.unified_void(0x9465E683B12D3F6B, "")end, - ["NETWORK_SKIP_RADIO_RESET_NEXT_OPEN"]=--[[void]] function()return native_invoker.unified_void(0xCA59CCAE5D01E4CE, "")end, - -- Returns true if dinput8.dll is present in the game directory. - -- You will get following error message if that is true: "You are attempting to access GTA Online servers with an altered version of the game." - ["NETWORK_SKIP_RADIO_WARNING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x659CF2EF7F550C4F, "")end, - -- NETWORK_F[I-O] - ["NETWORK_FORCE_LOCAL_PLAYER_SCAR_SYNC"]=--[[void]] function()return native_invoker.unified_void(0xB7C7F6AD6424304B, "")end, - ["NETWORK_DISABLE_LEAVE_REMOTE_PED_BEHIND"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xC505036A35AFD01B, "b")end, - ["NETWORK_ALLOW_REMOTE_ATTACHMENT_MODIFICATION"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0x267C78C60E806B9A, "ib")end, - -- Does nothing (it's a nullsub). - ["NETWORK_SHOW_CHAT_RESTRICTION_MSC"]=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0x6BFF5F84102DF80A, "i")end, - -- This native does absolutely nothing, just a nullsub - ["NETWORK_SHOW_PSN_UGC_RESTRICTION"]=--[[void]] function()return native_invoker.unified_void(0x5C497525F803486B, "")end, - -- This function is hard-coded to always return 0. - ["NETWORK_IS_TITLE_UPDATE_REQUIRED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x6FB7BB3607D27FA2, "")end, - ["NETWORK_QUIT_MP_TO_DESKTOP"]=--[[void]] function()return native_invoker.unified_void(0x45A83257ED02D9BC, "")end, - ["NETWORK_IS_CONNECTED_VIA_RELAY"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x16D3D49902F697BB, "i")end, - ["NETWORK_GET_AVERAGE_LATENCY"]=--[[float]] function(--[[Player (int)]] player)return native_invoker.unified_float(player, 0xD414BE129BB81B32, "i")end, - -- Same as NETWORK_GET_AVERAGE_LATENCY - ["NETWORK_GET_AVERAGE_PING"]=--[[float]] function(--[[Player (int)]] player)return native_invoker.unified_float(player, 0x0E3A041ED6AC2B45, "i")end, - ["NETWORK_GET_AVERAGE_PACKET_LOSS"]=--[[float]] function(--[[Player (int)]] player)return native_invoker.unified_float(player, 0x350C23949E43686C, "i")end, - ["NETWORK_GET_NUM_UNACKED_RELIABLES"]=--[[int]] function(--[[Player (int)]] player)return native_invoker.unified_int(player, 0xFF8FCF9FFC458A1C, "i")end, - ["NETWORK_GET_UNRELIABLE_RESEND_COUNT"]=--[[int]] function(--[[Player (int)]] player)return native_invoker.unified_int(player, 0x3765C3A3E8192E10, "i")end, - ["NETWORK_GET_HIGHEST_RELIABLE_RESEND_COUNT"]=--[[int]] function(--[[Player (int)]] player)return native_invoker.unified_int(player, 0x52C1EADAF7B10302, "i")end, - ["NETWORK_REPORT_CODE_TAMPER"]=--[[void]] function()return native_invoker.unified_void(0x5626D9D6810730D5, "")end, - ["NETWORK_GET_LAST_ENTITY_POS_RECEIVED_OVER_NETWORK"]=--[[Vector3 (vector3)]] function(--[[Entity (int)]] entity)return native_invoker.unified_vector3(entity, 0x64D779659BC37B19, "i")end, - -- Returns the coordinates of another player. - -- Does not work if you enter your own player id as p0 (will return `(0.0, 0.0, 0.0)` in that case). - ["NETWORK_GET_LAST_PLAYER_POS_RECEIVED_OVER_NETWORK"]=--[[Vector3 (vector3)]] function(--[[Player (int)]] player)return native_invoker.unified_vector3(player, 0x125E6D638B8605D4, "i")end, - -- Used by NetBlender - ["NETWORK_GET_LAST_VEL_RECEIVED_OVER_NETWORK"]=--[[Vector3 (vector3)]] function(--[[Entity (int)]] entity)return native_invoker.unified_vector3(entity, 0x33DE49EDF4DDE77A, "i")end, - ["NETWORK_GET_PREDICTED_VELOCITY"]=--[[Vector3 (vector3)]] function(--[[Entity (int)]] entity,--[[float]] maxSpeedToPredict)return native_invoker.unified_vector3(entity, maxSpeedToPredict, 0xAA5FAFCD2C5F5E47, "if")end, - -- Does nothing (it's a nullsub). - ["NETWORK_DUMP_NET_IF_CONFIG"]=--[[void]] function()return native_invoker.unified_void(0xAEDF1BC1C133D6E3, "")end, - -- Does nothing (it's a nullsub). - ["NETWORK_GET_SIGNALLING_INFO"]=--[[void]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_void(p0, 0x2555CF7DA5473794, "p")end, - -- Does nothing (it's a nullsub). - ["NETWORK_GET_NET_STATISTICS_INFO"]=--[[void]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_void(p0, 0x6FD992C4A1C1B986, "p")end, - ["NETWORK_GET_PLAYER_ACCOUNT_ID"]=--[[int]] function(--[[Player (int)]] player)return native_invoker.unified_int(player, 0xDB663CC9FF3407A9, "i")end, - ["NETWORK_UGC_NAV"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xC1447451DDB512F0, "ii")end, -} -OBJECT={ - -- List of object models that can be created without any additional effort like making sure ytyp is loaded etc: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ObjectList.ini - ["CREATE_OBJECT"]=--[[Object (int)]] function(--[[Hash (int)]] modelHash,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] isNetwork,--[[BOOL (bool)]] bScriptHostObj,--[[BOOL (bool)]] dynamic)return native_invoker.unified_int(modelHash, x, y, z, isNetwork, bScriptHostObj, dynamic, 0x509D5878EB39E842, "ifffbbb")end, - -- List of object models that can be created without any additional effort like making sure ytyp is loaded etc: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ObjectList.ini - ["CREATE_OBJECT_NO_OFFSET"]=--[[Object (int)]] function(--[[Hash (int)]] modelHash,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] isNetwork,--[[BOOL (bool)]] bScriptHostObj,--[[BOOL (bool)]] dynamic)return native_invoker.unified_int(modelHash, x, y, z, isNetwork, bScriptHostObj, dynamic, 0x9A294B2138ABB884, "ifffbbb")end, - -- Deletes the specified object, then sets the handle pointed to by the pointer to NULL. - ["DELETE_OBJECT"]=--[[void]] function(--[[Object* (pointer)]] object)return native_invoker.unified_void(object, 0x539E0AE3E6634B9F, "p")end, - ["PLACE_OBJECT_ON_GROUND_PROPERLY"]=--[[BOOL (bool)]] function(--[[Object (int)]] object)return native_invoker.unified_bool(object, 0x58A850EAEE20FAA3, "i")end, - ["PLACE_OBJECT_ON_GROUND_OR_OBJECT_PROPERLY"]=--[[BOOL (bool)]] function(--[[Object (int)]] object)return native_invoker.unified_bool(object, 0xD76EEEF746057FD6, "i")end, - ["ROTATE_OBJECT"]=--[[BOOL (bool)]] function(--[[Object (int)]] object,--[[float]] p1,--[[float]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_bool(object, p1, p2, p3, 0xAFE24E4D29249E4A, "iffb")end, - -- Returns true if the object has finished moving. - -- - -- If false, moves the object towards the specified X, Y and Z coordinates with the specified X, Y and Z speed. - -- - -- See also: https://gtagmodding.com/opcode-database/opcode/034E/ - -- Has to be looped until it returns true. - ["SLIDE_OBJECT"]=--[[BOOL (bool)]] function(--[[Object (int)]] object,--[[float]] toX,--[[float]] toY,--[[float]] toZ,--[[float]] speedX,--[[float]] speedY,--[[float]] speedZ,--[[BOOL (bool)]] collision)return native_invoker.unified_bool(object, toX, toY, toZ, speedX, speedY, speedZ, collision, 0x2FDFF4107B8C1147, "iffffffb")end, - ["SET_OBJECT_TARGETTABLE"]=--[[void]] function(--[[Object (int)]] object,--[[BOOL (bool)]] targettable,--[[Any (int)]] p2)return native_invoker.unified_void(object, targettable, p2, 0x8A7391690F5AFD81, "ibi")end, - -- Overrides a flag on the object which determines if the object should be avoided by a vehicle in task CTaskVehicleGoToPointWithAvoidanceAutomobile. - ["SET_OBJECT_FORCE_VEHICLES_TO_AVOID"]=--[[void]] function(--[[Object (int)]] object,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(object, toggle, 0x77F33F2CCF64B3AA, "ib")end, - -- Has 8 params in the latest patches. - -- - -- isMission - if true doesn't return mission objects - ["GET_CLOSEST_OBJECT_OF_TYPE"]=--[[Object (int)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[Hash (int)]] modelHash,--[[BOOL (bool)]] isMission,--[[BOOL (bool)]] p6,--[[BOOL (bool)]] p7)return native_invoker.unified_int(x, y, z, radius, modelHash, isMission, p6, p7, 0xE143FA2249364369, "ffffibbb")end, - ["HAS_OBJECT_BEEN_BROKEN"]=--[[BOOL (bool)]] function(--[[Object (int)]] object,--[[Any (int)]] p1)return native_invoker.unified_bool(object, p1, 0x8ABFB70C49CC43E2, "ii")end, - ["HAS_CLOSEST_OBJECT_OF_TYPE_BEEN_BROKEN"]=--[[BOOL (bool)]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[Hash (int)]] modelHash,--[[Any (int)]] p5)return native_invoker.unified_bool(p0, p1, p2, p3, modelHash, p5, 0x761B0E69AC4D007E, "ffffii")end, - ["HAS_CLOSEST_OBJECT_OF_TYPE_BEEN_COMPLETELY_DESTROYED"]=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[Hash (int)]] modelHash,--[[BOOL (bool)]] p5)return native_invoker.unified_bool(x, y, z, radius, modelHash, p5, 0x46494A2475701343, "ffffib")end, - ["GET_HAS_OBJECT_BEEN_COMPLETELY_DESTROYED"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x2542269291C6AC84, "i")end, - ["GET_OFFSET_FROM_COORD_AND_HEADING_IN_WORLD_COORDS"]=--[[Vector3 (vector3)]] function(--[[float]] xPos,--[[float]] yPos,--[[float]] zPos,--[[float]] heading,--[[float]] xOffset,--[[float]] yOffset,--[[float]] zOffset)return native_invoker.unified_vector3(xPos, yPos, zPos, heading, xOffset, yOffset, zOffset, 0x163E252DE035A133, "fffffff")end, - ["GET_COORDS_AND_ROTATION_OF_CLOSEST_OBJECT_OF_TYPE"]=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[Hash (int)]] modelHash,--[[Vector3* (pointer)]] outPosition,--[[Vector3* (pointer)]] outRotation,--[[int]] rotationOrder)return native_invoker.unified_bool(x, y, z, radius, modelHash, outPosition, outRotation, rotationOrder, 0x163F8B586BC95F2A, "ffffippi")end, - -- Hardcoded to not work in multiplayer. - -- - -- - -- Used to lock/unlock doors to interior areas of the game. - -- - -- (Possible) Door Types: - -- - -- https://pastebin.com/9S2m3qA4 - -- - -- Heading is either 1, 0 or -1 in the scripts. Means default closed(0) or opened either into(1) or out(-1) of the interior. - -- Locked means that the heading is locked. - -- p6 is always 0. - -- - -- 225 door types, model names and coords found in stripclub.c4: - -- https://pastebin.com/gywnbzsH - -- - -- get door info: https://pastebin.com/i14rbekD - ["SET_STATE_OF_CLOSEST_DOOR_OF_TYPE"]=--[[void]] function(--[[Hash (int)]] type,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] locked,--[[float]] heading,--[[BOOL (bool)]] p6)return native_invoker.unified_void(type, x, y, z, locked, heading, p6, 0xF82D8F1926A02C3D, "ifffbfb")end, - -- locked is 0 if no door is found - -- locked is 0 if door is unlocked - -- locked is 1 if door is found and unlocked. - -- - -- ------------- - -- the locked bool is either 0(unlocked)(false) or 1(locked)(true) - ["GET_STATE_OF_CLOSEST_DOOR_OF_TYPE"]=--[[void]] function(--[[Hash (int)]] type,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL* (pointer)]] locked,--[[float* (pointer)]] heading)return native_invoker.unified_void(type, x, y, z, locked, heading, 0xEDC1A5B84AEF33FF, "ifffpp")end, - -- Hardcoded not to work in multiplayer environments. - -- When you set locked to 0 the door open and to 1 the door close - -- OBJECT::SET_LOCKED_UNSTREAMED_IN_DOOR_OF_TYPE(${prop_gate_prison_01}, 1845.0, 2605.0, 45.0, 0, 0.0, 50.0, 0); //door open - -- - -- OBJECT::SET_LOCKED_UNSTREAMED_IN_DOOR_OF_TYPE(${prop_gate_prison_01}, 1845.0, 2605.0, 45.0, 1, 0.0, 50.0, 0); //door close - ["SET_LOCKED_UNSTREAMED_IN_DOOR_OF_TYPE"]=--[[void]] function(--[[Hash (int)]] modelHash,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] locked,--[[float]] xRotMult,--[[float]] yRotMult,--[[float]] zRotMult)return native_invoker.unified_void(modelHash, x, y, z, locked, xRotMult, yRotMult, zRotMult, 0x9B12F9A24FABEDB0, "ifffbfff")end, - ["PLAY_OBJECT_AUTO_START_ANIM"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x006E4B040ED37EC3, "i")end, - -- doorHash has to be unique. scriptDoor false; relies upon getNetworkGameScriptHandler. isLocal On true disables the creation CRequestDoorEvent's in DOOR_SYSTEM_SET_DOOR_STATE. - -- p5 only set to true in single player native scripts. - -- If scriptDoor is true, register the door on the script handler host (note: there's a hardcap on the number of script IDs that can be added to the system at a given time). If scriptDoor and isLocal are both false, the door is considered to be in a "Persists w/o netobj" state. - -- - -- door hashes normally look like PROP_[int]_DOOR_[int] for interior doors and PROP_BUILDING_[int]_DOOR_[int] exterior doors but you can just make up your own hash if you want - -- All doors need to be registered with ADD_DOOR_TO_SYSTEM before they can be manipulated with the door natives and the easiest way to get door models is just find the door in codewalker. - -- - -- Example: AddDoorToSystem("PROP_43_DOOR_0", "hei_v_ilev_fh_heistdoor2", -1456.818, -520.5037, 69.67043, 0, 0, 0) - ["ADD_DOOR_TO_SYSTEM"]=--[[void]] function(--[[Hash (int)]] doorHash,--[[Hash (int)]] modelHash,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] p5,--[[BOOL (bool)]] scriptDoor,--[[BOOL (bool)]] isLocal)return native_invoker.unified_void(doorHash, modelHash, x, y, z, p5, scriptDoor, isLocal, 0x6F8838D03D1DC226, "iifffbbb")end, - -- CDoor and CDoorSystemData still internally allocated (and their associations between doorHash, modelHash, and coordinates). - -- Only its NetObj removed and flag ``*(v2 + 192) |= 8u`` (1604 retail) toggled. - ["REMOVE_DOOR_FROM_SYSTEM"]=--[[void]] function(--[[Hash (int)]] doorHash,--[[Any (int)]] p1)return native_invoker.unified_void(doorHash, p1, 0x464D8E1427156FE4, "ii")end, - -- Lockstates not applied and CNetObjDoor's not created until DOOR_SYSTEM_GET_IS_PHYSICS_LOADED returns true. - -- `requestDoor` on true, and when door system is configured to, i.e., "persists w/o netobj", generate a CRequestDoorEvent. - -- `forceUpdate` on true, forces an update on the door system (same path as netObjDoor_applyDoorStuff) - -- Door lock states: - -- 0: UNLOCKED - -- 1: LOCKED - -- 2: DOORSTATE_FORCE_LOCKED_UNTIL_OUT_OF_AREA - -- 3: DOORSTATE_FORCE_UNLOCKED_THIS_FRAME - -- 4: DOORSTATE_FORCE_LOCKED_THIS_FRAME - -- 5: DOORSTATE_FORCE_OPEN_THIS_FRAME - -- 6: DOORSTATE_FORCE_CLOSED_THIS_FRAME - ["DOOR_SYSTEM_SET_DOOR_STATE"]=--[[void]] function(--[[Hash (int)]] doorHash,--[[int]] state,--[[BOOL (bool)]] requestDoor,--[[BOOL (bool)]] forceUpdate)return native_invoker.unified_void(doorHash, state, requestDoor, forceUpdate, 0x6BAB9442830C7F53, "iibb")end, - ["DOOR_SYSTEM_GET_DOOR_STATE"]=--[[int]] function(--[[Hash (int)]] doorHash)return native_invoker.unified_int(doorHash, 0x160AA1B32F6139B8, "i")end, - ["DOOR_SYSTEM_GET_DOOR_PENDING_STATE"]=--[[int]] function(--[[Hash (int)]] doorHash)return native_invoker.unified_int(doorHash, 0x4BC2854478F3A749, "i")end, - -- Includes networking check: ownership vs. or the door itself **isn't** networked. - -- `forceUpdate` on true invokes DOOR_SYSTEM_SET_DOOR_STATE otherwise requestDoor is unused. - ["DOOR_SYSTEM_SET_AUTOMATIC_RATE"]=--[[void]] function(--[[Hash (int)]] doorHash,--[[float]] rate,--[[BOOL (bool)]] requestDoor,--[[BOOL (bool)]] forceUpdate)return native_invoker.unified_void(doorHash, rate, requestDoor, forceUpdate, 0x03C27E13B42A0E82, "ifbb")end, - -- `forceUpdate` on true invokes DOOR_SYSTEM_SET_DOOR_STATE otherwise requestDoor is unused. - ["DOOR_SYSTEM_SET_AUTOMATIC_DISTANCE"]=--[[void]] function(--[[Hash (int)]] doorHash,--[[float]] distance,--[[BOOL (bool)]] requestDoor,--[[BOOL (bool)]] forceUpdate)return native_invoker.unified_void(doorHash, distance, requestDoor, forceUpdate, 0x9BA001CB45CBF627, "ifbb")end, - -- Sets the ajar angle of a door. - -- Ranges from -1.0 to 1.0, and 0.0 is closed / default. - -- `forceUpdate` on true invokes DOOR_SYSTEM_SET_DOOR_STATE otherwise requestDoor is unused. - ["DOOR_SYSTEM_SET_OPEN_RATIO"]=--[[void]] function(--[[Hash (int)]] doorHash,--[[float]] ajar,--[[BOOL (bool)]] requestDoor,--[[BOOL (bool)]] forceUpdate)return native_invoker.unified_void(doorHash, ajar, requestDoor, forceUpdate, 0xB6E6FBA95C7324AC, "ifbb")end, - ["DOOR_SYSTEM_GET_AUTOMATIC_DISTANCE"]=--[[float]] function(--[[Hash (int)]] doorHash)return native_invoker.unified_float(doorHash, 0xE851471AEFC3374F, "i")end, - ["DOOR_SYSTEM_GET_OPEN_RATIO"]=--[[float]] function(--[[Hash (int)]] doorHash)return native_invoker.unified_float(doorHash, 0x65499865FCA6E5EC, "i")end, - -- Includes networking check: ownership vs. or the door itself **isn't** networked. - -- `forceUpdate` on true invokes DOOR_SYSTEM_SET_DOOR_STATE otherwise requestDoor is unused. - ["DOOR_SYSTEM_SET_SPRING_REMOVED"]=--[[void]] function(--[[Hash (int)]] doorHash,--[[BOOL (bool)]] removed,--[[BOOL (bool)]] requestDoor,--[[BOOL (bool)]] forceUpdate)return native_invoker.unified_void(doorHash, removed, requestDoor, forceUpdate, 0xC485E07E4F0B7958, "ibbb")end, - -- Includes networking check: ownership vs. or the door itself **isn't** networked. - ["DOOR_SYSTEM_SET_HOLD_OPEN"]=--[[void]] function(--[[Hash (int)]] doorHash,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(doorHash, toggle, 0xD9B71952F78A2640, "ib")end, - -- Some property related to gates. Native name between ``DOOR_SYSTEM_SET_AUTOMATIC_RATE`` and ``DOOR_SYSTEM_SET_DOOR_STATE``. - ["DOOR_SYSTEM_SET_DOOR_OPEN_FOR_RACES"]=--[[void]] function(--[[Hash (int)]] doorHash,--[[BOOL (bool)]] p1)return native_invoker.unified_void(doorHash, p1, 0xA85A21582451E951, "ib")end, - -- if (OBJECT::IS_DOOR_REGISTERED_WITH_SYSTEM(doorHash)) - -- { - -- OBJECT::REMOVE_DOOR_FROM_SYSTEM(doorHash); - -- } - ["IS_DOOR_REGISTERED_WITH_SYSTEM"]=--[[BOOL (bool)]] function(--[[Hash (int)]] doorHash)return native_invoker.unified_bool(doorHash, 0xC153C43EA202C8C1, "i")end, - ["IS_DOOR_CLOSED"]=--[[BOOL (bool)]] function(--[[Hash (int)]] doorHash)return native_invoker.unified_bool(doorHash, 0xC531EE8A1145A149, "i")end, - ["OPEN_ALL_BARRIERS_FOR_RACE"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xC7F29CA00F46350E, "b")end, - -- Clears the fields sets by 0xC7F29CA00F46350E (1604 retail: 0x1424A7A10, 0x1424A7A11) and iterates over the global CDoor's bucket-list. - -- Related to its "Pre-networked state"? - ["CLOSE_ALL_BARRIERS_FOR_RACE"]=--[[void]] function()return native_invoker.unified_void(0x701FDA1E82076BA4, "")end, - ["DOOR_SYSTEM_GET_IS_PHYSICS_LOADED"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0xDF97CDD4FC08FD34, "i")end, - -- Search radius: 0.5 - ["DOOR_SYSTEM_FIND_EXISTING_DOOR"]=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[Hash (int)]] modelHash,--[[Hash* (pointer)]] outDoorHash)return native_invoker.unified_bool(x, y, z, modelHash, outDoorHash, 0x589F80B325CC82C5, "fffip")end, - ["IS_GARAGE_EMPTY"]=--[[BOOL (bool)]] function(--[[Hash (int)]] garageHash,--[[BOOL (bool)]] p1,--[[int]] p2)return native_invoker.unified_bool(garageHash, p1, p2, 0x90E47239EA1980B8, "ibi")end, - ["IS_PLAYER_ENTIRELY_INSIDE_GARAGE"]=--[[BOOL (bool)]] function(--[[Hash (int)]] garageHash,--[[Player (int)]] player,--[[float]] p2,--[[int]] p3)return native_invoker.unified_bool(garageHash, player, p2, p3, 0x024A60DEB0EA69F0, "iifi")end, - ["IS_PLAYER_PARTIALLY_INSIDE_GARAGE"]=--[[BOOL (bool)]] function(--[[Hash (int)]] garageHash,--[[Player (int)]] player,--[[int]] p2)return native_invoker.unified_bool(garageHash, player, p2, 0x1761DC5D8471CBAA, "iii")end, - ["ARE_ENTITIES_ENTIRELY_INSIDE_GARAGE"]=--[[BOOL (bool)]] function(--[[Hash (int)]] garageHash,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3,--[[Any (int)]] p4)return native_invoker.unified_bool(garageHash, p1, p2, p3, p4, 0x85B6C850546FDDE2, "ibbbi")end, - ["IS_ANY_ENTITY_ENTIRELY_INSIDE_GARAGE"]=--[[BOOL (bool)]] function(--[[Hash (int)]] garageHash,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3,--[[Any (int)]] p4)return native_invoker.unified_bool(garageHash, p1, p2, p3, p4, 0x673ED815D6E323B7, "ibbbi")end, - -- Despite the name, it does work for any entity type. - ["IS_OBJECT_ENTIRELY_INSIDE_GARAGE"]=--[[BOOL (bool)]] function(--[[Hash (int)]] garageHash,--[[Entity (int)]] entity,--[[float]] p2,--[[int]] p3)return native_invoker.unified_bool(garageHash, entity, p2, p3, 0x372EF6699146A1E4, "iifi")end, - -- Despite the name, it does work for any entity type. - ["IS_OBJECT_PARTIALLY_INSIDE_GARAGE"]=--[[BOOL (bool)]] function(--[[Hash (int)]] garageHash,--[[Entity (int)]] entity,--[[int]] p2)return native_invoker.unified_bool(garageHash, entity, p2, 0xF0EED5A6BC7B237A, "iii")end, - ["CLEAR_GARAGE"]=--[[void]] function(--[[Hash (int)]] garageHash,--[[BOOL (bool)]] isNetwork)return native_invoker.unified_void(garageHash, isNetwork, 0xDA05194260CDCDF9, "ib")end, - ["CLEAR_OBJECTS_INSIDE_GARAGE"]=--[[void]] function(--[[Hash (int)]] garageHash,--[[BOOL (bool)]] vehicles,--[[BOOL (bool)]] peds,--[[BOOL (bool)]] objects,--[[BOOL (bool)]] isNetwork)return native_invoker.unified_void(garageHash, vehicles, peds, objects, isNetwork, 0x190428512B240692, "ibbbb")end, - -- Sets a flag. A valid id is 0x157DC10D - ["DISABLE_TIDYING_UP_IN_GARAGE"]=--[[void]] function(--[[int]] id,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(id, toggle, 0x659F9D71F52843F8, "ib")end, - ["ENABLE_SAVING_IN_GARAGE"]=--[[void]] function(--[[Hash (int)]] garageHash,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(garageHash, toggle, 0xF2E1A7133DD356A6, "ib")end, - ["CLOSE_SAFEHOUSE_GARAGES"]=--[[void]] function()return native_invoker.unified_void(0x66A49D021870FE88, "")end, - -- p5 is usually 0. - ["DOES_OBJECT_OF_TYPE_EXIST_AT_COORDS"]=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[Hash (int)]] hash,--[[BOOL (bool)]] p5)return native_invoker.unified_bool(x, y, z, radius, hash, p5, 0xBFA48E2FF417213F, "ffffib")end, - -- An angled area is an X-Z oriented rectangle with three parameters: - -- 1. origin: the mid-point along a base edge of the rectangle; - -- 2. extent: the mid-point of opposite base edge on the other Z; - -- 3. width: the length of the base edge; (named derived from logging strings ``CNetworkRoadNodeWorldStateData``). - -- - -- The oriented rectangle can then be derived from the direction of the two points (``norm(origin - extent)``), its orthonormal, and the width, e.g: - -- 1. golf_mp https://i.imgur.com/JhsQAK9.png - -- 2. am_taxi https://i.imgur.com/TJWCZaT.jpg - ["IS_POINT_IN_ANGLED_AREA"]=--[[BOOL (bool)]] function(--[[float]] xPos,--[[float]] yPos,--[[float]] zPos,--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] width,--[[BOOL (bool)]] debug,--[[BOOL (bool)]] includeZ)return native_invoker.unified_bool(xPos, yPos, zPos, x1, y1, z1, x2, y2, z2, width, debug, includeZ, 0x2A70BAE8883E4C81, "ffffffffffbb")end, - -- Overrides the climbing/blocking flags of the object, used in the native scripts mostly for "prop_dock_bouy_*" - ["SET_OBJECT_ALLOW_LOW_LOD_BUOYANCY"]=--[[void]] function(--[[Object (int)]] object,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(object, toggle, 0x4D89D607CB3DD1D2, "ib")end, - -- Adjust the physics parameters of a prop, or otherwise known as "object". This is useful for simulated gravity. - -- - -- Other parameters seem to be unknown. - -- - -- p2: seems to be weight and gravity related. Higher value makes the obj fall faster. Very sensitive? - -- p3: seems similar to p2 - -- p4: makes obj fall slower the higher the value - -- p5: similar to p4 - ["SET_OBJECT_PHYSICS_PARAMS"]=--[[void]] function(--[[Object (int)]] object,--[[float]] weight,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[float]] gravity,--[[float]] p7,--[[float]] p8,--[[float]] p9,--[[float]] p10,--[[float]] buoyancy)return native_invoker.unified_void(object, weight, p2, p3, p4, p5, gravity, p7, p8, p9, p10, buoyancy, 0xF6DF6E90DE7DF90F, "ifffffffffff")end, - ["GET_OBJECT_FRAGMENT_DAMAGE_HEALTH"]=--[[float]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_float(p0, p1, 0xB6FBFD079B8D0596, "ib")end, - ["SET_ACTIVATE_OBJECT_PHYSICS_AS_SOON_AS_IT_IS_UNFROZEN"]=--[[void]] function(--[[Object (int)]] object,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(object, toggle, 0x406137F8EF90EAF5, "ib")end, - ["IS_ANY_OBJECT_NEAR_POINT"]=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] range,--[[BOOL (bool)]] p4)return native_invoker.unified_bool(x, y, z, range, p4, 0x397DC58FF00298D1, "ffffb")end, - ["IS_OBJECT_NEAR_POINT"]=--[[BOOL (bool)]] function(--[[Hash (int)]] objectHash,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] range)return native_invoker.unified_bool(objectHash, x, y, z, range, 0x8C90FE4B381BA60A, "iffff")end, - ["REMOVE_OBJECT_HIGH_DETAIL_MODEL"]=--[[void]] function(--[[Object (int)]] object)return native_invoker.unified_void(object, 0x4A39DB43E47CF3AA, "i")end, - ["BREAK_OBJECT_FRAGMENT_CHILD"]=--[[void]] function(--[[Object (int)]] p0,--[[Any (int)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xE7E4C198B0185900, "iib")end, - ["DAMAGE_OBJECT_FRAGMENT_CHILD"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xE05F6AEEFEB0BB02, "iii")end, - ["FIX_OBJECT_FRAGMENT"]=--[[void]] function(--[[Object (int)]] object)return native_invoker.unified_void(object, 0xF9C1681347C8BD15, "i")end, - ["TRACK_OBJECT_VISIBILITY"]=--[[void]] function(--[[Object (int)]] object)return native_invoker.unified_void(object, 0xB252BC036B525623, "i")end, - ["IS_OBJECT_VISIBLE"]=--[[BOOL (bool)]] function(--[[Object (int)]] object)return native_invoker.unified_bool(object, 0x8B32ACE6326A7546, "i")end, - ["SET_OBJECT_IS_SPECIAL_GOLFBALL"]=--[[void]] function(--[[Object (int)]] object,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(object, toggle, 0xC6033D32241F6FB5, "ib")end, - ["SET_OBJECT_TAKES_DAMAGE_FROM_COLLIDING_WITH_BUILDINGS"]=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0xEB6F1A9B5510A5D2, "ib")end, - ["ALLOW_DAMAGE_EVENTS_FOR_NON_NETWORKED_OBJECTS"]=--[[void]] function(--[[BOOL (bool)]] value)return native_invoker.unified_void(value, 0xABDABF4E1EDECBFA, "b")end, - -- Requires a component_at_*_flsh to be attached to the weapon object - ["SET_CUTSCENES_WEAPON_FLASHLIGHT_ON_THIS_FRAME"]=--[[void]] function(--[[Object (int)]] object,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(object, toggle, 0xBCE595371A5FBAAF, "ib")end, - -- Example: - -- OBJECT::GET_RAYFIRE_MAP_OBJECT(-809.9619750976562, 170.919, 75.7406997680664, 3.0, "des_tvsmash"); - ["GET_RAYFIRE_MAP_OBJECT"]=--[[Object (int)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[string]] name)return native_invoker.unified_int(x, y, z, radius, name, 0xB48FCED898292E52, "ffffs")end, - -- Defines the state of a destructible object. - -- Use the GET_RAYFIRE_MAP_OBJECT native to find an object's handle with its name / coords. - -- State 2 == object just spawned - -- State 4 == Beginning of the animation - -- State 6 == Start animation - -- State 9 == End of the animation - ["SET_STATE_OF_RAYFIRE_MAP_OBJECT"]=--[[void]] function(--[[Object (int)]] object,--[[int]] state)return native_invoker.unified_void(object, state, 0x5C29F698D404C5E1, "ii")end, - -- Get a destructible object's state. - -- Substract 1 to get the real state. - -- See SET_STATE_OF_RAYFIRE_MAP_OBJECT to see the different states - -- For example, if the object just spawned (state 2), the native will return 3. - ["GET_STATE_OF_RAYFIRE_MAP_OBJECT"]=--[[int]] function(--[[Object (int)]] object)return native_invoker.unified_int(object, 0x899BA936634A322E, "i")end, - -- Returns true if a destructible object with this handle exists, false otherwise. - ["DOES_RAYFIRE_MAP_OBJECT_EXIST"]=--[[BOOL (bool)]] function(--[[Object (int)]] object)return native_invoker.unified_bool(object, 0x52AF537A0C5B8AAD, "i")end, - -- `object`: The des-object handle to get the animation progress from. - -- Return value is a float between 0.0 and 1.0, 0.0 is the beginning of the animation, 1.0 is the end. Value resets to 0.0 instantly after reaching 1.0. - ["GET_RAYFIRE_MAP_OBJECT_ANIM_PHASE"]=--[[float]] function(--[[Object (int)]] object)return native_invoker.unified_float(object, 0x260EE4FDBDF4DB01, "i")end, - -- Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json - ["CREATE_PICKUP"]=--[[Pickup (int)]] function(--[[Hash (int)]] pickupHash,--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[int]] p4,--[[int]] value,--[[BOOL (bool)]] p6,--[[Hash (int)]] modelHash)return native_invoker.unified_int(pickupHash, posX, posY, posZ, p4, value, p6, modelHash, 0xFBA08C503DD5FA58, "ifffiibi")end, - -- flags: - -- 8 (1 << 3): place on ground - -- 512 (1 << 9): spin around - -- - -- Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json - ["CREATE_PICKUP_ROTATE"]=--[[Pickup (int)]] function(--[[Hash (int)]] pickupHash,--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ,--[[int]] flag,--[[int]] amount,--[[Any (int)]] p9,--[[BOOL (bool)]] p10,--[[Hash (int)]] modelHash)return native_invoker.unified_int(pickupHash, posX, posY, posZ, rotX, rotY, rotZ, flag, amount, p9, p10, modelHash, 0x891804727E0A98B7, "iffffffiiibi")end, - ["FORCE_PICKUP_ROTATE_FACE_UP"]=--[[void]] function()return native_invoker.unified_void(0x394CD08E31313C28, "")end, - ["SET_CUSTOM_PICKUP_WEAPON_HASH"]=--[[void]] function(--[[Hash (int)]] pickupHash,--[[Pickup (int)]] pickup)return native_invoker.unified_void(pickupHash, pickup, 0x826D1EE4D1CAFC78, "ii")end, - -- Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json - ["CREATE_AMBIENT_PICKUP"]=--[[Object (int)]] function(--[[Hash (int)]] pickupHash,--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[int]] flags,--[[int]] value,--[[Hash (int)]] modelHash,--[[BOOL (bool)]] p7,--[[BOOL (bool)]] p8)return native_invoker.unified_int(pickupHash, posX, posY, posZ, flags, value, modelHash, p7, p8, 0x673966A0C0FD7171, "ifffiiibb")end, - ["CREATE_NON_NETWORKED_AMBIENT_PICKUP"]=--[[Object (int)]] function(--[[Hash (int)]] pickupHash,--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[int]] flags,--[[int]] value,--[[Hash (int)]] modelHash,--[[BOOL (bool)]] p7,--[[BOOL (bool)]] p8)return native_invoker.unified_int(pickupHash, posX, posY, posZ, flags, value, modelHash, p7, p8, 0x9C93764223E29C50, "ifffiiibb")end, - ["BLOCK_PLAYERS_FOR_AMBIENT_PICKUP"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x1E3F1B1B891A2AAA, "ii")end, - -- Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json - ["CREATE_PORTABLE_PICKUP"]=--[[Object (int)]] function(--[[Hash (int)]] pickupHash,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] placeOnGround,--[[Hash (int)]] modelHash)return native_invoker.unified_int(pickupHash, x, y, z, placeOnGround, modelHash, 0x2EAF1FDB2FB55698, "ifffbi")end, - -- Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json - ["CREATE_NON_NETWORKED_PORTABLE_PICKUP"]=--[[Object (int)]] function(--[[Hash (int)]] pickupHash,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] placeOnGround,--[[Hash (int)]] modelHash)return native_invoker.unified_int(pickupHash, x, y, z, placeOnGround, modelHash, 0x125494B98A21AAF7, "ifffbi")end, - ["ATTACH_PORTABLE_PICKUP_TO_PED"]=--[[void]] function(--[[Object (int)]] pickupObject,--[[Ped (int)]] ped)return native_invoker.unified_void(pickupObject, ped, 0x8DC39368BDD57755, "ii")end, - ["DETACH_PORTABLE_PICKUP_FROM_PED"]=--[[void]] function(--[[Object (int)]] pickupObject)return native_invoker.unified_void(pickupObject, 0xCF463D1E9A0AECB1, "i")end, - ["FORCE_PORTABLE_PICKUP_LAST_ACCESSIBLE_POSITION_SETTING"]=--[[void]] function(--[[Object (int)]] object)return native_invoker.unified_void(object, 0x5CE2E45A5CE2E45A, "i")end, - ["HIDE_PORTABLE_PICKUP_WHEN_DETACHED"]=--[[void]] function(--[[Object (int)]] pickupObject,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(pickupObject, toggle, 0x867458251D47CCB2, "ib")end, - ["SET_MAX_NUM_PORTABLE_PICKUPS_CARRIED_BY_PLAYER"]=--[[void]] function(--[[Hash (int)]] modelHash,--[[int]] number)return native_invoker.unified_void(modelHash, number, 0x0BF3B3BD47D79C08, "ii")end, - ["SET_LOCAL_PLAYER_CAN_COLLECT_PORTABLE_PICKUPS"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x78857FC65CADB909, "b")end, - ["GET_SAFE_PICKUP_COORDS"]=--[[Vector3 (vector3)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] p3,--[[float]] p4)return native_invoker.unified_vector3(x, y, z, p3, p4, 0x6E16BC2503FF1FF0, "fffff")end, - -- Adds an area that seems to be related to pickup physics behavior. - -- Max amount of areas is 10. Only works in multiplayer. - ["ADD_EXTENDED_PICKUP_PROBE_AREA"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius)return native_invoker.unified_void(x, y, z, radius, 0xD4A7A435B3710D05, "ffff")end, - -- Clears all areas created by ADD_EXTENDED_PICKUP_PROBE_AREA - ["CLEAR_EXTENDED_PICKUP_PROBE_AREAS"]=--[[void]] function()return native_invoker.unified_void(0xB7C6D80FB371659A, "")end, - ["GET_PICKUP_COORDS"]=--[[Vector3 (vector3)]] function(--[[Pickup (int)]] pickup)return native_invoker.unified_vector3(pickup, 0x225B8B35C88029B3, "i")end, - ["SUPPRESS_PICKUP_SOUND_FOR_PICKUP"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x8DCA505A5C196F05, "ii")end, - -- Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json - ["REMOVE_ALL_PICKUPS_OF_TYPE"]=--[[void]] function(--[[Hash (int)]] pickupHash)return native_invoker.unified_void(pickupHash, 0x27F9D613092159CF, "i")end, - ["HAS_PICKUP_BEEN_COLLECTED"]=--[[BOOL (bool)]] function(--[[Pickup (int)]] pickup)return native_invoker.unified_bool(pickup, 0x80EC48E6679313F9, "i")end, - ["REMOVE_PICKUP"]=--[[void]] function(--[[Pickup (int)]] pickup)return native_invoker.unified_void(pickup, 0x3288D8ACAECD2AB2, "i")end, - -- Spawns one or more money pickups. - -- - -- x: The X-component of the world position to spawn the money pickups at. - -- y: The Y-component of the world position to spawn the money pickups at. - -- z: The Z-component of the world position to spawn the money pickups at. - -- value: The combined value of the pickups (in dollars). - -- amount: The number of pickups to spawn. - -- model: The model to use, or 0 for default money model. - -- - -- Example: - -- CREATE_MONEY_PICKUPS(x, y, z, 1000, 3, 0x684a97ae); - -- - -- Spawns 3 spray cans that'll collectively give $1000 when picked up. (Three spray cans, each giving $334, $334, $332 = $1000). - -- - -- ============================================== - -- - -- Max is 2000 in MP. So if you put the amount to 20, but the value to $400,000 eg. They will only be able to pickup 20 - $2,000 bags. So, $40,000 - ["CREATE_MONEY_PICKUPS"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] value,--[[int]] amount,--[[Hash (int)]] model)return native_invoker.unified_void(x, y, z, value, amount, model, 0x0589B5E791CE9B2B, "fffiii")end, - ["DOES_PICKUP_EXIST"]=--[[BOOL (bool)]] function(--[[Pickup (int)]] pickup)return native_invoker.unified_bool(pickup, 0xAFC1CA75AD4074D1, "i")end, - ["DOES_PICKUP_OBJECT_EXIST"]=--[[BOOL (bool)]] function(--[[Object (int)]] pickupObject)return native_invoker.unified_bool(pickupObject, 0xD9EFB6DBF7DAAEA3, "i")end, - ["GET_PICKUP_OBJECT"]=--[[Object (int)]] function(--[[Pickup (int)]] pickup)return native_invoker.unified_int(pickup, 0x5099BC55630B25AE, "i")end, - ["IS_OBJECT_A_PICKUP"]=--[[BOOL (bool)]] function(--[[Object (int)]] object)return native_invoker.unified_bool(object, 0xFC481C641EBBD27D, "i")end, - ["IS_OBJECT_A_PORTABLE_PICKUP"]=--[[BOOL (bool)]] function(--[[Object (int)]] object)return native_invoker.unified_bool(object, 0x0378C08504160D0D, "i")end, - -- Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json - ["DOES_PICKUP_OF_TYPE_EXIST_IN_AREA"]=--[[BOOL (bool)]] function(--[[Hash (int)]] pickupHash,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius)return native_invoker.unified_bool(pickupHash, x, y, z, radius, 0xF9C36251F6E48E33, "iffff")end, - ["SET_PICKUP_REGENERATION_TIME"]=--[[void]] function(--[[Pickup (int)]] pickup,--[[int]] duration)return native_invoker.unified_void(pickup, duration, 0x78015C9B4B3ECC9D, "ii")end, - ["FORCE_PICKUP_REGENERATE"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x758A5C1B3B1E1990, "i")end, - -- Disabling/enabling a player from getting pickups. From the scripts: - -- - -- OBJECT::SET_PLAYER_PERMITTED_TO_COLLECT_PICKUPS_OF_TYPE(PLAYER::PLAYER_ID(), ${pickup_portable_package}, 0); - -- OBJECT::SET_PLAYER_PERMITTED_TO_COLLECT_PICKUPS_OF_TYPE(PLAYER::PLAYER_ID(), ${pickup_portable_package}, 0); - -- OBJECT::SET_PLAYER_PERMITTED_TO_COLLECT_PICKUPS_OF_TYPE(PLAYER::PLAYER_ID(), ${pickup_portable_package}, 1); - -- OBJECT::SET_PLAYER_PERMITTED_TO_COLLECT_PICKUPS_OF_TYPE(PLAYER::PLAYER_ID(), ${pickup_portable_package}, 0); - -- OBJECT::SET_PLAYER_PERMITTED_TO_COLLECT_PICKUPS_OF_TYPE(PLAYER::PLAYER_ID(), ${pickup_armour_standard}, 0); - -- OBJECT::SET_PLAYER_PERMITTED_TO_COLLECT_PICKUPS_OF_TYPE(PLAYER::PLAYER_ID(), ${pickup_armour_standard}, 1); - -- - -- Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json - ["SET_PLAYER_PERMITTED_TO_COLLECT_PICKUPS_OF_TYPE"]=--[[void]] function(--[[Player (int)]] player,--[[Hash (int)]] pickupHash,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, pickupHash, toggle, 0x616093EC6B139DD9, "iib")end, - -- Maximum amount of pickup models that can be disallowed is 30. - ["SET_LOCAL_PLAYER_PERMITTED_TO_COLLECT_PICKUPS_WITH_MODEL"]=--[[void]] function(--[[Hash (int)]] modelHash,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(modelHash, toggle, 0x88EAEC617CD26926, "ib")end, - -- Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json - ["ALLOW_ALL_PLAYERS_TO_COLLECT_PICKUPS_OF_TYPE"]=--[[void]] function(--[[Hash (int)]] pickupHash)return native_invoker.unified_void(pickupHash, 0xFDC07C58E8AAB715, "i")end, - ["SET_TEAM_PICKUP_OBJECT"]=--[[void]] function(--[[Object (int)]] object,--[[Any (int)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(object, p1, p2, 0x53E0DF1A2A3CF0CA, "iib")end, - ["PREVENT_COLLECTION_OF_PORTABLE_PICKUP"]=--[[void]] function(--[[Object (int)]] object,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(object, p1, p2, 0x92AEFB5F6E294023, "ibb")end, - ["SET_PICKUP_OBJECT_GLOW_WHEN_UNCOLLECTABLE"]=--[[void]] function(--[[Pickup (int)]] pickup,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(pickup, toggle, 0x27F248C3FEBFAAD3, "ib")end, - -- p1 is always 0.51. This native is called before SET_PICKUP_REGENERATION_TIME in all occurances. - ["SET_PICKUP_GLOW_OFFSET"]=--[[void]] function(--[[Pickup (int)]] pickup,--[[float]] p1)return native_invoker.unified_void(pickup, p1, 0x0596843B34B95CE5, "if")end, - -- p1 is always -0.2 in scripts and p2 is always true in scripts. - ["SET_PICKUP_OBJECT_GLOW_OFFSET"]=--[[void]] function(--[[Pickup (int)]] pickup,--[[float]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(pickup, p1, p2, 0xA08FE5E49BDC39DD, "ifb")end, - ["SET_OBJECT_GLOW_IN_SAME_TEAM"]=--[[void]] function(--[[Pickup (int)]] pickup)return native_invoker.unified_void(pickup, 0x62454A641B41F3C5, "i")end, - ["SET_PICKUP_OBJECT_ARROW_MARKER"]=--[[void]] function(--[[Pickup (int)]] pickup,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(pickup, toggle, 0x39A5FB7EAF150840, "ib")end, - ["ALLOW_PICKUP_ARROW_MARKER_WHEN_UNCOLLECTABLE"]=--[[void]] function(--[[Pickup (int)]] pickup,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(pickup, toggle, 0x834344A414C7C85D, "ib")end, - ["GET_DEFAULT_AMMO_FOR_WEAPON_PICKUP"]=--[[int]] function(--[[Hash (int)]] pickupHash)return native_invoker.unified_int(pickupHash, 0xDB41D07A45A6D4B7, "i")end, - ["SET_PICKUP_GENERATION_RANGE_MULTIPLIER"]=--[[void]] function(--[[float]] multiplier)return native_invoker.unified_void(multiplier, 0x318516E02DE3ECE2, "f")end, - ["GET_PICKUP_GENERATION_RANGE_MULTIPLIER"]=--[[float]] function()return native_invoker.unified_float(0xB3ECA65C7317F174, "")end, - ["SET_ONLY_ALLOW_AMMO_COLLECTION_WHEN_LOW"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x31F924B53EADDF65, "b")end, - ["SET_PICKUP_UNCOLLECTABLE"]=--[[void]] function(--[[Pickup (int)]] pickup,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(pickup, toggle, 0x1C1B69FAE509BA97, "ib")end, - ["SET_PICKUP_TRANSPARENT_WHEN_UNCOLLECTABLE"]=--[[void]] function(--[[Pickup (int)]] pickup,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(pickup, toggle, 0x858EC9FD25DE04AA, "ib")end, - ["SET_PICKUP_HIDDEN_WHEN_UNCOLLECTABLE"]=--[[void]] function(--[[Pickup (int)]] pickup,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(pickup, toggle, 0x3ED2B83AB2E82799, "ib")end, - ["SET_PICKUP_OBJECT_TRANSPARENT_WHEN_UNCOLLECTABLE"]=--[[void]] function(--[[Pickup (int)]] pickup,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(pickup, toggle, 0x8881C98A31117998, "ib")end, - -- p0 is either 0 or 50 in scripts. - ["SET_PICKUP_OBJECT_ALPHA_WHEN_TRANSPARENT"]=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0x8CFF648FBD7330F1, "i")end, - ["SET_PORTABLE_PICKUP_PERSIST"]=--[[void]] function(--[[Pickup (int)]] pickup,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(pickup, toggle, 0x46F3ADD1E2D5BAF2, "ib")end, - ["ALLOW_PORTABLE_PICKUP_TO_MIGRATE_TO_NON_PARTICIPANTS"]=--[[void]] function(--[[Pickup (int)]] pickup,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(pickup, toggle, 0x641F272B52E2F0F8, "ib")end, - ["FORCE_ACTIVATE_PHYSICS_ON_UNFIXED_PICKUP"]=--[[void]] function(--[[Pickup (int)]] pickup,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(pickup, toggle, 0x4C134B4DF76025D0, "ib")end, - ["ALLOW_PICKUP_BY_NONE_PARTICIPANT"]=--[[void]] function(--[[Pickup (int)]] pickup,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(pickup, toggle, 0xAA059C615DE9DD03, "ib")end, - -- enum ePickupRewardType - -- { - -- PICKUP_REWARD_TYPE_AMMO = (1 << 0), - -- PICKUP_REWARD_TYPE_BULLET_MP = (1 << 1), - -- PICKUP_REWARD_TYPE_MISSILE_MP = (1 << 2), - -- PICKUP_REWARD_TYPE_GRENADE_LAUNCHER_MP = (1 << 3), - -- PICKUP_REWARD_TYPE_ARMOUR = (1 << 4), - -- PICKUP_REWARD_TYPE_HEALTH = (1 << 5), - -- PICKUP_REWARD_TYPE_HEALTH_VARIABLE = PICKUP_REWARD_TYPE_HEALTH, - -- PICKUP_REWARD_TYPE_MONEY_FIXED = (1 << 6), - -- PICKUP_REWARD_TYPE_MONEY_VARIABLE = PICKUP_REWARD_TYPE_MONEY_FIXED, - -- PICKUP_REWARD_TYPE_WEAPON = (1 << 7), - -- PICKUP_REWARD_TYPE_STAT = (1 << 8), - -- PICKUP_REWARD_TYPE_STAT_VARIABLE = PICKUP_REWARD_TYPE_STAT, - -- PICKUP_REWARD_TYPE_VEHICLE_FIX = (1 << 9), - -- PICKUP_REWARD_TYPE_FIREWORK_MP = (1 << 10), - -- }; - ["SUPPRESS_PICKUP_REWARD_TYPE"]=--[[void]] function(--[[int]] rewardType,--[[BOOL (bool)]] suppress)return native_invoker.unified_void(rewardType, suppress, 0xF92099527DB8E2A7, "ib")end, - ["CLEAR_ALL_PICKUP_REWARD_TYPE_SUPPRESSION"]=--[[void]] function()return native_invoker.unified_void(0xA2C1F5E92AFE49ED, "")end, - ["CLEAR_PICKUP_REWARD_TYPE_SUPPRESSION"]=--[[void]] function(--[[int]] rewardType)return native_invoker.unified_void(rewardType, 0x762DB2D380B48D04, "i")end, - -- draws circular marker at pos - -- -1 = none - -- 0 = red - -- 1 = green - -- 2 = blue - -- 3 = green larger - -- 4 = nothing - -- 5 = green small - ["RENDER_FAKE_PICKUP_GLOW"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] colorIndex)return native_invoker.unified_void(x, y, z, colorIndex, 0x3430676B11CDF21D, "fffi")end, - ["SET_PICKUP_OBJECT_COLLECTABLE_IN_VEHICLE"]=--[[void]] function(--[[Pickup (int)]] pickup)return native_invoker.unified_void(pickup, 0x7813E8B8C4AE4799, "i")end, - ["SET_PICKUP_TRACK_DAMAGE_EVENTS"]=--[[void]] function(--[[Pickup (int)]] pickup,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(pickup, toggle, 0xBFFE53AE7E67FCDC, "ib")end, - -- Sets entity+38 to C (when false) or 0xFF3f (when true) - ["SET_ENTITY_FLAG_SUPPRESS_SHADOW"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0xD05A3241B9A86F19, "ib")end, - ["SET_ENTITY_FLAG_RENDER_SMALL_SHADOW"]=--[[void]] function(--[[Object (int)]] object,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(object, toggle, 0xB2D0BDE54F0E8E5A, "ib")end, - -- Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json - ["GET_WEAPON_TYPE_FROM_PICKUP_TYPE"]=--[[Hash (int)]] function(--[[Hash (int)]] pickupHash)return native_invoker.unified_int(pickupHash, 0x08F96CA6C551AD51, "i")end, - -- Returns the pickup hash for the given weapon hash - ["GET_PICKUP_TYPE_FROM_WEAPON_HASH"]=--[[Hash (int)]] function(--[[Hash (int)]] weaponHash)return native_invoker.unified_int(weaponHash, 0xD6429A016084F1A5, "i")end, - ["IS_PICKUP_WEAPON_OBJECT_VALID"]=--[[BOOL (bool)]] function(--[[Object (int)]] object)return native_invoker.unified_bool(object, 0x11D1E53A726891FE, "i")end, - ["GET_OBJECT_TINT_INDEX"]=--[[int]] function(--[[Object (int)]] object)return native_invoker.unified_int(object, 0xE84EB93729C5F36A, "i")end, - -- enum ObjectPaintVariants - -- { - -- Pacific = 0, - -- Azure = 1, - -- Nautical = 2, - -- Continental = 3, - -- Battleship = 4, - -- Intrepid = 5, - -- Uniform = 6, - -- Classico = 7, - -- Mediterranean = 8, - -- Command = 9, - -- Mariner = 10, - -- Ruby = 11, - -- Vintage = 12, - -- Pristine = 13, - -- Merchant = 14, - -- Voyager = 15 - -- }; - ["SET_OBJECT_TINT_INDEX"]=--[[void]] function(--[[Object (int)]] object,--[[int]] textureVariation)return native_invoker.unified_void(object, textureVariation, 0x971DA0055324D033, "ii")end, - ["SET_TINT_INDEX_CLOSEST_BUILDING_OF_TYPE"]=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[Hash (int)]] modelHash,--[[int]] textureVariation)return native_invoker.unified_bool(x, y, z, radius, modelHash, textureVariation, 0xF12E33034D887F66, "ffffii")end, - ["SET_PROP_TINT_INDEX"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x31574B1B41268673, "ii")end, - ["SET_PROP_LIGHT_COLOR"]=--[[BOOL (bool)]] function(--[[Object (int)]] object,--[[BOOL (bool)]] p1,--[[int]] r,--[[int]] g,--[[int]] b)return native_invoker.unified_bool(object, p1, r, g, b, 0x5F048334B4A4E774, "ibiii")end, - ["IS_PROP_LIGHT_OVERRIDEN"]=--[[BOOL (bool)]] function(--[[Object (int)]] object)return native_invoker.unified_bool(object, 0xADF084FB8F075D06, "i")end, - ["SET_OBJECT_IS_VISIBLE_IN_MIRRORS"]=--[[void]] function(--[[Object (int)]] object,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(object, toggle, 0x3B2FD68DB5F8331C, "ib")end, - ["SET_OBJECT_SPEED_BOOST_AMOUNT"]=--[[void]] function(--[[Object (int)]] object,--[[Any (int)]] p1)return native_invoker.unified_void(object, p1, 0x96EE0EBA0163DF80, "ii")end, - ["SET_OBJECT_SPEED_BOOST_DURATION"]=--[[void]] function(--[[Object (int)]] object,--[[float]] duration)return native_invoker.unified_void(object, duration, 0xDF6CA0330F2E737B, "if")end, - -- returns pickup hash. - -- - -- Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json - ["CONVERT_OLD_PICKUP_TYPE_TO_NEW"]=--[[Hash (int)]] function(--[[Hash (int)]] pickupHash)return native_invoker.unified_int(pickupHash, 0x5EAAD83F8CFB4575, "i")end, - ["SET_FORCE_OBJECT_THIS_FRAME"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] p3)return native_invoker.unified_void(x, y, z, p3, 0xF538081986E49E9D, "ffff")end, - -- is this like setting is as no longer needed? - ["ONLY_CLEAN_UP_OBJECT_WHEN_OUT_OF_RANGE"]=--[[void]] function(--[[Object (int)]] object)return native_invoker.unified_void(object, 0xADBE4809F19F927A, "i")end, - ["SET_DISABLE_COLLISIONS_BETWEEN_CARS_AND_CAR_PARACHUTE"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x8CAAB2BD3EA58BD4, "i")end, - ["SET_PROJECTILES_SHOULD_EXPLODE_ON_CONTACT"]=--[[void]] function(--[[Entity (int)]] entity,--[[Any (int)]] p1)return native_invoker.unified_void(entity, p1, 0x63ECF581BC70E363, "ii")end, - -- Activate the physics to: "xs_prop_arena_{flipper,wall,bollard,turntable,pit}" - ["SET_DRIVE_ARTICULATED_JOINT"]=--[[void]] function(--[[Object (int)]] object,--[[BOOL (bool)]] toggle,--[[int]] p2)return native_invoker.unified_void(object, toggle, p2, 0x911024442F4898F0, "ibi")end, - ["SET_DRIVE_ARTICULATED_JOINT_WITH_INFLICTOR"]=--[[void]] function(--[[Object (int)]] object,--[[BOOL (bool)]] toggle,--[[int]] p2,--[[Ped (int)]] ped)return native_invoker.unified_void(object, toggle, p2, ped, 0xB20834A7DD3D8896, "ibii")end, - ["SET_OBJECT_IS_A_PRESSURE_PLATE"]=--[[void]] function(--[[Object (int)]] object,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(object, toggle, 0x734E1714D077DA9A, "ib")end, - ["SET_WEAPON_IMPACTS_APPLY_GREATER_FORCE"]=--[[void]] function(--[[Object (int)]] object,--[[BOOL (bool)]] p1)return native_invoker.unified_void(object, p1, 0x1A6CBB06E2D0D79D, "ib")end, - ["GET_IS_ARTICULATED_JOINT_AT_MIN_ANGLE"]=--[[BOOL (bool)]] function(--[[Object (int)]] object,--[[Any (int)]] p1)return native_invoker.unified_bool(object, p1, 0x43C677F1E1158005, "ii")end, - ["GET_IS_ARTICULATED_JOINT_AT_MAX_ANGLE"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_bool(p0, p1, 0x3BD770D281982DB5, "ii")end, - ["SET_IS_OBJECT_ARTICULATED"]=--[[void]] function(--[[Object (int)]] object,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(object, toggle, 0x1C57C94A6446492A, "ib")end, - ["SET_IS_OBJECT_BALL"]=--[[void]] function(--[[Object (int)]] object,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(object, toggle, 0xB5B7742424BD4445, "ib")end, -} -PAD={ - -- control: 0: PLAYER_CONTROL, 1: CAMERA_CONTROL, 2: FRONTEND_CONTROL - -- For more info, see https://docs.fivem.net/docs/game-references/controls/ - ["IS_CONTROL_ENABLED"]=--[[BOOL (bool)]] function(--[[int]] control,--[[int]] action)return native_invoker.unified_bool(control, action, 0x1CEA6BFDF248E5D9, "ii")end, - -- Returns whether a control is currently pressed. - -- control: see IS_CONTROL_ENABLED - ["IS_CONTROL_PRESSED"]=--[[BOOL (bool)]] function(--[[int]] control,--[[int]] action)return native_invoker.unified_bool(control, action, 0xF3A21BCD95725A4A, "ii")end, - -- Returns whether a control is currently _not_ pressed. - -- control: see IS_CONTROL_ENABLED - ["IS_CONTROL_RELEASED"]=--[[BOOL (bool)]] function(--[[int]] control,--[[int]] action)return native_invoker.unified_bool(control, action, 0x648EE3E7F38877DD, "ii")end, - -- Returns whether a control was newly pressed since the last check. - -- control: see IS_CONTROL_ENABLED - ["IS_CONTROL_JUST_PRESSED"]=--[[BOOL (bool)]] function(--[[int]] control,--[[int]] action)return native_invoker.unified_bool(control, action, 0x580417101DDB492F, "ii")end, - -- Returns whether a control was newly released since the last check. - -- control: see IS_CONTROL_ENABLED - ["IS_CONTROL_JUST_RELEASED"]=--[[BOOL (bool)]] function(--[[int]] control,--[[int]] action)return native_invoker.unified_bool(control, action, 0x50F940259D3841E6, "ii")end, - -- control: see IS_CONTROL_ENABLED - ["GET_CONTROL_VALUE"]=--[[int]] function(--[[int]] control,--[[int]] action)return native_invoker.unified_int(control, action, 0xD95E79E8686D2C27, "ii")end, - -- Returns the value of GET_CONTROL_VALUE normalized (i.e. a real number value between -1 and 1) - -- - -- control: see IS_CONTROL_ENABLED - ["GET_CONTROL_NORMAL"]=--[[float]] function(--[[int]] control,--[[int]] action)return native_invoker.unified_float(control, action, 0xEC3C9B8D5327B563, "ii")end, - ["SET_USE_ADJUSTED_MOUSE_COORDS"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x5B73C77D9EB66E24, "b")end, - -- Seems to return values between -1 and 1 for controls like gas and steering. - -- - -- control: see IS_CONTROL_ENABLED - ["GET_CONTROL_UNBOUND_NORMAL"]=--[[float]] function(--[[int]] control,--[[int]] action)return native_invoker.unified_float(control, action, 0x5B84D09CEC5209C5, "ii")end, - -- This is for simulating player input. - -- value is a float value from 0 - 1 - -- - -- control: see IS_CONTROL_ENABLED - ["SET_CONTROL_VALUE_NEXT_FRAME"]=--[[BOOL (bool)]] function(--[[int]] control,--[[int]] action,--[[float]] value)return native_invoker.unified_bool(control, action, value, 0xE8A25867FBA3B05E, "iif")end, - -- control: see IS_CONTROL_ENABLED - ["IS_DISABLED_CONTROL_PRESSED"]=--[[BOOL (bool)]] function(--[[int]] control,--[[int]] action)return native_invoker.unified_bool(control, action, 0xE2587F8CBBD87B1D, "ii")end, - -- control: see IS_CONTROL_ENABLED - ["IS_DISABLED_CONTROL_RELEASED"]=--[[BOOL (bool)]] function(--[[int]] control,--[[int]] action)return native_invoker.unified_bool(control, action, 0xFB6C4072E9A32E92, "ii")end, - -- control: see IS_CONTROL_ENABLED - ["IS_DISABLED_CONTROL_JUST_PRESSED"]=--[[BOOL (bool)]] function(--[[int]] control,--[[int]] action)return native_invoker.unified_bool(control, action, 0x91AEF906BCA88877, "ii")end, - -- control: see IS_CONTROL_ENABLED - ["IS_DISABLED_CONTROL_JUST_RELEASED"]=--[[BOOL (bool)]] function(--[[int]] control,--[[int]] action)return native_invoker.unified_bool(control, action, 0x305C8DCD79DA8B0F, "ii")end, - -- control: see IS_CONTROL_ENABLED - ["GET_DISABLED_CONTROL_NORMAL"]=--[[float]] function(--[[int]] control,--[[int]] action)return native_invoker.unified_float(control, action, 0x11E65974A982637C, "ii")end, - -- The "disabled" variant of GET_CONTROL_UNBOUND_NORMAL. - -- - -- control: see IS_CONTROL_ENABLED - ["GET_DISABLED_CONTROL_UNBOUND_NORMAL"]=--[[float]] function(--[[int]] control,--[[int]] action)return native_invoker.unified_float(control, action, 0x4F8A26A890FD62FB, "ii")end, - -- Returns time in ms since last input. - -- - -- control: see IS_CONTROL_ENABLED - ["GET_CONTROL_HOW_LONG_AGO"]=--[[int]] function(--[[int]] control)return native_invoker.unified_int(control, 0xD7D22F5592AED8BA, "i")end, - -- control: unused parameter - ["IS_USING_KEYBOARD_AND_MOUSE"]=--[[BOOL (bool)]] function(--[[int]] control)return native_invoker.unified_bool(control, 0xA571D46727E2B718, "i")end, - -- control: see IS_CONTROL_ENABLED - ["IS_USING_CURSOR"]=--[[BOOL (bool)]] function(--[[int]] control)return native_invoker.unified_bool(control, 0x13337B38DB572509, "i")end, - ["SET_CURSOR_POSITION"]=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y)return native_invoker.unified_bool(x, y, 0xFC695459D4D0E219, "ff")end, - -- control: see IS_CONTROL_ENABLED - -- - -- Hardcoded to return false. - ["IS_USING_REMOTE_PLAY"]=--[[BOOL (bool)]] function(--[[int]] control)return native_invoker.unified_bool(control, 0x23F09EADC01449D6, "i")end, - -- control: unused parameter - ["HAVE_CONTROLS_CHANGED"]=--[[BOOL (bool)]] function(--[[int]] control)return native_invoker.unified_bool(control, 0x6CD79468A1E595C6, "i")end, - -- allowXOSwap appears to always be true. - -- - -- EG: - -- GET_CONTROL_INSTRUCTIONAL_BUTTON (2, 201, 1) /*INPUT_FRONTEND_ACCEPT (e.g. Enter button)*/ - -- GET_CONTROL_INSTRUCTIONAL_BUTTON (2, 202, 1) /*INPUT_FRONTEND_CANCEL (e.g. ESC button)*/ - -- GET_CONTROL_INSTRUCTIONAL_BUTTON (2, 51, 1) /*INPUT_CONTEXT (e.g. E button)*/ - -- - -- gtaforums.com/topic/819070-c-draw-instructional-buttons-scaleform-movie/#entry1068197378 - -- - -- control: unused parameter - ["GET_CONTROL_INSTRUCTIONAL_BUTTONS_STRING"]=--[[string]] function(--[[int]] control,--[[int]] action,--[[BOOL (bool)]] allowXOSwap)return native_invoker.unified_string(control, action, allowXOSwap, 0x0499D7B09FC9B407, "iib")end, - -- control: unused parameter - ["GET_CONTROL_GROUP_INSTRUCTIONAL_BUTTONS_STRING"]=--[[string]] function(--[[int]] control,--[[int]] controlGroup,--[[BOOL (bool)]] allowXOSwap)return native_invoker.unified_string(control, controlGroup, allowXOSwap, 0x80C2FD58D720C801, "iib")end, - -- control: see IS_CONTROL_ENABLED - ["SET_CONTROL_LIGHT_EFFECT_COLOR"]=--[[void]] function(--[[int]] control,--[[int]] red,--[[int]] green,--[[int]] blue)return native_invoker.unified_void(control, red, green, blue, 0x8290252FFF36ACB5, "iiii")end, - -- control: see IS_CONTROL_ENABLED - ["CLEAR_CONTROL_LIGHT_EFFECT"]=--[[void]] function(--[[int]] control)return native_invoker.unified_void(control, 0xCB0360EFEFB2580D, "i")end, - -- control: see IS_CONTROL_ENABLED - -- duration in milliseconds - -- frequency should range from about 10 (slow vibration) to 255 (very fast) - -- - -- example: - -- SET_CONTROL_SHAKE(PLAYER_CONTROL, 100, 200); - ["SET_CONTROL_SHAKE"]=--[[void]] function(--[[int]] control,--[[int]] duration,--[[int]] frequency)return native_invoker.unified_void(control, duration, frequency, 0x48B3886C1358D0D5, "iii")end, - -- Does nothing (it's a nullsub). - ["SET_CONTROL_TRIGGER_SHAKE"]=--[[void]] function(--[[int]] control,--[[int]] leftDuration,--[[int]] leftFrequency,--[[int]] rightDuration,--[[int]] rightFrequency)return native_invoker.unified_void(control, leftDuration, leftFrequency, rightDuration, rightFrequency, 0x14D29BB12D47F68C, "iiiii")end, - -- control: see IS_CONTROL_ENABLED - ["STOP_CONTROL_SHAKE"]=--[[void]] function(--[[int]] control)return native_invoker.unified_void(control, 0x38C16A305E8CDC8D, "i")end, - -- control: see IS_CONTROL_ENABLED - ["SET_CONTROL_SHAKE_SUPPRESSED_ID"]=--[[void]] function(--[[int]] control,--[[int]] uniqueId)return native_invoker.unified_void(control, uniqueId, 0xF239400E16C23E08, "ii")end, - -- control: see IS_CONTROL_ENABLED - ["CLEAR_CONTROL_SHAKE_SUPPRESSED_ID"]=--[[void]] function(--[[int]] control)return native_invoker.unified_void(control, 0xA0CEFCEA390AAB9B, "i")end, - ["IS_LOOK_INVERTED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x77B612531280010D, "")end, - -- Used with IS_LOOK_INVERTED() and negates its affect. - -- - -- -- - -- - -- Not sure how the person above got that description, but here's an actual example: - -- - -- if (PAD::IS_USING_KEYBOARD_AND_MOUSE(2)) { - -- if (a_5) { - -- if (PAD::IS_LOOK_INVERTED()) { - -- a_3 *= -1; - -- } - -- if (PAD::IS_MOUSE_LOOK_INVERTED()) { - -- a_3 *= -1; - -- } - -- } - -- } - ["IS_MOUSE_LOOK_INVERTED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xE1615EC03B3BB4FD, "")end, - -- Hard-coded to return 3 if using KBM, otherwise same behavior as GET_LOCAL_PLAYER_GAMEPAD_AIM_STATE. - ["GET_LOCAL_PLAYER_AIM_STATE"]=--[[int]] function()return native_invoker.unified_int(0xBB41AFBBBC0A0287, "")end, - -- Returns the local player's targeting mode. See PLAYER::SET_PLAYER_TARGETING_MODE. - ["GET_LOCAL_PLAYER_GAMEPAD_AIM_STATE"]=--[[int]] function()return native_invoker.unified_int(0x59B9A7AF4C95133C, "")end, - ["GET_IS_USING_ALTERNATE_HANDBRAKE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x25AAA32BDC98F2A3, "")end, - -- Returns profile setting 225. - ["GET_IS_USING_ALTERNATE_DRIVEBY"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x0F70731BACCFBB96, "")end, - -- Returns profile setting 17. - ["GET_ALLOW_MOVEMENT_WHILE_ZOOMED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xFC859E2374407556, "")end, - ["SET_PLAYERPAD_SHAKES_WHEN_CONTROLLER_DISABLED"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x798FDEB5B1575088, "b")end, - -- control: see IS_CONTROL_ENABLED - ["SET_INPUT_EXCLUSIVE"]=--[[void]] function(--[[int]] control,--[[int]] action)return native_invoker.unified_void(control, action, 0xEDE476E5EE29EDB1, "ii")end, - -- control: see IS_CONTROL_ENABLED - ["DISABLE_CONTROL_ACTION"]=--[[void]] function(--[[int]] control,--[[int]] action,--[[BOOL (bool)]] disableRelatedActions)return native_invoker.unified_void(control, action, disableRelatedActions, 0xFE99B66D079CF6BC, "iib")end, - -- control: see IS_CONTROL_ENABLED - ["ENABLE_CONTROL_ACTION"]=--[[void]] function(--[[int]] control,--[[int]] action,--[[BOOL (bool)]] enableRelatedActions)return native_invoker.unified_void(control, action, enableRelatedActions, 0x351220255D64C155, "iib")end, - -- control: see IS_CONTROL_ENABLED - ["DISABLE_ALL_CONTROL_ACTIONS"]=--[[void]] function(--[[int]] control)return native_invoker.unified_void(control, 0x5F4B6931816E599B, "i")end, - -- control: see IS_CONTROL_ENABLED - ["ENABLE_ALL_CONTROL_ACTIONS"]=--[[void]] function(--[[int]] control)return native_invoker.unified_void(control, 0xA5FFE9B05F199DE7, "i")end, - -- Used in carsteal3 script with schemeName = "Carsteal4_spycar". - ["INIT_PC_SCRIPTED_CONTROLS"]=--[[BOOL (bool)]] function(--[[string]] schemeName)return native_invoker.unified_bool(schemeName, 0x3D42B92563939375, "s")end, - -- Same as INIT_PC_SCRIPTED_CONTROLS - ["SWITCH_PC_SCRIPTED_CONTROLS"]=--[[BOOL (bool)]] function(--[[string]] schemeName)return native_invoker.unified_bool(schemeName, 0x4683149ED1DDE7A1, "s")end, - ["SHUTDOWN_PC_SCRIPTED_CONTROLS"]=--[[void]] function()return native_invoker.unified_void(0x643ED62D5EA3BEBD, "")end, - -- control: see IS_CONTROL_ENABLED - ["ALLOW_ALTERNATIVE_SCRIPT_CONTROLS_LAYOUT"]=--[[void]] function(--[[int]] control)return native_invoker.unified_void(control, 0x7F4724035FDCA1DD, "i")end, -} -PATHFIND={ - -- When nodeEnabled is set to false, all nodes in the area get disabled. - -- `GET_VEHICLE_NODE_IS_SWITCHED_OFF` returns true afterwards. - -- If it's true, `GET_VEHICLE_NODE_IS_SWITCHED_OFF` returns false. - ["SET_ROADS_IN_AREA"]=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[BOOL (bool)]] nodeEnabled,--[[BOOL (bool)]] unknown2)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, nodeEnabled, unknown2, 0xBF1A602B5BA52FEE, "ffffffbb")end, - -- unknown3 is related to `SEND_SCRIPT_WORLD_STATE_EVENT > CNetworkRoadNodeWorldStateData` in networked environments. - -- See IS_POINT_IN_ANGLED_AREA for the definition of an angled area. - ["SET_ROADS_IN_ANGLED_AREA"]=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] width,--[[BOOL (bool)]] unknown1,--[[BOOL (bool)]] unknown2,--[[BOOL (bool)]] unknown3)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, width, unknown1, unknown2, unknown3, 0x1A5AA1208AF5DB59, "fffffffbbb")end, - ["SET_PED_PATHS_IN_AREA"]=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[BOOL (bool)]] p6,--[[Any (int)]] p7)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, p6, p7, 0x34F060F4BF92E018, "ffffffbi")end, - -- Flags are: - -- 1 = 1 = B02_IsFootpath - -- 2 = 4 = !B15_InteractionUnk - -- 4 = 0x20 = !B14_IsInterior - -- 8 = 0x40 = !B07_IsWater - -- 16 = 0x200 = B17_IsFlatGround - -- When onGround == true outPosition is a position located on the nearest pavement. - -- - -- When a safe coord could not be found the result of a function is false and outPosition == Vector3.Zero. - -- - -- In the scripts these flags are used: 0, 14, 12, 16, 20, 21, 28. 0 is most commonly used, then 16. - -- - -- 16 works for me, 0 crashed the script. - ["GET_SAFE_COORD_FOR_PED"]=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] onGround,--[[Vector3* (pointer)]] outPosition,--[[int]] flags)return native_invoker.unified_bool(x, y, z, onGround, outPosition, flags, 0xB61C8E878A4199CA, "fffbpi")end, - -- https://gtaforums.com/topic/843561-pathfind-node-types - ["GET_CLOSEST_VEHICLE_NODE"]=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[Vector3* (pointer)]] outPosition,--[[int]] nodeFlags,--[[float]] p5,--[[float]] p6)return native_invoker.unified_bool(x, y, z, outPosition, nodeFlags, p5, p6, 0x240A18690AE96513, "fffpiff")end, - -- Get the closest vehicle node to a given position. - ["GET_CLOSEST_MAJOR_VEHICLE_NODE"]=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[Vector3* (pointer)]] outPosition,--[[float]] unknown1,--[[float]] unknown2)return native_invoker.unified_bool(x, y, z, outPosition, unknown1, unknown2, 0x2EABE3B06F58C1BE, "fffpff")end, - -- p5, p6 and p7 seems to be about the same as p4, p5 and p6 for GET_CLOSEST_VEHICLE_NODE. p6 and/or p7 has something to do with finding a node on the same path/road and same direction(at least for this native, something to do with the heading maybe). Edit this when you find out more. - -- - -- nodeType: 0 = main roads, 1 = any dry path, 3 = water - -- p6 is always 3.0 - -- p7 is always 0 - -- - -- gtaforums.com/topic/843561-pathfind-node-types - -- - -- Example of usage, moving vehicle to closest path/road: - -- Vector3 coords = ENTITY::GET_ENTITY_COORDS(playerVeh, true); - -- Vector3 closestVehicleNodeCoords; - -- float roadHeading; - -- PATHFIND::GET_CLOSEST_VEHICLE_NODE_WITH_HEADING(coords.x, coords.y, coords.z, &closestVehicleNodeCoords, &roadHeading, 1, 3, 0); - -- ENTITY::SET_ENTITY_HEADING(playerVeh, roadHeading); - -- ENTITY::SET_ENTITY_COORDS(playerVeh, closestVehicleNodeCoords.x, closestVehicleNodeCoords.y, closestVehicleNodeCoords.z, 1, 0, 0, 1); - -- VEHICLE::SET_VEHICLE_ON_GROUND_PROPERLY(playerVeh); - -- - -- ------------------------------------------------------------------ - -- C# Example (ins1de) : https://pastebin.com/fxtMWAHD - ["GET_CLOSEST_VEHICLE_NODE_WITH_HEADING"]=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[Vector3* (pointer)]] outPosition,--[[float* (pointer)]] outHeading,--[[int]] nodeType,--[[float]] p6,--[[float]] p7)return native_invoker.unified_bool(x, y, z, outPosition, outHeading, nodeType, p6, p7, 0xFF071FB798B803B0, "fffppiff")end, - ["GET_NTH_CLOSEST_VEHICLE_NODE"]=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] nthClosest,--[[Vector3* (pointer)]] outPosition,--[[int]] nodeFlags,--[[float]] unknown1,--[[float]] unknown2)return native_invoker.unified_bool(x, y, z, nthClosest, outPosition, nodeFlags, unknown1, unknown2, 0xE50E52416CCF948B, "fffipiff")end, - -- Returns the id. - ["GET_NTH_CLOSEST_VEHICLE_NODE_ID"]=--[[int]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] nth,--[[int]] nodeFlags,--[[float]] p5,--[[float]] p6)return native_invoker.unified_int(x, y, z, nth, nodeFlags, p5, p6, 0x22D7275A79FE8215, "fffiiff")end, - -- Get the nth closest vehicle node and its heading. - ["GET_NTH_CLOSEST_VEHICLE_NODE_WITH_HEADING"]=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] nthClosest,--[[Vector3* (pointer)]] outPosition,--[[float* (pointer)]] outHeading,--[[int* (pointer)]] outNumLanes,--[[int]] nodeFlags,--[[float]] unknown3,--[[float]] unknown4)return native_invoker.unified_bool(x, y, z, nthClosest, outPosition, outHeading, outNumLanes, nodeFlags, unknown3, unknown4, 0x80CA6A8B6C094CC4, "fffipppiff")end, - ["GET_NTH_CLOSEST_VEHICLE_NODE_ID_WITH_HEADING"]=--[[int]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] nthClosest,--[[Vector3* (pointer)]] outPosition,--[[float* (pointer)]] outHeading,--[[int]] nodeFlags,--[[float]] p7,--[[float]] p8)return native_invoker.unified_int(x, y, z, nthClosest, outPosition, outHeading, nodeFlags, p7, p8, 0x6448050E9C2A7207, "fffippiff")end, - -- See gtaforums.com/topic/843561-pathfind-node-types for node type info. 0 = paved road only, 1 = any road, 3 = water - -- - -- p10 always equals 3.0 - -- p11 always equals 0 - ["GET_NTH_CLOSEST_VEHICLE_NODE_FAVOUR_DIRECTION"]=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] desiredX,--[[float]] desiredY,--[[float]] desiredZ,--[[int]] nthClosest,--[[Vector3* (pointer)]] outPosition,--[[float* (pointer)]] outHeading,--[[int]] nodeFlags,--[[float]] p10,--[[float]] p11)return native_invoker.unified_bool(x, y, z, desiredX, desiredY, desiredZ, nthClosest, outPosition, outHeading, nodeFlags, p10, p11, 0x45905BE8654AE067, "ffffffippiff")end, - -- Gets the density and flags of the closest node to the specified position. - -- Density is a value between 0 and 15, indicating how busy the road is. - -- Flags is a bit field. - ["GET_VEHICLE_NODE_PROPERTIES"]=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[int* (pointer)]] density,--[[int* (pointer)]] flags)return native_invoker.unified_bool(x, y, z, density, flags, 0x0568566ACBB5DEDC, "fffpp")end, - -- Returns true if the id is non zero. - ["IS_VEHICLE_NODE_ID_VALID"]=--[[BOOL (bool)]] function(--[[int]] vehicleNodeId)return native_invoker.unified_bool(vehicleNodeId, 0x1EAF30FCFBF5AF74, "i")end, - -- Calling this with an invalid node id, will crash the game. - -- Note that IS_VEHICLE_NODE_ID_VALID simply checks if nodeId is not zero. It does not actually ensure that the id is valid. - -- Eg. IS_VEHICLE_NODE_ID_VALID(1) will return true, but will crash when calling GET_VEHICLE_NODE_POSITION(). - ["GET_VEHICLE_NODE_POSITION"]=--[[void]] function(--[[int]] nodeId,--[[Vector3* (pointer)]] outPosition)return native_invoker.unified_void(nodeId, outPosition, 0x703123E5E7D429C2, "ip")end, - -- Returns false for nodes that aren't used for GPS routes. - -- Example: - -- Nodes in Fort Zancudo and LSIA are false - ["GET_VEHICLE_NODE_IS_GPS_ALLOWED"]=--[[BOOL (bool)]] function(--[[int]] nodeID)return native_invoker.unified_bool(nodeID, 0xA2AE5C478B96E3B6, "i")end, - -- Returns true when the node is Offroad. Alleys, some dirt roads, and carparks return true. - -- Normal roads where plenty of Peds spawn will return false - ["GET_VEHICLE_NODE_IS_SWITCHED_OFF"]=--[[BOOL (bool)]] function(--[[int]] nodeID)return native_invoker.unified_bool(nodeID, 0x4F5070AA58F69279, "i")end, - -- p1 seems to be always 1.0f in the scripts - ["GET_CLOSEST_ROAD"]=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] p3,--[[int]] p4,--[[Vector3* (pointer)]] p5,--[[Vector3* (pointer)]] p6,--[[Any* (pointer)]] p7,--[[Any* (pointer)]] p8,--[[float* (pointer)]] p9,--[[BOOL (bool)]] p10)return native_invoker.unified_bool(x, y, z, p3, p4, p5, p6, p7, p8, p9, p10, 0x132F52BBA570FE92, "ffffipppppb")end, - ["LOAD_ALL_PATH_NODES"]=--[[BOOL (bool)]] function(--[[BOOL (bool)]] set)return native_invoker.unified_bool(set, 0xC2AB6BFE34E92F8B, "b")end, - ["SET_ALLOW_STREAM_PROLOGUE_NODES"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x228E5C6AD4D74BFD, "b")end, - -- Activates Cayo Perico path nodes if passed `1`. GPS navigation will start working, maybe more stuff will change, not sure. It seems if you try to unload (pass `0`) when close to the island, your game might crash. - ["SET_ALLOW_STREAM_HEIST_ISLAND_NODES"]=--[[void]] function(--[[int]] type)return native_invoker.unified_void(type, 0xF74B1FFA4A15FBEA, "i")end, - ["ARE_NODES_LOADED_FOR_AREA"]=--[[BOOL (bool)]] function(--[[float]] x1,--[[float]] y1,--[[float]] x2,--[[float]] y2)return native_invoker.unified_bool(x1, y1, x2, y2, 0xF7B79A50B905A30D, "ffff")end, - -- Used internally for long range tasks - ["REQUEST_PATH_NODES_IN_AREA_THIS_FRAME"]=--[[BOOL (bool)]] function(--[[float]] x1,--[[float]] y1,--[[float]] x2,--[[float]] y2)return native_invoker.unified_bool(x1, y1, x2, y2, 0x07FB139B592FA687, "ffff")end, - ["SET_ROADS_BACK_TO_ORIGINAL"]=--[[void]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[Any (int)]] p6)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, 0x1EE7063B80FFC77C, "ffffffi")end, - -- See IS_POINT_IN_ANGLED_AREA for the definition of an angled area. - -- bool p7 - always 1 - ["SET_ROADS_BACK_TO_ORIGINAL_IN_ANGLED_AREA"]=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] width,--[[Any (int)]] p7)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, width, p7, 0x0027501B9F3B407E, "fffffffi")end, - ["SET_AMBIENT_PED_RANGE_MULTIPLIER_THIS_FRAME"]=--[[void]] function(--[[float]] multiplier)return native_invoker.unified_void(multiplier, 0x0B919E1FB47CC4E0, "f")end, - ["ADJUST_AMBIENT_PED_SPAWN_DENSITIES_THIS_FRAME"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5,--[[Any (int)]] p6)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, 0xAA76052DDA9BFC3E, "iiiiiii")end, - -- p6 is always 0 - ["SET_PED_PATHS_BACK_TO_ORIGINAL"]=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[Any (int)]] p6)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, p6, 0xE04B48F2CC926253, "ffffffi")end, - ["GET_RANDOM_VEHICLE_NODE"]=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[BOOL (bool)]] p4,--[[BOOL (bool)]] p5,--[[BOOL (bool)]] p6,--[[Vector3* (pointer)]] outPosition,--[[int* (pointer)]] nodeId)return native_invoker.unified_bool(x, y, z, radius, p4, p5, p6, outPosition, nodeId, 0x93E0DB8440B73A7D, "ffffbbbpp")end, - ["GET_SPAWN_COORDS_FOR_VEHICLE_NODE"]=--[[Vector3 (vector3)]] function(--[[int]] nodeAddress,--[[float]] towardsCoorsX,--[[float]] towardsCoorsY,--[[float]] towardsCoorsZ,--[[Vector3* (pointer)]] centrePoint,--[[float* (pointer)]] heading)return native_invoker.unified_vector3(nodeAddress, towardsCoorsX, towardsCoorsY, towardsCoorsZ, centrePoint, heading, 0x809549AFC7AEC597, "ifffpp")end, - -- Determines the name of the street which is the closest to the given coordinates. - -- - -- x,y,z - the coordinates of the street - -- streetName - returns a hash to the name of the street the coords are on - -- crossingRoad - if the coordinates are on an intersection, a hash to the name of the crossing road - -- - -- Note: the names are returned as hashes, the strings can be returned using the function HUD::GET_STREET_NAME_FROM_HASH_KEY. - ["GET_STREET_NAME_AT_COORD"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[Hash* (pointer)]] streetName,--[[Hash* (pointer)]] crossingRoad)return native_invoker.unified_void(x, y, z, streetName, crossingRoad, 0x2EB41072B4C1E4C0, "fffpp")end, - -- p3 is 0 in the only game script occurrence (trevor3) but 1 doesn't seem to make a difference - -- - -- distToNxJunction seems to be the distance in metres * 10.0f - -- - -- direction: - -- 0 = This happens randomly during the drive for seemingly no reason but if you consider that this native is only used in trevor3, it seems to mean "Next frame, stop whatever's being said and tell the player the direction." - -- 1 = Route is being calculated or the player is going in the wrong direction - -- 2 = Please Proceed the Highlighted Route - -- 3 = In (distToNxJunction) Turn Left - -- 4 = In (distToNxJunction) Turn Right - -- 5 = In (distToNxJunction) Keep Straight - -- 6 = In (distToNxJunction) Turn Sharply To The Left - -- 7 = In (distToNxJunction) Turn Sharply To The Right - -- 8 = Route is being recalculated or the navmesh is confusing. This happens randomly during the drive but consistently at {2044.0358, 2996.6116, 44.9717} if you face towards the bar and the route needs you to turn right. In that particular case, it could be a bug with how the turn appears to be 270 deg. CCW instead of "right." Either way, this seems to be the engine saying "I don't know the route right now." - -- - -- return value set to 0 always - ["GENERATE_DIRECTIONS_TO_COORD"]=--[[int]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] p3,--[[int* (pointer)]] direction,--[[float* (pointer)]] p5,--[[float* (pointer)]] distToNxJunction)return native_invoker.unified_int(x, y, z, p3, direction, p5, distToNxJunction, 0xF90125F1F79ECDF8, "fffbppp")end, - ["SET_IGNORE_NO_GPS_FLAG"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x72751156E7678833, "b")end, - -- See: SET_BLIP_ROUTE - ["SET_IGNORE_NO_GPS_FLAG_UNTIL_FIRST_NORMAL_NODE"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x1FC289A0C3FF470F, "b")end, - ["SET_GPS_DISABLED_ZONE"]=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z3)return native_invoker.unified_void(x1, y1, z1, x2, y2, z3, 0xDC20483CD3DD5201, "ffffff")end, - ["GET_GPS_BLIP_ROUTE_LENGTH"]=--[[int]] function()return native_invoker.unified_int(0xBBB45C3CF5C8AA85, "")end, - -- p3 can be 0, 1 or 2. - ["GET_POS_ALONG_GPS_TYPE_ROUTE"]=--[[BOOL (bool)]] function(--[[Vector3* (pointer)]] result,--[[BOOL (bool)]] p1,--[[float]] p2,--[[int]] p3)return native_invoker.unified_bool(result, p1, p2, p3, 0xF3162836C28F9DA5, "pbfi")end, - ["GET_GPS_BLIP_ROUTE_FOUND"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x869DAACBBE9FA006, "")end, - ["GET_ROAD_BOUNDARY_USING_HEADING"]=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] heading,--[[Vector3* (pointer)]] outPosition)return native_invoker.unified_bool(x, y, z, heading, outPosition, 0xA0F8A7517A273C05, "ffffp")end, - ["GET_POSITION_BY_SIDE_OF_ROAD"]=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] p3,--[[Vector3* (pointer)]] outPosition)return native_invoker.unified_bool(x, y, z, p3, outPosition, 0x16F46FB18C8009E4, "fffip")end, - -- Gets a value indicating whether the specified position is on a road. - -- The vehicle parameter is not implemented (ignored). - ["IS_POINT_ON_ROAD"]=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(x, y, z, vehicle, 0x125BF4ABFC536B09, "fffi")end, - -- Gets the next zone that has been disabled using SET_GPS_DISABLED_ZONE_AT_INDEX. - ["GET_NEXT_GPS_DISABLED_ZONE_INDEX"]=--[[int]] function()return native_invoker.unified_int(0xD3A6A0EF48823A8C, "")end, - -- Disables the GPS route displayed on the minimap while within a certain zone (area). When in a disabled zone and creating a waypoint, the GPS route is not shown on the minimap until you are outside of the zone. When disabled, the direct distance is shown on minimap opposed to distance to travel. Seems to only work before setting a waypoint. - -- You can clear the disabled zone with CLEAR_GPS_DISABLED_ZONE_AT_INDEX. - -- - -- **Setting a waypoint at the same coordinate:** - -- Disabled Zone: https://i.imgur.com/P9VUuxM.png - -- Enabled Zone (normal): https://i.imgur.com/BPi24aw.png - ["SET_GPS_DISABLED_ZONE_AT_INDEX"]=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[int]] index)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, index, 0xD0BC1C6FB18EE154, "ffffffi")end, - -- Clears a disabled GPS route area from a certain index previously set using `SET_GPS_DISABLED_ZONE_AT_INDEX`. - ["CLEAR_GPS_DISABLED_ZONE_AT_INDEX"]=--[[void]] function(--[[int]] index)return native_invoker.unified_void(index, 0x2801D0012266DF07, "i")end, - ["ADD_NAVMESH_REQUIRED_REGION"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] radius)return native_invoker.unified_void(x, y, radius, 0x387EAD7EE42F6685, "fff")end, - ["REMOVE_NAVMESH_REQUIRED_REGIONS"]=--[[void]] function()return native_invoker.unified_void(0x916F0A3CDEC3445E, "")end, - ["IS_NAVMESH_REQUIRED_REGION_IN_USE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x705A844002B39DC0, "")end, - -- Set toggle true to disable navmesh. - -- Set toggle false to enable navmesh. - ["DISABLE_NAVMESH_IN_AREA"]=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, toggle, 0x4C8872D8CDBE1B8B, "ffffffb")end, - ["ARE_ALL_NAVMESH_REGIONS_LOADED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x8415D95B194A3AEA, "")end, - -- Returns whether navmesh for the region is loaded. The region is a rectangular prism defined by it's top left deepest corner to it's bottom right shallowest corner. - -- - -- If you can re-word this so it makes more sense, please do. I'm horrible with words sometimes... - ["IS_NAVMESH_LOADED_IN_AREA"]=--[[BOOL (bool)]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2)return native_invoker.unified_bool(x1, y1, z1, x2, y2, z2, 0xF813C7E63F9062A5, "ffffff")end, - ["GET_NUM_NAVMESHES_EXISTING_IN_AREA"]=--[[int]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2)return native_invoker.unified_int(x1, y1, z1, x2, y2, z2, 0x01708E8DD3FF8C65, "ffffff")end, - ["ADD_NAVMESH_BLOCKING_OBJECT"]=--[[int]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[float]] p6,--[[BOOL (bool)]] p7,--[[Any (int)]] p8)return native_invoker.unified_int(p0, p1, p2, p3, p4, p5, p6, p7, p8, 0xFCD5C8E06E502F5A, "fffffffbi")end, - ["UPDATE_NAVMESH_BLOCKING_OBJECT"]=--[[void]] function(--[[Any (int)]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[float]] p6,--[[float]] p7,--[[Any (int)]] p8)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, p7, p8, 0x109E99373F290687, "ifffffffi")end, - ["REMOVE_NAVMESH_BLOCKING_OBJECT"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x46399A7895957C0E, "i")end, - ["DOES_NAVMESH_BLOCKING_OBJECT_EXIST"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x0EAEB0DB4B132399, "i")end, - -- Returns CGameWorldHeightMap's maximum Z value at specified point (grid node). - ["GET_APPROX_HEIGHT_FOR_POINT"]=--[[float]] function(--[[float]] x,--[[float]] y)return native_invoker.unified_float(x, y, 0x29C24BFBED8AB8FB, "ff")end, - -- Returns CGameWorldHeightMap's maximum Z among all grid nodes that intersect with the specified rectangle. - ["GET_APPROX_HEIGHT_FOR_AREA"]=--[[float]] function(--[[float]] x1,--[[float]] y1,--[[float]] x2,--[[float]] y2)return native_invoker.unified_float(x1, y1, x2, y2, 0x8ABE8608576D9CE3, "ffff")end, - -- Returns CGameWorldHeightMap's minimum Z value at specified point (grid node). - ["GET_APPROX_FLOOR_FOR_POINT"]=--[[float]] function(--[[float]] x,--[[float]] y)return native_invoker.unified_float(x, y, 0x336511A34F2E5185, "ff")end, - -- Returns CGameWorldHeightMap's minimum Z among all grid nodes that intersect with the specified rectangle. - ["GET_APPROX_FLOOR_FOR_AREA"]=--[[float]] function(--[[float]] x1,--[[float]] y1,--[[float]] x2,--[[float]] y2)return native_invoker.unified_float(x1, y1, x2, y2, 0x3599D741C9AC6310, "ffff")end, - -- Calculates the travel distance between a set of points. - -- - -- Doesn't seem to correlate with distance on gps sometimes. - -- This function returns the value 100000.0 over long distances, seems to be a failure mode result, potentially occurring when not all path nodes are loaded into pathfind. - ["CALCULATE_TRAVEL_DISTANCE_BETWEEN_POINTS"]=--[[float]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2)return native_invoker.unified_float(x1, y1, z1, x2, y2, z2, 0xADD95C7005C4A197, "ffffff")end, -} -PED={ - -- https://alloc8or.re/gta5/doc/enums/ePedType.txt - -- - -- Full list of peds by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/peds.json - ["CREATE_PED"]=--[[Ped (int)]] function(--[[int]] pedType,--[[Hash (int)]] modelHash,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] heading,--[[BOOL (bool)]] isNetwork,--[[BOOL (bool)]] bScriptHostPed)return native_invoker.unified_int(pedType, modelHash, x, y, z, heading, isNetwork, bScriptHostPed, 0xD49F9B0955C367DE, "iiffffbb")end, - -- Deletes the specified ped, then sets the handle pointed to by the pointer to NULL. - ["DELETE_PED"]=--[[void]] function(--[[Ped* (pointer)]] ped)return native_invoker.unified_void(ped, 0x9614299DCB53E54B, "p")end, - ["CLONE_PED"]=--[[Ped (int)]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] isNetwork,--[[BOOL (bool)]] bScriptHostPed,--[[BOOL (bool)]] copyHeadBlendFlag)return native_invoker.unified_int(ped, isNetwork, bScriptHostPed, copyHeadBlendFlag, 0xEF29A16337FACADB, "ibbb")end, - ["CLONE_PED_ALT"]=--[[Ped (int)]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] isNetwork,--[[BOOL (bool)]] bScriptHostPed,--[[BOOL (bool)]] copyHeadBlendFlag,--[[BOOL (bool)]] p4)return native_invoker.unified_int(ped, isNetwork, bScriptHostPed, copyHeadBlendFlag, p4, 0x668FD40BCBA5DE48, "ibbbb")end, - -- Copies ped's components and props to targetPed. - ["CLONE_PED_TO_TARGET"]=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] targetPed)return native_invoker.unified_void(ped, targetPed, 0xE952D6431689AD9A, "ii")end, - ["CLONE_PED_TO_TARGET_ALT"]=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] targetPed,--[[BOOL (bool)]] p2)return native_invoker.unified_void(ped, targetPed, p2, 0x148B08C2D2ACB884, "iib")end, - -- Gets a value indicating whether the specified ped is in the specified vehicle. - -- - -- If 'atGetIn' is false, the function will not return true until the ped is sitting in the vehicle and is about to close the door. If it's true, the function returns true the moment the ped starts to get onto the seat (after opening the door). Eg. if false, and the ped is getting into a submersible, the function will not return true until the ped has descended down into the submersible and gotten into the seat, while if it's true, it'll return true the moment the hatch has been opened and the ped is about to descend into the submersible. - ["IS_PED_IN_VEHICLE"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] atGetIn)return native_invoker.unified_bool(ped, vehicle, atGetIn, 0xA3EE4A07279BB9DB, "iib")end, - ["IS_PED_IN_MODEL"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Hash (int)]] modelHash)return native_invoker.unified_bool(ped, modelHash, 0x796D90EFB19AA332, "ii")end, - -- Gets a value indicating whether the specified ped is in any vehicle. - -- - -- If 'atGetIn' is false, the function will not return true until the ped is sitting in the vehicle and is about to close the door. If it's true, the function returns true the moment the ped starts to get onto the seat (after opening the door). Eg. if false, and the ped is getting into a submersible, the function will not return true until the ped has descended down into the submersible and gotten into the seat, while if it's true, it'll return true the moment the hatch has been opened and the ped is about to descend into the submersible. - ["IS_PED_IN_ANY_VEHICLE"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] atGetIn)return native_invoker.unified_bool(ped, atGetIn, 0x997ABD671D25CA0B, "ib")end, - -- xyz - relative to the world origin. - ["IS_COP_PED_IN_AREA_3D"]=--[[BOOL (bool)]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2)return native_invoker.unified_bool(x1, y1, z1, x2, y2, z2, 0x16EC4839969F9F5E, "ffffff")end, - -- Gets a value indicating whether this ped's health is below its injured threshold. - -- - -- The default threshold is 100. - ["IS_PED_INJURED"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x84A2DD9AC37C35C1, "i")end, - -- Returns whether the specified ped is hurt. - ["IS_PED_HURT"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x5983BB449D7FDB12, "i")end, - -- Gets a value indicating whether this ped's health is below its fatally injured threshold. The default threshold is 100. - -- If the handle is invalid, the function returns true. - ["IS_PED_FATALLY_INJURED"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xD839450756ED5A80, "i")end, - -- Seems to consistently return true if the ped is dead. - -- - -- p1 is always passed 1 in the scripts. - -- - -- I suggest to remove "OR_DYING" part, because it does not detect dying phase. - -- - -- That's what the devs call it, cry about it. - -- - -- lol - ["IS_PED_DEAD_OR_DYING"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1)return native_invoker.unified_bool(ped, p1, 0x3317DEDB88C95038, "ib")end, - ["IS_CONVERSATION_PED_DEAD"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xE0A0AEC214B1FABA, "i")end, - ["IS_PED_AIMING_FROM_COVER"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x3998B1276A3300E5, "i")end, - -- Returns whether the specified ped is reloading. - ["IS_PED_RELOADING"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x24B100C68C645951, "i")end, - -- Returns true if the given ped has a valid pointer to CPlayerInfo in its CPed class. That's all. - ["IS_PED_A_PLAYER"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x12534C348C6CB68B, "i")end, - -- pedType: see CREATE_PED - -- - -- Full list of peds by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/peds.json - ["CREATE_PED_INSIDE_VEHICLE"]=--[[Ped (int)]] function(--[[Vehicle (int)]] vehicle,--[[int]] pedType,--[[Hash (int)]] modelHash,--[[int]] seat,--[[BOOL (bool)]] isNetwork,--[[BOOL (bool)]] bScriptHostPed)return native_invoker.unified_int(vehicle, pedType, modelHash, seat, isNetwork, bScriptHostPed, 0x7DD959874C1FD534, "iiiibb")end, - ["SET_PED_DESIRED_HEADING"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] heading)return native_invoker.unified_void(ped, heading, 0xAA5A7ECE2AA8FE70, "if")end, - ["FORCE_ALL_HEADING_VALUES_TO_ALIGN"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xFF287323B0E2C69A, "i")end, - -- angle is ped's view cone - ["IS_PED_FACING_PED"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Ped (int)]] otherPed,--[[float]] angle)return native_invoker.unified_bool(ped, otherPed, angle, 0xD71649DB0A545AA3, "iif")end, - -- Notes: The function only returns true while the ped is: - -- A.) Swinging a random melee attack (including pistol-whipping) - -- - -- B.) Reacting to being hit by a melee attack (including pistol-whipping) - -- - -- C.) Is locked-on to an enemy (arms up, strafing/skipping in the default fighting-stance, ready to dodge+counter). - -- - -- You don't have to be holding the melee-targetting button to be in this stance; you stay in it by default for a few seconds after swinging at someone. If you do a sprinting punch, it returns true for the duration of the punch animation and then returns false again, even if you've punched and made-angry many peds - ["IS_PED_IN_MELEE_COMBAT"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x4E209B2C1EAD5159, "i")end, - -- Returns true if the ped doesn't do any movement. If the ped is being pushed forwards by using APPLY_FORCE_TO_ENTITY for example, the function returns false. - ["IS_PED_STOPPED"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x530944F6F4B8A214, "i")end, - ["IS_PED_SHOOTING_IN_AREA"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[BOOL (bool)]] p7,--[[BOOL (bool)]] p8)return native_invoker.unified_bool(ped, x1, y1, z1, x2, y2, z2, p7, p8, 0x7E9DFE24AC1E58EF, "iffffffbb")end, - ["IS_ANY_PED_SHOOTING_IN_AREA"]=--[[BOOL (bool)]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[BOOL (bool)]] p6,--[[BOOL (bool)]] p7)return native_invoker.unified_bool(x1, y1, z1, x2, y2, z2, p6, p7, 0xA0D3D71EA1086C55, "ffffffbb")end, - -- Returns whether the specified ped is shooting. - ["IS_PED_SHOOTING"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x34616828CD07F1A1, "i")end, - -- accuracy = 0-100, 100 being perfectly accurate - ["SET_PED_ACCURACY"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] accuracy)return native_invoker.unified_void(ped, accuracy, 0x7AEFB85C1D49DEB6, "ii")end, - ["GET_PED_ACCURACY"]=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x37F4AD56ECBC0CD6, "i")end, - ["SET_AMBIENT_LAW_PED_ACCURACY_MODIFIER"]=--[[void]] function(--[[float]] multiplier)return native_invoker.unified_void(multiplier, 0x87DDEB611B329A9C, "f")end, - ["IS_PED_MODEL"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Hash (int)]] modelHash)return native_invoker.unified_bool(ped, modelHash, 0xC9D55B1A358A5BF7, "ii")end, - -- Forces the ped to fall back and kills it. - -- - -- It doesn't really explode the ped's head but it kills the ped - ["EXPLODE_PED_HEAD"]=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash)return native_invoker.unified_void(ped, weaponHash, 0x2D05CED3A38D0F3A, "ii")end, - -- Judging purely from a quick disassembly, if the ped is in a vehicle, the ped will be deleted immediately. If not, it'll be marked as no longer needed. - very elegant.. - ["REMOVE_PED_ELEGANTLY"]=--[[void]] function(--[[Ped* (pointer)]] ped)return native_invoker.unified_void(ped, 0xAC6D445B994DF95E, "p")end, - -- Same as SET_PED_ARMOUR, but ADDS 'amount' to the armor the Ped already has. - ["ADD_ARMOUR_TO_PED"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] amount)return native_invoker.unified_void(ped, amount, 0x5BA652A0CD14DF2F, "ii")end, - -- Sets the armor of the specified ped. - -- - -- ped: The Ped to set the armor of. - -- amount: A value between 0 and 100 indicating the value to set the Ped's armor to. - ["SET_PED_ARMOUR"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] amount)return native_invoker.unified_void(ped, amount, 0xCEA04D83135264CC, "ii")end, - -- Ped: The ped to warp. - -- vehicle: The vehicle to warp the ped into. - -- Seat_Index: [-1 is driver seat, -2 first free passenger seat] - -- - -- Moreinfo of Seat Index - -- DriverSeat = -1 - -- Passenger = 0 - -- Left Rear = 1 - -- RightRear = 2 - ["SET_PED_INTO_VEHICLE"]=--[[void]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] vehicle,--[[int]] seatIndex)return native_invoker.unified_void(ped, vehicle, seatIndex, 0xF75B0D629E1C063D, "iii")end, - ["SET_PED_ALLOW_VEHICLES_OVERRIDE"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x3C028C636A414ED9, "ib")end, - ["CAN_CREATE_RANDOM_PED"]=--[[BOOL (bool)]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_bool(p0, 0x3E8349C08E4B82E4, "b")end, - -- vb.net - -- Dim ped_handle As Integer - -- With Game.Player.Character - -- Dim pos As Vector3 = .Position + .ForwardVector * 3 - -- ped_handle = Native.Function.Call(Of Integer)(Hash.CREATE_RANDOM_PED, pos.X, pos.Y, pos.Z) - -- End With - -- - -- Creates a Ped at the specified location, returns the Ped Handle. - -- Ped will not act until SET_PED_AS_NO_LONGER_NEEDED is called. - ["CREATE_RANDOM_PED"]=--[[Ped (int)]] function(--[[float]] posX,--[[float]] posY,--[[float]] posZ)return native_invoker.unified_int(posX, posY, posZ, 0xB4AC7D0CF06BFE8F, "fff")end, - ["CREATE_RANDOM_PED_AS_DRIVER"]=--[[Ped (int)]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] returnHandle)return native_invoker.unified_int(vehicle, returnHandle, 0x9B62392B474F44A0, "ib")end, - ["CAN_CREATE_RANDOM_DRIVER"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xB8EB95E5B4E56978, "")end, - ["CAN_CREATE_RANDOM_BIKE_RIDER"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xEACEEDA81751915C, "")end, - ["SET_PED_MOVE_ANIMS_BLEND_OUT"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x9E8C908F41584ECD, "i")end, - ["SET_PED_CAN_BE_DRAGGED_OUT"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xC1670E958EEE24E5, "ib")end, - -- ntoggle was always false except in one instance (b678). - -- - -- The one time this is set to true seems to do with when you fail the mission. - ["SET_PED_ALLOW_HURT_COMBAT_FOR_ALL_MISSION_PEDS"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xF2BEBCDFAFDAA19E, "b")end, - -- Returns true/false if the ped is/isn't male. - ["IS_PED_MALE"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x6D9F5FAA7488BA46, "i")end, - -- Returns true/false if the ped is/isn't humanoid. - ["IS_PED_HUMAN"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xB980061DA992779D, "i")end, - -- Gets the vehicle the specified Ped is in. Returns 0 if the ped is/was not in a vehicle. - ["GET_VEHICLE_PED_IS_IN"]=--[[Vehicle (int)]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] includeEntering)return native_invoker.unified_int(ped, includeEntering, 0x9A9112A0FE9A4713, "ib")end, - -- Resets the value for the last vehicle driven by the Ped. - ["RESET_PED_LAST_VEHICLE"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xBB8DE8CF6A8DD8BB, "i")end, - ["SET_PED_DENSITY_MULTIPLIER_THIS_FRAME"]=--[[void]] function(--[[float]] multiplier)return native_invoker.unified_void(multiplier, 0x95E3D6257B166CF2, "f")end, - ["SET_SCENARIO_PED_DENSITY_MULTIPLIER_THIS_FRAME"]=--[[void]] function(--[[float]] p0,--[[float]] p1)return native_invoker.unified_void(p0, p1, 0x7A556143A1C03898, "ff")end, - ["SUPPRESS_AMBIENT_PED_AGGRESSIVE_CLEANUP_THIS_FRAME"]=--[[void]] function()return native_invoker.unified_void(0x5A7F62FDA59759BD, "")end, - ["SET_SCRIPTED_CONVERSION_COORD_THIS_FRAME"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(x, y, z, 0x5086C7843552CF85, "fff")end, - -- The distance between these points, is the diagonal of a box (remember it's 3D). - ["SET_PED_NON_CREATION_AREA"]=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, 0xEE01041D559983EA, "ffffff")end, - ["CLEAR_PED_NON_CREATION_AREA"]=--[[void]] function()return native_invoker.unified_void(0x2E05208086BA0651, "")end, - ["INSTANTLY_FILL_PED_POPULATION"]=--[[void]] function()return native_invoker.unified_void(0x4759CC730F947C81, "")end, - -- Same function call as PED::GET_MOUNT, aka just returns 0 - ["IS_PED_ON_MOUNT"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x460BC76A0E10655E, "i")end, - -- - -- Function just returns 0 - -- void __fastcall ped__get_mount(NativeContext *a1) - -- { - -- NativeContext *v1; // rbx@1 - -- - -- v1 = a1; - -- GetAddressOfPedFromScriptHandle(a1->Args->Arg1); - -- v1->Returns->Item1= 0; - -- } - ["GET_MOUNT"]=--[[Ped (int)]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0xE7E11B8DCBED1058, "i")end, - -- Gets a value indicating whether the specified ped is on top of any vehicle. - -- - -- Return 1 when ped is on vehicle. - -- Return 0 when ped is not on a vehicle. - -- - ["IS_PED_ON_VEHICLE"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x67722AEB798E5FAB, "i")end, - ["IS_PED_ON_SPECIFIC_VEHICLE"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(ped, vehicle, 0xEC5F66E459AF3BB2, "ii")end, - -- Maximum possible amount of money on MP is 2000. ~JX - -- - -- ----------------------------------------------------------------------------- - -- - -- Maximum amount that a ped can theoretically have is 65535 (0xFFFF) since the amount is stored as an unsigned short (uint16_t) value. - ["SET_PED_MONEY"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] amount)return native_invoker.unified_void(ped, amount, 0xA9C8960E8684C1B5, "ii")end, - ["GET_PED_MONEY"]=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x3F69145BBA87BAE7, "i")end, - -- Related to Peds dropping pickup_health_snack; p0 is a value between [0.0, 1.0] that corresponds to drop rate - ["SET_HEALTH_SNACKS_CARRIED_BY_ALL_NEW_PEDS"]=--[[void]] function(--[[float]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xFF4803BC019852D9, "fi")end, - ["SET_AMBIENT_PEDS_DROP_MONEY"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x6B0E6172C9A4D902, "b")end, - ["SET_BLOCKING_OF_NON_TEMPORARY_EVENTS_FOR_AMBIENT_PEDS_THIS_FRAME"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x9911F4A24485F653, "b")end, - -- Ped no longer takes critical damage modifiers if set to FALSE. - -- Example: Headshotting a player no longer one shots them. Instead they will take the same damage as a torso shot. - ["SET_PED_SUFFERS_CRITICAL_HITS"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xEBD76F2359F190AC, "ib")end, - ["SET_PED_UPPER_BODY_DAMAGE_ONLY"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xAFC976FD0580C7B3, "ib")end, - -- Detect if ped is sitting in the specified vehicle - -- [True/False] - ["IS_PED_SITTING_IN_VEHICLE"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(ped, vehicle, 0xA808AA1D79230FC2, "ii")end, - -- Detect if ped is in any vehicle - -- [True/False] - ["IS_PED_SITTING_IN_ANY_VEHICLE"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x826AA586EDB9FEF8, "i")end, - ["IS_PED_ON_FOOT"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x01FEE67DB37F59B2, "i")end, - ["IS_PED_ON_ANY_BIKE"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x94495889E22C6479, "i")end, - ["IS_PED_PLANTING_BOMB"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xC70B5FAE151982D8, "i")end, - ["GET_DEAD_PED_PICKUP_COORDS"]=--[[Vector3 (vector3)]] function(--[[Ped (int)]] ped,--[[float]] p1,--[[float]] p2)return native_invoker.unified_vector3(ped, p1, p2, 0xCD5003B097200F36, "iff")end, - ["IS_PED_IN_ANY_BOAT"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x2E0E1C2B4F6CB339, "i")end, - ["IS_PED_IN_ANY_SUB"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xFBFC01CCFB35D99E, "i")end, - ["IS_PED_IN_ANY_HELI"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x298B91AE825E5705, "i")end, - ["IS_PED_IN_ANY_PLANE"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x5FFF4CFC74D8FB80, "i")end, - ["IS_PED_IN_FLYING_VEHICLE"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x9134873537FA419C, "i")end, - ["SET_PED_DIES_IN_WATER"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x56CEF0AC79073BDE, "ib")end, - ["GET_PED_DIES_IN_WATER"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x65671A4FB8218930, "i")end, - ["SET_PED_DIES_IN_SINKING_VEHICLE"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xD718A22995E2B4BC, "ib")end, - ["GET_PED_ARMOUR"]=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x9483AF821605B1D8, "i")end, - ["SET_PED_STAY_IN_VEHICLE_WHEN_JACKED"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xEDF4079F9D54C9A1, "ib")end, - ["SET_PED_CAN_BE_SHOT_IN_VEHICLE"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xC7EF1BA83230BA07, "ib")end, - ["GET_PED_LAST_DAMAGE_BONE"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[int* (pointer)]] outBone)return native_invoker.unified_bool(ped, outBone, 0xD75960F6BD9EA49C, "ip")end, - ["CLEAR_PED_LAST_DAMAGE_BONE"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x8EF6B7AC68E2F01B, "i")end, - ["SET_AI_WEAPON_DAMAGE_MODIFIER"]=--[[void]] function(--[[float]] value)return native_invoker.unified_void(value, 0x1B1E2A40A65B8521, "f")end, - ["RESET_AI_WEAPON_DAMAGE_MODIFIER"]=--[[void]] function()return native_invoker.unified_void(0xEA16670E7BA4743C, "")end, - ["SET_AI_MELEE_WEAPON_DAMAGE_MODIFIER"]=--[[void]] function(--[[float]] modifier)return native_invoker.unified_void(modifier, 0x66460DEDDD417254, "f")end, - ["RESET_AI_MELEE_WEAPON_DAMAGE_MODIFIER"]=--[[void]] function()return native_invoker.unified_void(0x46E56A7CD1D63C3F, "")end, - ["SET_TREAT_AS_AMBIENT_PED_FOR_DRIVER_LOCKON"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1)return native_invoker.unified_void(ped, p1, 0x2F3C3D9F50681DE4, "ib")end, - ["SET_PED_CAN_BE_TARGETTED"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x63F58F7C80513AAD, "ib")end, - ["SET_PED_CAN_BE_TARGETTED_BY_TEAM"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] team,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, team, toggle, 0xBF1CA77833E58F2C, "iib")end, - ["SET_PED_CAN_BE_TARGETTED_BY_PLAYER"]=--[[void]] function(--[[Ped (int)]] ped,--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, player, toggle, 0x66B57B72E0836A76, "iib")end, - ["SET_ALLOW_LOCKON_TO_PED_IF_FRIENDLY"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x061CB768363D6424, "ib")end, - ["SET_USE_CAMERA_HEADING_FOR_DESIRED_DIRECTION_LOCK_ON_TEST"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xFD325494792302D7, "ib")end, - ["IS_PED_IN_ANY_POLICE_VEHICLE"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x0BD04E29640C9C12, "i")end, - ["FORCE_PED_TO_OPEN_PARACHUTE"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x16E42E800B472221, "i")end, - ["IS_PED_IN_PARACHUTE_FREE_FALL"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x7DCE8BDA0F1C1200, "i")end, - ["IS_PED_FALLING"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xFB92A102F1C4DFA3, "i")end, - ["IS_PED_JUMPING"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xCEDABC5900A0BF97, "i")end, - ["IS_PED_LANDING"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x412F1364FA066CFB, "i")end, - ["IS_PED_DOING_A_BEAST_JUMP"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x451D05012CCEC234, "i")end, - ["IS_PED_CLIMBING"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x53E8CB4F48BFE623, "i")end, - ["IS_PED_VAULTING"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x117C70D1F5730B5E, "i")end, - ["IS_PED_DIVING"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x5527B8246FEF9B11, "i")end, - ["IS_PED_JUMPING_OUT_OF_VEHICLE"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x433DDFFE2044B636, "i")end, - -- Returns true if the ped is currently opening a door (CTaskOpenDoor). - ["IS_PED_OPENING_DOOR"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x26AF0E8E30BD2A2C, "i")end, - -- Returns: - -- - -- -1: Normal - -- 0: Wearing parachute on back - -- 1: Parachute opening - -- 2: Parachute open - -- 3: Falling to doom (e.g. after exiting parachute) - -- - -- Normal means no parachute? - ["GET_PED_PARACHUTE_STATE"]=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x79CFD9827CC979B6, "i")end, - -- -1: no landing - -- 0: landing on both feet - -- 1: stumbling - -- 2: rolling - -- 3: ragdoll - ["GET_PED_PARACHUTE_LANDING_TYPE"]=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x8B9F1FC6AE8166C0, "i")end, - ["SET_PED_PARACHUTE_TINT_INDEX"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] tintIndex)return native_invoker.unified_void(ped, tintIndex, 0x333FC8DB079B7186, "ii")end, - ["GET_PED_PARACHUTE_TINT_INDEX"]=--[[void]] function(--[[Ped (int)]] ped,--[[int* (pointer)]] outTintIndex)return native_invoker.unified_void(ped, outTintIndex, 0xEAF5F7E5AE7C6C9D, "ip")end, - ["SET_PED_RESERVE_PARACHUTE_TINT_INDEX"]=--[[void]] function(--[[Ped (int)]] ped,--[[Any (int)]] p1)return native_invoker.unified_void(ped, p1, 0xE88DA0751C22A2AD, "ii")end, - ["CREATE_PARACHUTE_BAG_OBJECT"]=--[[Object (int)]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_int(ped, p1, p2, 0x8C4F3BF23B6237DB, "ibb")end, - -- This is the SET_CHAR_DUCKING from GTA IV, that makes Peds duck. This function does nothing in GTA V. It cannot set the ped as ducking in vehicles, and IS_PED_DUCKING will always return false. - ["SET_PED_DUCKING"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x030983CA930B692D, "ib")end, - ["IS_PED_DUCKING"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xD125AE748725C6BC, "i")end, - ["IS_PED_IN_ANY_TAXI"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x6E575D6A898AB852, "i")end, - ["SET_PED_ID_RANGE"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] value)return native_invoker.unified_void(ped, value, 0xF107E836A70DCE05, "if")end, - ["SET_PED_HIGHLY_PERCEPTIVE"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x52D59AB61DDC05DD, "ib")end, - ["SET_COP_PERCEPTION_OVERRIDES"]=--[[void]] function(--[[float]] seeingRange,--[[float]] seeingRangePeripheral,--[[float]] hearingRange,--[[float]] visualFieldMinAzimuthAngle,--[[float]] visualFieldMaxAzimuthAngle,--[[float]] fieldOfGazeMaxAngle,--[[float]] p6)return native_invoker.unified_void(seeingRange, seeingRangePeripheral, hearingRange, visualFieldMinAzimuthAngle, visualFieldMaxAzimuthAngle, fieldOfGazeMaxAngle, p6, 0x2F074C904D85129E, "fffffff")end, - ["SET_PED_INJURED_ON_GROUND_BEHAVIOUR"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] p1)return native_invoker.unified_void(ped, p1, 0xEC4B4B3B9908052A, "if")end, - ["DISABLE_PED_INJURED_ON_GROUND_BEHAVIOUR"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x733C87D4CE22BEA2, "i")end, - ["SET_PED_SEEING_RANGE"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] value)return native_invoker.unified_void(ped, value, 0xF29CF591C4BF6CEE, "if")end, - ["SET_PED_HEARING_RANGE"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] value)return native_invoker.unified_void(ped, value, 0x33A8F7F7D5F7F33C, "if")end, - ["SET_PED_VISUAL_FIELD_MIN_ANGLE"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] value)return native_invoker.unified_void(ped, value, 0x2DB492222FB21E26, "if")end, - ["SET_PED_VISUAL_FIELD_MAX_ANGLE"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] value)return native_invoker.unified_void(ped, value, 0x70793BDCA1E854D4, "if")end, - -- This native refers to the field of vision the ped has below them, starting at 0 degrees. The angle value should be negative. - -- -90f should let the ped see 90 degrees below them, for example. - ["SET_PED_VISUAL_FIELD_MIN_ELEVATION_ANGLE"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] angle)return native_invoker.unified_void(ped, angle, 0x7A276EB2C224D70F, "if")end, - -- This native refers to the field of vision the ped has above them, starting at 0 degrees. 90f would let the ped see enemies directly above of them. - ["SET_PED_VISUAL_FIELD_MAX_ELEVATION_ANGLE"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] angle)return native_invoker.unified_void(ped, angle, 0x78D0B67629D75856, "if")end, - ["SET_PED_VISUAL_FIELD_PERIPHERAL_RANGE"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] range)return native_invoker.unified_void(ped, range, 0x9C74B0BC831B753A, "if")end, - ["SET_PED_VISUAL_FIELD_CENTER_ANGLE"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] angle)return native_invoker.unified_void(ped, angle, 0x3B6405E8AB34A907, "if")end, - ["GET_PED_VISUAL_FIELD_CENTER_ANGLE"]=--[[float]] function(--[[Ped (int)]] ped)return native_invoker.unified_float(ped, 0xEF2C71A32CAD5FBD, "i")end, - -- p1 is usually 0 in the scripts. action is either 0 or a pointer to "DEFAULT_ACTION". - ["SET_PED_STEALTH_MOVEMENT"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1,--[[string]] action)return native_invoker.unified_void(ped, p1, action, 0x88CBB5CEB96B7BD2, "ibs")end, - -- Returns whether the entity is in stealth mode - ["GET_PED_STEALTH_MOVEMENT"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x7C2AC9CA66575FBF, "i")end, - -- Creates a new ped group. - -- Groups can contain up to 8 peds. - -- - -- The parameter is unused. - -- - -- Returns a handle to the created group, or 0 if a group couldn't be created. - ["CREATE_GROUP"]=--[[int]] function(--[[int]] unused)return native_invoker.unified_int(unused, 0x90370EBE0FEE1A3D, "i")end, - ["SET_PED_AS_GROUP_LEADER"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] groupId)return native_invoker.unified_void(ped, groupId, 0x2A7819605465FBCE, "ii")end, - ["SET_PED_AS_GROUP_MEMBER"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] groupId)return native_invoker.unified_void(ped, groupId, 0x9F3480FE65DB31B5, "ii")end, - -- This only will teleport the ped to the group leader if the group leader teleports (sets coords). - -- - -- Only works in singleplayer - ["SET_PED_CAN_TELEPORT_TO_GROUP_LEADER"]=--[[void]] function(--[[Ped (int)]] pedHandle,--[[int]] groupHandle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(pedHandle, groupHandle, toggle, 0x2E2F4240B3F24647, "iib")end, - ["REMOVE_GROUP"]=--[[void]] function(--[[int]] groupId)return native_invoker.unified_void(groupId, 0x8EB2F69076AF7053, "i")end, - ["REMOVE_PED_FROM_GROUP"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xED74007FFB146BC2, "i")end, - ["IS_PED_GROUP_MEMBER"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[int]] groupId)return native_invoker.unified_bool(ped, groupId, 0x9BB01E3834671191, "ii")end, - ["IS_PED_HANGING_ON_TO_VEHICLE"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x1C86D8AEF8254B78, "i")end, - -- Sets the range at which members will automatically leave the group. - ["SET_GROUP_SEPARATION_RANGE"]=--[[void]] function(--[[int]] groupHandle,--[[float]] separationRange)return native_invoker.unified_void(groupHandle, separationRange, 0x4102C7858CFEE4E4, "if")end, - -- Ped will stay on the ground after being stunned for at lest ms time. (in milliseconds) - ["SET_PED_MIN_GROUND_TIME_FOR_STUNGUN"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] ms)return native_invoker.unified_void(ped, ms, 0xFA0675AB151073FA, "ii")end, - ["IS_PED_PRONE"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xD6A86331A537A7B9, "i")end, - -- Checks to see if ped and target are in combat with eachother. Only goes one-way: if target is engaged in combat with ped but ped has not yet reacted, the function will return false until ped starts fighting back. - -- - -- p1 is usually 0 in the scripts because it gets the ped id during the task sequence. For instance: PED::IS_PED_IN_COMBAT(l_42E[4/*14*/], PLAYER::PLAYER_PED_ID()) // armenian2.ct4: 43794 - ["IS_PED_IN_COMBAT"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Ped (int)]] target)return native_invoker.unified_bool(ped, target, 0x4859F1FC66A6278E, "ii")end, - ["GET_PED_TARGET_FROM_COMBAT_PED"]=--[[Entity (int)]] function(--[[Ped (int)]] ped,--[[Any (int)]] p1)return native_invoker.unified_int(ped, p1, 0x32C27A11307B01CC, "ii")end, - ["CAN_PED_IN_COMBAT_SEE_TARGET"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Ped (int)]] target)return native_invoker.unified_bool(ped, target, 0xEAD42DE3610D0721, "ii")end, - ["IS_PED_DOING_DRIVEBY"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xB2C086CC1BF8F2BF, "i")end, - ["IS_PED_JACKING"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x4AE4FF911DFB61DA, "i")end, - ["IS_PED_BEING_JACKED"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x9A497FE2DF198913, "i")end, - -- p1 is always 0 - ["IS_PED_BEING_STUNNED"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[int]] p1)return native_invoker.unified_bool(ped, p1, 0x4FBACCE3B4138EE8, "ii")end, - ["GET_PEDS_JACKER"]=--[[Ped (int)]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x9B128DC36C1E04CF, "i")end, - ["GET_JACK_TARGET"]=--[[Ped (int)]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x5486A79D9FBD342D, "i")end, - ["IS_PED_FLEEING"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xBBCCE00B381F8482, "i")end, - -- p1 is nearly always 0 in the scripts. - ["IS_PED_IN_COVER"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] exceptUseWeapon)return native_invoker.unified_bool(ped, exceptUseWeapon, 0x60DFD0691A170B88, "ib")end, - ["IS_PED_IN_COVER_FACING_LEFT"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x845333B3150583AB, "i")end, - ["IS_PED_IN_HIGH_COVER"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x6A03BF943D767C93, "i")end, - ["IS_PED_GOING_INTO_COVER"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x9F65DBC537E59AD5, "i")end, - -- i could be time. Only example in the decompiled scripts uses it as -1. - ["SET_PED_PINNED_DOWN"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] pinned,--[[int]] i)return native_invoker.unified_bool(ped, pinned, i, 0xAAD6D1ACF08F4612, "ibi")end, - ["_HAS_PED_CLEAR_LOS_TO_ENTITY"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Entity (int)]] entity,--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] p5,--[[BOOL (bool)]] p6,--[[BOOL (bool)]] p7)return native_invoker.unified_bool(ped, entity, x, y, z, p5, p6, p7, 0xA32ABFEB2A03B306, "iifffibb")end, - ["GET_SEAT_PED_IS_TRYING_TO_ENTER"]=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x6F4C85ACD641BCD2, "i")end, - ["GET_VEHICLE_PED_IS_TRYING_TO_ENTER"]=--[[Vehicle (int)]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x814FA8BE5449445D, "i")end, - -- Returns the Entity (Ped, Vehicle, or ?Object?) that killed the 'ped' - -- - -- Is best to check if the Ped is dead before asking for its killer. - ["GET_PED_SOURCE_OF_DEATH"]=--[[Entity (int)]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x93C8B64DEB84728C, "i")end, - -- Returns the hash of the weapon/model/object that killed the ped. - ["GET_PED_CAUSE_OF_DEATH"]=--[[Hash (int)]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x16FFE42AB2D2DC59, "i")end, - ["GET_PED_TIME_OF_DEATH"]=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x1E98817B311AE98A, "i")end, - ["COUNT_PEDS_IN_COMBAT_WITH_TARGET"]=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x5407B7288D0478B7, "i")end, - ["COUNT_PEDS_IN_COMBAT_WITH_TARGET_WITHIN_RADIUS"]=--[[int]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius)return native_invoker.unified_int(ped, x, y, z, radius, 0x336B3D200AB007CB, "iffff")end, - ["SET_PED_RELATIONSHIP_GROUP_DEFAULT_HASH"]=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] hash)return native_invoker.unified_void(ped, hash, 0xADB3F206518799E8, "ii")end, - ["SET_PED_RELATIONSHIP_GROUP_HASH"]=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] hash)return native_invoker.unified_void(ped, hash, 0xC80A74AC829DDD92, "ii")end, - -- Sets the relationship between two groups. This should be called twice (once for each group). - -- - -- Relationship types: - -- 0 = Companion - -- 1 = Respect - -- 2 = Like - -- 3 = Neutral - -- 4 = Dislike - -- 5 = Hate - -- 255 = Pedestrians - -- - -- Example: - -- PED::SET_RELATIONSHIP_BETWEEN_GROUPS(2, l_1017, 0xA49E591C); - -- PED::SET_RELATIONSHIP_BETWEEN_GROUPS(2, 0xA49E591C, l_1017); - ["SET_RELATIONSHIP_BETWEEN_GROUPS"]=--[[void]] function(--[[int]] relationship,--[[Hash (int)]] group1,--[[Hash (int)]] group2)return native_invoker.unified_void(relationship, group1, group2, 0xBF25EB89375A37AD, "iii")end, - -- Clears the relationship between two groups. This should be called twice (once for each group). - -- - -- Relationship types: - -- 0 = Companion - -- 1 = Respect - -- 2 = Like - -- 3 = Neutral - -- 4 = Dislike - -- 5 = Hate - -- 255 = Pedestrians - -- (Credits: Inco) - -- - -- Example: - -- PED::CLEAR_RELATIONSHIP_BETWEEN_GROUPS(2, l_1017, 0xA49E591C); - -- PED::CLEAR_RELATIONSHIP_BETWEEN_GROUPS(2, 0xA49E591C, l_1017); - ["CLEAR_RELATIONSHIP_BETWEEN_GROUPS"]=--[[void]] function(--[[int]] relationship,--[[Hash (int)]] group1,--[[Hash (int)]] group2)return native_invoker.unified_void(relationship, group1, group2, 0x5E29243FB56FC6D4, "iii")end, - -- Can't select void. This function returns nothing. The hash of the created relationship group is output in the second parameter. - ["ADD_RELATIONSHIP_GROUP"]=--[[BOOL (bool)]] function(--[[string]] name,--[[Hash* (pointer)]] groupHash)return native_invoker.unified_bool(name, groupHash, 0xF372BC22FCB88606, "sp")end, - ["REMOVE_RELATIONSHIP_GROUP"]=--[[void]] function(--[[Hash (int)]] groupHash)return native_invoker.unified_void(groupHash, 0xB6BA2444AB393DA2, "i")end, - ["DOES_RELATIONSHIP_GROUP_EXIST"]=--[[BOOL (bool)]] function(--[[Hash (int)]] groupHash)return native_invoker.unified_bool(groupHash, 0xCC6E3B6BB69501F1, "i")end, - -- Gets the relationship between two peds. This should be called twice (once for each ped). - -- - -- Relationship types: - -- 0 = Companion - -- 1 = Respect - -- 2 = Like - -- 3 = Neutral - -- 4 = Dislike - -- 5 = Hate - -- 255 = Pedestrians - -- (Credits: Inco) - -- - -- Example: - -- PED::GET_RELATIONSHIP_BETWEEN_PEDS(2, l_1017, 0xA49E591C); - -- PED::GET_RELATIONSHIP_BETWEEN_PEDS(2, 0xA49E591C, l_1017); - ["GET_RELATIONSHIP_BETWEEN_PEDS"]=--[[int]] function(--[[Ped (int)]] ped1,--[[Ped (int)]] ped2)return native_invoker.unified_int(ped1, ped2, 0xEBA5AD3A0EAF7121, "ii")end, - ["GET_PED_RELATIONSHIP_GROUP_DEFAULT_HASH"]=--[[Hash (int)]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x42FDD0F017B1E38E, "i")end, - ["GET_PED_RELATIONSHIP_GROUP_HASH"]=--[[Hash (int)]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x7DBDD04862D95F04, "i")end, - -- Gets the relationship between two groups. This should be called twice (once for each group). - -- - -- Relationship types: - -- 0 = Companion - -- 1 = Respect - -- 2 = Like - -- 3 = Neutral - -- 4 = Dislike - -- 5 = Hate - -- 255 = Pedestrians - -- - -- Example: - -- PED::GET_RELATIONSHIP_BETWEEN_GROUPS(l_1017, 0xA49E591C); - -- PED::GET_RELATIONSHIP_BETWEEN_GROUPS(0xA49E591C, l_1017); - ["GET_RELATIONSHIP_BETWEEN_GROUPS"]=--[[int]] function(--[[Hash (int)]] group1,--[[Hash (int)]] group2)return native_invoker.unified_int(group1, group2, 0x9E6B70061662AE5C, "ii")end, - ["SET_RELATIONSHIP_GROUP_AFFECTS_WANTED_LEVEL"]=--[[void]] function(--[[Hash (int)]] group,--[[BOOL (bool)]] p1)return native_invoker.unified_void(group, p1, 0x5615E0C5EB2BC6E2, "ib")end, - ["TELL_GROUP_PEDS_IN_AREA_TO_ATTACK"]=--[[void]] function(--[[Ped (int)]] ped,--[[Any (int)]] p1,--[[float]] p2,--[[Hash (int)]] hash,--[[Any (int)]] p4,--[[Any (int)]] p5)return native_invoker.unified_void(ped, p1, p2, hash, p4, p5, 0xAD27D957598E49E9, "iifiii")end, - ["SET_PED_CAN_BE_TARGETED_WITHOUT_LOS"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x4328652AE5769C71, "ib")end, - ["SET_PED_TO_INFORM_RESPECTED_FRIENDS"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] radius,--[[int]] maxFriends)return native_invoker.unified_void(ped, radius, maxFriends, 0x112942C6E708F70B, "ifi")end, - ["IS_PED_RESPONDING_TO_EVENT"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Any (int)]] event)return native_invoker.unified_bool(ped, event, 0x625B774D75C87068, "ii")end, - ["GET_POS_FROM_FIRED_EVENT"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[int]] eventType,--[[Any* (pointer)]] outData)return native_invoker.unified_bool(ped, eventType, outData, 0xBA656A3BB01BDEA3, "iip")end, - -- FIRING_PATTERN_BURST_FIRE = 0xD6FF6D61 ( 1073727030 ) - -- FIRING_PATTERN_BURST_FIRE_IN_COVER = 0x026321F1 ( 40051185 ) - -- FIRING_PATTERN_BURST_FIRE_DRIVEBY = 0xD31265F2 ( -753768974 ) - -- FIRING_PATTERN_FROM_GROUND = 0x2264E5D6 ( 577037782 ) - -- FIRING_PATTERN_DELAY_FIRE_BY_ONE_SEC = 0x7A845691 ( 2055493265 ) - -- FIRING_PATTERN_FULL_AUTO = 0xC6EE6B4C ( -957453492 ) - -- FIRING_PATTERN_SINGLE_SHOT = 0x5D60E4E0 ( 1566631136 ) - -- FIRING_PATTERN_BURST_FIRE_PISTOL = 0xA018DB8A ( -1608983670 ) - -- FIRING_PATTERN_BURST_FIRE_SMG = 0xD10DADEE ( 1863348768 ) - -- FIRING_PATTERN_BURST_FIRE_RIFLE = 0x9C74B406 ( -1670073338 ) - -- FIRING_PATTERN_BURST_FIRE_MG = 0xB573C5B4 ( -1250703948 ) - -- FIRING_PATTERN_BURST_FIRE_PUMPSHOTGUN = 0x00BAC39B ( 12239771 ) - -- FIRING_PATTERN_BURST_FIRE_HELI = 0x914E786F ( -1857128337 ) - -- FIRING_PATTERN_BURST_FIRE_MICRO = 0x42EF03FD ( 1122960381 ) - -- FIRING_PATTERN_SHORT_BURSTS = 0x1A92D7DF ( 445831135 ) - -- FIRING_PATTERN_SLOW_FIRE_TANK = 0xE2CA3A71 ( -490063247 ) - -- - -- Firing pattern info: https://pastebin.com/Px036isB - ["SET_PED_FIRING_PATTERN"]=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] patternHash)return native_invoker.unified_void(ped, patternHash, 0x9AC577F5A12AD8A9, "ii")end, - -- shootRate 0-1000 - ["SET_PED_SHOOT_RATE"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] shootRate)return native_invoker.unified_void(ped, shootRate, 0x614DA022990752DC, "ii")end, - -- combatType can be between 0-14. See GET_COMBAT_FLOAT below for a list of possible parameters. - ["SET_COMBAT_FLOAT"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] combatType,--[[float]] p2)return native_invoker.unified_void(ped, combatType, p2, 0xFF41B4B141ED981C, "iif")end, - -- p0: Ped Handle - -- p1: int i | 0 <= i <= 27 - -- - -- p1 probably refers to the attributes configured in combatbehavior.meta. There are 13. Example: - -- - -- - -- - -- - -- - -- - -- - -- - -- - -- - -- - -- - -- - -- - -- - -- -------------Confirmed by editing combatbehavior.meta: - -- p1: - -- 0=BlindFireChance - -- 1=BurstDurationInCover - -- 3=TimeBetweenBurstsInCover - -- 4=TimeBetweenPeeks - -- 5=StrafeWhenMovingChance - -- 8=WalkWhenStrafingChance - -- 11=AttackWindowDistanceForCover - -- 12=TimeToInvalidateInjuredTarget - -- 16=OptimalCoverDistance - -- - ["GET_COMBAT_FLOAT"]=--[[float]] function(--[[Ped (int)]] ped,--[[int]] p1)return native_invoker.unified_float(ped, p1, 0x52DFF8A10508090A, "ii")end, - -- p1 may be a BOOL representing whether or not the group even exists - ["GET_GROUP_SIZE"]=--[[void]] function(--[[int]] groupID,--[[Any* (pointer)]] p1,--[[int* (pointer)]] sizeInMembers)return native_invoker.unified_void(groupID, p1, sizeInMembers, 0x8DE69FE35CA09A45, "ipp")end, - ["DOES_GROUP_EXIST"]=--[[BOOL (bool)]] function(--[[int]] groupId)return native_invoker.unified_bool(groupId, 0x7C6B0C22F9F40BBE, "i")end, - -- Returns the group id of which the specified ped is a member of. - ["GET_PED_GROUP_INDEX"]=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0xF162E133B4E7A675, "i")end, - ["IS_PED_IN_GROUP"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x5891CAC5D4ACFF74, "i")end, - ["GET_PLAYER_PED_IS_FOLLOWING"]=--[[Player (int)]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x6A3975DEA89F9A17, "i")end, - -- 0: Default - -- 1: Circle Around Leader - -- 2: Alternative Circle Around Leader - -- 3: Line, with Leader at center - ["SET_GROUP_FORMATION"]=--[[void]] function(--[[int]] groupId,--[[int]] formationType)return native_invoker.unified_void(groupId, formationType, 0xCE2F5FC3AF7E8C1E, "ii")end, - ["SET_GROUP_FORMATION_SPACING"]=--[[void]] function(--[[int]] groupId,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(groupId, x, y, z, 0x1D9D45004C28C916, "ifff")end, - ["RESET_GROUP_FORMATION_DEFAULT_SPACING"]=--[[void]] function(--[[int]] groupHandle)return native_invoker.unified_void(groupHandle, 0x63DAB4CCB3273205, "i")end, - -- Gets ID of vehicle player using. It means it can get ID at any interaction with vehicle. Enter\exit for example. And that means it is faster than GET_VEHICLE_PED_IS_IN but less safe. - ["GET_VEHICLE_PED_IS_USING"]=--[[Vehicle (int)]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x6094AD011A2EA87D, "i")end, - ["GET_VEHICLE_PED_IS_ENTERING"]=--[[Vehicle (int)]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0xF92691AED837A5FC, "i")end, - -- enable or disable the gravity of a ped - -- - -- Examples: - -- PED::SET_PED_GRAVITY(PLAYER::PLAYER_PED_ID(), 0x00000001); - -- PED::SET_PED_GRAVITY(Local_289[iVar0 /*20*/], 0x00000001); - ["SET_PED_GRAVITY"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x9FF447B6B6AD960A, "ib")end, - -- damages a ped with the given amount - ["APPLY_DAMAGE_TO_PED"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] damageAmount,--[[BOOL (bool)]] p2,--[[Any (int)]] p3,--[[Hash (int)]] weaponType)return native_invoker.unified_void(ped, damageAmount, p2, p3, weaponType, 0x697157CED63F18D4, "iibii")end, - ["GET_TIME_PED_DAMAGED_BY_WEAPON"]=--[[int]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash)return native_invoker.unified_int(ped, weaponHash, 0x36B77BB84687C318, "ii")end, - ["SET_PED_ALLOWED_TO_DUCK"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xDA1F1B7BE1A8766F, "ib")end, - ["SET_PED_NEVER_LEAVES_GROUP"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x3DBFC55D5C9BB447, "ib")end, - -- https://alloc8or.re/gta5/doc/enums/ePedType.txt - ["GET_PED_TYPE"]=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0xFF059E1E4C01E63C, "i")end, - -- Turns the desired ped into a cop. If you use this on the player ped, you will become almost invisible to cops dispatched for you. You will also report your own crimes, get a generic cop voice, get a cop-vision-cone on the radar, and you will be unable to shoot at other cops. SWAT and Army will still shoot at you. Toggling ped as "false" has no effect; you must change p0's ped model to disable the effect. - ["SET_PED_AS_COP"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xBB03C38DD3FB7FFD, "ib")end, - ["SET_PED_HEALTH_PENDING_LAST_DAMAGE_EVENT_OVERRIDE_FLAG"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xB3352E018D6F89DF, "b")end, - -- Sets the maximum health of a ped. - ["SET_PED_MAX_HEALTH"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] value)return native_invoker.unified_void(ped, value, 0xF5F6378C4F3419D3, "ii")end, - ["GET_PED_MAX_HEALTH"]=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x4700A416E8324EF3, "i")end, - ["SET_PED_MAX_TIME_IN_WATER"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] value)return native_invoker.unified_void(ped, value, 0x43C851690662113D, "if")end, - ["SET_PED_MAX_TIME_UNDERWATER"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] value)return native_invoker.unified_void(ped, value, 0x6BA428C528D9E522, "if")end, - ["SET_CORPSE_RAGDOLL_FRICTION"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] p1)return native_invoker.unified_void(ped, p1, 0x2735233A786B1BEF, "if")end, - -- seatIndex must be <= 2 - ["SET_PED_VEHICLE_FORCED_SEAT_USAGE"]=--[[void]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] vehicle,--[[int]] seatIndex,--[[int]] flags,--[[Any (int)]] p4)return native_invoker.unified_void(ped, vehicle, seatIndex, flags, p4, 0x952F06BEECD775CC, "iiiii")end, - ["CLEAR_ALL_PED_VEHICLE_FORCED_SEAT_USAGE"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xE6CA85E7259CE16B, "i")end, - -- This native does absolutely nothing, just a nullsub - ["SET_PED_CAN_BE_KNOCKED_OFF_BIKE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xB282749D5E028163, "ii")end, - -- state: https://alloc8or.re/gta5/doc/enums/eKnockOffVehicle.txt - ["SET_PED_CAN_BE_KNOCKED_OFF_VEHICLE"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] state)return native_invoker.unified_void(ped, state, 0x7A6535691B477C48, "ii")end, - ["CAN_KNOCK_PED_OFF_VEHICLE"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x51AC07A44D4F5B8A, "i")end, - ["KNOCK_PED_OFF_VEHICLE"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x45BBCBA77C29A841, "i")end, - ["SET_PED_COORDS_NO_GANG"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] posX,--[[float]] posY,--[[float]] posZ)return native_invoker.unified_void(ped, posX, posY, posZ, 0x87052FE446E07247, "ifff")end, - -- from fm_mission_controller.c4 (variable names changed for clarity): - -- - -- int groupID = PLAYER::GET_PLAYER_GROUP(PLAYER::PLAYER_ID()); - -- PED::GET_GROUP_SIZE(group, &unused, &groupSize); - -- if (groupSize >= 1) { - -- . . . . for (int memberNumber = 0; memberNumber < groupSize; memberNumber++) { - -- . . . . . . . . Ped ped1 = PED::GET_PED_AS_GROUP_MEMBER(groupID, memberNumber); - -- . . . . . . . . //and so on - ["GET_PED_AS_GROUP_MEMBER"]=--[[Ped (int)]] function(--[[int]] groupID,--[[int]] memberNumber)return native_invoker.unified_int(groupID, memberNumber, 0x51455483CF23ED97, "ii")end, - ["GET_PED_AS_GROUP_LEADER"]=--[[Ped (int)]] function(--[[int]] groupID)return native_invoker.unified_int(groupID, 0x5CCE68DBD5FE93EC, "i")end, - ["SET_PED_KEEP_TASK"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x971D38760FBC02EF, "ib")end, - ["SET_PED_ALLOW_MINOR_REACTIONS_AS_MISSION_PED"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x49E50BDB8BA4DAB2, "ib")end, - ["IS_PED_SWIMMING"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x9DE327631295B4C2, "i")end, - ["IS_PED_SWIMMING_UNDER_WATER"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xC024869A53992F34, "i")end, - -- teleports ped to coords along with the vehicle ped is in - ["SET_PED_COORDS_KEEP_VEHICLE"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] posX,--[[float]] posY,--[[float]] posZ)return native_invoker.unified_void(ped, posX, posY, posZ, 0x9AFEFF481A85AB2E, "ifff")end, - ["SET_PED_DIES_IN_VEHICLE"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x2A30922C90C9B42C, "ib")end, - ["SET_CREATE_RANDOM_COPS"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x102E68B2024D536D, "b")end, - ["SET_CREATE_RANDOM_COPS_NOT_ON_SCENARIOS"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x8A4986851C4EF6E7, "b")end, - ["SET_CREATE_RANDOM_COPS_ON_SCENARIOS"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x444CB7D7DBE6973D, "b")end, - ["CAN_CREATE_RANDOM_COPS"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x5EE2CAFF7F17770D, "")end, - ["SET_PED_AS_ENEMY"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x02A0C9720B854BFA, "ib")end, - ["SET_PED_CAN_SMASH_GLASS"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(ped, p1, p2, 0x1CCE141467FF42A2, "ibb")end, - ["IS_PED_IN_ANY_TRAIN"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x6F972C1AB75A1ED0, "i")end, - ["IS_PED_GETTING_INTO_A_VEHICLE"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xBB062B2B5722478E, "i")end, - ["IS_PED_TRYING_TO_ENTER_A_LOCKED_VEHICLE"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x44D28D5DDFE5F68C, "i")end, - -- ped can not pull out a weapon when true - ["SET_ENABLE_HANDCUFFS"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xDF1AF8B5D56542FA, "ib")end, - -- Used with SET_ENABLE_HANDCUFFS in decompiled scripts. From my observations, I have noticed that while being ragdolled you are not able to get up but you can still run. Your legs can also bend. - ["SET_ENABLE_BOUND_ANKLES"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xC52E0F855C58FC2E, "ib")end, - -- Enables diving motion when underwater. - ["SET_ENABLE_SCUBA"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xF99F62004024D506, "ib")end, - -- Setting ped to true allows the ped to shoot "friendlies". - -- - -- p2 set to true when toggle is also true seams to make peds permanently unable to aim at, even if you set p2 back to false. - -- - -- p1 = false & p2 = false for unable to aim at. - -- p1 = true & p2 = false for able to aim at. - ["SET_CAN_ATTACK_FRIENDLY"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle,--[[BOOL (bool)]] p2)return native_invoker.unified_void(ped, toggle, p2, 0xB3B1CB349FF9C75D, "ibb")end, - -- Returns the ped's alertness (0-3). - -- - -- Values : - -- - -- 0 : Neutral - -- 1 : Heard something (gun shot, hit, etc) - -- 2 : Knows (the origin of the event) - -- 3 : Fully alerted (is facing the event?) - -- - -- If the Ped does not exist, returns -1. - ["GET_PED_ALERTNESS"]=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0xF6AA118530443FD2, "i")end, - -- value ranges from 0 to 3. - ["SET_PED_ALERTNESS"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] value)return native_invoker.unified_void(ped, value, 0xDBA71115ED9941A6, "ii")end, - ["SET_PED_GET_OUT_UPSIDE_DOWN_VEHICLE"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xBC0ED94165A48BC2, "ib")end, - -- transitionSpeed is the time in seconds it takes to transition from one movement clipset to another. ransitionSpeed is usually 1.0f - -- - -- List of movement clipsets: - -- Thanks to elsewhat for list. - -- - -- "ANIM_GROUP_MOVE_BALLISTIC" - -- "ANIM_GROUP_MOVE_LEMAR_ALLEY" - -- "clipset@move@trash_fast_turn" - -- "FEMALE_FAST_RUNNER" - -- "missfbi4prepp1_garbageman" - -- "move_characters@franklin@fire" - -- "move_characters@Jimmy@slow@" - -- "move_characters@michael@fire" - -- "move_f@flee@a" - -- "move_f@scared" - -- "move_f@sexy@a" - -- "move_heist_lester" - -- "move_injured_generic" - -- "move_lester_CaneUp" - -- "move_m@bag" - -- "MOVE_M@BAIL_BOND_NOT_TAZERED" - -- "MOVE_M@BAIL_BOND_TAZERED" - -- "move_m@brave" - -- "move_m@casual@d" - -- "move_m@drunk@moderatedrunk" - -- "MOVE_M@DRUNK@MODERATEDRUNK" - -- "MOVE_M@DRUNK@MODERATEDRUNK_HEAD_UP" - -- "MOVE_M@DRUNK@SLIGHTLYDRUNK" - -- "MOVE_M@DRUNK@VERYDRUNK" - -- "move_m@fire" - -- "move_m@gangster@var_e" - -- "move_m@gangster@var_f" - -- "move_m@gangster@var_i" - -- "move_m@JOG@" - -- "MOVE_M@PRISON_GAURD" - -- "MOVE_P_M_ONE" - -- "MOVE_P_M_ONE_BRIEFCASE" - -- "move_p_m_zero_janitor" - -- "move_p_m_zero_slow" - -- "move_ped_bucket" - -- "move_ped_crouched" - -- "move_ped_mop" - -- "MOVE_M@FEMME@" - -- "MOVE_F@FEMME@" - -- "MOVE_M@GANGSTER@NG" - -- "MOVE_F@GANGSTER@NG" - -- "MOVE_M@POSH@" - -- "MOVE_F@POSH@" - -- "MOVE_M@TOUGH_GUY@" - -- "MOVE_F@TOUGH_GUY@" - -- - -- ~ NotCrunchyTaco - -- - -- Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json - ["SET_PED_MOVEMENT_CLIPSET"]=--[[void]] function(--[[Ped (int)]] ped,--[[string]] clipSet,--[[float]] transitionSpeed)return native_invoker.unified_void(ped, clipSet, transitionSpeed, 0xAF8A94EDE7712BEF, "isf")end, - -- If p1 is 0.0, I believe you are back to normal. - -- If p1 is 1.0, it looks like you can only rotate the ped, not walk. - -- - -- Using the following code to reset back to normal - -- PED::RESET_PED_MOVEMENT_CLIPSET(PLAYER::PLAYER_PED_ID(), 0.0); - ["RESET_PED_MOVEMENT_CLIPSET"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] p1)return native_invoker.unified_void(ped, p1, 0xAA74EC0CB0AAEA2C, "if")end, - -- Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json - ["SET_PED_STRAFE_CLIPSET"]=--[[void]] function(--[[Ped (int)]] ped,--[[string]] clipSet)return native_invoker.unified_void(ped, clipSet, 0x29A28F3F8CF6D854, "is")end, - ["RESET_PED_STRAFE_CLIPSET"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x20510814175EA477, "i")end, - ["SET_PED_WEAPON_MOVEMENT_CLIPSET"]=--[[void]] function(--[[Ped (int)]] ped,--[[string]] clipSet)return native_invoker.unified_void(ped, clipSet, 0x2622E35B77D3ACA2, "is")end, - ["RESET_PED_WEAPON_MOVEMENT_CLIPSET"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x97B0DB5B4AA74E77, "i")end, - ["SET_PED_DRIVE_BY_CLIPSET_OVERRIDE"]=--[[void]] function(--[[Ped (int)]] ped,--[[string]] clipset)return native_invoker.unified_void(ped, clipset, 0xED34AB6C5CB36520, "is")end, - ["CLEAR_PED_DRIVE_BY_CLIPSET_OVERRIDE"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x4AFE3690D7E0B5AC, "i")end, - -- Found in the b617d scripts: - -- PED::SET_PED_MOTION_IN_COVER_CLIPSET_OVERRIDE(v_7, "trevor_heist_cover_2h"); - ["SET_PED_MOTION_IN_COVER_CLIPSET_OVERRIDE"]=--[[void]] function(--[[Ped (int)]] ped,--[[string]] p1)return native_invoker.unified_void(ped, p1, 0x9DBA107B4937F809, "is")end, - ["CLEAR_PED_MOTION_IN_COVER_CLIPSET_OVERRIDE"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xC79196DCB36F6121, "i")end, - ["CLEAR_PED_FALL_UPPER_BODY_CLIPSET_OVERRIDE"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x80054D7FCC70EEC6, "i")end, - -- PED::SET_PED_IN_VEHICLE_CONTEXT(l_128, MISC::GET_HASH_KEY("MINI_PROSTITUTE_LOW_PASSENGER")); - -- PED::SET_PED_IN_VEHICLE_CONTEXT(l_128, MISC::GET_HASH_KEY("MINI_PROSTITUTE_LOW_RESTRICTED_PASSENGER")); - -- PED::SET_PED_IN_VEHICLE_CONTEXT(l_3212, MISC::GET_HASH_KEY("MISS_FAMILY1_JIMMY_SIT")); - -- PED::SET_PED_IN_VEHICLE_CONTEXT(l_3212, MISC::GET_HASH_KEY("MISS_FAMILY1_JIMMY_SIT_REAR")); - -- PED::SET_PED_IN_VEHICLE_CONTEXT(l_95, MISC::GET_HASH_KEY("MISS_FAMILY2_JIMMY_BICYCLE")); - -- PED::SET_PED_IN_VEHICLE_CONTEXT(num3, MISC::GET_HASH_KEY("MISSFBI2_MICHAEL_DRIVEBY")); - -- PED::SET_PED_IN_VEHICLE_CONTEXT(PLAYER::PLAYER_PED_ID(), MISC::GET_HASH_KEY("MISS_ARMENIAN3_FRANKLIN_TENSE")); - -- PED::SET_PED_IN_VEHICLE_CONTEXT(PLAYER::PLAYER_PED_ID(), MISC::GET_HASH_KEY("MISSFBI5_TREVOR_DRIVING")); - ["SET_PED_IN_VEHICLE_CONTEXT"]=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] context)return native_invoker.unified_void(ped, context, 0x530071295899A8C6, "ii")end, - ["RESET_PED_IN_VEHICLE_CONTEXT"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x22EF8FF8778030EB, "i")end, - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - ["IS_SCRIPTED_SCENARIO_PED_USING_CONDITIONAL_ANIM"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[string]] animDict,--[[string]] anim)return native_invoker.unified_bool(ped, animDict, anim, 0x6EC47A344923E1ED, "iss")end, - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - -- - -- Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json - ["SET_PED_ALTERNATE_WALK_ANIM"]=--[[void]] function(--[[Ped (int)]] ped,--[[string]] animDict,--[[string]] animName,--[[float]] p3,--[[BOOL (bool)]] p4)return native_invoker.unified_void(ped, animDict, animName, p3, p4, 0x6C60394CB4F75E9A, "issfb")end, - ["CLEAR_PED_ALTERNATE_WALK_ANIM"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] p1)return native_invoker.unified_void(ped, p1, 0x8844BBFCE30AA9E9, "if")end, - -- stance: - -- 0 = idle - -- 1 = walk - -- 2 = running - -- - -- p5 = usually set to true - -- - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - -- - -- Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json - ["SET_PED_ALTERNATE_MOVEMENT_ANIM"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] stance,--[[string]] animDictionary,--[[string]] animationName,--[[float]] p4,--[[BOOL (bool)]] p5)return native_invoker.unified_void(ped, stance, animDictionary, animationName, p4, p5, 0x90A43CC281FFAB46, "iissfb")end, - ["CLEAR_PED_ALTERNATE_MOVEMENT_ANIM"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] stance,--[[float]] p2)return native_invoker.unified_void(ped, stance, p2, 0xD8D19675ED5FBDCE, "iif")end, - -- From the scripts: - -- PED::SET_PED_GESTURE_GROUP(PLAYER::PLAYER_PED_ID(), - -- "ANIM_GROUP_GESTURE_MISS_FRA0"); - -- PED::SET_PED_GESTURE_GROUP(PLAYER::PLAYER_PED_ID(), - -- "ANIM_GROUP_GESTURE_MISS_DocksSetup1"); - ["SET_PED_GESTURE_GROUP"]=--[[void]] function(--[[Ped (int)]] ped,--[[string]] animGroupGesture)return native_invoker.unified_void(ped, animGroupGesture, 0xDDF803377F94AAA8, "is")end, - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - ["GET_ANIM_INITIAL_OFFSET_POSITION"]=--[[Vector3 (vector3)]] function(--[[string]] animDict,--[[string]] animName,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] xRot,--[[float]] yRot,--[[float]] zRot,--[[float]] p8,--[[int]] p9)return native_invoker.unified_vector3(animDict, animName, x, y, z, xRot, yRot, zRot, p8, p9, 0xBE22B26DD764C040, "ssfffffffi")end, - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - ["GET_ANIM_INITIAL_OFFSET_ROTATION"]=--[[Vector3 (vector3)]] function(--[[string]] animDict,--[[string]] animName,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] xRot,--[[float]] yRot,--[[float]] zRot,--[[float]] p8,--[[int]] p9)return native_invoker.unified_vector3(animDict, animName, x, y, z, xRot, yRot, zRot, p8, p9, 0x4B805E6046EE9E47, "ssfffffffi")end, - -- Ids - -- 0 - Head - -- 1 - Beard - -- 2 - Hair - -- 3 - Torso - -- 4 - Legs - -- 5 - Hands - -- 6 - Foot - -- 7 - ------ - -- 8 - Accessories 1 - -- 9 - Accessories 2 - -- 10- Decals - -- 11 - Auxiliary parts for torso - ["GET_PED_DRAWABLE_VARIATION"]=--[[int]] function(--[[Ped (int)]] ped,--[[int]] componentId)return native_invoker.unified_int(ped, componentId, 0x67F3780DD425D4FC, "ii")end, - -- List of component/props ID - -- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - ["GET_NUMBER_OF_PED_DRAWABLE_VARIATIONS"]=--[[int]] function(--[[Ped (int)]] ped,--[[int]] componentId)return native_invoker.unified_int(ped, componentId, 0x27561561732A7842, "ii")end, - -- List of component/props ID - -- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - ["GET_PED_TEXTURE_VARIATION"]=--[[int]] function(--[[Ped (int)]] ped,--[[int]] componentId)return native_invoker.unified_int(ped, componentId, 0x04A355E041E004E6, "ii")end, - -- List of component/props ID - -- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - ["GET_NUMBER_OF_PED_TEXTURE_VARIATIONS"]=--[[int]] function(--[[Ped (int)]] ped,--[[int]] componentId,--[[int]] drawableId)return native_invoker.unified_int(ped, componentId, drawableId, 0x8F7156A3142A6BAD, "iii")end, - -- List of component/props ID - -- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - ["GET_NUMBER_OF_PED_PROP_DRAWABLE_VARIATIONS"]=--[[int]] function(--[[Ped (int)]] ped,--[[int]] propId)return native_invoker.unified_int(ped, propId, 0x5FAF9754E789FB47, "ii")end, - -- Need to check behavior when drawableId = -1 - -- - -- - Doofy.Ass - -- Why this function doesn't work and return nill value? - -- GET_NUMBER_OF_PED_PROP_TEXTURE_VARIATIONS(PLAYER.PLAYER_PED_ID(), 0, 5) - -- - -- tick: scripts/addins/menu_execute.lua:51: attempt to call field 'GET_NUMBER_OF_PED_PROP_TEXTURE_VARIATIONS' (a nil value) - -- - -- - -- List of component/props ID - -- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - ["GET_NUMBER_OF_PED_PROP_TEXTURE_VARIATIONS"]=--[[int]] function(--[[Ped (int)]] ped,--[[int]] propId,--[[int]] drawableId)return native_invoker.unified_int(ped, propId, drawableId, 0xA6E7F1CEB523E171, "iii")end, - -- List of component/props ID - -- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - ["GET_PED_PALETTE_VARIATION"]=--[[int]] function(--[[Ped (int)]] ped,--[[int]] componentId)return native_invoker.unified_int(ped, componentId, 0xE3DD5F2A84B42281, "ii")end, - ["GET_MP_OUTFIT_DATA_FROM_METADATA"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[Any* (pointer)]] p1)return native_invoker.unified_bool(p0, p1, 0x9E30E91FB03A2CAF, "pp")end, - ["GET_FM_MALE_SHOP_PED_APPAREL_ITEM_INDEX"]=--[[int]] function(--[[int]] p0)return native_invoker.unified_int(p0, 0x1E77FA7A62EE6C4C, "i")end, - ["GET_FM_FEMALE_SHOP_PED_APPAREL_ITEM_INDEX"]=--[[int]] function(--[[int]] p0)return native_invoker.unified_int(p0, 0xF033419D1B81FAE8, "i")end, - -- Checks if the component variation is valid, this works great for randomizing components using loops. - -- - -- List of component/props ID - -- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - -- - -- Full list of ped components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedComponentVariations.json - ["IS_PED_COMPONENT_VARIATION_VALID"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[int]] componentId,--[[int]] drawableId,--[[int]] textureId)return native_invoker.unified_bool(ped, componentId, drawableId, textureId, 0xE825F6B6CEA7671D, "iiii")end, - -- paletteId: 0 to 3. - -- - -- componentId: - -- enum ePedVarComp - -- { - -- PV_COMP_INVALID = -1, - -- PV_COMP_HEAD, - -- PV_COMP_BERD, - -- PV_COMP_HAIR, - -- PV_COMP_UPPR, - -- PV_COMP_LOWR, - -- PV_COMP_HAND, - -- PV_COMP_FEET, - -- PV_COMP_TEEF, - -- PV_COMP_ACCS, - -- PV_COMP_TASK, - -- PV_COMP_DECL, - -- PV_COMP_JBIB, - -- PV_COMP_MAX - -- }; - -- - -- Examples: https://gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - -- - -- Full list of ped components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedComponentVariations.json - ["SET_PED_COMPONENT_VARIATION"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] componentId,--[[int]] drawableId,--[[int]] textureId,--[[int]] paletteId)return native_invoker.unified_void(ped, componentId, drawableId, textureId, paletteId, 0x262B14F48D29DE80, "iiiii")end, - -- p1 is always 0 in R* scripts. - -- - -- List of component/props ID - -- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - ["SET_PED_RANDOM_COMPONENT_VARIATION"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] p1)return native_invoker.unified_void(ped, p1, 0xC8A9481A01E63C28, "ii")end, - -- List of component/props ID - -- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - ["SET_PED_RANDOM_PROPS"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xC44AA05345C992C6, "i")end, - -- Sets Ped Default Clothes - ["SET_PED_DEFAULT_COMPONENT_VARIATION"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x45EEE61580806D63, "i")end, - ["SET_PED_BLEND_FROM_PARENTS"]=--[[void]] function(--[[Ped (int)]] ped,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[float]] p3,--[[float]] p4)return native_invoker.unified_void(ped, p1, p2, p3, p4, 0x137BBD05230DB22D, "iiiff")end, - -- The "shape" parameters control the shape of the ped's face. The "skin" parameters control the skin tone. ShapeMix and skinMix control how much the first and second IDs contribute,(typically mother and father.) ThirdMix overrides the others in favor of the third IDs. IsParent is set for "children" of the player character's grandparents during old-gen character creation. It has unknown effect otherwise. - -- - -- The IDs start at zero and go Male Non-DLC, Female Non-DLC, Male DLC, and Female DLC. - -- - -- !!!Can someone add working example for this??? - -- - -- try this: - -- headBlendData headData; - -- GET_PED_HEAD_BLEND_DATA(PLAYER_PED_ID(), &headData); - -- - -- SET_PED_HEAD_BLEND_DATA(PLAYER_PED_ID(), headData.shapeFirst, headData.shapeSecond, headData.shapeThird, headData.skinFirst, headData.skinSecond - -- , headData.skinThird, headData.shapeMix, headData.skinMix, headData.skinThird, 0); - -- - -- - -- For more info please refer to this topic. - -- gtaforums.com/topic/858970-all-gtao-face-ids-pedset-ped-head-blend-data-explained - ["SET_PED_HEAD_BLEND_DATA"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] shapeFirstID,--[[int]] shapeSecondID,--[[int]] shapeThirdID,--[[int]] skinFirstID,--[[int]] skinSecondID,--[[int]] skinThirdID,--[[float]] shapeMix,--[[float]] skinMix,--[[float]] thirdMix,--[[BOOL (bool)]] isParent)return native_invoker.unified_void(ped, shapeFirstID, shapeSecondID, shapeThirdID, skinFirstID, skinSecondID, skinThirdID, shapeMix, skinMix, thirdMix, isParent, 0x9414E18B9434C2FE, "iiiiiiifffb")end, - -- The pointer is to a padded struct that matches the arguments to SET_PED_HEAD_BLEND_DATA(...). There are 4 bytes of padding after each field. - -- pass this struct in the second parameter - -- struct headBlendData - -- { - -- int shapeFirst; - -- int padding1; - -- int shapeSecond; - -- int padding2; - -- int shapeThird; - -- int padding3; - -- int skinFirst; - -- int padding4; - -- int skinSecond; - -- int padding5; - -- int skinThird; - -- int padding6; - -- float shapeMix; - -- int padding7; - -- float skinMix; - -- int padding8; - -- float thirdMix; - -- int padding9; - -- bool isParent; - -- }; - ["GET_PED_HEAD_BLEND_DATA"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Any* (pointer)]] headBlendData)return native_invoker.unified_bool(ped, headBlendData, 0x2746BD9D88C5C5D0, "ip")end, - -- See SET_PED_HEAD_BLEND_DATA(). - ["UPDATE_PED_HEAD_BLEND_DATA"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] shapeMix,--[[float]] skinMix,--[[float]] thirdMix)return native_invoker.unified_void(ped, shapeMix, skinMix, thirdMix, 0x723538F61C647C5A, "ifff")end, - -- Used for freemode (online) characters. - -- - -- For some reason, the scripts use a rounded float for the index. - -- Indexes: - -- 1. black - -- 2. very light blue/green - -- 3. dark blue - -- 4. brown - -- 5. darker brown - -- 6. light brown - -- 7. blue - -- 8. light blue - -- 9. pink - -- 10. yellow - -- 11. purple - -- 12. black - -- 13. dark green - -- 14. light brown - -- 15. yellow/black pattern - -- 16. light colored spiral pattern - -- 17. shiny red - -- 18. shiny half blue/half red - -- 19. half black/half light blue - -- 20. white/red perimter - -- 21. green snake - -- 22. red snake - -- 23. dark blue snake - -- 24. dark yellow - -- 25. bright yellow - -- 26. all black - -- 28. red small pupil - -- 29. devil blue/black - -- 30. white small pupil - -- 31. glossed over - ["SET_HEAD_BLEND_EYE_COLOR"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] index)return native_invoker.unified_void(ped, index, 0x50B56988B170AFDF, "ii")end, - -- A getter for _SET_PED_EYE_COLOR. Returns -1 if fails to get. - ["GET_HEAD_BLEND_EYE_COLOR"]=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x76BBA2CEE66D47E9, "i")end, - -- OverlayID ranges from 0 to 12, index from 0 to _GET_NUM_OVERLAY_VALUES(overlayID)-1, and opacity from 0.0 to 1.0. - -- - -- overlayID Part Index, to disable - -- 0 Blemishes 0 - 23, 255 - -- 1 Facial Hair 0 - 28, 255 - -- 2 Eyebrows 0 - 33, 255 - -- 3 Ageing 0 - 14, 255 - -- 4 Makeup 0 - 74, 255 - -- 5 Blush 0 - 6, 255 - -- 6 Complexion 0 - 11, 255 - -- 7 Sun Damage 0 - 10, 255 - -- 8 Lipstick 0 - 9, 255 - -- 9 Moles/Freckles 0 - 17, 255 - -- 10 Chest Hair 0 - 16, 255 - -- 11 Body Blemishes 0 - 11, 255 - -- 12 Add Body Blemishes 0 - 1, 255 - ["SET_PED_HEAD_OVERLAY"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] overlayID,--[[int]] index,--[[float]] opacity)return native_invoker.unified_void(ped, overlayID, index, opacity, 0x48F44967FA05CC1E, "iiif")end, - -- Likely a char, if that overlay is not set, e.i. "None" option, returns 255; - -- - -- This might be the once removed native GET_PED_HEAD_OVERLAY. - ["GET_PED_HEAD_OVERLAY"]=--[[int]] function(--[[Ped (int)]] ped,--[[int]] overlayID)return native_invoker.unified_int(ped, overlayID, 0xA60EF3B6461A4D43, "ii")end, - ["GET_PED_HEAD_OVERLAY_NUM"]=--[[int]] function(--[[int]] overlayID)return native_invoker.unified_int(overlayID, 0xCF1CE768BB43480E, "i")end, - -- - -- - -- ColorType is 1 for eyebrows, beards, and chest hair; 2 for blush and lipstick; and 0 otherwise, though not called in those cases. - -- - -- Called after SET_PED_HEAD_OVERLAY(). - ["SET_PED_HEAD_OVERLAY_TINT"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] overlayID,--[[int]] colorType,--[[int]] colorID,--[[int]] secondColorID)return native_invoker.unified_void(ped, overlayID, colorType, colorID, secondColorID, 0x497BF74A7B9CB952, "iiiii")end, - ["SET_PED_HAIR_TINT"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] colorID,--[[int]] highlightColorID)return native_invoker.unified_void(ped, colorID, highlightColorID, 0x4CFFC65454C93A49, "iii")end, - ["GET_NUM_PED_HAIR_TINTS"]=--[[int]] function()return native_invoker.unified_int(0xE5C0CF872C2AD150, "")end, - ["GET_NUM_PED_MAKEUP_TINTS"]=--[[int]] function()return native_invoker.unified_int(0xD1F7CA1535D22818, "")end, - -- Input: Haircolor index, value between 0 and 63 (inclusive). - -- Output: RGB values for the haircolor specified in the input. - -- - -- This is used with the hair color swatches scaleform. - -- Use `GET_PED_MAKEUP_TINT_COLOR` to get the makeup colors. - ["GET_PED_HAIR_TINT_COLOR"]=--[[void]] function(--[[int]] hairColorIndex,--[[int* (pointer)]] outR,--[[int* (pointer)]] outG,--[[int* (pointer)]] outB)return native_invoker.unified_void(hairColorIndex, outR, outG, outB, 0x4852FC386E2E1BB5, "ippp")end, - -- Input: Makeup color index, value between 0 and 63 (inclusive). - -- Output: RGB values for the makeup color specified in the input. - -- - -- This is used with the makeup color swatches scaleform. - -- Use `GET_PED_HAIR_TINT_COLOR` to get the hair colors. - ["GET_PED_MAKEUP_TINT_COLOR"]=--[[void]] function(--[[int]] makeupColorIndex,--[[int* (pointer)]] outR,--[[int* (pointer)]] outG,--[[int* (pointer)]] outB)return native_invoker.unified_void(makeupColorIndex, outR, outG, outB, 0x013E5CFC38CD5387, "ippp")end, - ["IS_PED_HAIR_TINT_FOR_CREATOR"]=--[[BOOL (bool)]] function(--[[int]] colorId)return native_invoker.unified_bool(colorId, 0xED6D8E27A43B8CDE, "i")end, - ["GET_DEFAULT_SECONDARY_TINT_FOR_CREATOR"]=--[[int]] function(--[[int]] colorId)return native_invoker.unified_int(colorId, 0xEA9960D07DADCF10, "i")end, - ["IS_PED_LIPSTICK_TINT_FOR_CREATOR"]=--[[BOOL (bool)]] function(--[[int]] colorId)return native_invoker.unified_bool(colorId, 0x3E802F11FBE27674, "i")end, - ["IS_PED_BLUSH_TINT_FOR_CREATOR"]=--[[BOOL (bool)]] function(--[[int]] colorId)return native_invoker.unified_bool(colorId, 0xF41B5D290C99A3D6, "i")end, - ["IS_PED_HAIR_TINT_FOR_BARBER"]=--[[BOOL (bool)]] function(--[[int]] colorID)return native_invoker.unified_bool(colorID, 0xE0D36E5D9E99CC21, "i")end, - ["GET_DEFAULT_SECONDARY_TINT_FOR_BARBER"]=--[[int]] function(--[[int]] colorID)return native_invoker.unified_int(colorID, 0xAAA6A3698A69E048, "i")end, - ["IS_PED_LIPSTICK_TINT_FOR_BARBER"]=--[[BOOL (bool)]] function(--[[int]] colorID)return native_invoker.unified_bool(colorID, 0x0525A2C2562F3CD4, "i")end, - ["IS_PED_BLUSH_TINT_FOR_BARBER"]=--[[BOOL (bool)]] function(--[[int]] colorID)return native_invoker.unified_bool(colorID, 0x604E810189EE3A59, "i")end, - ["IS_PED_BLUSH_FACEPAINT_TINT_FOR_BARBER"]=--[[BOOL (bool)]] function(--[[int]] colorId)return native_invoker.unified_bool(colorId, 0x09E7ECA981D9B210, "i")end, - ["GET_TINT_INDEX_FOR_LAST_GEN_HAIR_TEXTURE"]=--[[int]] function(--[[Hash (int)]] modelHash,--[[int]] drawableId,--[[int]] textureId)return native_invoker.unified_int(modelHash, drawableId, textureId, 0xC56FBF2F228E1DAC, "iii")end, - -- Sets the various freemode face features, e.g. nose length, chin shape. Scale ranges from -1.0 to 1.0. - -- - -- - -- - -- 0 - Nose Width (Thin/Wide) - -- - -- 1 - Nose Peak (Up/Down) - -- - -- 2 - Nose Length (Long/Short) - -- - -- 3 - Nose Bone Curveness (Crooked/Curved) - -- - -- 4 - Nose Tip (Up/Down) - -- - -- 5 - Nose Bone Twist (Left/Right) - -- - -- 6 - Eyebrow (Up/Down) - -- - -- 7 - Eyebrow (In/Out) - -- - -- 8 - Cheek Bones (Up/Down) - -- - -- 9 - Cheek Sideways Bone Size (In/Out) - -- - -- 10 - Cheek Bones Width (Puffed/Gaunt) - -- - -- 11 - Eye Opening (Both) (Wide/Squinted) - -- - -- 12 - Lip Thickness (Both) (Fat/Thin) - -- - -- 13 - Jaw Bone Width (Narrow/Wide) - -- - -- 14 - Jaw Bone Shape (Round/Square) - -- - -- 15 - Chin Bone (Up/Down) - -- - -- 16 - Chin Bone Length (In/Out or Backward/Forward) - -- - -- 17 - Chin Bone Shape (Pointed/Square) - -- - -- 18 - Chin Hole (Chin Bum) - -- - -- 19 - Neck Thickness (Thin/Thick) - ["SET_PED_MICRO_MORPH"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] index,--[[float]] scale)return native_invoker.unified_void(ped, index, scale, 0x71A5C1DBA060049E, "iif")end, - ["HAS_PED_HEAD_BLEND_FINISHED"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x654CD0A825161131, "i")end, - ["FINALIZE_HEAD_BLEND"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x4668D80430D6C299, "i")end, - -- p4 seems to vary from 0 to 3. - -- Preview: https://gfycat.com/MaleRareAmazonparrot - ["SET_HEAD_BLEND_PALETTE_COLOR"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] r,--[[int]] g,--[[int]] b,--[[int]] id)return native_invoker.unified_void(ped, r, g, b, id, 0xCC9682B8951C5229, "iiiii")end, - ["DISABLE_HEAD_BLEND_PALETTE_COLOR"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xA21C118553BBDF02, "i")end, - -- Type equals 0 for male non-dlc, 1 for female non-dlc, 2 for male dlc, and 3 for female dlc. - -- - -- Used when calling SET_PED_HEAD_BLEND_DATA. - ["GET_PED_HEAD_BLEND_FIRST_INDEX"]=--[[int]] function(--[[int]] type)return native_invoker.unified_int(type, 0x68D353AB88B97E0C, "i")end, - -- Type equals 0 for male non-dlc, 1 for female non-dlc, 2 for male dlc, and 3 for female dlc. - ["GET_PED_HEAD_BLEND_NUM_HEADS"]=--[[int]] function(--[[int]] type)return native_invoker.unified_int(type, 0x5EF37013A6539C9D, "i")end, - -- from extreme3.c4 - -- PED::SET_PED_PRELOAD_VARIATION_DATA(PLAYER::PLAYER_PED_ID(), 8, PED::GET_PED_DRAWABLE_VARIATION(PLAYER::PLAYER_PED_ID(), 8), PED::GET_PED_TEXTURE_VARIATION(PLAYER::PLAYER_PED_ID(), 8)); - -- - -- p1 is probably componentId - ["SET_PED_PRELOAD_VARIATION_DATA"]=--[[int]] function(--[[Ped (int)]] ped,--[[int]] slot,--[[int]] drawableId,--[[int]] textureId)return native_invoker.unified_int(ped, slot, drawableId, textureId, 0x39D55A620FCB6A3A, "iiii")end, - ["HAS_PED_PRELOAD_VARIATION_DATA_FINISHED"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x66680A92700F43DF, "i")end, - ["RELEASE_PED_PRELOAD_VARIATION_DATA"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x5AAB586FFEC0FD96, "i")end, - -- List of component/props ID - -- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - ["SET_PED_PRELOAD_PROP_DATA"]=--[[int]] function(--[[Ped (int)]] ped,--[[int]] componentId,--[[int]] drawableId,--[[int]] TextureId)return native_invoker.unified_int(ped, componentId, drawableId, TextureId, 0x2B16A3BFF1FBCE49, "iiii")end, - ["HAS_PED_PRELOAD_PROP_DATA_FINISHED"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x784002A632822099, "i")end, - ["RELEASE_PED_PRELOAD_PROP_DATA"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xF79F9DEF0AADE61A, "i")end, - -- List of component/props ID - -- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - ["GET_PED_PROP_INDEX"]=--[[int]] function(--[[Ped (int)]] ped,--[[int]] componentId,--[[Any (int)]] p2)return native_invoker.unified_int(ped, componentId, p2, 0x898CC20EA75BACD8, "iii")end, - -- ComponentId can be set to various things based on what category you're wanting to set - -- enum PedPropsData - -- { - -- PED_PROP_HATS = 0, - -- PED_PROP_GLASSES = 1, - -- PED_PROP_EARS = 2, - -- PED_PROP_WATCHES = 3, - -- }; - -- Usage: SET_PED_PROP_INDEX(playerPed, PED_PROP_HATS, GET_NUMBER_OF_PED_PROP_DRAWABLE_VARIATIONS(playerPed, PED_PROP_HATS), GET_NUMBER_OF_PED_PROP_TEXTURE_VARIATIONS(playerPed, PED_PROP_HATS, 0), TRUE); - -- - -- List of component/props ID - -- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - ["SET_PED_PROP_INDEX"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] componentId,--[[int]] drawableId,--[[int]] TextureId,--[[BOOL (bool)]] attach,--[[Any (int)]] p5)return native_invoker.unified_void(ped, componentId, drawableId, TextureId, attach, p5, 0x93376B65A266EB5F, "iiiibi")end, - -- List of component/props ID - -- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - ["KNOCK_OFF_PED_PROP"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3,--[[BOOL (bool)]] p4)return native_invoker.unified_void(ped, p1, p2, p3, p4, 0x6FD7816A36615F48, "ibbbb")end, - -- List of component/props ID - -- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - ["CLEAR_PED_PROP"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] propId,--[[Any (int)]] p2)return native_invoker.unified_void(ped, propId, p2, 0x0943E5B8E078E76E, "iii")end, - -- List of component/props ID - -- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - ["CLEAR_ALL_PED_PROPS"]=--[[void]] function(--[[Ped (int)]] ped,--[[Any (int)]] p1)return native_invoker.unified_void(ped, p1, 0xCD8A7537A9B52F06, "ii")end, - ["DROP_AMBIENT_PROP"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xAFF4710E2A0A6C12, "i")end, - -- List of component/props ID - -- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - ["GET_PED_PROP_TEXTURE_INDEX"]=--[[int]] function(--[[Ped (int)]] ped,--[[int]] componentId)return native_invoker.unified_int(ped, componentId, 0xE131A28626F81AB2, "ii")end, - ["CLEAR_PED_PARACHUTE_PACK_VARIATION"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x1280804F7CFD2D6C, "i")end, - -- This native sets a scuba mask for freemode models and an oxygen bottle for player_* models. It works on freemode and player_* models. - ["SET_PED_SCUBA_GEAR_VARIATION"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x36C6984C3ED0C911, "i")end, - -- Removes the scubagear (for mp male: component id: 8, drawableId: 123, textureId: any) from peds. Does not play the 'remove scuba gear' animation, but instantly removes it. - ["CLEAR_PED_SCUBA_GEAR_VARIATION"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xB50EB4CCB29704AC, "i")end, - ["IS_USING_PED_SCUBA_GEAR_VARIATION"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0xFEC9A3B1820F3331, "i")end, - -- works with TASK::TASK_SET_BLOCKING_OF_NON_TEMPORARY_EVENTS to make a ped completely oblivious to all events going on around him - ["SET_BLOCKING_OF_NON_TEMPORARY_EVENTS"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x9F8AA94D6D97DBF4, "ib")end, - ["SET_PED_BOUNDS_ORIENTATION"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] p1,--[[float]] p2,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(ped, p1, p2, x, y, z, 0x4F5F651ACCC9C4CF, "ifffff")end, - -- PED::REGISTER_TARGET(l_216, PLAYER::PLAYER_PED_ID()); from re_prisonbreak.txt. - -- - -- l_216 = RECSBRobber1 - ["REGISTER_TARGET"]=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] target)return native_invoker.unified_void(ped, target, 0x2F25D9AEFA34FBA2, "ii")end, - -- Based on TASK_COMBAT_HATED_TARGETS_AROUND_PED, the parameters are likely similar (PedHandle, and area to attack in). - ["REGISTER_HATED_TARGETS_AROUND_PED"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] radius)return native_invoker.unified_void(ped, radius, 0x9222F300BF8354FE, "if")end, - -- Gets a random ped in the x/y/zRadius near the x/y/z coordinates passed. - -- - -- Ped Types: - -- Any = -1 - -- Player = 1 - -- Male = 4 - -- Female = 5 - -- Cop = 6 - -- Human = 26 - -- SWAT = 27 - -- Animal = 28 - -- Army = 29 - ["GET_RANDOM_PED_AT_COORD"]=--[[Ped (int)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] xRadius,--[[float]] yRadius,--[[float]] zRadius,--[[int]] pedType)return native_invoker.unified_int(x, y, z, xRadius, yRadius, zRadius, pedType, 0x876046A8E3A4B71C, "ffffffi")end, - -- Gets the closest ped in a radius. - -- - -- Ped Types: - -- Any ped = -1 - -- Player = 1 - -- Male = 4 - -- Female = 5 - -- Cop = 6 - -- Human = 26 - -- SWAT = 27 - -- Animal = 28 - -- Army = 29 - -- - -- ------------------ - -- P4 P5 P7 P8 - -- 1 0 x x = return nearest walking Ped - -- 1 x 0 x = return nearest walking Ped - -- x 1 1 x = return Ped you are using - -- 0 0 x x = no effect - -- 0 x 0 x = no effect - -- - -- x = can be 1 or 0. Does not have any obvious changes. - -- - -- This function does not return ped who is: - -- 1. Standing still - -- 2. Driving - -- 3. Fleeing - -- 4. Attacking - -- - -- This function only work if the ped is: - -- 1. walking normally. - -- 2. waiting to cross a road. - -- - -- Note: PED::GET_PED_NEARBY_PEDS works for more peds. - ["GET_CLOSEST_PED"]=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[BOOL (bool)]] p4,--[[BOOL (bool)]] p5,--[[Ped* (pointer)]] outPed,--[[BOOL (bool)]] p7,--[[BOOL (bool)]] p8,--[[int]] pedType)return native_invoker.unified_bool(x, y, z, radius, p4, p5, outPed, p7, p8, pedType, 0xC33AB876A77F8164, "ffffbbpbbi")end, - -- Sets a value indicating whether scenario peds should be returned by the next call to a command that returns peds. Eg. GET_CLOSEST_PED. - ["SET_SCENARIO_PEDS_TO_BE_RETURNED_BY_NEXT_COMMAND"]=--[[void]] function(--[[BOOL (bool)]] value)return native_invoker.unified_void(value, 0x14F19A8782C8071E, "b")end, - ["GET_CAN_PED_BE_GRABBED_BY_SCRIPT"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3,--[[BOOL (bool)]] p4,--[[BOOL (bool)]] p5,--[[BOOL (bool)]] p6,--[[BOOL (bool)]] p7,--[[Any (int)]] p8)return native_invoker.unified_bool(ped, p1, p2, p3, p4, p5, p6, p7, p8, 0x03EA03AF85A85CB7, "ibbbbbbbi")end, - -- Scripts use 0.2, 0.5 and 1.0. Value must be >= 0.0 && <= 1.0 - ["SET_DRIVER_RACING_MODIFIER"]=--[[void]] function(--[[Ped (int)]] driver,--[[float]] modifier)return native_invoker.unified_void(driver, modifier, 0xDED5AF5A0EA4B297, "if")end, - -- The function specifically verifies the value is equal to, or less than 1.0f. If it is greater than 1.0f, the function does nothing at all. - ["SET_DRIVER_ABILITY"]=--[[void]] function(--[[Ped (int)]] driver,--[[float]] ability)return native_invoker.unified_void(driver, ability, 0xB195FFA8042FC5C3, "if")end, - -- range 0.0f - 1.0f - ["SET_DRIVER_AGGRESSIVENESS"]=--[[void]] function(--[[Ped (int)]] driver,--[[float]] aggressiveness)return native_invoker.unified_void(driver, aggressiveness, 0xA731F608CA104E3C, "if")end, - -- Prevents the ped from going limp. - -- - -- [Example: Can prevent peds from falling when standing on moving vehicles.] - ["CAN_PED_RAGDOLL"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x128F79EDCECE4FD5, "i")end, - -- p4/p5: Unused in TU27 - -- Ragdoll Types: - -- **0**: CTaskNMRelax - -- **1**: CTaskNMScriptControl: Hardcoded not to work in networked environments. - -- **Else**: CTaskNMBalance - -- time1- Time(ms) Ped is in ragdoll mode; only applies to ragdoll types 0 and not 1. - -- - -- time2- Unknown time, in milliseconds - -- - -- ragdollType- - -- 0 : Normal ragdoll - -- 1 : Falls with stiff legs/body - -- 2 : Narrow leg stumble(may not fall) - -- 3 : Wide leg stumble(may not fall) - -- - -- p4, p5, p6- No idea. In R*'s scripts they are usually either "true, true, false" or "false, false, false". - -- - -- - -- - -- - -- EDIT 3/11/16: unclear what 'mircoseconds' mean-- a microsecond is 1000x a ms, so time2 must be 1000x time1? more testing needed. -sob - -- - -- Edit Mar 21, 2017: removed part about time2 being the microseconds version of time1. this just isn't correct. time2 is in milliseconds, and time1 and time2 don't seem to be connected in any way. - ["SET_PED_TO_RAGDOLL"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[int]] time1,--[[int]] time2,--[[int]] ragdollType,--[[BOOL (bool)]] p4,--[[BOOL (bool)]] p5,--[[BOOL (bool)]] p6)return native_invoker.unified_bool(ped, time1, time2, ragdollType, p4, p5, p6, 0xAE99FB955581844A, "iiiibbb")end, - -- Return variable is never used in R*'s scripts. - -- - -- Not sure what p2 does. It seems like it would be a time judging by it's usage in R*'s scripts, but didn't seem to affect anything in my testings. - -- - -- enum eRagdollType - -- { - -- RD_MALE=0, - -- RD_FEMALE = 1, - -- RD_MALE_LARGE = 2, - -- RD_CUSTOM = 3, - -- } - -- - -- x, y, and z are coordinates, most likely to where the ped will fall. - -- - -- p8 to p13 are always 0f in R*'s scripts. - -- - -- (Simplified) Example of the usage of the function from R*'s scripts: - -- ped::set_ped_to_ragdoll_with_fall(ped, 1500, 2000, 1, -entity::get_entity_forward_vector(ped), 1f, 0f, 0f, 0f, 0f, 0f, 0f); - -- - ["SET_PED_TO_RAGDOLL_WITH_FALL"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[int]] time,--[[int]] p2,--[[int]] ragdollType,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] velocity,--[[float]] p8,--[[float]] p9,--[[float]] p10,--[[float]] p11,--[[float]] p12,--[[float]] p13)return native_invoker.unified_bool(ped, time, p2, ragdollType, x, y, z, velocity, p8, p9, p10, p11, p12, p13, 0xD76632D99E4966C8, "iiiiffffffffff")end, - -- Causes Ped to ragdoll on collision with any object (e.g Running into trashcan). If applied to player you will sometimes trip on the sidewalk. - ["SET_PED_RAGDOLL_ON_COLLISION"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xF0A4F1BBF4FA7497, "ib")end, - -- If the ped handle passed through the parenthesis is in a ragdoll state this will return true. - ["IS_PED_RAGDOLL"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x47E4E977581C5B55, "i")end, - ["IS_PED_RUNNING_RAGDOLL_TASK"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xE3B6097CC25AA69E, "i")end, - ["SET_PED_RAGDOLL_FORCE_FALL"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x01F6594B923B9251, "i")end, - ["RESET_PED_RAGDOLL_TIMER"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x9FA4664CF62E47E8, "i")end, - ["SET_PED_CAN_RAGDOLL"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xB128377056A54E2A, "ib")end, - ["IS_PED_RUNNING_MELEE_TASK"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xD1871251F3B5ACD7, "i")end, - ["IS_PED_RUNNING_MOBILE_PHONE_TASK"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x2AFE52F782F25775, "i")end, - ["IS_MOBILE_PHONE_TO_PED_EAR"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xA3F3564A5B3646C0, "i")end, - -- Works for both player and peds, - -- - -- enum eRagdollBlockingFlags - -- { - -- RBF_BULLET_IMPACT = 0, - -- RBF_VEHICLE_IMPACT = 1, - -- RBF_FIRE = 2, - -- RBF_ELECTROCUTION = 3, - -- RBF_PLAYER_IMPACT = 4, - -- RBF_EXPLOSION = 5,0 - -- RBF_IMPACT_OBJECT = 6, - -- RBF_MELEE = 7, - -- RBF_RUBBER_BULLET = 8, - -- RBF_FALLING = 9, - -- RBF_WATER_JET = 10, - -- RBF_DROWNING = 11, - -- _0x9F52E2C4 = 12, - -- RBF_PLAYER_BUMP = 13, - -- RBF_PLAYER_RAGDOLL_BUMP = 14, - -- RBF_PED_RAGDOLL_BUMP = 15, - -- RBF_VEHICLE_GRAB = 16, - -- RBF_SMOKE_GRENADE = 17, - -- }; - -- - -- - ["SET_RAGDOLL_BLOCKING_FLAGS"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] blockingFlag)return native_invoker.unified_void(ped, blockingFlag, 0x26695EC767728D84, "ii")end, - -- See SET_RAGDOLL_BLOCKING_FLAGS for flags - ["CLEAR_RAGDOLL_BLOCKING_FLAGS"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] blockingFlag)return native_invoker.unified_void(ped, blockingFlag, 0xD86D101FCFD00A4B, "ii")end, - ["SET_PED_ANGLED_DEFENSIVE_AREA"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[float]] p6,--[[float]] p7,--[[BOOL (bool)]] p8,--[[BOOL (bool)]] p9)return native_invoker.unified_void(ped, p1, p2, p3, p4, p5, p6, p7, p8, p9, 0xC7F76DF27A5045A1, "ifffffffbb")end, - ["SET_PED_SPHERE_DEFENSIVE_AREA"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[BOOL (bool)]] p5,--[[BOOL (bool)]] p6)return native_invoker.unified_void(ped, x, y, z, radius, p5, p6, 0x9D3151A373974804, "iffffbb")end, - ["SET_PED_DEFENSIVE_SPHERE_ATTACHED_TO_PED"]=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] target,--[[float]] xOffset,--[[float]] yOffset,--[[float]] zOffset,--[[float]] radius,--[[BOOL (bool)]] p6)return native_invoker.unified_void(ped, target, xOffset, yOffset, zOffset, radius, p6, 0xF9B8F91AAD3B953E, "iiffffb")end, - ["SET_PED_DEFENSIVE_SPHERE_ATTACHED_TO_VEHICLE"]=--[[void]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] target,--[[float]] xOffset,--[[float]] yOffset,--[[float]] zOffset,--[[float]] radius,--[[BOOL (bool)]] p6)return native_invoker.unified_void(ped, target, xOffset, yOffset, zOffset, radius, p6, 0xE4723DB6E736CCFF, "iiffffb")end, - ["SET_PED_DEFENSIVE_AREA_ATTACHED_TO_PED"]=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] attachPed,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[float]] p6,--[[float]] p7,--[[float]] p8,--[[BOOL (bool)]] p9,--[[BOOL (bool)]] p10)return native_invoker.unified_void(ped, attachPed, p2, p3, p4, p5, p6, p7, p8, p9, p10, 0x4EF47FE21698A8B6, "iifffffffbb")end, - ["SET_PED_DEFENSIVE_AREA_DIRECTION"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[BOOL (bool)]] p4)return native_invoker.unified_void(ped, p1, p2, p3, p4, 0x413C6C763A4AFFAD, "ifffb")end, - -- Ped will no longer get angry when you stay near him. - ["REMOVE_PED_DEFENSIVE_AREA"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x74D4E028107450A9, "ib")end, - ["GET_PED_DEFENSIVE_AREA_POSITION"]=--[[Vector3 (vector3)]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1)return native_invoker.unified_vector3(ped, p1, 0x3C06B8786DD94CD1, "ib")end, - ["IS_PED_DEFENSIVE_AREA_ACTIVE"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1)return native_invoker.unified_bool(ped, p1, 0xBA63D9FE45412247, "ib")end, - ["SET_PED_PREFERRED_COVER_SET"]=--[[void]] function(--[[Ped (int)]] ped,--[[Any (int)]] itemSet)return native_invoker.unified_void(ped, itemSet, 0x8421EB4DA7E391B9, "ii")end, - ["REMOVE_PED_PREFERRED_COVER_SET"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xFDDB234CF74073D9, "i")end, - -- It will revive/cure the injured ped. The condition is ped must not be dead. - -- - -- Upon setting and converting the health int, found, if health falls below 5, the ped will lay on the ground in pain(Maximum default health is 100). - -- - -- This function is well suited there. - ["REVIVE_INJURED_PED"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x8D8ACD8388CD99CE, "i")end, - -- This function will simply bring the dead person back to life. - -- - -- Try not to use it alone, since using this function alone, will make peds fall through ground in hell(well for the most of the times). - -- - -- Instead, before calling this function, you may want to declare the position, where your Resurrected ped to be spawn at.(For instance, Around 2 floats of Player's current position.) - -- - -- Also, disabling any assigned task immediately helped in the number of scenarios, where If you want peds to perform certain decided tasks. - ["RESURRECT_PED"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x71BC8E838B9C6035, "i")end, - -- NOTE: Debugging functions are not present in the retail version of the game. - -- - -- *untested but char *name could also be a hash for a localized string - ["SET_PED_NAME_DEBUG"]=--[[void]] function(--[[Ped (int)]] ped,--[[string]] name)return native_invoker.unified_void(ped, name, 0x98EFA132A4117BE1, "is")end, - -- Gets the offset the specified ped has moved since the previous tick. - -- - -- If worldSpace is false, the returned offset is relative to the ped. That is, if the ped has moved 1 meter right and 5 meters forward, it'll return 1,5,0. - -- - -- If worldSpace is true, the returned offset is relative to the world. That is, if the ped has moved 1 meter on the X axis and 5 meters on the Y axis, it'll return 1,5,0. - ["GET_PED_EXTRACTED_DISPLACEMENT"]=--[[Vector3 (vector3)]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] worldSpace)return native_invoker.unified_vector3(ped, worldSpace, 0xE0AF41401ADF87E3, "ib")end, - ["SET_PED_DIES_WHEN_INJURED"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x5BA7919BED300023, "ib")end, - ["SET_PED_ENABLE_WEAPON_BLOCKING"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x97A790315D3831FD, "ib")end, - -- p1 was always 1 (true). - -- - -- Kicks the ped from the current vehicle and keeps the rendering-focus on this ped (also disables its collision). If doing this for your player ped, you'll still be able to drive the vehicle. - ["SPECIAL_FUNCTION_DO_NOT_USE"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1)return native_invoker.unified_void(ped, p1, 0xF9ACF4A08098EA25, "ib")end, - ["RESET_PED_VISIBLE_DAMAGE"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x3AC1F7B898F30C05, "i")end, - ["APPLY_PED_BLOOD_DAMAGE_BY_ZONE"]=--[[void]] function(--[[Ped (int)]] ped,--[[Any (int)]] p1,--[[float]] p2,--[[float]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(ped, p1, p2, p3, p4, 0x816F6981C60BF53B, "iiffi")end, - -- woundTypes: - -- - soak_splat - -- - wound_sheet - -- - BulletSmall - -- - BulletLarge - -- - ShotgunSmall - -- - ShotgunSmallMonolithic - -- - ShotgunLarge - -- - ShotgunLargeMonolithic - -- - NonFatalHeadshot - -- - stab - -- - BasicSlash - -- - Scripted_Ped_Splash_Back - -- - BackSplash - ["APPLY_PED_BLOOD"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] boneIndex,--[[float]] xRot,--[[float]] yRot,--[[float]] zRot,--[[string]] woundType)return native_invoker.unified_void(ped, boneIndex, xRot, yRot, zRot, woundType, 0x83F7E01C7B769A26, "iifffs")end, - ["APPLY_PED_BLOOD_BY_ZONE"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] p1,--[[float]] p2,--[[float]] p3,--[[string]] p4)return native_invoker.unified_void(ped, p1, p2, p3, p4, 0x3311E47B91EDCBBC, "iiffs")end, - ["APPLY_PED_BLOOD_SPECIFIC"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[int]] p6,--[[float]] p7,--[[string]] p8)return native_invoker.unified_void(ped, p1, p2, p3, p4, p5, p6, p7, p8, 0xEF0D582CBF2D9B0F, "iiffffifs")end, - -- enum eDamageZone - -- { - -- DZ_Torso = 0, - -- DZ_Head, - -- DZ_LeftArm, - -- DZ_RightArm, - -- DZ_LeftLeg, - -- DZ_RightLeg, - -- }; - -- - -- Decal Names: - -- scar - -- blushing - -- cs_flush_anger - -- cs_flush_anger_face - -- bruise - -- bruise_large - -- herpes - -- ArmorBullet - -- basic_dirt_cloth - -- basic_dirt_skin - -- cs_trev1_dirt - -- - -- APPLY_PED_DAMAGE_DECAL(ped, 1, 0.5f, 0.513f, 0f, 1f, unk, 0, 0, "blushing"); - ["APPLY_PED_DAMAGE_DECAL"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] damageZone,--[[float]] xOffset,--[[float]] yOffset,--[[float]] heading,--[[float]] scale,--[[float]] alpha,--[[int]] variation,--[[BOOL (bool)]] fadeIn,--[[string]] decalName)return native_invoker.unified_void(ped, damageZone, xOffset, yOffset, heading, scale, alpha, variation, fadeIn, decalName, 0x397C38AA7B4A5F83, "iifffffibs")end, - -- Damage Packs: - -- - -- "SCR_TrevorTreeBang" - -- "HOSPITAL_0" - -- "HOSPITAL_1" - -- "HOSPITAL_2" - -- "HOSPITAL_3" - -- "HOSPITAL_4" - -- "HOSPITAL_5" - -- "HOSPITAL_6" - -- "HOSPITAL_7" - -- "HOSPITAL_8" - -- "HOSPITAL_9" - -- "SCR_Dumpster" - -- "BigHitByVehicle" - -- "SCR_Finale_Michael_Face" - -- "SCR_Franklin_finb" - -- "SCR_Finale_Michael" - -- "SCR_Franklin_finb2" - -- "Explosion_Med" - -- "SCR_Torture" - -- "SCR_TracySplash" - -- "Skin_Melee_0" - -- - -- Additional damage packs: - -- - -- gist.github.com/alexguirre/f3f47f75ddcf617f416f3c8a55ae2227 - -- Full list of ped damage packs by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedDamagePacks.json - ["APPLY_PED_DAMAGE_PACK"]=--[[void]] function(--[[Ped (int)]] ped,--[[string]] damagePack,--[[float]] damage,--[[float]] mult)return native_invoker.unified_void(ped, damagePack, damage, mult, 0x46DF918788CB093F, "isff")end, - ["CLEAR_PED_BLOOD_DAMAGE"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x8FE22675A5A45817, "i")end, - -- Somehow related to changing ped's clothes. - ["CLEAR_PED_BLOOD_DAMAGE_BY_ZONE"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] p1)return native_invoker.unified_void(ped, p1, 0x56E3B78C5408D9F4, "ii")end, - ["HIDE_PED_BLOOD_DAMAGE_BY_ZONE"]=--[[void]] function(--[[Ped (int)]] ped,--[[Any (int)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(ped, p1, p2, 0x62AB793144DE75DC, "iib")end, - -- p1: from 0 to 5 in the b617d scripts. - -- p2: "blushing" and "ALL" found in the b617d scripts. - ["CLEAR_PED_DAMAGE_DECAL_BY_ZONE"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] p1,--[[string]] p2)return native_invoker.unified_void(ped, p1, p2, 0x523C79AEEFCC4A2A, "iis")end, - ["GET_PED_DECORATIONS_STATE"]=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x71EAB450D86954A1, "i")end, - ["MARK_PED_DECORATIONS_AS_CLONED_FROM_LOCAL_PLAYER"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1)return native_invoker.unified_void(ped, p1, 0x2B694AFCF64E6994, "ib")end, - -- It clears the wetness of the selected Ped/Player. Clothes have to be wet to notice the difference. - ["CLEAR_PED_WETNESS"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x9C720776DAA43E7E, "i")end, - -- It adds the wetness level to the player clothing/outfit. As if player just got out from water surface. - -- - -- - ["SET_PED_WETNESS_HEIGHT"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] height)return native_invoker.unified_void(ped, height, 0x44CB6447D2571AA0, "if")end, - -- combined with PED::SET_PED_WETNESS_HEIGHT(), this native makes the ped drenched in water up to the height specified in the other function - ["SET_PED_WETNESS_ENABLED_THIS_FRAME"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xB5485E4907B53019, "i")end, - ["SET_PED_WETNESS"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] wetLevel)return native_invoker.unified_void(ped, wetLevel, 0xAC0BB4D87777CAE2, "if")end, - ["CLEAR_PED_ENV_DIRT"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x6585D955A68452A5, "i")end, - -- Sweat is set to 100.0 or 0.0 in the decompiled scripts. - ["SET_PED_SWEAT"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] sweat)return native_invoker.unified_void(ped, sweat, 0x27B0405F59637D1F, "if")end, - -- Applies an Item from a PedDecorationCollection to a ped. These include tattoos and shirt decals. - -- - -- collection - PedDecorationCollection filename hash - -- overlay - Item name hash - -- - -- Example: - -- Entry inside "mpbeach_overlays.xml" - - -- - -- - -- - -- - -- FM_Hair_Fuzz - -- mp_hair_fuzz - -- mp_hair_fuzz - -- ZONE_HEAD - -- TYPE_TATTOO - -- FM - -- All - -- GENDER_DONTCARE - -- - -- - -- - -- - -- Code: - -- PED::ADD_PED_DECORATION_FROM_HASHES(PLAYER::PLAYER_PED_ID(), MISC::GET_HASH_KEY("mpbeach_overlays"), MISC::GET_HASH_KEY("fm_hair_fuzz")) - -- - -- Full list of ped overlays / decorations by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedOverlayCollections.json - ["ADD_PED_DECORATION_FROM_HASHES"]=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] collection,--[[Hash (int)]] overlay)return native_invoker.unified_void(ped, collection, overlay, 0x5F5D1665E352A839, "iii")end, - -- Full list of ped overlays / decorations by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedOverlayCollections.json - ["ADD_PED_DECORATION_FROM_HASHES_IN_CORONA"]=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] collection,--[[Hash (int)]] overlay)return native_invoker.unified_void(ped, collection, overlay, 0x5619BFA07CFD7833, "iii")end, - -- Returns the zoneID for the overlay if it is a member of collection. - -- enum ePedDecorationZone - -- { - -- ZONE_TORSO = 0, - -- ZONE_HEAD = 1, - -- ZONE_LEFT_ARM = 2, - -- ZONE_RIGHT_ARM = 3, - -- ZONE_LEFT_LEG = 4, - -- ZONE_RIGHT_LEG = 5, - -- ZONE_MEDALS = 6, - -- ZONE_INVALID = 7 - -- }; - -- - -- Full list of ped overlays / decorations by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedOverlayCollections.json - ["GET_PED_DECORATION_ZONE_FROM_HASHES"]=--[[int]] function(--[[Hash (int)]] collection,--[[Hash (int)]] overlay)return native_invoker.unified_int(collection, overlay, 0x9FD452BFBE7A7A8B, "ii")end, - ["CLEAR_PED_DECORATIONS"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x0E5173C163976E38, "i")end, - ["CLEAR_PED_DECORATIONS_LEAVE_SCARS"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xE3B27E70CEAB9F0C, "i")end, - -- Despite this function's name, it simply returns whether the specified handle is a Ped. - ["WAS_PED_SKELETON_UPDATED"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x11B499C1E0FF8559, "i")end, - -- Gets the position of the specified bone of the specified ped. - -- - -- ped: The ped to get the position of a bone from. - -- boneId: The ID of the bone to get the position from. This is NOT the index. - -- offsetX: The X-component of the offset to add to the position relative to the bone's rotation. - -- offsetY: The Y-component of the offset to add to the position relative to the bone's rotation. - -- offsetZ: The Z-component of the offset to add to the position relative to the bone's rotation. - ["GET_PED_BONE_COORDS"]=--[[Vector3 (vector3)]] function(--[[Ped (int)]] ped,--[[int]] boneId,--[[float]] offsetX,--[[float]] offsetY,--[[float]] offsetZ)return native_invoker.unified_vector3(ped, boneId, offsetX, offsetY, offsetZ, 0x17C07FC640E86B4E, "iifff")end, - -- Creates a new NaturalMotion message. - -- - -- startImmediately: If set to true, the character will perform the message the moment it receives it by GIVE_PED_NM_MESSAGE. If false, the Ped will get the message but won't perform it yet. While it's a boolean value, if negative, the message will not be initialized. - -- messageId: The ID of the NaturalMotion message. - -- - -- If a message already exists, this function does nothing. A message exists until the point it has been successfully dispatched by GIVE_PED_NM_MESSAGE. - ["CREATE_NM_MESSAGE"]=--[[void]] function(--[[BOOL (bool)]] startImmediately,--[[int]] messageId)return native_invoker.unified_void(startImmediately, messageId, 0x418EF2A1BCE56685, "bi")end, - -- Sends the message that was created by a call to CREATE_NM_MESSAGE to the specified Ped. - -- - -- If a message hasn't been created already, this function does nothing. - -- If the Ped is not ragdolled with Euphoria enabled, this function does nothing. - -- The following call can be used to ragdoll the Ped with Euphoria enabled: SET_PED_TO_RAGDOLL(ped, 4000, 5000, 1, 1, 1, 0); - -- - -- Call order: - -- SET_PED_TO_RAGDOLL - -- CREATE_NM_MESSAGE - -- GIVE_PED_NM_MESSAGE - -- - -- Multiple messages can be chained. Eg. to make the ped stagger and swing his arms around, the following calls can be made: - -- SET_PED_TO_RAGDOLL(ped, 4000, 5000, 1, 1, 1, 0); - -- CREATE_NM_MESSAGE(true, 0); // stopAllBehaviours - Stop all other behaviours, in case the Ped is already doing some Euphoria stuff. - -- GIVE_PED_NM_MESSAGE(ped); // Dispatch message to Ped. - -- CREATE_NM_MESSAGE(true, 1151); // staggerFall - Attempt to walk while falling. - -- GIVE_PED_NM_MESSAGE(ped); // Dispatch message to Ped. - -- CREATE_NM_MESSAGE(true, 372); // armsWindmill - Swing arms around. - -- GIVE_PED_NM_MESSAGE(ped); // Dispatch message to Ped. - ["GIVE_PED_NM_MESSAGE"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xB158DFCCC56E5C5B, "i")end, - ["ADD_SCENARIO_BLOCKING_AREA"]=--[[int]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[BOOL (bool)]] p6,--[[BOOL (bool)]] p7,--[[BOOL (bool)]] p8,--[[BOOL (bool)]] p9,--[[Any (int)]] p10)return native_invoker.unified_int(x1, y1, z1, x2, y2, z2, p6, p7, p8, p9, p10, 0x1B5C85C612E5256E, "ffffffbbbbi")end, - ["REMOVE_SCENARIO_BLOCKING_AREAS"]=--[[void]] function()return native_invoker.unified_void(0xD37401D78A929A49, "")end, - ["REMOVE_SCENARIO_BLOCKING_AREA"]=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0x31D16B74C6E29D66, "ib")end, - ["SET_SCENARIO_PEDS_SPAWN_IN_SPHERE_AREA"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] range,--[[int]] p4)return native_invoker.unified_void(x, y, z, range, p4, 0x28157D43CF600981, "ffffi")end, - ["DOES_SCENARIO_BLOCKING_AREA_EXISTS"]=--[[BOOL (bool)]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2)return native_invoker.unified_bool(x1, y1, z1, x2, y2, z2, 0x8A24B067D175A7BD, "ffffff")end, - -- Full list of ped scenarios by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenariosCompact.json - ["IS_PED_USING_SCENARIO"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[string]] scenario)return native_invoker.unified_bool(ped, scenario, 0x1BF094736DD62C2E, "is")end, - ["IS_PED_USING_ANY_SCENARIO"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x57AB4A3080F85143, "i")end, - ["SET_PED_PANIC_EXIT_SCENARIO"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_bool(p0, p1, p2, p3, 0xFE07FF6495D52E2A, "iiii")end, - ["TOGGLE_SCENARIO_PED_COWER_IN_PLACE"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x9A77DFD295E29B09, "ib")end, - ["TRIGGER_PED_SCENARIO_PANICEXITTOFLEE"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_bool(p0, p1, p2, p3, 0x25361A96E0F7E419, "iiii")end, - ["SET_PED_SHOULD_PLAY_DIRECTED_NORMAL_SCENARIO_EXIT"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_bool(p0, p1, p2, p3, 0xEC6935EBE0847B90, "iiii")end, - ["SET_PED_SHOULD_PLAY_NORMAL_SCENARIO_EXIT"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xA3A9299C4F2ADB98, "i")end, - ["SET_PED_SHOULD_PLAY_IMMEDIATE_SCENARIO_EXIT"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xF1C03A5352243A30, "i")end, - ["SET_PED_SHOULD_PLAY_FLEE_SCENARIO_EXIT"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_bool(ped, p1, p2, p3, 0xEEED8FAFEC331A70, "iiii")end, - ["SET_PED_SHOULD_IGNORE_SCENARIO_EXIT_COLLISION_CHECKS"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1)return native_invoker.unified_void(ped, p1, 0x425AECF167663F48, "ib")end, - ["SET_PED_SHOULD_IGNORE_SCENARIO_NAV_CHECKS"]=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0x5B6010B3CBC29095, "ib")end, - ["SET_PED_SHOULD_PROBE_FOR_SCENARIO_EXITS_IN_ONE_FRAME"]=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0xCEDA60A74219D064, "ib")end, - ["IS_PED_GESTURING"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0xC30BDAEE47256C13, "i")end, - ["RESET_FACIAL_IDLE_ANIM"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x007FDE5A7897E426, "i")end, - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - ["PLAY_FACIAL_ANIM"]=--[[void]] function(--[[Ped (int)]] ped,--[[string]] animName,--[[string]] animDict)return native_invoker.unified_void(ped, animName, animDict, 0xE1E65CA8AC9C00ED, "iss")end, - -- Clipsets: - -- facials@gen_female@base - -- facials@gen_male@base - -- facials@p_m_zero@base - -- - -- Typically followed with SET_FACIAL_IDLE_ANIM_OVERRIDE: - -- mood_drunk_1 - -- mood_stressed_1 - -- mood_happy_1 - -- mood_talking_1 - -- - ["SET_FACIAL_CLIPSET"]=--[[void]] function(--[[Ped (int)]] ped,--[[string]] animDict)return native_invoker.unified_void(ped, animDict, 0x5687C7F05B39E401, "is")end, - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - ["SET_FACIAL_IDLE_ANIM_OVERRIDE"]=--[[void]] function(--[[Ped (int)]] ped,--[[string]] animName,--[[string]] animDict)return native_invoker.unified_void(ped, animName, animDict, 0xFFC24B988B938B38, "iss")end, - ["CLEAR_FACIAL_IDLE_ANIM_OVERRIDE"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x726256CC1EEB182F, "i")end, - ["SET_PED_CAN_PLAY_GESTURE_ANIMS"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xBAF20C5432058024, "ib")end, - -- p2 usually 0 - ["SET_PED_CAN_PLAY_VISEME_ANIMS"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle,--[[BOOL (bool)]] p2)return native_invoker.unified_void(ped, toggle, p2, 0xF833DDBA3B104D43, "ibb")end, - ["SET_PED_IS_IGNORED_BY_AUTO_OPEN_DOORS"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1)return native_invoker.unified_void(ped, p1, 0x33A60D8BDD6E508C, "ib")end, - ["SET_PED_CAN_PLAY_AMBIENT_ANIMS"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x6373D1349925A70E, "ib")end, - ["SET_PED_CAN_PLAY_AMBIENT_BASE_ANIMS"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x0EB0585D15254740, "ib")end, - ["TRIGGER_IDLE_ANIMATION_ON_PED"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xC2EE020F5FB4DB53, "i")end, - ["SET_PED_CAN_ARM_IK"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x6C3B4D6D13B4C841, "ib")end, - ["SET_PED_CAN_HEAD_IK"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xC11C18092C5530DC, "ib")end, - ["SET_PED_CAN_LEG_IK"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x73518ECE2485412B, "ib")end, - ["SET_PED_CAN_TORSO_IK"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xF2B7106D37947CE0, "ib")end, - ["SET_PED_CAN_TORSO_REACT_IK"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1)return native_invoker.unified_void(ped, p1, 0xF5846EDB26A98A24, "ib")end, - ["SET_PED_CAN_TORSO_VEHICLE_IK"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1)return native_invoker.unified_void(ped, p1, 0x6647C5F6F5792496, "ib")end, - ["SET_PED_CAN_USE_AUTO_CONVERSATION_LOOKAT"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xEC4686EC06434678, "ib")end, - ["IS_PED_HEADTRACKING_PED"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped1,--[[Ped (int)]] ped2)return native_invoker.unified_bool(ped1, ped2, 0x5CD3CB88A7F8850D, "ii")end, - ["IS_PED_HEADTRACKING_ENTITY"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Entity (int)]] entity)return native_invoker.unified_bool(ped, entity, 0x813A0A7C9D2E831F, "ii")end, - -- This is only called once in the scripts. - -- - -- sub_1CD9(&l_49, 0, getElem(3, &l_34, 4), "MICHAEL", 0, 1); - -- sub_1CA8("WORLD_HUMAN_SMOKING", 2); - -- PED::SET_PED_PRIMARY_LOOKAT(getElem(3, &l_34, 4), PLAYER::PLAYER_PED_ID()); - ["SET_PED_PRIMARY_LOOKAT"]=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] lookAt)return native_invoker.unified_void(ped, lookAt, 0xCD17B554996A8D9E, "ii")end, - ["SET_PED_CLOTH_PIN_FRAMES"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x78C4E9961DB3EB5B, "ii")end, - ["SET_PED_CLOTH_PACKAGE_INDEX"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x82A3D6D9CC2CB8E3, "ii")end, - ["SET_PED_CLOTH_PRONE"]=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0xA660FAF550EB37E5, "ib")end, - -- enum ePedConfigFlags - -- { - -- _CPED_CONFIG_FLAG_0xC63DE95E = 1, - -- CPED_CONFIG_FLAG_NoCriticalHits = 2, - -- CPED_CONFIG_FLAG_DrownsInWater = 3, - -- CPED_CONFIG_FLAG_DisableReticuleFixedLockon = 4, - -- _CPED_CONFIG_FLAG_0x37D196F4 = 5, - -- _CPED_CONFIG_FLAG_0xE2462399 = 6, - -- CPED_CONFIG_FLAG_UpperBodyDamageAnimsOnly = 7, - -- _CPED_CONFIG_FLAG_0xEDDEB838 = 8, - -- _CPED_CONFIG_FLAG_0xB398B6FD = 9, - -- _CPED_CONFIG_FLAG_0xF6664E68 = 10, - -- _CPED_CONFIG_FLAG_0xA05E7CA3 = 11, - -- _CPED_CONFIG_FLAG_0xCE394045 = 12, - -- CPED_CONFIG_FLAG_NeverLeavesGroup = 13, - -- _CPED_CONFIG_FLAG_0xCD8D1411 = 14, - -- _CPED_CONFIG_FLAG_0xB031F1A9 = 15, - -- _CPED_CONFIG_FLAG_0xFE65BEE3 = 16, - -- CPED_CONFIG_FLAG_BlockNonTemporaryEvents = 17, - -- _CPED_CONFIG_FLAG_0x380165BD = 18, - -- _CPED_CONFIG_FLAG_0x07C045C7 = 19, - -- _CPED_CONFIG_FLAG_0x583B5E2D = 20, - -- _CPED_CONFIG_FLAG_0x475EDA58 = 21, - -- _CPED_CONFIG_FLAG_0x8629D05B = 22, - -- _CPED_CONFIG_FLAG_0x1522968B = 23, - -- CPED_CONFIG_FLAG_IgnoreSeenMelee = 24, - -- _CPED_CONFIG_FLAG_0x4CC09C4B = 25, - -- _CPED_CONFIG_FLAG_0x034F3053 = 26, - -- _CPED_CONFIG_FLAG_0xD91BA7CC = 27, - -- _CPED_CONFIG_FLAG_0x5C8DC66E = 28, - -- CPED_CONFIG_FLAG_GetOutUndriveableVehicle = 29, - -- _CPED_CONFIG_FLAG_0x6580B9D2 = 30, - -- _CPED_CONFIG_FLAG_0x0EF7A297 = 31, - -- CPED_CONFIG_FLAG_WillFlyThruWindscreen = 32, - -- CPED_CONFIG_FLAG_DieWhenRagdoll = 33, - -- CPED_CONFIG_FLAG_HasHelmet = 34, - -- CPED_CONFIG_FLAG_UseHelmet = 35, - -- CPED_CONFIG_FLAG_DontTakeOffHelmet = 36, - -- _CPED_CONFIG_FLAG_0xB130D17B = 37, - -- _CPED_CONFIG_FLAG_0x5F071200 = 38, - -- CPED_CONFIG_FLAG_DisableEvasiveDives = 39, - -- _CPED_CONFIG_FLAG_0xC287AAFF = 40, - -- _CPED_CONFIG_FLAG_0x203328CC = 41, - -- CPED_CONFIG_FLAG_DontInfluenceWantedLevel = 42, - -- CPED_CONFIG_FLAG_DisablePlayerLockon = 43, - -- CPED_CONFIG_FLAG_DisableLockonToRandomPeds = 44, - -- CPED_CONFIG_FLAG_AllowLockonToFriendlyPlayers = 45, - -- _CPED_CONFIG_FLAG_0xDB115BFA = 46, - -- CPED_CONFIG_FLAG_PedBeingDeleted = 47, - -- CPED_CONFIG_FLAG_BlockWeaponSwitching = 48, - -- _CPED_CONFIG_FLAG_0xF8E99565 = 49, - -- _CPED_CONFIG_FLAG_0xDD17FEE6 = 50, - -- _CPED_CONFIG_FLAG_0x7ED9B2C9 = 51, - -- _CPED_CONFIG_FLAG_NoCollison = 52, - -- _CPED_CONFIG_FLAG_0x5A6C1F6E = 53, - -- _CPED_CONFIG_FLAG_0xD749FC41 = 54, - -- _CPED_CONFIG_FLAG_0x357F63F3 = 55, - -- _CPED_CONFIG_FLAG_0xC5E60961 = 56, - -- _CPED_CONFIG_FLAG_0x29275C3E = 57, - -- CPED_CONFIG_FLAG_IsFiring = 58, - -- CPED_CONFIG_FLAG_WasFiring = 59, - -- CPED_CONFIG_FLAG_IsStanding = 60, - -- CPED_CONFIG_FLAG_WasStanding = 61, - -- CPED_CONFIG_FLAG_InVehicle = 62, - -- CPED_CONFIG_FLAG_OnMount = 63, - -- CPED_CONFIG_FLAG_AttachedToVehicle = 64, - -- CPED_CONFIG_FLAG_IsSwimming = 65, - -- CPED_CONFIG_FLAG_WasSwimming = 66, - -- CPED_CONFIG_FLAG_IsSkiing = 67, - -- CPED_CONFIG_FLAG_IsSitting = 68, - -- CPED_CONFIG_FLAG_KilledByStealth = 69, - -- CPED_CONFIG_FLAG_KilledByTakedown = 70, - -- CPED_CONFIG_FLAG_Knockedout = 71, - -- _CPED_CONFIG_FLAG_0x3E3C4560 = 72, - -- _CPED_CONFIG_FLAG_0x2994C7B7 = 73, - -- _CPED_CONFIG_FLAG_0x6D59D275 = 74, - -- CPED_CONFIG_FLAG_UsingCoverPoint = 75, - -- CPED_CONFIG_FLAG_IsInTheAir = 76, - -- _CPED_CONFIG_FLAG_0x2D493FB7 = 77, - -- CPED_CONFIG_FLAG_IsAimingGun = 78, - -- _CPED_CONFIG_FLAG_0x14D69875 = 79, - -- _CPED_CONFIG_FLAG_0x40B05311 = 80, - -- _CPED_CONFIG_FLAG_0x8B230BC5 = 81, - -- _CPED_CONFIG_FLAG_0xC74E5842 = 82, - -- _CPED_CONFIG_FLAG_0x9EA86147 = 83, - -- _CPED_CONFIG_FLAG_0x674C746C = 84, - -- _CPED_CONFIG_FLAG_0x3E56A8C2 = 85, - -- _CPED_CONFIG_FLAG_0xC144A1EF = 86, - -- _CPED_CONFIG_FLAG_0x0548512D = 87, - -- _CPED_CONFIG_FLAG_0x31C93909 = 88, - -- _CPED_CONFIG_FLAG_0xA0269315 = 89, - -- _CPED_CONFIG_FLAG_0xD4D59D4D = 90, - -- _CPED_CONFIG_FLAG_0x411D4420 = 91, - -- _CPED_CONFIG_FLAG_0xDF4AEF0D = 92, - -- CPED_CONFIG_FLAG_ForcePedLoadCover = 93, - -- _CPED_CONFIG_FLAG_0x300E4CD3 = 94, - -- _CPED_CONFIG_FLAG_0xF1C5BF04 = 95, - -- _CPED_CONFIG_FLAG_0x89C2EF13 = 96, - -- CPED_CONFIG_FLAG_VaultFromCover = 97, - -- _CPED_CONFIG_FLAG_0x02A852C8 = 98, - -- _CPED_CONFIG_FLAG_0x3D9407F1 = 99, - -- _CPED_CONFIG_FLAG_IsDrunk = 100, // 0x319B4558 - -- CPED_CONFIG_FLAG_ForcedAim = 101, - -- _CPED_CONFIG_FLAG_0xB942D71A = 102, - -- _CPED_CONFIG_FLAG_0xD26C55A8 = 103, - -- CPED_CONFIG_FLAG_OpenDoorArmIK = 104, - -- CPED_CONFIG_FLAG_ForceReload = 105, - -- CPED_CONFIG_FLAG_DontActivateRagdollFromVehicleImpact = 106, - -- CPED_CONFIG_FLAG_DontActivateRagdollFromBulletImpact = 107, - -- CPED_CONFIG_FLAG_DontActivateRagdollFromExplosions = 108, - -- CPED_CONFIG_FLAG_DontActivateRagdollFromFire = 109, - -- CPED_CONFIG_FLAG_DontActivateRagdollFromElectrocution = 110, - -- _CPED_CONFIG_FLAG_0x83C0A4BF = 111, - -- _CPED_CONFIG_FLAG_0x0E0FAF8C = 112, - -- CPED_CONFIG_FLAG_KeepWeaponHolsteredUnlessFired = 113, - -- _CPED_CONFIG_FLAG_0x43B80B79 = 114, - -- _CPED_CONFIG_FLAG_0x0D2A9309 = 115, - -- CPED_CONFIG_FLAG_GetOutBurningVehicle = 116, - -- CPED_CONFIG_FLAG_BumpedByPlayer = 117, - -- CPED_CONFIG_FLAG_RunFromFiresAndExplosions = 118, - -- CPED_CONFIG_FLAG_TreatAsPlayerDuringTargeting = 119, - -- CPED_CONFIG_FLAG_IsHandCuffed = 120, - -- CPED_CONFIG_FLAG_IsAnkleCuffed = 121, - -- CPED_CONFIG_FLAG_DisableMelee = 122, - -- CPED_CONFIG_FLAG_DisableUnarmedDrivebys = 123, - -- CPED_CONFIG_FLAG_JustGetsPulledOutWhenElectrocuted = 124, - -- _CPED_CONFIG_FLAG_0x5FED6BFD = 125, - -- CPED_CONFIG_FLAG_WillNotHotwireLawEnforcementVehicle = 126, - -- CPED_CONFIG_FLAG_WillCommandeerRatherThanJack = 127, - -- CPED_CONFIG_FLAG_CanBeAgitated = 128, - -- CPED_CONFIG_FLAG_ForcePedToFaceLeftInCover = 129, - -- CPED_CONFIG_FLAG_ForcePedToFaceRightInCover = 130, - -- CPED_CONFIG_FLAG_BlockPedFromTurningInCover = 131, - -- CPED_CONFIG_FLAG_KeepRelationshipGroupAfterCleanUp = 132, - -- CPED_CONFIG_FLAG_ForcePedToBeDragged = 133, - -- CPED_CONFIG_FLAG_PreventPedFromReactingToBeingJacked = 134, - -- CPED_CONFIG_FLAG_IsScuba = 135, - -- CPED_CONFIG_FLAG_WillArrestRatherThanJack = 136, - -- CPED_CONFIG_FLAG_RemoveDeadExtraFarAway = 137, - -- CPED_CONFIG_FLAG_RidingTrain = 138, - -- CPED_CONFIG_FLAG_ArrestResult = 139, - -- CPED_CONFIG_FLAG_CanAttackFriendly = 140, - -- CPED_CONFIG_FLAG_WillJackAnyPlayer = 141, - -- _CPED_CONFIG_FLAG_0x6901E731 = 142, - -- _CPED_CONFIG_FLAG_0x9EC9BF6C = 143, - -- CPED_CONFIG_FLAG_WillJackWantedPlayersRatherThanStealCar = 144, - -- CPED_CONFIG_FLAG_ShootingAnimFlag = 145, - -- CPED_CONFIG_FLAG_DisableLadderClimbing = 146, - -- CPED_CONFIG_FLAG_StairsDetected = 147, - -- CPED_CONFIG_FLAG_SlopeDetected = 148, - -- _CPED_CONFIG_FLAG_0x1A15670B = 149, - -- CPED_CONFIG_FLAG_CowerInsteadOfFlee = 150, - -- CPED_CONFIG_FLAG_CanActivateRagdollWhenVehicleUpsideDown = 151, - -- CPED_CONFIG_FLAG_AlwaysRespondToCriesForHelp = 152, - -- CPED_CONFIG_FLAG_DisableBloodPoolCreation = 153, - -- CPED_CONFIG_FLAG_ShouldFixIfNoCollision = 154, - -- CPED_CONFIG_FLAG_CanPerformArrest = 155, - -- CPED_CONFIG_FLAG_CanPerformUncuff = 156, - -- CPED_CONFIG_FLAG_CanBeArrested = 157, - -- _CPED_CONFIG_FLAG_0xF7960FF5 = 158, - -- CPED_CONFIG_FLAG_PlayerPreferFrontSeatMP = 159, - -- _CPED_CONFIG_FLAG_0x0C6C3099 = 160, - -- _CPED_CONFIG_FLAG_0x645F927A = 161, - -- _CPED_CONFIG_FLAG_0xA86549B9 = 162, - -- _CPED_CONFIG_FLAG_0x8AAF337A = 163, - -- _CPED_CONFIG_FLAG_0x13BAA6E7 = 164, - -- _CPED_CONFIG_FLAG_0x5FB9D1F5 = 165, - -- CPED_CONFIG_FLAG_IsInjured = 166, - -- CPED_CONFIG_FLAG_DontEnterVehiclesInPlayersGroup = 167, - -- _CPED_CONFIG_FLAG_0xD8072639 = 168, - -- CPED_CONFIG_FLAG_PreventAllMeleeTaunts = 169, - -- CPED_CONFIG_FLAG_ForceDirectEntry = 170, - -- CPED_CONFIG_FLAG_AlwaysSeeApproachingVehicles = 171, - -- CPED_CONFIG_FLAG_CanDiveAwayFromApproachingVehicles = 172, - -- CPED_CONFIG_FLAG_AllowPlayerToInterruptVehicleEntryExit = 173, - -- CPED_CONFIG_FLAG_OnlyAttackLawIfPlayerIsWanted = 174, - -- _CPED_CONFIG_FLAG_0x90008BFA = 175, - -- _CPED_CONFIG_FLAG_0x07C7A910 = 176, - -- CPED_CONFIG_FLAG_PedsJackingMeDontGetIn = 177, - -- _CPED_CONFIG_FLAG_0xCE4E8BE2 = 178, - -- CPED_CONFIG_FLAG_PedIgnoresAnimInterruptEvents = 179, - -- CPED_CONFIG_FLAG_IsInCustody = 180, - -- CPED_CONFIG_FLAG_ForceStandardBumpReactionThresholds = 181, - -- CPED_CONFIG_FLAG_LawWillOnlyAttackIfPlayerIsWanted = 182, - -- CPED_CONFIG_FLAG_IsAgitated = 183, - -- CPED_CONFIG_FLAG_PreventAutoShuffleToDriversSeat = 184, - -- CPED_CONFIG_FLAG_UseKinematicModeWhenStationary = 185, - -- CPED_CONFIG_FLAG_EnableWeaponBlocking = 186, - -- CPED_CONFIG_FLAG_HasHurtStarted = 187, - -- CPED_CONFIG_FLAG_DisableHurt = 188, - -- CPED_CONFIG_FLAG_PlayerIsWeird = 189, - -- _CPED_CONFIG_FLAG_0x32FC208B = 190, - -- _CPED_CONFIG_FLAG_0x0C296E5A = 191, - -- _CPED_CONFIG_FLAG_0xE63B73EC = 192, - -- CPED_CONFIG_FLAG_DoNothingWhenOnFootByDefault = 193, - -- CPED_CONFIG_FLAG_UsingScenario = 194, - -- CPED_CONFIG_FLAG_VisibleOnScreen = 195, - -- _CPED_CONFIG_FLAG_0xD88C58A1 = 196, - -- _CPED_CONFIG_FLAG_0x5A3DCF43 = 197, - -- _CPED_CONFIG_FLAG_0xEA02B420 = 198, - -- CPED_CONFIG_FLAG_DontActivateRagdollOnVehicleCollisionWhenDead = 199, - -- CPED_CONFIG_FLAG_HasBeenInArmedCombat = 200, - -- _CPED_CONFIG_FLAG_0x5E6466F6 = 201, - -- CPED_CONFIG_FLAG_Avoidance_Ignore_All = 202, - -- CPED_CONFIG_FLAG_Avoidance_Ignored_by_All = 203, - -- CPED_CONFIG_FLAG_Avoidance_Ignore_Group1 = 204, - -- CPED_CONFIG_FLAG_Avoidance_Member_of_Group1 = 205, - -- CPED_CONFIG_FLAG_ForcedToUseSpecificGroupSeatIndex = 206, - -- _CPED_CONFIG_FLAG_0x415B26B9 = 207, - -- CPED_CONFIG_FLAG_DisableExplosionReactions = 208, - -- CPED_CONFIG_FLAG_DodgedPlayer = 209, - -- CPED_CONFIG_FLAG_WaitingForPlayerControlInterrupt = 210, - -- CPED_CONFIG_FLAG_ForcedToStayInCover = 211, - -- CPED_CONFIG_FLAG_GeneratesSoundEvents = 212, - -- CPED_CONFIG_FLAG_ListensToSoundEvents = 213, - -- CPED_CONFIG_FLAG_AllowToBeTargetedInAVehicle = 214, - -- CPED_CONFIG_FLAG_WaitForDirectEntryPointToBeFreeWhenExiting = 215, - -- CPED_CONFIG_FLAG_OnlyRequireOnePressToExitVehicle = 216, - -- CPED_CONFIG_FLAG_ForceExitToSkyDive = 217, - -- _CPED_CONFIG_FLAG_0x3C7DF9DF = 218, - -- _CPED_CONFIG_FLAG_0x848FFEF2 = 219, - -- CPED_CONFIG_FLAG_DontEnterLeadersVehicle = 220, - -- CPED_CONFIG_FLAG_DisableExitToSkyDive = 221, - -- _CPED_CONFIG_FLAG_0x84F722FA = 222, - -- _CPED_CONFIG_FLAG_Shrink = 223, // 0xD1B87B1F - -- _CPED_CONFIG_FLAG_0x728AA918 = 224, - -- CPED_CONFIG_FLAG_DisablePotentialToBeWalkedIntoResponse = 225, - -- CPED_CONFIG_FLAG_DisablePedAvoidance = 226, - -- CPED_CONFIG_FLAG_ForceRagdollUponDeath = 227, - -- _CPED_CONFIG_FLAG_0x1EA7225F = 228, - -- CPED_CONFIG_FLAG_DisablePanicInVehicle = 229, - -- CPED_CONFIG_FLAG_AllowedToDetachTrailer = 230, - -- _CPED_CONFIG_FLAG_0xFC3E572D = 231, - -- _CPED_CONFIG_FLAG_0x08E9F9CF = 232, - -- _CPED_CONFIG_FLAG_0x2D3BA52D = 233, - -- _CPED_CONFIG_FLAG_0xFD2F53EA = 234, - -- _CPED_CONFIG_FLAG_0x31A1B03B = 235, - -- CPED_CONFIG_FLAG_IsHoldingProp = 236, - -- CPED_CONFIG_FLAG_BlocksPathingWhenDead = 237, - -- _CPED_CONFIG_FLAG_0xCE57C9A3 = 238, - -- _CPED_CONFIG_FLAG_0x26149198 = 239, - -- CPED_CONFIG_FLAG_ForceSkinCharacterCloth = 240, - -- CPED_CONFIG_FLAG_LeaveEngineOnWhenExitingVehicles = 241, - -- CPED_CONFIG_FLAG_PhoneDisableTextingAnimations = 242, - -- CPED_CONFIG_FLAG_PhoneDisableTalkingAnimations = 243, - -- CPED_CONFIG_FLAG_PhoneDisableCameraAnimations = 244, - -- CPED_CONFIG_FLAG_DisableBlindFiringInShotReactions = 245, - -- CPED_CONFIG_FLAG_AllowNearbyCoverUsage = 246, - -- _CPED_CONFIG_FLAG_0x0C754ACA = 247, - -- CPED_CONFIG_FLAG_CanPlayInCarIdles = 248, - -- CPED_CONFIG_FLAG_CanAttackNonWantedPlayerAsLaw = 249, - -- CPED_CONFIG_FLAG_WillTakeDamageWhenVehicleCrashes = 250, - -- CPED_CONFIG_FLAG_AICanDrivePlayerAsRearPassenger = 251, - -- CPED_CONFIG_FLAG_PlayerCanJackFriendlyPlayers = 252, - -- CPED_CONFIG_FLAG_OnStairs = 253, - -- _CPED_CONFIG_FLAG_0xE1A2F73F = 254, - -- CPED_CONFIG_FLAG_AIDriverAllowFriendlyPassengerSeatEntry = 255, - -- _CPED_CONFIG_FLAG_0xF1EB20A9 = 256, - -- CPED_CONFIG_FLAG_AllowMissionPedToUseInjuredMovement = 257, - -- _CPED_CONFIG_FLAG_0x329DCF1A = 258, - -- _CPED_CONFIG_FLAG_0x8D90DD1B = 259, - -- _CPED_CONFIG_FLAG_0xB8A292B7 = 260, - -- CPED_CONFIG_FLAG_PreventUsingLowerPrioritySeats = 261, - -- _CPED_CONFIG_FLAG_0x2AF558F0 = 262, - -- _CPED_CONFIG_FLAG_0x82251455 = 263, - -- _CPED_CONFIG_FLAG_0x30CF498B = 264, - -- _CPED_CONFIG_FLAG_0xE1CD50AF = 265, - -- _CPED_CONFIG_FLAG_0x72E4AE48 = 266, - -- _CPED_CONFIG_FLAG_0xC2657EA1 = 267, - -- CPED_CONFIG_FLAG_TeleportToLeaderVehicle = 268, - -- CPED_CONFIG_FLAG_Avoidance_Ignore_WeirdPedBuffer = 269, - -- CPED_CONFIG_FLAG_OnStairSlope = 270, - -- _CPED_CONFIG_FLAG_0xA0897933 = 271, - -- CPED_CONFIG_FLAG_DontBlipCop = 272, - -- CPED_CONFIG_FLAG_ClimbedShiftedFence = 273, - -- _CPED_CONFIG_FLAG_0xF7823618 = 274, - -- CPED_CONFIG_FLAG_KillWhenTrapped = 275, - -- CPED_CONFIG_FLAG_EdgeDetected = 276, - -- _CPED_CONFIG_FLAG_0x92B67896 = 277, - -- _CPED_CONFIG_FLAG_0xCAD677C9 = 278, - -- CPED_CONFIG_FLAG_AvoidTearGas = 279, - -- _CPED_CONFIG_FLAG_0x5276AC7B = 280, - -- CPED_CONFIG_FLAG_DisableGoToWritheWhenInjured = 281, - -- CPED_CONFIG_FLAG_OnlyUseForcedSeatWhenEnteringHeliInGroup = 282, - -- _CPED_CONFIG_FLAG_0x9139724D = 283, - -- _CPED_CONFIG_FLAG_0xA1457461 = 284, - -- CPED_CONFIG_FLAG_DisableWeirdPedEvents = 285, - -- CPED_CONFIG_FLAG_ShouldChargeNow = 286, - -- CPED_CONFIG_FLAG_RagdollingOnBoat = 287, - -- CPED_CONFIG_FLAG_HasBrandishedWeapon = 288, - -- _CPED_CONFIG_FLAG_0x1B9EE8A1 = 289, - -- _CPED_CONFIG_FLAG_0xF3F5758C = 290, - -- _CPED_CONFIG_FLAG_0x2A9307F1 = 291, - -- _CPED_CONFIG_FLAG_FreezePosition = 292, // 0x7403D216 - -- _CPED_CONFIG_FLAG_0xA06A3C6C = 293, - -- CPED_CONFIG_FLAG_DisableShockingEvents = 294, - -- _CPED_CONFIG_FLAG_0xF8DA25A5 = 295, - -- CPED_CONFIG_FLAG_NeverReactToPedOnRoof = 296, - -- _CPED_CONFIG_FLAG_0xB31F1187 = 297, - -- _CPED_CONFIG_FLAG_0x84315402 = 298, - -- CPED_CONFIG_FLAG_DisableShockingDrivingOnPavementEvents = 299, - -- _CPED_CONFIG_FLAG_0xC7829B67 = 300, - -- CPED_CONFIG_FLAG_DisablePedConstraints = 301, - -- CPED_CONFIG_FLAG_ForceInitialPeekInCover = 302, - -- _CPED_CONFIG_FLAG_0x2ADA871B = 303, - -- _CPED_CONFIG_FLAG_0x47BC8A58 = 304, - -- CPED_CONFIG_FLAG_DisableJumpingFromVehiclesAfterLeader = 305, - -- _CPED_CONFIG_FLAG_0x4A133C50 = 306, - -- _CPED_CONFIG_FLAG_0xC58099C3 = 307, - -- _CPED_CONFIG_FLAG_0xF3D76D41 = 308, - -- _CPED_CONFIG_FLAG_0xB0EEE9F2 = 309, - -- CPED_CONFIG_FLAG_IsInCluster = 310, - -- CPED_CONFIG_FLAG_ShoutToGroupOnPlayerMelee = 311, - -- CPED_CONFIG_FLAG_IgnoredByAutoOpenDoors = 312, - -- _CPED_CONFIG_FLAG_0xD4136C22 = 313, - -- CPED_CONFIG_FLAG_ForceIgnoreMeleeActiveCombatant = 314, - -- CPED_CONFIG_FLAG_CheckLoSForSoundEvents = 315, - -- _CPED_CONFIG_FLAG_0xD5C98277 = 316, - -- CPED_CONFIG_FLAG_CanSayFollowedByPlayerAudio = 317, - -- CPED_CONFIG_FLAG_ActivateRagdollFromMinorPlayerContact = 318, - -- _CPED_CONFIG_FLAG_0xD8BE1D54 = 319, - -- CPED_CONFIG_FLAG_ForcePoseCharacterCloth = 320, - -- CPED_CONFIG_FLAG_HasClothCollisionBounds = 321, - -- CPED_CONFIG_FLAG_HasHighHeels = 322, - -- _CPED_CONFIG_FLAG_0x86B01E54 = 323, - -- CPED_CONFIG_FLAG_DontBehaveLikeLaw = 324, - -- _CPED_CONFIG_FLAG_0xC03B736C = 325, // SpawnedAtScenario? - -- CPED_CONFIG_FLAG_DisablePoliceInvestigatingBody = 326, - -- CPED_CONFIG_FLAG_DisableWritheShootFromGround = 327, - -- CPED_CONFIG_FLAG_LowerPriorityOfWarpSeats = 328, - -- CPED_CONFIG_FLAG_DisableTalkTo = 329, - -- CPED_CONFIG_FLAG_DontBlip = 330, - -- CPED_CONFIG_FLAG_IsSwitchingWeapon = 331, - -- CPED_CONFIG_FLAG_IgnoreLegIkRestrictions = 332, - -- _CPED_CONFIG_FLAG_0x150468FD = 333, - -- _CPED_CONFIG_FLAG_0x914EBD6B = 334, - -- _CPED_CONFIG_FLAG_0x79AF3B6D = 335, - -- _CPED_CONFIG_FLAG_0x75C7A632 = 336, - -- _CPED_CONFIG_FLAG_0x52D530E2 = 337, - -- _CPED_CONFIG_FLAG_0xDB2A90E0 = 338, - -- CPED_CONFIG_FLAG_AllowTaskDoNothingTimeslicing = 339, - -- _CPED_CONFIG_FLAG_0x12ADB567 = 340, - -- _CPED_CONFIG_FLAG_0x105C8518 = 341, - -- CPED_CONFIG_FLAG_NotAllowedToJackAnyPlayers = 342, - -- _CPED_CONFIG_FLAG_0xED152C3E = 343, - -- _CPED_CONFIG_FLAG_0xA0EFE6A8 = 344, - -- CPED_CONFIG_FLAG_AlwaysLeaveTrainUponArrival = 345, - -- _CPED_CONFIG_FLAG_0xCDDFE830 = 346, - -- CPED_CONFIG_FLAG_OnlyWritheFromWeaponDamage = 347, - -- CPED_CONFIG_FLAG_UseSloMoBloodVfx = 348, - -- CPED_CONFIG_FLAG_EquipJetpack = 349, - -- CPED_CONFIG_FLAG_PreventDraggedOutOfCarThreatResponse = 350, - -- _CPED_CONFIG_FLAG_0xE13D1F7C = 351, - -- _CPED_CONFIG_FLAG_0x40E25FB9 = 352, - -- _CPED_CONFIG_FLAG_0x930629D9 = 353, - -- _CPED_CONFIG_FLAG_0xECCF0C7F = 354, - -- _CPED_CONFIG_FLAG_0xB6E9613B = 355, - -- CPED_CONFIG_FLAG_ForceDeepSurfaceCheck = 356, - -- CPED_CONFIG_FLAG_DisableDeepSurfaceAnims = 357, - -- CPED_CONFIG_FLAG_DontBlipNotSynced = 358, - -- CPED_CONFIG_FLAG_IsDuckingInVehicle = 359, - -- CPED_CONFIG_FLAG_PreventAutoShuffleToTurretSeat = 360, - -- CPED_CONFIG_FLAG_DisableEventInteriorStatusCheck = 361, - -- CPED_CONFIG_FLAG_HasReserveParachute = 362, - -- CPED_CONFIG_FLAG_UseReserveParachute = 363, - -- CPED_CONFIG_FLAG_TreatDislikeAsHateWhenInCombat = 364, - -- CPED_CONFIG_FLAG_OnlyUpdateTargetWantedIfSeen = 365, - -- CPED_CONFIG_FLAG_AllowAutoShuffleToDriversSeat = 366, - -- _CPED_CONFIG_FLAG_0xD7E07D37 = 367, - -- _CPED_CONFIG_FLAG_0x03C4FD24 = 368, - -- _CPED_CONFIG_FLAG_0x7675789A = 369, - -- _CPED_CONFIG_FLAG_0xB7288A88 = 370, - -- _CPED_CONFIG_FLAG_0xC06B6291 = 371, - -- CPED_CONFIG_FLAG_PreventReactingToSilencedCloneBullets = 372, - -- CPED_CONFIG_FLAG_DisableInjuredCryForHelpEvents = 373, - -- CPED_CONFIG_FLAG_NeverLeaveTrain = 374, - -- CPED_CONFIG_FLAG_DontDropJetpackOnDeath = 375, - -- _CPED_CONFIG_FLAG_0x147F1FFB = 376, - -- _CPED_CONFIG_FLAG_0x4376DD79 = 377, - -- _CPED_CONFIG_FLAG_0xCD3DB518 = 378, - -- _CPED_CONFIG_FLAG_0xFE4BA4B6 = 379, - -- CPED_CONFIG_FLAG_DisableAutoEquipHelmetsInBikes = 380, - -- _CPED_CONFIG_FLAG_0xBCD816CD = 381, - -- _CPED_CONFIG_FLAG_0xCF02DD69 = 382, - -- _CPED_CONFIG_FLAG_0xF73AFA2E = 383, - -- _CPED_CONFIG_FLAG_0x80B9A9D0 = 384, - -- _CPED_CONFIG_FLAG_0xF601F7EE = 385, - -- _CPED_CONFIG_FLAG_0xA91350FC = 386, - -- _CPED_CONFIG_FLAG_0x3AB23B96 = 387, - -- CPED_CONFIG_FLAG_IsClimbingLadder = 388, - -- CPED_CONFIG_FLAG_HasBareFeet = 389, - -- CPED_CONFIG_FLAG_UNUSED_REPLACE_ME_2 = 390, - -- CPED_CONFIG_FLAG_GoOnWithoutVehicleIfItIsUnableToGetBackToRoad = 391, - -- CPED_CONFIG_FLAG_BlockDroppingHealthSnacksOnDeath = 392, - -- _CPED_CONFIG_FLAG_0xC11D3E8F = 393, - -- CPED_CONFIG_FLAG_ForceThreatResponseToNonFriendToFriendMeleeActions = 394, - -- CPED_CONFIG_FLAG_DontRespondToRandomPedsDamage = 395, - -- CPED_CONFIG_FLAG_AllowContinuousThreatResponseWantedLevelUpdates = 396, - -- CPED_CONFIG_FLAG_KeepTargetLossResponseOnCleanup = 397, - -- CPED_CONFIG_FLAG_PlayersDontDragMeOutOfCar = 398, - -- CPED_CONFIG_FLAG_BroadcastRepondedToThreatWhenGoingToPointShooting = 399, - -- CPED_CONFIG_FLAG_IgnorePedTypeForIsFriendlyWith = 400, - -- CPED_CONFIG_FLAG_TreatNonFriendlyAsHateWhenInCombat = 401, - -- CPED_CONFIG_FLAG_DontLeaveVehicleIfLeaderNotInVehicle = 402, - -- _CPED_CONFIG_FLAG_0x5E5B9591 = 403, - -- CPED_CONFIG_FLAG_AllowMeleeReactionIfMeleeProofIsOn = 404, - -- _CPED_CONFIG_FLAG_0x77840177 = 405, - -- _CPED_CONFIG_FLAG_0x1C7ACAC4 = 406, - -- CPED_CONFIG_FLAG_UseNormalExplosionDamageWhenBlownUpInVehicle = 407, - -- CPED_CONFIG_FLAG_DisableHomingMissileLockForVehiclePedInside = 408, - -- CPED_CONFIG_FLAG_DisableTakeOffScubaGear = 409, - -- CPED_CONFIG_FLAG_IgnoreMeleeFistWeaponDamageMult = 410, - -- CPED_CONFIG_FLAG_LawPedsCanFleeFromNonWantedPlayer = 411, - -- CPED_CONFIG_FLAG_ForceBlipSecurityPedsIfPlayerIsWanted = 412, - -- CPED_CONFIG_FLAG_IsHolsteringWeapon = 413, - -- CPED_CONFIG_FLAG_UseGoToPointForScenarioNavigation = 414, - -- CPED_CONFIG_FLAG_DontClearLocalPassengersWantedLevel = 415, - -- CPED_CONFIG_FLAG_BlockAutoSwapOnWeaponPickups = 416, - -- CPED_CONFIG_FLAG_ThisPedIsATargetPriorityForAI = 417, - -- CPED_CONFIG_FLAG_IsSwitchingHelmetVisor = 418, - -- CPED_CONFIG_FLAG_ForceHelmetVisorSwitch = 419, - -- _CPED_CONFIG_FLAG_0xCFF5F6DE = 420, - -- CPED_CONFIG_FLAG_UseOverrideFootstepPtFx = 421, - -- CPED_CONFIG_FLAG_DisableVehicleCombat = 422, - -- _CPED_CONFIG_FLAG_0xFE401D26 = 423, - -- CPED_CONFIG_FLAG_FallsLikeAircraft = 424, - -- _CPED_CONFIG_FLAG_0x2B42AE82 = 425, - -- CPED_CONFIG_FLAG_UseLockpickVehicleEntryAnimations = 426, - -- CPED_CONFIG_FLAG_IgnoreInteriorCheckForSprinting = 427, - -- CPED_CONFIG_FLAG_SwatHeliSpawnWithinLastSpottedLocation = 428, - -- CPED_CONFIG_FLAG_DisableStartEngine = 429, - -- CPED_CONFIG_FLAG_IgnoreBeingOnFire = 430, - -- CPED_CONFIG_FLAG_DisableTurretOrRearSeatPreference = 431, - -- CPED_CONFIG_FLAG_DisableWantedHelicopterSpawning = 432, - -- CPED_CONFIG_FLAG_UseTargetPerceptionForCreatingAimedAtEvents = 433, - -- CPED_CONFIG_FLAG_DisableHomingMissileLockon = 434, - -- CPED_CONFIG_FLAG_ForceIgnoreMaxMeleeActiveSupportCombatants = 435, - -- CPED_CONFIG_FLAG_StayInDefensiveAreaWhenInVehicle = 436, - -- CPED_CONFIG_FLAG_DontShoutTargetPosition = 437, - -- CPED_CONFIG_FLAG_DisableHelmetArmor = 438, - -- _CPED_CONFIG_FLAG_0xCB7F3A1E = 439, - -- _CPED_CONFIG_FLAG_0x50178878 = 440, - -- CPED_CONFIG_FLAG_PreventVehExitDueToInvalidWeapon = 441, - -- CPED_CONFIG_FLAG_IgnoreNetSessionFriendlyFireCheckForAllowDamage = 442, - -- CPED_CONFIG_FLAG_DontLeaveCombatIfTargetPlayerIsAttackedByPolice = 443, - -- CPED_CONFIG_FLAG_CheckLockedBeforeWarp = 444, - -- CPED_CONFIG_FLAG_DontShuffleInVehicleToMakeRoom = 445, - -- CPED_CONFIG_FLAG_GiveWeaponOnGetup = 446, - -- CPED_CONFIG_FLAG_DontHitVehicleWithProjectiles = 447, - -- CPED_CONFIG_FLAG_DisableForcedEntryForOpenVehiclesFromTryLockedDoor = 448, - -- CPED_CONFIG_FLAG_FiresDummyRockets = 449, - -- CPED_CONFIG_FLAG_PedIsArresting = 450, - -- CPED_CONFIG_FLAG_IsDecoyPed = 451, - -- CPED_CONFIG_FLAG_HasEstablishedDecoy = 452, - -- CPED_CONFIG_FLAG_BlockDispatchedHelicoptersFromLanding = 453, - -- CPED_CONFIG_FLAG_DontCryForHelpOnStun = 454, - -- _CPED_CONFIG_FLAG_0xB68D3EAB = 455, - -- CPED_CONFIG_FLAG_CanBeIncapacitated = 456, - -- _CPED_CONFIG_FLAG_0x4BD5EBAD = 457, - -- CPED_CONFIG_FLAG_DontChangeTargetFromMelee = 458, - -- }; - ["SET_PED_CONFIG_FLAG"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] flagId,--[[BOOL (bool)]] value)return native_invoker.unified_void(ped, flagId, value, 0x1913FE4CBF41C463, "iib")end, - -- PED::SET_PED_RESET_FLAG(PLAYER::PLAYER_PED_ID(), 240, 1); - -- Known values: - -- PRF_PreventGoingIntoStillInVehicleState = 236 *(fanatic2.c)* - ["SET_PED_RESET_FLAG"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] flagId,--[[BOOL (bool)]] doReset)return native_invoker.unified_void(ped, flagId, doReset, 0xC1E8A365BF3B29F2, "iib")end, - -- See SET_PED_CONFIG_FLAG - ["GET_PED_CONFIG_FLAG"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[int]] flagId,--[[BOOL (bool)]] p2)return native_invoker.unified_bool(ped, flagId, p2, 0x7EE53118C892B513, "iib")end, - ["GET_PED_RESET_FLAG"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[int]] flagId)return native_invoker.unified_bool(ped, flagId, 0xAF9E59B1B1FBF2A0, "ii")end, - ["SET_PED_GROUP_MEMBER_PASSENGER_INDEX"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] index)return native_invoker.unified_void(ped, index, 0x0BDDB8D9EC6BCF3C, "ii")end, - ["SET_PED_CAN_EVASIVE_DIVE"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x6B7A646C242A7059, "ib")end, - -- Presumably returns the Entity that the Ped is currently diving out of the way of. - -- - -- var num3; - -- if (PED::IS_PED_EVASIVE_DIVING(A_0, &num3) != 0) - -- if (ENTITY::IS_ENTITY_A_VEHICLE(num3) != 0) - ["IS_PED_EVASIVE_DIVING"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Entity* (pointer)]] evadingEntity)return native_invoker.unified_bool(ped, evadingEntity, 0x414641C26E105898, "ip")end, - ["SET_PED_SHOOTS_AT_COORD"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, x, y, z, toggle, 0x96A05E4FB321B1BA, "ifffb")end, - -- Full list of peds by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/peds.json - ["SET_PED_MODEL_IS_SUPPRESSED"]=--[[void]] function(--[[Hash (int)]] modelHash,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(modelHash, toggle, 0xE163A4BCE4DE6F11, "ib")end, - ["STOP_ANY_PED_MODEL_BEING_SUPPRESSED"]=--[[void]] function()return native_invoker.unified_void(0xB47BD05FA66B40CF, "")end, - ["SET_PED_CAN_BE_TARGETED_WHEN_INJURED"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x638C03B0F9878F57, "ib")end, - ["SET_PED_GENERATES_DEAD_BODY_EVENTS"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x7FB17BA2E7DECA5B, "ib")end, - ["BLOCK_PED_FROM_GENERATING_DEAD_BODY_EVENTS_WHEN_DEAD"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xE43A13C9E4CCCBCF, "ib")end, - ["SET_PED_WILL_ONLY_ATTACK_WANTED_PLAYER"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x3E9679C1DFCF422C, "ii")end, - ["SET_PED_CAN_RAGDOLL_FROM_PLAYER_IMPACT"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xDF993EE5E90ABA25, "ib")end, - -- PoliceMotorcycleHelmet 1024 - -- RegularMotorcycleHelmet 4096 - -- FiremanHelmet 16384 - -- PilotHeadset 32768 - -- PilotHelmet 65536 - -- -- - -- p2 is generally 4096 or 16384 in the scripts. p1 varies between 1 and 0. - ["GIVE_PED_HELMET"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] cannotRemove,--[[int]] helmetFlag,--[[int]] textureIndex)return native_invoker.unified_void(ped, cannotRemove, helmetFlag, textureIndex, 0x54C7C4A94367717E, "ibii")end, - ["REMOVE_PED_HELMET"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] instantly)return native_invoker.unified_void(ped, instantly, 0xA7B2458D0AD6DED8, "ib")end, - ["IS_PED_TAKING_OFF_HELMET"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x14590DDBEDB1EC85, "i")end, - ["SET_PED_HELMET"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] canWearHelmet)return native_invoker.unified_void(ped, canWearHelmet, 0x560A43136EB58105, "ib")end, - ["SET_PED_HELMET_FLAG"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] helmetFlag)return native_invoker.unified_void(ped, helmetFlag, 0xC0E78D5C2CE3EB25, "ii")end, - -- List of component/props ID - -- gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html - ["SET_PED_HELMET_PROP_INDEX"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] propIndex,--[[BOOL (bool)]] p2)return native_invoker.unified_void(ped, propIndex, p2, 0x26D83693ED99291C, "iib")end, - ["SET_PED_HELMET_VISOR_PROP_INDICES"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1,--[[int]] p2,--[[int]] p3)return native_invoker.unified_void(ped, p1, p2, p3, 0x3F7325574E41B44D, "ibii")end, - ["IS_PED_HELMET_VISOR_UP"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xB9496CE47546DB2C, "i")end, - ["SET_PED_HELMET_TEXTURE_INDEX"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] textureIndex)return native_invoker.unified_void(ped, textureIndex, 0xF1550C4BD22582E2, "ii")end, - -- Returns true if the ped passed through the parenthesis is wearing a helmet. - ["IS_PED_WEARING_HELMET"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xF33BDFE19B309B19, "i")end, - ["CLEAR_PED_STORED_HAT_PROP"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x687C0B594907D2E8, "i")end, - ["GET_PED_HELMET_STORED_HAT_PROP_INDEX"]=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x451294E859ECC018, "i")end, - ["GET_PED_HELMET_STORED_HAT_TEX_INDEX"]=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x9D728C1E12BF5518, "i")end, - ["IS_CURRENT_HEAD_PROP_A_HELMET"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0xF2385935BFFD4D92, "i")end, - ["SET_PED_TO_LOAD_COVER"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x332B562EEDA62399, "ib")end, - -- It simply makes the said ped to cower behind cover object(wall, desk, car) - -- - -- Peds flee attributes must be set to not to flee, first. Else, most of the peds, will just flee from gunshot sounds or any other panic situations. - ["SET_PED_CAN_COWER_IN_COVER"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xCB7553CDCEF4A735, "ib")end, - ["SET_PED_CAN_PEEK_IN_COVER"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xC514825C507E3736, "ib")end, - -- This native does absolutely nothing, just a nullsub - ["SET_PED_PLAYS_HEAD_ON_HORN_ANIM_WHEN_DIES_IN_VEHICLE"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x94D94BF1A75AED3D, "ib")end, - -- "IK" stands for "Inverse kinematics." I assume this has something to do with how the ped uses his legs to balance. In the scripts, the second parameter is always an int with a value of 2, 0, or sometimes 1 - ["SET_PED_LEG_IK_MODE"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] mode)return native_invoker.unified_void(ped, mode, 0xC396F5B86FF9FEBD, "ii")end, - ["SET_PED_MOTION_BLUR"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x0A986918B102B448, "ib")end, - ["SET_PED_CAN_SWITCH_WEAPON"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xED7F7EFE9FABF340, "ib")end, - ["SET_PED_DIES_INSTANTLY_IN_WATER"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xEEB64139BA29A7CF, "ib")end, - -- Only appears in lamar1 script. - ["SET_LADDER_CLIMB_INPUT_STATE"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] p1)return native_invoker.unified_void(ped, p1, 0x1A330D297AAC6BC1, "ii")end, - ["STOP_PED_WEAPON_FIRING_WHEN_DROPPED"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xC158D28142A34608, "i")end, - ["SET_SCRIPTED_ANIM_SEAT_OFFSET"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] p1)return native_invoker.unified_void(ped, p1, 0x5917BBA32D06C230, "if")end, - -- enum eCombatMovement // 0x4F456B61 - -- { - -- CM_Stationary, - -- CM_Defensive, - -- CM_WillAdvance, - -- CM_WillRetreat - -- }; - ["SET_PED_COMBAT_MOVEMENT"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] combatMovement)return native_invoker.unified_void(ped, combatMovement, 0x4D9CA1009AFBD057, "ii")end, - -- See SET_PED_COMBAT_MOVEMENT - ["GET_PED_COMBAT_MOVEMENT"]=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0xDEA92412FCAEB3F5, "i")end, - -- enum eCombatAbility // 0xE793438C - -- { - -- CA_Poor, - -- CA_Average, - -- CA_Professional, - -- CA_NumTypes - -- }; - ["SET_PED_COMBAT_ABILITY"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] abilityLevel)return native_invoker.unified_void(ped, abilityLevel, 0xC7622C0D36B2FDA8, "ii")end, - -- enum eCombatRange // 0xB69160F5 - -- { - -- CR_Near, - -- CR_Medium, - -- CR_Far, - -- CR_VeryFar, - -- CR_NumRanges - -- }; - ["SET_PED_COMBAT_RANGE"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] combatRange)return native_invoker.unified_void(ped, combatRange, 0x3C606747B23E497B, "ii")end, - -- See SET_PED_COMBAT_RANGE - ["GET_PED_COMBAT_RANGE"]=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0xF9D9F7F2DB8E2FA0, "i")end, - -- enum eCombatAttributes // 0x0E8E7201 - -- { - -- BF_CanUseCover = 0, - -- BF_CanUseVehicles = 1, - -- BF_CanDoDrivebys = 2, - -- BF_CanLeaveVehicle = 3, - -- BF_CanUseDynamicStrafeDecisions = 4, - -- BF_AlwaysFight = 5, - -- BF_0x66BB9FCC = 6, - -- BF_0x6837DA41 = 7, - -- BF_0xB4A13A5A = 8, - -- BF_0xEE326AAD = 9, - -- BF_0x7DF2CCFA = 10, - -- BF_0x0036D422 = 11, - -- BF_BlindFireWhenInCover = 12, - -- BF_Aggressive = 13, - -- BF_CanInvestigate = 14, - -- BF_HasRadio = 15, - -- BF_0x6BDE28D1 = 16, - -- BF_AlwaysFlee = 17, - -- BF_0x7852797D = 18, - -- BF_0x33497B95 = 19, - -- BF_CanTauntInVehicle = 20, - -- BF_CanChaseTargetOnFoot = 21, - -- BF_WillDragInjuredPedsToSafety = 22, - -- BF_0xCD7168B8 = 23, - -- BF_UseProximityFiringRate = 24, - -- BF_0x48F914F8 = 25, - -- BF_0x2EA543D0 = 26, - -- BF_PerfectAccuracy = 27, - -- BF_CanUseFrustratedAdvance = 28, - -- BF_0x3D131AC1 = 29, - -- BF_0x3AD95F27 = 30, - -- BF_MaintainMinDistanceToTarget = 31, - -- BF_0xEAD68AD2 = 32, - -- BF_0xA206C2E0 = 33, - -- BF_CanUsePeekingVariations = 34, - -- BF_0xA5715184 = 35, - -- BF_0xD5265533 = 36, - -- BF_0x2B84C2BF = 37, - -- BF_DisableBulletReactions = 38, - -- BF_CanBust = 39, - -- BF_0xAA525726 = 40, - -- BF_CanCommandeerVehicles = 41, - -- BF_CanFlank = 42, - -- BF_SwitchToAdvanceIfCantFindCover = 43, - -- BF_SwitchToDefensiveIfInCover = 44, - -- BF_0xEB4786A0 = 45, - -- BF_CanFightArmedPedsWhenNotArmed = 46, - -- BF_0xA08E9402 = 47, - -- BF_0x952EAD7D = 48, - -- BF_UseEnemyAccuracyScaling = 49, - -- BF_CanCharge = 50, - -- BF_0xDA8C2BD3 = 51, - -- BF_0x6562F017 = 52, - -- BF_0xA2C3D53B = 53, - -- BF_AlwaysEquipBestWeapon = 54, - -- BF_CanSeeUnderwaterPeds = 55, - -- BF_0xF619486B = 56, - -- BF_0x61EB63A3 = 57, - -- BF_DisableFleeFromCombat = 58, - -- BF_0x8976D12B = 59, - -- BF_CanThrowSmokeGrenade = 60, - -- BF_NonMissionPedsFleeFromThisPedUnlessArmed = 61, - -- BF_0x5452A10C = 62, - -- BF_FleesFromInvincibleOpponents = 63, - -- BF_DisableBlockFromPursueDuringVehicleChase = 64, - -- BF_DisableSpinOutDuringVehicleChase = 65, - -- BF_DisableCruiseInFrontDuringBlockDuringVehicleChase = 66, - -- BF_0x0B404731 = 67, - -- BF_DisableReactToBuddyShot = 68, - -- BF_0x7FFD6AEB = 69, - -- BF_0x51F4AEF8 = 70, - -- BF_PermitChargeBeyondDefensiveArea = 71, - -- BF_0x63E0A8E2 = 72, - -- BF_0xDF974436 = 73, - -- BF_0x556C080B = 74, - -- BF_0xA4D50035 = 75, - -- BF_SetDisableShoutTargetPositionOnCombatStart = 76, - -- BF_DisableRespondedToThreatBroadcast = 77, - -- BF_0xCBB01765 = 78, - -- BF_0x4F862ED4 = 79, - -- BF_0xEF9C7C40 = 80, - -- BF_0xE51B494F = 81, - -- BF_0x054D0199 = 82, - -- BF_0xD36BCE94 = 83, - -- BF_0xFB11F690 = 84, - -- BF_0xD208A9AD = 85, - -- BF_AllowDogFighting = 86, - -- BF_0x07A6E531 = 87, - -- BF_0x34F9317B = 88, - -- BF_0x4240F5A9 = 89, - -- BF_0xEE129DBD = 90, - -- BF_0x053AEAD9 = 91 - -- }; - ["SET_PED_COMBAT_ATTRIBUTES"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] attributeId,--[[BOOL (bool)]] enabled)return native_invoker.unified_void(ped, attributeId, enabled, 0x9F7794730795E019, "iib")end, - -- enum eTargetLossResponseType - -- { - -- TLR_ExitTask, - -- TLR_NeverLoseTarget, - -- TLR_SearchForTarget - -- }; - ["SET_PED_TARGET_LOSS_RESPONSE"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] responseType)return native_invoker.unified_void(ped, responseType, 0x0703B9079823DA4A, "ii")end, - ["IS_PED_PERFORMING_MELEE_ACTION"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xDCCA191DF9980FD7, "i")end, - ["IS_PED_PERFORMING_STEALTH_KILL"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xFD4CCDBCC59941B7, "i")end, - ["IS_PED_PERFORMING_A_COUNTER_ATTACK"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xEBD0EDBA5BE957CF, "i")end, - ["IS_PED_BEING_STEALTH_KILLED"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x863B23EFDE9C5DF2, "i")end, - ["GET_MELEE_TARGET_FOR_PED"]=--[[Ped (int)]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x18A3E9EE1297FD39, "i")end, - ["WAS_PED_KILLED_BY_STEALTH"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xF9800AA1A771B000, "i")end, - ["WAS_PED_KILLED_BY_TAKEDOWN"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x7F08E26039C7347C, "i")end, - ["WAS_PED_KNOCKED_OUT"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x61767F73EACEED21, "i")end, - -- bit 1 (0x2) = use vehicle - -- bit 15 (0x8000) = force cower - ["SET_PED_FLEE_ATTRIBUTES"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] attributeFlags,--[[BOOL (bool)]] enable)return native_invoker.unified_void(ped, attributeFlags, enable, 0x70A2D1137C8ED7C9, "iib")end, - -- p1: Only "CODE_HUMAN_STAND_COWER" found in the b617d scripts. - ["SET_PED_COWER_HASH"]=--[[void]] function(--[[Ped (int)]] ped,--[[string]] p1)return native_invoker.unified_void(ped, p1, 0xA549131166868ED3, "is")end, - ["SET_PED_STEERS_AROUND_DEAD_BODIES"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x2016C603D6B8987C, "ib")end, - ["SET_PED_STEERS_AROUND_PEDS"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x46F2193B3AD1D891, "ib")end, - ["SET_PED_STEERS_AROUND_OBJECTS"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x1509C089ADC208BF, "ib")end, - ["SET_PED_STEERS_AROUND_VEHICLES"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xEB6FB9D48DDE23EC, "ib")end, - ["SET_PED_IS_AVOIDED_BY_OTHERS"]=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0xA9B61A329BFDCBEA, "ib")end, - ["SET_PED_INCREASED_AVOIDANCE_RADIUS"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x570389D1C3DE3C6B, "i")end, - ["SET_PED_BLOCKS_PATHING_WHEN_DEAD"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x576594E8D64375E2, "ib")end, - ["SET_PED_NO_TIME_DELAY_BEFORE_SHOT"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xA52D5247A4227E14, "i")end, - ["IS_ANY_PED_NEAR_POINT"]=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius)return native_invoker.unified_bool(x, y, z, radius, 0x083961498679DC9F, "ffff")end, - ["FORCE_PED_AI_AND_ANIMATION_UPDATE"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(ped, p1, p2, 0x2208438012482A1A, "ibb")end, - ["IS_PED_HEADING_TOWARDS_POSITION"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] p4)return native_invoker.unified_bool(ped, x, y, z, p4, 0xFCF37A457CB96DC0, "iffff")end, - ["REQUEST_PED_VISIBILITY_TRACKING"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x7D7A2E43E74E2EB8, "i")end, - ["REQUEST_PED_VEHICLE_VISIBILITY_TRACKING"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1)return native_invoker.unified_void(ped, p1, 0x2BC338A7B21F4608, "ib")end, - ["REQUEST_PED_RESTRICTED_VEHICLE_VISIBILITY_TRACKING"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1)return native_invoker.unified_void(ped, p1, 0xCD018C591F94CB43, "ib")end, - ["REQUEST_PED_USE_SMALL_BBOX_VISIBILITY_TRACKING"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1)return native_invoker.unified_void(ped, p1, 0x75BA1CB3B7D40CAF, "ib")end, - -- returns whether or not a ped is visible within your FOV, not this check auto's to false after a certain distance. - -- - -- - -- Target needs to be tracked.. won't work otherwise. - ["IS_TRACKED_PED_VISIBLE"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x91C8E617F64188AC, "i")end, - ["GET_TRACKED_PED_PIXELCOUNT"]=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x511F1A683387C7E2, "i")end, - ["IS_PED_TRACKED"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x4C5E1F087CD10BB7, "i")end, - ["HAS_PED_RECEIVED_EVENT"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[int]] eventId)return native_invoker.unified_bool(ped, eventId, 0x8507BCB710FA6DC0, "ii")end, - ["CAN_PED_SEE_HATED_PED"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped1,--[[Ped (int)]] ped2)return native_invoker.unified_bool(ped1, ped2, 0x6CD5A433374D4CFB, "ii")end, - ["CAN_PED_SHUFFLE_TO_OR_FROM_TURRET_SEAT"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[int* (pointer)]] p1)return native_invoker.unified_bool(ped, p1, 0x9C6A6C19B6C0C496, "ip")end, - ["CAN_PED_SHUFFLE_TO_OR_FROM_EXTRA_SEAT"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[int* (pointer)]] p1)return native_invoker.unified_bool(ped, p1, 0x2DFC81C9B9608549, "ip")end, - -- no bone= -1 - -- - -- boneIds: - -- SKEL_ROOT = 0x0, - -- SKEL_Pelvis = 0x2e28, - -- SKEL_L_Thigh = 0xe39f, - -- SKEL_L_Calf = 0xf9bb, - -- SKEL_L_Foot = 0x3779, - -- SKEL_L_Toe0 = 0x83c, - -- IK_L_Foot = 0xfedd, - -- PH_L_Foot = 0xe175, - -- MH_L_Knee = 0xb3fe, - -- SKEL_R_Thigh = 0xca72, - -- SKEL_R_Calf = 0x9000, - -- SKEL_R_Foot = 0xcc4d, - -- SKEL_R_Toe0 = 0x512d, - -- IK_R_Foot = 0x8aae, - -- PH_R_Foot = 0x60e6, - -- MH_R_Knee = 0x3fcf, - -- RB_L_ThighRoll = 0x5c57, - -- RB_R_ThighRoll = 0x192a, - -- SKEL_Spine_Root = 0xe0fd, - -- SKEL_Spine0 = 0x5c01, - -- SKEL_Spine1 = 0x60f0, - -- SKEL_Spine2 = 0x60f1, - -- SKEL_Spine3 = 0x60f2, - -- SKEL_L_Clavicle = 0xfcd9, - -- SKEL_L_UpperArm = 0xb1c5, - -- SKEL_L_Forearm = 0xeeeb, - -- SKEL_L_Hand = 0x49d9, - -- SKEL_L_Finger00 = 0x67f2, - -- SKEL_L_Finger01 = 0xff9, - -- SKEL_L_Finger02 = 0xffa, - -- SKEL_L_Finger10 = 0x67f3, - -- SKEL_L_Finger11 = 0x1049, - -- SKEL_L_Finger12 = 0x104a, - -- SKEL_L_Finger20 = 0x67f4, - -- SKEL_L_Finger21 = 0x1059, - -- SKEL_L_Finger22 = 0x105a, - -- SKEL_L_Finger30 = 0x67f5, - -- SKEL_L_Finger31 = 0x1029, - -- SKEL_L_Finger32 = 0x102a, - -- SKEL_L_Finger40 = 0x67f6, - -- SKEL_L_Finger41 = 0x1039, - -- SKEL_L_Finger42 = 0x103a, - -- PH_L_Hand = 0xeb95, - -- IK_L_Hand = 0x8cbd, - -- RB_L_ForeArmRoll = 0xee4f, - -- RB_L_ArmRoll = 0x1470, - -- MH_L_Elbow = 0x58b7, - -- SKEL_R_Clavicle = 0x29d2, - -- SKEL_R_UpperArm = 0x9d4d, - -- SKEL_R_Forearm = 0x6e5c, - -- SKEL_R_Hand = 0xdead, - -- SKEL_R_Finger00 = 0xe5f2, - -- SKEL_R_Finger01 = 0xfa10, - -- SKEL_R_Finger02 = 0xfa11, - -- SKEL_R_Finger10 = 0xe5f3, - -- SKEL_R_Finger11 = 0xfa60, - -- SKEL_R_Finger12 = 0xfa61, - -- SKEL_R_Finger20 = 0xe5f4, - -- SKEL_R_Finger21 = 0xfa70, - -- SKEL_R_Finger22 = 0xfa71, - -- SKEL_R_Finger30 = 0xe5f5, - -- SKEL_R_Finger31 = 0xfa40, - -- SKEL_R_Finger32 = 0xfa41, - -- SKEL_R_Finger40 = 0xe5f6, - -- SKEL_R_Finger41 = 0xfa50, - -- SKEL_R_Finger42 = 0xfa51, - -- PH_R_Hand = 0x6f06, - -- IK_R_Hand = 0x188e, - -- RB_R_ForeArmRoll = 0xab22, - -- RB_R_ArmRoll = 0x90ff, - -- MH_R_Elbow = 0xbb0, - -- SKEL_Neck_1 = 0x9995, - -- SKEL_Head = 0x796e, - -- IK_Head = 0x322c, - -- FACIAL_facialRoot = 0xfe2c, - -- FB_L_Brow_Out_000 = 0xe3db, - -- FB_L_Lid_Upper_000 = 0xb2b6, - -- FB_L_Eye_000 = 0x62ac, - -- FB_L_CheekBone_000 = 0x542e, - -- FB_L_Lip_Corner_000 = 0x74ac, - -- FB_R_Lid_Upper_000 = 0xaa10, - -- FB_R_Eye_000 = 0x6b52, - -- FB_R_CheekBone_000 = 0x4b88, - -- FB_R_Brow_Out_000 = 0x54c, - -- FB_R_Lip_Corner_000 = 0x2ba6, - -- FB_Brow_Centre_000 = 0x9149, - -- FB_UpperLipRoot_000 = 0x4ed2, - -- FB_UpperLip_000 = 0xf18f, - -- FB_L_Lip_Top_000 = 0x4f37, - -- FB_R_Lip_Top_000 = 0x4537, - -- FB_Jaw_000 = 0xb4a0, - -- FB_LowerLipRoot_000 = 0x4324, - -- FB_LowerLip_000 = 0x508f, - -- FB_L_Lip_Bot_000 = 0xb93b, - -- FB_R_Lip_Bot_000 = 0xc33b, - -- FB_Tongue_000 = 0xb987, - -- RB_Neck_1 = 0x8b93, - -- IK_Root = 0xdd1c - ["GET_PED_BONE_INDEX"]=--[[int]] function(--[[Ped (int)]] ped,--[[int]] boneId)return native_invoker.unified_int(ped, boneId, 0x3F428D08BE5AAE31, "ii")end, - ["GET_PED_RAGDOLL_BONE_INDEX"]=--[[int]] function(--[[Ped (int)]] ped,--[[int]] bone)return native_invoker.unified_int(ped, bone, 0x2057EF813397A772, "ii")end, - -- Values look to be between 0.0 and 1.0 - -- From decompiled scripts: 0.0, 0.6, 0.65, 0.8, 1.0 - -- - -- You are correct, just looked in IDA it breaks from the function if it's less than 0.0f or greater than 1.0f. - ["SET_PED_ENVEFF_SCALE"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] value)return native_invoker.unified_void(ped, value, 0xBF29516833893561, "if")end, - ["GET_PED_ENVEFF_SCALE"]=--[[float]] function(--[[Ped (int)]] ped)return native_invoker.unified_float(ped, 0x9C14D30395A51A3C, "i")end, - ["SET_ENABLE_PED_ENVEFF_SCALE"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xD2C5AA0C0E8D0F1E, "ib")end, - -- In agency_heist3b.c4, its like this 90% of the time: - -- - -- PED::SET_PED_ENVEFF_CPV_ADD(ped, 0.099); - -- PED::SET_PED_ENVEFF_SCALE(ped, 1.0); - -- PED::SET_PED_ENVEFF_CPV_ADD(ped, 87, 81, 68); - -- PED::SET_ENABLE_PED_ENVEFF_SCALE(ped, 1); - -- - -- and its like this 10% of the time: - -- - -- PED::SET_PED_ENVEFF_CPV_ADD(ped, 0.2); - -- PED::SET_PED_ENVEFF_SCALE(ped, 0.65); - -- PED::SET_PED_ENVEFF_COLOR_MODULATOR(ped, 74, 69, 60); - -- PED::SET_ENABLE_PED_ENVEFF_SCALE(ped, 1); - ["SET_PED_ENVEFF_CPV_ADD"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] p1)return native_invoker.unified_void(ped, p1, 0x110F526AB784111F, "if")end, - -- Something related to the environmental effects natives. - -- In the "agency_heist3b" script, p1 - p3 are always under 100 - usually they are {87, 81, 68}. If SET_PED_ENVEFF_SCALE is set to 0.65 (instead of the usual 1.0), they use {74, 69, 60} - ["SET_PED_ENVEFF_COLOR_MODULATOR"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] p1,--[[int]] p2,--[[int]] p3)return native_invoker.unified_void(ped, p1, p2, p3, 0xD69411AA0CEBF9E9, "iiii")end, - -- intensity: 0.0f - 1.0f - -- - -- This native sets the emissive intensity for the given ped. It is used for different 'glow' levels on illuminated clothing. - ["SET_PED_EMISSIVE_SCALE"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] intensity)return native_invoker.unified_void(ped, intensity, 0x4E90D746056E273D, "if")end, - -- Use 0x4E90D746056E273D to set the illuminated clothing glow intensity for a specific ped. - -- Returns a float between 0.0 and 1.0 representing the current illuminated clothing glow intensity. - ["GET_PED_EMISSIVE_SCALE"]=--[[float]] function(--[[Ped (int)]] ped)return native_invoker.unified_float(ped, 0x1461B28A06717D68, "i")end, - ["IS_PED_SHADER_READY"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x81AA517FBBA05D39, "i")end, - ["SET_PED_ENABLE_CREW_EMBLEM"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xE906EC930F5FE7C8, "ib")end, - -- This native does absolutely nothing, just a nullsub - ["REQUEST_RAGDOLL_BOUNDS_UPDATE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x1216E0BFA72CC703, "ii")end, - -- Enable/disable ped shadow (ambient occlusion). https://gfycat.com/thankfulesteemedgecko - ["SET_PED_AO_BLOB_RENDERING"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x2B5AA717A181FB4C, "ib")end, - ["IS_PED_SHELTERED"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xB8B52E498014F5B0, "i")end, - -- p6 always 2 (but it doesnt seem to matter...) - -- - -- roll and pitch 0 - -- yaw to Ped.rotation - ["CREATE_SYNCHRONIZED_SCENE"]=--[[int]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] roll,--[[float]] pitch,--[[float]] yaw,--[[int]] p6)return native_invoker.unified_int(x, y, z, roll, pitch, yaw, p6, 0x8C18E0F9080ADD73, "ffffffi")end, - ["CREATE_SYNCHRONIZED_SCENE_AT_MAP_OBJECT"]=--[[int]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[Hash (int)]] object)return native_invoker.unified_int(x, y, z, radius, object, 0x62EC273D00187DCA, "ffffi")end, - -- Returns true if a synchronized scene is running - ["IS_SYNCHRONIZED_SCENE_RUNNING"]=--[[BOOL (bool)]] function(--[[int]] sceneId)return native_invoker.unified_bool(sceneId, 0x25D39B935A038A26, "i")end, - ["SET_SYNCHRONIZED_SCENE_ORIGIN"]=--[[void]] function(--[[int]] sceneID,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] roll,--[[float]] pitch,--[[float]] yaw,--[[BOOL (bool)]] p7)return native_invoker.unified_void(sceneID, x, y, z, roll, pitch, yaw, p7, 0x6ACF6B7225801CD7, "iffffffb")end, - ["SET_SYNCHRONIZED_SCENE_PHASE"]=--[[void]] function(--[[int]] sceneID,--[[float]] phase)return native_invoker.unified_void(sceneID, phase, 0x734292F4F0ABF6D0, "if")end, - ["GET_SYNCHRONIZED_SCENE_PHASE"]=--[[float]] function(--[[int]] sceneID)return native_invoker.unified_float(sceneID, 0xE4A310B1D7FA73CC, "i")end, - ["SET_SYNCHRONIZED_SCENE_RATE"]=--[[void]] function(--[[int]] sceneID,--[[float]] rate)return native_invoker.unified_void(sceneID, rate, 0xB6C49F8A5E295A5D, "if")end, - ["GET_SYNCHRONIZED_SCENE_RATE"]=--[[float]] function(--[[int]] sceneID)return native_invoker.unified_float(sceneID, 0xD80932D577274D40, "i")end, - ["SET_SYNCHRONIZED_SCENE_LOOPED"]=--[[void]] function(--[[int]] sceneID,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(sceneID, toggle, 0xD9A897A4C6C2974F, "ib")end, - ["IS_SYNCHRONIZED_SCENE_LOOPED"]=--[[BOOL (bool)]] function(--[[int]] sceneID)return native_invoker.unified_bool(sceneID, 0x62522002E0C391BA, "i")end, - ["SET_SYNCHRONIZED_SCENE_HOLD_LAST_FRAME"]=--[[void]] function(--[[int]] sceneID,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(sceneID, toggle, 0x394B9CD12435C981, "ib")end, - ["IS_SYNCHRONIZED_SCENE_HOLD_LAST_FRAME"]=--[[BOOL (bool)]] function(--[[int]] sceneID)return native_invoker.unified_bool(sceneID, 0x7F2F4F13AC5257EF, "i")end, - ["ATTACH_SYNCHRONIZED_SCENE_TO_ENTITY"]=--[[void]] function(--[[int]] sceneID,--[[Entity (int)]] entity,--[[int]] boneIndex)return native_invoker.unified_void(sceneID, entity, boneIndex, 0x272E4723B56A3B96, "iii")end, - ["DETACH_SYNCHRONIZED_SCENE"]=--[[void]] function(--[[int]] sceneID)return native_invoker.unified_void(sceneID, 0x6D38F1F04CBB37EA, "i")end, - ["TAKE_OWNERSHIP_OF_SYNCHRONIZED_SCENE"]=--[[void]] function(--[[int]] scene)return native_invoker.unified_void(scene, 0xCD9CC7E200A52A6F, "i")end, - -- Regarding p2, p3 and p4: Most common is 0, 0, 0); followed by 0, 1, 0); and 1, 1, 0); in R* scripts. p4 is very rarely something other than 0. - -- - -- enum eMotionState // 0x92A659FE - -- { - -- MotionState_None = 0xEE717723, - -- MotionState_Idle = 0x9072A713, - -- MotionState_Walk = 0xD827C3DB, - -- MotionState_Run = 0xFFF7E7A4, - -- MotionState_Sprint = 0xBD8817DB, - -- MotionState_Crouch_Idle = 0x43FB099E, - -- MotionState_Crouch_Walk = 0x08C31A98, - -- MotionState_Crouch_Run = 0x3593CF09, - -- MotionState_DoNothing = 0x0EC17E58, - -- MotionState_AnimatedVelocity = 0x551AAC43, - -- MotionState_InVehicle = 0x94D9D58D, - -- MotionState_Aiming = 0x3F67C6AF, - -- MotionState_Diving_Idle = 0x4848CDED, - -- MotionState_Diving_Swim = 0x916E828C, - -- MotionState_Swimming_TreadWater = 0xD1BF11C7, - -- MotionState_Dead = 0x0DBB071C, - -- MotionState_Stealth_Idle = 0x422D7A25, - -- MotionState_Stealth_Walk = 0x042AB6A2, - -- MotionState_Stealth_Run = 0xFB0B79E1, - -- MotionState_Parachuting = 0xBAC0F10B, - -- MotionState_ActionMode_Idle = 0xDA40A0DC, - -- MotionState_ActionMode_Walk = 0xD2905EA7, - -- MotionState_ActionMode_Run = 0x31BADE14, - -- MotionState_Jetpack = 0x535E6A5E - -- }; - ["FORCE_PED_MOTION_STATE"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Hash (int)]] motionStateHash,--[[BOOL (bool)]] p2,--[[int]] p3,--[[BOOL (bool)]] p4)return native_invoker.unified_bool(ped, motionStateHash, p2, p3, p4, 0xF28965D04F570DCA, "iibib")end, - ["GET_PED_CURRENT_MOVE_BLEND_RATIO"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[float* (pointer)]] speedX,--[[float* (pointer)]] speedY)return native_invoker.unified_bool(ped, speedX, speedY, 0xF60165E1D2C5370B, "ipp")end, - ["SET_PED_MAX_MOVE_BLEND_RATIO"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] value)return native_invoker.unified_void(ped, value, 0x433083750C5E064A, "if")end, - ["SET_PED_MIN_MOVE_BLEND_RATIO"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] value)return native_invoker.unified_void(ped, value, 0x01A898D26E2333DD, "if")end, - -- Min: 0.00 - -- Max: 10.00 - -- - -- Can be used in combo with fast run cheat. - -- - -- When value is set to 10.00: - -- Sprinting without fast run cheat: 66 m/s - -- Sprinting with fast run cheat: 77 m/s - -- - -- Needs to be looped! - -- - -- Note: According to IDA for the Xbox360 xex, when they check bgt they seem to have the min to 0.0f, but the max set to 1.15f not 10.0f. - ["SET_PED_MOVE_RATE_OVERRIDE"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] value)return native_invoker.unified_void(ped, value, 0x085BF80FA50A39D1, "if")end, - ["SET_PED_MOVE_RATE_IN_WATER_OVERRIDE"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] p1)return native_invoker.unified_void(ped, p1, 0x0B3E35AC043707D9, "if")end, - -- Checks if the specified sexiness flag is set - -- - -- enum eSexinessFlags - -- { - -- SF_JEER_AT_HOT_PED = 0, - -- SF_HURRIEDFEMALES_SEXY = 1, - -- SF_HOT_PERSON = 2, - -- }; - ["PED_HAS_SEXINESS_FLAG_SET"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[int]] sexinessFlag)return native_invoker.unified_bool(ped, sexinessFlag, 0x46B05BCAE43856B0, "ii")end, - -- Returns size of array, passed into the second variable. - -- - -- See below for usage information. - -- - -- This function actually requires a struct, where the first value is the maximum number of elements to return. Here is a sample of how I was able to get it to work correctly, without yet knowing the struct format. - -- - -- //Setup the array - -- const int numElements = 10; - -- const int arrSize = numElements * 2 + 2; - -- Any veh[arrSize]; - -- //0 index is the size of the array - -- veh[0] = numElements; - -- - -- int count = PED::GET_PED_NEARBY_VEHICLES(PLAYER::PLAYER_PED_ID(), veh); - -- - -- if (veh != NULL) - -- { - -- //Simple loop to go through results - -- for (int i = 0; i < count; i++) - -- { - -- int offsettedID = i * 2 + 2; - -- //Make sure it exists - -- if (veh[offsettedID] != NULL && ENTITY::DOES_ENTITY_EXIST(veh[offsettedID])) - -- { - -- //Do something - -- } - -- } - -- } - ["GET_PED_NEARBY_VEHICLES"]=--[[int]] function(--[[Ped (int)]] ped,--[[Any* (pointer)]] sizeAndVehs)return native_invoker.unified_int(ped, sizeAndVehs, 0xCFF869CBFA210D82, "ip")end, - -- sizeAndPeds - is a pointer to an array. The array is filled with peds found nearby the ped supplied to the first argument. - -- ignore - ped type to ignore - -- - -- Return value is the number of peds found and added to the array passed. - -- - -- ----------------------------------- - -- - -- To make this work in most menu bases at least in C++ do it like so, - -- - -- Formatted Example: https://pastebin.com/D8an9wwp - -- - -- ----------------------------------- - -- - -- Example: gtaforums.com/topic/789788-function-args-to-pedget-ped-nearby-peds/?p=1067386687 - ["GET_PED_NEARBY_PEDS"]=--[[int]] function(--[[Ped (int)]] ped,--[[Any* (pointer)]] sizeAndPeds,--[[int]] ignore)return native_invoker.unified_int(ped, sizeAndPeds, ignore, 0x23F8F5FC7E8C4A6B, "ipi")end, - ["HAVE_ALL_STREAMING_REQUESTS_COMPLETED"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x7350823473013C02, "i")end, - ["IS_PED_USING_ACTION_MODE"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x00E73468D085F745, "i")end, - -- p2 is usually -1 in the scripts. action is either 0 or "DEFAULT_ACTION". - ["SET_PED_USING_ACTION_MODE"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1,--[[int]] p2,--[[string]] action)return native_invoker.unified_void(ped, p1, p2, action, 0xD75ACCF5E0FB5367, "ibis")end, - -- name: "MP_FEMALE_ACTION" found multiple times in the b617d scripts. - ["SET_MOVEMENT_MODE_OVERRIDE"]=--[[void]] function(--[[Ped (int)]] ped,--[[string]] name)return native_invoker.unified_void(ped, name, 0x781DE8FA214E87D2, "is")end, - -- Overrides the ped's collision capsule radius for the current tick. - -- Must be called every tick to be effective. - -- - -- Setting this to 0.001 will allow warping through some objects. - ["SET_PED_CAPSULE"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] value)return native_invoker.unified_void(ped, value, 0x364DF566EC833DE2, "if")end, - -- gtaforums.com/topic/885580-ped-headshotmugshot-txd/ - ["REGISTER_PEDHEADSHOT"]=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x4462658788425076, "i")end, - ["REGISTER_PEDHEADSHOT_HIRES"]=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0xBA8805A1108A2515, "i")end, - -- Similar to REGISTER_PEDHEADSHOT but creates a transparent background instead of black. Example: https://i.imgur.com/iHz8ztn.png - ["REGISTER_PEDHEADSHOT_TRANSPARENT"]=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x953563CE563143AF, "i")end, - -- gtaforums.com/topic/885580-ped-headshotmugshot-txd/ - ["UNREGISTER_PEDHEADSHOT"]=--[[void]] function(--[[int]] id)return native_invoker.unified_void(id, 0x96B1361D9B24C2FF, "i")end, - -- gtaforums.com/topic/885580-ped-headshotmugshot-txd/ - ["IS_PEDHEADSHOT_VALID"]=--[[BOOL (bool)]] function(--[[int]] id)return native_invoker.unified_bool(id, 0xA0A9668F158129A2, "i")end, - -- gtaforums.com/topic/885580-ped-headshotmugshot-txd/ - ["IS_PEDHEADSHOT_READY"]=--[[BOOL (bool)]] function(--[[int]] id)return native_invoker.unified_bool(id, 0x7085228842B13A67, "i")end, - -- gtaforums.com/topic/885580-ped-headshotmugshot-txd/ - ["GET_PEDHEADSHOT_TXD_STRING"]=--[[string]] function(--[[int]] id)return native_invoker.unified_string(id, 0xDB4EACD4AD0A5D6B, "i")end, - ["REQUEST_PEDHEADSHOT_IMG_UPLOAD"]=--[[BOOL (bool)]] function(--[[int]] id)return native_invoker.unified_bool(id, 0xF0DAEF2F545BEE25, "i")end, - ["RELEASE_PEDHEADSHOT_IMG_UPLOAD"]=--[[void]] function(--[[int]] id)return native_invoker.unified_void(id, 0x5D517B27CF6ECD04, "i")end, - ["IS_PEDHEADSHOT_IMG_UPLOAD_AVAILABLE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xEBB376779A760AA8, "")end, - ["HAS_PEDHEADSHOT_IMG_UPLOAD_FAILED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x876928DDDFCCC9CD, "")end, - ["HAS_PEDHEADSHOT_IMG_UPLOAD_SUCCEEDED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xE8A169E666CBC541, "")end, - ["SET_PED_HEATSCALE_OVERRIDE"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] heatScale)return native_invoker.unified_void(ped, heatScale, 0xC1F6EBF9A3D55538, "if")end, - ["DISABLE_PED_HEATSCALE_OVERRIDE"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x600048C60D5C2C51, "i")end, - ["SPAWNPOINTS_START_SEARCH"]=--[[void]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[int]] interiorFlags,--[[float]] scale,--[[int]] duration)return native_invoker.unified_void(p0, p1, p2, p3, p4, interiorFlags, scale, duration, 0x2DF9038C90AD5264, "fffffifi")end, - ["SPAWNPOINTS_START_SEARCH_IN_ANGLED_AREA"]=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] width,--[[int]] interiorFlags,--[[float]] scale,--[[int]] duration)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, width, interiorFlags, scale, duration, 0xB2AFF10216DEFA2F, "fffffffifi")end, - ["SPAWNPOINTS_CANCEL_SEARCH"]=--[[void]] function()return native_invoker.unified_void(0xFEE4A5459472A9F8, "")end, - ["SPAWNPOINTS_IS_SEARCH_ACTIVE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x3C67506996001F5E, "")end, - ["SPAWNPOINTS_IS_SEARCH_COMPLETE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xA586FBEB32A53DBB, "")end, - ["SPAWNPOINTS_IS_SEARCH_FAILED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xF445DE8DA80A1792, "")end, - ["SPAWNPOINTS_GET_NUM_SEARCH_RESULTS"]=--[[int]] function()return native_invoker.unified_int(0xA635C11B8C44AFC2, "")end, - ["SPAWNPOINTS_GET_SEARCH_RESULT"]=--[[void]] function(--[[int]] randomInt,--[[float* (pointer)]] x,--[[float* (pointer)]] y,--[[float* (pointer)]] z)return native_invoker.unified_void(randomInt, x, y, z, 0x280C7E3AC7F56E90, "ippp")end, - ["SPAWNPOINTS_GET_SEARCH_RESULT_FLAGS"]=--[[void]] function(--[[int]] p0,--[[int* (pointer)]] p1)return native_invoker.unified_void(p0, p1, 0xB782F8238512BAD5, "ip")end, - ["SET_IK_TARGET"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] ikIndex,--[[Entity (int)]] entityLookAt,--[[int]] boneLookAt,--[[float]] offsetX,--[[float]] offsetY,--[[float]] offsetZ,--[[Any (int)]] p7,--[[int]] blendInDuration,--[[int]] blendOutDuration)return native_invoker.unified_void(ped, ikIndex, entityLookAt, boneLookAt, offsetX, offsetY, offsetZ, p7, blendInDuration, blendOutDuration, 0xC32779C16FCEECD9, "iiiifffiii")end, - ["FORCE_INSTANT_LEG_IK_SETUP"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xED3C76ADFA6D07C4, "i")end, - ["REQUEST_ACTION_MODE_ASSET"]=--[[void]] function(--[[string]] asset)return native_invoker.unified_void(asset, 0x290E2780BB7AA598, "s")end, - ["HAS_ACTION_MODE_ASSET_LOADED"]=--[[BOOL (bool)]] function(--[[string]] asset)return native_invoker.unified_bool(asset, 0xE4B5F4BF2CB24E65, "s")end, - ["REMOVE_ACTION_MODE_ASSET"]=--[[void]] function(--[[string]] asset)return native_invoker.unified_void(asset, 0x13E940F88470FA51, "s")end, - ["REQUEST_STEALTH_MODE_ASSET"]=--[[void]] function(--[[string]] asset)return native_invoker.unified_void(asset, 0x2A0A62FCDEE16D4F, "s")end, - ["HAS_STEALTH_MODE_ASSET_LOADED"]=--[[BOOL (bool)]] function(--[[string]] asset)return native_invoker.unified_bool(asset, 0xE977FC5B08AF3441, "s")end, - ["REMOVE_STEALTH_MODE_ASSET"]=--[[void]] function(--[[string]] asset)return native_invoker.unified_void(asset, 0x9219857D21F0E842, "s")end, - ["SET_PED_LOD_MULTIPLIER"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] multiplier)return native_invoker.unified_void(ped, multiplier, 0xDC2C5C242AAC342B, "if")end, - ["SET_PED_CAN_LOSE_PROPS_ON_DAMAGE"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle,--[[int]] p2)return native_invoker.unified_void(ped, toggle, p2, 0xE861D0B05C7662B8, "ibi")end, - ["SET_FORCE_FOOTSTEP_UPDATE"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x129466ED55140F8D, "ib")end, - ["SET_FORCE_STEP_TYPE"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1,--[[int]] type,--[[int]] p3)return native_invoker.unified_void(ped, p1, type, p3, 0xCB968B53FC7F916D, "ibii")end, - ["IS_ANY_HOSTILE_PED_NEAR_POINT"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius)return native_invoker.unified_bool(ped, x, y, z, radius, 0x68772DB2B2526F9F, "iffff")end, - -- Toggles config flag CPED_CONFIG_FLAG_CanPlayInCarIdles. - ["SET_PED_CAN_PLAY_IN_CAR_IDLES"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x820E9892A77E97CD, "ib")end, - ["IS_TARGET_PED_IN_PERCEPTION_AREA"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Ped (int)]] targetPed,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5)return native_invoker.unified_bool(ped, targetPed, p2, p3, p4, p5, 0x06087579E7AA85A9, "iiffff")end, - -- Min and max are usually 100.0 and 200.0 - ["SET_POP_CONTROL_SPHERE_THIS_FRAME"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] min,--[[float]] max)return native_invoker.unified_void(x, y, z, min, max, 0xD8C3BE3EE94CAF2D, "fffff")end, - ["FORCE_ZERO_MASS_IN_COLLISIONS"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xD33DAA36272177C4, "i")end, - ["SET_DISABLE_HIGH_FALL_DEATH"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x711794453CFD692B, "ib")end, - ["SET_PED_PHONE_PALETTE_IDX"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x83A169EABCDB10A2, "ii")end, - ["SET_PED_STEER_BIAS"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] value)return native_invoker.unified_void(ped, value, 0x288DF530C92DAD6F, "if")end, - ["IS_PED_SWITCHING_WEAPON"]=--[[BOOL (bool)]] function(--[[Ped (int)]] Ped)return native_invoker.unified_bool(Ped, 0x3795688A307E1EB6, "i")end, - ["SET_PED_TREATED_AS_FRIENDLY"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x0F62619393661D6E, "iii")end, - ["SET_DISABLE_PED_MAP_COLLISION"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xDFE68C4B787E1BFB, "i")end, - ["ENABLE_MP_LIGHT"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xEE2476B9EE4A094F, "ib")end, - ["GET_MP_LIGHT_ENABLED"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x88274C11CF0D866D, "i")end, - ["CLEAR_COVER_POINT_FOR_PED"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x637822DC2AFEEBF8, "i")end, - ["SET_ALLOW_STUNT_JUMP_CAMERA"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xFAB944D4D481ACCB, "ib")end, -} -PHYSICS={ - -- Creates a rope at the specific position, that extends in the specified direction when not attached to any entities. - -- __ - -- - -- Add_Rope(pos.x,pos.y,pos.z,0.0,0.0,0.0,20.0,4,20.0,1.0,0.0,false,false,false,5.0,false,NULL) - -- - -- When attached, Position does not matter - -- When attached, Angle does not matter - -- - -- Rope Type: - -- 4 and bellow is a thick rope - -- 5 and up are small metal wires - -- 0 crashes the game - -- - -- Max_length - Rope is forced to this length, generally best to keep this the same as your rope length. - -- - -- windingSpeed - Speed the Rope is being winded, using native START_ROPE_WINDING. Set positive for winding and negative for unwinding. - -- - -- Rigid - If max length is zero, and this is set to false the rope will become rigid (it will force a specific distance, what ever length is, between the objects). - -- - -- breakable - Whether or not shooting the rope will break it. - -- - -- unkPtr - unknown ptr, always 0 in orig scripts - -- __ - -- - -- Lengths can be calculated like so: - -- - -- float distance = abs(x1 - x2) + abs(y1 - y2) + abs(z1 - z2); // Rope length - -- - -- - -- NOTES: - -- - -- Rope does NOT interact with anything you attach it to, in some cases it make interact with the world AFTER it breaks (seems to occur if you set the type to -1). - -- - -- Rope will sometimes contract and fall to the ground like you'd expect it to, but since it doesn't interact with the world the effect is just jaring. - ["ADD_ROPE"]=--[[int]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ,--[[float]] length,--[[int]] ropeType,--[[float]] maxLength,--[[float]] minLength,--[[float]] windingSpeed,--[[BOOL (bool)]] p11,--[[BOOL (bool)]] p12,--[[BOOL (bool)]] rigid,--[[float]] p14,--[[BOOL (bool)]] breakWhenShot,--[[Any* (pointer)]] unkPtr)return native_invoker.unified_int(x, y, z, rotX, rotY, rotZ, length, ropeType, maxLength, minLength, windingSpeed, p11, p12, rigid, p14, breakWhenShot, unkPtr, 0xE832D760399EB220, "fffffffifffbbbfbp")end, - ["DELETE_ROPE"]=--[[void]] function(--[[int* (pointer)]] ropeId)return native_invoker.unified_void(ropeId, 0x52B4829281364649, "p")end, - ["DELETE_CHILD_ROPE"]=--[[void]] function(--[[int]] ropeId)return native_invoker.unified_void(ropeId, 0xAA5D6B1888E4DB20, "i")end, - ["DOES_ROPE_EXIST"]=--[[BOOL (bool)]] function(--[[int* (pointer)]] ropeId)return native_invoker.unified_bool(ropeId, 0xFD5448BE3111ED96, "p")end, - ["ROPE_DRAW_ENABLED"]=--[[void]] function(--[[int* (pointer)]] ropeId,--[[BOOL (bool)]] p1)return native_invoker.unified_void(ropeId, p1, 0xA1AE736541B0FCA3, "pb")end, - ["ROPE_DRAW_SHADOW_ENABLED"]=--[[void]] function(--[[int* (pointer)]] ropeId,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ropeId, toggle, 0xF159A63806BB5BA8, "pb")end, - -- Rope presets can be found in the gamefiles. One example is "ropeFamily3", it is NOT a hash but rather a string. - ["LOAD_ROPE_DATA"]=--[[void]] function(--[[int]] ropeId,--[[string]] rope_preset)return native_invoker.unified_void(ropeId, rope_preset, 0xCBB203C04D1ABD27, "is")end, - ["PIN_ROPE_VERTEX"]=--[[void]] function(--[[int]] ropeId,--[[int]] vertex,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(ropeId, vertex, x, y, z, 0x2B320CF14146B69A, "iifff")end, - ["UNPIN_ROPE_VERTEX"]=--[[void]] function(--[[int]] ropeId,--[[int]] vertex)return native_invoker.unified_void(ropeId, vertex, 0x4B5AE2EEE4A8F180, "ii")end, - ["GET_ROPE_VERTEX_COUNT"]=--[[int]] function(--[[int]] ropeId)return native_invoker.unified_int(ropeId, 0x3655F544CD30F0B5, "i")end, - -- Attaches entity 1 to entity 2. - ["ATTACH_ENTITIES_TO_ROPE"]=--[[void]] function(--[[int]] ropeId,--[[Entity (int)]] ent1,--[[Entity (int)]] ent2,--[[float]] ent1_x,--[[float]] ent1_y,--[[float]] ent1_z,--[[float]] ent2_x,--[[float]] ent2_y,--[[float]] ent2_z,--[[float]] length,--[[BOOL (bool)]] p10,--[[BOOL (bool)]] p11,--[[Any* (pointer)]] p12,--[[Any* (pointer)]] p13)return native_invoker.unified_void(ropeId, ent1, ent2, ent1_x, ent1_y, ent1_z, ent2_x, ent2_y, ent2_z, length, p10, p11, p12, p13, 0x3D95EC8B6D940AC3, "iiifffffffbbpp")end, - -- The position supplied can be anywhere, and the entity should anchor relative to that point from it's origin. - ["ATTACH_ROPE_TO_ENTITY"]=--[[void]] function(--[[int]] ropeId,--[[Entity (int)]] entity,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] p5)return native_invoker.unified_void(ropeId, entity, x, y, z, p5, 0x4B490A6832559A65, "iifffb")end, - ["DETACH_ROPE_FROM_ENTITY"]=--[[void]] function(--[[int]] ropeId,--[[Entity (int)]] entity)return native_invoker.unified_void(ropeId, entity, 0xBCF3026912A8647D, "ii")end, - ["ROPE_SET_UPDATE_PINVERTS"]=--[[void]] function(--[[int]] ropeId)return native_invoker.unified_void(ropeId, 0xC8D667EE52114ABA, "i")end, - ["ROPE_SET_UPDATE_ORDER"]=--[[void]] function(--[[int]] ropeId,--[[Any (int)]] p1)return native_invoker.unified_void(ropeId, p1, 0xDC57A637A20006ED, "ii")end, - ["ROPE_SET_SMOOTH_REELIN"]=--[[void]] function(--[[int]] ropeId,--[[BOOL (bool)]] p1)return native_invoker.unified_void(ropeId, p1, 0x36CCB9BE67B970FD, "ib")end, - ["IS_ROPE_ATTACHED_AT_BOTH_ENDS"]=--[[BOOL (bool)]] function(--[[int* (pointer)]] ropeId)return native_invoker.unified_bool(ropeId, 0x84DE3B5FB3E666F0, "p")end, - ["GET_ROPE_LAST_VERTEX_COORD"]=--[[Vector3 (vector3)]] function(--[[int]] ropeId)return native_invoker.unified_vector3(ropeId, 0x21BB0FBD3E217C2D, "i")end, - ["GET_ROPE_VERTEX_COORD"]=--[[Vector3 (vector3)]] function(--[[int]] ropeId,--[[int]] vertex)return native_invoker.unified_vector3(ropeId, vertex, 0xEA61CA8E80F09E4D, "ii")end, - ["START_ROPE_WINDING"]=--[[void]] function(--[[int]] ropeId)return native_invoker.unified_void(ropeId, 0x1461C72C889E343E, "i")end, - ["STOP_ROPE_WINDING"]=--[[void]] function(--[[int]] ropeId)return native_invoker.unified_void(ropeId, 0xCB2D4AB84A19AA7C, "i")end, - ["START_ROPE_UNWINDING_FRONT"]=--[[void]] function(--[[int]] ropeId)return native_invoker.unified_void(ropeId, 0x538D1179EC1AA9A9, "i")end, - ["STOP_ROPE_UNWINDING_FRONT"]=--[[void]] function(--[[int]] ropeId)return native_invoker.unified_void(ropeId, 0xFFF3A50779EFBBB3, "i")end, - ["ROPE_CONVERT_TO_SIMPLE"]=--[[void]] function(--[[int]] ropeId)return native_invoker.unified_void(ropeId, 0x5389D48EFA2F079A, "i")end, - -- Loads rope textures for all ropes in the current scene. - ["ROPE_LOAD_TEXTURES"]=--[[void]] function()return native_invoker.unified_void(0x9B9039DBF2D258C1, "")end, - ["ROPE_ARE_TEXTURES_LOADED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xF2D0E6A75CC05597, "")end, - -- Unloads rope textures for all ropes in the current scene. - ["ROPE_UNLOAD_TEXTURES"]=--[[void]] function()return native_invoker.unified_void(0x6CE36C35C1AC8163, "")end, - ["DOES_SCRIPT_OWN_ROPE"]=--[[BOOL (bool)]] function(--[[int]] ropeId)return native_invoker.unified_bool(ropeId, 0x271C9D3ACA5D6409, "i")end, - ["ROPE_ATTACH_VIRTUAL_BOUND_GEOM"]=--[[void]] function(--[[int]] ropeId,--[[int]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[float]] p6,--[[float]] p7,--[[float]] p8,--[[float]] p9,--[[float]] p10,--[[float]] p11,--[[float]] p12,--[[float]] p13)return native_invoker.unified_void(ropeId, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, 0xBC0CE682D4D05650, "iiffffffffffff")end, - ["ROPE_CHANGE_SCRIPT_OWNER"]=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xB1B6216CA2E7B55E, "ibb")end, - ["ROPE_SET_REFFRAMEVELOCITY_COLLIDERORDER"]=--[[void]] function(--[[int]] ropeId,--[[int]] p1)return native_invoker.unified_void(ropeId, p1, 0xB743F735C03D7810, "ii")end, - ["ROPE_GET_DISTANCE_BETWEEN_ENDS"]=--[[float]] function(--[[int]] ropeId)return native_invoker.unified_float(ropeId, 0x73040398DFF9A4A6, "i")end, - -- Forces a rope to a certain length. - ["ROPE_FORCE_LENGTH"]=--[[void]] function(--[[int]] ropeId,--[[float]] length)return native_invoker.unified_void(ropeId, length, 0xD009F759A723DB1B, "if")end, - -- Reset a rope to a certain length. - ["ROPE_RESET_LENGTH"]=--[[void]] function(--[[int]] ropeId,--[[float]] length)return native_invoker.unified_void(ropeId, length, 0xC16DE94D9BEA14A0, "if")end, - ["APPLY_IMPULSE_TO_CLOTH"]=--[[void]] function(--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[float]] vecX,--[[float]] vecY,--[[float]] vecZ,--[[float]] impulse)return native_invoker.unified_void(posX, posY, posZ, vecX, vecY, vecZ, impulse, 0xE37F721824571784, "fffffff")end, - ["SET_DAMPING"]=--[[void]] function(--[[Entity (int)]] entity,--[[int]] vertex,--[[float]] value)return native_invoker.unified_void(entity, vertex, value, 0xEEA3B200A6FEB65B, "iif")end, - ["ACTIVATE_PHYSICS"]=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0x710311ADF0E20730, "i")end, - ["SET_CGOFFSET"]=--[[void]] function(--[[Entity (int)]] entity,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(entity, x, y, z, 0xD8FA3908D7B86904, "ifff")end, - ["GET_CGOFFSET"]=--[[Vector3 (vector3)]] function(--[[Entity (int)]] entity)return native_invoker.unified_vector3(entity, 0x8214A4B5A7A33612, "i")end, - ["SET_CG_AT_BOUNDCENTER"]=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0xBE520D9761FF811F, "i")end, - ["BREAK_ENTITY_GLASS"]=--[[void]] function(--[[Entity (int)]] entity,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[float]] p6,--[[float]] p7,--[[float]] p8,--[[Any (int)]] p9,--[[BOOL (bool)]] p10)return native_invoker.unified_void(entity, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, 0x2E648D16F6E308F3, "iffffffffib")end, - ["GET_IS_ENTITY_A_FRAG"]=--[[BOOL (bool)]] function(--[[Object (int)]] object)return native_invoker.unified_bool(object, 0x0C112765300C7E1E, "i")end, - ["SET_DISABLE_BREAKING"]=--[[void]] function(--[[Object (int)]] object,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(object, toggle, 0x5CEC1A84620E7D5B, "ib")end, - ["RESET_DISABLE_BREAKING"]=--[[void]] function(--[[Object (int)]] object)return native_invoker.unified_void(object, 0xCC6E963682533882, "i")end, - ["SET_DISABLE_FRAG_DAMAGE"]=--[[void]] function(--[[Object (int)]] object,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(object, toggle, 0x01BA3AED21C16CFB, "ib")end, - -- PED_RAGDOLL_BUMP Proof? - ["SET_USE_KINEMATIC_PHYSICS"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(entity, toggle, 0x15F944730C832252, "ib")end, - ["SET_IN_STUNT_MODE"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x9EBD751E5787BAF2, "b")end, - -- Related to the lower-end of a vehicles fTractionCurve, e.g., from standing starts and acceleration from low/zero speeds. - ["SET_IN_ARENA_MODE"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xAA6A6098851C396F, "b")end, -} -PLAYER={ - -- Gets the ped for a specified player index. - ["GET_PLAYER_PED"]=--[[Ped (int)]] function(--[[Player (int)]] player)return native_invoker.unified_int(player, 0x43A66C31C68491C0, "i")end, - -- Does the same like PLAYER::GET_PLAYER_PED - ["GET_PLAYER_PED_SCRIPT_INDEX"]=--[[Ped (int)]] function(--[[Player (int)]] player)return native_invoker.unified_int(player, 0x50FAC3A3E030A6E1, "i")end, - -- Set the model for a specific Player. Be aware that this will destroy the current Ped for the Player and create a new one, any reference to the old ped should be reset - -- Make sure to request the model first and wait until it has loaded. - ["SET_PLAYER_MODEL"]=--[[void]] function(--[[Player (int)]] player,--[[Hash (int)]] model)return native_invoker.unified_void(player, model, 0x00A1CADD00108836, "ii")end, - ["CHANGE_PLAYER_PED"]=--[[void]] function(--[[Player (int)]] player,--[[Ped (int)]] ped,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] resetDamage)return native_invoker.unified_void(player, ped, p2, resetDamage, 0x048189FAC643DEEE, "iibb")end, - ["GET_PLAYER_RGB_COLOUR"]=--[[void]] function(--[[Player (int)]] player,--[[int* (pointer)]] r,--[[int* (pointer)]] g,--[[int* (pointer)]] b)return native_invoker.unified_void(player, r, g, b, 0xE902EF951DCE178F, "ippp")end, - -- Gets the number of players in the current session. - -- If not multiplayer, always returns 1. - ["GET_NUMBER_OF_PLAYERS"]=--[[int]] function()return native_invoker.unified_int(0x407C7F91DDB46C16, "")end, - -- Gets the player's team. - -- Does nothing in singleplayer. - ["GET_PLAYER_TEAM"]=--[[int]] function(--[[Player (int)]] player)return native_invoker.unified_int(player, 0x37039302F4E0A008, "i")end, - -- Set player team on deathmatch and last team standing.. - ["SET_PLAYER_TEAM"]=--[[void]] function(--[[Player (int)]] player,--[[int]] team)return native_invoker.unified_void(player, team, 0x0299FA38396A4940, "ii")end, - ["GET_NUMBER_OF_PLAYERS_IN_TEAM"]=--[[int]] function(--[[int]] team)return native_invoker.unified_int(team, 0x1FC200409F10E6F1, "i")end, - ["GET_PLAYER_NAME"]=--[[string]] function(--[[Player (int)]] player)return native_invoker.unified_string(player, 0x6D0DE6A7B5DA71F8, "i")end, - -- Remnant from GTA IV. Does nothing in GTA V. - ["GET_WANTED_LEVEL_RADIUS"]=--[[float]] function(--[[Player (int)]] player)return native_invoker.unified_float(player, 0x085DEB493BE80812, "i")end, - ["GET_PLAYER_WANTED_CENTRE_POSITION"]=--[[Vector3 (vector3)]] function(--[[Player (int)]] player)return native_invoker.unified_vector3(player, 0x0C92BA89F1AF26F8, "i")end, - -- # Predominant call signatures - -- PLAYER::SET_PLAYER_WANTED_CENTRE_POSITION(PLAYER::PLAYER_ID(), ENTITY::GET_ENTITY_COORDS(PLAYER::PLAYER_PED_ID(), 1)); - -- - -- # Parameter value ranges - -- P0: PLAYER::PLAYER_ID() - -- P1: ENTITY::GET_ENTITY_COORDS(PLAYER::PLAYER_PED_ID(), 1) - -- P2: Not set by any call - ["SET_PLAYER_WANTED_CENTRE_POSITION"]=--[[void]] function(--[[Player (int)]] player,--[[Vector3* (pointer)]] position,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(player, position, p2, p3, 0x520E541A97A13354, "ipbb")end, - -- Drft - ["GET_WANTED_LEVEL_THRESHOLD"]=--[[int]] function(--[[int]] wantedLevel)return native_invoker.unified_int(wantedLevel, 0xFDD179EAF45B556C, "i")end, - -- Call SET_PLAYER_WANTED_LEVEL_NOW for immediate effect - -- - -- wantedLevel is an integer value representing 0 to 5 stars even though the game supports the 6th wanted level but no police will appear since no definitions are present for it in the game files - -- - -- disableNoMission- Disables When Off Mission- appears to always be false - -- - ["SET_PLAYER_WANTED_LEVEL"]=--[[void]] function(--[[Player (int)]] player,--[[int]] wantedLevel,--[[BOOL (bool)]] disableNoMission)return native_invoker.unified_void(player, wantedLevel, disableNoMission, 0x39FF19C64EF7DA5B, "iib")end, - -- p2 is always false in R* scripts - ["SET_PLAYER_WANTED_LEVEL_NO_DROP"]=--[[void]] function(--[[Player (int)]] player,--[[int]] wantedLevel,--[[BOOL (bool)]] p2)return native_invoker.unified_void(player, wantedLevel, p2, 0x340E61DE7F471565, "iib")end, - -- Forces any pending wanted level to be applied to the specified player immediately. - -- - -- Call SET_PLAYER_WANTED_LEVEL with the desired wanted level, followed by SET_PLAYER_WANTED_LEVEL_NOW. - -- - -- Second parameter is unknown (always false). - ["SET_PLAYER_WANTED_LEVEL_NOW"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] p1)return native_invoker.unified_void(player, p1, 0xE0A7D1E497FFCD6F, "ib")end, - ["ARE_PLAYER_FLASHING_STARS_ABOUT_TO_DROP"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0xAFAF86043E5874E9, "i")end, - ["ARE_PLAYER_STARS_GREYED_OUT"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x0A6EB355EE14A2DB, "i")end, - ["IS_WANTED_AND_HAS_BEEN_SEEN_BY_COPS"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x7E07C78925D5FD96, "i")end, - ["SET_DISPATCH_COPS_FOR_PLAYER"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0xDB172424876553F4, "ib")end, - ["IS_PLAYER_WANTED_LEVEL_GREATER"]=--[[BOOL (bool)]] function(--[[Player (int)]] player,--[[int]] wantedLevel)return native_invoker.unified_bool(player, wantedLevel, 0x238DB2A2C23EE9EF, "ii")end, - -- This executes at the same as speed as PLAYER::SET_PLAYER_WANTED_LEVEL(player, 0, false); - -- - -- PLAYER::GET_PLAYER_WANTED_LEVEL(player); executes in less than half the time. Which means that it's worth first checking if the wanted level needs to be cleared before clearing. However, this is mostly about good code practice and can important in other situations. The difference in time in this example is negligible. - ["CLEAR_PLAYER_WANTED_LEVEL"]=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0xB302540597885499, "i")end, - ["IS_PLAYER_DEAD"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x424D4687FA1E5652, "i")end, - ["IS_PLAYER_PRESSING_HORN"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0xFA1E2BF8B10598F9, "i")end, - -- Flags: - -- SPC_AMBIENT_SCRIPT = (1 << 1), - -- SPC_CLEAR_TASKS = (1 << 2), - -- SPC_REMOVE_FIRES = (1 << 3), - -- SPC_REMOVE_EXPLOSIONS = (1 << 4), - -- SPC_REMOVE_PROJECTILES = (1 << 5), - -- SPC_DEACTIVATE_GADGETS = (1 << 6), - -- SPC_REENABLE_CONTROL_ON_DEATH = (1 << 7), - -- SPC_LEAVE_CAMERA_CONTROL_ON = (1 << 8), - -- SPC_ALLOW_PLAYER_DAMAGE = (1 << 9), - -- SPC_DONT_STOP_OTHER_CARS_AROUND_PLAYER = (1 << 10), - -- SPC_PREVENT_EVERYBODY_BACKOFF = (1 << 11), - -- SPC_ALLOW_PAD_SHAKE = (1 << 12) - -- - -- See: https://alloc8or.re/gta5/doc/enums/eSetPlayerControlFlag.txt - ["SET_PLAYER_CONTROL"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] bHasControl,--[[int]] flags)return native_invoker.unified_void(player, bHasControl, flags, 0x8D32347D6D4C40A2, "ibi")end, - ["GET_PLAYER_WANTED_LEVEL"]=--[[int]] function(--[[Player (int)]] player)return native_invoker.unified_int(player, 0xE28E54788CE8F12D, "i")end, - ["SET_MAX_WANTED_LEVEL"]=--[[void]] function(--[[int]] maxWantedLevel)return native_invoker.unified_void(maxWantedLevel, 0xAA5F02DB48D704B9, "i")end, - -- If toggle is set to false: - -- The police won't be shown on the (mini)map - -- - -- If toggle is set to true: - -- The police will be shown on the (mini)map - ["SET_POLICE_RADAR_BLIPS"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x43286D561B72B8BF, "b")end, - -- The player will be ignored by the police if toggle is set to true - ["SET_POLICE_IGNORE_PLAYER"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0x32C62AA929C2DA6A, "ib")end, - -- Checks whether the specified player has a Ped, the Ped is not dead, is not injured and is not arrested. - ["IS_PLAYER_PLAYING"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x5E9564D8246B909A, "i")end, - ["SET_EVERYONE_IGNORE_PLAYER"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0x8EEDA153AD141BA4, "ib")end, - ["SET_ALL_RANDOM_PEDS_FLEE"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0x056E0FE8534C2949, "ib")end, - ["SET_ALL_RANDOM_PEDS_FLEE_THIS_FRAME"]=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0x471D2FF42A94B4F2, "i")end, - ["SET_ALL_NEUTRAL_RANDOM_PEDS_FLEE"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0xDE45D1A1EF45EE61, "ib")end, - -- - This is called after SET_ALL_RANDOM_PEDS_FLEE_THIS_FRAME - -- - ["SET_ALL_NEUTRAL_RANDOM_PEDS_FLEE_THIS_FRAME"]=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0xC3376F42B1FACCC6, "i")end, - ["SET_LAW_PEDS_CAN_ATTACK_NON_WANTED_PLAYER_THIS_FRAME"]=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0xFAC75988A7D078D3, "i")end, - ["SET_IGNORE_LOW_PRIORITY_SHOCKING_EVENTS"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0x596976B02B6B5700, "ib")end, - ["SET_WANTED_LEVEL_MULTIPLIER"]=--[[void]] function(--[[float]] multiplier)return native_invoker.unified_void(multiplier, 0x020E5F00CDA207BA, "f")end, - -- Max value is 1.0 - ["SET_WANTED_LEVEL_DIFFICULTY"]=--[[void]] function(--[[Player (int)]] player,--[[float]] difficulty)return native_invoker.unified_void(player, difficulty, 0x9B0BB33B04405E7A, "if")end, - ["RESET_WANTED_LEVEL_DIFFICULTY"]=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0xB9D0DD990DC141DD, "i")end, - ["GET_WANTED_LEVEL_TIME_TO_ESCAPE"]=--[[int]] function()return native_invoker.unified_int(0xA72200F51875FEA4, "")end, - ["SET_WANTED_LEVEL_HIDDEN_ESCAPE_TIME"]=--[[void]] function(--[[Player (int)]] player,--[[int]] wantedLevel,--[[int]] lossTime)return native_invoker.unified_void(player, wantedLevel, lossTime, 0x49B856B1360C47C7, "iii")end, - ["RESET_WANTED_LEVEL_HIDDEN_ESCAPE_TIME"]=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0x823EC8E82BA45986, "i")end, - ["START_FIRING_AMNESTY"]=--[[void]] function(--[[int]] duration)return native_invoker.unified_void(duration, 0xBF9BD71691857E48, "i")end, - -- PLAYER::REPORT_CRIME(PLAYER::PLAYER_ID(), 37, PLAYER::GET_WANTED_LEVEL_THRESHOLD(1)); - -- - -- From am_armybase.ysc.c4: - -- - -- PLAYER::REPORT_CRIME(PLAYER::PLAYER_ID(4), 36, PLAYER::GET_WANTED_LEVEL_THRESHOLD(4)); - -- - -- ----- - -- - -- This was taken from the GTAV.exe v1.334. The function is called sub_140592CE8. For a full decompilation of the function, see here: https://pastebin.com/09qSMsN7 - -- - -- ----- - -- crimeType: - -- 1: Firearms possession - -- 2: Person running a red light ("5-0-5") - -- 3: Reckless driver - -- 4: Speeding vehicle (a "5-10") - -- 5: Traffic violation (a "5-0-5") - -- 6: Motorcycle rider without a helmet - -- 7: Vehicle theft (a "5-0-3") - -- 8: Grand Theft Auto - -- 9: ??? - -- 10: ??? - -- 11: Assault on a civilian (a "2-40") - -- 12: Assault on an officer - -- 13: Assault with a deadly weapon (a "2-45") - -- 14: Officer shot (a "2-45") - -- 15: Pedestrian struck by a vehicle - -- 16: Officer struck by a vehicle - -- 17: Helicopter down (an "AC"?) - -- 18: Civilian on fire (a "2-40") - -- 19: Officer set on fire (a "10-99") - -- 20: Car on fire - -- 21: Air unit down (an "AC"?) - -- 22: An explosion (a "9-96") - -- 23: A stabbing (a "2-45") (also something else I couldn't understand) - -- 24: Officer stabbed (also something else I couldn't understand) - -- 25: Attack on a vehicle ("MDV"?) - -- 26: Damage to property - -- 27: Suspect threatening officer with a firearm - -- 28: Shots fired - -- 29: ??? - -- 30: ??? - -- 31: ??? - -- 32: ??? - -- 33: ??? - -- 34: A "2-45" - -- 35: ??? - -- 36: A "9-25" - -- 37: ??? - -- 38: ??? - -- 39: ??? - -- 40: ??? - -- 41: ??? - -- 42: ??? - -- 43: Possible disturbance - -- 44: Civilian in need of assistance - -- 45: ??? - -- 46: ??? - ["REPORT_CRIME"]=--[[void]] function(--[[Player (int)]] player,--[[int]] crimeType,--[[int]] wantedLvlThresh)return native_invoker.unified_void(player, crimeType, wantedLvlThresh, 0xE9B09589827545E7, "iii")end, - -- crimeType: see REPORT_CRIME - ["SUPPRESS_CRIME_THIS_FRAME"]=--[[void]] function(--[[Player (int)]] player,--[[int]] crimeType)return native_invoker.unified_void(player, crimeType, 0x9A987297ED8BD838, "ii")end, - -- This native is used in both singleplayer and multiplayer scripts. - -- - -- Always used like this in scripts - -- PLAYER::UPDATE_WANTED_POSITION_THIS_FRAME(PLAYER::PLAYER_ID()); - ["UPDATE_WANTED_POSITION_THIS_FRAME"]=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0xBC9490CA15AEA8FB, "i")end, - -- This has been found in use in the decompiled files. - ["SUPPRESS_LOSING_WANTED_LEVEL_IF_HIDDEN_THIS_FRAME"]=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0x4669B3ED80F24B4E, "i")end, - ["ALLOW_EVASION_HUD_IF_DISABLING_HIDDEN_EVASION_THIS_FRAME"]=--[[void]] function(--[[Player (int)]] player,--[[Any (int)]] p1)return native_invoker.unified_void(player, p1, 0x2F41A3BAE005E5FA, "ii")end, - -- This has been found in use in the decompiled files. - ["FORCE_START_HIDDEN_EVASION"]=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0xAD73CE5A09E42D12, "i")end, - ["SUPPRESS_WITNESSES_CALLING_POLICE_THIS_FRAME"]=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0x36F1B38855F2A8DF, "i")end, - ["REPORT_POLICE_SPOTTED_PLAYER"]=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0xDC64D2C53493ED12, "i")end, - -- PLAYER::SET_LAW_RESPONSE_DELAY_OVERRIDE(rPtr((&l_122) + 71)); // Found in decompilation - -- - -- *** - -- - -- In "am_hold_up.ysc" used once: - -- - -- l_8d._f47 = MISC::GET_RANDOM_FLOAT_IN_RANGE(18.0, 28.0); - -- PLAYER::SET_LAW_RESPONSE_DELAY_OVERRIDE((l_8d._f47)); - ["SET_LAW_RESPONSE_DELAY_OVERRIDE"]=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0xB45EFF719D8427A6, "f")end, - -- 2 matches in 1 script - am_hold_up - -- - -- Used in multiplayer scripts? - ["RESET_LAW_RESPONSE_DELAY_OVERRIDE"]=--[[void]] function()return native_invoker.unified_void(0x0032A6DBA562C518, "")end, - ["CAN_PLAYER_START_MISSION"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0xDE7465A27D403C06, "i")end, - ["IS_PLAYER_READY_FOR_CUTSCENE"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x908CBECC2CAA3690, "i")end, - ["IS_PLAYER_TARGETTING_ENTITY"]=--[[BOOL (bool)]] function(--[[Player (int)]] player,--[[Entity (int)]] entity)return native_invoker.unified_bool(player, entity, 0x7912F7FC4F6264B6, "ii")end, - -- Assigns the handle of locked-on melee target to *entity that you pass it. - -- Returns false if no entity found. - ["GET_PLAYER_TARGET_ENTITY"]=--[[BOOL (bool)]] function(--[[Player (int)]] player,--[[Entity* (pointer)]] entity)return native_invoker.unified_bool(player, entity, 0x13EDE1A5DBF797C9, "ip")end, - -- Gets a value indicating whether the specified player is currently aiming freely. - ["IS_PLAYER_FREE_AIMING"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x2E397FD2ECD37C87, "i")end, - -- Gets a value indicating whether the specified player is currently aiming freely at the specified entity. - ["IS_PLAYER_FREE_AIMING_AT_ENTITY"]=--[[BOOL (bool)]] function(--[[Player (int)]] player,--[[Entity (int)]] entity)return native_invoker.unified_bool(player, entity, 0x3C06B5C839B38F7B, "ii")end, - -- Returns TRUE if it found an entity in your crosshair within range of your weapon. Assigns the handle of the target to the *entity that you pass it. - -- Returns false if no entity found. - ["GET_ENTITY_PLAYER_IS_FREE_AIMING_AT"]=--[[BOOL (bool)]] function(--[[Player (int)]] player,--[[Entity* (pointer)]] entity)return native_invoker.unified_bool(player, entity, 0x2975C866E6713290, "ip")end, - -- Affects the range of auto aim target. - ["SET_PLAYER_LOCKON_RANGE_OVERRIDE"]=--[[void]] function(--[[Player (int)]] player,--[[float]] range)return native_invoker.unified_void(player, range, 0x29961D490E5814FD, "if")end, - -- Set whether this player should be able to do drive-bys. - -- - -- "A drive-by is when a ped is aiming/shooting from vehicle. This includes middle finger taunts. By setting this value to false I confirm the player is unable to do all that. Tested on tick." - -- - ["SET_PLAYER_CAN_DO_DRIVE_BY"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0x6E8834B52EC20C77, "ib")end, - -- Sets whether this player can be hassled by gangs. - ["SET_PLAYER_CAN_BE_HASSLED_BY_GANGS"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0xD5E460AD7020A246, "ib")end, - -- Sets whether this player can take cover. - ["SET_PLAYER_CAN_USE_COVER"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0xD465A8599DFF6814, "ib")end, - -- Gets the maximum wanted level the player can get. - -- Ranges from 0 to 5. - ["GET_MAX_WANTED_LEVEL"]=--[[int]] function()return native_invoker.unified_int(0x462E0DB9B137DC5F, "")end, - ["IS_PLAYER_TARGETTING_ANYTHING"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x78CFE51896B6B8A4, "i")end, - ["SET_PLAYER_SPRINT"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0xA01B8075D8B92DF4, "ib")end, - ["RESET_PLAYER_STAMINA"]=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0xA6F312FCCE9C1DFE, "i")end, - ["RESTORE_PLAYER_STAMINA"]=--[[void]] function(--[[Player (int)]] player,--[[float]] p1)return native_invoker.unified_void(player, p1, 0xA352C1B864CAFD33, "if")end, - ["GET_PLAYER_SPRINT_STAMINA_REMAINING"]=--[[float]] function(--[[Player (int)]] player)return native_invoker.unified_float(player, 0x3F9F16F8E65A7ED7, "i")end, - ["GET_PLAYER_SPRINT_TIME_REMAINING"]=--[[float]] function(--[[Player (int)]] player)return native_invoker.unified_float(player, 0x1885BC9B108B4C99, "i")end, - ["GET_PLAYER_UNDERWATER_TIME_REMAINING"]=--[[float]] function(--[[Player (int)]] player)return native_invoker.unified_float(player, 0xA1FCF8E6AF40B731, "i")end, - ["SET_PLAYER_UNDERWATER_BREATH_PERCENT_REMAINING"]=--[[float]] function(--[[Player (int)]] player,--[[float]] time)return native_invoker.unified_float(player, time, 0xA0D3E4F7AAFB7E78, "if")end, - -- Returns the group ID the player is member of. - ["GET_PLAYER_GROUP"]=--[[int]] function(--[[Player (int)]] player)return native_invoker.unified_int(player, 0x0D127585F77030AF, "i")end, - ["GET_PLAYER_MAX_ARMOUR"]=--[[int]] function(--[[Player (int)]] player)return native_invoker.unified_int(player, 0x92659B4CE1863CB3, "i")end, - -- Can the player control himself, used to disable controls for player for things like a cutscene. - -- - -- --- - -- - -- You can't disable controls with this, use SET_PLAYER_CONTROL(...) for this. - ["IS_PLAYER_CONTROL_ON"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x49C32D60007AFA47, "i")end, - -- Returns true when the player is not able to control the cam i.e. when running a benchmark test, switching the player or viewing a cutscene. - -- - -- Note: I am not 100% sure if the native actually checks if the cam control is disabled but it seems promising. - ["GET_ARE_CAMERA_CONTROLS_DISABLED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x7C814D2FB49F40C0, "")end, - ["IS_PLAYER_SCRIPT_CONTROL_ON"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x8A876A65283DD7D7, "i")end, - -- Returns TRUE if the player ('s ped) is climbing at the moment. - ["IS_PLAYER_CLIMBING"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x95E8F73DC65EFB9C, "i")end, - -- Return true while player is being arrested / busted. - -- - -- If atArresting is set to 1, this function will return 1 when player is being arrested (while player is putting his hand up, but still have control) - -- - -- If atArresting is set to 0, this function will return 1 only when the busted screen is shown. - ["IS_PLAYER_BEING_ARRESTED"]=--[[BOOL (bool)]] function(--[[Player (int)]] player,--[[BOOL (bool)]] atArresting)return native_invoker.unified_bool(player, atArresting, 0x388A47C51ABDAC8E, "ib")end, - ["RESET_PLAYER_ARREST_STATE"]=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0x2D03E13C460760D6, "i")end, - -- Alternative: GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID(), 1); - ["GET_PLAYERS_LAST_VEHICLE"]=--[[Vehicle (int)]] function()return native_invoker.unified_int(0xB6997A7EB3F5C8C0, "")end, - -- Returns the same as PLAYER_ID and NETWORK_PLAYER_ID_TO_INT - ["GET_PLAYER_INDEX"]=--[[Player (int)]] function()return native_invoker.unified_int(0xA5EDC40EF369B48D, "")end, - -- Simply returns whatever is passed to it (Regardless of whether the handle is valid or not). - ["INT_TO_PLAYERINDEX"]=--[[Player (int)]] function(--[[int]] value)return native_invoker.unified_int(value, 0x41BD2A6B006AF756, "i")end, - -- Simply returns whatever is passed to it (Regardless of whether the handle is valid or not). - -- -------------------------------------------------------- - -- if (NETWORK::NETWORK_IS_PARTICIPANT_ACTIVE(PLAYER::INT_TO_PARTICIPANTINDEX(i))) - -- - ["INT_TO_PARTICIPANTINDEX"]=--[[int]] function(--[[int]] value)return native_invoker.unified_int(value, 0x9EC6603812C24710, "i")end, - ["GET_TIME_SINCE_PLAYER_HIT_VEHICLE"]=--[[int]] function(--[[Player (int)]] player)return native_invoker.unified_int(player, 0x5D35ECF3A81A0EE0, "i")end, - ["GET_TIME_SINCE_PLAYER_HIT_PED"]=--[[int]] function(--[[Player (int)]] player)return native_invoker.unified_int(player, 0xE36A25322DC35F42, "i")end, - ["GET_TIME_SINCE_PLAYER_DROVE_ON_PAVEMENT"]=--[[int]] function(--[[Player (int)]] player)return native_invoker.unified_int(player, 0xD559D2BE9E37853B, "i")end, - ["GET_TIME_SINCE_PLAYER_DROVE_AGAINST_TRAFFIC"]=--[[int]] function(--[[Player (int)]] player)return native_invoker.unified_int(player, 0xDB89591E290D9182, "i")end, - ["IS_PLAYER_FREE_FOR_AMBIENT_TASK"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0xDCCFD3F106C36AB4, "i")end, - -- This returns YOUR 'identity' as a Player type. - -- - -- Always returns 0 in story mode. - ["PLAYER_ID"]=--[[Player (int)]] function()return native_invoker.unified_int(0x4F8644AF03D0E0D6, "")end, - -- Returns current player ped - ["PLAYER_PED_ID"]=--[[Ped (int)]] function()return native_invoker.unified_int(0xD80958FC74E988A6, "")end, - -- Does exactly the same thing as PLAYER_ID() - ["NETWORK_PLAYER_ID_TO_INT"]=--[[int]] function()return native_invoker.unified_int(0xEE68096F9F37341E, "")end, - ["HAS_FORCE_CLEANUP_OCCURRED"]=--[[BOOL (bool)]] function(--[[int]] cleanupFlags)return native_invoker.unified_bool(cleanupFlags, 0xC968670BFACE42D9, "i")end, - -- used with 1,2,8,64,128 in the scripts - ["FORCE_CLEANUP"]=--[[void]] function(--[[int]] cleanupFlags)return native_invoker.unified_void(cleanupFlags, 0xBC8983F38F78ED51, "i")end, - -- PLAYER::FORCE_CLEANUP_FOR_ALL_THREADS_WITH_THIS_NAME("pb_prostitute", 1); // Found in decompilation - ["FORCE_CLEANUP_FOR_ALL_THREADS_WITH_THIS_NAME"]=--[[void]] function(--[[string]] name,--[[int]] cleanupFlags)return native_invoker.unified_void(name, cleanupFlags, 0x4C68DDDDF0097317, "si")end, - ["FORCE_CLEANUP_FOR_THREAD_WITH_THIS_ID"]=--[[void]] function(--[[int]] id,--[[int]] cleanupFlags)return native_invoker.unified_void(id, cleanupFlags, 0xF745B37630DF176B, "ii")end, - ["GET_CAUSE_OF_MOST_RECENT_FORCE_CLEANUP"]=--[[int]] function()return native_invoker.unified_int(0x9A41CF4674A12272, "")end, - ["SET_PLAYER_MAY_ONLY_ENTER_THIS_VEHICLE"]=--[[void]] function(--[[Player (int)]] player,--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(player, vehicle, 0x8026FF78F208978A, "ii")end, - ["SET_PLAYER_MAY_NOT_ENTER_ANY_VEHICLE"]=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0x1DE37BBF9E9CC14A, "i")end, - -- 1 - Welcome to Los Santos - -- 2 - A Friendship Resurrected - -- 3 - A Fair Day's Pay - -- 4 - The Moment of Truth - -- 5 - To Live or Die in Los Santos - -- 6 - Diamond Hard - -- 7 - Subversive - -- 8 - Blitzed - -- 9 - Small Town, Big Job - -- 10 - The Government Gimps - -- 11 - The Big One! - -- 12 - Solid Gold, Baby! - -- 13 - Career Criminal - -- 14 - San Andreas Sightseer - -- 15 - All's Fare in Love and War - -- 16 - TP Industries Arms Race - -- 17 - Multi-Disciplined - -- 18 - From Beyond the Stars - -- 19 - A Mystery, Solved - -- 20 - Waste Management - -- 21 - Red Mist - -- 22 - Show Off - -- 23 - Kifflom! - -- 24 - Three Man Army - -- 25 - Out of Your Depth - -- 26 - Altruist Acolyte - -- 27 - A Lot of Cheddar - -- 28 - Trading Pure Alpha - -- 29 - Pimp My Sidearm - -- 30 - Wanted: Alive Or Alive - -- 31 - Los Santos Customs - -- 32 - Close Shave - -- 33 - Off the Plane - -- 34 - Three-Bit Gangster - -- 35 - Making Moves - -- 36 - Above the Law - -- 37 - Numero Uno - -- 38 - The Midnight Club - -- 39 - Unnatural Selection - -- 40 - Backseat Driver - -- 41 - Run Like The Wind - -- 42 - Clean Sweep - -- 43 - Decorated - -- 44 - Stick Up Kid - -- 45 - Enjoy Your Stay - -- 46 - Crew Cut - -- 47 - Full Refund - -- 48 - Dialling Digits - -- 49 - American Dream - -- 50 - A New Perspective - -- 51 - Be Prepared - -- 52 - In the Name of Science - -- 53 - Dead Presidents - -- 54 - Parole Day - -- 55 - Shot Caller - -- 56 - Four Way - -- 57 - Live a Little - -- 58 - Can't Touch This - -- 59 - Mastermind - -- 60 - Vinewood Visionary - -- 61 - Majestic - -- 62 - Humans of Los Santos - -- 63 - First Time Director - -- 64 - Animal Lover - -- 65 - Ensemble Piece - -- 66 - Cult Movie - -- 67 - Location Scout - -- 68 - Method Actor - -- 69 - Cryptozoologist - -- 70 - Getting Started - -- 71 - The Data Breaches - -- 72 - The Bogdan Problem - -- 73 - The Doomsday Scenario - -- 74 - A World Worth Saving - -- 75 - Orbital Obliteration - -- 76 - Elitist - -- 77 - Masterminds - ["GIVE_ACHIEVEMENT_TO_PLAYER"]=--[[BOOL (bool)]] function(--[[int]] achievementId)return native_invoker.unified_bool(achievementId, 0xBEC7076D64130195, "i")end, - -- For Steam. - -- Does nothing and always returns false in the retail version of the game. - ["SET_ACHIEVEMENT_PROGRESS"]=--[[BOOL (bool)]] function(--[[int]] achievementId,--[[int]] progress)return native_invoker.unified_bool(achievementId, progress, 0xC2AFFFDABBDC2C5C, "ii")end, - -- For Steam. - -- Always returns 0 in retail version of the game. - ["GET_ACHIEVEMENT_PROGRESS"]=--[[int]] function(--[[int]] achievementId)return native_invoker.unified_int(achievementId, 0x1C186837D0619335, "i")end, - -- See GIVE_ACHIEVEMENT_TO_PLAYER - ["HAS_ACHIEVEMENT_BEEN_PASSED"]=--[[BOOL (bool)]] function(--[[int]] achievementId)return native_invoker.unified_bool(achievementId, 0x867365E111A3B6EB, "i")end, - -- Returns TRUE if the game is in online mode and FALSE if in offline mode. - -- - -- This is an alias for NETWORK_IS_SIGNED_ONLINE. - ["IS_PLAYER_ONLINE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xF25D331DC2627BBC, "")end, - -- this function is hard-coded to always return 0. - ["IS_PLAYER_LOGGING_IN_NP"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x74556E1420867ECA, "")end, - -- Purpose of the BOOL currently unknown. - -- Both, true and false, work - ["DISPLAY_SYSTEM_SIGNIN_UI"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x94DD7888C10A979E, "b")end, - ["IS_SYSTEM_UI_BEING_DISPLAYED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x5D511E3867C87139, "")end, - -- Simply sets you as invincible (Health will not deplete). - -- - -- Use 0x733A643B5B0C53C1 instead if you want Ragdoll enabled, which is equal to: - -- *(DWORD *)(playerPedAddress + 0x188) |= (1 << 9); - ["SET_PLAYER_INVINCIBLE"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0x239528EACDC3E7DE, "ib")end, - -- Returns the Player's Invincible status. - -- - -- This function will always return false if 0x733A643B5B0C53C1 is used to set the invincibility status. To always get the correct result, use this: - -- - -- bool IsPlayerInvincible(Player player) - -- { - -- auto addr = getScriptHandleBaseAddress(GET_PLAYER_PED(player)); - -- - -- if (addr) - -- { - -- DWORD flag = *(DWORD *)(addr + 0x188); - -- return ((flag & (1 << 8)) != 0) || ((flag & (1 << 9)) != 0); - -- } - -- - -- return false; - -- } - -- - -- - ["GET_PLAYER_INVINCIBLE"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0xB721981B2B939E07, "i")end, - -- Always returns false. - ["GET_PLAYER_DEBUG_INVINCIBLE"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0xDCC07526B8EC45AF, "i")end, - ["SET_PLAYER_INVINCIBLE_BUT_HAS_REACTIONS"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0x6BC97F4F4BB3C04B, "ib")end, - ["SET_PLAYER_CAN_COLLECT_DROPPED_MONEY"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] p1)return native_invoker.unified_void(player, p1, 0xCAC57395B151135F, "ib")end, - ["REMOVE_PLAYER_HELMET"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] p2)return native_invoker.unified_void(player, p2, 0xF3AC26D3CC576528, "ib")end, - ["GIVE_PLAYER_RAGDOLL_CONTROL"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0x3C49C870E66F0A28, "ib")end, - -- Example from fm_mission_controler.ysc.c4: - -- - -- PLAYER::SET_PLAYER_LOCKON(PLAYER::PLAYER_ID(), 1); - -- - -- All other decompiled scripts using this seem to be using the player id as the first parameter, so I feel the need to confirm it as so. - -- - -- No need to confirm it says PLAYER_ID() so it uses PLAYER_ID() lol. - ["SET_PLAYER_LOCKON"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0x5C8B2F450EE4328E, "ib")end, - -- Sets your targeting mode. - -- 0 = Assisted Aim - Full - -- 1 = Assisted Aim - Partial - -- 2 = Free Aim - Assisted - -- 3 = Free Aim - ["SET_PLAYER_TARGETING_MODE"]=--[[void]] function(--[[int]] targetMode)return native_invoker.unified_void(targetMode, 0xB1906895227793F3, "i")end, - -- Returns targeting mode. See SET_PLAYER_TARGETING_MODE - ["GET_PLAYER_TARGETING_MODE"]=--[[int]] function()return native_invoker.unified_int(0x875BDD898B99C8CE, "")end, - ["SET_PLAYER_TARGET_LEVEL"]=--[[void]] function(--[[int]] targetLevel)return native_invoker.unified_void(targetLevel, 0x5702B917B99DB1CD, "i")end, - -- Returns profile setting 237. - ["GET_IS_USING_FPS_THIRD_PERSON_COVER"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xB9CF1F793A9F1BF1, "")end, - -- Returns profile setting 243. - ["GET_IS_USING_HOOD_CAMERA"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xCB645E85E97EA48B, "")end, - ["CLEAR_PLAYER_HAS_DAMAGED_AT_LEAST_ONE_PED"]=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0xF0B67A4DE6AB5F98, "i")end, - ["HAS_PLAYER_DAMAGED_AT_LEAST_ONE_PED"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x20CE80B0C2BF4ACC, "i")end, - ["CLEAR_PLAYER_HAS_DAMAGED_AT_LEAST_ONE_NON_ANIMAL_PED"]=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0x4AACB96203D11A31, "i")end, - ["HAS_PLAYER_DAMAGED_AT_LEAST_ONE_NON_ANIMAL_PED"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0xE4B90F367BD81752, "i")end, - -- This can be between 1.0f - 14.9f - -- - -- You can change the max in IDA from 15.0. I say 15.0 as the function blrs if what you input is greater than or equal to 15.0 hence why it's 14.9 max default. - -- - -- - ["SET_AIR_DRAG_MULTIPLIER_FOR_PLAYERS_VEHICLE"]=--[[void]] function(--[[Player (int)]] player,--[[float]] multiplier)return native_invoker.unified_void(player, multiplier, 0xCA7DC8329F0A1E9E, "if")end, - -- Swim speed multiplier. - -- Multiplier goes up to 1.49 - -- - -- Just call it one time, it is not required to be called once every tick. - Note copied from below native. - -- - -- Note: At least the IDA method if you change the max float multiplier from 1.5 it will change it for both this and RUN_SPRINT below. I say 1.5 as the function blrs if what you input is greater than or equal to 1.5 hence why it's 1.49 max default. - ["SET_SWIM_MULTIPLIER_FOR_PLAYER"]=--[[void]] function(--[[Player (int)]] player,--[[float]] multiplier)return native_invoker.unified_void(player, multiplier, 0xA91C6F0FF7D16A13, "if")end, - -- Multiplier goes up to 1.49 any value above will be completely overruled by the game and the multiplier will not take effect, this can be edited in memory however. - -- - -- Just call it one time, it is not required to be called once every tick. - -- - -- Note: At least the IDA method if you change the max float multiplier from 1.5 it will change it for both this and SWIM above. I say 1.5 as the function blrs if what you input is greater than or equal to 1.5 hence why it's 1.49 max default. - ["SET_RUN_SPRINT_MULTIPLIER_FOR_PLAYER"]=--[[void]] function(--[[Player (int)]] player,--[[float]] multiplier)return native_invoker.unified_void(player, multiplier, 0x6DB47AA77FD94E09, "if")end, - -- Returns the time since the character was arrested in (ms) milliseconds. - -- - -- example - -- - -- var time = Function.call(Hash.GET_TIME_SINCE_LAST_ARREST(); - -- - -- UI.DrawSubtitle(time.ToString()); - -- - -- if player has not been arrested, the int returned will be -1. - ["GET_TIME_SINCE_LAST_ARREST"]=--[[int]] function()return native_invoker.unified_int(0x5063F92F07C2A316, "")end, - -- Returns the time since the character died in (ms) milliseconds. - -- - -- example - -- - -- var time = Function.call(Hash.GET_TIME_SINCE_LAST_DEATH(); - -- - -- UI.DrawSubtitle(time.ToString()); - -- - -- if player has not died, the int returned will be -1. - ["GET_TIME_SINCE_LAST_DEATH"]=--[[int]] function()return native_invoker.unified_int(0xC7034807558DDFCA, "")end, - ["ASSISTED_MOVEMENT_CLOSE_ROUTE"]=--[[void]] function()return native_invoker.unified_void(0xAEBF081FFC0A0E5E, "")end, - ["ASSISTED_MOVEMENT_FLUSH_ROUTE"]=--[[void]] function()return native_invoker.unified_void(0x8621390F0CDCFE1F, "")end, - ["SET_PLAYER_FORCED_AIM"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0x0FEE4F80AC44A726, "ib")end, - ["SET_PLAYER_FORCED_ZOOM"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0x75E7D505F2B15902, "ib")end, - ["SET_PLAYER_FORCE_SKIP_AIM_INTRO"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0x7651BC64AE59E128, "ib")end, - -- Inhibits the player from using any method of combat including melee and firearms. - -- - -- NOTE: Only disables the firing for one frame - ["DISABLE_PLAYER_FIRING"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0x5E6CC07646BBEAB8, "ib")end, - -- Used only once in R* scripts (freemode.ysc). - ["DISABLE_PLAYER_THROW_GRENADE_WHILE_USING_GUN"]=--[[void]] function()return native_invoker.unified_void(0xB885852C39CC265D, "")end, - ["SET_DISABLE_AMBIENT_MELEE_MOVE"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0x2E8AABFA40A84F8C, "ib")end, - -- Default is 100. Use player id and not ped id. For instance: PLAYER::SET_PLAYER_MAX_ARMOUR(PLAYER::PLAYER_ID(), 100); // main_persistent.ct4 - ["SET_PLAYER_MAX_ARMOUR"]=--[[void]] function(--[[Player (int)]] player,--[[int]] value)return native_invoker.unified_void(player, value, 0x77DFCCF5948B8C71, "ii")end, - -- p1 is always 0 in the scripts - ["SPECIAL_ABILITY_ACTIVATE"]=--[[void]] function(--[[Player (int)]] player,--[[int]] p1)return native_invoker.unified_void(player, p1, 0x821FDC827D6F4090, "ii")end, - ["SET_SPECIAL_ABILITY_MP"]=--[[void]] function(--[[Player (int)]] player,--[[int]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(player, p1, p2, 0xB214D570EAD7F81A, "iii")end, - -- p1 is always 0 in the scripts - ["SPECIAL_ABILITY_DEACTIVATE_MP"]=--[[void]] function(--[[Player (int)]] player,--[[int]] p1)return native_invoker.unified_void(player, p1, 0x17F7471EACA78290, "ii")end, - ["SPECIAL_ABILITY_DEACTIVATE"]=--[[void]] function(--[[Player (int)]] player,--[[Any (int)]] p1)return native_invoker.unified_void(player, p1, 0xD6A953C6D1492057, "ii")end, - ["SPECIAL_ABILITY_DEACTIVATE_FAST"]=--[[void]] function(--[[Player (int)]] player,--[[Any (int)]] p1)return native_invoker.unified_void(player, p1, 0x9CB5CE07A3968D5A, "ii")end, - ["SPECIAL_ABILITY_RESET"]=--[[void]] function(--[[Player (int)]] player,--[[Any (int)]] p1)return native_invoker.unified_void(player, p1, 0x375F0E738F861A94, "ii")end, - ["SPECIAL_ABILITY_CHARGE_ON_MISSION_FAILED"]=--[[void]] function(--[[Player (int)]] player,--[[Any (int)]] p1)return native_invoker.unified_void(player, p1, 0xC9A763D8FE87436A, "ii")end, - -- Every occurrence of p1 & p2 were both true. - ["SPECIAL_ABILITY_CHARGE_SMALL"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(player, p1, p2, p3, 0x2E7B9B683481687D, "ibbi")end, - -- Only 1 match. Both p1 & p2 were true. - ["SPECIAL_ABILITY_CHARGE_MEDIUM"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(player, p1, p2, p3, 0xF113E3AA9BC54613, "ibbi")end, - -- 2 matches. p1 was always true. - ["SPECIAL_ABILITY_CHARGE_LARGE"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(player, p1, p2, p3, 0xF733F45FA4497D93, "ibbi")end, - -- p1 appears to always be 1 (only comes up twice) - ["SPECIAL_ABILITY_CHARGE_CONTINUOUS"]=--[[void]] function(--[[Player (int)]] player,--[[Ped (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(player, p1, p2, 0xED481732DFF7E997, "iii")end, - -- p1 appears as 5, 10, 15, 25, or 30. p2 is always true. - ["SPECIAL_ABILITY_CHARGE_ABSOLUTE"]=--[[void]] function(--[[Player (int)]] player,--[[int]] p1,--[[BOOL (bool)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(player, p1, p2, p3, 0xB7B0870EB531D08D, "iibi")end, - -- - -- normalizedValue is from 0.0 - 1.0 - -- p2 is always 1 - ["SPECIAL_ABILITY_CHARGE_NORMALIZED"]=--[[void]] function(--[[Player (int)]] player,--[[float]] normalizedValue,--[[BOOL (bool)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(player, normalizedValue, p2, p3, 0xA0696A65F009EE18, "ifbi")end, - -- Also known as _RECHARGE_SPECIAL_ABILITY - ["SPECIAL_ABILITY_FILL_METER"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(player, p1, p2, 0x3DACA8DDC6FD4980, "ibi")end, - -- p1 was always true. - ["SPECIAL_ABILITY_DEPLETE_METER"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(player, p1, p2, 0x1D506DBBBC51E64B, "ibi")end, - ["SPECIAL_ABILITY_LOCK"]=--[[void]] function(--[[Hash (int)]] playerModel,--[[Any (int)]] p1)return native_invoker.unified_void(playerModel, p1, 0x6A09D0D590A47D13, "ii")end, - ["SPECIAL_ABILITY_UNLOCK"]=--[[void]] function(--[[Hash (int)]] playerModel,--[[Any (int)]] p1)return native_invoker.unified_void(playerModel, p1, 0xF145F3BE2EFA9A3B, "ii")end, - ["IS_SPECIAL_ABILITY_UNLOCKED"]=--[[BOOL (bool)]] function(--[[Hash (int)]] playerModel)return native_invoker.unified_bool(playerModel, 0xC6017F6A6CDFA694, "i")end, - ["IS_SPECIAL_ABILITY_ACTIVE"]=--[[BOOL (bool)]] function(--[[Player (int)]] player,--[[Any (int)]] p1)return native_invoker.unified_bool(player, p1, 0x3E5F7FC85D854E15, "ii")end, - ["IS_SPECIAL_ABILITY_METER_FULL"]=--[[BOOL (bool)]] function(--[[Player (int)]] player,--[[Any (int)]] p1)return native_invoker.unified_bool(player, p1, 0x05A1FE504B7F2587, "ii")end, - ["ENABLE_SPECIAL_ABILITY"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle,--[[Any (int)]] p2)return native_invoker.unified_void(player, toggle, p2, 0x181EC197DAEFE121, "ibi")end, - ["IS_SPECIAL_ABILITY_ENABLED"]=--[[BOOL (bool)]] function(--[[Player (int)]] player,--[[Any (int)]] p1)return native_invoker.unified_bool(player, p1, 0xB1D200FE26AEF3CB, "ii")end, - ["SET_SPECIAL_ABILITY_MULTIPLIER"]=--[[void]] function(--[[float]] multiplier)return native_invoker.unified_void(multiplier, 0xA49C426ED0CA4AB7, "f")end, - ["UPDATE_SPECIAL_ABILITY_FROM_STAT"]=--[[void]] function(--[[Player (int)]] player,--[[Any (int)]] p1)return native_invoker.unified_void(player, p1, 0xFFEE8FA29AB9A18E, "ii")end, - -- Appears once in "re_dealgonewrong" - ["GET_IS_PLAYER_DRIVING_ON_HIGHWAY"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x5FC472C501CCADB3, "i")end, - -- Only 1 occurrence. p1 was 2. - ["GET_IS_PLAYER_DRIVING_WRECKLESS"]=--[[BOOL (bool)]] function(--[[Player (int)]] player,--[[int]] p1)return native_invoker.unified_bool(player, p1, 0xF10B44FD479D69F3, "ii")end, - -- 2 occurrences in agency_heist3a. p1 was 0.7f then 0.4f. - ["GET_IS_MOPPING_AREA_FREE_IN_FRONT_OF_PLAYER"]=--[[BOOL (bool)]] function(--[[Player (int)]] player,--[[float]] p1)return native_invoker.unified_bool(player, p1, 0xDD2620B7B9D16FF1, "if")end, - -- `findCollisionLand`: This teleports the player to land when set to true and will not consider the Z coordinate parameter provided by you. It will automatically put the Z coordinate so that you don't fall from sky. - ["START_PLAYER_TELEPORT"]=--[[void]] function(--[[Player (int)]] player,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] heading,--[[BOOL (bool)]] p5,--[[BOOL (bool)]] findCollisionLand,--[[BOOL (bool)]] p7)return native_invoker.unified_void(player, x, y, z, heading, p5, findCollisionLand, p7, 0xAD15F075A4DA0FDE, "iffffbbb")end, - ["UPDATE_PLAYER_TELEPORT"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0xE23D5873C2394C61, "i")end, - -- Disables the player's teleportation - ["STOP_PLAYER_TELEPORT"]=--[[void]] function()return native_invoker.unified_void(0xC449EDED9D73009C, "")end, - ["IS_PLAYER_TELEPORT_ACTIVE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x02B15662D7F8886F, "")end, - ["GET_PLAYER_CURRENT_STEALTH_NOISE"]=--[[float]] function(--[[Player (int)]] player)return native_invoker.unified_float(player, 0x2F395D61F3A1F877, "i")end, - -- `regenRate`: The recharge multiplier, a value between 0.0 and 1.0. - -- Use 1.0 to reset it back to normal - ["SET_PLAYER_HEALTH_RECHARGE_MULTIPLIER"]=--[[void]] function(--[[Player (int)]] player,--[[float]] regenRate)return native_invoker.unified_void(player, regenRate, 0x5DB660B38DD98A31, "if")end, - ["GET_PLAYER_HEALTH_RECHARGE_MAX_PERCENT"]=--[[float]] function(--[[Player (int)]] player)return native_invoker.unified_float(player, 0x8BC515BAE4AAF8FF, "i")end, - ["SET_PLAYER_HEALTH_RECHARGE_MAX_PERCENT"]=--[[void]] function(--[[Player (int)]] player,--[[float]] limit)return native_invoker.unified_void(player, limit, 0xC388A0F065F5BC34, "if")end, - -- Needs to be called every frame. - ["DISABLE_PLAYER_HEALTH_RECHARGE"]=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0xBCB06442F7E52666, "i")end, - ["SET_PLAYER_FALL_DISTANCE_TO_TRIGGER_RAGDOLL_OVERRIDE"]=--[[void]] function(--[[Player (int)]] player,--[[float]] p1)return native_invoker.unified_void(player, p1, 0xEFD79FA81DFBA9CB, "if")end, - -- This modifies the damage value of your weapon. Whether it is a multiplier or base damage is unknown. - -- - -- Based on tests, it is unlikely to be a multiplier. - -- - -- modifier's min value is 0.1 - ["SET_PLAYER_WEAPON_DAMAGE_MODIFIER"]=--[[void]] function(--[[Player (int)]] player,--[[float]] modifier)return native_invoker.unified_void(player, modifier, 0xCE07B9F7817AADA3, "if")end, - -- modifier's min value is 0.1 - ["SET_PLAYER_WEAPON_DEFENSE_MODIFIER"]=--[[void]] function(--[[Player (int)]] player,--[[float]] modifier)return native_invoker.unified_void(player, modifier, 0x2D83BC011CA14A3C, "if")end, - -- modifier's min value is 0.1 - ["SET_PLAYER_WEAPON_MINIGUN_DEFENSE_MODIFIER"]=--[[void]] function(--[[Player (int)]] player,--[[float]] modifier)return native_invoker.unified_void(player, modifier, 0xBCFDE9EDE4CF27DC, "if")end, - -- modifier's min value is 0.1 - ["SET_PLAYER_MELEE_WEAPON_DAMAGE_MODIFIER"]=--[[void]] function(--[[Player (int)]] player,--[[float]] modifier,--[[BOOL (bool)]] p2)return native_invoker.unified_void(player, modifier, p2, 0x4A3DC7ECCC321032, "ifb")end, - -- modifier's min value is 0.1 - ["SET_PLAYER_MELEE_WEAPON_DEFENSE_MODIFIER"]=--[[void]] function(--[[Player (int)]] player,--[[float]] modifier)return native_invoker.unified_void(player, modifier, 0xAE540335B4ABC4E2, "if")end, - -- modifier's min value is 0.1 - ["SET_PLAYER_VEHICLE_DAMAGE_MODIFIER"]=--[[void]] function(--[[Player (int)]] player,--[[float]] modifier)return native_invoker.unified_void(player, modifier, 0xA50E117CDDF82F0C, "if")end, - -- modifier's min value is 0.1 - ["SET_PLAYER_VEHICLE_DEFENSE_MODIFIER"]=--[[void]] function(--[[Player (int)]] player,--[[float]] modifier)return native_invoker.unified_void(player, modifier, 0x4C60E6EFDAFF2462, "if")end, - ["SET_PLAYER_MAX_EXPLOSIVE_DAMAGE"]=--[[void]] function(--[[Player (int)]] player,--[[float]] p1)return native_invoker.unified_void(player, p1, 0x8D768602ADEF2245, "if")end, - ["SET_PLAYER_EXPLOSIVE_DAMAGE_MODIFIER"]=--[[void]] function(--[[Player (int)]] player,--[[Any (int)]] p1)return native_invoker.unified_void(player, p1, 0xD821056B9ACF8052, "ii")end, - ["SET_PLAYER_WEAPON_TAKEDOWN_DEFENSE_MODIFIER"]=--[[void]] function(--[[Player (int)]] player,--[[float]] p1)return native_invoker.unified_void(player, p1, 0x31E90B8873A4CD3B, "if")end, - -- Tints: - -- None = -1, - -- Rainbow = 0, - -- Red = 1, - -- SeasideStripes = 2, - -- WidowMaker = 3, - -- Patriot = 4, - -- Blue = 5, - -- Black = 6, - -- Hornet = 7, - -- AirFocce = 8, - -- Desert = 9, - -- Shadow = 10, - -- HighAltitude = 11, - -- Airbone = 12, - -- Sunrise = 13, - -- - ["SET_PLAYER_PARACHUTE_TINT_INDEX"]=--[[void]] function(--[[Player (int)]] player,--[[int]] tintIndex)return native_invoker.unified_void(player, tintIndex, 0xA3D0E54541D9A5E5, "ii")end, - -- Tints: - -- None = -1, - -- Rainbow = 0, - -- Red = 1, - -- SeasideStripes = 2, - -- WidowMaker = 3, - -- Patriot = 4, - -- Blue = 5, - -- Black = 6, - -- Hornet = 7, - -- AirFocce = 8, - -- Desert = 9, - -- Shadow = 10, - -- HighAltitude = 11, - -- Airbone = 12, - -- Sunrise = 13, - ["GET_PLAYER_PARACHUTE_TINT_INDEX"]=--[[void]] function(--[[Player (int)]] player,--[[int* (pointer)]] tintIndex)return native_invoker.unified_void(player, tintIndex, 0x75D3F7A1B0D9B145, "ip")end, - -- Tints: - -- None = -1, - -- Rainbow = 0, - -- Red = 1, - -- SeasideStripes = 2, - -- WidowMaker = 3, - -- Patriot = 4, - -- Blue = 5, - -- Black = 6, - -- Hornet = 7, - -- AirFocce = 8, - -- Desert = 9, - -- Shadow = 10, - -- HighAltitude = 11, - -- Airbone = 12, - -- Sunrise = 13, - ["SET_PLAYER_RESERVE_PARACHUTE_TINT_INDEX"]=--[[void]] function(--[[Player (int)]] player,--[[int]] index)return native_invoker.unified_void(player, index, 0xAF04C87F5DC1DF38, "ii")end, - -- Tints: - -- None = -1, - -- Rainbow = 0, - -- Red = 1, - -- SeasideStripes = 2, - -- WidowMaker = 3, - -- Patriot = 4, - -- Blue = 5, - -- Black = 6, - -- Hornet = 7, - -- AirFocce = 8, - -- Desert = 9, - -- Shadow = 10, - -- HighAltitude = 11, - -- Airbone = 12, - -- Sunrise = 13, - ["GET_PLAYER_RESERVE_PARACHUTE_TINT_INDEX"]=--[[void]] function(--[[Player (int)]] player,--[[int* (pointer)]] index)return native_invoker.unified_void(player, index, 0xD5A016BC3C09CF40, "ip")end, - -- tints 0- 13 - -- 0 - unkown - -- 1 - unkown - -- 2 - unkown - -- 3 - unkown - -- 4 - unkown - ["SET_PLAYER_PARACHUTE_PACK_TINT_INDEX"]=--[[void]] function(--[[Player (int)]] player,--[[int]] tintIndex)return native_invoker.unified_void(player, tintIndex, 0x93B0FB27C9A04060, "ii")end, - ["GET_PLAYER_PARACHUTE_PACK_TINT_INDEX"]=--[[void]] function(--[[Player (int)]] player,--[[int* (pointer)]] tintIndex)return native_invoker.unified_void(player, tintIndex, 0x6E9C742F340CE5A2, "ip")end, - ["SET_PLAYER_HAS_RESERVE_PARACHUTE"]=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0x7DDAB28D31FAC363, "i")end, - ["GET_PLAYER_HAS_RESERVE_PARACHUTE"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x5DDFE2FF727F3CA3, "i")end, - ["SET_PLAYER_CAN_LEAVE_PARACHUTE_SMOKE_TRAIL"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] enabled)return native_invoker.unified_void(player, enabled, 0xF401B182DBA8AF53, "ib")end, - ["SET_PLAYER_PARACHUTE_SMOKE_TRAIL_COLOR"]=--[[void]] function(--[[Player (int)]] player,--[[int]] r,--[[int]] g,--[[int]] b)return native_invoker.unified_void(player, r, g, b, 0x8217FD371A4625CF, "iiii")end, - ["GET_PLAYER_PARACHUTE_SMOKE_TRAIL_COLOR"]=--[[void]] function(--[[Player (int)]] player,--[[int* (pointer)]] r,--[[int* (pointer)]] g,--[[int* (pointer)]] b)return native_invoker.unified_void(player, r, g, b, 0xEF56DBABD3CD4887, "ippp")end, - -- example: - -- - -- flags: 0-6 - -- - -- PLAYER::SET_PLAYER_RESET_FLAG_PREFER_REAR_SEATS(PLAYER::PLAYER_ID(), 6); - -- - -- wouldnt the flag be the seatIndex? - ["SET_PLAYER_PHONE_PALETTE_IDX"]=--[[void]] function(--[[Player (int)]] player,--[[int]] flags)return native_invoker.unified_void(player, flags, 0x11D5F725F0E780E0, "ii")end, - ["SET_PLAYER_NOISE_MULTIPLIER"]=--[[void]] function(--[[Player (int)]] player,--[[float]] multiplier)return native_invoker.unified_void(player, multiplier, 0xDB89EF50FF25FCE9, "if")end, - -- Values around 1.0f to 2.0f used in game scripts. - ["SET_PLAYER_SNEAKING_NOISE_MULTIPLIER"]=--[[void]] function(--[[Player (int)]] player,--[[float]] multiplier)return native_invoker.unified_void(player, multiplier, 0xB2C1A29588A9F47C, "if")end, - ["CAN_PED_HEAR_PLAYER"]=--[[BOOL (bool)]] function(--[[Player (int)]] player,--[[Ped (int)]] ped)return native_invoker.unified_bool(player, ped, 0xF297383AA91DCA29, "ii")end, - -- This is to make the player walk without accepting input from INPUT. - -- - -- gaitType is in increments of 100s. 2000, 500, 300, 200, etc. - -- - -- p4 is always 1 and p5 is always 0. - -- - -- C# Example : - -- - -- Function.Call(Hash.SIMULATE_PLAYER_INPUT_GAIT, Game.Player, 1.0f, 100, 1.0f, 1, 0); //Player will go forward for 100ms - ["SIMULATE_PLAYER_INPUT_GAIT"]=--[[void]] function(--[[Player (int)]] player,--[[float]] amount,--[[int]] gaitType,--[[float]] speed,--[[BOOL (bool)]] p4,--[[BOOL (bool)]] p5,--[[Any (int)]] p6)return native_invoker.unified_void(player, amount, gaitType, speed, p4, p5, p6, 0x477D5D63E63ECA5D, "ififbbi")end, - ["RESET_PLAYER_INPUT_GAIT"]=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0x19531C47A2ABD691, "i")end, - ["SET_AUTO_GIVE_PARACHUTE_WHEN_ENTER_PLANE"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0x9F343285A00B4BB6, "ib")end, - ["SET_AUTO_GIVE_SCUBA_GEAR_WHEN_EXIT_VEHICLE"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0xD2B315B6689D537D, "ib")end, - ["SET_PLAYER_STEALTH_PERCEPTION_MODIFIER"]=--[[void]] function(--[[Player (int)]] player,--[[float]] value)return native_invoker.unified_void(player, value, 0x4E9021C1FCDD507A, "if")end, - ["IS_REMOTE_PLAYER_IN_NON_CLONED_VEHICLE"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x690A61A6D13583F6, "i")end, - ["INCREASE_PLAYER_JUMP_SUPPRESSION_RANGE"]=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0x9EDD76E87D5D51BA, "i")end, - ["SET_PLAYER_SIMULATE_AIMING"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0xC54C95DA968EC5B5, "ib")end, - ["SET_PLAYER_CLOTH_PIN_FRAMES"]=--[[void]] function(--[[Player (int)]] player,--[[int]] p1)return native_invoker.unified_void(player, p1, 0x749FADDF97DFE930, "ii")end, - -- Every occurrence was either 0 or 2. - ["SET_PLAYER_CLOTH_PACKAGE_INDEX"]=--[[void]] function(--[[int]] index)return native_invoker.unified_void(index, 0x9F7BBA2EA6372500, "i")end, - -- 6 matches across 4 scripts. 5 occurrences were 240. The other was 255. - ["SET_PLAYER_CLOTH_LOCK_COUNTER"]=--[[void]] function(--[[int]] value)return native_invoker.unified_void(value, 0x14D913B777DFF5DA, "i")end, - -- Only 1 match. ob_sofa_michael. - -- - -- PLAYER::PLAYER_ATTACH_VIRTUAL_BOUND(-804.5928f, 173.1801f, 71.68436f, 0f, 0f, 0.590625f, 1f, 0.7f);1.0.335.2, 1.0.350.1/2, 1.0.372.2, 1.0.393.2, 1.0.393.4, 1.0.463.1; - ["PLAYER_ATTACH_VIRTUAL_BOUND"]=--[[void]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[float]] p6,--[[float]] p7)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, p7, 0xED51733DC73AED51, "ffffffff")end, - -- 1.0.335.2, 1.0.350.1/2, 1.0.372.2, 1.0.393.2, 1.0.393.4, 1.0.463.1; - ["PLAYER_DETACH_VIRTUAL_BOUND"]=--[[void]] function()return native_invoker.unified_void(0x1DD5897E2FA6E7C9, "")end, - ["HAS_PLAYER_BEEN_SPOTTED_IN_STOLEN_VEHICLE"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0xD705740BB0A1CF4C, "i")end, - -- Returns true if an unk value is greater than 0.0f - ["IS_PLAYER_BATTLE_AWARE"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x38D28DA81E4E9BF9, "i")end, - ["GET_PLAYER_RECEIVED_BATTLE_EVENT_RECENTLY"]=--[[BOOL (bool)]] function(--[[Player (int)]] player,--[[int]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_bool(player, p1, p2, 0xBC0753C9CA14B506, "iib")end, - -- Appears only 3 times in the scripts, more specifically in michael1.ysc - -- - -- - - -- This can be used to prevent dying if you are "out of the world" - ["EXTEND_WORLD_BOUNDARY_FOR_PLAYER"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(x, y, z, 0x5006D96C995A5827, "fff")end, - ["RESET_WORLD_BOUNDARY_FOR_PLAYER"]=--[[void]] function()return native_invoker.unified_void(0xDA1DF03D5A315F4E, "")end, - -- Returns true if the player is riding a train. - ["IS_PLAYER_RIDING_TRAIN"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x4EC12697209F2196, "i")end, - ["HAS_PLAYER_LEFT_THE_WORLD"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0xD55DDFB47991A294, "i")end, - ["SET_PLAYER_LEAVE_PED_BEHIND"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player, toggle, 0xFF300C7649724A0B, "ib")end, - -- p1 was always 5. - -- p4 was always false. - ["SET_PLAYER_PARACHUTE_VARIATION_OVERRIDE"]=--[[void]] function(--[[Player (int)]] player,--[[int]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[BOOL (bool)]] p4)return native_invoker.unified_void(player, p1, p2, p3, p4, 0xD9284A8C0D48352C, "iiiib")end, - ["CLEAR_PLAYER_PARACHUTE_VARIATION_OVERRIDE"]=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0x0F4CC924CF8C7B21, "i")end, - ["SET_PLAYER_PARACHUTE_MODEL_OVERRIDE"]=--[[void]] function(--[[Player (int)]] player,--[[Hash (int)]] model)return native_invoker.unified_void(player, model, 0x977DB4641F6FC3DB, "ii")end, - ["SET_PLAYER_RESERVE_PARACHUTE_MODEL_OVERRIDE"]=--[[void]] function(--[[Player (int)]] player,--[[Hash (int)]] model)return native_invoker.unified_void(player, model, 0x0764486AEDE748DB, "ii")end, - ["GET_PLAYER_PARACHUTE_MODEL_OVERRIDE"]=--[[Hash (int)]] function(--[[Player (int)]] player)return native_invoker.unified_int(player, 0xC219887CA3E65C41, "i")end, - ["GET_PLAYER_RESERVE_PARACHUTE_MODEL_OVERRIDE"]=--[[Hash (int)]] function(--[[Player (int)]] player)return native_invoker.unified_int(player, 0x37FAAA68DCA9D08D, "i")end, - ["CLEAR_PLAYER_PARACHUTE_MODEL_OVERRIDE"]=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0x8753997EB5F6EE3F, "i")end, - ["CLEAR_PLAYER_RESERVE_PARACHUTE_MODEL_OVERRIDE"]=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0x290D248E25815AE8, "i")end, - ["SET_PLAYER_PARACHUTE_PACK_MODEL_OVERRIDE"]=--[[void]] function(--[[Player (int)]] player,--[[Hash (int)]] model)return native_invoker.unified_void(player, model, 0xDC80A4C2F18A2B64, "ii")end, - ["CLEAR_PLAYER_PARACHUTE_PACK_MODEL_OVERRIDE"]=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0x10C54E4389C12B42, "i")end, - ["DISABLE_PLAYER_VEHICLE_REWARDS"]=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0xC142BE3BB9CE125F, "i")end, - ["SET_PLAYER_SPECTATED_VEHICLE_RADIO_OVERRIDE"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x2F7CEB6520288061, "b")end, - ["SET_PLAYER_BLUETOOTH_STATE"]=--[[void]] function(--[[Player (int)]] player,--[[BOOL (bool)]] state)return native_invoker.unified_void(player, state, 0x5DC40A8869C22141, "ib")end, - ["IS_PLAYER_BLUETOOTH_ENABLE"]=--[[BOOL (bool)]] function(--[[Player (int)]] player)return native_invoker.unified_bool(player, 0x65FAEE425DE637B0, "i")end, - ["DISABLE_CAMERA_VIEW_MODE_CYCLE"]=--[[void]] function(--[[Player (int)]] player)return native_invoker.unified_void(player, 0x5501B7A5CDB79D37, "i")end, - ["GET_PLAYER_FAKE_WANTED_LEVEL"]=--[[int]] function(--[[Player (int)]] player)return native_invoker.unified_int(player, 0x56105E599CAB0EFA, "i")end, - ["SET_PLAYER_CAN_DAMAGE_PLAYER"]=--[[void]] function(--[[Player (int)]] player1,--[[Player (int)]] player2,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(player1, player2, toggle, 0x55FCC0C390620314, "iib")end, - ["SET_APPLY_WAYPOINT_OF_PLAYER"]=--[[void]] function(--[[Player (int)]] player,--[[int]] hudColor)return native_invoker.unified_void(player, hudColor, 0x2382AB11450AE7BA, "ii")end, - ["IS_PLAYER_VEHICLE_WEAPON_TOGGLED_TO_NON_HOMING"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x6E4361FF3E8CD7CA, "i")end, - -- Unsets playerPed+330 if the current weapon has certain flags. - ["SET_PLAYER_VEHICLE_WEAPON_TO_NON_HOMING"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x237440E46D918649, "i")end, - ["SET_PLAYER_HOMING_DISABLED_FOR_ALL_VEHICLE_WEAPONS"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xEE4EBDD2593BA844, "ii")end, - ["ADD_PLAYER_TARGETABLE_ENTITY"]=--[[void]] function(--[[Player (int)]] player,--[[Entity (int)]] entity)return native_invoker.unified_void(player, entity, 0x9097EB6D4BB9A12A, "ii")end, - ["REMOVE_PLAYER_TARGETABLE_ENTITY"]=--[[void]] function(--[[Player (int)]] player,--[[Entity (int)]] entity)return native_invoker.unified_void(player, entity, 0x9F260BFB59ADBCA3, "ii")end, - ["SET_PLAYER_PREVIOUS_VARIATION_DATA"]=--[[void]] function(--[[Player (int)]] player,--[[int]] p1,--[[int]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5)return native_invoker.unified_void(player, p1, p2, p3, p4, p5, 0x7BAE68775557AE0B, "iiiiii")end, - -- Resets values set by SET_SCRIPT_FIRE_POSITION - ["REMOVE_SCRIPT_FIRE_POSITION"]=--[[void]] function()return native_invoker.unified_void(0x7148E0F43D11F0D9, "")end, - ["SET_SCRIPT_FIRE_POSITION"]=--[[void]] function(--[[float]] coordX,--[[float]] coordY,--[[float]] coordZ)return native_invoker.unified_void(coordX, coordY, coordZ, 0x70A382ADEC069DD3, "fff")end, -} -RECORDING={ - ["REPLAY_START_EVENT"]=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0x48621C9FCA3EBD28, "i")end, - ["REPLAY_STOP_EVENT"]=--[[void]] function()return native_invoker.unified_void(0x81CBAE94390F9F89, "")end, - ["REPLAY_CANCEL_EVENT"]=--[[void]] function()return native_invoker.unified_void(0x13B350B8AD0EEE10, "")end, - ["REPLAY_RECORD_BACK_FOR_TIME"]=--[[void]] function(--[[float]] p0,--[[float]] p1,--[[int]] p2)return native_invoker.unified_void(p0, p1, p2, 0x293220DA1B46CEBC, "ffi")end, - -- -This function appears to be deprecated/ unused. Tracing the call internally leads to a _nullsub - - -- - -- first one seems to be a string of a mission name, second one seems to be a bool/toggle - -- - -- p1 was always 0. - -- - ["REPLAY_CHECK_FOR_EVENT_THIS_FRAME"]=--[[void]] function(--[[string]] missionNameLabel,--[[Any (int)]] p1)return native_invoker.unified_void(missionNameLabel, p1, 0x208784099002BC30, "si")end, - -- This disable the recording feature and has to be called every frame. - ["REPLAY_PREVENT_RECORDING_THIS_FRAME"]=--[[void]] function()return native_invoker.unified_void(0xEB2D525B57F42B40, "")end, - ["REPLAY_RESET_EVENT_INFO"]=--[[void]] function()return native_invoker.unified_void(0xF854439EFBB3B583, "")end, - -- This will disable the ability to make camera changes in R* Editor. - ["REPLAY_DISABLE_CAMERA_MOVEMENT_THIS_FRAME"]=--[[void]] function()return native_invoker.unified_void(0xAF66DCEE6609B148, "")end, - -- Does nothing (it's a nullsub). - ["RECORD_GREATEST_MOMENT"]=--[[void]] function(--[[int]] p0,--[[int]] p1,--[[int]] p2)return native_invoker.unified_void(p0, p1, p2, 0x66972397E0757E7A, "iii")end, - -- Starts recording a replay. - -- If mode is 0, turns on action replay. - -- If mode is 1, starts recording. - -- If already recording a replay, does nothing. - ["START_REPLAY_RECORDING"]=--[[void]] function(--[[int]] mode)return native_invoker.unified_void(mode, 0xC3AC2FFF9612AC81, "i")end, - -- Stops recording and saves the recorded clip. - ["STOP_REPLAY_RECORDING"]=--[[void]] function()return native_invoker.unified_void(0x071A5197D6AFC8B3, "")end, - -- Stops recording and discards the recorded clip. - ["CANCEL_REPLAY_RECORDING"]=--[[void]] function()return native_invoker.unified_void(0x88BB3507ED41A240, "")end, - ["SAVE_REPLAY_RECORDING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x644546EC5287471B, "")end, - -- Checks if you're recording, returns TRUE when you start recording (F1) or turn on action replay (F2) - -- - -- mov al, cs:g_bIsRecordingGameplay // byte_141DD0CD0 in b944 - -- retn - ["IS_REPLAY_RECORDING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x1897CA71995A90B4, "")end, - ["IS_REPLAY_INITIALIZED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xDF4B952F7D381B95, "")end, - ["IS_REPLAY_AVAILABLE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x4282E08174868BE3, "")end, - ["IS_REPLAY_RECORD_SPACE_AVAILABLE"]=--[[BOOL (bool)]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_bool(p0, 0x33D47E85B476ABCD, "b")end, -} -REPLAY={ - -- Does nothing (it's a nullsub). - ["REGISTER_EFFECT_FOR_REPLAY_EDITOR"]=--[[void]] function(--[[string]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0x7E2BD3EF6C205F09, "sb")end, - -- Returns a bool if interior rendering is disabled, if yes, all "normal" rendered interiors are invisible - ["REPLAY_SYSTEM_HAS_REQUESTED_A_SCRIPT_CLEANUP"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x95AB8B5C992C7B58, "")end, - -- Disables some other rendering (internal) - ["SET_SCRIPTS_HAVE_CLEANED_UP_FOR_REPLAY_SYSTEM"]=--[[void]] function()return native_invoker.unified_void(0x5AD3932DAEB1E5D3, "")end, - ["SET_REPLAY_SYSTEM_PAUSED_FOR_SAVE"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0xE058175F8EAFE79A, "b")end, - -- Sets (almost, not sure) all Rockstar Editor values (bIsRecording etc) to 0. - ["REPLAY_CONTROL_SHUTDOWN"]=--[[void]] function()return native_invoker.unified_void(0x3353D13F09307691, "")end, - -- Please note that you will need to call DO_SCREEN_FADE_IN after exiting the Rockstar Editor when you call this. - ["ACTIVATE_ROCKSTAR_EDITOR"]=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0x49DA8145672B2725, "i")end, -} -SAVEMIGRATION={ - ["SAVEMIGRATION_IS_MP_ENABLED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x84B418E93894AC1C, "")end, - ["SAVEMIGRATION_MP_REQUEST_ACCOUNTS"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x85F41F9225D08C72, "")end, - ["SAVEMIGRATION_MP_GET_ACCOUNTS_STATUS"]=--[[int]] function()return native_invoker.unified_int(0xC8CB5999919EA2CA, "")end, - ["SAVEMIGRATION_MP_NUM_ACCOUNTS"]=--[[int]] function()return native_invoker.unified_int(0x77A16200E18E0C55, "")end, - ["SAVEMIGRATION_MP_GET_ACCOUNT"]=--[[BOOL (bool)]] function(--[[int]] p0,--[[Any* (pointer)]] p1)return native_invoker.unified_bool(p0, p1, 0xFCE2747EEF1D05FC, "ip")end, - ["SAVEMIGRATION_MP_REQUEST_STATUS"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xE5E9746A66359F9D, "")end, - ["SAVEMIGRATION_MP_GET_STATUS"]=--[[int]] function()return native_invoker.unified_int(0x690B76BD2763E068, "")end, -} -SCRIPT={ - ["REQUEST_SCRIPT"]=--[[void]] function(--[[string]] scriptName)return native_invoker.unified_void(scriptName, 0x6EB5F71AA68F2E8E, "s")end, - ["SET_SCRIPT_AS_NO_LONGER_NEEDED"]=--[[void]] function(--[[string]] scriptName)return native_invoker.unified_void(scriptName, 0xC90D2DCACD56184C, "s")end, - -- Returns if a script has been loaded into the game. Used to see if a script was loaded after requesting. - ["HAS_SCRIPT_LOADED"]=--[[BOOL (bool)]] function(--[[string]] scriptName)return native_invoker.unified_bool(scriptName, 0xE6CC9F3BA0FB9EF1, "s")end, - ["DOES_SCRIPT_EXIST"]=--[[BOOL (bool)]] function(--[[string]] scriptName)return native_invoker.unified_bool(scriptName, 0xFC04745FBE67C19A, "s")end, - -- formerly _REQUEST_STREAMED_SCRIPT - ["REQUEST_SCRIPT_WITH_NAME_HASH"]=--[[void]] function(--[[Hash (int)]] scriptHash)return native_invoker.unified_void(scriptHash, 0xD62A67D26D9653E6, "i")end, - ["SET_SCRIPT_WITH_NAME_HASH_AS_NO_LONGER_NEEDED"]=--[[void]] function(--[[Hash (int)]] scriptHash)return native_invoker.unified_void(scriptHash, 0xC5BC038960E9DB27, "i")end, - ["HAS_SCRIPT_WITH_NAME_HASH_LOADED"]=--[[BOOL (bool)]] function(--[[Hash (int)]] scriptHash)return native_invoker.unified_bool(scriptHash, 0x5F0F0C783EB16C04, "i")end, - ["DOES_SCRIPT_WITH_NAME_HASH_EXIST"]=--[[BOOL (bool)]] function(--[[Hash (int)]] scriptHash)return native_invoker.unified_bool(scriptHash, 0xF86AA3C56BA31381, "i")end, - ["TERMINATE_THREAD"]=--[[void]] function(--[[int]] threadId)return native_invoker.unified_void(threadId, 0xC8B189ED9138BCD4, "i")end, - ["IS_THREAD_ACTIVE"]=--[[BOOL (bool)]] function(--[[int]] threadId)return native_invoker.unified_bool(threadId, 0x46E9AE36D8FA6417, "i")end, - ["GET_NAME_OF_SCRIPT_WITH_THIS_ID"]=--[[string]] function(--[[int]] threadId)return native_invoker.unified_string(threadId, 0x05A42BA9FC8DA96B, "i")end, - -- Starts a new iteration of the current threads. - -- Call this first, then SCRIPT_THREAD_ITERATOR_GET_NEXT_THREAD_ID (0x30B4FA1C82DD4B9F) - ["SCRIPT_THREAD_ITERATOR_RESET"]=--[[void]] function()return native_invoker.unified_void(0xDADFADA5A20143A8, "")end, - -- If the function returns 0, the end of the iteration has been reached. - ["SCRIPT_THREAD_ITERATOR_GET_NEXT_THREAD_ID"]=--[[int]] function()return native_invoker.unified_int(0x30B4FA1C82DD4B9F, "")end, - ["GET_ID_OF_THIS_THREAD"]=--[[int]] function()return native_invoker.unified_int(0xC30338E8088E2E21, "")end, - ["TERMINATE_THIS_THREAD"]=--[[void]] function()return native_invoker.unified_void(0x1090044AD1DA76FA, "")end, - -- Gets the number of instances of the specified script is currently running. - -- - -- Actually returns numRefs - 1. - -- if (program) - -- v3 = rage::scrProgram::GetNumRefs(program) - 1; - -- return v3; - ["GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH"]=--[[int]] function(--[[Hash (int)]] scriptHash)return native_invoker.unified_int(scriptHash, 0x2C83A9DA6BFFC4F9, "i")end, - ["GET_THIS_SCRIPT_NAME"]=--[[string]] function()return native_invoker.unified_string(0x442E0A7EDE4A738A, "")end, - ["GET_HASH_OF_THIS_SCRIPT_NAME"]=--[[Hash (int)]] function()return native_invoker.unified_int(0x8A1C8B1738FFE87E, "")end, - -- eventGroup: 0 = SCRIPT_EVENT_QUEUE_AI (CEventGroupScriptAI), 1 = SCRIPT_EVENT_QUEUE_NETWORK (CEventGroupScriptNetwork) - ["GET_NUMBER_OF_EVENTS"]=--[[int]] function(--[[int]] eventGroup)return native_invoker.unified_int(eventGroup, 0x5F92A689A06620AA, "i")end, - -- eventGroup: 0 = SCRIPT_EVENT_QUEUE_AI (CEventGroupScriptAI), 1 = SCRIPT_EVENT_QUEUE_NETWORK (CEventGroupScriptNetwork) - ["GET_EVENT_EXISTS"]=--[[BOOL (bool)]] function(--[[int]] eventGroup,--[[int]] eventIndex)return native_invoker.unified_bool(eventGroup, eventIndex, 0x936E6168A9BCEDB5, "ii")end, - -- eventGroup: 0 = SCRIPT_EVENT_QUEUE_AI (CEventGroupScriptAI), 1 = SCRIPT_EVENT_QUEUE_NETWORK (CEventGroupScriptNetwork) - ["GET_EVENT_AT_INDEX"]=--[[int]] function(--[[int]] eventGroup,--[[int]] eventIndex)return native_invoker.unified_int(eventGroup, eventIndex, 0xD8F66A3A60C62153, "ii")end, - -- eventGroup: 0 = SCRIPT_EVENT_QUEUE_AI (CEventGroupScriptAI), 1 = SCRIPT_EVENT_QUEUE_NETWORK (CEventGroupScriptNetwork) - -- - -- Note: eventDataSize is NOT the size in bytes, it is the size determined by the SIZE_OF operator (RAGE Script operator, not C/C++ sizeof). That is, the size in bytes divided by 8 (script variables are always 8-byte aligned!). - ["GET_EVENT_DATA"]=--[[BOOL (bool)]] function(--[[int]] eventGroup,--[[int]] eventIndex,--[[Any* (pointer)]] eventData,--[[int]] eventDataSize)return native_invoker.unified_bool(eventGroup, eventIndex, eventData, eventDataSize, 0x2902843FCD2B2D79, "iipi")end, - -- eventGroup: 0 = SCRIPT_EVENT_QUEUE_AI (CEventGroupScriptAI), 1 = SCRIPT_EVENT_QUEUE_NETWORK (CEventGroupScriptNetwork) - -- - -- Note: eventDataSize is NOT the size in bytes, it is the size determined by the SIZE_OF operator (RAGE Script operator, not C/C++ sizeof). That is, the size in bytes divided by 8 (script variables are always 8-byte aligned!). - -- - -- playerBits (also known as playersToBroadcastTo) is a bitset that indicates which players this event should be sent to. In order to send the event to specific players only, use (1 << playerIndex). Set all bits if it should be broadcast to all players. - ["TRIGGER_SCRIPT_EVENT"]=--[[void]] function(--[[int]] eventGroup,--[[Any* (pointer)]] eventData,--[[int]] eventDataSize,--[[int]] playerBits)return native_invoker.unified_void(eventGroup, eventData, eventDataSize, playerBits, 0x5AE99C571D5BBE5D, "ipii")end, - ["SHUTDOWN_LOADING_SCREEN"]=--[[void]] function()return native_invoker.unified_void(0x078EBE9809CCD637, "")end, - ["SET_NO_LOADING_SCREEN"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x5262CC1995D07E09, "b")end, - ["GET_NO_LOADING_SCREEN"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x18C1270EA7F199BC, "")end, - ["COMMIT_TO_LOADINGSCREEN_SELCTION"]=--[[void]] function()return native_invoker.unified_void(0xB1577667C3708F9B, "")end, - -- Returns true if bit 0 in GtaThread+0x154 is set. - ["BG_IS_EXITFLAG_SET"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x836B62713E0534CA, "")end, - -- Sets bit 1 in GtaThread+0x154 - ["BG_SET_EXITFLAG_RESPONSE"]=--[[void]] function()return native_invoker.unified_void(0x760910B49D2B98EA, "")end, - -- Hashed version of BG_START_CONTEXT. - ["BG_START_CONTEXT_HASH"]=--[[void]] function(--[[Hash (int)]] contextHash)return native_invoker.unified_void(contextHash, 0x75B18E49607874C7, "i")end, - -- Hashed version of BG_END_CONTEXT. - ["BG_END_CONTEXT_HASH"]=--[[void]] function(--[[Hash (int)]] contextHash)return native_invoker.unified_void(contextHash, 0x107E5CC7CA942BC1, "i")end, - -- Inserts the given context into the background scripts context map. - ["BG_START_CONTEXT"]=--[[void]] function(--[[string]] contextName)return native_invoker.unified_void(contextName, 0x9D5A25BADB742ACD, "s")end, - -- Deletes the given context from the background scripts context map. - ["BG_END_CONTEXT"]=--[[void]] function(--[[string]] contextName)return native_invoker.unified_void(contextName, 0xDC2BACD920D0A0DD, "s")end, - ["BG_DOES_LAUNCH_PARAM_EXIST"]=--[[BOOL (bool)]] function(--[[int]] scriptIndex,--[[string]] p1)return native_invoker.unified_bool(scriptIndex, p1, 0x0F6F1EBBC4E1D5E6, "is")end, - ["BG_GET_LAUNCH_PARAM_VALUE"]=--[[int]] function(--[[int]] scriptIndex,--[[string]] p1)return native_invoker.unified_int(scriptIndex, p1, 0x22E21FBCFC88C149, "is")end, - ["BG_GET_SCRIPT_ID_FROM_NAME_HASH"]=--[[int]] function(--[[Hash (int)]] p0)return native_invoker.unified_int(p0, 0x829CD22E043A2577, "i")end, - -- New variant of SEND_TU_SCRIPT_EVENT that automatically initializes the event data header. - -- See TRIGGER_SCRIPT_EVENT for more info. - ["_SEND_TU_SCRIPT_EVENT_NEW"]=--[[void]] function(--[[int]] eventGroup,--[[Any* (pointer)]] eventData,--[[int]] eventDataSize,--[[int]] playerBits,--[[Hash (int)]] eventType)return native_invoker.unified_void(eventGroup, eventData, eventDataSize, playerBits, eventType, 0x71A6F836422FDD2B, "ipiii")end, -} -SECURITY={ - -- Registers a protected variable that will be checked for modifications by the anticheat - ["REGISTER_SCRIPT_VARIABLE"]=--[[void]] function(--[[Any* (pointer)]] variable)return native_invoker.unified_void(variable, 0x40EB1EFD921822BC, "p")end, - ["UNREGISTER_SCRIPT_VARIABLE"]=--[[void]] function(--[[Any* (pointer)]] variable)return native_invoker.unified_void(variable, 0x340A36A700E99699, "p")end, - ["FORCE_CHECK_SCRIPT_VARIABLES"]=--[[void]] function()return native_invoker.unified_void(0x8E580AB902917360, "")end, -} -SHAPETEST={ - -- Asynchronously starts a line-of-sight (raycast) world probe shape test. - -- - -- Use the handle with 0x3D87450E15D98694 or 0x65287525D951F6BE until it returns 0 or 2. - -- - -- p8 is a bit mask with bits 1, 2 and/or 4, relating to collider types; 4 should usually be used. - ["START_SHAPE_TEST_LOS_PROBE"]=--[[int]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[int]] flags,--[[Entity (int)]] entity,--[[int]] p8)return native_invoker.unified_int(x1, y1, z1, x2, y2, z2, flags, entity, p8, 0x7EE9F5D83DD4F90E, "ffffffiii")end, - -- Does the same as 0x7EE9F5D83DD4F90E, except blocking until the shape test completes. - ["START_EXPENSIVE_SYNCHRONOUS_SHAPE_TEST_LOS_PROBE"]=--[[int]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[int]] flags,--[[Entity (int)]] entity,--[[int]] p8)return native_invoker.unified_int(x1, y1, z1, x2, y2, z2, flags, entity, p8, 0x377906D8A31E5586, "ffffffiii")end, - ["START_SHAPE_TEST_BOUNDING_BOX"]=--[[int]] function(--[[Entity (int)]] entity,--[[int]] flags1,--[[int]] flags2)return native_invoker.unified_int(entity, flags1, flags2, 0x052837721A854EC7, "iii")end, - ["START_SHAPE_TEST_BOX"]=--[[int]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] dimX,--[[float]] dimY,--[[float]] dimZ,--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ,--[[Any (int)]] p9,--[[int]] flags,--[[Entity (int)]] entity,--[[Any (int)]] p12)return native_invoker.unified_int(x, y, z, dimX, dimY, dimZ, rotX, rotY, rotZ, p9, flags, entity, p12, 0xFE466162C4401D18, "fffffffffiiii")end, - ["START_SHAPE_TEST_BOUND"]=--[[int]] function(--[[Entity (int)]] entity,--[[int]] flags1,--[[int]] flags2)return native_invoker.unified_int(entity, flags1, flags2, 0x37181417CE7C8900, "iii")end, - -- Raycast from point to point, where the ray has a radius. - -- - -- flags: - -- vehicles=10 - -- peds =12 - -- - -- Iterating through flags yields many ped / vehicle/ object combinations - -- - -- p9 = 7, but no idea what it does - -- - -- Entity is an entity to ignore - ["START_SHAPE_TEST_CAPSULE"]=--[[int]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] radius,--[[int]] flags,--[[Entity (int)]] entity,--[[int]] p9)return native_invoker.unified_int(x1, y1, z1, x2, y2, z2, radius, flags, entity, p9, 0x28579D1B8F8AAC80, "fffffffiii")end, - ["START_SHAPE_TEST_SWEPT_SPHERE"]=--[[int]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] radius,--[[int]] flags,--[[Entity (int)]] entity,--[[Any (int)]] p9)return native_invoker.unified_int(x1, y1, z1, x2, y2, z2, radius, flags, entity, p9, 0xE6AC6C45FBE83004, "fffffffiii")end, - -- Returns a ShapeTest handle that can be used with GET_SHAPE_TEST_RESULT. - -- - -- In its only usage in game scripts its called with flag set to 511, entity to player_ped_id and flag2 set to 7 - ["START_SHAPE_TEST_MOUSE_CURSOR_LOS_PROBE"]=--[[int]] function(--[[Vector3* (pointer)]] pVec1,--[[Vector3* (pointer)]] pVec2,--[[int]] flag,--[[Entity (int)]] entity,--[[int]] flag2)return native_invoker.unified_int(pVec1, pVec2, flag, entity, flag2, 0xFF6BE494C7987F34, "ppiii")end, - -- Returns the result of a shape test: 0 if the handle is invalid, 1 if the shape test is still pending, or 2 if the shape test has completed, and the handle should be invalidated. - -- - -- When used with an asynchronous shape test, this native should be looped until returning 0 or 2, after which the handle is invalidated. - ["GET_SHAPE_TEST_RESULT"]=--[[int]] function(--[[int]] shapeTestHandle,--[[BOOL* (pointer)]] hit,--[[Vector3* (pointer)]] endCoords,--[[Vector3* (pointer)]] surfaceNormal,--[[Entity* (pointer)]] entityHit)return native_invoker.unified_int(shapeTestHandle, hit, endCoords, surfaceNormal, entityHit, 0x3D87450E15D98694, "ipppp")end, - -- Returns the result of a shape test, also returning the material of any touched surface. - -- - -- When used with an asynchronous shape test, this native should be looped until returning 0 or 2, after which the handle is invalidated. - -- - -- Unless the return value is 2, the other return values are undefined. - ["GET_SHAPE_TEST_RESULT_INCLUDING_MATERIAL"]=--[[int]] function(--[[int]] shapeTestHandle,--[[BOOL* (pointer)]] hit,--[[Vector3* (pointer)]] endCoords,--[[Vector3* (pointer)]] surfaceNormal,--[[Hash* (pointer)]] materialHash,--[[Entity* (pointer)]] entityHit)return native_invoker.unified_int(shapeTestHandle, hit, endCoords, surfaceNormal, materialHash, entityHit, 0x65287525D951F6BE, "ippppp")end, - -- Invalidates the entity handle passed by removing the fwScriptGuid from the entity. This should be used when receiving an ambient entity from shape testing natives, but can also be used for other natives returning an 'irrelevant' entity handle. - ["RELEASE_SCRIPT_GUID_FROM_ENTITY"]=--[[void]] function(--[[Entity (int)]] entityHit)return native_invoker.unified_void(entityHit, 0x2B3334BCA57CD799, "i")end, -} -SOCIALCLUB={ - ["SC_INBOX_GET_TOTAL_NUM_MESSAGES"]=--[[int]] function()return native_invoker.unified_int(0x03A93FF1A2CA0864, "")end, - ["SC_INBOX_GET_MESSAGE_TYPE_AT_INDEX"]=--[[Hash (int)]] function(--[[int]] msgIndex)return native_invoker.unified_int(msgIndex, 0xBB8EA16ECBC976C4, "i")end, - ["SC_INBOX_GET_MESSAGE_IS_READ_AT_INDEX"]=--[[BOOL (bool)]] function(--[[int]] msgIndex)return native_invoker.unified_bool(msgIndex, 0x93028F1DB42BFD08, "i")end, - ["SC_INBOX_SET_MESSAGE_AS_READ_AT_INDEX"]=--[[BOOL (bool)]] function(--[[int]] msgIndex)return native_invoker.unified_bool(msgIndex, 0x2C015348CF19CA1D, "i")end, - ["SC_INBOX_MESSAGE_GET_DATA_INT"]=--[[BOOL (bool)]] function(--[[int]] p0,--[[string]] context,--[[int* (pointer)]] out)return native_invoker.unified_bool(p0, context, out, 0xA00EFE4082C4056E, "isp")end, - ["SC_INBOX_MESSAGE_GET_DATA_BOOL"]=--[[BOOL (bool)]] function(--[[int]] p0,--[[string]] p1)return native_invoker.unified_bool(p0, p1, 0xFFE5C16F402D851D, "is")end, - ["SC_INBOX_MESSAGE_GET_DATA_STRING"]=--[[BOOL (bool)]] function(--[[int]] p0,--[[string]] context,--[[char* (pointer)]] out)return native_invoker.unified_bool(p0, context, out, 0x7572EF42FC6A9B6D, "isp")end, - ["SC_INBOX_MESSAGE_DO_APPLY"]=--[[BOOL (bool)]] function(--[[int]] p0)return native_invoker.unified_bool(p0, 0x9A2C8064B6C1E41A, "i")end, - ["SC_INBOX_MESSAGE_GET_RAW_TYPE_AT_INDEX"]=--[[string]] function(--[[int]] p0)return native_invoker.unified_string(p0, 0xF3E31D16CBDCB304, "i")end, - ["SC_INBOX_MESSAGE_PUSH_GAMER_T0_RECIP_LIST"]=--[[void]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_void(gamerHandle, 0xDA024BDBD600F44A, "p")end, - ["SC_INBOX_SEND_UGCSTATUPDATE_TO_RECIP_LIST"]=--[[void]] function(--[[Any* (pointer)]] data)return native_invoker.unified_void(data, 0xA68D3D229F4F3B06, "p")end, - ["SC_INBOX_MESSAGE_GET_UGCDATA"]=--[[BOOL (bool)]] function(--[[int]] p0,--[[Any* (pointer)]] p1)return native_invoker.unified_bool(p0, p1, 0x69D82604A1A5A254, "ip")end, - ["SC_INBOX_GET_BOUNTY_DATA_AT_INDEX"]=--[[BOOL (bool)]] function(--[[int]] index,--[[Any* (pointer)]] outData)return native_invoker.unified_bool(index, outData, 0x87E0052F08BD64E6, "ip")end, - ["SC_EMAIL_RETRIEVE_EMAILS"]=--[[void]] function(--[[int]] offset,--[[int]] limit)return native_invoker.unified_void(offset, limit, 0x040ADDCBAFA1018A, "ii")end, - ["SC_EMAIL_GET_RETRIEVAL_STATUS"]=--[[int]] function()return native_invoker.unified_int(0x16DA8172459434AA, "")end, - ["SC_EMAIL_GET_NUM_RETRIEVED_EMAILS"]=--[[int]] function()return native_invoker.unified_int(0x7DB18CA8CAD5B098, "")end, - ["SC_EMAIL_GET_EMAIL_AT_INDEX"]=--[[BOOL (bool)]] function(--[[int]] p0,--[[Any* (pointer)]] p1)return native_invoker.unified_bool(p0, p1, 0x4737980E8A283806, "ip")end, - ["SC_EMAIL_DELETE_EMAILS"]=--[[void]] function(--[[Any* (pointer)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x44ACA259D67651DB, "pi")end, - ["SC_EMAIL_MESSAGE_PUSH_GAMER_TO_RECIP_LIST"]=--[[void]] function(--[[Any* (pointer)]] gamerHandle)return native_invoker.unified_void(gamerHandle, 0x2330C12A7A605D16, "p")end, - ["SC_EMAIL_MESSAGE_CLEAR_RECIP_LIST"]=--[[void]] function()return native_invoker.unified_void(0x55DF6DB45179236E, "")end, - ["SC_EMAIL_SEND_EMAIL"]=--[[void]] function(--[[string]] p0)return native_invoker.unified_void(p0, 0x116FB94DC4B79F17, "s")end, - ["SC_EMAIL_SET_CURRENT_EMAIL_TAG"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x07DBD622D9533857, "i")end, - ["SC_CACHE_NEW_ROCKSTAR_MSGS"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xBFA0A56A817C6C7D, "b")end, - ["SC_HAS_NEW_ROCKSTAR_MSG"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xBC1CC91205EC8D6E, "")end, - ["SC_GET_NEW_ROCKSTAR_MSG"]=--[[string]] function()return native_invoker.unified_string(0xDF649C4E9AFDD788, "")end, - ["SC_PRESENCE_ATTR_SET_INT"]=--[[BOOL (bool)]] function(--[[Hash (int)]] attrHash,--[[int]] value)return native_invoker.unified_bool(attrHash, value, 0x1F1E9682483697C7, "ii")end, - ["SC_PRESENCE_ATTR_SET_FLOAT"]=--[[BOOL (bool)]] function(--[[Hash (int)]] attrHash,--[[float]] value)return native_invoker.unified_bool(attrHash, value, 0xC4C4575F62534A24, "if")end, - ["SC_PRESENCE_ATTR_SET_STRING"]=--[[BOOL (bool)]] function(--[[Hash (int)]] attrHash,--[[string]] value)return native_invoker.unified_bool(attrHash, value, 0x287F1F75D2803595, "is")end, - ["SC_PRESENCE_SET_ACTIVITY_RATING"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[float]] p1)return native_invoker.unified_bool(p0, p1, 0x487912FD248EFDDF, "if")end, - ["SC_GAMERDATA_GET_INT"]=--[[BOOL (bool)]] function(--[[string]] name,--[[int* (pointer)]] value)return native_invoker.unified_bool(name, value, 0xC85A7127E7AD02AA, "sp")end, - ["SC_GAMERDATA_GET_FLOAT"]=--[[BOOL (bool)]] function(--[[string]] name,--[[float* (pointer)]] value)return native_invoker.unified_bool(name, value, 0xA770C8EEC6FB2AC5, "sp")end, - ["SC_GAMERDATA_GET_BOOL"]=--[[BOOL (bool)]] function(--[[string]] name)return native_invoker.unified_bool(name, 0x8416FE4E4629D7D7, "s")end, - ["SC_GAMERDATA_GET_STRING"]=--[[BOOL (bool)]] function(--[[string]] name,--[[char* (pointer)]] value)return native_invoker.unified_bool(name, value, 0x7FFCBFEE44ECFABF, "sp")end, - ["SC_GAMERDATA_GET_ACTIVE_XP_BONUS"]=--[[BOOL (bool)]] function(--[[float* (pointer)]] value)return native_invoker.unified_bool(value, 0x2D874D4AE612A65F, "p")end, - -- Starts a task to check an entered string for profanity on the ROS/Social Club services. - -- - -- See also: 1753344C770358AE, 82E4A58BABC15AE7. - ["SC_PROFANITY_CHECK_STRING"]=--[[BOOL (bool)]] function(--[[string]] string,--[[int* (pointer)]] token)return native_invoker.unified_bool(string, token, 0x75632C5ECD7ED843, "sp")end, - ["SC_PROFANITY_CHECK_STRING_UGC"]=--[[BOOL (bool)]] function(--[[string]] string,--[[int* (pointer)]] token)return native_invoker.unified_bool(string, token, 0xEB2BF817463DFA28, "sp")end, - ["SC_PROFANITY_GET_CHECK_IS_VALID"]=--[[BOOL (bool)]] function(--[[int]] token)return native_invoker.unified_bool(token, 0x1753344C770358AE, "i")end, - ["SC_PROFANITY_GET_CHECK_IS_PENDING"]=--[[BOOL (bool)]] function(--[[int]] token)return native_invoker.unified_bool(token, 0x82E4A58BABC15AE7, "i")end, - ["SC_PROFANITY_GET_STRING_PASSED"]=--[[BOOL (bool)]] function(--[[int]] token)return native_invoker.unified_bool(token, 0x85535ACF97FC0969, "i")end, - ["SC_PROFANITY_GET_STRING_STATUS"]=--[[int]] function(--[[int]] token)return native_invoker.unified_int(token, 0x930DE22F07B1CCE3, "i")end, - ["SC_LICENSEPLATE_CHECK_STRING"]=--[[BOOL (bool)]] function(--[[string]] p0,--[[int* (pointer)]] p1)return native_invoker.unified_bool(p0, p1, 0xF6BAAAF762E1BF40, "sp")end, - ["SC_LICENSEPLATE_GET_CHECK_IS_VALID"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0xF22CA0FD74B80E7A, "i")end, - ["SC_LICENSEPLATE_GET_CHECK_IS_PENDING"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x9237E334F6E43156, "i")end, - ["SC_LICENSEPLATE_GET_COUNT"]=--[[int]] function(--[[int]] token)return native_invoker.unified_int(token, 0x700569DBA175A77C, "i")end, - ["SC_LICENSEPLATE_GET_PLATE"]=--[[string]] function(--[[int]] token,--[[int]] plateIndex)return native_invoker.unified_string(token, plateIndex, 0x1D4446A62D35B0D0, "ii")end, - ["SC_LICENSEPLATE_GET_PLATE_DATA"]=--[[string]] function(--[[int]] token,--[[int]] plateIndex)return native_invoker.unified_string(token, plateIndex, 0x2E89990DDFF670C3, "ii")end, - ["SC_LICENSEPLATE_SET_PLATE_DATA"]=--[[BOOL (bool)]] function(--[[string]] oldPlateText,--[[string]] newPlateText,--[[Any* (pointer)]] plateData)return native_invoker.unified_bool(oldPlateText, newPlateText, plateData, 0xD0EE05FE193646EA, "ssp")end, - ["SC_LICENSEPLATE_ADD"]=--[[BOOL (bool)]] function(--[[string]] plateText,--[[Any* (pointer)]] plateData,--[[int* (pointer)]] token)return native_invoker.unified_bool(plateText, plateData, token, 0x1989C6E6F67E76A8, "spp")end, - ["SC_LICENSEPLATE_GET_ADD_IS_PENDING"]=--[[BOOL (bool)]] function(--[[int]] token)return native_invoker.unified_bool(token, 0x07C61676E5BB52CD, "i")end, - ["SC_LICENSEPLATE_GET_ADD_STATUS"]=--[[int]] function(--[[int]] token)return native_invoker.unified_int(token, 0x8147FFF6A718E1AD, "i")end, - ["SC_LICENSEPLATE_ISVALID"]=--[[BOOL (bool)]] function(--[[string]] plateText,--[[int* (pointer)]] token)return native_invoker.unified_bool(plateText, token, 0x0F73393BAC7E6730, "sp")end, - ["SC_LICENSEPLATE_GET_ISVALID_IS_PENDING"]=--[[BOOL (bool)]] function(--[[int]] token)return native_invoker.unified_bool(token, 0xD302E99EDF0449CF, "i")end, - ["SC_LICENSEPLATE_GET_ISVALID_STATUS"]=--[[int]] function(--[[int]] token)return native_invoker.unified_int(token, 0x5C4EBFFA98BDB41C, "i")end, - ["SC_COMMUNITY_EVENT_IS_ACTIVE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xFF8F3A92B75ED67A, "")end, - ["SC_COMMUNITY_EVENT_GET_EVENT_ID"]=--[[int]] function()return native_invoker.unified_int(0x4ED9C8D6DA297639, "")end, - ["SC_COMMUNITY_EVENT_GET_EXTRA_DATA_INT"]=--[[BOOL (bool)]] function(--[[string]] p0,--[[int* (pointer)]] p1)return native_invoker.unified_bool(p0, p1, 0x710BCDA8071EDED1, "sp")end, - ["SC_COMMUNITY_EVENT_GET_EXTRA_DATA_FLOAT"]=--[[BOOL (bool)]] function(--[[string]] p0,--[[float* (pointer)]] p1)return native_invoker.unified_bool(p0, p1, 0x50A8A36201DBF83E, "sp")end, - ["SC_COMMUNITY_EVENT_GET_EXTRA_DATA_STRING"]=--[[BOOL (bool)]] function(--[[string]] p0,--[[char* (pointer)]] p1)return native_invoker.unified_bool(p0, p1, 0x9DE5D2F723575ED0, "sp")end, - ["SC_COMMUNITY_EVENT_GET_DISPLAY_NAME"]=--[[BOOL (bool)]] function(--[[char* (pointer)]] p0)return native_invoker.unified_bool(p0, 0xC2C97EA97711D1AE, "p")end, - ["SC_COMMUNITY_EVENT_IS_ACTIVE_FOR_TYPE"]=--[[BOOL (bool)]] function(--[[string]] p0)return native_invoker.unified_bool(p0, 0x450819D8CF90C416, "s")end, - ["SC_COMMUNITY_EVENT_GET_EVENT_ID_FOR_TYPE"]=--[[int]] function(--[[string]] p0)return native_invoker.unified_int(p0, 0x4A7D6E727F941747, "s")end, - ["SC_COMMUNITY_EVENT_GET_EXTRA_DATA_INT_FOR_TYPE"]=--[[BOOL (bool)]] function(--[[string]] p0,--[[int* (pointer)]] p1,--[[string]] p2)return native_invoker.unified_bool(p0, p1, p2, 0xE75A4A2E5E316D86, "sps")end, - ["SC_COMMUNITY_EVENT_GET_EXTRA_DATA_FLOAT_FOR_TYPE"]=--[[BOOL (bool)]] function(--[[string]] p0,--[[float* (pointer)]] p1,--[[string]] p2)return native_invoker.unified_bool(p0, p1, p2, 0x2570E26BE63964E3, "sps")end, - ["SC_COMMUNITY_EVENT_GET_EXTRA_DATA_STRING_FOR_TYPE"]=--[[BOOL (bool)]] function(--[[string]] p0,--[[char* (pointer)]] p1,--[[string]] p2)return native_invoker.unified_bool(p0, p1, p2, 0x1D12A56FC95BE92E, "sps")end, - ["SC_COMMUNITY_EVENT_GET_DISPLAY_NAME_FOR_TYPE"]=--[[BOOL (bool)]] function(--[[char* (pointer)]] p0,--[[string]] p1)return native_invoker.unified_bool(p0, p1, 0x33DF47CC0642061B, "ps")end, - ["SC_COMMUNITY_EVENT_IS_ACTIVE_BY_ID"]=--[[BOOL (bool)]] function(--[[int]] p0)return native_invoker.unified_bool(p0, 0xA468E0BE12B12C70, "i")end, - ["SC_COMMUNITY_EVENT_GET_EXTRA_DATA_INT_BY_ID"]=--[[BOOL (bool)]] function(--[[int]] p0,--[[string]] p1,--[[int* (pointer)]] p2)return native_invoker.unified_bool(p0, p1, p2, 0x8CC469AB4D349B7C, "isp")end, - ["SC_COMMUNITY_EVENT_GET_EXTRA_DATA_FLOAT_BY_ID"]=--[[BOOL (bool)]] function(--[[int]] p0,--[[string]] p1,--[[float* (pointer)]] p2)return native_invoker.unified_bool(p0, p1, p2, 0xC5A35C73B68F3C49, "isp")end, - ["SC_COMMUNITY_EVENT_GET_EXTRA_DATA_STRING_BY_ID"]=--[[BOOL (bool)]] function(--[[int]] p0,--[[string]] p1,--[[char* (pointer)]] p2)return native_invoker.unified_bool(p0, p1, p2, 0x699E4A5C8C893A18, "isp")end, - ["SC_COMMUNITY_EVENT_GET_DISPLAY_NAME_BY_ID"]=--[[BOOL (bool)]] function(--[[int]] p0,--[[char* (pointer)]] p1)return native_invoker.unified_bool(p0, p1, 0x19853B5B17D77BCA, "ip")end, - ["SC_TRANSITION_NEWS_SHOW"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x6BFB12CE158E3DD4, "i")end, - ["SC_TRANSITION_NEWS_SHOW_TIMED"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_bool(p0, p1, 0xFE4C1D0D3B9CC17E, "ii")end, - ["SC_TRANSITION_NEWS_SHOW_NEXT_ITEM"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xD8122C407663B995, "")end, - ["SC_TRANSITION_NEWS_HAS_EXTRA_DATA_TU"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x3001BEF2FECA3680, "")end, - ["SC_TRANSITION_NEWS_GET_EXTRA_DATA_INT_TU"]=--[[BOOL (bool)]] function(--[[string]] p0,--[[int* (pointer)]] p1)return native_invoker.unified_bool(p0, p1, 0x92DA6E70EF249BD1, "sp")end, - ["SC_TRANSITION_NEWS_END"]=--[[void]] function()return native_invoker.unified_void(0x675721C9F644D161, "")end, - ["SC_PAUSE_NEWS_INIT_STARTER_PACK"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0xE4F6E8D07A2F0F51, "i")end, - -- Fills some 0x30 sized struct - ["SC_PAUSE_NEWS_GET_PENDING_STORY"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x8A4416C0DB05FA66, "i")end, - ["SC_PAUSE_NEWS_SHUTDOWN"]=--[[void]] function()return native_invoker.unified_void(0xEA95C0853A27888E, "")end, - -- Returns the nickname of the logged-in Rockstar Social Club account. - ["SC_ACCOUNT_INFO_GET_NICKNAME"]=--[[string]] function()return native_invoker.unified_string(0x198D161F458ECC7F, "")end, - ["SC_ACHIEVEMENT_INFO_STATUS"]=--[[BOOL (bool)]] function(--[[int* (pointer)]] p0)return native_invoker.unified_bool(p0, 0x225798743970412B, "p")end, - -- Same as HAS_ACHIEVEMENT_BEEN_PASSED - ["SC_HAS_ACHIEVEMENT_BEEN_PASSED"]=--[[BOOL (bool)]] function(--[[int]] achievementId)return native_invoker.unified_bool(achievementId, 0x418DC16FAE452C1C, "i")end, -} -STATS={ - -- Example: - -- - -- for (v_2 = 0; v_2 <= 4; v_2 += 1) { - -- STATS::STAT_CLEAR_SLOT_FOR_RELOAD(v_2); - -- } - ["STAT_CLEAR_SLOT_FOR_RELOAD"]=--[[BOOL (bool)]] function(--[[int]] statSlot)return native_invoker.unified_bool(statSlot, 0xEB0A72181D4AA4AD, "i")end, - ["STAT_LOAD"]=--[[BOOL (bool)]] function(--[[int]] statSlot)return native_invoker.unified_bool(statSlot, 0xA651443F437B1CE6, "i")end, - ["STAT_SAVE"]=--[[BOOL (bool)]] function(--[[int]] p0,--[[BOOL (bool)]] p1,--[[int]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_bool(p0, p1, p2, p3, 0xE07BCA305B82D2FD, "ibib")end, - ["STAT_SET_OPEN_SAVETYPE_IN_JOB"]=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0x5688585E6D563CD8, "i")end, - ["STAT_LOAD_PENDING"]=--[[BOOL (bool)]] function(--[[int]] statSlot)return native_invoker.unified_bool(statSlot, 0xA1750FFAFA181661, "i")end, - ["STAT_SAVE_PENDING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x7D3A583856F2C5AC, "")end, - ["STAT_SAVE_PENDING_OR_REQUESTED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xBBB6AD006F1BBEA3, "")end, - -- p0 is characterSlot? seems range from 0 to 2 - ["STAT_DELETE_SLOT"]=--[[BOOL (bool)]] function(--[[int]] p0)return native_invoker.unified_bool(p0, 0x49A49BED12794D70, "i")end, - ["STAT_SLOT_IS_LOADED"]=--[[BOOL (bool)]] function(--[[int]] statSlot)return native_invoker.unified_bool(statSlot, 0x0D0A9F0E7BD91E3C, "i")end, - ["STAT_CLOUD_SLOT_LOAD_FAILED"]=--[[BOOL (bool)]] function(--[[int]] p0)return native_invoker.unified_bool(p0, 0x7F2C4CDF2E82DF4C, "i")end, - ["STAT_CLOUD_SLOT_LOAD_FAILED_CODE"]=--[[int]] function(--[[Any (int)]] p0)return native_invoker.unified_int(p0, 0xE496A53BA5F50A56, "i")end, - ["STAT_SET_BLOCK_SAVES"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xF434A10BA01C37D0, "b")end, - ["STAT_GET_BLOCK_SAVES"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x6A7F19756F1A9016, "")end, - ["STAT_CLOUD_SLOT_SAVE_FAILED"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x7E6946F68A38B74F, "i")end, - ["STAT_CLEAR_PENDING_SAVES"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xA8733668D1047B51, "i")end, - ["STAT_LOAD_DIRTY_READ_DETECTED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xECB41AC6AB754401, "")end, - ["STAT_CLEAR_DIRTY_READ_DETECTED"]=--[[void]] function()return native_invoker.unified_void(0x9B4BD21D69B1E609, "")end, - ["STAT_GET_LOAD_SAFE_TO_PROGRESS_TO_MP_FROM_SP"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC0E0D686DDFC6EAE, "")end, - -- Returns stat hash based on dataType, statIndex/statId and characterSlot. Related to CStatsMpCharacterMappingData - ["_GET_STAT_HASH_FOR_CHARACTER_STAT"]=--[[Hash (int)]] function(--[[int]] dataType,--[[int]] statIndex,--[[int]] charSlot)return native_invoker.unified_int(dataType, statIndex, charSlot, 0xD69CE161FE614531, "iii")end, - -- Example: - -- STATS::STAT_SET_INT(MISC::GET_HASH_KEY("MPPLY_KILLS_PLAYERS"), 1337, true); - ["STAT_SET_INT"]=--[[BOOL (bool)]] function(--[[Hash (int)]] statName,--[[int]] value,--[[BOOL (bool)]] save)return native_invoker.unified_bool(statName, value, save, 0xB3271D7AB655B441, "iib")end, - -- Example: - -- STATS::STAT_SET_FLOAT(MISC::GET_HASH_KEY("MP0_WEAPON_ACCURACY"), 66.6f, true); - ["STAT_SET_FLOAT"]=--[[BOOL (bool)]] function(--[[Hash (int)]] statName,--[[float]] value,--[[BOOL (bool)]] save)return native_invoker.unified_bool(statName, value, save, 0x4851997F37FE9B3C, "ifb")end, - -- Example: - -- STATS::STAT_SET_BOOL(MISC::GET_HASH_KEY("MPPLY_MELEECHLENGECOMPLETED"), trur, true); - ["STAT_SET_BOOL"]=--[[BOOL (bool)]] function(--[[Hash (int)]] statName,--[[BOOL (bool)]] value,--[[BOOL (bool)]] save)return native_invoker.unified_bool(statName, value, save, 0x4B33C4243DE0C432, "ibb")end, - -- The following values have been found in the decompiled scripts: - -- "RC_ABI1" - -- "RC_ABI2" - -- "RC_BA1" - -- "RC_BA2" - -- "RC_BA3" - -- "RC_BA3A" - -- "RC_BA3C" - -- "RC_BA4" - -- "RC_DRE1" - -- "RC_EPS1" - -- "RC_EPS2" - -- "RC_EPS3" - -- "RC_EPS4" - -- "RC_EPS5" - -- "RC_EPS6" - -- "RC_EPS7" - -- "RC_EPS8" - -- "RC_EXT1" - -- "RC_EXT2" - -- "RC_EXT3" - -- "RC_EXT4" - -- "RC_FAN1" - -- "RC_FAN2" - -- "RC_FAN3" - -- "RC_HAO1" - -- "RC_HUN1" - -- "RC_HUN2" - -- "RC_JOS1" - -- "RC_JOS2" - -- "RC_JOS3" - -- "RC_JOS4" - -- "RC_MAU1" - -- "RC_MIN1" - -- "RC_MIN2" - -- "RC_MIN3" - -- "RC_MRS1" - -- "RC_MRS2" - -- "RC_NI1" - -- "RC_NI1A" - -- "RC_NI1B" - -- "RC_NI1C" - -- "RC_NI1D" - -- "RC_NI2" - -- "RC_NI3" - -- "RC_OME1" - -- "RC_OME2" - -- "RC_PA1" - -- "RC_PA2" - -- "RC_PA3" - -- "RC_PA3A" - -- "RC_PA3B" - -- "RC_PA4" - -- "RC_RAM1" - -- "RC_RAM2" - -- "RC_RAM3" - -- "RC_RAM4" - -- "RC_RAM5" - -- "RC_SAS1" - -- "RC_TON1" - -- "RC_TON2" - -- "RC_TON3" - -- "RC_TON4" - -- "RC_TON5" - ["STAT_SET_GXT_LABEL"]=--[[BOOL (bool)]] function(--[[Hash (int)]] statName,--[[string]] value,--[[BOOL (bool)]] save)return native_invoker.unified_bool(statName, value, save, 0x17695002FD8B2AE0, "isb")end, - -- 'value' is a structure to a structure, 'numFields' is how many fields there are in said structure (usually 7). - -- - -- The structure looks like this: - -- - -- int year - -- int month - -- int day - -- int hour - -- int minute - -- int second - -- int millisecond - -- - -- The decompiled scripts use TIME::GET_POSIX_TIME to fill this structure. - ["STAT_SET_DATE"]=--[[BOOL (bool)]] function(--[[Hash (int)]] statName,--[[Any* (pointer)]] value,--[[int]] numFields,--[[BOOL (bool)]] save)return native_invoker.unified_bool(statName, value, numFields, save, 0x2C29BFB64F4FCBE4, "ipib")end, - ["STAT_SET_STRING"]=--[[BOOL (bool)]] function(--[[Hash (int)]] statName,--[[string]] value,--[[BOOL (bool)]] save)return native_invoker.unified_bool(statName, value, save, 0xA87B2335D12531D7, "isb")end, - ["STAT_SET_POS"]=--[[BOOL (bool)]] function(--[[Hash (int)]] statName,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] save)return native_invoker.unified_bool(statName, x, y, z, save, 0xDB283FDE680FE72E, "ifffb")end, - ["STAT_SET_MASKED_INT"]=--[[BOOL (bool)]] function(--[[Hash (int)]] statName,--[[int]] p1,--[[int]] p2,--[[int]] p3,--[[BOOL (bool)]] save)return native_invoker.unified_bool(statName, p1, p2, p3, save, 0x7BBB1B54583ED410, "iiiib")end, - ["STAT_SET_USER_ID"]=--[[BOOL (bool)]] function(--[[Hash (int)]] statName,--[[string]] value,--[[BOOL (bool)]] save)return native_invoker.unified_bool(statName, value, save, 0x8CDDF1E452BABE11, "isb")end, - -- p1 always true. - ["STAT_SET_CURRENT_POSIX_TIME"]=--[[BOOL (bool)]] function(--[[Hash (int)]] statName,--[[BOOL (bool)]] p1)return native_invoker.unified_bool(statName, p1, 0xC2F84B7F9C4D0C61, "ib")end, - -- p2 appears to always be -1 - -- - ["STAT_GET_INT"]=--[[BOOL (bool)]] function(--[[Hash (int)]] statHash,--[[int* (pointer)]] outValue,--[[int]] p2)return native_invoker.unified_bool(statHash, outValue, p2, 0x767FBC2AC802EF3D, "ipi")end, - ["STAT_GET_FLOAT"]=--[[BOOL (bool)]] function(--[[Hash (int)]] statHash,--[[float* (pointer)]] outValue,--[[Any (int)]] p2)return native_invoker.unified_bool(statHash, outValue, p2, 0xD7AE6C9C9C6AC54C, "ipi")end, - ["STAT_GET_BOOL"]=--[[BOOL (bool)]] function(--[[Hash (int)]] statHash,--[[BOOL* (pointer)]] outValue,--[[Any (int)]] p2)return native_invoker.unified_bool(statHash, outValue, p2, 0x11B5E6D2AE73F48E, "ipi")end, - -- p3 is probably characterSlot or BOOL save, always -1 - ["STAT_GET_DATE"]=--[[BOOL (bool)]] function(--[[Hash (int)]] statHash,--[[Any* (pointer)]] outValue,--[[int]] numFields,--[[Any (int)]] p3)return native_invoker.unified_bool(statHash, outValue, numFields, p3, 0x8B0FACEFC36C824B, "ipii")end, - -- p1 is always -1 in the script files - ["STAT_GET_STRING"]=--[[string]] function(--[[Hash (int)]] statHash,--[[int]] p1)return native_invoker.unified_string(statHash, p1, 0xE50384ACC2C3DB74, "ii")end, - -- p3 is probably characterSlot or BOOL save, always -1 - ["STAT_GET_POS"]=--[[BOOL (bool)]] function(--[[Hash (int)]] statName,--[[float* (pointer)]] outX,--[[float* (pointer)]] outY,--[[float* (pointer)]] outZ,--[[Any (int)]] p4)return native_invoker.unified_bool(statName, outX, outY, outZ, p4, 0x350F82CCB186AA1B, "ipppi")end, - -- p4 is probably characterSlot or BOOL save - ["STAT_GET_MASKED_INT"]=--[[BOOL (bool)]] function(--[[Hash (int)]] statHash,--[[int* (pointer)]] outValue,--[[int]] p2,--[[int]] p3,--[[Any (int)]] p4)return native_invoker.unified_bool(statHash, outValue, p2, p3, p4, 0x655185A06D9EEAAB, "ipiii")end, - -- Returns the rockstar ID (user id) value of a given stat. Returns "STAT_UNKNOWN" if the statHash is invalid or the stat has no userId - ["STAT_GET_USER_ID"]=--[[string]] function(--[[Hash (int)]] statHash)return native_invoker.unified_string(statHash, 0x2365C388E393BBE2, "i")end, - ["STAT_GET_LICENSE_PLATE"]=--[[string]] function(--[[Hash (int)]] statName)return native_invoker.unified_string(statName, 0x5473D4195058B2E4, "i")end, - ["STAT_SET_LICENSE_PLATE"]=--[[BOOL (bool)]] function(--[[Hash (int)]] statName,--[[string]] str)return native_invoker.unified_bool(statName, str, 0x69FF13266D7296DA, "is")end, - ["STAT_INCREMENT"]=--[[void]] function(--[[Hash (int)]] statName,--[[float]] value)return native_invoker.unified_void(statName, value, 0x9B5A68C6489E9909, "if")end, - ["STAT_COMMUNITY_START_SYNCH"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x5A556B229A169402, "")end, - ["STAT_COMMUNITY_SYNCH_IS_PENDING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xB1D2BB1E1631F5B1, "")end, - ["STAT_COMMUNITY_GET_HISTORY"]=--[[BOOL (bool)]] function(--[[Hash (int)]] statName,--[[int]] p1,--[[float* (pointer)]] outValue)return native_invoker.unified_bool(statName, p1, outValue, 0xBED9F5693F34ED17, "iip")end, - -- p0 seems to range from 0 to 7 - ["STAT_RESET_ALL_ONLINE_CHARACTER_STATS"]=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0x26D7399B9587FE89, "i")end, - -- p0 seems to range from 0 to 7 - ["STAT_LOCAL_RESET_ALL_ONLINE_CHARACTER_STATS"]=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0xA78B8FA58200DA56, "i")end, - ["STAT_GET_NUMBER_OF_DAYS"]=--[[int]] function(--[[Hash (int)]] statName)return native_invoker.unified_int(statName, 0xE0E854F5280FB769, "i")end, - ["STAT_GET_NUMBER_OF_HOURS"]=--[[int]] function(--[[Hash (int)]] statName)return native_invoker.unified_int(statName, 0xF2D4B2FE415AAFC3, "i")end, - ["STAT_GET_NUMBER_OF_MINUTES"]=--[[int]] function(--[[Hash (int)]] statName)return native_invoker.unified_int(statName, 0x7583B4BE4C5A41B5, "i")end, - ["STAT_GET_NUMBER_OF_SECONDS"]=--[[int]] function(--[[Hash (int)]] statName)return native_invoker.unified_int(statName, 0x2CE056FF3723F00B, "i")end, - -- Does not take effect immediately, unfortunately. - -- - -- profileSetting seems to only be 936, 937 and 938 in scripts - ["STAT_SET_PROFILE_SETTING_VALUE"]=--[[void]] function(--[[int]] profileSetting,--[[int]] value)return native_invoker.unified_void(profileSetting, value, 0x68F01422BE1D838F, "ii")end, - -- This native does absolutely nothing, just a nullsub - ["STATS_COMPLETED_CHARACTER_CREATION"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xC01D2470F22CDE5A, "i")end, - -- Needs more research. Possibly used to calculate the "mask" when calling "STAT_SET_MASKED_INT"? - ["PACKED_STAT_GET_INT_STAT_INDEX"]=--[[int]] function(--[[int]] p0)return native_invoker.unified_int(p0, 0x94F12ABF9C79E339, "i")end, - ["GET_PACKED_INT_STAT_KEY"]=--[[Hash (int)]] function(--[[int]] index,--[[BOOL (bool)]] spStat,--[[BOOL (bool)]] charStat,--[[int]] character)return native_invoker.unified_int(index, spStat, charStat, character, 0x61E111E323419E07, "ibbi")end, - ["GET_PACKED_TU_INT_STAT_KEY"]=--[[Hash (int)]] function(--[[int]] index,--[[BOOL (bool)]] spStat,--[[BOOL (bool)]] charStat,--[[int]] character)return native_invoker.unified_int(index, spStat, charStat, character, 0xD16C2AD6B8E32854, "ibbi")end, - -- Needs more research. Gets the stat name of a masked int? - -- - -- section - values used in the decompiled scripts: - -- "_NGPSTAT_INT" - -- "_MP_NGPSTAT_INT" - -- "_MP_LRPSTAT_INT" - -- "_MP_APAPSTAT_INT" - -- "_MP_LR2PSTAT_INT" - -- "_MP_BIKEPSTAT_INT" - -- "_MP_IMPEXPPSTAT_INT" - -- "_MP_GUNRPSTAT_INT" - -- "_NGDLCPSTAT_INT" - -- "_MP_NGDLCPSTAT_INT" - -- "_DLCSMUGCHARPSTAT_INT" - -- "_GANGOPSPSTAT_INT" - -- "_BUSINESSBATPSTAT_INT" - -- "_ARENAWARSPSTAT_INT" - -- "_CASINOPSTAT_INT" - -- "_CASINOHSTPSTAT_INT" - ["GET_PACKED_NG_INT_STAT_KEY"]=--[[Hash (int)]] function(--[[int]] index,--[[BOOL (bool)]] spStat,--[[BOOL (bool)]] charStat,--[[int]] character,--[[string]] section)return native_invoker.unified_int(index, spStat, charStat, character, section, 0x2B4CDCA6F07FF3DA, "ibbis")end, - ["GET_PACKED_STAT_BOOL_CODE"]=--[[BOOL (bool)]] function(--[[int]] index,--[[int]] characterSlot)return native_invoker.unified_bool(index, characterSlot, 0xDA7EBFC49AE3F1B0, "ii")end, - ["GET_PACKED_STAT_INT_CODE"]=--[[int]] function(--[[int]] index,--[[int]] characterSlot)return native_invoker.unified_int(index, characterSlot, 0x0BC900A6FE73770C, "ii")end, - ["SET_PACKED_STAT_BOOL_CODE"]=--[[void]] function(--[[int]] index,--[[BOOL (bool)]] value,--[[int]] characterSlot)return native_invoker.unified_void(index, value, characterSlot, 0xDB8A58AEAA67CD07, "ibi")end, - ["SET_PACKED_STAT_INT_CODE"]=--[[void]] function(--[[int]] index,--[[int]] value,--[[int]] characterSlot)return native_invoker.unified_void(index, value, characterSlot, 0x1581503AE529CD2E, "iii")end, - ["PLAYSTATS_BACKGROUND_SCRIPT_ACTION"]=--[[void]] function(--[[string]] action,--[[int]] value)return native_invoker.unified_void(action, value, 0x5009DFD741329729, "si")end, - -- p3: VehicleConversion, SCAdminCashGift - -- p4: 0 - ["_PLAYSTATS_FLOW_LOW"]=--[[void]] function(--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[string]] p3,--[[Any (int)]] p4,--[[int]] amount)return native_invoker.unified_void(posX, posY, posZ, p3, p4, amount, 0xE6A27CDA42887F93, "fffsii")end, - -- interiorAction: can either be InteriorEntry or InteriorExit - ["_PLAYSTATS_FLOW_MEDIUM"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[string]] interiorAction,--[[int]] p4,--[[Hash (int)]] p5)return native_invoker.unified_void(x, y, z, interiorAction, p4, p5, 0xC4493521BAA12CCE, "fffsii")end, - ["PLAYSTATS_NPC_INVITE"]=--[[void]] function(--[[string]] p0)return native_invoker.unified_void(p0, 0x93054C88E6AA7C44, "s")end, - ["PLAYSTATS_AWARD_XP"]=--[[void]] function(--[[int]] amount,--[[Hash (int)]] type,--[[Hash (int)]] category)return native_invoker.unified_void(amount, type, category, 0x46F917F6B4128FE4, "iii")end, - ["PLAYSTATS_RANK_UP"]=--[[void]] function(--[[int]] rank)return native_invoker.unified_void(rank, 0xC7F2DE41D102BFB4, "i")end, - ["PLAYSTATS_STARTED_SESSION_IN_OFFLINEMODE"]=--[[void]] function()return native_invoker.unified_void(0x098760C7461724CD, "")end, - ["PLAYSTATS_ACTIVITY_DONE"]=--[[void]] function(--[[int]] p0,--[[int]] activityId,--[[Any (int)]] p2)return native_invoker.unified_void(p0, activityId, p2, 0xA071E0ED98F91286, "iii")end, - ["PLAYSTATS_LEAVE_JOB_CHAIN"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0xC5BE134EC7BA96A0, "iiiii")end, - ["PLAYSTATS_MISSION_STARTED"]=--[[void]] function(--[[string]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xC19A2925C34D2231, "siib")end, - ["PLAYSTATS_MISSION_OVER"]=--[[void]] function(--[[string]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[BOOL (bool)]] p3,--[[BOOL (bool)]] p4,--[[BOOL (bool)]] p5)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, 0x7C4BB33A8CED7324, "siibbb")end, - ["PLAYSTATS_MISSION_CHECKPOINT"]=--[[void]] function(--[[string]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xC900596A63978C1D, "siii")end, - ["PLAYSTATS_RANDOM_MISSION_DONE"]=--[[void]] function(--[[string]] name,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(name, p1, p2, p3, 0x71862B1D855F32E1, "siii")end, - ["PLAYSTATS_ROS_BET"]=--[[void]] function(--[[int]] amount,--[[int]] act,--[[Player (int)]] player,--[[float]] cm)return native_invoker.unified_void(amount, act, player, cm, 0x121FB4DDDC2D5291, "iiif")end, - ["PLAYSTATS_RACE_CHECKPOINT"]=--[[void]] function(--[[Vehicle (int)]] p0,--[[Any (int)]] p1,--[[int]] p2,--[[int]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0x9C375C315099DDE4, "iiiii")end, - ["PLAYSTATS_CREATE_MATCH_HISTORY_ID_2"]=--[[BOOL (bool)]] function(--[[int* (pointer)]] playerAccountId,--[[int* (pointer)]] posixTime)return native_invoker.unified_bool(playerAccountId, posixTime, 0x6DEE77AFF8C21BD1, "pp")end, - ["PLAYSTATS_MATCH_STARTED"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xBC80E22DED931E3D, "iii")end, - ["PLAYSTATS_SHOP_ITEM"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0x176852ACAAC173D1, "iiiii")end, - ["PLAYSTATS_CRATE_DROP_MISSION_DONE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5,--[[Any (int)]] p6,--[[Any (int)]] p7)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, p7, 0x1CAE5D2E3F9A07F0, "iiiiiiii")end, - ["PLAYSTATS_CRATE_CREATED"]=--[[void]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2)return native_invoker.unified_void(p0, p1, p2, 0xAFC7E5E075A96F46, "fff")end, - ["PLAYSTATS_HOLD_UP_MISSION_DONE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xCB00196B31C39EB1, "iiii")end, - ["PLAYSTATS_IMPORT_EXPORT_MISSION_DONE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x2B69F5074C894811, "iiii")end, - ["PLAYSTATS_RACE_TO_POINT_MISSION_DONE"]=--[[void]] function(--[[int]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xADDD1C754E2E2914, "iiii")end, - ["PLAYSTATS_ACQUIRED_HIDDEN_PACKAGE"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x79AB33F0FBFAC40C, "i")end, - ["PLAYSTATS_WEBSITE_VISITED"]=--[[void]] function(--[[Hash (int)]] scaleformHash,--[[int]] p1)return native_invoker.unified_void(scaleformHash, p1, 0xDDF24D535060F811, "ii")end, - ["PLAYSTATS_FRIEND_ACTIVITY"]=--[[void]] function(--[[int]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0x0F71DE29AB2258F1, "ib")end, - -- This native does absolutely nothing, just a nullsub - ["PLAYSTATS_ODDJOB_DONE"]=--[[void]] function(--[[int]] totalTimeMs,--[[int]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(totalTimeMs, p1, p2, 0x69DEA3E9DB727B4C, "iib")end, - ["PLAYSTATS_PROP_CHANGE"]=--[[void]] function(--[[Ped (int)]] p0,--[[int]] p1,--[[int]] p2,--[[int]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xBA739D6D5A05D6E7, "iiii")end, - ["PLAYSTATS_CLOTH_CHANGE"]=--[[void]] function(--[[Ped (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0x34B973047A2268B9, "iiiii")end, - -- This is a typo made by R*. It's supposed to be called PLAYSTATS_WEAPON_MOD_CHANGE. - ["PLAYSTATS_WEAPON_MODE_CHANGE"]=--[[void]] function(--[[Hash (int)]] weaponHash,--[[Hash (int)]] componentHashTo,--[[Hash (int)]] componentHashFrom)return native_invoker.unified_void(weaponHash, componentHashTo, componentHashFrom, 0xE95C8A1875A02CA4, "iii")end, - ["PLAYSTATS_CHEAT_APPLIED"]=--[[void]] function(--[[string]] cheat)return native_invoker.unified_void(cheat, 0x6058665D72302D3F, "s")end, - ["PLAYSTATS_JOB_ACTIVITY_END"]=--[[void]] function(--[[Any* (pointer)]] p0,--[[Any* (pointer)]] p1,--[[Any* (pointer)]] p2,--[[Any* (pointer)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xF8C54A461C3E11DC, "pppp")end, - ["PLAYSTATS_JOB_BEND"]=--[[void]] function(--[[Any* (pointer)]] p0,--[[Any* (pointer)]] p1,--[[Any* (pointer)]] p2,--[[Any* (pointer)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xF5BB8DAC426A52C0, "pppp")end, - ["PLAYSTATS_JOB_LTS_END"]=--[[void]] function(--[[Any* (pointer)]] p0,--[[Any* (pointer)]] p1,--[[Any* (pointer)]] p2,--[[Any* (pointer)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xA736CF7FB7C5BFF4, "pppp")end, - ["PLAYSTATS_JOB_LTS_ROUND_END"]=--[[void]] function(--[[Any* (pointer)]] p0,--[[Any* (pointer)]] p1,--[[Any* (pointer)]] p2,--[[Any* (pointer)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x14E0B2D1AD1044E0, "pppp")end, - ["PLAYSTATS_QUICKFIX_TOOL"]=--[[void]] function(--[[int]] element,--[[string]] item)return native_invoker.unified_void(element, item, 0x90D0622866E80445, "is")end, - ["PLAYSTATS_IDLE_KICK"]=--[[void]] function(--[[int]] msStoodIdle)return native_invoker.unified_void(msStoodIdle, 0x5DA3A8DE8CB6226F, "i")end, - ["PLAYSTATS_SET_JOIN_TYPE"]=--[[void]] function(--[[int]] joinType)return native_invoker.unified_void(joinType, 0xD1032E482629049E, "i")end, - ["PLAYSTATS_HEIST_SAVE_CHEAT"]=--[[void]] function(--[[Hash (int)]] hash,--[[int]] p1)return native_invoker.unified_void(hash, p1, 0xF4FF020A08BC8863, "ii")end, - ["PLAYSTATS_APPEND_DIRECTOR_METRIC"]=--[[void]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_void(p0, 0x46326E13DA4E0546, "p")end, - ["PLAYSTATS_AWARD_BAD_SPORT"]=--[[void]] function(--[[int]] id)return native_invoker.unified_void(id, 0x47B32F5611E6E483, "i")end, - ["PLAYSTATS_PEGASUS_AS_PERSONAL_AIRCRAFT"]=--[[void]] function(--[[Hash (int)]] modelHash)return native_invoker.unified_void(modelHash, 0x9572BD4DD6B72122, "i")end, - ["_PLAYSTATS_SHOPMENU_NAV"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xF96E9EA876D9DC92, "iiii")end, - ["PLAYSTATS_FM_EVENT_CHALLENGES"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x6A60E43998228229, "i")end, - ["PLAYSTATS_FM_EVENT_VEHICLETARGET"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xBFAFDB5FAAA5C5AB, "i")end, - ["PLAYSTATS_FM_EVENT_URBANWARFARE"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x8C9D11605E59D955, "i")end, - ["PLAYSTATS_FM_EVENT_CHECKPOINTCOLLECTION"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x3DE3AA516FB126A4, "i")end, - ["PLAYSTATS_FM_EVENT_ATOB"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xBAA2F0490E146BE8, "i")end, - ["PLAYSTATS_FM_EVENT_PENNEDIN"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x1A7CE7CD3E653485, "i")end, - ["PLAYSTATS_FM_EVENT_PASSTHEPARCEL"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x419615486BBF1956, "i")end, - ["PLAYSTATS_FM_EVENT_HOTPROPERTY"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x84DFC579C2FC214C, "i")end, - ["PLAYSTATS_FM_EVENT_DEADDROP"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x0A9C7F36E5D7B683, "i")end, - ["PLAYSTATS_FM_EVENT_KINGOFTHECASTLE"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x164C5FF663790845, "i")end, - ["PLAYSTATS_FM_EVENT_CRIMINALDAMAGE"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xEDBF6C9B0D2C65C8, "i")end, - ["PLAYSTATS_FM_EVENT_COMPETITIVEURBANWARFARE"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x6551B1F7F6CD46EA, "i")end, - ["PLAYSTATS_FM_EVENT_HUNTBEAST"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x2CD90358F67D0AA8, "i")end, - ["PLAYSTATS_PIMENU_HIDE_OPTIONS"]=--[[void]] function(--[[Any* (pointer)]] data)return native_invoker.unified_void(data, 0x203B381133817079, "p")end, - ["LEADERBOARDS_GET_NUMBER_OF_COLUMNS"]=--[[int]] function(--[[int]] p0,--[[Any (int)]] p1)return native_invoker.unified_int(p0, p1, 0x117B45156D7EFF2E, "ii")end, - ["LEADERBOARDS_GET_COLUMN_ID"]=--[[int]] function(--[[int]] p0,--[[int]] p1,--[[int]] p2)return native_invoker.unified_int(p0, p1, p2, 0xC4B5467A1886EA7E, "iii")end, - ["LEADERBOARDS_GET_COLUMN_TYPE"]=--[[int]] function(--[[int]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_int(p0, p1, p2, 0xBF4FEF46DB7894D3, "iii")end, - ["LEADERBOARDS_READ_CLEAR_ALL"]=--[[int]] function()return native_invoker.unified_int(0xA34CB6E6F0DF4A0B, "")end, - ["LEADERBOARDS_READ_CLEAR"]=--[[int]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_int(p0, p1, p2, 0x7CCE5C737A665701, "iii")end, - ["LEADERBOARDS_READ_PENDING"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_bool(p0, p1, p2, 0xAC392C8483342AC2, "iii")end, - ["LEADERBOARDS_READ_ANY_PENDING"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xA31FD15197B192BD, "")end, - ["LEADERBOARDS_READ_SUCCESSFUL"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_bool(p0, p1, p2, 0x2FB19228983E832C, "iii")end, - ["LEADERBOARDS2_READ_FRIENDS_BY_ROW"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[Any* (pointer)]] p1,--[[Any (int)]] p2,--[[BOOL (bool)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5)return native_invoker.unified_bool(p0, p1, p2, p3, p4, p5, 0x918B101666F9CB83, "ppibii")end, - ["LEADERBOARDS2_READ_BY_HANDLE"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[Any* (pointer)]] p1)return native_invoker.unified_bool(p0, p1, 0xC30713A383BFBF0E, "pp")end, - ["LEADERBOARDS2_READ_BY_RANK"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_bool(p0, p1, p2, 0xBA2C7DB0C129449A, "pii")end, - ["LEADERBOARDS2_READ_BY_RADIUS"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[Any (int)]] p1,--[[Any* (pointer)]] p2)return native_invoker.unified_bool(p0, p1, p2, 0x5CE587FB5A42C8C4, "pip")end, - ["LEADERBOARDS2_READ_BY_SCORE_INT"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_bool(p0, p1, p2, 0x7EEC7E4F6984A16A, "pii")end, - ["LEADERBOARDS2_READ_BY_SCORE_FLOAT"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[float]] p1,--[[Any (int)]] p2)return native_invoker.unified_bool(p0, p1, p2, 0xE662C8B759D08F3C, "pfi")end, - ["LEADERBOARDS2_READ_RANK_PREDICTION"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[Any* (pointer)]] p1,--[[Any* (pointer)]] p2)return native_invoker.unified_bool(p0, p1, p2, 0xC38DC1E90D22547C, "ppp")end, - ["LEADERBOARDS2_READ_BY_PLAFORM"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[string]] gamerHandleCsv,--[[string]] platformName)return native_invoker.unified_bool(p0, gamerHandleCsv, platformName, 0xF1AE5DCDBFCA2721, "pss")end, - ["LEADERBOARDS2_READ_GET_ROW_DATA_START"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_bool(p0, 0xA0F93D5465B3094D, "p")end, - ["LEADERBOARDS2_READ_GET_ROW_DATA_END"]=--[[void]] function()return native_invoker.unified_void(0x71B008056E5692D6, "")end, - ["LEADERBOARDS2_READ_GET_ROW_DATA_INFO"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any* (pointer)]] p1)return native_invoker.unified_bool(p0, p1, 0x34770B9CE0E03B91, "ip")end, - ["LEADERBOARDS2_READ_GET_ROW_DATA_INT"]=--[[int]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_int(p0, p1, 0x88578F6EC36B4A3A, "ii")end, - ["LEADERBOARDS2_READ_GET_ROW_DATA_FLOAT"]=--[[float]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_float(p0, p1, 0x38491439B6BA7F7D, "ii")end, - ["LEADERBOARDS2_WRITE_DATA"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_bool(p0, 0xAE2206545888AE49, "p")end, - ["LEADERBOARDS_WRITE_ADD_COLUMN"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[float]] p2)return native_invoker.unified_void(p0, p1, p2, 0x0BCA1D2C47B0D269, "iif")end, - ["LEADERBOARDS_WRITE_ADD_COLUMN_LONG"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x2E65248609523599, "iii")end, - ["LEADERBOARDS_CACHE_DATA_ROW"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_bool(p0, 0xB9BB18E2C40142ED, "p")end, - ["LEADERBOARDS_CLEAR_CACHE_DATA"]=--[[void]] function()return native_invoker.unified_void(0xD4B02A6B476E1FDC, "")end, - ["LEADERBOARDS_CLEAR_CACHE_DATA_ID"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x8EC74CEB042E7CFF, "i")end, - ["LEADERBOARDS_GET_CACHE_EXISTS"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x9C51349BE6CDFE2C, "i")end, - ["LEADERBOARDS_GET_CACHE_TIME"]=--[[int]] function(--[[Any (int)]] p0)return native_invoker.unified_int(p0, 0xF04C1C27DA35F6C8, "i")end, - ["LEADERBOARDS_GET_CACHE_NUMBER_OF_ROWS"]=--[[int]] function(--[[Any (int)]] p0)return native_invoker.unified_int(p0, 0x58A651CD201D89AD, "i")end, - ["LEADERBOARDS_GET_CACHE_DATA_ROW"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any* (pointer)]] p2)return native_invoker.unified_bool(p0, p1, p2, 0x9120E8DBA3D69273, "iip")end, - ["PRESENCE_EVENT_UPDATESTAT_INT"]=--[[void]] function(--[[Hash (int)]] statHash,--[[int]] value,--[[int]] p2)return native_invoker.unified_void(statHash, value, p2, 0x11FF1C80276097ED, "iii")end, - ["PRESENCE_EVENT_UPDATESTAT_FLOAT"]=--[[void]] function(--[[Hash (int)]] statHash,--[[float]] value,--[[int]] p2)return native_invoker.unified_void(statHash, value, p2, 0x30A6614C1F7799B8, "ifi")end, - ["PRESENCE_EVENT_UPDATESTAT_INT_WITH_STRING"]=--[[void]] function(--[[Hash (int)]] statHash,--[[int]] value,--[[int]] p2,--[[string]] string)return native_invoker.unified_void(statHash, value, p2, string, 0x6483C25849031C4F, "iiis")end, - ["GET_PLAYER_HAS_DRIVEN_ALL_VEHICLES"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x5EAD2BF6484852E4, "")end, - ["SET_HAS_POSTED_ALL_VEHICLES_DRIVEN"]=--[[void]] function()return native_invoker.unified_void(0xC141B8917E0017EC, "")end, - ["SET_PROFILE_SETTING_PROLOGUE_COMPLETE"]=--[[void]] function()return native_invoker.unified_void(0xB475F27C6A994D65, "")end, - -- Sets profile setting 939 - ["SET_PROFILE_SETTING_SP_CHOP_MISSION_COMPLETE"]=--[[void]] function()return native_invoker.unified_void(0xC67E2DA1CBE759E2, "")end, - -- Sets profile setting 933 - ["SET_PROFILE_SETTING_CREATOR_RACES_DONE"]=--[[void]] function(--[[int]] value)return native_invoker.unified_void(value, 0xF1A1803D3476F215, "i")end, - -- Sets profile setting 934 - ["SET_PROFILE_SETTING_CREATOR_DM_DONE"]=--[[void]] function(--[[int]] value)return native_invoker.unified_void(value, 0x38BAAA5DD4C9D19F, "i")end, - -- Sets profile setting 935 - ["SET_PROFILE_SETTING_CREATOR_CTF_DONE"]=--[[void]] function(--[[int]] value)return native_invoker.unified_void(value, 0x55384438FC55AD8E, "i")end, - ["SET_JOB_ACTIVITY_ID_STARTED"]=--[[void]] function(--[[Any (int)]] p0,--[[int]] characterSlot)return native_invoker.unified_void(p0, characterSlot, 0x723C1CE13FBFDB67, "ii")end, - ["SET_FREEMODE_PROLOGUE_DONE"]=--[[void]] function(--[[Any (int)]] p0,--[[int]] characterSlot)return native_invoker.unified_void(p0, characterSlot, 0x0D01D20616FC73FB, "ii")end, - -- Sets profile setting 940 and 941 - ["SET_FREEMODE_STRAND_PROGRESSION_STATUS"]=--[[void]] function(--[[int]] profileSetting,--[[int]] settingValue)return native_invoker.unified_void(profileSetting, settingValue, 0x79D310A861697CC9, "ii")end, - ["STAT_NETWORK_INCREMENT_ON_SUICIDE"]=--[[void]] function(--[[Any (int)]] p0,--[[float]] p1)return native_invoker.unified_void(p0, p1, 0x428EAF89E24F6C36, "if")end, - ["STAT_SET_CHEAT_IS_ACTIVE"]=--[[void]] function()return native_invoker.unified_void(0x047CBED6F6F8B63C, "")end, - ["LEADERBOARDS2_WRITE_DATA_FOR_EVENT_TYPE"]=--[[BOOL (bool)]] function(--[[Any* (pointer)]] p0,--[[Any* (pointer)]] p1)return native_invoker.unified_bool(p0, p1, 0xC980E62E33DF1D5C, "pp")end, - ["FORCE_CLOUD_MP_STATS_DOWNLOAD_AND_OVERWRITE_LOCAL_SAVE"]=--[[void]] function()return native_invoker.unified_void(0x6F361B8889A792A3, "")end, - ["STAT_MIGRATE_CLEAR_FOR_RESTART"]=--[[void]] function()return native_invoker.unified_void(0xC847B43F369AC0B5, "")end, - -- platformName must be one of the following: ps3, xbox360, ps4, xboxone - ["STAT_MIGRATE_SAVEGAME_START"]=--[[BOOL (bool)]] function(--[[string]] platformName)return native_invoker.unified_bool(platformName, 0xA5C80D8E768A9E66, "s")end, - ["STAT_MIGRATE_SAVEGAME_GET_STATUS"]=--[[int]] function()return native_invoker.unified_int(0x9A62EC95AE10E011, "")end, - ["STAT_MIGRATE_CHECK_ALREADY_DONE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x4C89FE2BDEB3F169, "")end, - ["STAT_MIGRATE_CHECK_START"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC6E0E2616A7576BB, "")end, - ["STAT_MIGRATE_CHECK_GET_IS_PLATFORM_AVAILABLE"]=--[[int]] function(--[[int]] p0)return native_invoker.unified_int(p0, 0x5BD5F255321C4AAF, "i")end, - ["STAT_MIGRATE_CHECK_GET_PLATFORM_STATUS"]=--[[int]] function(--[[int]] p0,--[[Any* (pointer)]] p1)return native_invoker.unified_int(p0, p1, 0xDEAAF77EB3687E97, "ip")end, - ["STAT_GET_SAVE_MIGRATION_STATUS"]=--[[int]] function(--[[Any* (pointer)]] data)return native_invoker.unified_int(data, 0x886913BBEACA68C1, "p")end, - ["STAT_SAVE_MIGRATION_CANCEL_PENDING_OPERATION"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x4FEF53183C3C6414, "")end, - ["STAT_GET_CANCEL_SAVE_MIGRATION_STATUS"]=--[[int]] function()return native_invoker.unified_int(0x567384DFA67029E6, "")end, - ["STAT_SAVE_MIGRATION_CONSUME_CONTENT"]=--[[BOOL (bool)]] function(--[[Hash (int)]] contentId,--[[string]] srcPlatform,--[[string]] srcGamerHandle)return native_invoker.unified_bool(contentId, srcPlatform, srcGamerHandle, 0x3270F67EED31FBC1, "iss")end, - ["STAT_GET_SAVE_MIGRATION_CONSUME_CONTENT_STATUS"]=--[[int]] function(--[[int* (pointer)]] p0)return native_invoker.unified_int(p0, 0xCE5AA445ABA8DEE0, "p")end, - ["STAT_ENABLE_STATS_TRACKING"]=--[[void]] function()return native_invoker.unified_void(0x98E2BC1CA26287C3, "")end, - -- Prevents updates to CStatsMgr (e.g., STAT_SET_* natives) - ["STAT_DISABLE_STATS_TRACKING"]=--[[void]] function()return native_invoker.unified_void(0x629526ABA383BCAA, "")end, - ["STAT_IS_STATS_TRACKING_ENABLED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xBE3DB208333D9844, "")end, - -- enum StatTrackingType - -- { - -- LongestWheelie = 1, - -- LongestStoppie = 2, - -- NoCrashes = 3, - -- HighestSpeed = 4, - -- _MostFlips = 5, - -- _LongestSpin = 6, - -- _HighestJumpReached = 7, - -- LongestJump = 8, - -- _NearMissesNoCrash = 9, - -- LongestFallSurvived = 10, - -- LowestParachute = 11, - -- ReverseDriving = 12, - -- LongestFreefall = 13, - -- VehiclesStolen = 14, - -- _SomeCFireEventCount = 15, - -- _Unk16 = 16, - -- _LowFlyingTime = 17, - -- LowFlying = 18, - -- _InvertedFlyingTime = 19, - -- InvertedFlying = 20, - -- _PlaneSpinCount = 21, - -- MeleeKills = 22, // Players - -- _LongestSniperKill = 23, - -- SniperSkills = 24, // Players - -- DrivebyKills = 25, // Players - -- HeadshotKills = 26, // Players - -- LongestBail = 27, - -- _TotalRammedByCar = 28, - -- NearMissesPrecise = 29, - -- _FreefallTime = 30, - -- Unk31 = 31, - -- } - -- - -- enum StatTrackingValueType - -- { - -- Total, - -- Max, - -- Min - -- } - ["STAT_START_RECORD_STAT"]=--[[BOOL (bool)]] function(--[[int]] statType,--[[int]] valueType)return native_invoker.unified_bool(statType, valueType, 0x33D72899E24C3365, "ii")end, - ["STAT_STOP_RECORD_STAT"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xA761D4AC6115623D, "")end, - ["STAT_GET_RECORDED_VALUE"]=--[[BOOL (bool)]] function(--[[float* (pointer)]] value)return native_invoker.unified_bool(value, 0xF11F01D98113536A, "p")end, - ["STAT_IS_RECORDING_STAT"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x8B9CDBD6C566C38C, "")end, - -- Perform the most near misses with other vehicles in a land vehicle without crashing - ["STAT_GET_CURRENT_NEAR_MISS_NOCRASH_PRECISE"]=--[[int]] function()return native_invoker.unified_int(0xE8853FBCE7D8D0D6, "")end, - -- Perform the longest wheelie on a motorcycle - ["STAT_GET_CURRENT_REAR_WHEEL_DISTANCE"]=--[[float]] function()return native_invoker.unified_float(0xA943FD1722E11EFD, "")end, - -- Perform the longest stoppie on a motorcycle - ["STAT_GET_CURRENT_FRONT_WHEEL_DISTANCE"]=--[[float]] function()return native_invoker.unified_float(0x84A810B375E69C0E, "")end, - -- Perform the longest jump in a land vehicle - ["STAT_GET_CURRENT_JUMP_DISTANCE"]=--[[float]] function()return native_invoker.unified_float(0x9EC8858184CD253A, "")end, - -- Drive the furthest distance in a land vehicle without crashing - ["STAT_GET_CURRENT_DRIVE_NOCRASH_DISTANCE"]=--[[float]] function()return native_invoker.unified_float(0xBA9749CC94C1FD85, "")end, - -- Achieve the highest speed in a land vehicle - ["STAT_GET_CURRENT_SPEED"]=--[[float]] function()return native_invoker.unified_float(0x55A8BECAF28A4EB7, "")end, - -- Reverse the longest distance without crashing - ["STAT_GET_CURRENT_DRIVING_REVERSE_DISTANCE"]=--[[float]] function()return native_invoker.unified_float(0x32CAC93C9DE73D32, "")end, - -- Fall the longest distance with a parachute before opening it - ["STAT_GET_CURRENT_SKYDIVING_DISTANCE"]=--[[float]] function()return native_invoker.unified_float(0xAFF47709F1D5DCCE, "")end, - -- Fly low to the ground for the longest distance - ["STAT_GET_CHALLENGE_FLYING_DIST"]=--[[float]] function()return native_invoker.unified_float(0x6E0A5253375C4584, "")end, - ["STAT_GET_FLYING_ALTITUDE"]=--[[BOOL (bool)]] function(--[[float* (pointer)]] outValue)return native_invoker.unified_bool(outValue, 0x1A8EA222F9C67DBB, "p")end, - -- Or non-flyable area - ["STAT_IS_PLAYER_VEHICLE_ABOVE_OCEAN"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xF9F2922717B819EC, "")end, - -- Travel the furthest distance when bailing from a vehicle - ["STAT_GET_VEHICLE_BAIL_DISTANCE"]=--[[float]] function()return native_invoker.unified_float(0x0B8B7F74BF061C6D, "")end, - -- This function is hard-coded to always return 1. - ["STAT_ROLLBACK_SAVE_MIGRATION"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xB3DA2606774A8E2D, "")end, - -- Sets profile setting 866 - ["SET_HAS_SPECIALEDITION_CONTENT"]=--[[void]] function(--[[int]] value)return native_invoker.unified_void(value, 0xDAC073C7901F9E15, "i")end, - -- Sets profile setting 501 - ["SET_SAVE_MIGRATION_TRANSACTION_ID_WARNING"]=--[[void]] function(--[[int]] transactionId)return native_invoker.unified_void(transactionId, 0xF6792800AC95350D, "i")end, - ["GET_BOSS_GOON_UUID"]=--[[void]] function(--[[int]] characterSlot,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(characterSlot, p1, p2, 0x6BC0ACD0673ACEBE, "iii")end, - ["PLAYSTATS_BW_BOSSONBOSSDEATHMATCH"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x8D8ADB562F09A245, "i")end, - ["PLAYSTATS_BW_YATCHATTACK"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xD1A1EE3B4FA8E760, "i")end, - ["PLAYSTATS_BW_HUNT_THE_BOSS"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x88087EE1F28024AE, "i")end, - ["PLAYSTATS_BW_SIGHTSEER"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xFCC228E07217FCAC, "i")end, - ["PLAYSTATS_BW_ASSAULT"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x678F86D8FC040BDB, "i")end, - ["PLAYSTATS_BW_BELLY_OF_THE_BEAST"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xA6F54BB2FFCA35EA, "i")end, - ["PLAYSTATS_BW_HEAD_HUNTER"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x5FF2C33B13A02A11, "i")end, - ["PLAYSTATS_BW_FRAGILE_GOODS"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x282B6739644F4347, "i")end, - ["PLAYSTATS_BW_AIR_FREIGHT"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xF06A6F41CB445443, "i")end, - ["PLAYSTATS_BC_CAR_JACKING"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x7B18DA61F6BAE9D5, "i")end, - ["PLAYSTATS_BC_SMASH_AND_GRAB"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x06EAF70AE066441E, "i")end, - ["PLAYSTATS_BC_PROTECTION_RACKET"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x14EDA9EE27BD1626, "i")end, - ["PLAYSTATS_BC_MOST_WANTED"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x930F504203F561C9, "i")end, - ["PLAYSTATS_BC_FINDERS_KEEPERS"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xE3261D791EB44ACB, "i")end, - ["PLAYSTATS_BC_POINT_TO_POINT"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x73001E34F85137F8, "i")end, - ["PLAYSTATS_BC_CASHING"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x53CAE13E9B426993, "i")end, - ["PLAYSTATS_BC_SALVAGE"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x7D36291161859389, "i")end, - ["PLAYSTATS_SPENT_PI_CUSTOM_LOADOUT"]=--[[void]] function(--[[int]] amount)return native_invoker.unified_void(amount, 0xBE509B0A3693DE8B, "i")end, - ["PLAYSTATS_BUY_CONTRABAND_MISSION"]=--[[void]] function(--[[Any* (pointer)]] data)return native_invoker.unified_void(data, 0xD6781E42755531F7, "p")end, - ["PLAYSTATS_SELL_CONTRABAND_MISSION"]=--[[void]] function(--[[Any* (pointer)]] data)return native_invoker.unified_void(data, 0xC729991A9065376E, "p")end, - ["PLAYSTATS_DEFEND_CONTRABAND_MISSION"]=--[[void]] function(--[[Any* (pointer)]] data)return native_invoker.unified_void(data, 0x2605663BD4F23B5D, "p")end, - ["PLAYSTATS_RECOVER_CONTRABAND_MISSION"]=--[[void]] function(--[[Any* (pointer)]] data)return native_invoker.unified_void(data, 0x04D90BA8207ADA2D, "p")end, - ["PLAYSTATS_HIT_CONTRABAND_DESTROY_LIMIT"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x60EEDC12AF66E846, "i")end, - ["START_BEING_BOSS"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x3EBEAC6C3F81F6BD, "iii")end, - ["START_BEING_GOON"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x96E6D5150DBF1C09, "iii")end, - ["END_BEING_BOSS"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xA3C53804BDB68ED2, "iii")end, - ["END_BEING_GOON"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0x6BCCF9948492FD85, "iiiii")end, - ["HIRED_LIMO"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x792271AB35C356A4, "ii")end, - ["ORDER_BOSS_VEHICLE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Hash (int)]] vehicleHash)return native_invoker.unified_void(p0, p1, vehicleHash, 0xCEA553E35C2246E1, "iii")end, - ["CHANGE_UNIFORM"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xD1C9B92BDD3F151D, "iii")end, - ["CHANGE_GOON_LOOKING_FOR_WORK"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x44919CC079BB60BF, "i")end, - ["SEND_METRIC_GHOSTING_TO_PLAYER"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x7033EEFD9B28088E, "i")end, - ["SEND_METRIC_VIP_POACH"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xAA525DFF66BB82F5, "iii")end, - ["SEND_METRIC_PUNISH_BODYGUARD"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x015B03EE1C43E6EC, "i")end, - -- Allows CEventNetworkStuntPerformed to be triggered. - ["PLAYSTATS_START_TRACKING_STUNTS"]=--[[void]] function()return native_invoker.unified_void(0x928DBFB892638EF3, "")end, - -- Disallows CEventNetworkStuntPerformed to be triggered. - ["PLAYSTATS_STOP_TRACKING_STUNTS"]=--[[void]] function()return native_invoker.unified_void(0x8A800DACCC0DA55D, "")end, - ["PLAYSTATS_MISSION_ENDED"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xBF371CD2B64212FD, "i")end, - ["PLAYSTATS_IMPEXP_MISSION_ENDED"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x7D8BA05688AD64C7, "i")end, - ["PLAYSTATS_CHANGE_MC_ROLE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[int]] role,--[[int]] p5,--[[Any (int)]] p6)return native_invoker.unified_void(p0, p1, p2, p3, role, p5, p6, 0x0B565B0AAE56A0E8, "iiiiiii")end, - ["PLAYSTATS_CHANGE_MC_OUTFIT"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0x28ECB8AC2F607DB2, "iiiii")end, - ["PLAYSTATS_SWITCH_MC_EMBLEM"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0x0A50D2604E05CB94, "iiiii")end, - ["PLAYSTATS_MC_REQUEST_BIKE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0xCC25A4553DFBF9EA, "iiiii")end, - ["PLAYSTATS_MC_KILLED_RIVAL_MC_MEMBER"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0xF534D94DFA2EAD26, "iiiii")end, - ["PLAYSTATS_ABANDONED_MC"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0xD558BEC0BBA7E8D2, "iiiii")end, - ["PLAYSTATS_EARNED_MC_POINTS"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, 0x501478855A6074CE, "iiiiii")end, - ["PLAYSTATS_MC_FORMATION_ENDS"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5,--[[Any (int)]] p6)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, 0x03C2EEBB04B3FB72, "iiiiiii")end, - ["PLAYSTATS_MC_CLUBHOUSE_ACTIVITY"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5,--[[Any (int)]] p6,--[[Any (int)]] p7)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, p7, 0x8989CBD7B4E82534, "iiiiiiii")end, - ["PLAYSTATS_RIVAL_BEHAVIOR"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5,--[[Any (int)]] p6,--[[Any (int)]] p7,--[[Any (int)]] p8,--[[Any (int)]] p9)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, 0x27AA1C973CACFE63, "iiiiiiiiii")end, - ["PLAYSTATS_COPY_RANK_INTO_NEW_SLOT"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5,--[[Any (int)]] p6)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, 0xB7257BA2550EA10A, "iiiiiii")end, - ["PLAYSTATS_DUPE_DETECTED"]=--[[void]] function(--[[Any* (pointer)]] data)return native_invoker.unified_void(data, 0x848B66100EE33B05, "p")end, - ["PLAYSTATS_BAN_ALERT"]=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0x516FC96EB88EEFE5, "i")end, - ["PLAYSTATS_GUNRUNNING_MISSION_ENDED"]=--[[void]] function(--[[Any* (pointer)]] data)return native_invoker.unified_void(data, 0x0EACDF8487D5155A, "p")end, - ["PLAYSTATS_GUNRUNNING_RND"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xDAF80797FC534BEC, "i")end, - ["PLAYSTATS_BUSINESS_BATTLE_ENDED"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x316DB59CD14C1774, "i")end, - ["PLAYSTATS_WAREHOUSE_MISSION_ENDED"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x2D7A9B577E72385E, "i")end, - ["PLAYSTATS_NIGHTCLUB_MISSION_ENDED"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x830C3A44EB3F2CF9, "i")end, - ["PLAYSTATS_DJ_USAGE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xB26F670685631727, "ii")end, - ["PLAYSTATS_MINIGAME_USAGE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xC14BD9F5337219B2, "iii")end, - ["PLAYSTATS_STONE_HATCHET_ENDED"]=--[[void]] function(--[[Any* (pointer)]] data)return native_invoker.unified_void(data, 0x35E39E5570358630, "p")end, - ["PLAYSTATS_SMUGGLER_MISSION_ENDED"]=--[[void]] function(--[[Any* (pointer)]] data)return native_invoker.unified_void(data, 0x320C35147D5B5DDD, "p")end, - ["PLAYSTATS_FM_HEIST_PREP_ENDED"]=--[[void]] function(--[[Any* (pointer)]] data)return native_invoker.unified_void(data, 0xD8AFB345A9C5CCBB, "p")end, - ["PLAYSTATS_INSTANCED_HEIST_ENDED"]=--[[void]] function(--[[Any* (pointer)]] data,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(data, p1, p2, p3, 0x1E1497D0D2108115, "piii")end, - ["PLAYSTATS_DAR_CHECKPOINT"]=--[[void]] function(--[[Any* (pointer)]] data)return native_invoker.unified_void(data, 0x0BC254FF3A911501, "p")end, - ["PLAYSTATS_ENTER_SESSION_PACK"]=--[[void]] function(--[[Any* (pointer)]] data)return native_invoker.unified_void(data, 0x878FF156D36E9956, "p")end, - ["PLAYSTATS_DRONE_USAGE"]=--[[void]] function(--[[int]] p0,--[[int]] p1,--[[int]] p2)return native_invoker.unified_void(p0, p1, p2, 0x66C7BB2416ED3FCE, "iii")end, - ["PLAYSTATS_SPIN_WHEEL"]=--[[void]] function(--[[int]] p0,--[[int]] p1,--[[int]] p2,--[[int]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x6731DE84A38BFAD0, "iiii")end, - ["PLAYSTATS_ARENA_WARS_SPECTATOR"]=--[[void]] function(--[[int]] p0,--[[int]] p1,--[[int]] p2,--[[int]] p3,--[[int]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0x6F4F599753F8200A, "iiiii")end, - ["PLAYSTATS_ARENA_WARS_ENDED"]=--[[void]] function(--[[Any* (pointer)]] data)return native_invoker.unified_void(data, 0xB479D9F0D48A1BC5, "p")end, - ["PLAYSTATS_SWITCH_PASSIVE_MODE"]=--[[void]] function(--[[BOOL (bool)]] p0,--[[int]] p1,--[[int]] p2,--[[int]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x35EEC6C2BC821A71, "biii")end, - ["PLAYSTATS_COLLECTIBLE_PICKED_UP"]=--[[void]] function(--[[int]] p0,--[[Hash (int)]] objectHash,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[int]] moneyAmount,--[[int]] rpAmount,--[[int]] chipsAmount,--[[Any (int)]] p7,--[[int]] p8,--[[Any (int)]] p9,--[[Any (int)]] p10)return native_invoker.unified_void(p0, objectHash, p2, p3, moneyAmount, rpAmount, chipsAmount, p7, p8, p9, p10, 0xCD0A8A9338681CF2, "iiiiiiiiiii")end, - ["PLAYSTATS_CASINO_STORY_MISSION_ENDED"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xFCCCAC2BD3C1F180, "ii")end, - ["PLAYSTATS_CASINO_CHIP"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x0999F3F090EC5012, "i")end, - ["PLAYSTATS_CASINO_ROULETTE"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x95101C443A84E7F1, "i")end, - ["PLAYSTATS_CASINO_BLACKJACK"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x3EAE97309727E7AD, "i")end, - ["PLAYSTATS_CASINO_THREE_CARD_POKER"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xF740FB339D471C35, "i")end, - ["PLAYSTATS_CASINO_SLOT_MACHINE"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xEF5EC67D392B830A, "i")end, - ["PLAYSTATS_CASINO_INSIDE_TRACK"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x049F059625058A86, "i")end, - ["PLAYSTATS_CASINO_LUCKY_SEVEN"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x0C432C1435F5E4FA, "i")end, - ["PLAYSTATS_CASINO_ROULETTE_LIGHT"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x6572ABA3DE1197FC, "i")end, - ["PLAYSTATS_CASINO_BLACKJACK_LIGHT"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xD5451C7BF151EB6F, "i")end, - ["PLAYSTATS_CASINO_THREE_CARD_POKER_LIGHT"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xC9001364B4388F22, "i")end, - ["PLAYSTATS_CASINO_SLOT_MACHINE_LIGHT"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xE60054A0FAE8227F, "i")end, - ["PLAYSTATS_CASINO_INSIDE_TRACK_LIGHT"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x23A3CBCD50D54E47, "i")end, - ["PLAYSTATS_ARCADE_GAME"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5,--[[Any (int)]] p6)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, 0x533A7D1EA58DF958, "iiiiiii")end, - ["PLAYSTATS_ARCADE_LOVE_MATCH"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x4FCDBD3F0A813C25, "ii")end, - ["PLAYSTATS_FREEMODE_CASINO_MISSION_ENDED"]=--[[void]] function(--[[Any* (pointer)]] data)return native_invoker.unified_void(data, 0x1A0D4A6C336B7BC5, "p")end, - ["PLAYSTATS_HEIST3_DRONE"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xDFBD93BF2943E29B, "i")end, - ["PLAYSTATS_HEIST3_HACK"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, 0x92FC0EEDFAC04A14, "iiiiii")end, - ["PLAYSTATS_NPC_PHONE"]=--[[void]] function(--[[Any* (pointer)]] p0)return native_invoker.unified_void(p0, 0x0077F15613D36993, "p")end, - ["PLAYSTATS_ARCADE_CABINET"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xF9096193DF1F99D4, "i")end, - ["PLAYSTATS_HEIST3_FINALE"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x2E0259BABC27A327, "i")end, - ["PLAYSTATS_HEIST3_PREP"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x53C31853EC9531FF, "i")end, - ["PLAYSTATS_MASTER_CONTROL"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x810B5FCC52EC7FF0, "iiii")end, - ["PLAYSTATS_QUIT_MODE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0x5BF29846C6527C54, "iiiii")end, - ["PLAYSTATS_MISSION_VOTE"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xC03FAB2C2F92289B, "i")end, - ["PLAYSTATS_NJVS_VOTE"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x5CDAED54B34B0ED0, "i")end, - ["PLAYSTATS_KILL_YOURSELF"]=--[[void]] function()return native_invoker.unified_void(0x4AFF7E02E485E92B, "")end, - ["PLAYSTATS_FM_MISSION_END"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x46A70777BE6CEAB9, "iiii")end, - ["PLAYSTATS_HEIST4_PREP"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xDFCDB14317A9B361, "i")end, - ["PLAYSTATS_HEIST4_FINALE"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xC1E963C58664B556, "i")end, - ["PLAYSTATS_HEIST4_HACK"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(p0, p1, p2, p3, p4, 0x2FA3173480008493, "iiiii")end, - ["PLAYSTATS_SUB_WEAP"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xD4367D310F079DB0, "iiii")end, - ["PLAYSTATS_FAST_TRVL"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5,--[[Any (int)]] p6,--[[Any (int)]] p7,--[[Any (int)]] p8,--[[Any (int)]] p9,--[[Any (int)]] p10)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, 0x4DC416F246A41FC8, "iiiiiiiiiii")end, - ["PLAYSTATS_HUB_ENTRY"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x2818FF6638CB09DE, "i")end, - ["PLAYSTATS_DJ_MISSION_ENDED"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xD6CA58B3B53A0F22, "i")end, - ["PLAYSTATS_ROBBERY_PREP"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x1A67DFBF1F5C3835, "i")end, - ["PLAYSTATS_ROBBERY_FINALE"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xBBA55BE9AAAABF44, "i")end, - ["PLAYSTATS_EXTRA_EVENT"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xFA5B74BAB8A7EF99, "i")end, - ["PLAYSTATS_CARCLUB_POINTS"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xFF14D6FEEC507BBE, "i")end, - ["PLAYSTATS_CARCLUB_CHALLENGE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x1187CB58D7F3BED7, "iiii")end, - ["PLAYSTATS_CARCLUB_PRIZE"]=--[[void]] function(--[[int]] p0,--[[Hash (int)]] vehicleModel)return native_invoker.unified_void(p0, vehicleModel, 0x69C922B677621428, "ii")end, - ["PLAYSTATS_AWARD_NAV"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x70F52471E758EBAE, "iiii")end, - ["PLAYSTATS_INST_MISSION_END"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xFEA3F7E83C0610FA, "i")end, - ["PLAYSTATS_HUB_EXIT"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x5A46ACE5C4661132, "i")end, - ["PLAYSTATS_VEH_DEL"]=--[[void]] function(--[[int]] bossId1,--[[int]] bossId2,--[[int]] bossType,--[[int]] vehicleID,--[[int]] reason)return native_invoker.unified_void(bossId1, bossId2, bossType, vehicleID, reason, 0x10A691F5756416D0, "iiiii")end, - ["PLAYSTATS_INVENTORY"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x887DAD63CF5B7908, "i")end, - ["_PLAYSTATS_ACID_MISSION_END"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x8A23D1324F6B2BAC, "i")end, - ["_PLAYSTATS_ACID_RND"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xCEACCF0550FDC5BA, "i")end, - ["_PLAYSTATS_IDLE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xEC9553A178E8F1D1, "iii")end, - ["_PLAYSTATS_PLAYER_STYLE"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x48FAC5DC7AC6EA99, "i")end, - ["_PLAYSTATS_RANDOM_EVENT"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x7EA06F970F999394, "i")end, - ["_PLAYSTATS_ALERT"]=--[[void]] function(--[[Any* (pointer)]] data)return native_invoker.unified_void(data, 0x5649CA22AF74E019, "p")end, - ["_PLAYSTATS_ATTRITION_STAGE_END"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xBD642335A732F1A8, "i")end, - ["_PLAYSTATS_SHOWROOM_NAV"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Hash (int)]] entity)return native_invoker.unified_void(p0, p1, entity, 0x961D4157B9B428DB, "iii")end, - -- Data struct contains various tunables related to test drives at Simeons Showroom or Luxury Showcase. - ["_PLAYSTATS_SHOWROOM_OVERVIEW"]=--[[void]] function(--[[Any* (pointer)]] data)return native_invoker.unified_void(data, 0x151D6C04C9E2742F, "p")end, -} -STREAMING={ - ["LOAD_ALL_OBJECTS_NOW"]=--[[void]] function()return native_invoker.unified_void(0xBD6E84632DD4CB3F, "")end, - ["LOAD_SCENE"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(x, y, z, 0x4448EB75B4904BDB, "fff")end, - ["NETWORK_UPDATE_LOAD_SCENE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xC4582015556D1C46, "")end, - ["IS_NETWORK_LOADING_SCENE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x41CA5A33160EA4AB, "")end, - ["SET_INTERIOR_ACTIVE"]=--[[void]] function(--[[int]] interiorID,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(interiorID, toggle, 0xE37B76C387BE28ED, "ib")end, - -- Request a model to be loaded into memory. - -- - ["REQUEST_MODEL"]=--[[void]] function(--[[Hash (int)]] model)return native_invoker.unified_void(model, 0x963D27A58DF860AC, "i")end, - ["REQUEST_MENU_PED_MODEL"]=--[[void]] function(--[[Hash (int)]] model)return native_invoker.unified_void(model, 0xA0261AEF7ACFC51E, "i")end, - -- Checks if the specified model has loaded into memory. - ["HAS_MODEL_LOADED"]=--[[BOOL (bool)]] function(--[[Hash (int)]] model)return native_invoker.unified_bool(model, 0x98A4EB5D89A0C952, "i")end, - -- STREAMING::REQUEST_MODELS_IN_ROOM(l_13BC, "V_FIB01_cur_elev"); - -- STREAMING::REQUEST_MODELS_IN_ROOM(l_13BC, "limbo"); - -- STREAMING::REQUEST_MODELS_IN_ROOM(l_13BB, "V_Office_gnd_lifts"); - -- STREAMING::REQUEST_MODELS_IN_ROOM(l_13BB, "limbo"); - -- STREAMING::REQUEST_MODELS_IN_ROOM(l_13BC, "v_fib01_jan_elev"); - -- STREAMING::REQUEST_MODELS_IN_ROOM(l_13BC, "limbo"); - ["REQUEST_MODELS_IN_ROOM"]=--[[void]] function(--[[Interior (int)]] interior,--[[string]] roomName)return native_invoker.unified_void(interior, roomName, 0x8A7A40100EDFEC58, "is")end, - -- Unloads model from memory - ["SET_MODEL_AS_NO_LONGER_NEEDED"]=--[[void]] function(--[[Hash (int)]] model)return native_invoker.unified_void(model, 0xE532F5D78798DAAB, "i")end, - -- Check if model is in cdimage(rpf) - ["IS_MODEL_IN_CDIMAGE"]=--[[BOOL (bool)]] function(--[[Hash (int)]] model)return native_invoker.unified_bool(model, 0x35B9E0803292B641, "i")end, - -- Returns whether the specified model exists in the game. - ["IS_MODEL_VALID"]=--[[BOOL (bool)]] function(--[[Hash (int)]] model)return native_invoker.unified_bool(model, 0xC0296A2EDF545E92, "i")end, - ["IS_MODEL_A_PED"]=--[[BOOL (bool)]] function(--[[Hash (int)]] model)return native_invoker.unified_bool(model, 0x75816577FEA6DAD5, "i")end, - -- Returns whether the specified model represents a vehicle. - ["IS_MODEL_A_VEHICLE"]=--[[BOOL (bool)]] function(--[[Hash (int)]] model)return native_invoker.unified_bool(model, 0x19AAC8F07BFEC53E, "i")end, - ["REQUEST_COLLISION_AT_COORD"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(x, y, z, 0x07503F7948F491A7, "fff")end, - ["REQUEST_COLLISION_FOR_MODEL"]=--[[void]] function(--[[Hash (int)]] model)return native_invoker.unified_void(model, 0x923CB32A3B874FCB, "i")end, - ["HAS_COLLISION_FOR_MODEL_LOADED"]=--[[BOOL (bool)]] function(--[[Hash (int)]] model)return native_invoker.unified_bool(model, 0x22CCA434E368F03A, "i")end, - -- Alias of REQUEST_COLLISION_AT_COORD. - ["REQUEST_ADDITIONAL_COLLISION_AT_COORD"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(x, y, z, 0xC9156DC11411A9EA, "fff")end, - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - ["DOES_ANIM_DICT_EXIST"]=--[[BOOL (bool)]] function(--[[string]] animDict)return native_invoker.unified_bool(animDict, 0x2DA49C3B79856961, "s")end, - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - ["REQUEST_ANIM_DICT"]=--[[void]] function(--[[string]] animDict)return native_invoker.unified_void(animDict, 0xD3BD40951412FEF6, "s")end, - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - ["HAS_ANIM_DICT_LOADED"]=--[[BOOL (bool)]] function(--[[string]] animDict)return native_invoker.unified_bool(animDict, 0xD031A9162D01088C, "s")end, - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - ["REMOVE_ANIM_DICT"]=--[[void]] function(--[[string]] animDict)return native_invoker.unified_void(animDict, 0xF66A602F829E2A06, "s")end, - -- Starts loading the specified animation set. An animation set provides movement animations for a ped. See SET_PED_MOVEMENT_CLIPSET. - -- - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - -- - -- Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json - ["REQUEST_ANIM_SET"]=--[[void]] function(--[[string]] animSet)return native_invoker.unified_void(animSet, 0x6EA47DAE7FAD0EED, "s")end, - -- Gets whether the specified animation set has finished loading. An animation set provides movement animations for a ped. See SET_PED_MOVEMENT_CLIPSET. - -- - -- Animation set and clip set are synonymous. - -- - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - -- - -- Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json - ["HAS_ANIM_SET_LOADED"]=--[[BOOL (bool)]] function(--[[string]] animSet)return native_invoker.unified_bool(animSet, 0xC4EA073D86FB29B0, "s")end, - -- Unloads the specified animation set. An animation set provides movement animations for a ped. See SET_PED_MOVEMENT_CLIPSET. - -- - -- Animation set and clip set are synonymous. - -- - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - -- - -- Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json - ["REMOVE_ANIM_SET"]=--[[void]] function(--[[string]] animSet)return native_invoker.unified_void(animSet, 0x16350528F93024B3, "s")end, - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - -- - -- Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json - ["REQUEST_CLIP_SET"]=--[[void]] function(--[[string]] clipSet)return native_invoker.unified_void(clipSet, 0xD2A71E1A77418A49, "s")end, - -- Alias for HAS_ANIM_SET_LOADED. - -- - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - -- - -- Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json - ["HAS_CLIP_SET_LOADED"]=--[[BOOL (bool)]] function(--[[string]] clipSet)return native_invoker.unified_bool(clipSet, 0x318234F4F3738AF3, "s")end, - -- Alias for REMOVE_ANIM_SET. - -- - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - -- - -- Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json - ["REMOVE_CLIP_SET"]=--[[void]] function(--[[string]] clipSet)return native_invoker.unified_void(clipSet, 0x01F73A131C18CD94, "s")end, - -- Exemple: REQUEST_IPL("TrevorsTrailerTrash"); - -- - -- Full list of IPLs and interior entity sets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ipls.json - ["REQUEST_IPL"]=--[[void]] function(--[[string]] iplName)return native_invoker.unified_void(iplName, 0x41B4893843BBDB74, "s")end, - -- Removes an IPL from the map. - -- - -- Full list of IPLs and interior entity sets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ipls.json - -- - -- Example: - -- C#: - -- Function.Call(Hash.REMOVE_IPL, "trevorstrailertidy"); - -- - -- C++: - -- STREAMING::REMOVE_IPL("trevorstrailertidy"); - -- - -- iplName = Name of IPL you want to remove. - ["REMOVE_IPL"]=--[[void]] function(--[[string]] iplName)return native_invoker.unified_void(iplName, 0xEE6C5AD3ECE0A82D, "s")end, - -- Full list of IPLs and interior entity sets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ipls.json - ["IS_IPL_ACTIVE"]=--[[BOOL (bool)]] function(--[[string]] iplName)return native_invoker.unified_bool(iplName, 0x88A741E44A2B3495, "s")end, - ["SET_STREAMING"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x6E0C692677008888, "b")end, - -- 0 - default - -- 1 - HeistIsland - ["LOAD_GLOBAL_WATER_FILE"]=--[[void]] function(--[[int]] waterType)return native_invoker.unified_void(waterType, 0x7E3F55ED251B76D3, "i")end, - ["GET_GLOBAL_WATER_FILE"]=--[[int]] function()return native_invoker.unified_int(0xF741BD853611592D, "")end, - ["SET_GAME_PAUSES_FOR_STREAMING"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x717CD6E6FAEBBEDC, "b")end, - ["SET_REDUCE_PED_MODEL_BUDGET"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x77B5F9A36BF96710, "b")end, - ["SET_REDUCE_VEHICLE_MODEL_BUDGET"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x80C527893080CCF3, "b")end, - -- This is a NOP function. It does nothing at all. - ["SET_DITCH_POLICE_MODELS"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x42CBE54462D92634, "b")end, - ["GET_NUMBER_OF_STREAMING_REQUESTS"]=--[[int]] function()return native_invoker.unified_int(0x4060057271CEBC89, "")end, - -- maps script name (thread + 0xD0) by lookup via scriptfx.dat - does nothing when script name is empty - ["REQUEST_PTFX_ASSET"]=--[[void]] function()return native_invoker.unified_void(0x944955FB2A3935C8, "")end, - ["HAS_PTFX_ASSET_LOADED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xCA7D9B86ECA7481B, "")end, - ["REMOVE_PTFX_ASSET"]=--[[void]] function()return native_invoker.unified_void(0x88C6814073DD4A73, "")end, - -- From the b678d decompiled scripts: - -- - -- STREAMING::REQUEST_NAMED_PTFX_ASSET("core_snow"); - -- STREAMING::REQUEST_NAMED_PTFX_ASSET("fm_mission_controler"); - -- STREAMING::REQUEST_NAMED_PTFX_ASSET("proj_xmas_firework"); - -- STREAMING::REQUEST_NAMED_PTFX_ASSET("scr_apartment_mp"); - -- STREAMING::REQUEST_NAMED_PTFX_ASSET("scr_biolab_heist"); - -- STREAMING::REQUEST_NAMED_PTFX_ASSET("scr_indep_fireworks"); - -- STREAMING::REQUEST_NAMED_PTFX_ASSET("scr_indep_parachute"); - -- STREAMING::REQUEST_NAMED_PTFX_ASSET("scr_indep_wheelsmoke"); - -- STREAMING::REQUEST_NAMED_PTFX_ASSET("scr_mp_cig_plane"); - -- STREAMING::REQUEST_NAMED_PTFX_ASSET("scr_mp_creator"); - -- STREAMING::REQUEST_NAMED_PTFX_ASSET("scr_mp_tankbattle"); - -- STREAMING::REQUEST_NAMED_PTFX_ASSET("scr_ornate_heist"); - -- STREAMING::REQUEST_NAMED_PTFX_ASSET("scr_prison_break_heist_station"); - ["REQUEST_NAMED_PTFX_ASSET"]=--[[void]] function(--[[string]] fxName)return native_invoker.unified_void(fxName, 0xB80D8756B4668AB6, "s")end, - ["HAS_NAMED_PTFX_ASSET_LOADED"]=--[[BOOL (bool)]] function(--[[string]] fxName)return native_invoker.unified_bool(fxName, 0x8702416E512EC454, "s")end, - ["REMOVE_NAMED_PTFX_ASSET"]=--[[void]] function(--[[string]] fxName)return native_invoker.unified_void(fxName, 0x5F61EBBE1A00F96D, "s")end, - ["SET_VEHICLE_POPULATION_BUDGET"]=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0xCB9E1EB3BE2AF4E9, "i")end, - -- Control how many new (ambient?) peds will spawn in the game world. - -- Range for p0 seems to be 0-3, where 0 is none and 3 is the normal level. - ["SET_PED_POPULATION_BUDGET"]=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0x8C95333CFC3340F3, "i")end, - ["CLEAR_FOCUS"]=--[[void]] function()return native_invoker.unified_void(0x31B73D1EA9F01DA2, "")end, - -- Override the area where the camera will render the terrain. - -- p3, p4 and p5 are usually set to 0.0 - -- - ["SET_FOCUS_POS_AND_VEL"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] offsetX,--[[float]] offsetY,--[[float]] offsetZ)return native_invoker.unified_void(x, y, z, offsetX, offsetY, offsetZ, 0xBB7454BAFF08FE25, "ffffff")end, - -- It seems to make the entity's coords mark the point from which LOD-distances are measured. In my testing, setting a vehicle as the focus entity and moving that vehicle more than 300 distance units away from the player will make the level of detail around the player go down drastically (shadows disappear, textures go extremely low res, etc). The player seems to be the default focus entity. - ["SET_FOCUS_ENTITY"]=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0x198F77705FA0931D, "i")end, - ["IS_ENTITY_FOCUS"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity)return native_invoker.unified_bool(entity, 0x2DDFF3FB9075D747, "i")end, - ["SET_RESTORE_FOCUS_ENTITY"]=--[[void]] function(--[[Entity (int)]] p0)return native_invoker.unified_void(p0, 0x0811381EF5062FEC, "i")end, - -- Possible p0 values: - -- - -- "prologue" - -- "Prologue_Main" - ["SET_MAPDATACULLBOX_ENABLED"]=--[[void]] function(--[[string]] name,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(name, toggle, 0xAF12610C644A35C9, "sb")end, - -- This native does absolutely nothing, just a nullsub - ["SET_ALL_MAPDATA_CULLED"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x4E52E752C76E7E7A, "i")end, - -- Always returns zero. - ["STREAMVOL_CREATE_SPHERE"]=--[[int]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] rad,--[[Any (int)]] p4,--[[Any (int)]] p5)return native_invoker.unified_int(x, y, z, rad, p4, p5, 0x219C7B8D53E429FD, "ffffii")end, - -- Always returns zero. - ["STREAMVOL_CREATE_FRUSTUM"]=--[[int]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[float]] p6,--[[Any (int)]] p7,--[[Any (int)]] p8)return native_invoker.unified_int(p0, p1, p2, p3, p4, p5, p6, p7, p8, 0x1F3F018BC3AFA77C, "fffffffii")end, - -- Always returns zero. - ["STREAMVOL_CREATE_LINE"]=--[[int]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[Any (int)]] p6)return native_invoker.unified_int(p0, p1, p2, p3, p4, p5, p6, 0x0AD9710CEE2F590F, "ffffffi")end, - ["STREAMVOL_DELETE"]=--[[void]] function(--[[Any (int)]] unused)return native_invoker.unified_void(unused, 0x1EE7D8DF4425F053, "i")end, - ["STREAMVOL_HAS_LOADED"]=--[[BOOL (bool)]] function(--[[Any (int)]] unused)return native_invoker.unified_bool(unused, 0x7D41E9D2D17C5B2D, "i")end, - ["STREAMVOL_IS_VALID"]=--[[BOOL (bool)]] function(--[[Any (int)]] unused)return native_invoker.unified_bool(unused, 0x07C313F94746702C, "i")end, - ["IS_STREAMVOL_ACTIVE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xBC9823AB80A3DCAC, "")end, - -- `radius` value is usually between `3f` and `7000f` in original 1868 scripts. - -- `p7` is 0, 1, 2, 3 or 4 used in decompiled scripts, 0 is by far the most common. - -- Returns True if success, used only 7 times in decompiled scripts of 1868 - ["NEW_LOAD_SCENE_START"]=--[[BOOL (bool)]] function(--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[float]] offsetX,--[[float]] offsetY,--[[float]] offsetZ,--[[float]] radius,--[[int]] p7)return native_invoker.unified_bool(posX, posY, posZ, offsetX, offsetY, offsetZ, radius, p7, 0x212A8D0D2BABFAC2, "fffffffi")end, - ["NEW_LOAD_SCENE_START_SPHERE"]=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[Any (int)]] p4)return native_invoker.unified_bool(x, y, z, radius, p4, 0xACCFB4ACF53551B0, "ffffi")end, - ["NEW_LOAD_SCENE_STOP"]=--[[void]] function()return native_invoker.unified_void(0xC197616D221FF4A4, "")end, - ["IS_NEW_LOAD_SCENE_ACTIVE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xA41A05B6CB741B85, "")end, - ["IS_NEW_LOAD_SCENE_LOADED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x01B8247A7A8B9AD1, "")end, - ["IS_SAFE_TO_START_PLAYER_SWITCH"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x71E7B2E657449AAD, "")end, - -- // this enum comes directly from R* so don't edit this - -- enum ePlayerSwitchTypes - -- { - -- SWITCH_TYPE_AUTO, - -- SWITCH_TYPE_LONG, - -- SWITCH_TYPE_MEDIUM, - -- SWITCH_TYPE_SHORT - -- }; - -- - -- Use GET_IDEAL_PLAYER_SWITCH_TYPE for the best switch type. - -- - -- ---------------------------------------------------- - -- - -- Examples from the decompiled scripts: - -- - -- STREAMING::START_PLAYER_SWITCH(l_832._f3, PLAYER::PLAYER_PED_ID(), 0, 3); - -- STREAMING::START_PLAYER_SWITCH(l_832._f3, PLAYER::PLAYER_PED_ID(), 2050, 3); - -- STREAMING::START_PLAYER_SWITCH(PLAYER::PLAYER_PED_ID(), l_832._f3, 1024, 3); - -- STREAMING::START_PLAYER_SWITCH(g_141F27, PLAYER::PLAYER_PED_ID(), 513, v_14); - -- - -- Note: DO NOT, use SWITCH_TYPE_LONG with flag 513. It leaves you stuck in the clouds. You'll have to call STOP_PLAYER_SWITCH() to return to your ped. - -- - -- Flag 8 w/ SWITCH_TYPE_LONG will zoom out 3 steps, then zoom in 2/3 steps and stop on the 3rd and just hang there. - -- Flag 8 w/ SWITCH_TYPE_MEDIUM will zoom out 1 step, and just hang there. - ["START_PLAYER_SWITCH"]=--[[void]] function(--[[Ped (int)]] from,--[[Ped (int)]] to,--[[int]] flags,--[[int]] switchType)return native_invoker.unified_void(from, to, flags, switchType, 0xFAA23F2CBA159D67, "iiii")end, - ["STOP_PLAYER_SWITCH"]=--[[void]] function()return native_invoker.unified_void(0x95C0A5BBDC189AA1, "")end, - -- Returns true if the player is currently switching, false otherwise. - -- (When the camera is in the sky moving from Trevor to Franklin for example) - ["IS_PLAYER_SWITCH_IN_PROGRESS"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xD9D2CFFF49FAB35F, "")end, - ["GET_PLAYER_SWITCH_TYPE"]=--[[int]] function()return native_invoker.unified_int(0xB3C94A90D9FC9E62, "")end, - -- x1, y1, z1 -- Coords of your ped model - -- x2, y2, z2 -- Coords of the ped you want to switch to - ["GET_IDEAL_PLAYER_SWITCH_TYPE"]=--[[int]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2)return native_invoker.unified_int(x1, y1, z1, x2, y2, z2, 0xB5D7B26B45720E05, "ffffff")end, - ["GET_PLAYER_SWITCH_STATE"]=--[[int]] function()return native_invoker.unified_int(0x470555300D10B2A5, "")end, - ["GET_PLAYER_SHORT_SWITCH_STATE"]=--[[int]] function()return native_invoker.unified_int(0x20F898A5D9782800, "")end, - ["SET_PLAYER_SHORT_SWITCH_STYLE"]=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0x5F2013F8BC24EE69, "i")end, - ["GET_PLAYER_SWITCH_JUMP_CUT_INDEX"]=--[[int]] function()return native_invoker.unified_int(0x78C0D93253149435, "")end, - ["SET_PLAYER_SWITCH_OUTRO"]=--[[void]] function(--[[float]] cameraCoordX,--[[float]] cameraCoordY,--[[float]] cameraCoordZ,--[[float]] camRotationX,--[[float]] camRotationY,--[[float]] camRotationZ,--[[float]] camFov,--[[float]] camFarClip,--[[int]] rotationOrder)return native_invoker.unified_void(cameraCoordX, cameraCoordY, cameraCoordZ, camRotationX, camRotationY, camRotationZ, camFov, camFarClip, rotationOrder, 0xC208B673CE446B61, "ffffffffi")end, - -- All names can be found in playerswitchestablishingshots.meta - ["SET_PLAYER_SWITCH_ESTABLISHING_SHOT"]=--[[void]] function(--[[string]] name)return native_invoker.unified_void(name, 0x0FDE9DBFC0A6BC65, "s")end, - ["ALLOW_PLAYER_SWITCH_PAN"]=--[[void]] function()return native_invoker.unified_void(0x43D1680C6D19A8E9, "")end, - ["ALLOW_PLAYER_SWITCH_OUTRO"]=--[[void]] function()return native_invoker.unified_void(0x74DE2E8739086740, "")end, - ["ALLOW_PLAYER_SWITCH_ASCENT"]=--[[void]] function()return native_invoker.unified_void(0x8E2A065ABDAE6994, "")end, - ["ALLOW_PLAYER_SWITCH_DESCENT"]=--[[void]] function()return native_invoker.unified_void(0xAD5FDF34B81BFE79, "")end, - ["IS_SWITCH_READY_FOR_DESCENT"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xDFA80CB25D0A19B3, "")end, - ["ENABLE_SWITCH_PAUSE_BEFORE_DESCENT"]=--[[void]] function()return native_invoker.unified_void(0xD4793DFF3AF2ABCD, "")end, - ["DISABLE_SWITCH_OUTRO_FX"]=--[[void]] function()return native_invoker.unified_void(0xBD605B8E0E18B3BB, "")end, - -- doesn't act normally when used on mount chilliad - -- Flags is a bitflag: - -- 2^n - Enabled Functionality: - -- 0 - Skip camera rotate up - -- 3 - Wait for SET_PLAYER_SWITCH_ESTABLISHING_SHOT / hang at last step. You will still need to run 0x74DE2E8739086740 to exit "properly" and then STOP_PLAYER_SWITCH - -- 6 - Invert Switch Direction (false = out, true = in) - -- 8 - Hang above ped - -- - -- switchType: 0 - 3 - -- 0: 1 step towards ped - -- 1: 3 steps out from ped - -- 2: 1 step out from ped - -- 3: 1 step towards ped - ["SWITCH_TO_MULTI_FIRSTPART"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] flags,--[[int]] switchType)return native_invoker.unified_void(ped, flags, switchType, 0xAAB3200ED59016BC, "iii")end, - ["SWITCH_TO_MULTI_SECONDPART"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xD8295AF639FD9CB8, "i")end, - ["IS_SWITCH_TO_MULTI_FIRSTPART_FINISHED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x933BBEEB8C61B5F4, "")end, - ["GET_PLAYER_SWITCH_INTERP_OUT_DURATION"]=--[[int]] function()return native_invoker.unified_int(0x08C2D6C52A3104BB, "")end, - ["GET_PLAYER_SWITCH_INTERP_OUT_CURRENT_TIME"]=--[[int]] function()return native_invoker.unified_int(0x5B48A06DD0E792A5, "")end, - ["IS_SWITCH_SKIPPING_DESCENT"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x5B74EA8CFD5E3E7E, "")end, - ["SET_SCENE_STREAMING_TRACKS_CAM_POS_THIS_FRAME"]=--[[void]] function()return native_invoker.unified_void(0x1E9057A74FD73E23, "")end, - ["GET_LODSCALE"]=--[[float]] function()return native_invoker.unified_float(0x0C15B0E443B2349D, "")end, - -- This allows you to override "extended distance scaling" setting. Needs to be called each frame. - -- Max scaling seems to be 200.0, normal is 1.0 - -- See https://gfycat.com/DetailedHauntingIncatern - ["OVERRIDE_LODSCALE_THIS_FRAME"]=--[[void]] function(--[[float]] scaling)return native_invoker.unified_void(scaling, 0xA76359FC80B2438E, "f")end, - ["REMAP_LODSCALE_RANGE_THIS_FRAME"]=--[[void]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xBED8CA5FF5E04113, "ffff")end, - ["SUPPRESS_HD_MAP_STREAMING_THIS_FRAME"]=--[[void]] function()return native_invoker.unified_void(0x472397322E92A856, "")end, - ["SET_RENDER_HD_ONLY"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x40AEFD1A244741F2, "b")end, - ["FORCE_ALLOW_TIME_BASED_FADING_THIS_FRAME"]=--[[void]] function()return native_invoker.unified_void(0x03F1A106BDA7DD3E, "")end, - ["IPL_GROUP_SWAP_START"]=--[[void]] function(--[[string]] iplName1,--[[string]] iplName2)return native_invoker.unified_void(iplName1, iplName2, 0x95A7DABDDBB78AE7, "ss")end, - ["IPL_GROUP_SWAP_CANCEL"]=--[[void]] function()return native_invoker.unified_void(0x63EB2B972A218CAC, "")end, - ["IPL_GROUP_SWAP_IS_READY"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xFB199266061F820A, "")end, - ["IPL_GROUP_SWAP_FINISH"]=--[[void]] function()return native_invoker.unified_void(0xF4A0DADB70F57FA6, "")end, - ["IPL_GROUP_SWAP_IS_ACTIVE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x5068F488DDB54DD8, "")end, - -- This native is used to attribute the SRL that BEGIN_SRL is going to load. This is usually used for 'in-game' cinematics (not cutscenes but camera stuff) instead of SET_FOCUS_POS_AND_VEL because it loads a specific area of the map which is pretty useful when the camera moves from distant areas. - -- For instance, GTA:O opening cutscene. - -- https://pastebin.com/2EeKVeLA : a list of SRL found in srllist.meta - -- https://pastebin.com/zd9XYUWY here is the content of a SRL file opened with codewalker. - ["PREFETCH_SRL"]=--[[void]] function(--[[string]] srl)return native_invoker.unified_void(srl, 0x3D245789CE12982C, "s")end, - -- Returns true when the srl from BEGIN_SRL is loaded. - ["IS_SRL_LOADED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0xD0263801A4C5B0BB, "")end, - ["BEGIN_SRL"]=--[[void]] function()return native_invoker.unified_void(0x9BADDC94EF83B823, "")end, - -- Clear the current srl and stop rendering the area selected by PREFETCH_SRL and started with BEGIN_SRL. - ["END_SRL"]=--[[void]] function()return native_invoker.unified_void(0x0A41540E63C9EE17, "")end, - ["SET_SRL_TIME"]=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0xA74A541C6884E7B8, "f")end, - ["SET_SRL_POST_CUTSCENE_CAMERA"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, 0xEF39EE20C537E98C, "iiiiii")end, - ["SET_SRL_READAHEAD_TIMES"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0xBEB2D9A1D9A8F55A, "iiii")end, - ["SET_SRL_LONG_JUMP_MODE"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x20C6C7E4EB082A7F, "b")end, - ["SET_SRL_FORCE_PRESTREAM"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xF8155A7F03DDFC8E, "i")end, - ["SET_HD_AREA"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius)return native_invoker.unified_void(x, y, z, radius, 0xB85F26619073E775, "ffff")end, - ["CLEAR_HD_AREA"]=--[[void]] function()return native_invoker.unified_void(0xCE58B1CFB9290813, "")end, - ["INIT_CREATOR_BUDGET"]=--[[void]] function()return native_invoker.unified_void(0xB5A4DB34FE89B88A, "")end, - ["SHUTDOWN_CREATOR_BUDGET"]=--[[void]] function()return native_invoker.unified_void(0xCCE26000E9A6FAD7, "")end, - ["ADD_MODEL_TO_CREATOR_BUDGET"]=--[[BOOL (bool)]] function(--[[Hash (int)]] modelHash)return native_invoker.unified_bool(modelHash, 0x0BC3144DEB678666, "i")end, - ["REMOVE_MODEL_FROM_CREATOR_BUDGET"]=--[[void]] function(--[[Hash (int)]] modelHash)return native_invoker.unified_void(modelHash, 0xF086AD9354FAC3A3, "i")end, - -- 0.0 = no memory used - -- 1.0 = all memory used - -- - -- Maximum model memory (as defined in common\data\missioncreatordata.meta) is 100 MiB - ["GET_USED_CREATOR_BUDGET"]=--[[float]] function()return native_invoker.unified_float(0x3D3D8B3BE5A83D35, "")end, - -- Enables the specified island. For more information, see islandhopper.meta - ["SET_ISLAND_ENABLED"]=--[[void]] function(--[[string]] name,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(name, toggle, 0x9A9D1BA639675CF1, "sb")end, -} -TASK={ - -- Stand still (?) - ["TASK_PAUSE"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] ms)return native_invoker.unified_void(ped, ms, 0xE73A266DB0CA9042, "ii")end, - -- Makes the specified ped stand still for (time) milliseconds. - ["TASK_STAND_STILL"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] time)return native_invoker.unified_void(ped, time, 0x919BE13EED931959, "ii")end, - -- Definition is wrong. This has 4 parameters (Not sure when they were added. v350 has 2, v678 has 4). - -- - -- v350: Ped ped, bool unused - -- v678: Ped ped, bool unused, bool flag1, bool flag2 - -- - -- flag1 = super jump, flag2 = do nothing if flag1 is false and doubles super jump height if flag1 is true. - ["TASK_JUMP"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] usePlayerLaunchForce,--[[BOOL (bool)]] doSuperJump,--[[BOOL (bool)]] useFullSuperJumpForce)return native_invoker.unified_void(ped, usePlayerLaunchForce, doSuperJump, useFullSuperJumpForce, 0x0AE4086104E067B1, "ibbb")end, - ["TASK_COWER"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] duration)return native_invoker.unified_void(ped, duration, 0x3EB1FE9E8E908E15, "ii")end, - -- In the scripts, p3 was always -1. - -- - -- p3 seems to be duration or timeout of turn animation. - -- Also facingPed can be 0 or -1 so ped will just raise hands up. - ["TASK_HANDS_UP"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] duration,--[[Ped (int)]] facingPed,--[[int]] timeToFacePed,--[[int]] flags)return native_invoker.unified_void(ped, duration, facingPed, timeToFacePed, flags, 0xF2EAB31979A7F910, "iiiii")end, - ["UPDATE_TASK_HANDS_UP_DURATION"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] duration)return native_invoker.unified_void(ped, duration, 0xA98FCAFD7893C834, "ii")end, - -- The given ped will try to open the nearest door to 'seat'. - -- Example: telling the ped to open the door for the driver seat does not necessarily mean it will open the driver door, it may choose to open the passenger door instead if that one is closer. - ["TASK_OPEN_VEHICLE_DOOR"]=--[[void]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] vehicle,--[[int]] timeOut,--[[int]] seat,--[[float]] speed)return native_invoker.unified_void(ped, vehicle, timeOut, seat, speed, 0x965791A9A488A062, "iiiif")end, - -- speed 1.0 = walk, 2.0 = run - -- p5 1 = normal, 3 = teleport to vehicle, 16 = teleport directly into vehicle - -- p6 is always 0 - -- - -- Usage of seat - -- -1 = driver - -- 0 = passenger - -- 1 = left back seat - -- 2 = right back seat - -- 3 = outside left - -- 4 = outside right - ["TASK_ENTER_VEHICLE"]=--[[void]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] vehicle,--[[int]] timeout,--[[int]] seat,--[[float]] speed,--[[int]] flag,--[[string]] overrideEntryClipsetName,--[[Any (int)]] p7)return native_invoker.unified_void(ped, vehicle, timeout, seat, speed, flag, overrideEntryClipsetName, p7, 0xC20E50AA46D09CA8, "iiiifisi")end, - -- Flags from decompiled scripts: - -- 0 = normal exit and closes door. - -- 1 = normal exit and closes door. - -- 16 = teleports outside, door kept closed. - -- 64 = normal exit and closes door, maybe a bit slower animation than 0. - -- 256 = normal exit but does not close the door. - -- 4160 = ped is throwing himself out, even when the vehicle is still. - -- 262144 = ped moves to passenger seat first, then exits normally - -- - -- Others to be tried out: 320, 512, 131072. - ["TASK_LEAVE_VEHICLE"]=--[[void]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] vehicle,--[[int]] flags)return native_invoker.unified_void(ped, vehicle, flags, 0xD3DBCE61A490BE02, "iii")end, - ["TASK_GET_OFF_BOAT"]=--[[void]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] boat)return native_invoker.unified_void(ped, boat, 0x9C00E77AF14B2DFF, "ii")end, - ["TASK_SKY_DIVE"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] instant)return native_invoker.unified_void(ped, instant, 0x601736CFE536B0A0, "ib")end, - -- Second parameter is unused. - -- - -- second parameter was for jetpack in the early stages of gta and the hard coded code is now removed - ["TASK_PARACHUTE"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] giveParachuteItem,--[[BOOL (bool)]] instant)return native_invoker.unified_void(ped, giveParachuteItem, instant, 0xD2F1C53C97EE81AB, "ibb")end, - -- makes ped parachute to coords x y z. Works well with PATHFIND::GET_SAFE_COORD_FOR_PED - ["TASK_PARACHUTE_TO_TARGET"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(ped, x, y, z, 0xB33E291AFA6BD03A, "ifff")end, - ["SET_PARACHUTE_TASK_TARGET"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(ped, x, y, z, 0xC313379AF0FCEDA7, "ifff")end, - ["SET_PARACHUTE_TASK_THRUST"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] thrust)return native_invoker.unified_void(ped, thrust, 0x0729BAC1B8C64317, "if")end, - -- minHeightAboveGround: the minimum height above ground the heli must be at before the ped can start rappelling - -- - -- Only appears twice in the scripts. - -- - -- TASK::TASK_RAPPEL_FROM_HELI(PLAYER::PLAYER_PED_ID(), 10.0f); - -- TASK::TASK_RAPPEL_FROM_HELI(a_0, 10.0f); - ["TASK_RAPPEL_FROM_HELI"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] minHeightAboveGround)return native_invoker.unified_void(ped, minHeightAboveGround, 0x09693B0312F91649, "if")end, - -- info about driving modes: https://gtaforums.com/topic/822314-guide-driving-styles/ - ["TASK_VEHICLE_DRIVE_TO_COORD"]=--[[void]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] vehicle,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] speed,--[[Any (int)]] p6,--[[Hash (int)]] vehicleModel,--[[int]] drivingMode,--[[float]] stopRange,--[[float]] straightLineDistance)return native_invoker.unified_void(ped, vehicle, x, y, z, speed, p6, vehicleModel, drivingMode, stopRange, straightLineDistance, 0xE2A2AA2F659D77A7, "iiffffiiiff")end, - ["TASK_VEHICLE_DRIVE_TO_COORD_LONGRANGE"]=--[[void]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] vehicle,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] speed,--[[int]] driveMode,--[[float]] stopRange)return native_invoker.unified_void(ped, vehicle, x, y, z, speed, driveMode, stopRange, 0x158BB33F920D360C, "iiffffif")end, - ["TASK_VEHICLE_DRIVE_WANDER"]=--[[void]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] vehicle,--[[float]] speed,--[[int]] drivingStyle)return native_invoker.unified_void(ped, vehicle, speed, drivingStyle, 0x480142959D337D00, "iifi")end, - -- p6 always -1 - -- p7 always 10.0 - -- p8 always 1 - ["TASK_FOLLOW_TO_OFFSET_OF_ENTITY"]=--[[void]] function(--[[Ped (int)]] ped,--[[Entity (int)]] entity,--[[float]] offsetX,--[[float]] offsetY,--[[float]] offsetZ,--[[float]] movementSpeed,--[[int]] timeout,--[[float]] stoppingRange,--[[BOOL (bool)]] persistFollowing)return native_invoker.unified_void(ped, entity, offsetX, offsetY, offsetZ, movementSpeed, timeout, stoppingRange, persistFollowing, 0x304AE42E357B8C7E, "iiffffifb")end, - ["TASK_GO_STRAIGHT_TO_COORD"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] speed,--[[int]] timeout,--[[float]] targetHeading,--[[float]] distanceToSlide)return native_invoker.unified_void(ped, x, y, z, speed, timeout, targetHeading, distanceToSlide, 0xD76B57B44F1E6F8B, "iffffiff")end, - ["TASK_GO_STRAIGHT_TO_COORD_RELATIVE_TO_ENTITY"]=--[[void]] function(--[[Ped (int)]] ped,--[[Entity (int)]] entity,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] moveBlendRatio,--[[int]] time)return native_invoker.unified_void(ped, entity, x, y, z, moveBlendRatio, time, 0x61E360B7E040D12E, "iiffffi")end, - -- Makes the specified ped achieve the specified heading. - -- - -- pedHandle: The handle of the ped to assign the task to. - -- heading: The desired heading. - -- timeout: The time, in milliseconds, to allow the task to complete. If the task times out, it is cancelled, and the ped will stay at the heading it managed to reach in the time. - ["TASK_ACHIEVE_HEADING"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] heading,--[[int]] timeout)return native_invoker.unified_void(ped, heading, timeout, 0x93B93A37987F1F3D, "ifi")end, - -- MulleKD19: Clears the current point route. Call this before TASK_EXTEND_ROUTE and TASK_FOLLOW_POINT_ROUTE. - ["TASK_FLUSH_ROUTE"]=--[[void]] function()return native_invoker.unified_void(0x841142A1376E9006, "")end, - -- MulleKD19: Adds a new point to the current point route. Call TASK_FLUSH_ROUTE before the first call to this. Call TASK_FOLLOW_POINT_ROUTE to make the Ped go the route. - -- - -- A maximum of 8 points can be added. - ["TASK_EXTEND_ROUTE"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(x, y, z, 0x1E7889778264843A, "fff")end, - -- MulleKD19: Makes the ped go on the created point route. - -- - -- ped: The ped to give the task to. - -- speed: The speed to move at in m/s. - -- int: Unknown. Can be 0, 1, 2 or 3. - -- - -- Example: - -- TASK_FLUSH_ROUTE(); - -- TASK_EXTEND_ROUTE(0f, 0f, 70f); - -- TASK_EXTEND_ROUTE(10f, 0f, 70f); - -- TASK_EXTEND_ROUTE(10f, 10f, 70f); - -- TASK_FOLLOW_POINT_ROUTE(GET_PLAYER_PED(), 1f, 0); - ["TASK_FOLLOW_POINT_ROUTE"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] speed,--[[int]] mode)return native_invoker.unified_void(ped, speed, mode, 0x595583281858626E, "ifi")end, - -- The entity will move towards the target until time is over (duration) or get in target's range (distance). p5 and p6 are unknown, but you could leave p5 = 1073741824 or 100 or even 0 (didn't see any difference but on the decompiled scripts, they use 1073741824 mostly) and p6 = 0 - -- - -- Note: I've only tested it on entity -> ped and target -> vehicle. It could work differently on other entities, didn't try it yet. - -- - -- Example: TASK::TASK_GO_TO_ENTITY(pedHandle, vehicleHandle, 5000, 4.0, 100, 1073741824, 0) - -- - -- Ped will run towards the vehicle for 5 seconds and stop when time is over or when he gets 4 meters(?) around the vehicle (with duration = -1, the task duration will be ignored). - -- - -- enum EGOTO_ENTITY_SCRIPT_FLAGS - -- { - -- EGOTO_ENTITY_NEVER_SLOW_FOR_PATH_LENGTH = 0x01, - -- }; - ["TASK_GO_TO_ENTITY"]=--[[void]] function(--[[Entity (int)]] entity,--[[Entity (int)]] target,--[[int]] duration,--[[float]] distance,--[[float]] moveBlendRatio,--[[float]] slowDownDistance,--[[int]] flags)return native_invoker.unified_void(entity, target, duration, distance, moveBlendRatio, slowDownDistance, flags, 0x6A071245EB0D1882, "iiifffi")end, - -- Makes the specified ped flee the specified distance from the specified position. - ["TASK_SMART_FLEE_COORD"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] distance,--[[int]] time,--[[BOOL (bool)]] preferPavements,--[[BOOL (bool)]] quitIfOutOfRange)return native_invoker.unified_void(ped, x, y, z, distance, time, preferPavements, quitIfOutOfRange, 0x94587F17E9C365D5, "iffffibb")end, - -- Makes a ped run away from another ped (fleeTarget). - -- - -- distance = ped will flee this distance. - -- fleeTime = ped will flee for this amount of time, set to "-1" to flee forever - ["TASK_SMART_FLEE_PED"]=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] fleeTarget,--[[float]] safeDistance,--[[int]] fleeTime,--[[BOOL (bool)]] preferPavements,--[[BOOL (bool)]] updateToNearestHatedPed)return native_invoker.unified_void(ped, fleeTarget, safeDistance, fleeTime, preferPavements, updateToNearestHatedPed, 0x22B0D0E37CCB840D, "iifibb")end, - ["TASK_REACT_AND_FLEE_PED"]=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] fleeTarget)return native_invoker.unified_void(ped, fleeTarget, 0x72C896464915D1B1, "ii")end, - ["TASK_SHOCKING_EVENT_REACT"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] eventHandle)return native_invoker.unified_void(ped, eventHandle, 0x452419CBD838065B, "ii")end, - ["TASK_WANDER_IN_AREA"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[float]] minimalLength,--[[float]] timeBetweenWalks)return native_invoker.unified_void(ped, x, y, z, radius, minimalLength, timeBetweenWalks, 0xE054346CA3A0F315, "iffffff")end, - -- Makes ped walk around the area. - -- - -- set p1 to 10.0f and p2 to 10 if you want the ped to walk anywhere without a duration. - ["TASK_WANDER_STANDARD"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] heading,--[[int]] flags)return native_invoker.unified_void(ped, heading, flags, 0xBB9CE077274F6A1B, "ifi")end, - ["TASK_WANDER_SPECIFIC"]=--[[void]] function(--[[Ped (int)]] ped,--[[string]] conditionalAnimGroupStr,--[[string]] conditionalAnimStr,--[[float]] heading)return native_invoker.unified_void(ped, conditionalAnimGroupStr, conditionalAnimStr, heading, 0x6919A2F136426098, "issf")end, - -- Modes: - -- 0 - ignore heading - -- 1 - park forward - -- 2 - park backwards - -- - -- Depending on the angle of approach, the vehicle can park at the specified heading or at its exact opposite (-180) angle. - -- - -- Radius seems to define how close the vehicle has to be -after parking- to the position for this task considered completed. If the value is too small, the vehicle will try to park again until it's exactly where it should be. 20.0 Works well but lower values don't, like the radius is measured in centimeters or something. - ["TASK_VEHICLE_PARK"]=--[[void]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] vehicle,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] heading,--[[int]] mode,--[[float]] radius,--[[BOOL (bool)]] keepEngineOn)return native_invoker.unified_void(ped, vehicle, x, y, z, heading, mode, radius, keepEngineOn, 0x0F3E34E968EA374E, "iiffffifb")end, - -- known "killTypes" are: "AR_stealth_kill_knife" and "AR_stealth_kill_a". - ["TASK_STEALTH_KILL"]=--[[void]] function(--[[Ped (int)]] killer,--[[Ped (int)]] target,--[[Hash (int)]] stealthKillActionResultHash,--[[float]] desiredMoveBlendRatio,--[[int]] stealthFlags)return native_invoker.unified_void(killer, target, stealthKillActionResultHash, desiredMoveBlendRatio, stealthFlags, 0xAA5DC05579D60BD9, "iiifi")end, - ["TASK_PLANT_BOMB"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] heading)return native_invoker.unified_void(ped, x, y, z, heading, 0x965FEC691D55E9BF, "iffff")end, - -- If no timeout, set timeout to -1. - ["TASK_FOLLOW_NAV_MESH_TO_COORD"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] moveBlendRatio,--[[int]] time,--[[float]] targetRadius,--[[int]] flags,--[[float]] targetHeading)return native_invoker.unified_void(ped, x, y, z, moveBlendRatio, time, targetRadius, flags, targetHeading, 0x15D3A79D4E44B913, "iffffifif")end, - ["TASK_FOLLOW_NAV_MESH_TO_COORD_ADVANCED"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] moveBlendRatio,--[[int]] time,--[[float]] targetRadius,--[[int]] flags,--[[float]] slideToCoordHeading,--[[float]] maxSlopeNavigable,--[[float]] clampMaxSearchDistance,--[[float]] targetHeading)return native_invoker.unified_void(ped, x, y, z, moveBlendRatio, time, targetRadius, flags, slideToCoordHeading, maxSlopeNavigable, clampMaxSearchDistance, targetHeading, 0x17F58B88D085DBAC, "iffffififfff")end, - ["SET_PED_PATH_CAN_USE_CLIMBOVERS"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] Toggle)return native_invoker.unified_void(ped, Toggle, 0x8E06A6FE76C9EFF4, "ib")end, - ["SET_PED_PATH_CAN_USE_LADDERS"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] Toggle)return native_invoker.unified_void(ped, Toggle, 0x77A5B103C87F476E, "ib")end, - ["SET_PED_PATH_CAN_DROP_FROM_HEIGHT"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] Toggle)return native_invoker.unified_void(ped, Toggle, 0xE361C5C71C431A4F, "ib")end, - -- Default modifier is 1.0, minimum is 0.0 and maximum is 10.0. - ["SET_PED_PATH_CLIMB_COST_MODIFIER"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] modifier)return native_invoker.unified_void(ped, modifier, 0x88E32DB8C1A4AA4B, "if")end, - ["SET_PED_PATH_MAY_ENTER_WATER"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] mayEnterWater)return native_invoker.unified_void(ped, mayEnterWater, 0xF35425A4204367EC, "ib")end, - ["SET_PED_PATH_PREFER_TO_AVOID_WATER"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] avoidWater)return native_invoker.unified_void(ped, avoidWater, 0x38FE1EC73743793C, "ib")end, - ["SET_PED_PATH_AVOID_FIRE"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] avoidFire)return native_invoker.unified_void(ped, avoidFire, 0x4455517B28441E60, "ib")end, - -- Needs to be looped! And yes, it does work and is not a hash collision. - -- Birds will try to reach the given height. - ["SET_GLOBAL_MIN_BIRD_FLIGHT_HEIGHT"]=--[[void]] function(--[[float]] height)return native_invoker.unified_void(height, 0x6C6B148586F934F7, "f")end, - -- Looks like the last parameter returns true if the path has been calculated, while the first returns the remaining distance to the end of the path. - -- Return value of native is the same as GET_NAVMESH_ROUTE_RESULT - -- Looks like the native returns an int for the path's state: - -- 1 - ??? - -- 2 - ??? - -- 3 - Finished Generating - ["GET_NAVMESH_ROUTE_DISTANCE_REMAINING"]=--[[int]] function(--[[Ped (int)]] ped,--[[float* (pointer)]] distanceRemaining,--[[BOOL* (pointer)]] isPathReady)return native_invoker.unified_int(ped, distanceRemaining, isPathReady, 0xC6F5C0BCDC74D62D, "ipp")end, - -- See GET_NAVMESH_ROUTE_DISTANCE_REMAINING for more details. - ["GET_NAVMESH_ROUTE_RESULT"]=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x632E831F382A0FA8, "i")end, - ["IS_CONTROLLED_VEHICLE_UNABLE_TO_GET_TO_ROAD"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x3E38E28A1D80DDF6, "i")end, - -- example from fm_mission_controller - -- - -- TASK::TASK_GO_TO_COORD_ANY_MEANS(l_649, sub_f7e86(-1, 0), 1.0, 0, 0, 786603, 0xbf800000); - -- - ["TASK_GO_TO_COORD_ANY_MEANS"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] moveBlendRatio,--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] useLongRangeVehiclePathing,--[[int]] drivingFlags,--[[float]] maxRangeToShootTargets)return native_invoker.unified_void(ped, x, y, z, moveBlendRatio, vehicle, useLongRangeVehiclePathing, drivingFlags, maxRangeToShootTargets, 0x5BC448CB78FA3E88, "iffffibif")end, - ["TASK_GO_TO_COORD_ANY_MEANS_EXTRA_PARAMS"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] moveBlendRatio,--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] useLongRangeVehiclePathing,--[[int]] drivingFlags,--[[float]] maxRangeToShootTargets,--[[float]] extraVehToTargetDistToPreferVehicle,--[[float]] driveStraightLineDistance,--[[int]] extraFlags,--[[float]] warpTimerMS)return native_invoker.unified_void(ped, x, y, z, moveBlendRatio, vehicle, useLongRangeVehiclePathing, drivingFlags, maxRangeToShootTargets, extraVehToTargetDistToPreferVehicle, driveStraightLineDistance, extraFlags, warpTimerMS, 0x1DD45F9ECFDB1BC9, "iffffibifffif")end, - ["TASK_GO_TO_COORD_ANY_MEANS_EXTRA_PARAMS_WITH_CRUISE_SPEED"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] moveBlendRatio,--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] useLongRangeVehiclePathing,--[[int]] drivingFlags,--[[float]] maxRangeToShootTargets,--[[float]] extraVehToTargetDistToPreferVehicle,--[[float]] driveStraightLineDistance,--[[int]] extraFlags,--[[float]] cruiseSpeed,--[[float]] targetArriveDist)return native_invoker.unified_void(ped, x, y, z, moveBlendRatio, vehicle, useLongRangeVehiclePathing, drivingFlags, maxRangeToShootTargets, extraVehToTargetDistToPreferVehicle, driveStraightLineDistance, extraFlags, cruiseSpeed, targetArriveDist, 0xB8ECD61F531A7B02, "iffffibifffiff")end, - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - -- - -- float speed > normal speed is 8.0f - -- ---------------------- - -- - -- float speedMultiplier > multiply the playback speed - -- ---------------------- - -- - -- int duration: time in millisecond - -- ---------------------- - -- -1 _ _ _ _ _ _ _> Default (see flag) - -- 0 _ _ _ _ _ _ _ > Not play at all - -- Small value _ _ > Slow down animation speed - -- Other _ _ _ _ _ > freeze player control until specific time (ms) has - -- _ _ _ _ _ _ _ _ _ passed. (No effect if flag is set to be - -- _ _ _ _ _ _ _ _ _ controllable.) - -- - -- int flag: - -- ---------------------- - -- enum eAnimationFlags - -- { - -- ANIM_FLAG_NORMAL = 0, - -- ANIM_FLAG_REPEAT = 1, - -- ANIM_FLAG_STOP_LAST_FRAME = 2, - -- ANIM_FLAG_UPPERBODY = 16, - -- ANIM_FLAG_ENABLE_PLAYER_CONTROL = 32, - -- ANIM_FLAG_CANCELABLE = 120, - -- }; - -- Odd number : loop infinitely - -- Even number : Freeze at last frame - -- Multiple of 4: Freeze at last frame but controllable - -- - -- 01 to 15 > Full body - -- 10 to 31 > Upper body - -- 32 to 47 > Full body > Controllable - -- 48 to 63 > Upper body > Controllable - -- ... - -- 001 to 255 > Normal - -- 256 to 511 > Garbled - -- ... - -- - -- playbackRate: - -- - -- values are between 0.0 and 1.0 - -- - -- - -- lockX: - -- - -- 0 in most cases 1 for rcmepsilonism8 and rcmpaparazzo_3 - -- > 1 for mini@sprunk - -- - -- - -- lockY: - -- - -- 0 in most cases - -- 1 for missfam5_yoga, missfra1mcs_2_crew_react - -- - -- - -- lockZ: - -- - -- 0 for single player - -- Can be 1 but only for MP - ["TASK_PLAY_ANIM"]=--[[void]] function(--[[Ped (int)]] ped,--[[string]] animDictionary,--[[string]] animationName,--[[float]] blendInSpeed,--[[float]] blendOutSpeed,--[[int]] duration,--[[int]] flag,--[[float]] playbackRate,--[[BOOL (bool)]] lockX,--[[BOOL (bool)]] lockY,--[[BOOL (bool)]] lockZ)return native_invoker.unified_void(ped, animDictionary, animationName, blendInSpeed, blendOutSpeed, duration, flag, playbackRate, lockX, lockY, lockZ, 0xEA47FE3719165B94, "issffiifbbb")end, - -- It's similar to TASK_PLAY_ANIM, except the first 6 floats let you specify the initial position and rotation of the task. (Ped gets teleported to the position). - -- - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - ["TASK_PLAY_ANIM_ADVANCED"]=--[[void]] function(--[[Ped (int)]] ped,--[[string]] animDict,--[[string]] animName,--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ,--[[float]] animEnterSpeed,--[[float]] animExitSpeed,--[[int]] duration,--[[Any (int)]] flag,--[[float]] animTime,--[[int]] rotOrder,--[[int]] ikFlags)return native_invoker.unified_void(ped, animDict, animName, posX, posY, posZ, rotX, rotY, rotZ, animEnterSpeed, animExitSpeed, duration, flag, animTime, rotOrder, ikFlags, 0x83CDB10EA29B370B, "issffffffffiifii")end, - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - ["STOP_ANIM_TASK"]=--[[void]] function(--[[Entity (int)]] entity,--[[string]] animDictionary,--[[string]] animationName,--[[float]] blendDelta)return native_invoker.unified_void(entity, animDictionary, animationName, blendDelta, 0x97FF36A1D40EA00A, "issf")end, - -- From fm_mission_controller.c: - -- reserve_network_mission_objects(get_num_reserved_mission_objects(0) + 1); - -- vVar28 = {0.094f, 0.02f, -0.005f}; - -- vVar29 = {-92.24f, 63.64f, 150.24f}; - -- func_253(&uVar30, joaat("prop_ld_case_01"), Global_1592429.imm_34757[iParam1 <268>], 1, 1, 0, 1); - -- set_entity_lod_dist(net_to_ent(uVar30), 500); - -- attach_entity_to_entity(net_to_ent(uVar30), iParam0, get_ped_bone_index(iParam0, 28422), vVar28, vVar29, 1, 0, 0, 0, 2, 1); - -- Var31.imm_4 = 1065353216; - -- Var31.imm_5 = 1065353216; - -- Var31.imm_9 = 1065353216; - -- Var31.imm_10 = 1065353216; - -- Var31.imm_14 = 1065353216; - -- Var31.imm_15 = 1065353216; - -- Var31.imm_17 = 1040187392; - -- Var31.imm_18 = 1040187392; - -- Var31.imm_19 = -1; - -- Var32.imm_4 = 1065353216; - -- Var32.imm_5 = 1065353216; - -- Var32.imm_9 = 1065353216; - -- Var32.imm_10 = 1065353216; - -- Var32.imm_14 = 1065353216; - -- Var32.imm_15 = 1065353216; - -- Var32.imm_17 = 1040187392; - -- Var32.imm_18 = 1040187392; - -- Var32.imm_19 = -1; - -- Var31 = 1; - -- Var31.imm_1 = "weapons@misc@jerrycan@mp_male"; - -- Var31.imm_2 = "idle"; - -- Var31.imm_20 = 1048633; - -- Var31.imm_4 = 0.5f; - -- Var31.imm_16 = get_hash_key("BONEMASK_ARMONLY_R"); - -- task_scripted_animation(iParam0, &Var31, &Var32, &Var32, 0f, 0.25f); - -- set_model_as_no_longer_needed(joaat("prop_ld_case_01")); - -- remove_anim_dict("anim@heists@biolab@"); - ["TASK_SCRIPTED_ANIMATION"]=--[[void]] function(--[[Ped (int)]] ped,--[[int* (pointer)]] priorityLowData,--[[int* (pointer)]] priorityMidData,--[[int* (pointer)]] priorityHighData,--[[float]] blendInDelta,--[[float]] blendOutDelta)return native_invoker.unified_void(ped, priorityLowData, priorityMidData, priorityHighData, blendInDelta, blendOutDelta, 0x126EF75F1E17ABE5, "ipppff")end, - ["PLAY_ENTITY_SCRIPTED_ANIM"]=--[[void]] function(--[[Entity (int)]] entity,--[[int* (pointer)]] priorityLowData,--[[int* (pointer)]] priorityMidData,--[[int* (pointer)]] priorityHighData,--[[float]] blendInDelta,--[[float]] blendOutDelta)return native_invoker.unified_void(entity, priorityLowData, priorityMidData, priorityHighData, blendInDelta, blendOutDelta, 0x77A1EEC547E7FCF1, "ipppff")end, - -- Looks like p1 may be a flag, still need to do some research, though. - ["STOP_ANIM_PLAYBACK"]=--[[void]] function(--[[Entity (int)]] entity,--[[int]] priority,--[[BOOL (bool)]] secondary)return native_invoker.unified_void(entity, priority, secondary, 0xEE08C992D238C5D1, "iib")end, - ["SET_ANIM_WEIGHT"]=--[[void]] function(--[[Entity (int)]] entity,--[[float]] weight,--[[int]] priority,--[[int]] index,--[[BOOL (bool)]] secondary)return native_invoker.unified_void(entity, weight, priority, index, secondary, 0x207F1A47C0342F48, "ifiib")end, - ["SET_ANIM_PHASE"]=--[[void]] function(--[[Entity (int)]] entity,--[[float]] phase,--[[int]] priority,--[[BOOL (bool)]] secondary)return native_invoker.unified_void(entity, phase, priority, secondary, 0xDDF3CB5A0A4C0B49, "ifib")end, - ["SET_ANIM_RATE"]=--[[void]] function(--[[Entity (int)]] entity,--[[float]] rate,--[[int]] priority,--[[BOOL (bool)]] secondary)return native_invoker.unified_void(entity, rate, priority, secondary, 0x032D49C5E359C847, "ifib")end, - ["SET_ANIM_LOOPED"]=--[[void]] function(--[[Entity (int)]] entity,--[[BOOL (bool)]] looped,--[[int]] priority,--[[BOOL (bool)]] secondary)return native_invoker.unified_void(entity, looped, priority, secondary, 0x70033C3CC29A1FF4, "ibib")end, - -- Example from the scripts: - -- TASK::TASK_PLAY_PHONE_GESTURE_ANIMATION(PLAYER::PLAYER_PED_ID(), v_3, v_2, v_4, 0.25, 0.25, 0, 0); - -- - -- ========================================================= - -- ^^ No offense, but Idk how that would really help anyone. - -- - -- As for the animDict & animation, they're both store in a global in all 5 scripts. So if anyone would be so kind as to read that global and comment what strings they use. Thanks. - -- - -- Known boneMaskTypes' - -- "BONEMASK_HEADONLY" - -- "BONEMASK_HEAD_NECK_AND_ARMS" - -- "BONEMASK_HEAD_NECK_AND_L_ARM" - -- "BONEMASK_HEAD_NECK_AND_R_ARM" - -- - -- p4 known args - 0.0f, 0.5f, 0.25f - -- p5 known args - 0.0f, 0.25f - -- p6 known args - 1 if a global if check is passed. - -- p7 known args - 1 if a global if check is passed. - -- - -- The values found above, I found within the 5 scripts this is ever called in. (fmmc_launcher, fm_deathmatch_controller, fm_impromptu_dm_controller, fm_mission_controller, and freemode). - -- ========================================================= - -- - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - ["TASK_PLAY_PHONE_GESTURE_ANIMATION"]=--[[void]] function(--[[Ped (int)]] ped,--[[string]] animDict,--[[string]] animation,--[[string]] boneMaskType,--[[float]] blendInDuration,--[[float]] blendOutDuration,--[[BOOL (bool)]] isLooping,--[[BOOL (bool)]] holdLastFrame)return native_invoker.unified_void(ped, animDict, animation, boneMaskType, blendInDuration, blendOutDuration, isLooping, holdLastFrame, 0x8FBB6758B3B3E9EC, "isssffbb")end, - ["TASK_STOP_PHONE_GESTURE_ANIMATION"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] blendOutOverride)return native_invoker.unified_void(ped, blendOutOverride, 0x3FA00D4F4641BFAE, "if")end, - ["IS_PLAYING_PHONE_GESTURE_ANIM"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xB8EBB1E9D3588C10, "i")end, - ["GET_PHONE_GESTURE_ANIM_CURRENT_TIME"]=--[[float]] function(--[[Ped (int)]] ped)return native_invoker.unified_float(ped, 0x47619ABE8B268C60, "i")end, - ["GET_PHONE_GESTURE_ANIM_TOTAL_TIME"]=--[[float]] function(--[[Ped (int)]] ped)return native_invoker.unified_float(ped, 0x1EE0F68A7C25DEC6, "i")end, - -- Most probably plays a specific animation on vehicle. For example getting chop out of van etc... - -- - -- Here's how its used - - -- - -- TASK::TASK_VEHICLE_PLAY_ANIM(l_325, "rcmnigel1b", "idle_speedo"); - -- - -- TASK::TASK_VEHICLE_PLAY_ANIM(l_556[0/*1*/], "missfra0_chop_drhome", "InCar_GetOutofBack_Speedo"); - -- - -- FYI : Speedo is the name of van in which chop was put in the mission. - ["TASK_VEHICLE_PLAY_ANIM"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[string]] animationSet,--[[string]] animationName)return native_invoker.unified_void(vehicle, animationSet, animationName, 0x69F5C3BD0F3EBD89, "iss")end, - -- enum eScriptLookatFlags - -- { - -- SLF_SLOW_TURN_RATE = 1, // turn the head toward the target slowly - -- SLF_FAST_TURN_RATE = 2, // turn the head toward the target quickly - -- SLF_EXTEND_YAW_LIMIT = 4, // wide yaw head limits - -- SLF_EXTEND_PITCH_LIMIT = 8, // wide pitch head limit - -- SLF_WIDEST_YAW_LIMIT = 16, // widest yaw head limit - -- SLF_WIDEST_PITCH_LIMIT = 32, // widest pitch head limit - -- SLF_NARROW_YAW_LIMIT = 64, // narrow yaw head limits - -- SLF_NARROW_PITCH_LIMIT = 128, // narrow pitch head limit - -- SLF_NARROWEST_YAW_LIMIT = 256, // narrowest yaw head limit - -- SLF_NARROWEST_PITCH_LIMIT = 512, // narrowest pitch head limit - -- SLF_USE_TORSO = 1024, // use the torso aswell as the neck and head (currently disabled) - -- SLF_WHILE_NOT_IN_FOV = 2048, // keep tracking the target even if they are not in the hard coded FOV - -- SLF_USE_CAMERA_FOCUS = 4096, // use the camera as the target - -- SLF_USE_EYES_ONLY = 8192, // only track the target with the eyes - -- SLF_USE_LOOK_DIR = 16384, // use information in look dir DOF - -- SLF_FROM_SCRIPT = 32768, // internal use only - -- SLF_USE_REF_DIR_ABSOLUTE = 65536 // use absolute reference direction mode for solver - -- }; - ["TASK_LOOK_AT_COORD"]=--[[void]] function(--[[Entity (int)]] entity,--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] duration,--[[int]] flags,--[[int]] priority)return native_invoker.unified_void(entity, x, y, z, duration, flags, priority, 0x6FA46612594F7973, "ifffiii")end, - -- For flags, please refer to TASK_LOOK_AT_COORD. - ["TASK_LOOK_AT_ENTITY"]=--[[void]] function(--[[Ped (int)]] ped,--[[Entity (int)]] lookAt,--[[int]] duration,--[[int]] flags,--[[int]] priority)return native_invoker.unified_void(ped, lookAt, duration, flags, priority, 0x69F4BE8C8CC4796C, "iiiii")end, - ["TASK_CLEAR_LOOK_AT"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x0F804F1DB19B9689, "i")end, - ["OPEN_SEQUENCE_TASK"]=--[[void]] function(--[[int* (pointer)]] taskSequenceId)return native_invoker.unified_void(taskSequenceId, 0xE8854A4326B9E12B, "p")end, - ["CLOSE_SEQUENCE_TASK"]=--[[void]] function(--[[int]] taskSequenceId)return native_invoker.unified_void(taskSequenceId, 0x39E72BC99E6360CB, "i")end, - ["TASK_PERFORM_SEQUENCE"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] taskSequenceId)return native_invoker.unified_void(ped, taskSequenceId, 0x5ABA3986D90D8A3B, "ii")end, - ["TASK_PERFORM_SEQUENCE_LOCALLY"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] taskSequenceId)return native_invoker.unified_void(ped, taskSequenceId, 0x8C33220C8D78CA0D, "ii")end, - ["CLEAR_SEQUENCE_TASK"]=--[[void]] function(--[[int* (pointer)]] taskSequenceId)return native_invoker.unified_void(taskSequenceId, 0x3841422E9C488D8C, "p")end, - ["SET_SEQUENCE_TO_REPEAT"]=--[[void]] function(--[[int]] taskSequenceId,--[[BOOL (bool)]] _repeat)return native_invoker.unified_void(taskSequenceId, _repeat, 0x58C70CF3A41E4AE7, "ib")end, - -- returned values: - -- 0 to 7 = task that's currently in progress, 0 meaning the first one. - -- -1 no task sequence in progress. - ["GET_SEQUENCE_PROGRESS"]=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x00A9010CFE1E3533, "i")end, - -- Task index enum: https://alloc8or.re/gta5/doc/enums/eTaskTypeIndex.txt - ["GET_IS_TASK_ACTIVE"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[int]] taskIndex)return native_invoker.unified_bool(ped, taskIndex, 0xB0760331C7AA4155, "ii")end, - -- Gets the status of a script-assigned task. - -- taskHash: https://alloc8or.re/gta5/doc/enums/eScriptTaskHash.txt - ["GET_SCRIPT_TASK_STATUS"]=--[[int]] function(--[[Ped (int)]] ped,--[[Hash (int)]] taskHash)return native_invoker.unified_int(ped, taskHash, 0x77F1BEB8863288D5, "ii")end, - -- https://alloc8or.re/gta5/doc/enums/eVehicleMissionType.txt - ["GET_ACTIVE_VEHICLE_MISSION_TYPE"]=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x534AEBA6E5ED4CAB, "i")end, - -- Flags are the same flags used in TASK_LEAVE_VEHICLE - ["TASK_LEAVE_ANY_VEHICLE"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] delayTime,--[[int]] flags)return native_invoker.unified_void(ped, delayTime, flags, 0x504D54DF3F6F2247, "iii")end, - ["TASK_AIM_GUN_SCRIPTED"]=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] scriptTask,--[[BOOL (bool)]] disableBlockingClip,--[[BOOL (bool)]] instantBlendToAim)return native_invoker.unified_void(ped, scriptTask, disableBlockingClip, instantBlendToAim, 0x7A192BE16D373D00, "iibb")end, - ["TASK_AIM_GUN_SCRIPTED_WITH_TARGET"]=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] target,--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] gunTaskType,--[[BOOL (bool)]] disableBlockingClip,--[[BOOL (bool)]] forceAim)return native_invoker.unified_void(ped, target, x, y, z, gunTaskType, disableBlockingClip, forceAim, 0x8605AF0DE8B3A5AC, "iifffibb")end, - ["UPDATE_TASK_AIM_GUN_SCRIPTED_TARGET"]=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] target,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] disableBlockingClip)return native_invoker.unified_void(ped, target, x, y, z, disableBlockingClip, 0x9724FB59A3E72AD0, "iifffb")end, - ["GET_CLIP_SET_FOR_SCRIPTED_GUN_TASK"]=--[[string]] function(--[[int]] gunTaskType)return native_invoker.unified_string(gunTaskType, 0x3A8CADC7D37AACC5, "i")end, - -- duration: the amount of time in milliseconds to do the task. -1 will keep the task going until either another task is applied, or CLEAR_ALL_TASKS() is called with the ped - ["TASK_AIM_GUN_AT_ENTITY"]=--[[void]] function(--[[Ped (int)]] ped,--[[Entity (int)]] entity,--[[int]] duration,--[[BOOL (bool)]] instantBlendToAim)return native_invoker.unified_void(ped, entity, duration, instantBlendToAim, 0x9B53BB6E8943AF53, "iiib")end, - -- duration: the amount of time in milliseconds to do the task. -1 will keep the task going until either another task is applied, or CLEAR_ALL_TASKS() is called with the ped - ["TASK_TURN_PED_TO_FACE_ENTITY"]=--[[void]] function(--[[Ped (int)]] ped,--[[Entity (int)]] entity,--[[int]] duration)return native_invoker.unified_void(ped, entity, duration, 0x5AD23D40115353AC, "iii")end, - ["TASK_AIM_GUN_AT_COORD"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] time,--[[BOOL (bool)]] instantBlendToAim,--[[BOOL (bool)]] playAnimIntro)return native_invoker.unified_void(ped, x, y, z, time, instantBlendToAim, playAnimIntro, 0x6671F3EEC681BDA1, "ifffibb")end, - -- Firing Pattern Hash Information: https://pastebin.com/Px036isB - ["TASK_SHOOT_AT_COORD"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] duration,--[[Hash (int)]] firingPattern)return native_invoker.unified_void(ped, x, y, z, duration, firingPattern, 0x46A6CC01E0826106, "ifffii")end, - -- Makes the specified ped shuffle to the next vehicle seat. - -- The ped MUST be in a vehicle and the vehicle parameter MUST be the ped's current vehicle. - ["TASK_SHUFFLE_TO_NEXT_VEHICLE_SEAT"]=--[[void]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] useAlternateShuffle)return native_invoker.unified_void(ped, vehicle, useAlternateShuffle, 0x7AA80209BDA643EB, "iib")end, - ["CLEAR_PED_TASKS"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xE1EF3C1216AFF2CD, "i")end, - ["CLEAR_PED_SECONDARY_TASK"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x176CECF6F920D707, "i")end, - ["TASK_EVERYONE_LEAVE_VEHICLE"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x7F93691AB4B92272, "i")end, - -- enum ESEEK_ENTITY_OFFSET_FLAGS - -- { - -- ESEEK_OFFSET_ORIENTATES_WITH_ENTITY = 0x01, - -- ESEEK_KEEP_TO_PAVEMENTS = 0x02 - -- }; - ["TASK_GOTO_ENTITY_OFFSET"]=--[[void]] function(--[[Ped (int)]] ped,--[[Entity (int)]] entity,--[[int]] time,--[[float]] seekRadius,--[[float]] seekAngleDeg,--[[float]] moveBlendRatio,--[[int]] gotoEntityOffsetFlags)return native_invoker.unified_void(ped, entity, time, seekRadius, seekAngleDeg, moveBlendRatio, gotoEntityOffsetFlags, 0xE39B4FF4FDEBDE27, "iiifffi")end, - ["TASK_GOTO_ENTITY_OFFSET_XY"]=--[[void]] function(--[[Ped (int)]] ped,--[[Entity (int)]] entity,--[[int]] duration,--[[float]] targetRadius,--[[float]] offsetX,--[[float]] offsetY,--[[float]] moveBlendRatio,--[[int]] gotoEntityOffsetFlags)return native_invoker.unified_void(ped, entity, duration, targetRadius, offsetX, offsetY, moveBlendRatio, gotoEntityOffsetFlags, 0x338E7EF52B6095A9, "iiiffffi")end, - -- duration in milliseconds - ["TASK_TURN_PED_TO_FACE_COORD"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] duration)return native_invoker.unified_void(ped, x, y, z, duration, 0x1DDA930A0AC38571, "ifffi")end, - -- '1 - brake - -- '3 - brake + reverse - -- '4 - turn left 90 + braking - -- '5 - turn right 90 + braking - -- '6 - brake strong (handbrake?) until time ends - -- '7 - turn left + accelerate - -- '8 - turn right + accelerate - -- '9 - weak acceleration - -- '10 - turn left + restore wheel pos to center in the end - -- '11 - turn right + restore wheel pos to center in the end - -- '13 - turn left + go reverse - -- '14 - turn left + go reverse - -- '16 - crash the game after like 2 seconds :) - -- '17 - keep actual state, game crashed after few tries - -- '18 - game crash - -- '19 - strong brake + turn left/right - -- '20 - weak brake + turn left then turn right - -- '21 - weak brake + turn right then turn left - -- '22 - brake + reverse - -- '23 - accelerate fast - -- '24 - brake - -- '25 - brake turning left then when almost stopping it turns left more - -- '26 - brake turning right then when almost stopping it turns right more - -- '27 - brake until car stop or until time ends - -- '28 - brake + strong reverse acceleration - -- '30 - performs a burnout (brake until stop + brake and accelerate) - -- '31 - accelerate + handbrake - -- '32 - accelerate very strong - -- - -- Seems to be this: - -- Works on NPCs, but overrides their current task. If inside a task sequence (and not being the last task), "time" will work, otherwise the task will be performed forever until tasked with something else - ["TASK_VEHICLE_TEMP_ACTION"]=--[[void]] function(--[[Ped (int)]] driver,--[[Vehicle (int)]] vehicle,--[[int]] action,--[[int]] time)return native_invoker.unified_void(driver, vehicle, action, time, 0xC429DCEEB339E129, "iiii")end, - -- missionType: https://alloc8or.re/gta5/doc/enums/eVehicleMissionType.txt - ["TASK_VEHICLE_MISSION"]=--[[void]] function(--[[Ped (int)]] driver,--[[Vehicle (int)]] vehicle,--[[Vehicle (int)]] vehicleTarget,--[[int]] missionType,--[[float]] cruiseSpeed,--[[int]] drivingStyle,--[[float]] targetReached,--[[float]] straightLineDistance,--[[BOOL (bool)]] DriveAgainstTraffic)return native_invoker.unified_void(driver, vehicle, vehicleTarget, missionType, cruiseSpeed, drivingStyle, targetReached, straightLineDistance, DriveAgainstTraffic, 0x659427E0EF36BCDE, "iiiififfb")end, - -- See TASK_VEHICLE_MISSION - ["TASK_VEHICLE_MISSION_PED_TARGET"]=--[[void]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] vehicle,--[[Ped (int)]] pedTarget,--[[int]] missionType,--[[float]] maxSpeed,--[[int]] drivingStyle,--[[float]] minDistance,--[[float]] straightLineDistance,--[[BOOL (bool)]] DriveAgainstTraffic)return native_invoker.unified_void(ped, vehicle, pedTarget, missionType, maxSpeed, drivingStyle, minDistance, straightLineDistance, DriveAgainstTraffic, 0x9454528DF15D657A, "iiiififfb")end, - -- See TASK_VEHICLE_MISSION - ["TASK_VEHICLE_MISSION_COORS_TARGET"]=--[[void]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] vehicle,--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] mission,--[[float]] cruiseSpeed,--[[int]] drivingStyle,--[[float]] targetReached,--[[float]] straightLineDistance,--[[BOOL (bool)]] DriveAgainstTraffic)return native_invoker.unified_void(ped, vehicle, x, y, z, mission, cruiseSpeed, drivingStyle, targetReached, straightLineDistance, DriveAgainstTraffic, 0xF0AF20AA7731F8C3, "iifffififfb")end, - -- Makes a ped follow the targetVehicle with in between. - -- - -- note: minDistance is ignored if drivingstyle is avoiding traffic, but Rushed is fine. - -- - -- Mode: The mode defines the relative position to the targetVehicle. The ped will try to position its vehicle there. - -- -1 = behind - -- 0 = ahead - -- 1 = left - -- 2 = right - -- 3 = back left - -- 4 = back right - -- - -- if the target is closer than noRoadsDistance, the driver will ignore pathing/roads and follow you directly. - -- - -- Driving Styles guide: gtaforums.com/topic/822314-guide-driving-styles/ - ["TASK_VEHICLE_ESCORT"]=--[[void]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] vehicle,--[[Vehicle (int)]] targetVehicle,--[[int]] mode,--[[float]] speed,--[[int]] drivingStyle,--[[float]] minDistance,--[[int]] minHeightAboveTerrain,--[[float]] noRoadsDistance)return native_invoker.unified_void(ped, vehicle, targetVehicle, mode, speed, drivingStyle, minDistance, minHeightAboveTerrain, noRoadsDistance, 0x0FA6E4B75F302400, "iiiififif")end, - -- Makes a ped in a vehicle follow an entity (ped, vehicle, etc.) - -- - -- drivingStyle: http://gtaforums.com/topic/822314-guide-driving-styles/ - ["TASK_VEHICLE_FOLLOW"]=--[[void]] function(--[[Ped (int)]] driver,--[[Vehicle (int)]] vehicle,--[[Entity (int)]] targetEntity,--[[float]] speed,--[[int]] drivingStyle,--[[int]] minDistance)return native_invoker.unified_void(driver, vehicle, targetEntity, speed, drivingStyle, minDistance, 0xFC545A9F0626E3B6, "iiifii")end, - -- chases targetEnt fast and aggressively - -- -- - -- Makes ped (needs to be in vehicle) chase targetEnt. - ["TASK_VEHICLE_CHASE"]=--[[void]] function(--[[Ped (int)]] driver,--[[Entity (int)]] targetEnt)return native_invoker.unified_void(driver, targetEnt, 0x3C08A8E30363B353, "ii")end, - -- pilot, vehicle and altitude are rather self-explanatory. - -- - -- p4: is unused variable in the function. - -- - -- entityToFollow: you can provide a Vehicle entity or a Ped entity, the heli will protect them. - -- - -- 'targetSpeed': The pilot will dip the nose AS MUCH AS POSSIBLE so as to reach this value AS FAST AS POSSIBLE. As such, you'll want to modulate it as opposed to calling it via a hard-wired, constant #. - -- - -- 'radius' isn't just "stop within radius of X of target" like with ground vehicles. In this case, the pilot will fly an entire circle around 'radius' and continue to do so. - -- - -- NOT CONFIRMED: p7 appears to be a FlyingStyle enum. Still investigating it as of this writing, but playing around with values here appears to result in different -behavior- as opposed to offsetting coordinates, altitude, target speed, etc. - -- - -- NOTE: If the pilot finds enemies, it will engage them until it kills them, but will return to protect the ped/vehicle given shortly thereafter. - ["TASK_VEHICLE_HELI_PROTECT"]=--[[void]] function(--[[Ped (int)]] pilot,--[[Vehicle (int)]] vehicle,--[[Entity (int)]] entityToFollow,--[[float]] targetSpeed,--[[int]] drivingFlags,--[[float]] radius,--[[int]] altitude,--[[int]] heliFlags)return native_invoker.unified_void(pilot, vehicle, entityToFollow, targetSpeed, drivingFlags, radius, altitude, heliFlags, 0x1E09C32048FEFD1C, "iiififii")end, - -- Flag 8: Medium-aggressive boxing tactic with a bit of PIT - -- Flag 1: Aggressive ramming of suspect - -- Flag 2: Ram attempts - -- Flag 32: Stay back from suspect, no tactical contact. Convoy-like. - -- Flag 16: Ramming, seems to be slightly less aggressive than 1-2. - ["SET_TASK_VEHICLE_CHASE_BEHAVIOR_FLAG"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] flag,--[[BOOL (bool)]] set)return native_invoker.unified_void(ped, flag, set, 0xCC665AAC360D31E7, "iib")end, - ["SET_TASK_VEHICLE_CHASE_IDEAL_PURSUIT_DISTANCE"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] distance)return native_invoker.unified_void(ped, distance, 0x639B642FACBE4EDD, "if")end, - -- Ped pilot should be in a heli. - -- EntityToFollow can be a vehicle or Ped. - -- - -- x,y,z appear to be how close to the EntityToFollow the heli should be. Scripts use 0.0, 0.0, 80.0. Then the heli tries to position itself 80 units above the EntityToFollow. If you reduce it to -5.0, it tries to go below (if the EntityToFollow is a heli or plane) - -- - -- - -- NOTE: If the pilot finds enemies, it will engage them, then remain there idle, not continuing to chase the Entity given. - ["TASK_HELI_CHASE"]=--[[void]] function(--[[Ped (int)]] pilot,--[[Entity (int)]] entityToFollow,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(pilot, entityToFollow, x, y, z, 0xAC83B1DB38D0ADA0, "iifff")end, - ["TASK_PLANE_CHASE"]=--[[void]] function(--[[Ped (int)]] pilot,--[[Entity (int)]] entityToFollow,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(pilot, entityToFollow, x, y, z, 0x2D2386F273FF7A25, "iifff")end, - ["TASK_PLANE_LAND"]=--[[void]] function(--[[Ped (int)]] pilot,--[[Vehicle (int)]] plane,--[[float]] runwayStartX,--[[float]] runwayStartY,--[[float]] runwayStartZ,--[[float]] runwayEndX,--[[float]] runwayEndY,--[[float]] runwayEndZ)return native_invoker.unified_void(pilot, plane, runwayStartX, runwayStartY, runwayStartZ, runwayEndX, runwayEndY, runwayEndZ, 0xBF19721FA34D32C0, "iiffffff")end, - ["CLEAR_DEFAULT_PRIMARY_TASK"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x6100B3CEFD43452E, "i")end, - -- This native is very useful when switching the player to a ped inside a vehicle that has a task assigned prior to the player switch. - -- It is necessary to clear the ped's tasks AND call this native with the vehicle the player is switching into in order to allow the player to control the vehicle after the player switches. - ["CLEAR_PRIMARY_VEHICLE_TASK"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0xDBBC7A2432524127, "i")end, - ["CLEAR_VEHICLE_CRASH_TASK"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x53DDC75BC3AC0A90, "i")end, - ["TASK_PLANE_GOTO_PRECISE_VTOL"]=--[[void]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] vehicle,--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] flightHeight,--[[int]] minHeightAboveTerrain,--[[BOOL (bool)]] useDesiredOrientation,--[[float]] desiredOrientation,--[[BOOL (bool)]] autopilot)return native_invoker.unified_void(ped, vehicle, x, y, z, flightHeight, minHeightAboveTerrain, useDesiredOrientation, desiredOrientation, autopilot, 0xF7F9DCCA89E7505B, "iifffiibfb")end, - -- Used in am_vehicle_spawn.ysc and am_mp_submarine.ysc. - -- - -- p0 is always 0, p5 is always 1 - -- - -- p1 is the vehicle handle of the submarine. Submarine must have a driver, but the ped handle is not passed to the native. - -- - -- Speed can be set by calling SET_DRIVE_TASK_CRUISE_SPEED after - ["TASK_SUBMARINE_GOTO_AND_STOP"]=--[[void]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] submarine,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] autopilot)return native_invoker.unified_void(ped, submarine, x, y, z, autopilot, 0xC22B40579A498CA4, "iifffb")end, - -- Must have targetVehicle, targetPed, OR destination X/Y/Z set - -- Will follow targeted vehicle/ped, or fly to destination - -- Set whichever is not being used to 0 - -- - -- - -- Mission mode type: - -- - 4, 7: Forces heli to snap to the heading if set, flies to destination or tracks specified entity (mode 4 only works for coordinates, 7 works for coordinates OR ped/vehicle) - -- - 6: Attacks the target ped/vehicle with mounted weapons. If radius is set, will maintain that distance from target. - -- - 8: Makes the heli flee from the ped/vehicle/coordinate - -- - 9: Circles around target ped/vehicle, snaps to angle if set. Behavior flag (last parameter) of 2048 switches from counter-clockwise to clockwise circling. Does not work with coordinate destination. - -- - 10, 11: Follows ped/vehicle target and imitates target heading. Only works with ped/vehicle target, not coord target - -- - 19: Heli lands at specified coordinate, ignores heading (lands facing whatever direction it is facing when the task is started) - -- - 20: Makes the heli land when near target ped. It won't resume chasing. - -- - 21: Emulates a helicopter crash - -- - 23: makes the heli circle erratically around ped - -- - -- - -- Heli will fly at maxSpeed (up to actual maximum speed defined by the model's handling config) - -- You can use SET_DRIVE_TASK_CRUISE_SPEED to modulate the speed based on distance to the target without having to re-invoke the task native. Setting to 8.0 when close to the destination results in a much smoother approach. - -- - -- If minHeight and maxHeight are set, heli will fly between those specified elevations, relative to ground level and any obstructions/buildings below. You can specify -1 for either if you only want to specify one. Usually it is easiest to leave maxHeight at -1, and specify a reasonable minHeight to ensure clearance over any obstacles. Note this MUST be passed as an INT, not a FLOAT. - -- - -- Radius affects how closely the heli will follow tracked ped/vehicle, and when circling (mission type 9) sets the radius (in meters) that it will circle the target from - -- - -- Heading is -1.0 for default behavior, which will point the nose of the helicopter towards the destination. Set a heading and the heli will lock to that direction when near its destination/target, but may still turn towards the destination when flying at higher speed from a further distance. - -- - -- Behavior Flags is a bitwise value that modifies the AI behavior. Not clear what all flags do, but here are some guesses/notes: - -- 1: Forces heading to face E - -- 2: Unknown - -- 4: Tight circles around coordinate destination - -- 8: Unknown - -- 16: Circles around coordinate destination facing towards destination - -- 32: Flys to normally, then lands at coordinate destination and stays on the ground (using mission type 4) - -- 64: Ignores obstacles when flying, will follow at specified minHeight above ground level but will not avoid buildings, vehicles, etc. - -- 128: Unknown - -- 256: Unknown - -- 512: Unknown - -- 1024: Unknown - -- 2048: Reverses direction of circling (mission type 9) to clockwise - -- 4096: Hugs closer to the ground, maintains minHeight from ground generally, but barely clears buildings and dips down more between buildings instead of taking a more efficient/safe route - -- 8192: Unknown - -- - -- Unk3 is a float value, you may see -1082130432 for this value in decompiled native scripts, this is the equivalent to -1.0f. Seems to affect acceleration/aggressiveness, but not sure exactly how it works. Higher value seems to result in lower acceleration/less aggressive flying. Almost always -1.0 in native scripts, occasionally 20.0 or 50.0. Setting to 400.0 seems to work well for making the pilot not overshoot the destination when using coordinate destination. - -- - -- Notes updated by PNWParksFan, May 2021 - -- - ["TASK_HELI_MISSION"]=--[[void]] function(--[[Ped (int)]] pilot,--[[Vehicle (int)]] aircraft,--[[Vehicle (int)]] targetVehicle,--[[Ped (int)]] targetPed,--[[float]] destinationX,--[[float]] destinationY,--[[float]] destinationZ,--[[int]] missionFlag,--[[float]] maxSpeed,--[[float]] radius,--[[float]] targetHeading,--[[int]] maxHeight,--[[int]] minHeight,--[[float]] slowDownDistance,--[[int]] behaviorFlags)return native_invoker.unified_void(pilot, aircraft, targetVehicle, targetPed, destinationX, destinationY, destinationZ, missionFlag, maxSpeed, radius, targetHeading, maxHeight, minHeight, slowDownDistance, behaviorFlags, 0xDAD029E187A2BEB4, "iiiifffifffiifi")end, - ["TASK_HELI_ESCORT_HELI"]=--[[void]] function(--[[Ped (int)]] pilot,--[[Vehicle (int)]] heli1,--[[Vehicle (int)]] heli2,--[[float]] offsetX,--[[float]] offsetY,--[[float]] offsetZ)return native_invoker.unified_void(pilot, heli1, heli2, offsetX, offsetY, offsetZ, 0xB385523325077210, "iiifff")end, - -- EXAMPLE USAGE: - -- - -- Fly around target (Precautiously, keeps high altitude): - -- Function.Call(Hash.TASK_PLANE_MISSION, pilot, selectedAirplane, 0, 0, Target.X, Target.Y, Target.Z, 4, 100f, 0f, 90f, 0, 200f); - -- - -- Fly around target (Dangerously, keeps VERY low altitude): - -- Function.Call(Hash.TASK_PLANE_MISSION, pilot, selectedAirplane, 0, 0, Target.X, Target.Y, Target.Z, 4, 100f, 0f, 90f, 0, -500f); - -- - -- Fly directly into target: - -- Function.Call(Hash.TASK_PLANE_MISSION, pilot, selectedAirplane, 0, 0, Target.X, Target.Y, Target.Z, 4, 100f, 0f, 90f, 0, -5000f); - -- - -- EXPANDED INFORMATION FOR ADVANCED USAGE (custom pilot) - -- - -- 'physicsSpeed': (THIS IS NOT YOUR ORDINARY SPEED PARAMETER: READ!!) - -- Think of this -first- as a radius value, not a true speed value. The ACTUAL effective speed of the plane will be that of the maximum speed permissible to successfully fly in a -circle- with a radius of 'physicsSpeed'. This also means that the plane must complete a circle before it can begin its "bombing run", its straight line pass towards the target. p9 appears to influence the angle at which a "bombing run" begins, although I can't confirm yet. - -- - -- VERY IMPORTANT: A "bombing run" will only occur if a plane can successfully determine a possible navigable route (the slower the value of 'physicsSpeed', the more precise the pilot can be due to less influence of physics on flightpath). Otherwise, the pilot will continue to patrol around Destination (be it a dynamic Entity position vector or a fixed world coordinate vector.) - -- - -- 0 = Plane's physics are almost entirely frozen, plane appears to "orbit" around precise destination point - -- 1-299 = Blend of "frozen, small radius" vs. normal vs. "accelerated, hyperfast, large radius" - -- 300+ = Vehicle behaves entirely like a normal gameplay plane. - -- - -- 'patrolBlend' (The lower the value, the more the Destination is treated as a "fly AT" rather than a "fly AROUND point".) - -- - -- Scenario: Destination is an Entity on ground level, wide open field - -- -5000 = Pilot kamikazes directly into Entity - -- -1000 = Pilot flies extremely low -around- Entity, very prone to crashing - -- -200 = Pilot flies lower than average around Entity. - -- 0 = Pilot flies around Entity, normal altitude - -- 200 = Pilot flies an extra eighty units or so higher than 0 while flying around Destination (this doesn't seem to correlate directly into distance units.) - -- - -- -- Valid mission types found in the exe: -- - -- - -- 0 = None - -- 1 = Unk - -- 2 = CTaskVehicleRam - -- 3 = CTaskVehicleBlock - -- 4 = CTaskVehicleGoToPlane - -- 5 = CTaskVehicleStop - -- 6 = CTaskVehicleAttack - -- 7 = CTaskVehicleFollow - -- 8 = CTaskVehicleFleeAirborne - -- 9= CTaskVehicleCircle - -- 10 = CTaskVehicleEscort - -- 15 = CTaskVehicleFollowRecording - -- 16 = CTaskVehiclePoliceBehaviour - -- 17 = CTaskVehicleCrash - ["TASK_PLANE_MISSION"]=--[[void]] function(--[[Ped (int)]] pilot,--[[Vehicle (int)]] aircraft,--[[Vehicle (int)]] targetVehicle,--[[Ped (int)]] targetPed,--[[float]] destinationX,--[[float]] destinationY,--[[float]] destinationZ,--[[int]] missionFlag,--[[float]] angularDrag,--[[float]] targetReached,--[[float]] targetHeading,--[[float]] maxZ,--[[float]] minZ,--[[BOOL (bool)]] precise)return native_invoker.unified_void(pilot, aircraft, targetVehicle, targetPed, destinationX, destinationY, destinationZ, missionFlag, angularDrag, targetReached, targetHeading, maxZ, minZ, precise, 0x23703CD154E83B88, "iiiifffifffffb")end, - ["TASK_PLANE_TAXI"]=--[[void]] function(--[[Ped (int)]] pilot,--[[Vehicle (int)]] aircraft,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] cruiseSpeed,--[[float]] targetReached)return native_invoker.unified_void(pilot, aircraft, x, y, z, cruiseSpeed, targetReached, 0x92C360B5F15D2302, "iifffff")end, - -- You need to call PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS after TASK_BOAT_MISSION in order for the task to execute. - -- - -- Working example - -- float vehicleMaxSpeed = VEHICLE::GET_VEHICLE_ESTIMATED_MAX_SPEED(ENTITY::GET_ENTITY_MODEL(pedVehicle)); - -- TASK::TASK_BOAT_MISSION(pedDriver, pedVehicle, 0, 0, waypointCoord.x, waypointCoord.y, waypointCoord.z, 4, vehicleMaxSpeed, 786469, -1.0, 7); - -- PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedDriver, 1); - -- - -- P8 appears to be driving style flag - see gtaforums.com/topic/822314-guide-driving-styles/ for documentation - ["TASK_BOAT_MISSION"]=--[[void]] function(--[[Ped (int)]] pedDriver,--[[Vehicle (int)]] vehicle,--[[Vehicle (int)]] targetVehicle,--[[Ped (int)]] targetPed,--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] mission,--[[float]] maxSpeed,--[[int]] drivingStyle,--[[float]] targetReached,--[[Any (int)]] boatFlags)return native_invoker.unified_void(pedDriver, vehicle, targetVehicle, targetPed, x, y, z, mission, maxSpeed, drivingStyle, targetReached, boatFlags, 0x15C86013127CE63F, "iiiifffififi")end, - -- Example: - -- - -- TASK::TASK_DRIVE_BY(l_467[1/*22*/], PLAYER::PLAYER_PED_ID(), 0, 0.0, 0.0, 2.0, 300.0, 100, 0, ${firing_pattern_burst_fire_driveby}); - -- - -- - -- - -- - -- Needs working example. Doesn't seem to do anything. - -- - -- I marked p2 as targetVehicle as all these shooting related tasks seem to have that in common. - -- I marked p6 as distanceToShoot as if you think of GTA's Logic with the native SET_VEHICLE_SHOOT natives, it won't shoot till it gets within a certain distance of the target. - -- I marked p7 as pedAccuracy as it seems it's mostly 100 (Completely Accurate), 75, 90, etc. Although this could be the ammo count within the gun, but I highly doubt it. I will change this comment once I find out if it's ammo count or not. - ["TASK_DRIVE_BY"]=--[[void]] function(--[[Ped (int)]] driverPed,--[[Ped (int)]] targetPed,--[[Vehicle (int)]] targetVehicle,--[[float]] targetX,--[[float]] targetY,--[[float]] targetZ,--[[float]] distanceToShoot,--[[int]] pedAccuracy,--[[BOOL (bool)]] pushUnderneathDrivingTaskIfDriving,--[[Hash (int)]] firingPattern)return native_invoker.unified_void(driverPed, targetPed, targetVehicle, targetX, targetY, targetZ, distanceToShoot, pedAccuracy, pushUnderneathDrivingTaskIfDriving, firingPattern, 0x2F8AF0E82773A171, "iiiffffibi")end, - -- For p1 & p2 (Ped, Vehicle). I could be wrong, as the only time this native is called in scripts is once and both are 0, but I assume this native will work like SET_MOUNTED_WEAPON_TARGET in which has the same exact amount of parameters and the 1st and last 3 parameters are right and the same for both natives. - ["SET_DRIVEBY_TASK_TARGET"]=--[[void]] function(--[[Ped (int)]] shootingPed,--[[Ped (int)]] targetPed,--[[Vehicle (int)]] targetVehicle,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(shootingPed, targetPed, targetVehicle, x, y, z, 0xE5B302114D8162EE, "iiifff")end, - ["CLEAR_DRIVEBY_TASK_UNDERNEATH_DRIVING_TASK"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xC35B5CDB2824CF69, "i")end, - ["IS_DRIVEBY_TASK_UNDERNEATH_DRIVING_TASK"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x8785E6E40C7A8818, "i")end, - -- Forces the ped to use the mounted weapon. - -- Returns false if task is not possible. - ["CONTROL_MOUNTED_WEAPON"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xDCFE42068FE0135A, "i")end, - -- Note: Look in decompiled scripts and the times that p1 and p2 aren't 0. They are filled with vars. If you look through out that script what other natives those vars are used in, you can tell p1 is a ped and p2 is a vehicle. Which most likely means if you want the mounted weapon to target a ped set targetVehicle to 0 or vice-versa. - ["SET_MOUNTED_WEAPON_TARGET"]=--[[void]] function(--[[Ped (int)]] shootingPed,--[[Ped (int)]] targetPed,--[[Vehicle (int)]] targetVehicle,--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] taskMode,--[[BOOL (bool)]] ignoreTargetVehDeadCheck)return native_invoker.unified_void(shootingPed, targetPed, targetVehicle, x, y, z, taskMode, ignoreTargetVehDeadCheck, 0xCCD892192C6D2BB9, "iiifffib")end, - ["IS_MOUNTED_WEAPON_TASK_UNDERNEATH_DRIVING_TASK"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xA320EF046186FA3B, "i")end, - -- Actually has 3 params, not 2. - -- - -- p0: Ped - -- p1: int (or bool?) - -- p2: int - ["TASK_USE_MOBILE_PHONE"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] usePhone,--[[int]] desiredPhoneMode)return native_invoker.unified_void(ped, usePhone, desiredPhoneMode, 0xBD2A8EC3AF4DE7DB, "ibi")end, - ["TASK_USE_MOBILE_PHONE_TIMED"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] duration)return native_invoker.unified_void(ped, duration, 0x5EE02954A14C69DB, "ii")end, - -- p2 tend to be 16, 17 or 1 - -- p3 to p7 tend to be 0.0 - ["TASK_CHAT_TO_PED"]=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] target,--[[int]] flags,--[[float]] goToLocationX,--[[float]] goToLocationY,--[[float]] goToLocationZ,--[[float]] headingDegs,--[[float]] idleTime)return native_invoker.unified_void(ped, target, flags, goToLocationX, goToLocationY, goToLocationZ, headingDegs, idleTime, 0x8C338E0263E4FD19, "iiifffff")end, - -- Seat Numbers - -- ------------------------------- - -- Driver = -1 - -- Any = -2 - -- Left-Rear = 1 - -- Right-Front = 0 - -- Right-Rear = 2 - -- Extra seats = 3-14(This may differ from vehicle type e.g. Firetruck Rear Stand, Ambulance Rear) - ["TASK_WARP_PED_INTO_VEHICLE"]=--[[void]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] vehicle,--[[int]] seat)return native_invoker.unified_void(ped, vehicle, seat, 0x9A7D091411C5F684, "iii")end, - -- //this part of the code is to determine at which entity the player is aiming, for example if you want to create a mod where you give orders to peds - -- Entity aimedentity; - -- Player player = PLAYER::PLAYER_ID(); - -- PLAYER::_GET_AIMED_ENTITY(player, &aimedentity); - -- - -- //bg is an array of peds - -- TASK::TASK_SHOOT_AT_ENTITY(bg[i], aimedentity, 5000, MISC::GET_HASH_KEY("FIRING_PATTERN_FULL_AUTO")); - -- - -- in practical usage, getting the entity the player is aiming at and then task the peds to shoot at the entity, at a button press event would be better. - -- - -- Firing Pattern Hash Information: https://pastebin.com/Px036isB - ["TASK_SHOOT_AT_ENTITY"]=--[[void]] function(--[[Entity (int)]] entity,--[[Entity (int)]] target,--[[int]] duration,--[[Hash (int)]] firingPattern)return native_invoker.unified_void(entity, target, duration, firingPattern, 0x08DA95E8298AE772, "iiii")end, - -- Climbs or vaults the nearest thing. - -- usePlayerLaunchForce is unused. - ["TASK_CLIMB"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] usePlayerLaunchForce)return native_invoker.unified_void(ped, usePlayerLaunchForce, 0x89D9FCC2435112F1, "ib")end, - ["TASK_CLIMB_LADDER"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] fast)return native_invoker.unified_void(ped, fast, 0xB6C987F9285A3814, "ib")end, - -- Attaches a ped to a rope and allows player control to rappel down a wall. Disables all collisions while on the rope. - -- p10: Usually 1 in the scripts, clipSet: Clipset to use for the task, minZ: Minimum Z that the player can descend to, ropeHandle: Rope to attach this task to created with ADD_ROPE - ["TASK_RAPPEL_DOWN_WALL_USING_CLIPSET_OVERRIDE"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[float]] minZ,--[[int]] ropeHandle,--[[string]] clipSet,--[[Any (int)]] p10,--[[Any (int)]] p11)return native_invoker.unified_void(ped, x1, y1, z1, x2, y2, z2, minZ, ropeHandle, clipSet, p10, p11, 0xEAF66ACDDC794793, "ifffffffisii")end, - ["GET_TASK_RAPPEL_DOWN_WALL_STATE"]=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x9D252648778160DF, "i")end, - -- Immediately stops the pedestrian from whatever it's doing. They stop fighting, animations, etc. they forget what they were doing. - ["CLEAR_PED_TASKS_IMMEDIATELY"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xAAA34F8A7CB32098, "i")end, - ["TASK_PERFORM_SEQUENCE_FROM_PROGRESS"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] taskIndex,--[[int]] progress1,--[[int]] progress2)return native_invoker.unified_void(ped, taskIndex, progress1, progress2, 0x89221B16730234F0, "iiii")end, - -- This native does absolutely nothing, just a nullsub - -- - -- R* Comment: - -- SET_NEXT_DESIRED_MOVE_STATE - Function is deprecated - do not use anymore - ["SET_NEXT_DESIRED_MOVE_STATE"]=--[[void]] function(--[[float]] nextMoveState)return native_invoker.unified_void(nextMoveState, 0xF1B9F16E89E2C93A, "f")end, - ["SET_PED_DESIRED_MOVE_BLEND_RATIO"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] newMoveBlendRatio)return native_invoker.unified_void(ped, newMoveBlendRatio, 0x1E982AC8716912C5, "if")end, - ["GET_PED_DESIRED_MOVE_BLEND_RATIO"]=--[[float]] function(--[[Ped (int)]] ped)return native_invoker.unified_float(ped, 0x8517D4A6CA8513ED, "i")end, - -- eg - -- - -- TASK::TASK_GOTO_ENTITY_AIMING(v_2, PLAYER::PLAYER_PED_ID(), 5.0, 25.0); - -- - -- ped = Ped you want to perform this task. - -- target = the Entity they should aim at. - -- distanceToStopAt = distance from the target, where the ped should stop to aim. - -- StartAimingDist = distance where the ped should start to aim. - ["TASK_GOTO_ENTITY_AIMING"]=--[[void]] function(--[[Ped (int)]] ped,--[[Entity (int)]] target,--[[float]] distanceToStopAt,--[[float]] StartAimingDist)return native_invoker.unified_void(ped, target, distanceToStopAt, StartAimingDist, 0xA9DA48FAB8A76C12, "iiff")end, - -- p1 is always GET_HASH_KEY("empty") in scripts, for the rare times this is used - ["TASK_SET_DECISION_MAKER"]=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] decisionMakerId)return native_invoker.unified_void(ped, decisionMakerId, 0xEB8517DDA73720DA, "ii")end, - ["TASK_SET_SPHERE_DEFENSIVE_AREA"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius)return native_invoker.unified_void(ped, x, y, z, radius, 0x933C06518B52A9A4, "iffff")end, - ["TASK_CLEAR_DEFENSIVE_AREA"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x95A6C46A31D1917D, "i")end, - ["TASK_PED_SLIDE_TO_COORD"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] heading,--[[float]] speed)return native_invoker.unified_void(ped, x, y, z, heading, speed, 0xD04FE6765D990A06, "ifffff")end, - ["TASK_PED_SLIDE_TO_COORD_HDG_RATE"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] heading,--[[float]] speed,--[[float]] headingChangeRate)return native_invoker.unified_void(ped, x, y, z, heading, speed, headingChangeRate, 0x5A4A6A6D3DC64F52, "iffffff")end, - ["ADD_COVER_POINT"]=--[[ScrHandle (int)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] direction,--[[int]] usage,--[[int]] height,--[[int]] arc,--[[BOOL (bool)]] isPriority)return native_invoker.unified_int(x, y, z, direction, usage, height, arc, isPriority, 0xD5C12A75C7B9497F, "ffffiiib")end, - ["REMOVE_COVER_POINT"]=--[[void]] function(--[[ScrHandle (int)]] coverpoint)return native_invoker.unified_void(coverpoint, 0xAE287C923D891715, "i")end, - -- Checks if there is a cover point at position - ["DOES_SCRIPTED_COVER_POINT_EXIST_AT_COORDS"]=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_bool(x, y, z, 0xA98B8E3C088E5A31, "fff")end, - ["GET_SCRIPTED_COVER_POINT_COORDS"]=--[[Vector3 (vector3)]] function(--[[ScrHandle (int)]] coverpoint)return native_invoker.unified_vector3(coverpoint, 0x594A1028FC2A3E85, "i")end, - ["ADD_SCRIPTED_COVER_AREA"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius)return native_invoker.unified_void(x, y, z, radius, 0x28B7B9BFDAF274AA, "ffff")end, - -- Makes the specified ped attack the target ped. - -- p2 should be 0 - -- p3 should be 16 - ["TASK_COMBAT_PED"]=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] targetPed,--[[int]] combatFlags,--[[int]] threatResponseFlags)return native_invoker.unified_void(ped, targetPed, combatFlags, threatResponseFlags, 0xF166E48407BAC484, "iiii")end, - ["TASK_COMBAT_PED_TIMED"]=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] target,--[[int]] time,--[[int]] flags)return native_invoker.unified_void(ped, target, time, flags, 0x944F30DCB7096BDE, "iiii")end, - ["TASK_SEEK_COVER_FROM_POS"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] duration,--[[BOOL (bool)]] allowPeekingAndFiring)return native_invoker.unified_void(ped, x, y, z, duration, allowPeekingAndFiring, 0x75AC2B60386D89F2, "ifffib")end, - ["TASK_SEEK_COVER_FROM_PED"]=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] target,--[[int]] duration,--[[BOOL (bool)]] allowPeekingAndFiring)return native_invoker.unified_void(ped, target, duration, allowPeekingAndFiring, 0x84D32B3BEC531324, "iiib")end, - -- p5 is always -1 - ["TASK_SEEK_COVER_TO_COVER_POINT"]=--[[void]] function(--[[Ped (int)]] ped,--[[ScrHandle (int)]] coverpoint,--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] time,--[[BOOL (bool)]] allowPeekingAndFiring)return native_invoker.unified_void(ped, coverpoint, x, y, z, time, allowPeekingAndFiring, 0xD43D95C7A869447F, "iifffib")end, - -- p8 causes the ped to take the shortest route to the cover position. It may have something to do with navmesh or pathfinding mechanics. - -- - -- from michael2: - -- TASK::TASK_SEEK_COVER_TO_COORDS(ped, 967.5164794921875, -2121.603515625, 30.479299545288086, 978.94677734375, -2125.84130859375, 29.4752, -1, 1); - -- - -- - -- appears to be shorter variation - -- from michael3: - -- TASK::TASK_SEEK_COVER_TO_COORDS(ped, -2231.011474609375, 263.6326599121094, 173.60195922851562, -1, 0); - ["TASK_SEEK_COVER_TO_COORDS"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[int]] timeout,--[[BOOL (bool)]] shortRoute)return native_invoker.unified_void(ped, x1, y1, z1, x2, y2, z2, timeout, shortRoute, 0x39246A6958EF072C, "iffffffib")end, - ["TASK_PUT_PED_DIRECTLY_INTO_COVER"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] time,--[[BOOL (bool)]] allowPeekingAndFiring,--[[float]] blendInDuration,--[[BOOL (bool)]] forceInitialFacingDirection,--[[BOOL (bool)]] forceFaceLeft,--[[int]] identifier,--[[BOOL (bool)]] doEntry)return native_invoker.unified_void(ped, x, y, z, time, allowPeekingAndFiring, blendInDuration, forceInitialFacingDirection, forceFaceLeft, identifier, doEntry, 0x4172393E6BE1FECE, "ifffibfbbib")end, - ["TASK_WARP_PED_DIRECTLY_INTO_COVER"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] time,--[[BOOL (bool)]] allowPeekingAndFiring,--[[BOOL (bool)]] forceInitialFacingDirection,--[[BOOL (bool)]] forceFaceLeft,--[[int]] identifier)return native_invoker.unified_void(ped, time, allowPeekingAndFiring, forceInitialFacingDirection, forceFaceLeft, identifier, 0x6E01E9E8D89F8276, "iibbbi")end, - -- p1 is 1, 2, or 3 in scripts - ["TASK_EXIT_COVER"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] exitType,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(ped, exitType, x, y, z, 0x79B258E397854D29, "iifff")end, - -- from armenian3.c4 - -- - -- TASK::TASK_PUT_PED_DIRECTLY_INTO_MELEE(PlayerPed, armenianPed, 0.0, -1.0, 0.0, 0); - -- - ["TASK_PUT_PED_DIRECTLY_INTO_MELEE"]=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] meleeTarget,--[[float]] blendInDuration,--[[float]] timeInMelee,--[[float]] strafePhaseSync,--[[int]] aiCombatFlags)return native_invoker.unified_void(ped, meleeTarget, blendInDuration, timeInMelee, strafePhaseSync, aiCombatFlags, 0x1C6CD14A876FFE39, "iifffi")end, - -- used in sequence task - -- - -- both parameters seems to be always 0 - ["TASK_TOGGLE_DUCK"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] toggleType)return native_invoker.unified_void(ped, toggleType, 0xAC96609B9995EDF8, "ii")end, - -- From re_prisonvanbreak: - -- - -- TASK::TASK_GUARD_CURRENT_POSITION(l_DD, 35.0, 35.0, 1); - ["TASK_GUARD_CURRENT_POSITION"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] maxPatrolProximity,--[[float]] defensiveAreaRadius,--[[BOOL (bool)]] setDefensiveArea)return native_invoker.unified_void(ped, maxPatrolProximity, defensiveAreaRadius, setDefensiveArea, 0x4A58A47A72E3FCB4, "iffb")end, - ["TASK_GUARD_ASSIGNED_DEFENSIVE_AREA"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] heading,--[[float]] maxPatrolProximity,--[[int]] timer)return native_invoker.unified_void(ped, x, y, z, heading, maxPatrolProximity, timer, 0xD2A207EEBDF9889B, "ifffffi")end, - ["TASK_GUARD_SPHERE_DEFENSIVE_AREA"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] defendPositionX,--[[float]] defendPositionY,--[[float]] defendPositionZ,--[[float]] heading,--[[float]] maxPatrolProximity,--[[int]] time,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] defensiveAreaRadius)return native_invoker.unified_void(ped, defendPositionX, defendPositionY, defendPositionZ, heading, maxPatrolProximity, time, x, y, z, defensiveAreaRadius, 0xC946FE14BE0EB5E2, "ifffffiffff")end, - -- scenarioName example: "WORLD_HUMAN_GUARD_STAND" - ["TASK_STAND_GUARD"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] heading,--[[string]] scenarioName)return native_invoker.unified_void(ped, x, y, z, heading, scenarioName, 0xAE032F8BBA959E90, "iffffs")end, - ["SET_DRIVE_TASK_CRUISE_SPEED"]=--[[void]] function(--[[Ped (int)]] driver,--[[float]] cruiseSpeed)return native_invoker.unified_void(driver, cruiseSpeed, 0x5C9B84BD7D31D908, "if")end, - ["SET_DRIVE_TASK_MAX_CRUISE_SPEED"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] speed)return native_invoker.unified_void(ped, speed, 0x404A5AA9B9F0B746, "if")end, - -- This native is used to set the driving style for specific ped. - -- - -- Driving styles id seems to be: - -- 786468 - -- 262144 - -- 786469 - -- - -- http://gtaforums.com/topic/822314-guide-driving-styles/ - ["SET_DRIVE_TASK_DRIVING_STYLE"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] drivingStyle)return native_invoker.unified_void(ped, drivingStyle, 0xDACE1BE37D88AF67, "ii")end, - ["ADD_COVER_BLOCKING_AREA"]=--[[void]] function(--[[float]] startX,--[[float]] startY,--[[float]] startZ,--[[float]] endX,--[[float]] endY,--[[float]] endZ,--[[BOOL (bool)]] blockObjects,--[[BOOL (bool)]] blockVehicles,--[[BOOL (bool)]] blockMap,--[[BOOL (bool)]] blockPlayer)return native_invoker.unified_void(startX, startY, startZ, endX, endY, endZ, blockObjects, blockVehicles, blockMap, blockPlayer, 0x45C597097DD7CB81, "ffffffbbbb")end, - ["REMOVE_ALL_COVER_BLOCKING_AREAS"]=--[[void]] function()return native_invoker.unified_void(0xDB6708C0B46F56D8, "")end, - ["REMOVE_COVER_BLOCKING_AREAS_AT_POSITION"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(x, y, z, 0xFA83CA6776038F64, "fff")end, - ["REMOVE_SPECIFIC_COVER_BLOCKING_AREAS"]=--[[void]] function(--[[float]] startX,--[[float]] startY,--[[float]] startZ,--[[float]] endX,--[[float]] endY,--[[float]] endZ,--[[BOOL (bool)]] blockObjects,--[[BOOL (bool)]] blockVehicles,--[[BOOL (bool)]] blockMap,--[[BOOL (bool)]] blockPlayer)return native_invoker.unified_void(startX, startY, startZ, endX, endY, endZ, blockObjects, blockVehicles, blockMap, blockPlayer, 0x1F351CF1C6475734, "ffffffbbbb")end, - -- Plays a scenario on a Ped at their current location. - -- - -- unkDelay - Usually 0 or -1, doesn't seem to have any effect. Might be a delay between sequences. - -- playEnterAnim - Plays the "Enter" anim if true, otherwise plays the "Exit" anim. Scenarios that don't have any "Enter" anims won't play if this is set to true. - -- - -- ---- - -- - -- From "am_hold_up.ysc.c4" at line 339: - -- - -- TASK::TASK_START_SCENARIO_IN_PLACE(NETWORK::NET_TO_PED(l_8D._f4), sub_adf(), 0, 1); - -- - -- I'm unsure of what the last two parameters are, however sub_adf() randomly returns 1 of 3 scenarios, those being: - -- WORLD_HUMAN_SMOKING - -- WORLD_HUMAN_HANG_OUT_STREET - -- WORLD_HUMAN_STAND_MOBILE - -- - -- This makes sense, as these are what I commonly see when going by a liquor store. - -- ------------------------- - -- List of scenarioNames: https://pastebin.com/6mrYTdQv - -- (^ Thank you so fucking much for this) - -- - -- Also these: - -- WORLD_FISH_FLEE - -- DRIVE - -- WORLD_HUMAN_HIKER - -- WORLD_VEHICLE_ATTRACTOR - -- WORLD_VEHICLE_BICYCLE_MOUNTAIN - -- WORLD_VEHICLE_BIKE_OFF_ROAD_RACE - -- WORLD_VEHICLE_BIKER - -- WORLD_VEHICLE_CONSTRUCTION_PASSENGERS - -- WORLD_VEHICLE_CONSTRUCTION_SOLO - -- WORLD_VEHICLE_DRIVE_PASSENGERS - -- WORLD_VEHICLE_DRIVE_SOLO - -- WORLD_VEHICLE_EMPTY - -- WORLD_VEHICLE_PARK_PARALLEL - -- WORLD_VEHICLE_PARK_PERPENDICULAR_NOSE_IN - -- WORLD_VEHICLE_POLICE_BIKE - -- WORLD_VEHICLE_POLICE_CAR - -- WORLD_VEHICLE_POLICE_NEXT_TO_CAR - -- WORLD_VEHICLE_SALTON_DIRT_BIKE - -- WORLD_VEHICLE_TRUCK_LOGS - -- - -- Full list of ped scenarios by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenariosCompact.json - ["TASK_START_SCENARIO_IN_PLACE"]=--[[void]] function(--[[Ped (int)]] ped,--[[string]] scenarioName,--[[int]] unkDelay,--[[BOOL (bool)]] playEnterAnim)return native_invoker.unified_void(ped, scenarioName, unkDelay, playEnterAnim, 0x142A02425FF02BD9, "isib")end, - -- Full list of ped scenarios by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenariosCompact.json - -- - -- Also a few more listed at TASK::TASK_START_SCENARIO_IN_PLACE just above. - -- --------------- - -- The first parameter in every scenario has always been a Ped of some sort. The second like TASK_START_SCENARIO_IN_PLACE is the name of the scenario. - -- - -- The next 4 parameters were harder to decipher. After viewing "hairdo_shop_mp.ysc.c4", and being confused from seeing the case in other scripts, they passed the first three of the arguments as one array from a function, and it looked like it was obviously x, y, and z. - -- - -- I haven't seen the sixth parameter go to or over 360, making me believe that it is rotation, but I really can't confirm anything. - -- - -- I have no idea what the last 3 parameters are, but I'll try to find out. - -- - -- -going on the last 3 parameters, they appear to always be "0, 0, 1" - -- - -- p6 -1 also used in scrips - -- - -- p7 used for sitting scenarios - -- - -- p8 teleports ped to position - ["TASK_START_SCENARIO_AT_POSITION"]=--[[void]] function(--[[Ped (int)]] ped,--[[string]] scenarioName,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] heading,--[[int]] duration,--[[BOOL (bool)]] sittingScenario,--[[BOOL (bool)]] teleport)return native_invoker.unified_void(ped, scenarioName, x, y, z, heading, duration, sittingScenario, teleport, 0xFA4EFC79F69D4F07, "isffffibb")end, - -- Updated variables - -- - -- An alternative to TASK::TASK_USE_NEAREST_SCENARIO_TO_COORD_WARP. Makes the ped walk to the scenario instead. - ["TASK_USE_NEAREST_SCENARIO_TO_COORD"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] distance,--[[int]] duration)return native_invoker.unified_void(ped, x, y, z, distance, duration, 0x277F471BA9DB000B, "iffffi")end, - ["TASK_USE_NEAREST_SCENARIO_TO_COORD_WARP"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[int]] timeToLeave)return native_invoker.unified_void(ped, x, y, z, radius, timeToLeave, 0x58E2E0F23F6B76C3, "iffffi")end, - -- p5 is always 0 in scripts - ["TASK_USE_NEAREST_SCENARIO_CHAIN_TO_COORD"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] maxRange,--[[int]] timeToLeave)return native_invoker.unified_void(ped, x, y, z, maxRange, timeToLeave, 0x9FDA1B3D7E7028B3, "iffffi")end, - -- p5 is always -1 or 0 in scripts - ["TASK_USE_NEAREST_SCENARIO_CHAIN_TO_COORD_WARP"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[int]] timeToLeave)return native_invoker.unified_void(ped, x, y, z, radius, timeToLeave, 0x97A28E63F0BA5631, "iffffi")end, - ["DOES_SCENARIO_EXIST_IN_AREA"]=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[BOOL (bool)]] mustBeFree)return native_invoker.unified_bool(x, y, z, radius, mustBeFree, 0x5A59271FFADD33C1, "ffffb")end, - ["DOES_SCENARIO_OF_TYPE_EXIST_IN_AREA"]=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[string]] scenarioName,--[[float]] radius,--[[BOOL (bool)]] mustBeFree)return native_invoker.unified_bool(x, y, z, scenarioName, radius, mustBeFree, 0x0A9D0C2A3BBC86C1, "fffsfb")end, - ["IS_SCENARIO_OCCUPIED"]=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] maxRange,--[[BOOL (bool)]] onlyUsersActuallyAtScenario)return native_invoker.unified_bool(x, y, z, maxRange, onlyUsersActuallyAtScenario, 0x788756D73AC2E07C, "ffffb")end, - ["PED_HAS_USE_SCENARIO_TASK"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x295E3CCEC879CCD7, "i")end, - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - ["PLAY_ANIM_ON_RUNNING_SCENARIO"]=--[[void]] function(--[[Ped (int)]] ped,--[[string]] animDict,--[[string]] animName)return native_invoker.unified_void(ped, animDict, animName, 0x748040460F8DF5DC, "iss")end, - -- Full list of scenario groups used in scripts by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenarioGroupNames.json - -- Occurrences in the b617d scripts: - -- - -- "ARMY_GUARD", - -- "ARMY_HELI", - -- "Cinema_Downtown", - -- "Cinema_Morningwood", - -- "Cinema_Textile", - -- "City_Banks", - -- "Countryside_Banks", - -- "DEALERSHIP", - -- "GRAPESEED_PLANES", - -- "KORTZ_SECURITY", - -- "LOST_BIKERS", - -- "LSA_Planes", - -- "LSA_Planes", - -- "MP_POLICE", - -- "Observatory_Bikers", - -- "POLICE_POUND1", - -- "POLICE_POUND2", - -- "POLICE_POUND3", - -- "POLICE_POUND4", - -- "POLICE_POUND5" - -- "QUARRY", - -- "SANDY_PLANES", - -- "SCRAP_SECURITY", - -- "SEW_MACHINE", - -- "SOLOMON_GATE", - -- "Triathlon_1_Start", - -- "Triathlon_2_Start", - -- "Triathlon_3_Start" - -- - -- Sometimes used with IS_SCENARIO_GROUP_ENABLED: - -- if (TASK::DOES_SCENARIO_GROUP_EXIST("Observatory_Bikers") && (!TASK::IS_SCENARIO_GROUP_ENABLED("Observatory_Bikers"))) { - -- else if (TASK::IS_SCENARIO_GROUP_ENABLED("BLIMP")) { - -- - ["DOES_SCENARIO_GROUP_EXIST"]=--[[BOOL (bool)]] function(--[[string]] scenarioGroup)return native_invoker.unified_bool(scenarioGroup, 0xF9034C136C9E00D3, "s")end, - -- Full list of scenario groups used in scripts by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenarioGroupNames.json - -- Occurrences in the b617d scripts: - -- - -- "ARMY_GUARD", - -- "ARMY_HELI", - -- "BLIMP", - -- "Cinema_Downtown", - -- "Cinema_Morningwood", - -- "Cinema_Textile", - -- "City_Banks", - -- "Countryside_Banks", - -- "DEALERSHIP", - -- "KORTZ_SECURITY", - -- "LSA_Planes", - -- "MP_POLICE", - -- "Observatory_Bikers", - -- "POLICE_POUND1", - -- "POLICE_POUND2", - -- "POLICE_POUND3", - -- "POLICE_POUND4", - -- "POLICE_POUND5", - -- "Rampage1", - -- "SANDY_PLANES", - -- "SCRAP_SECURITY", - -- "SEW_MACHINE", - -- "SOLOMON_GATE" - -- - -- Sometimes used with DOES_SCENARIO_GROUP_EXIST: - -- if (TASK::DOES_SCENARIO_GROUP_EXIST("Observatory_Bikers") && (!TASK::IS_SCENARIO_GROUP_ENABLED("Observatory_Bikers"))) { - -- else if (TASK::IS_SCENARIO_GROUP_ENABLED("BLIMP")) { - ["IS_SCENARIO_GROUP_ENABLED"]=--[[BOOL (bool)]] function(--[[string]] scenarioGroup)return native_invoker.unified_bool(scenarioGroup, 0x367A09DED4E05B99, "s")end, - -- Full list of scenario groups used in scripts by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenarioGroupNames.json - -- Occurrences in the b617d scripts: https://pastebin.com/Tvg2PRHU - ["SET_SCENARIO_GROUP_ENABLED"]=--[[void]] function(--[[string]] scenarioGroup,--[[BOOL (bool)]] enabled)return native_invoker.unified_void(scenarioGroup, enabled, 0x02C8E5B49848664E, "sb")end, - ["RESET_SCENARIO_GROUPS_ENABLED"]=--[[void]] function()return native_invoker.unified_void(0xDD902D0349AFAD3A, "")end, - -- Full list of scenario groups used in scripts by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenarioGroupNames.json - -- Groups found in the scripts used with this native: - -- - -- "AMMUNATION", - -- "QUARRY", - -- "Triathlon_1", - -- "Triathlon_2", - -- "Triathlon_3" - ["SET_EXCLUSIVE_SCENARIO_GROUP"]=--[[void]] function(--[[string]] scenarioGroup)return native_invoker.unified_void(scenarioGroup, 0x535E97E1F7FC0C6A, "s")end, - ["RESET_EXCLUSIVE_SCENARIO_GROUP"]=--[[void]] function()return native_invoker.unified_void(0x4202BBCB8684563D, "")end, - -- Full list of scenario types used in scripts by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenariosCompact.json - -- Occurrences in the b617d scripts: - -- "PROP_HUMAN_SEAT_CHAIR", - -- "WORLD_HUMAN_DRINKING", - -- "WORLD_HUMAN_HANG_OUT_STREET", - -- "WORLD_HUMAN_SMOKING", - -- "WORLD_MOUNTAIN_LION_WANDER", - -- "WORLD_HUMAN_DRINKING" - -- - -- Sometimes used together with MISC::IS_STRING_NULL_OR_EMPTY in the scripts. - -- - -- scenarioType could be the same as scenarioName, used in for example TASK::TASK_START_SCENARIO_AT_POSITION. - -- - ["IS_SCENARIO_TYPE_ENABLED"]=--[[BOOL (bool)]] function(--[[string]] scenarioType)return native_invoker.unified_bool(scenarioType, 0x3A815DB3EA088722, "s")end, - -- Full list of scenario types used in scripts by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenariosCompact.json - -- seems to enable/disable specific scenario-types from happening in the game world. - -- - -- Here are some scenario types from the scripts: - -- "WORLD_MOUNTAIN_LION_REST" - -- "WORLD_MOUNTAIN_LION_WANDER" - -- "DRIVE" - -- "WORLD_VEHICLE_POLICE_BIKE" - -- "WORLD_VEHICLE_POLICE_CAR" - -- "WORLD_VEHICLE_POLICE_NEXT_TO_CAR" - -- "WORLD_VEHICLE_DRIVE_SOLO" - -- "WORLD_VEHICLE_BIKER" - -- "WORLD_VEHICLE_DRIVE_PASSENGERS" - -- "WORLD_VEHICLE_SALTON_DIRT_BIKE" - -- "WORLD_VEHICLE_BICYCLE_MOUNTAIN" - -- "PROP_HUMAN_SEAT_CHAIR" - -- "WORLD_VEHICLE_ATTRACTOR" - -- "WORLD_HUMAN_LEANING" - -- "WORLD_HUMAN_HANG_OUT_STREET" - -- "WORLD_HUMAN_DRINKING" - -- "WORLD_HUMAN_SMOKING" - -- "WORLD_HUMAN_GUARD_STAND" - -- "WORLD_HUMAN_CLIPBOARD" - -- "WORLD_HUMAN_HIKER" - -- "WORLD_VEHICLE_EMPTY" - -- "WORLD_VEHICLE_BIKE_OFF_ROAD_RACE" - -- "WORLD_HUMAN_PAPARAZZI" - -- "WORLD_VEHICLE_PARK_PERPENDICULAR_NOSE_IN" - -- "WORLD_VEHICLE_PARK_PARALLEL" - -- "WORLD_VEHICLE_CONSTRUCTION_SOLO" - -- "WORLD_VEHICLE_CONSTRUCTION_PASSENGERS" - -- "WORLD_VEHICLE_TRUCK_LOGS" - -- - -- scenarioType could be the same as scenarioName, used in for example TASK::TASK_START_SCENARIO_AT_POSITION. - ["SET_SCENARIO_TYPE_ENABLED"]=--[[void]] function(--[[string]] scenarioType,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(scenarioType, toggle, 0xEB47EC4E34FB7EE1, "sb")end, - ["RESET_SCENARIO_TYPES_ENABLED"]=--[[void]] function()return native_invoker.unified_void(0x0D40EE2A7F2B2D6D, "")end, - ["IS_PED_ACTIVE_IN_SCENARIO"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xAA135F9482C82CC3, "i")end, - -- Used only once (am_mp_property_int) - -- - -- ped was PLAYER_PED_ID() - -- - -- Related to CTaskAmbientClips. - ["IS_PED_PLAYING_BASE_CLIP_IN_SCENARIO"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x621C6E4729388E41, "i")end, - -- Appears only in fm_mission_controller and used only 3 times. - -- - -- ped was always PLAYER_PED_ID() - -- p1 was always true - -- p2 was always true - ["SET_PED_CAN_PLAY_AMBIENT_IDLES"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] blockIdleClips,--[[BOOL (bool)]] removeIdleClipIfPlaying)return native_invoker.unified_void(ped, blockIdleClips, removeIdleClipIfPlaying, 0x8FD89A6240813FD0, "ibb")end, - -- Despite its name, it only attacks ONE hated target. The one closest to the specified position. - ["TASK_COMBAT_HATED_TARGETS_IN_AREA"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[int]] combatFlags)return native_invoker.unified_void(ped, x, y, z, radius, combatFlags, 0x4CF5F55DAC3280A0, "iffffi")end, - -- Despite its name, it only attacks ONE hated target. The one closest hated target. - -- - -- p2 seems to be always 0 - ["TASK_COMBAT_HATED_TARGETS_AROUND_PED"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] radius,--[[int]] combatFlags)return native_invoker.unified_void(ped, radius, combatFlags, 0x7BF835BB9E2698C8, "ifi")end, - ["TASK_COMBAT_HATED_TARGETS_AROUND_PED_TIMED"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] radius,--[[int]] time,--[[int]] combatFlags)return native_invoker.unified_void(ped, radius, time, combatFlags, 0x2BBA30B854534A0C, "ifii")end, - -- In every case of this native, I've only seen the first parameter passed as 0, although I believe it's a Ped after seeing tasks around it using 0. That's because it's used in a Sequence Task. - -- - -- The last 3 parameters are definitely coordinates after seeing them passed in other scripts, and even being used straight from the player's coordinates. - -- --- - -- It seems that - in the decompiled scripts - this native was used on a ped who was in a vehicle to throw a projectile out the window at the player. This is something any ped will naturally do if they have a throwable and they are doing driveby-combat (although not very accurately). - -- It is possible, however, that this is how SWAT throws smoke grenades at the player when in cover. - -- ---------------------------------------------------- - -- The first comment is right it definately is the ped as if you look in script finale_heist2b.c line 59628 in Xbox Scripts atleast you will see task_throw_projectile and the first param is Local_559[2 <14>] if you look above it a little bit line 59622 give_weapon_to_ped uses the same exact param Local_559[2 <14>] and we all know the first param of that native is ped. So it guaranteed has to be ped. 0 just may mean to use your ped by default for some reason. - ["TASK_THROW_PROJECTILE"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] ignoreCollisionEntityIndex,--[[BOOL (bool)]] createInvincibleProjectile)return native_invoker.unified_void(ped, x, y, z, ignoreCollisionEntityIndex, createInvincibleProjectile, 0x7285951DBF6B5A51, "ifffib")end, - ["TASK_SWAP_WEAPON"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] drawWeapon)return native_invoker.unified_void(ped, drawWeapon, 0xA21C51255B205245, "ib")end, - -- The 2nd param (drawWeapon) is not implemented. - -- - -- ----------------------------------------------------------------------- - -- - -- The only occurrence I found in a R* script ("assassin_construction.ysc.c4"): - -- - -- if (((v_3 < v_4) && (TASK::GET_SCRIPT_TASK_STATUS(PLAYER::PLAYER_PED_ID(), 0x6a67a5cc) != 1)) && (v_5 > v_3)) { - -- TASK::TASK_RELOAD_WEAPON(PLAYER::PLAYER_PED_ID(), 1); - -- } - ["TASK_RELOAD_WEAPON"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] drawWeapon)return native_invoker.unified_void(ped, drawWeapon, 0x62D2916F56B9CD2D, "ib")end, - ["IS_PED_GETTING_UP"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x2A74E1D5F2F00EEC, "i")end, - -- EX: Function.Call(Ped1, Ped2, Time, 0); - -- - -- The last parameter is always 0 for some reason I do not know. The first parameter is the pedestrian who will writhe to the pedestrian in the other parameter. The third paremeter is how long until the Writhe task ends. When the task ends, the ped will die. If set to -1, he will not die automatically, and the task will continue until something causes it to end. This can be being touched by an entity, being shot, explosion, going into ragdoll, having task cleared. Anything that ends the current task will kill the ped at this point. - -- - -- - -- - -- Third parameter does not appear to be time. The last parameter is not implemented (It's not used, regardless of value). - ["TASK_WRITHE"]=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] target,--[[int]] minFireLoops,--[[int]] startState,--[[BOOL (bool)]] forceShootOnGround,--[[int]] shootFromGroundTimer)return native_invoker.unified_void(ped, target, minFireLoops, startState, forceShootOnGround, shootFromGroundTimer, 0xCDDC2B77CE54AC6E, "iiiibi")end, - -- This native checks if a ped is on the ground, in pain from a (gunshot) wound. - -- Returns `true` if the ped is in writhe, `false` otherwise. - ["IS_PED_IN_WRITHE"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xDEB6D52126E7D640, "i")end, - -- patrolRoutes found in the b617d scripts: - -- "miss_Ass0", - -- "miss_Ass1", - -- "miss_Ass2", - -- "miss_Ass3", - -- "miss_Ass4", - -- "miss_Ass5", - -- "miss_Ass6", - -- "MISS_PATROL_6", - -- "MISS_PATROL_7", - -- "MISS_PATROL_8", - -- "MISS_PATROL_9", - -- "miss_Tower_01", - -- "miss_Tower_02", - -- "miss_Tower_03", - -- "miss_Tower_04", - -- "miss_Tower_05", - -- "miss_Tower_06", - -- "miss_Tower_07", - -- "miss_Tower_08", - -- "miss_Tower_10" - ["OPEN_PATROL_ROUTE"]=--[[void]] function(--[[string]] patrolRoute)return native_invoker.unified_void(patrolRoute, 0xA36BFB5EE89F3D82, "s")end, - ["CLOSE_PATROL_ROUTE"]=--[[void]] function()return native_invoker.unified_void(0xB043ECA801B8CBC1, "")end, - -- Example: - -- TASK::ADD_PATROL_ROUTE_NODE(2, "WORLD_HUMAN_GUARD_STAND", -193.4915, -2378.864990234375, 10.9719, -193.4915, -2378.864990234375, 10.9719, 3000); - -- - -- p0 is between 0 and 4 in the scripts. - -- - -- p1 is "WORLD_HUMAN_GUARD_STAND" or "StandGuard". - -- - -- p2, p3 and p4 is only one parameter sometimes in the scripts. Most likely a Vector3 hence p2, p3 and p4 are coordinates. - -- Examples: - -- TASK::ADD_PATROL_ROUTE_NODE(1, "WORLD_HUMAN_GUARD_STAND", l_739[7/*3*/], 0.0, 0.0, 0.0, 0); - -- - -- TASK::ADD_PATROL_ROUTE_NODE(1, "WORLD_HUMAN_GUARD_STAND", l_B0[17/*44*/]._f3, l_B0[17/*44*/]._f3, 2000); - -- - -- p5, p6 and p7 are for example set to: 1599.0406494140625, 2713.392578125, 44.4309. - -- - -- p8 is an int, often random set to for example: MISC::GET_RANDOM_INT_IN_RANGE(5000, 10000). - ["ADD_PATROL_ROUTE_NODE"]=--[[void]] function(--[[int]] nodeId,--[[string]] nodeType,--[[float]] posX,--[[float]] posY,--[[float]] posZ,--[[float]] headingX,--[[float]] headingY,--[[float]] headingZ,--[[int]] duration)return native_invoker.unified_void(nodeId, nodeType, posX, posY, posZ, headingX, headingY, headingZ, duration, 0x8EDF950167586B7C, "isffffffi")end, - ["ADD_PATROL_ROUTE_LINK"]=--[[void]] function(--[[int]] nodeId1,--[[int]] nodeId2)return native_invoker.unified_void(nodeId1, nodeId2, 0x23083260DEC3A551, "ii")end, - ["CREATE_PATROL_ROUTE"]=--[[void]] function()return native_invoker.unified_void(0xAF8A443CCC8018DC, "")end, - -- From the b617d scripts: - -- - -- TASK::DELETE_PATROL_ROUTE("miss_merc0"); - -- TASK::DELETE_PATROL_ROUTE("miss_merc1"); - -- TASK::DELETE_PATROL_ROUTE("miss_merc2"); - -- TASK::DELETE_PATROL_ROUTE("miss_dock"); - ["DELETE_PATROL_ROUTE"]=--[[void]] function(--[[string]] patrolRoute)return native_invoker.unified_void(patrolRoute, 0x7767DD9D65E91319, "s")end, - ["GET_PATROL_TASK_INFO"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[int* (pointer)]] timeLeftAtNode,--[[int* (pointer)]] nodeId)return native_invoker.unified_bool(ped, timeLeftAtNode, nodeId, 0x52F734CEBE20DFBA, "ipp")end, - -- After looking at some scripts the second parameter seems to be an id of some kind. Here are some I found from some R* scripts: - -- - -- "miss_Tower_01" (this went from 01 - 10) - -- "miss_Ass0" (0, 4, 6, 3) - -- "MISS_PATROL_8" - -- - -- I think they're patrol routes, but I'm not sure. And I believe the 3rd parameter is a BOOL, but I can't confirm other than only seeing 0 and 1 being passed. - -- - -- - -- As far as I can see the patrol routes names such as "miss_Ass0" have been defined earlier in the scripts. This leads me to believe we can defined our own new patrol routes by following the same approach. - -- From the scripts - -- - -- TASK::OPEN_PATROL_ROUTE("miss_Ass0"); - -- TASK::ADD_PATROL_ROUTE_NODE(0, "WORLD_HUMAN_GUARD_STAND", l_738[0/*3*/], -139.4076690673828, -993.4732055664062, 26.2754, MISC::GET_RANDOM_INT_IN_RANGE(5000, 10000)); - -- TASK::ADD_PATROL_ROUTE_NODE(1, "WORLD_HUMAN_GUARD_STAND", l_738[1/*3*/], -116.1391830444336, -987.4984130859375, 26.38541030883789, MISC::GET_RANDOM_INT_IN_RANGE(5000, 10000)); - -- TASK::ADD_PATROL_ROUTE_NODE(2, "WORLD_HUMAN_GUARD_STAND", l_738[2/*3*/], -128.46847534179688, -979.0340576171875, 26.2754, MISC::GET_RANDOM_INT_IN_RANGE(5000, 10000)); - -- TASK::ADD_PATROL_ROUTE_LINK(0, 1); - -- TASK::ADD_PATROL_ROUTE_LINK(1, 2); - -- TASK::ADD_PATROL_ROUTE_LINK(2, 0); - -- TASK::CLOSE_PATROL_ROUTE(); - -- TASK::CREATE_PATROL_ROUTE(); - -- - -- - ["TASK_PATROL"]=--[[void]] function(--[[Ped (int)]] ped,--[[string]] patrolRouteName,--[[int]] alertState,--[[BOOL (bool)]] canChatToPeds,--[[BOOL (bool)]] useHeadLookAt)return native_invoker.unified_void(ped, patrolRouteName, alertState, canChatToPeds, useHeadLookAt, 0xBDA5DF49D080FE4E, "isibb")end, - -- Makes the ped run to take cover - ["TASK_STAY_IN_COVER"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xE5DA8615A6180789, "i")end, - -- x, y, z: offset in world coords from some entity. - ["ADD_VEHICLE_SUBTASK_ATTACK_COORD"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(ped, x, y, z, 0x5CF0D8F9BBA0DD75, "ifff")end, - ["ADD_VEHICLE_SUBTASK_ATTACK_PED"]=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] target)return native_invoker.unified_void(ped, target, 0x85F462BADC7DA47F, "ii")end, - ["TASK_VEHICLE_SHOOT_AT_PED"]=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] target,--[[float]] fireTolerance)return native_invoker.unified_void(ped, target, fireTolerance, 0x10AB107B887214D8, "iif")end, - ["TASK_VEHICLE_AIM_AT_PED"]=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] target)return native_invoker.unified_void(ped, target, 0xE41885592B08B097, "ii")end, - ["TASK_VEHICLE_SHOOT_AT_COORD"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] fireTolerance)return native_invoker.unified_void(ped, x, y, z, fireTolerance, 0x5190796ED39C9B6D, "iffff")end, - ["TASK_VEHICLE_AIM_AT_COORD"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(ped, x, y, z, 0x447C1E9EF844BC0F, "ifff")end, - -- Differs from TASK_VEHICLE_DRIVE_TO_COORDS in that it will pick the shortest possible road route without taking one-way streets and other "road laws" into consideration. - -- - -- WARNING: - -- A behaviorFlag value of 0 will result in a clunky, stupid driver! - -- - -- Recommended settings: - -- speed = 30.0f, - -- behaviorFlag = 156, - -- stoppingRange = 5.0f; - -- - -- If you simply want to have your driver move to a fixed location, call it only once, or, when necessary in the event of interruption. - -- - -- If using this to continually follow a Ped who is on foot: You will need to run this in a tick loop. Call it in with the Ped's updated coordinates every 20 ticks or so and you will have one hell of a smart, fast-reacting NPC driver -- provided he doesn't get stuck. If your update frequency is too fast, the Ped may not have enough time to figure his way out of being stuck, and thus, remain stuck. One way around this would be to implement an "anti-stuck" mechanism, which allows the driver to realize he's stuck, temporarily pause the tick, unstuck, then resume the tick. - -- - -- EDIT: This is being discussed in more detail at http://gtaforums.com/topic/818504-any-idea-on-how-to-make-peds-clever-and-insanely-fast-c/ - ["TASK_VEHICLE_GOTO_NAVMESH"]=--[[void]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] vehicle,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] speed,--[[int]] behaviorFlag,--[[float]] stoppingRange)return native_invoker.unified_void(ped, vehicle, x, y, z, speed, behaviorFlag, stoppingRange, 0x195AEEB13CEFE2EE, "iiffffif")end, - -- movement_speed: mostly 2f, but also 1/1.2f, etc. - -- p8: always false - -- p9: 2f - -- p10: 0.5f - -- p11: true - -- p12: 0 / 512 / 513, etc. - -- p13: 0 - -- firing_pattern: ${firing_pattern_full_auto}, 0xC6EE6B4C - ["TASK_GO_TO_COORD_WHILE_AIMING_AT_COORD"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] aimAtX,--[[float]] aimAtY,--[[float]] aimAtZ,--[[float]] moveBlendRatio,--[[BOOL (bool)]] shoot,--[[float]] targetRadius,--[[float]] slowDistance,--[[BOOL (bool)]] useNavMesh,--[[int]] navFlags,--[[BOOL (bool)]] instantBlendToAim,--[[Hash (int)]] firingPattern)return native_invoker.unified_void(ped, x, y, z, aimAtX, aimAtY, aimAtZ, moveBlendRatio, shoot, targetRadius, slowDistance, useNavMesh, navFlags, instantBlendToAim, firingPattern, 0x11315AB3385B8AC0, "ifffffffbffbibi")end, - ["TASK_GO_TO_COORD_WHILE_AIMING_AT_ENTITY"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[Entity (int)]] aimAtID,--[[float]] moveBlendRatio,--[[BOOL (bool)]] shoot,--[[float]] targetRadius,--[[float]] slowDistance,--[[BOOL (bool)]] useNavMesh,--[[int]] navFlags,--[[BOOL (bool)]] instantBlendToAim,--[[Hash (int)]] firingPattern,--[[int]] time)return native_invoker.unified_void(ped, x, y, z, aimAtID, moveBlendRatio, shoot, targetRadius, slowDistance, useNavMesh, navFlags, instantBlendToAim, firingPattern, time, 0xB2A16444EAD9AE47, "ifffifbffbibii")end, - -- The ped will walk or run towards goToLocation, aiming towards goToLocation or focusLocation (depending on the aimingFlag) and shooting if shootAtEnemies = true to any enemy in his path. - -- - -- If the ped is closer than noRoadsDistance, the ped will ignore pathing/navmesh and go towards goToLocation directly. This could cause the ped to get stuck behind tall walls if the goToLocation is on the other side. To avoid this, use 0.0f and the ped will always use pathing/navmesh to reach his destination. - -- - -- If the speed is set to 0.0f, the ped will just stand there while aiming, if set to 1.0f he will walk while aiming, 2.0f will run while aiming. - -- - -- The ped will stop aiming when he is closer than distanceToStopAt to goToLocation. - -- - -- I still can't figure out what unkTrue is used for. I don't notice any difference if I set it to false but in the decompiled scripts is always true. - -- - -- I think that unkFlag, like the driving styles, could be a flag that "work as a list of 32 bits converted to a decimal integer. Each bit acts as a flag, and enables or disables a function". What leads me to this conclusion is the fact that in the decompiled scripts, unkFlag takes values like: 0, 1, 5 (101 in binary) and 4097 (4096 + 1 or 1000000000001 in binary). For now, I don't know what behavior enable or disable this possible flag so I leave it at 0. - -- - -- Note: After some testing, using unkFlag = 16 (0x10) enables the use of sidewalks while moving towards goToLocation. - -- - -- The aimingFlag takes 2 values: 0 to aim at the focusLocation, 1 to aim at where the ped is heading (goToLocation). - -- - -- Example: - -- - -- enum AimFlag - -- { - -- AimAtFocusLocation, - -- AimAtGoToLocation - -- }; - -- - -- Vector3 goToLocation1 = { 996.2867f, 0, -2143.044f, 0, 28.4763f, 0 }; // remember the padding. - -- - -- Vector3 goToLocation2 = { 990.2867f, 0, -2140.044f, 0, 28.4763f, 0 }; // remember the padding. - -- - -- Vector3 focusLocation = { 994.3478f, 0, -2136.118f, 0, 29.2463f, 0 }; // the coord z should be a little higher, around +1.0f to avoid aiming at the ground - -- - -- // 1st example - -- TASK::TASK_GO_TO_COORD_AND_AIM_AT_HATED_ENTITIES_NEAR_COORD(pedHandle, goToLocation1.x, goToLocation1.y, goToLocation1.z, focusLocation.x, focusLocation.y, focusLocation.z, 2.0f /*run*/, true /*shoot*/, 3.0f /*stop at*/, 0.0f /*noRoadsDistance*/, true /*always true*/, 0 /*possible flag*/, AimFlag::AimAtGoToLocation, -957453492 /*FullAuto pattern*/); - -- - -- // 2nd example - -- TASK::TASK_GO_TO_COORD_AND_AIM_AT_HATED_ENTITIES_NEAR_COORD(pedHandle, goToLocation2.x, goToLocation2.y, goToLocation2.z, focusLocation.x, focusLocation.y, focusLocation.z, 1.0f /*walk*/, false /*don't shoot*/, 3.0f /*stop at*/, 0.0f /*noRoadsDistance*/, true /*always true*/, 0 /*possible flag*/, AimFlag::AimAtFocusLocation, -957453492 /*FullAuto pattern*/); - -- - -- - -- 1st example: The ped (pedhandle) will run towards goToLocation1. While running and aiming towards goToLocation1, the ped will shoot on sight to any enemy in his path, using "FullAuto" firing pattern. The ped will stop once he is closer than distanceToStopAt to goToLocation1. - -- - -- 2nd example: The ped will walk towards goToLocation2. This time, while walking towards goToLocation2 and aiming at focusLocation, the ped will point his weapon on sight to any enemy in his path without shooting. The ped will stop once he is closer than distanceToStopAt to goToLocation2. - ["TASK_GO_TO_COORD_AND_AIM_AT_HATED_ENTITIES_NEAR_COORD"]=--[[void]] function(--[[Ped (int)]] pedHandle,--[[float]] goToLocationX,--[[float]] goToLocationY,--[[float]] goToLocationZ,--[[float]] focusLocationX,--[[float]] focusLocationY,--[[float]] focusLocationZ,--[[float]] speed,--[[BOOL (bool)]] shootAtEnemies,--[[float]] distanceToStopAt,--[[float]] noRoadsDistance,--[[BOOL (bool)]] useNavMesh,--[[int]] navFlags,--[[int]] taskFlags,--[[Hash (int)]] firingPattern)return native_invoker.unified_void(pedHandle, goToLocationX, goToLocationY, goToLocationZ, focusLocationX, focusLocationY, focusLocationZ, speed, shootAtEnemies, distanceToStopAt, noRoadsDistance, useNavMesh, navFlags, taskFlags, firingPattern, 0xA55547801EB331FC, "ifffffffbffbiii")end, - ["TASK_GO_TO_ENTITY_WHILE_AIMING_AT_COORD"]=--[[void]] function(--[[Ped (int)]] ped,--[[Entity (int)]] entity,--[[float]] aimX,--[[float]] aimY,--[[float]] aimZ,--[[float]] moveBlendRatio,--[[BOOL (bool)]] shoot,--[[float]] targetRadius,--[[float]] slowDistance,--[[BOOL (bool)]] useNavMesh,--[[BOOL (bool)]] instantBlendToAim,--[[Hash (int)]] firingPattern)return native_invoker.unified_void(ped, entity, aimX, aimY, aimZ, moveBlendRatio, shoot, targetRadius, slowDistance, useNavMesh, instantBlendToAim, firingPattern, 0x04701832B739DCE5, "iiffffbffbbi")end, - -- shootatEntity: - -- If true, peds will shoot at Entity till it is dead. - -- If false, peds will just walk till they reach the entity and will cease shooting. - ["TASK_GO_TO_ENTITY_WHILE_AIMING_AT_ENTITY"]=--[[void]] function(--[[Ped (int)]] ped,--[[Entity (int)]] entityToWalkTo,--[[Entity (int)]] entityToAimAt,--[[float]] speed,--[[BOOL (bool)]] shootatEntity,--[[float]] targetRadius,--[[float]] slowDistance,--[[BOOL (bool)]] useNavMesh,--[[BOOL (bool)]] instantBlendToAim,--[[Hash (int)]] firingPattern)return native_invoker.unified_void(ped, entityToWalkTo, entityToAimAt, speed, shootatEntity, targetRadius, slowDistance, useNavMesh, instantBlendToAim, firingPattern, 0x97465886D35210E9, "iiifbffbbi")end, - -- Makes the ped ragdoll like when falling from a great height - ["SET_HIGH_FALL_TASK"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] minTime,--[[int]] maxTime,--[[int]] entryType)return native_invoker.unified_void(ped, minTime, maxTime, entryType, 0x8C825BDC7741D37C, "iiii")end, - -- Full list of waypoint recordings by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/waypointRecordings.json - -- For a full list of the points, see here: goo.gl/wIH0vn - -- - -- Max number of loaded recordings is 32. - ["REQUEST_WAYPOINT_RECORDING"]=--[[void]] function(--[[string]] name)return native_invoker.unified_void(name, 0x9EEFB62EB27B5792, "s")end, - -- Full list of waypoint recordings by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/waypointRecordings.json - ["GET_IS_WAYPOINT_RECORDING_LOADED"]=--[[BOOL (bool)]] function(--[[string]] name)return native_invoker.unified_bool(name, 0xCB4E8BE8A0063C5D, "s")end, - -- Full list of waypoint recordings by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/waypointRecordings.json - ["REMOVE_WAYPOINT_RECORDING"]=--[[void]] function(--[[string]] name)return native_invoker.unified_void(name, 0xFF1B8B4AA1C25DC8, "s")end, - -- Full list of waypoint recordings by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/waypointRecordings.json - -- For a full list of the points, see here: goo.gl/wIH0vn - ["WAYPOINT_RECORDING_GET_NUM_POINTS"]=--[[BOOL (bool)]] function(--[[string]] name,--[[int* (pointer)]] points)return native_invoker.unified_bool(name, points, 0x5343532C01A07234, "sp")end, - -- Full list of waypoint recordings by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/waypointRecordings.json - -- For a full list of the points, see here: goo.gl/wIH0vn - ["WAYPOINT_RECORDING_GET_COORD"]=--[[BOOL (bool)]] function(--[[string]] name,--[[int]] point,--[[Vector3* (pointer)]] coord)return native_invoker.unified_bool(name, point, coord, 0x2FB897405C90B361, "sip")end, - -- Full list of waypoint recordings by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/waypointRecordings.json - ["WAYPOINT_RECORDING_GET_SPEED_AT_POINT"]=--[[float]] function(--[[string]] name,--[[int]] point)return native_invoker.unified_float(name, point, 0x005622AEBC33ACA9, "si")end, - -- Full list of waypoint recordings by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/waypointRecordings.json - -- For a full list of the points, see here: goo.gl/wIH0vn - ["WAYPOINT_RECORDING_GET_CLOSEST_WAYPOINT"]=--[[BOOL (bool)]] function(--[[string]] name,--[[float]] x,--[[float]] y,--[[float]] z,--[[int* (pointer)]] point)return native_invoker.unified_bool(name, x, y, z, point, 0xB629A298081F876F, "sfffp")end, - ["TASK_FOLLOW_WAYPOINT_RECORDING"]=--[[void]] function(--[[Ped (int)]] ped,--[[string]] name,--[[int]] p2,--[[int]] p3,--[[int]] p4)return native_invoker.unified_void(ped, name, p2, p3, p4, 0x0759591819534F7B, "isiii")end, - ["IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_PED"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xE03B3F2D3DC59B64, "i")end, - ["GET_PED_WAYPOINT_PROGRESS"]=--[[int]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x2720AAA75001E094, "i")end, - ["GET_PED_WAYPOINT_DISTANCE"]=--[[float]] function(--[[Any (int)]] p0)return native_invoker.unified_float(p0, 0xE6A877C64CAF1BC5, "i")end, - ["SET_PED_WAYPOINT_ROUTE_OFFSET"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_bool(ped, x, y, z, 0xED98E10B0AFCE4B4, "ifff")end, - ["GET_WAYPOINT_DISTANCE_ALONG_ROUTE"]=--[[float]] function(--[[string]] name,--[[int]] point)return native_invoker.unified_float(name, point, 0xA5B769058763E497, "si")end, - ["WAYPOINT_PLAYBACK_GET_IS_PAUSED"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x701375A7D43F01CB, "i")end, - ["WAYPOINT_PLAYBACK_PAUSE"]=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x0F342546AA06FED5, "ibb")end, - ["WAYPOINT_PLAYBACK_RESUME"]=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3)return native_invoker.unified_void(p0, p1, p2, p3, 0x244F70C84C547D2D, "ibii")end, - ["WAYPOINT_PLAYBACK_OVERRIDE_SPEED"]=--[[void]] function(--[[Any (int)]] p0,--[[float]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x7D7D2B47FA788E85, "ifb")end, - ["WAYPOINT_PLAYBACK_USE_DEFAULT_SPEED"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x6599D834B12D0800, "i")end, - ["USE_WAYPOINT_RECORDING_AS_ASSISTED_MOVEMENT_ROUTE"]=--[[void]] function(--[[string]] name,--[[BOOL (bool)]] p1,--[[float]] p2,--[[float]] p3)return native_invoker.unified_void(name, p1, p2, p3, 0x5A353B8E6B1095B5, "sbff")end, - ["WAYPOINT_PLAYBACK_START_AIMING_AT_PED"]=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] target,--[[BOOL (bool)]] p2)return native_invoker.unified_void(ped, target, p2, 0x20E330937C399D29, "iib")end, - ["WAYPOINT_PLAYBACK_START_AIMING_AT_COORD"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] p4)return native_invoker.unified_void(ped, x, y, z, p4, 0x8968400D900ED8B3, "ifffb")end, - ["WAYPOINT_PLAYBACK_START_SHOOTING_AT_PED"]=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] ped2,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(ped, ped2, p2, p3, 0xE70BA7B90F8390DC, "iibb")end, - ["WAYPOINT_PLAYBACK_START_SHOOTING_AT_COORD"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] p4,--[[Hash (int)]] firingPattern)return native_invoker.unified_void(ped, x, y, z, p4, firingPattern, 0x057A25CFCC9DB671, "ifffbi")end, - ["WAYPOINT_PLAYBACK_STOP_AIMING_OR_SHOOTING"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x47EFA040EBB8E2EA, "i")end, - -- Routes: "1_FIBStairs", "2_FIBStairs", "3_FIBStairs", "4_FIBStairs", "5_FIBStairs", "5_TowardsFire", "6a_FIBStairs", "7_FIBStairs", "8_FIBStairs", "Aprtmnt_1", "AssAfterLift", "ATM_1", "coroner2", "coroner_stairs", "f5_jimmy1", "fame1", "family5b", "family5c", "Family5d", "family5d", "FIB_Glass1", "FIB_Glass2", "FIB_Glass3", "finaBroute1A", "finalb1st", "finalB1sta", "finalbround", "finalbroute2", "Hairdresser1", "jan_foyet_ft_door", "Jo_3", "Lemar1", "Lemar2", "mansion_1", "Mansion_1", "pols_1", "pols_2", "pols_3", "pols_4", "pols_5", "pols_6", "pols_7", "pols_8", "Pro_S1", "Pro_S1a", "Pro_S2", "Towards_case", "trev_steps", "tunrs1", "tunrs2", "tunrs3", "Wave01457s" - ["ASSISTED_MOVEMENT_REQUEST_ROUTE"]=--[[void]] function(--[[string]] route)return native_invoker.unified_void(route, 0x817268968605947A, "s")end, - ["ASSISTED_MOVEMENT_REMOVE_ROUTE"]=--[[void]] function(--[[string]] route)return native_invoker.unified_void(route, 0x3548536485DD792B, "s")end, - ["ASSISTED_MOVEMENT_IS_ROUTE_LOADED"]=--[[BOOL (bool)]] function(--[[string]] route)return native_invoker.unified_bool(route, 0x60F9A4393A21F741, "s")end, - ["ASSISTED_MOVEMENT_SET_ROUTE_PROPERTIES"]=--[[void]] function(--[[string]] route,--[[int]] props)return native_invoker.unified_void(route, props, 0xD5002D78B7162E1B, "si")end, - ["ASSISTED_MOVEMENT_OVERRIDE_LOAD_DISTANCE_THIS_FRAME"]=--[[void]] function(--[[float]] dist)return native_invoker.unified_void(dist, 0x13945951E16EF912, "f")end, - -- - -- - -- p2 = Waypoint recording string (found in update\update.rpf\x64\levels\gta5\waypointrec.rpf - -- p3 = 786468 - -- p4 = 0 - -- p5 = 16 - -- p6 = -1 (angle?) - -- p7/8/9 = usually v3.zero - -- p10 = bool (repeat?) - -- p11 = 1073741824 - -- - -- Full list of waypoint recordings by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/waypointRecordings.json - ["TASK_VEHICLE_FOLLOW_WAYPOINT_RECORDING"]=--[[void]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] vehicle,--[[string]] WPRecording,--[[int]] p3,--[[int]] p4,--[[int]] p5,--[[int]] p6,--[[float]] p7,--[[BOOL (bool)]] p8,--[[float]] p9)return native_invoker.unified_void(ped, vehicle, WPRecording, p3, p4, p5, p6, p7, p8, p9, 0x3123FAA6DB1CF7ED, "iisiiiifbf")end, - ["IS_WAYPOINT_PLAYBACK_GOING_ON_FOR_VEHICLE"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xF5134943EA29868C, "i")end, - ["GET_VEHICLE_WAYPOINT_PROGRESS"]=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x9824CFF8FC66E159, "i")end, - ["GET_VEHICLE_WAYPOINT_TARGET_POINT"]=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x416B62AC8B9E5BBD, "i")end, - ["VEHICLE_WAYPOINT_PLAYBACK_PAUSE"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x8A4E6AC373666BC5, "i")end, - ["VEHICLE_WAYPOINT_PLAYBACK_RESUME"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0xDC04FCAA7839D492, "i")end, - ["VEHICLE_WAYPOINT_PLAYBACK_USE_DEFAULT_SPEED"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x5CEB25A7D2848963, "i")end, - ["VEHICLE_WAYPOINT_PLAYBACK_OVERRIDE_SPEED"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] speed)return native_invoker.unified_void(vehicle, speed, 0x121F0593E0A431D7, "if")end, - -- I cant believe I have to define this, this is one of the best natives. - -- - -- It makes the ped ignore basically all shocking events around it. Occasionally the ped may comment or gesture, but other than that they just continue their daily activities. This includes shooting and wounding the ped. And - most importantly - they do not flee. - -- - -- Since it is a task, every time the native is called the ped will stop for a moment. - ["TASK_SET_BLOCKING_OF_NON_TEMPORARY_EVENTS"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x90D2156198831D69, "ib")end, - -- p2 always false - -- - -- [30/03/2017] ins1de : - -- - -- See FORCE_PED_MOTION_STATE - ["TASK_FORCE_MOTION_STATE"]=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] state,--[[BOOL (bool)]] forceRestart)return native_invoker.unified_void(ped, state, forceRestart, 0x4F056E1AFFEF17AB, "iib")end, - -- Example: - -- TASK::TASK_MOVE_NETWORK_BY_NAME(PLAYER::PLAYER_PED_ID(), "arm_wrestling_sweep_paired_a_rev3", 0.0f, true, "mini@arm_wrestling", 0); - ["TASK_MOVE_NETWORK_BY_NAME"]=--[[void]] function(--[[Ped (int)]] ped,--[[string]] task,--[[float]] multiplier,--[[BOOL (bool)]] allowOverrideCloneUpdate,--[[string]] animDict,--[[int]] flags)return native_invoker.unified_void(ped, task, multiplier, allowOverrideCloneUpdate, animDict, flags, 0x2D537BA194896636, "isfbsi")end, - -- Example: - -- TASK::TASK_MOVE_NETWORK_ADVANCED_BY_NAME(PLAYER::PLAYER_PED_ID(), "minigame_tattoo_michael_parts", 324.13f, 181.29f, 102.6f, 0.0f, 0.0f, 22.32f, 2, 0, false, 0, 0); - ["TASK_MOVE_NETWORK_ADVANCED_BY_NAME"]=--[[void]] function(--[[Ped (int)]] ped,--[[string]] network,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ,--[[int]] rotOrder,--[[float]] blendDuration,--[[BOOL (bool)]] allowOverrideCloneUpdate,--[[string]] animDict,--[[int]] flags)return native_invoker.unified_void(ped, network, x, y, z, rotX, rotY, rotZ, rotOrder, blendDuration, allowOverrideCloneUpdate, animDict, flags, 0xD5B35BEA41919ACB, "isffffffifbsi")end, - -- Used only once in the scripts (am_mp_nightclub) - ["TASK_MOVE_NETWORK_BY_NAME_WITH_INIT_PARAMS"]=--[[void]] function(--[[Ped (int)]] ped,--[[string]] network,--[[int* (pointer)]] initialParameters,--[[float]] blendDuration,--[[BOOL (bool)]] allowOverrideCloneUpdate,--[[string]] animDict,--[[int]] flags)return native_invoker.unified_void(ped, network, initialParameters, blendDuration, allowOverrideCloneUpdate, animDict, flags, 0x3D45B0B355C5E0C9, "ispfbsi")end, - ["TASK_MOVE_NETWORK_ADVANCED_BY_NAME_WITH_INIT_PARAMS"]=--[[void]] function(--[[Ped (int)]] ped,--[[string]] network,--[[int* (pointer)]] initialParameters,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ,--[[int]] rotOrder,--[[float]] blendDuration,--[[BOOL (bool)]] allowOverrideCloneUpdate,--[[string]] dictionary,--[[int]] flags)return native_invoker.unified_void(ped, network, initialParameters, x, y, z, rotX, rotY, rotZ, rotOrder, blendDuration, allowOverrideCloneUpdate, dictionary, flags, 0x29682E2CCF21E9B5, "ispffffffifbsi")end, - ["IS_TASK_MOVE_NETWORK_ACTIVE"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x921CE12C489C4C41, "i")end, - ["IS_TASK_MOVE_NETWORK_READY_FOR_TRANSITION"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x30ED88D5E0C56A37, "i")end, - ["REQUEST_TASK_MOVE_NETWORK_STATE_TRANSITION"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[string]] name)return native_invoker.unified_bool(ped, name, 0xD01015C7316AE176, "is")end, - -- Used only once in the scripts (fm_mission_controller) like so: - -- - -- TASK::SET_EXPECTED_CLONE_NEXT_TASK_MOVE_NETWORK_STATE(iLocal_3160, "Cutting"); - ["SET_EXPECTED_CLONE_NEXT_TASK_MOVE_NETWORK_STATE"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[string]] state)return native_invoker.unified_bool(ped, state, 0xAB13A5565480B6D9, "is")end, - ["GET_TASK_MOVE_NETWORK_STATE"]=--[[string]] function(--[[Ped (int)]] ped)return native_invoker.unified_string(ped, 0x717E4D1F2048376D, "i")end, - ["SET_TASK_MOVE_NETWORK_ANIM_SET"]=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] clipSet,--[[Hash (int)]] variableClipSet)return native_invoker.unified_void(ped, clipSet, variableClipSet, 0x8423541E8B3A1589, "iii")end, - -- signalName - "Phase", "Wobble", "x_axis","y_axis","introphase","speed". - -- p2 - From what i can see it goes up to 1f (maybe). - -- - -- Example: TASK::SET_TASK_MOVE_NETWORK_SIGNAL_FLOAT(PLAYER::PLAYER_PED_ID(), "Phase", 0.5); - ["SET_TASK_MOVE_NETWORK_SIGNAL_FLOAT"]=--[[void]] function(--[[Ped (int)]] ped,--[[string]] signalName,--[[float]] value)return native_invoker.unified_void(ped, signalName, value, 0xD5BB4025AE449A4E, "isf")end, - ["SET_TASK_MOVE_NETWORK_SIGNAL_LOCAL_FLOAT"]=--[[void]] function(--[[Ped (int)]] ped,--[[string]] signalName,--[[float]] value)return native_invoker.unified_void(ped, signalName, value, 0x373EF409B82697A3, "isf")end, - ["SET_TASK_MOVE_NETWORK_SIGNAL_FLOAT_LERP_RATE"]=--[[void]] function(--[[Ped (int)]] ped,--[[string]] signalName,--[[float]] value)return native_invoker.unified_void(ped, signalName, value, 0x8634CEF2522D987B, "isf")end, - ["SET_TASK_MOVE_NETWORK_SIGNAL_BOOL"]=--[[void]] function(--[[Ped (int)]] ped,--[[string]] signalName,--[[BOOL (bool)]] value)return native_invoker.unified_void(ped, signalName, value, 0xB0A6CFD2C69C1088, "isb")end, - ["GET_TASK_MOVE_NETWORK_SIGNAL_FLOAT"]=--[[float]] function(--[[Ped (int)]] ped,--[[string]] signalName)return native_invoker.unified_float(ped, signalName, 0x44AB0B3AFECCE242, "is")end, - ["GET_TASK_MOVE_NETWORK_SIGNAL_BOOL"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[string]] signalName)return native_invoker.unified_bool(ped, signalName, 0xA7FFBA498E4AAF67, "is")end, - ["GET_TASK_MOVE_NETWORK_EVENT"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[string]] eventName)return native_invoker.unified_bool(ped, eventName, 0xB4F47213DF45A64C, "is")end, - -- Doesn't actually return anything. - ["SET_TASK_MOVE_NETWORK_ENABLE_COLLISION_ON_NETWORK_CLONE_WHEN_FIXED"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] enable)return native_invoker.unified_bool(ped, enable, 0x0FFB3C758E8C07B9, "ib")end, - ["_SET_SCRIPT_TASK_ENABLE_COLLISION_ON_NETWORK_CLONE_WHEN_FIXED"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] enable)return native_invoker.unified_void(ped, enable, 0x32F6EEF031F943DC, "ib")end, - ["IS_MOVE_BLEND_RATIO_STILL"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x349CE7B56DAFD95C, "i")end, - ["IS_MOVE_BLEND_RATIO_WALKING"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xF133BBBE91E1691F, "i")end, - ["IS_MOVE_BLEND_RATIO_RUNNING"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xD4D8636C0199A939, "i")end, - ["IS_MOVE_BLEND_RATIO_SPRINTING"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x24A2AD74FA9814E2, "i")end, - ["IS_PED_STILL"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xAC29253EEF8F0180, "i")end, - ["IS_PED_WALKING"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xDE4C184B2B9B071A, "i")end, - ["IS_PED_RUNNING"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xC5286FFC176F28A2, "i")end, - ["IS_PED_SPRINTING"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x57E457CD2C0FC168, "i")end, - -- What's strafing? - ["IS_PED_STRAFING"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xE45B7F222DE47E09, "i")end, - -- TASK::TASK_SYNCHRONIZED_SCENE(ped, scene, "creatures@rottweiler@in_vehicle@std_car", "get_in", 1000.0, -8.0, 4, 0, 0x447a0000, 0); - -- - -- Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json - ["TASK_SYNCHRONIZED_SCENE"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] scene,--[[string]] animDictionary,--[[string]] animationName,--[[float]] blendIn,--[[float]] blendOut,--[[int]] flags,--[[int]] ragdollBlockingFlags,--[[float]] moverBlendDelta,--[[int]] ikFlags)return native_invoker.unified_void(ped, scene, animDictionary, animationName, blendIn, blendOut, flags, ragdollBlockingFlags, moverBlendDelta, ikFlags, 0xEEA929141F699854, "iissffiifi")end, - ["TASK_AGITATED_ACTION_CONFRONT_RESPONSE"]=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] ped2)return native_invoker.unified_void(ped, ped2, 0x19D1B791CB3670FE, "ii")end, - -- This function is called on peds in vehicles. - -- - -- anim: animation name - -- p2, p3, p4: "sweep_low", "sweep_med" or "sweep_high" - -- p5: no idea what it does but is usually -1 - ["TASK_SWEEP_AIM_ENTITY"]=--[[void]] function(--[[Ped (int)]] ped,--[[string]] animDict,--[[string]] lowAnimName,--[[string]] medAnimName,--[[string]] hiAnimName,--[[int]] runtime,--[[Entity (int)]] targetEntity,--[[float]] turnRate,--[[float]] blendInDuration)return native_invoker.unified_void(ped, animDict, lowAnimName, medAnimName, hiAnimName, runtime, targetEntity, turnRate, blendInDuration, 0x2047C02158D6405A, "issssiiff")end, - ["UPDATE_TASK_SWEEP_AIM_ENTITY"]=--[[void]] function(--[[Ped (int)]] ped,--[[Entity (int)]] entity)return native_invoker.unified_void(ped, entity, 0xE4973DBDBE6E44B3, "ii")end, - ["TASK_SWEEP_AIM_POSITION"]=--[[void]] function(--[[Ped (int)]] ped,--[[string]] animDict,--[[string]] lowAnimName,--[[string]] medAnimName,--[[string]] hiAnimName,--[[int]] runtime,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] turnRate,--[[float]] blendInDuration)return native_invoker.unified_void(ped, animDict, lowAnimName, medAnimName, hiAnimName, runtime, x, y, z, turnRate, blendInDuration, 0x7AFE8FDC10BC07D2, "issssifffff")end, - ["UPDATE_TASK_SWEEP_AIM_POSITION"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(ped, x, y, z, 0xBB106883F5201FC4, "ifff")end, - -- Example from "me_amanda1.ysc.c4": - -- TASK::TASK_ARREST_PED(l_19F /* This is a Ped */ , PLAYER::PLAYER_PED_ID()); - -- - -- Example from "armenian1.ysc.c4": - -- if (!PED::IS_PED_INJURED(l_B18[0/*1*/])) { - -- TASK::TASK_ARREST_PED(l_B18[0/*1*/], PLAYER::PLAYER_PED_ID()); - -- } - -- - -- I would love to have time to experiment to see if a player Ped can arrest another Ped. Might make for a good cop mod. - -- - -- - -- Looks like only the player can be arrested this way. Peds react and try to arrest you if you task them, but the player charater doesn't do anything if tasked to arrest another ped. - ["TASK_ARREST_PED"]=--[[void]] function(--[[Ped (int)]] ped,--[[Ped (int)]] target)return native_invoker.unified_void(ped, target, 0xF3B9A78A178572B1, "ii")end, - ["IS_PED_RUNNING_ARREST_TASK"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x3DC52677769B4AE0, "i")end, - -- This function is hard-coded to always return 0. - ["IS_PED_BEING_ARRESTED"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x90A09F3A45FED688, "i")end, - ["UNCUFF_PED"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x67406F2C8F87FC4F, "i")end, - ["IS_PED_CUFFED"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x74E559B3BC910685, "i")end, -} -VEHICLE={ - -- p7 when set to true allows you to spawn vehicles under -100 z. - -- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - ["CREATE_VEHICLE"]=--[[Vehicle (int)]] function(--[[Hash (int)]] modelHash,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] heading,--[[BOOL (bool)]] isNetwork,--[[BOOL (bool)]] bScriptHostVeh,--[[BOOL (bool)]] p7)return native_invoker.unified_int(modelHash, x, y, z, heading, isNetwork, bScriptHostVeh, p7, 0xAF35D0D2583051B0, "iffffbbb")end, - -- Deletes a vehicle. - -- The vehicle must be a mission entity to delete, so call this before deleting: SET_ENTITY_AS_MISSION_ENTITY(vehicle, true, true); - -- - -- eg how to use: - -- SET_ENTITY_AS_MISSION_ENTITY(vehicle, true, true); - -- DELETE_VEHICLE(&vehicle); - -- - -- Deletes the specified vehicle, then sets the handle pointed to by the pointer to NULL. - ["DELETE_VEHICLE"]=--[[void]] function(--[[Vehicle* (pointer)]] vehicle)return native_invoker.unified_void(vehicle, 0xEA386986E786A54F, "p")end, - ["SET_VEHICLE_ALLOW_HOMING_MISSLE_LOCKON"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle,--[[BOOL (bool)]] p2)return native_invoker.unified_void(vehicle, toggle, p2, 0x7D6F9A3EF26136A0, "ibb")end, - ["SET_VEHICLE_ALLOW_HOMING_MISSLE_LOCKON_SYNCED"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] canBeLockedOn,--[[BOOL (bool)]] p2)return native_invoker.unified_void(vehicle, canBeLockedOn, p2, 0x1DDA078D12879EEE, "ibb")end, - -- Makes the vehicle accept no passengers. - ["SET_VEHICLE_ALLOW_NO_PASSENGERS_LOCKON"]=--[[void]] function(--[[Vehicle (int)]] veh,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(veh, toggle, 0x5D14D4154BFE7B2C, "ib")end, - -- Returns a value depending on the lock-on state of vehicle weapons. - -- 0: not locked on - -- 1: locking on - -- 2: locked on - ["GET_VEHICLE_HOMING_LOCKON_STATE"]=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0xE6B0E8CFC3633BF0, "i")end, - ["GET_VEHICLE_HOMING_LOCKEDONTO_STATE"]=--[[int]] function(--[[Any (int)]] p0)return native_invoker.unified_int(p0, 0x6EAAEFC76ACC311F, "i")end, - ["SET_VEHICLE_HOMING_LOCKEDONTO_STATE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x407DC5E97DB1A4D3, "ii")end, - ["IS_VEHICLE_MODEL"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[Hash (int)]] model)return native_invoker.unified_bool(vehicle, model, 0x423E8DE37D934D89, "ii")end, - ["DOES_SCRIPT_VEHICLE_GENERATOR_EXIST"]=--[[BOOL (bool)]] function(--[[int]] vehicleGenerator)return native_invoker.unified_bool(vehicleGenerator, 0xF6086BC836400876, "i")end, - -- Creates a script vehicle generator at the given coordinates. Most parameters after the model hash are unknown. - -- - -- Parameters: - -- x/y/z - Generator position - -- heading - Generator heading - -- p4 - Unknown (always 5.0) - -- p5 - Unknown (always 3.0) - -- modelHash - Vehicle model hash - -- p7/8/9/10 - Unknown (always -1) - -- p11 - Unknown (usually TRUE, only one instance of FALSE) - -- p12/13 - Unknown (always FALSE) - -- p14 - Unknown (usally FALSE, only two instances of TRUE) - -- p15 - Unknown (always TRUE) - -- p16 - Unknown (always -1) - -- - -- Vector3 coords = GET_ENTITY_COORDS(PLAYER_PED_ID(), 0); CREATE_SCRIPT_VEHICLE_GENERATOR(coords.x, coords.y, coords.z, 1.0f, 5.0f, 3.0f, GET_HASH_KEY("adder"), -1. -1, -1, -1, -1, true, false, false, false, true, -1); - ["CREATE_SCRIPT_VEHICLE_GENERATOR"]=--[[int]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] heading,--[[float]] p4,--[[float]] p5,--[[Hash (int)]] modelHash,--[[int]] p7,--[[int]] p8,--[[int]] p9,--[[int]] p10,--[[BOOL (bool)]] p11,--[[BOOL (bool)]] p12,--[[BOOL (bool)]] p13,--[[BOOL (bool)]] p14,--[[BOOL (bool)]] p15,--[[int]] p16)return native_invoker.unified_int(x, y, z, heading, p4, p5, modelHash, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, 0x9DEF883114668116, "ffffffiiiiibbbbbi")end, - ["DELETE_SCRIPT_VEHICLE_GENERATOR"]=--[[void]] function(--[[int]] vehicleGenerator)return native_invoker.unified_void(vehicleGenerator, 0x22102C9ABFCF125D, "i")end, - -- Only called once in the decompiled scripts. Presumably activates the specified generator. - ["SET_SCRIPT_VEHICLE_GENERATOR"]=--[[void]] function(--[[int]] vehicleGenerator,--[[BOOL (bool)]] enabled)return native_invoker.unified_void(vehicleGenerator, enabled, 0xD9D620E0AC6DC4B0, "ib")end, - -- When p6 is true, vehicle generators are active. - -- p7 seems to always be true in story mode scripts, but it's sometimes false in online scripts. - ["SET_ALL_VEHICLE_GENERATORS_ACTIVE_IN_AREA"]=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[BOOL (bool)]] toggle,--[[BOOL (bool)]] p7)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, toggle, p7, 0xC12321827687FE4D, "ffffffbb")end, - ["SET_ALL_VEHICLE_GENERATORS_ACTIVE"]=--[[void]] function()return native_invoker.unified_void(0x34AD89078831A4BC, "")end, - ["SET_ALL_LOW_PRIORITY_VEHICLE_GENERATORS_ACTIVE"]=--[[void]] function(--[[BOOL (bool)]] active)return native_invoker.unified_void(active, 0x608207E7A8FB787C, "b")end, - -- Related to car generators & CPlayerSwitchMgrLong - ["SET_VEHICLE_GENERATOR_AREA_OF_INTEREST"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius)return native_invoker.unified_void(x, y, z, radius, 0x9A75585FB2E54FAD, "ffff")end, - ["CLEAR_VEHICLE_GENERATOR_AREA_OF_INTEREST"]=--[[void]] function()return native_invoker.unified_void(0x0A436B8643716D14, "")end, - -- Sets a vehicle on the ground on all wheels. Returns whether or not the operation was successful. - -- - -- sfink: This has an additional param(Vehicle vehicle, float p1) which is always set to 5.0f in the b944 scripts. - ["SET_VEHICLE_ON_GROUND_PROPERLY"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[float]] p1)return native_invoker.unified_bool(vehicle, p1, 0x49733E92263139D1, "if")end, - ["SET_VEHICLE_USE_CUTSCENE_WHEEL_COMPRESSION"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] p0,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_bool(p0, p1, p2, p3, 0xE023E8AC4EF7C117, "ibbb")end, - ["IS_VEHICLE_STUCK_ON_ROOF"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xB497F06B288DCFDF, "i")end, - ["ADD_VEHICLE_UPSIDEDOWN_CHECK"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0xB72E26D81006005B, "i")end, - ["REMOVE_VEHICLE_UPSIDEDOWN_CHECK"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0xC53EB42A499A7E90, "i")end, - -- Returns true if the vehicle's current speed is less than, or equal to 0.0025f. - -- - -- For some vehicles it returns true if the current speed is <= 0.00039999999. - ["IS_VEHICLE_STOPPED"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x5721B434AD84D57A, "i")end, - -- Gets the number of passengers. - -- - -- This native was modified in b2545 to take two additional parameters, allowing you to include the driver or exclude dead passengers. - -- - -- To keep it working like before b2545, set includeDriver to false and includeDeadOccupants to true. - ["GET_VEHICLE_NUMBER_OF_PASSENGERS"]=--[[int]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] includeDriver,--[[BOOL (bool)]] includeDeadOccupants)return native_invoker.unified_int(vehicle, includeDriver, includeDeadOccupants, 0x24CB2137731FFE89, "ibb")end, - ["GET_VEHICLE_MAX_NUMBER_OF_PASSENGERS"]=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0xA7C4F2C6E744A550, "i")end, - -- Returns max number of passengers (including the driver) for the specified vehicle model. - -- - -- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - ["GET_VEHICLE_MODEL_NUMBER_OF_SEATS"]=--[[int]] function(--[[Hash (int)]] modelHash)return native_invoker.unified_int(modelHash, 0x2AD93716F184EDA4, "i")end, - ["IS_SEAT_WARP_ONLY"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[int]] seatIndex)return native_invoker.unified_bool(vehicle, seatIndex, 0xF7F203E31F96F6A1, "ii")end, - ["IS_TURRET_SEAT"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[int]] seatIndex)return native_invoker.unified_bool(vehicle, seatIndex, 0xE33FFA906CE74880, "ii")end, - -- Returns true if the vehicle has the FLAG_ALLOWS_RAPPEL flag set. - ["DOES_VEHICLE_ALLOW_RAPPEL"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x4E417C547182C84D, "i")end, - -- Use this native inside a looped function. - -- Values: - -- - `0.0` = no vehicles on streets - -- - `1.0` = normal vehicles on streets - ["SET_VEHICLE_DENSITY_MULTIPLIER_THIS_FRAME"]=--[[void]] function(--[[float]] multiplier)return native_invoker.unified_void(multiplier, 0x245A6883D966D537, "f")end, - ["SET_RANDOM_VEHICLE_DENSITY_MULTIPLIER_THIS_FRAME"]=--[[void]] function(--[[float]] multiplier)return native_invoker.unified_void(multiplier, 0xB3B3359379FE77D3, "f")end, - ["SET_PARKED_VEHICLE_DENSITY_MULTIPLIER_THIS_FRAME"]=--[[void]] function(--[[float]] multiplier)return native_invoker.unified_void(multiplier, 0xEAE6DCC7EEE3DB1D, "f")end, - ["SET_DISABLE_RANDOM_TRAINS_THIS_FRAME"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xD4B8E3D1917BC86B, "b")end, - ["SET_AMBIENT_VEHICLE_RANGE_MULTIPLIER_THIS_FRAME"]=--[[void]] function(--[[float]] value)return native_invoker.unified_void(value, 0x90B6DA738A9A25DA, "f")end, - ["SET_FAR_DRAW_VEHICLES"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x26324F33423F3CC3, "b")end, - ["SET_NUMBER_OF_PARKED_VEHICLES"]=--[[void]] function(--[[int]] value)return native_invoker.unified_void(value, 0xCAA15F13EBD417FF, "i")end, - -- enum eVehicleLockState - -- { - -- VEHICLELOCK_NONE, - -- VEHICLELOCK_UNLOCKED, - -- VEHICLELOCK_LOCKED, - -- VEHICLELOCK_LOCKOUT_PLAYER_ONLY, - -- VEHICLELOCK_LOCKED_PLAYER_INSIDE, - -- VEHICLELOCK_LOCKED_INITIALLY, - -- VEHICLELOCK_FORCE_SHUT_DOORS, - -- VEHICLELOCK_LOCKED_BUT_CAN_BE_DAMAGED, - -- VEHICLELOCK_LOCKED_BUT_BOOT_UNLOCKED, - -- VEHICLELOCK_LOCKED_NO_PASSENGERS, - -- VEHICLELOCK_CANNOT_ENTER - -- }; - ["SET_VEHICLE_DOORS_LOCKED"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] doorLockStatus)return native_invoker.unified_void(vehicle, doorLockStatus, 0xB664292EAECF7FA6, "ii")end, - -- doorId: see SET_VEHICLE_DOOR_SHUT - ["SET_VEHICLE_INDIVIDUAL_DOORS_LOCKED"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] doorId,--[[int]] doorLockStatus)return native_invoker.unified_void(vehicle, doorId, doorLockStatus, 0xBE70724027F85BCD, "iii")end, - -- If set to true, prevents vehicle sirens from having sound, leaving only the lights. - ["SET_VEHICLE_HAS_MUTED_SIRENS"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xD8050E0EB60CF274, "ib")end, - ["SET_VEHICLE_DOORS_LOCKED_FOR_PLAYER"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[Player (int)]] player,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, player, toggle, 0x517AAF684BB50CD1, "iib")end, - ["GET_VEHICLE_DOORS_LOCKED_FOR_PLAYER"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[Player (int)]] player)return native_invoker.unified_bool(vehicle, player, 0xF6AF6CB341349015, "ii")end, - -- After some analysis, I've decided that these are what the parameters are. - -- - -- We can see this being used in R* scripts such as "am_mp_property_int.ysc.c4": - -- l_11A1 = PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 1); - -- ... - -- VEHICLE::SET_VEHICLE_DOORS_LOCKED_FOR_ALL_PLAYERS(l_11A1, 1); - ["SET_VEHICLE_DOORS_LOCKED_FOR_ALL_PLAYERS"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xA2F80B8D040727CC, "ib")end, - ["SET_VEHICLE_DOORS_LOCKED_FOR_NON_SCRIPT_PLAYERS"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x9737A37136F07E75, "ib")end, - ["SET_VEHICLE_DOORS_LOCKED_FOR_TEAM"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] team,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, team, toggle, 0xB81F6D4A8F5EEBA8, "iib")end, - ["SET_VEHICLE_DOORS_LOCKED_FOR_ALL_TEAMS"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x203B527D1B77904C, "ib")end, - ["SET_VEHICLE_DONT_TERMINATE_TASK_WHEN_ACHIEVED"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x76D26A22750E849E, "i")end, - -- 0.0f = engine rev minimum - -- 1.0f = engine rev limit - ["_SET_VEHICLE_MAX_LAUNCH_ENGINE_REVS"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] modifier)return native_invoker.unified_void(vehicle, modifier, 0x5AE614ECA5FDD423, "if")end, - ["_GET_VEHICLE_THROTTLE"]=--[[float]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_float(vehicle, 0x92D96892FC06AF22, "i")end, - -- Explodes a selected vehicle. - -- - -- Vehicle vehicle = Vehicle you want to explode. - -- BOOL isAudible = If explosion makes a sound. - -- BOOL isInvisible = If the explosion is invisible or not. - -- - -- First BOOL does not give any visual explosion, the vehicle just falls apart completely but slowly and starts to burn. - ["EXPLODE_VEHICLE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] isAudible,--[[BOOL (bool)]] isInvisible)return native_invoker.unified_void(vehicle, isAudible, isInvisible, 0xBA71116ADF5B514C, "ibb")end, - -- Tested on the player's current vehicle. Unless you kill the driver, the vehicle doesn't loose control, however, if enabled, explodeOnImpact is still active. The moment you crash, boom. - ["SET_VEHICLE_OUT_OF_CONTROL"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] killDriver,--[[BOOL (bool)]] explodeOnImpact)return native_invoker.unified_void(vehicle, killDriver, explodeOnImpact, 0xF19D095E42D430CC, "ibb")end, - ["SET_VEHICLE_TIMED_EXPLOSION"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, ped, toggle, 0x2E0A74E1002380B1, "iib")end, - ["ADD_VEHICLE_PHONE_EXPLOSIVE_DEVICE"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x99AD4CCCB128CBC9, "i")end, - ["CLEAR_VEHICLE_PHONE_EXPLOSIVE_DEVICE"]=--[[void]] function()return native_invoker.unified_void(0xAA3F739ABDDCF21F, "")end, - ["HAS_VEHICLE_PHONE_EXPLOSIVE_DEVICE"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x6ADAABD3068C5235, "")end, - ["DETONATE_VEHICLE_PHONE_EXPLOSIVE_DEVICE"]=--[[void]] function()return native_invoker.unified_void(0xEF49CF0270307CBE, "")end, - ["HAVE_VEHICLE_REAR_DOORS_BEEN_BLOWN_OPEN_BY_STICKYBOMB"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x6B407F2525E93644, "i")end, - -- This is not tested - it's just an assumption. - -- - Nac - -- - -- Doesn't seem to work. I'll try with an int instead. --JT - -- - -- Read the scripts, im dumpass. - -- - -- if (!VEHICLE::IS_TAXI_LIGHT_ON(l_115)) { - -- VEHICLE::SET_TAXI_LIGHTS(l_115, 1); - -- } - ["SET_TAXI_LIGHTS"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] state)return native_invoker.unified_void(vehicle, state, 0x598803E85E8448D9, "ib")end, - ["IS_TAXI_LIGHT_ON"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x7504C0F113AB50FC, "i")end, - -- garageName example "Michael - Beverly Hills" - -- - -- Full list of garages by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/garages.json - ["IS_VEHICLE_IN_GARAGE_AREA"]=--[[BOOL (bool)]] function(--[[string]] garageName,--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(garageName, vehicle, 0xCEE4490CD57BB3C2, "si")end, - -- colorPrimary & colorSecondary are the paint index for the vehicle. - -- For a list of valid paint indexes, view: https://pastebin.com/pwHci0xK - -- ------------------------------------------------------------------------- - -- Note: minimum color index is 0, maximum color index is (numColorIndices - 1) - -- - -- Full list of vehicle colors by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicleColors.json - ["SET_VEHICLE_COLOURS"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] colorPrimary,--[[int]] colorSecondary)return native_invoker.unified_void(vehicle, colorPrimary, colorSecondary, 0x4F1D4BE3A7F24601, "iii")end, - -- It switch to highbeam when p1 is set to true. - ["SET_VEHICLE_FULLBEAM"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x8B7FD87F0DDB421E, "ib")end, - -- p1 (toggle) was always 1 (true) except in one case in the b678 scripts. - ["SET_VEHICLE_IS_RACING"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x07116E24E9D1929D, "ib")end, - -- p1, p2, p3 are RGB values for color (255,0,0 for Red, ect) - ["SET_VEHICLE_CUSTOM_PRIMARY_COLOUR"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] r,--[[int]] g,--[[int]] b)return native_invoker.unified_void(vehicle, r, g, b, 0x7141766F91D15BEA, "iiii")end, - ["GET_VEHICLE_CUSTOM_PRIMARY_COLOUR"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int* (pointer)]] r,--[[int* (pointer)]] g,--[[int* (pointer)]] b)return native_invoker.unified_void(vehicle, r, g, b, 0xB64CF2CCA9D95F52, "ippp")end, - ["CLEAR_VEHICLE_CUSTOM_PRIMARY_COLOUR"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x55E1D2758F34E437, "i")end, - ["GET_IS_VEHICLE_PRIMARY_COLOUR_CUSTOM"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xF095C0405307B21B, "i")end, - -- p1, p2, p3 are RGB values for color (255,0,0 for Red, ect) - ["SET_VEHICLE_CUSTOM_SECONDARY_COLOUR"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] r,--[[int]] g,--[[int]] b)return native_invoker.unified_void(vehicle, r, g, b, 0x36CED73BFED89754, "iiii")end, - ["GET_VEHICLE_CUSTOM_SECONDARY_COLOUR"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int* (pointer)]] r,--[[int* (pointer)]] g,--[[int* (pointer)]] b)return native_invoker.unified_void(vehicle, r, g, b, 0x8389CD56CA8072DC, "ippp")end, - ["CLEAR_VEHICLE_CUSTOM_SECONDARY_COLOUR"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x5FFBDEEC3E8E2009, "i")end, - -- Check if Vehicle Secondary is avaliable for customize - ["GET_IS_VEHICLE_SECONDARY_COLOUR_CUSTOM"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x910A32E7AAD2656C, "i")end, - -- The parameter fade is a value from 0-1, where 0 is fresh paint. - ["SET_VEHICLE_ENVEFF_SCALE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] fade)return native_invoker.unified_void(vehicle, fade, 0x3AFDC536C3D01674, "if")end, - -- The result is a value from 0-1, where 0 is fresh paint. - ["GET_VEHICLE_ENVEFF_SCALE"]=--[[float]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_float(vehicle, 0xA82819CAC9C4C403, "i")end, - -- Hardcoded to not work in multiplayer. - ["SET_CAN_RESPRAY_VEHICLE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] state)return native_invoker.unified_void(vehicle, state, 0x52BBA29D5EC69356, "ib")end, - -- Used for GTAO CEO/Associate spawned vehicles. - ["SET_GOON_BOSS_VEHICLE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xAB31EF4DE6800CE9, "ib")end, - ["SET_OPEN_REAR_DOORS_ON_EXPLOSION"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x1B212B26DD3C04DF, "ib")end, - ["FORCE_SUBMARINE_SURFACE_MODE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x33506883545AC0DF, "ib")end, - ["FORCE_SUBMARINE_NEURTAL_BUOYANCY"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xC67DB108A9ADE3BE, "ii")end, - ["SET_SUBMARINE_CRUSH_DEPTHS"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1,--[[float]] depth1,--[[float]] depth2,--[[float]] depth3)return native_invoker.unified_void(vehicle, p1, depth1, depth2, depth3, 0xC59872A5134879C7, "ibfff")end, - ["GET_SUBMARINE_IS_UNDER_DESIGN_DEPTH"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] submarine)return native_invoker.unified_bool(submarine, 0x3E71D0B300B7AA79, "i")end, - ["GET_SUBMARINE_NUMBER_OF_AIR_LEAKS"]=--[[int]] function(--[[Vehicle (int)]] submarine)return native_invoker.unified_int(submarine, 0x093D6DDCA5B8FBAE, "i")end, - ["SET_BOAT_IGNORE_LAND_PROBES"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xED5EDE9E676643C9, "ii")end, - -- Use the vehicle bounds (instead of viewport) when deciding if a vehicle is sufficiently above the water (waterheight.dat), bypassing wave simulation checks - ["_SET_BOUNDS_AFFECT_WATER_PROBES"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x85FC953F6C6CBDE1, "ib")end, - ["SET_BOAT_ANCHOR"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x75DBEC174AEEAD10, "ib")end, - ["CAN_ANCHOR_BOAT_HERE"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x26C10ECBDA5D043B, "i")end, - ["CAN_ANCHOR_BOAT_HERE_IGNORE_PLAYERS"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x24F4121D07579880, "i")end, - ["SET_BOAT_REMAINS_ANCHORED_WHILE_PLAYER_IS_DRIVER"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xE3EBAAE484798530, "ib")end, - -- No observed effect. - ["SET_FORCE_LOW_LOD_ANCHOR_MODE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0xB28B1FE5BFADD7F5, "ib")end, - ["SET_BOAT_LOW_LOD_ANCHOR_DISTANCE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] value)return native_invoker.unified_void(vehicle, value, 0xE842A9398079BD82, "if")end, - ["IS_BOAT_ANCHORED"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xB0AD1238A709B1A2, "i")end, - ["SET_BOAT_SINKS_WHEN_WRECKED"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x8F719973E1445BA2, "ib")end, - ["SET_BOAT_WRECKED"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0xBD32E46AA95C1DD2, "i")end, - -- Activate siren on vehicle (Only works if the vehicle has a siren). - ["SET_VEHICLE_SIREN"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xF4924635A19EB37D, "ib")end, - ["IS_VEHICLE_SIREN_ON"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x4C9BF537BE2634B2, "i")end, - ["IS_VEHICLE_SIREN_AUDIO_ON"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xB5CC40FBCB586380, "i")end, - -- If set to true, vehicle will not take crash damage, but is still susceptible to damage from bullets and explosives - ["SET_VEHICLE_STRONG"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x3E8C8727991A8A0B, "ib")end, - ["REMOVE_VEHICLE_STUCK_CHECK"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x8386BFB614D06749, "i")end, - ["GET_VEHICLE_COLOURS"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int* (pointer)]] colorPrimary,--[[int* (pointer)]] colorSecondary)return native_invoker.unified_void(vehicle, colorPrimary, colorSecondary, 0xA19435F193E081AC, "ipp")end, - -- Check if a vehicle seat is free. - -- - -- seatIndex = -1 being the driver seat. - -- Use GET_VEHICLE_MAX_NUMBER_OF_PASSENGERS(vehicle) - 1 for last seat index. - -- isTaskRunning = on true the function returns already false while a task on the target seat is running (TASK_ENTER_VEHICLE/TASK_SHUFFLE_TO_NEXT_VEHICLE_SEAT) - on false only when a ped is finally sitting in the seat. - ["IS_VEHICLE_SEAT_FREE"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[int]] seatIndex,--[[BOOL (bool)]] isTaskRunning)return native_invoker.unified_bool(vehicle, seatIndex, isTaskRunning, 0x22AC59A870E6A669, "iib")end, - -- If there is no ped in the seat, and the game considers the vehicle as ambient population, this will create a random occupant ped in the seat, which may be cleaned up by the game fairly soon if not marked as script-owned mission entity. - -- - -- Seat indexes: - -- -1 = Driver - -- 0 = Front Right Passenger - -- 1 = Back Left Passenger - -- 2 = Back Right Passenger - -- 3 = Further Back Left Passenger (vehicles > 4 seats) - -- 4 = Further Back Right Passenger (vehicles > 4 seats) - -- etc. - -- - -- If p2 is true it uses a different GetOccupant function. - ["GET_PED_IN_VEHICLE_SEAT"]=--[[Ped (int)]] function(--[[Vehicle (int)]] vehicle,--[[int]] seatIndex,--[[BOOL (bool)]] p2)return native_invoker.unified_int(vehicle, seatIndex, p2, 0xBB40DD2270B65366, "iib")end, - ["GET_LAST_PED_IN_VEHICLE_SEAT"]=--[[Ped (int)]] function(--[[Vehicle (int)]] vehicle,--[[int]] seatIndex)return native_invoker.unified_int(vehicle, seatIndex, 0x83F969AA1EE2A664, "ii")end, - ["GET_VEHICLE_LIGHTS_STATE"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[BOOL* (pointer)]] lightsOn,--[[BOOL* (pointer)]] highbeamsOn)return native_invoker.unified_bool(vehicle, lightsOn, highbeamsOn, 0xB91B4C20085BD12F, "ipp")end, - -- wheelID used for 4 wheelers seem to be (0, 1, 4, 5) - -- completely - is to check if tire completely gone from rim. - -- - -- '0 = wheel_lf / bike, plane or jet front - -- '1 = wheel_rf - -- '2 = wheel_lm / in 6 wheels trailer, plane or jet is first one on left - -- '3 = wheel_rm / in 6 wheels trailer, plane or jet is first one on right - -- '4 = wheel_lr / bike rear / in 6 wheels trailer, plane or jet is last one on left - -- '5 = wheel_rr / in 6 wheels trailer, plane or jet is last one on right - -- '45 = 6 wheels trailer mid wheel left - -- '47 = 6 wheels trailer mid wheel right - ["IS_VEHICLE_TYRE_BURST"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[int]] wheelID,--[[BOOL (bool)]] completely)return native_invoker.unified_bool(vehicle, wheelID, completely, 0xBA291848A0815CA9, "iib")end, - -- SCALE: Setting the speed to 30 would result in a speed of roughly 60mph, according to speedometer. - -- - -- Speed is in meters per second - -- You can convert meters/s to mph here: - -- http://www.calculateme.com/Speed/MetersperSecond/ToMilesperHour.htm - ["SET_VEHICLE_FORWARD_SPEED"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] speed)return native_invoker.unified_void(vehicle, speed, 0xAB54A438726D25D5, "if")end, - -- Seems to be identical to SET_VEHICLE_FORWARD_SPEED - ["SET_VEHICLE_FORWARD_SPEED_XY"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] speed)return native_invoker.unified_void(vehicle, speed, 0x6501129C9E0FFA05, "if")end, - -- This native makes the vehicle stop immediately, as happens when we enter a MP garage. - -- - -- . distance defines how far it will travel until stopping. Garage doors use 3.0. - -- - -- . If killEngine is set to 1, you cannot resume driving the vehicle once it stops. This looks like is a bitmapped integer. - ["BRING_VEHICLE_TO_HALT"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] distance,--[[int]] duration,--[[BOOL (bool)]] p3)return native_invoker.unified_void(vehicle, distance, duration, p3, 0x260BE8F09E326A20, "ifib")end, - ["SET_VEHICLE_STEER_FOR_BUILDINGS"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[Any (int)]] p1)return native_invoker.unified_void(vehicle, p1, 0xDCE97BDF8A0EABC8, "ii")end, - ["SET_VEHICLE_CAUSES_SWERVING"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x9849DE24FCF23CCC, "ib")end, - ["SET_IGNORE_PLANES_SMALL_PITCH_CHANGE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x8664170EF165C4A6, "ii")end, - -- Stops CTaskBringVehicleToHalt - ["STOP_BRINGING_VEHICLE_TO_HALT"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x7C06330BFDDA182E, "i")end, - -- Returns true if vehicle is halted by BRING_VEHICLE_TO_HALT - ["IS_VEHICLE_BEING_BROUGHT_TO_HALT"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xC69BB1D832A710EF, "i")end, - ["LOWER_FORKLIFT_FORKS"]=--[[void]] function(--[[Vehicle (int)]] forklift)return native_invoker.unified_void(forklift, 0x923A293361DF44E5, "i")end, - -- 0.0 = Lowest 1.0 = Highest. This is best to be used if you wanna pick-up a car since un-realistically on GTA V forklifts can't pick up much of anything due to vehicle mass. If you put this under a car then set it above 0.0 to a 'lifted-value' it will raise the car with no issue lol - ["SET_FORKLIFT_FORK_HEIGHT"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] height)return native_invoker.unified_void(vehicle, height, 0x37EBBF3117BD6A25, "if")end, - ["IS_ENTITY_ATTACHED_TO_HANDLER_FRAME"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[Entity (int)]] entity)return native_invoker.unified_bool(vehicle, entity, 0x57715966069157AD, "ii")end, - ["IS_ANY_ENTITY_ATTACHED_TO_HANDLER_FRAME"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x62CA17B74C435651, "i")end, - -- Finds the vehicle that is carrying this entity with a handler frame. - -- The model of the entity must be prop_contr_03b_ld or the function will return 0. - ["FIND_HANDLER_VEHICLE_CONTAINER_IS_ATTACHED_TO"]=--[[Vehicle (int)]] function(--[[Entity (int)]] entity)return native_invoker.unified_int(entity, 0x375E7FC44F21C8AB, "i")end, - ["IS_HANDLER_FRAME_LINED_UP_WITH_CONTAINER"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[Entity (int)]] entity)return native_invoker.unified_bool(vehicle, entity, 0x89D630CF5EA96D23, "ii")end, - ["ATTACH_CONTAINER_TO_HANDLER_FRAME_WHEN_LINED_UP"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[Entity (int)]] entity)return native_invoker.unified_void(vehicle, entity, 0x6A98C2ECF57FA5D4, "ii")end, - ["DETACH_CONTAINER_FROM_HANDLER_FRAME"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x7C0043FDFF6436BC, "i")end, - ["SET_VEHICLE_DISABLE_HEIGHT_MAP_AVOIDANCE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0x8AA9180DE2FEDD45, "ib")end, - ["SET_BOAT_DISABLE_AVOIDANCE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0x0A6A279F3AA4FD70, "ib")end, - ["IS_HELI_LANDING_AREA_BLOCKED"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x634148744F385576, "i")end, - -- Used on helicopters and blimps during the CTaskVehicleLand task. Sets a value on the task to 10f - ["SET_SHORT_SLOWDOWN_FOR_LANDING"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x107A473D7A6647A9, "i")end, - ["SET_HELI_TURBULENCE_SCALAR"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] p1)return native_invoker.unified_void(vehicle, p1, 0xE6F13851780394DA, "if")end, - -- Initially used in Max Payne 3, that's why we know the name. - ["SET_CAR_BOOT_OPEN"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0xFC40CBF7B90CA77C, "i")end, - -- "To burst tyres VEHICLE::SET_VEHICLE_TYRE_BURST(vehicle, 0, true, 1000.0) - -- to burst all tyres type it 8 times where p1 = 0 to 7. - -- - -- p3 seems to be how much damage it has taken. 0 doesn't deflate them, 1000 completely deflates them. - -- - -- '0 = wheel_lf / bike, plane or jet front - -- '1 = wheel_rf - -- '2 = wheel_lm / in 6 wheels trailer, plane or jet is first one on left - -- '3 = wheel_rm / in 6 wheels trailer, plane or jet is first one on right - -- '4 = wheel_lr / bike rear / in 6 wheels trailer, plane or jet is last one on left - -- '5 = wheel_rr / in 6 wheels trailer, plane or jet is last one on right - -- '45 = 6 wheels trailer mid wheel left - -- '47 = 6 wheels trailer mid wheel right - ["SET_VEHICLE_TYRE_BURST"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] index,--[[BOOL (bool)]] onRim,--[[float]] p3)return native_invoker.unified_void(vehicle, index, onRim, p3, 0xEC6A202EE4960385, "iibf")end, - -- Closes all doors of a vehicle: - ["SET_VEHICLE_DOORS_SHUT"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] closeInstantly)return native_invoker.unified_void(vehicle, closeInstantly, 0x781B3D62BB013EF5, "ib")end, - -- Allows you to toggle bulletproof tires. - ["SET_VEHICLE_TYRES_CAN_BURST"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xEB9DC3C7D8596C46, "ib")end, - ["GET_VEHICLE_TYRES_CAN_BURST"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x678B9BB8C3F58FEB, "i")end, - ["SET_VEHICLE_WHEELS_CAN_BREAK"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] enabled)return native_invoker.unified_void(vehicle, enabled, 0x29B18B4FD460CA8F, "ib")end, - -- doorId: see SET_VEHICLE_DOOR_SHUT - ["SET_VEHICLE_DOOR_OPEN"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] doorId,--[[BOOL (bool)]] loose,--[[BOOL (bool)]] openInstantly)return native_invoker.unified_void(vehicle, doorId, loose, openInstantly, 0x7C65DAC73C35C862, "iibb")end, - -- doorId: see SET_VEHICLE_DOOR_SHUT - -- - -- Usually used alongside other vehicle door natives. - ["SET_VEHICLE_DOOR_AUTO_LOCK"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] doorId,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, doorId, toggle, 0x3B458DDB57038F08, "iib")end, - ["SET_FLEEING_VEHICLES_USE_SWITCHED_OFF_NODES"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xA247F9EF01D8082E, "i")end, - -- windowIndex: - -- 0 = Front Right Window - -- 1 = Front Left Window - -- 2 = Back Right Window - -- 3 = Back Left Window - -- 4 = Unknown - -- 5 = Unknown - -- 6 = Windscreen - -- 7 = Rear Windscreen - ["REMOVE_VEHICLE_WINDOW"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] windowIndex)return native_invoker.unified_void(vehicle, windowIndex, 0xA711568EEDB43069, "ii")end, - -- Roll down all the windows of the vehicle passed through the first parameter. - ["ROLL_DOWN_WINDOWS"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x85796B0549DDE156, "i")end, - -- windowIndex: - -- 0 = Front Left Window - -- 1 = Front Right Window - -- 2 = Rear Left Window - -- 3 = Rear Right Window - -- 4 = Front Windscreen - -- 5 = Rear Windscreen - -- 6 = Mid Left - -- 7 = Mid Right - -- 8 = Invalid - ["ROLL_DOWN_WINDOW"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] windowIndex)return native_invoker.unified_void(vehicle, windowIndex, 0x7AD9E6CE657D69E3, "ii")end, - -- windowIndex: - -- 0 = Front Left Window - -- 1 = Front Right Window - -- 2 = Rear Left Window - -- 3 = Rear Right Window - -- 4 = Front Windscreen - -- 5 = Rear Windscreen - -- 6 = Mid Left - -- 7 = Mid Right - -- 8 = Invalid - ["ROLL_UP_WINDOW"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] windowIndex)return native_invoker.unified_void(vehicle, windowIndex, 0x602E548F46E24D59, "ii")end, - -- windowIndex: - -- 0 = Front Left Window - -- 1 = Front Right Window - -- 2 = Rear Left Window - -- 3 = Rear Right Window - -- 4 = Front Windscreen - -- 5 = Rear Windscreen - -- 6 = Mid Left - -- 7 = Mid Right - -- 8 = Invalid - ["SMASH_VEHICLE_WINDOW"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] windowIndex)return native_invoker.unified_void(vehicle, windowIndex, 0x9E5B5E4D2CCD2259, "ii")end, - -- windowIndex: - -- 0 = Front Left Window - -- 1 = Front Right Window - -- 2 = Rear Left Window - -- 3 = Rear Right Window - -- 4 = Front Windscreen - -- 5 = Rear Windscreen - -- 6 = Mid Left - -- 7 = Mid Right - -- 8 = Invalid - -- - -- Additional information: FIX_VEHICLE_WINDOW (0x140D0BB88) references an array of bone vehicle indices (0x141D4B3E0) { 2Ah, 2Bh, 2Ch, 2Dh, 2Eh, 2Fh, 28h, 29h } that correspond to: window_lf, window_rf, window_lr, window_rr, window_lm, window_rm, windscreen, windscreen_r. This array is used by most vehwindow natives. - -- - -- Also, this function is coded to not work on vehicles of type: CBike, Bmx, CBoat, CTrain, and CSubmarine. - ["FIX_VEHICLE_WINDOW"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] windowIndex)return native_invoker.unified_void(vehicle, windowIndex, 0x772282EBEB95E682, "ii")end, - -- Detaches the vehicle's windscreen. - -- For further information, see : gtaforums.com/topic/859570-glass/#entry1068894566 - ["POP_OUT_VEHICLE_WINDSCREEN"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x6D645D59FB5F5AD3, "i")end, - -- Pops off the "roof" bone in the direction of the specified offset from the vehicle. - ["POP_OFF_VEHICLE_ROOF_WITH_IMPULSE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(vehicle, x, y, z, 0xE38CB9D7D39FDBCC, "ifff")end, - -- set's if the vehicle has lights or not. - -- not an on off toggle. - -- p1 = 0 ;vehicle normal lights, off then lowbeams, then highbeams - -- p1 = 1 ;vehicle doesn't have lights, always off - -- p1 = 2 ;vehicle has always on lights - -- p1 = 3 ;or even larger like 4,5,... normal lights like =1 - -- note1: when using =2 on day it's lowbeam,highbeam - -- but at night it's lowbeam,lowbeam,highbeam - -- note2: when using =0 it's affected by day or night for highbeams don't exist in daytime. - ["SET_VEHICLE_LIGHTS"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] state)return native_invoker.unified_void(vehicle, state, 0x34E710FF01247C5A, "ii")end, - ["SET_VEHICLE_USE_PLAYER_LIGHT_SETTINGS"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xC45C27EF50F36ADC, "ib")end, - -- p1 can be either 0, 1 or 2. - -- - -- Determines how vehicle lights behave when toggled. - -- - -- 0 = Default (Lights can be toggled between off, normal and high beams) - -- 1 = Lights Disabled (Lights are fully disabled, cannot be toggled) - -- 2 = Always On (Lights can be toggled between normal and high beams) - ["SET_VEHICLE_HEADLIGHT_SHADOWS"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] p1)return native_invoker.unified_void(vehicle, p1, 0x1FD09E7390A74D54, "ii")end, - ["SET_VEHICLE_ALARM"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] state)return native_invoker.unified_void(vehicle, state, 0xCDE5E70C1DDB954C, "ib")end, - ["START_VEHICLE_ALARM"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0xB8FF7AB45305C345, "i")end, - ["IS_VEHICLE_ALARM_ACTIVATED"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x4319E335B71FFF34, "i")end, - ["SET_VEHICLE_INTERIORLIGHT"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xBC2042F090AF6AD3, "ib")end, - -- Sets some bit of vehicle - ["SET_VEHICLE_FORCE_INTERIORLIGHT"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x8821196D91FA2DE5, "ib")end, - -- multiplier = brightness of head lights. - -- this value isn't capped afaik. - -- - -- multiplier = 0.0 no lights - -- multiplier = 1.0 default game value - -- - ["SET_VEHICLE_LIGHT_MULTIPLIER"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] multiplier)return native_invoker.unified_void(vehicle, multiplier, 0xB385454F8791F57C, "if")end, - ["ATTACH_VEHICLE_TO_TRAILER"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[Vehicle (int)]] trailer,--[[float]] radius)return native_invoker.unified_void(vehicle, trailer, radius, 0x3C7D42D58F770B54, "iif")end, - -- This is the proper way of attaching vehicles to the car carrier, it's what Rockstar uses. Video Demo: https://www.youtube.com/watch?v=2lVEIzf7bgo - ["ATTACH_VEHICLE_ON_TO_TRAILER"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[Vehicle (int)]] trailer,--[[float]] offsetX,--[[float]] offsetY,--[[float]] offsetZ,--[[float]] coordsX,--[[float]] coordsY,--[[float]] coordsZ,--[[float]] rotationX,--[[float]] rotationY,--[[float]] rotationZ,--[[float]] disableCollisions)return native_invoker.unified_void(vehicle, trailer, offsetX, offsetY, offsetZ, coordsX, coordsY, coordsZ, rotationX, rotationY, rotationZ, disableCollisions, 0x16B5E274BDE402F8, "iiffffffffff")end, - ["STABILISE_ENTITY_ATTACHED_TO_HELI"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[Entity (int)]] entity,--[[float]] p2)return native_invoker.unified_void(vehicle, entity, p2, 0x374706271354CB18, "iif")end, - ["DETACH_VEHICLE_FROM_TRAILER"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x90532EDF0D2BDD86, "i")end, - ["IS_VEHICLE_ATTACHED_TO_TRAILER"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xE7CF3C4F9F489F0C, "i")end, - ["SET_TRAILER_INVERSE_MASS_SCALE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] p1)return native_invoker.unified_void(vehicle, p1, 0x2A8F319B392E7B3F, "if")end, - -- in the decompiled scripts, seems to be always called on the vehicle right after being attached to a trailer. - ["SET_TRAILER_LEGS_RAISED"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x95CF53B3D687F9FA, "i")end, - ["SET_TRAILER_LEGS_LOWERED"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x878C75C09FBDB942, "i")end, - -- tyreIndex = 0 to 4 on normal vehicles - -- - -- '0 = wheel_lf / bike, plane or jet front - -- '1 = wheel_rf - -- '2 = wheel_lm / in 6 wheels trailer, plane or jet is first one on left - -- '3 = wheel_rm / in 6 wheels trailer, plane or jet is first one on right - -- '4 = wheel_lr / bike rear / in 6 wheels trailer, plane or jet is last one on left - -- '5 = wheel_rr / in 6 wheels trailer, plane or jet is last one on right - -- '45 = 6 wheels trailer mid wheel left - -- '47 = 6 wheels trailer mid wheel right - ["SET_VEHICLE_TYRE_FIXED"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] tyreIndex)return native_invoker.unified_void(vehicle, tyreIndex, 0x6E13FC662B882D1D, "ii")end, - -- Sets a vehicle's license plate text. 8 chars maximum. - -- - -- Example: - -- Ped playerPed = PLAYER::PLAYER_PED_ID(); - -- Vehicle veh = PED::GET_VEHICLE_PED_IS_USING(playerPed); - -- char *plateText = "KING"; - -- VEHICLE::SET_VEHICLE_NUMBER_PLATE_TEXT(veh, plateText); - ["SET_VEHICLE_NUMBER_PLATE_TEXT"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[string]] plateText)return native_invoker.unified_void(vehicle, plateText, 0x95A88F0B409CDA47, "is")end, - -- Returns the license plate text from a vehicle. 8 chars maximum. - ["GET_VEHICLE_NUMBER_PLATE_TEXT"]=--[[string]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_string(vehicle, 0x7CE1CCB9B293020E, "i")end, - -- Returns the number of *types* of licence plates, enumerated below in SET_VEHICLE_NUMBER_PLATE_TEXT_INDEX. - ["GET_NUMBER_OF_VEHICLE_NUMBER_PLATES"]=--[[int]] function()return native_invoker.unified_int(0x4C4D6B2644F458CB, "")end, - -- Plates: - -- Blue/White - 0 - -- Yellow/black - 1 - -- Yellow/Blue - 2 - -- Blue/White2 - 3 - -- Blue/White3 - 4 - -- Yankton - 5 - ["SET_VEHICLE_NUMBER_PLATE_TEXT_INDEX"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] plateIndex)return native_invoker.unified_void(vehicle, plateIndex, 0x9088EB5A43FFB0A1, "ii")end, - -- Returns the PlateType of a vehicle - -- Blue_on_White_1 = 3, - -- Blue_on_White_2 = 0, - -- Blue_on_White_3 = 4, - -- Yellow_on_Blue = 2, - -- Yellow_on_Black = 1, - -- North_Yankton = 5, - ["GET_VEHICLE_NUMBER_PLATE_TEXT_INDEX"]=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0xF11BC2DD9A3E7195, "i")end, - ["SET_RANDOM_TRAINS"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x80D9F74197EA47D9, "b")end, - -- Train models HAVE TO be loaded (requested) before you use this. - -- For variation 15 - request: - -- - -- freight - -- freightcar - -- freightgrain - -- freightcont1 - -- freightcont2 - -- freighttrailer - -- - -- - ["CREATE_MISSION_TRAIN"]=--[[Vehicle (int)]] function(--[[int]] variation,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] direction,--[[Any (int)]] p5,--[[Any (int)]] p6)return native_invoker.unified_int(variation, x, y, z, direction, p5, p6, 0x63C6CCA8E68AE8C8, "ifffbii")end, - -- Toggles whether ambient trains can spawn on the specified track or not - -- - -- `trackId` is the internal id of the train track to switch. - -- `state` is whether ambient trains can spawn or not - -- - -- trackIds - -- 0 (`trains1.dat`) Main track around SA - -- 1 (`trains2.dat`) Davis Quartz Quarry branch - -- 2 (`trains3.dat`) Second track alongside live track along Roy Lewenstein Blv. - -- 3 (`trains4.dat`) Metro track circuit - -- 4 (`trains5.dat`) Branch in Mirror Park Railyard - -- 5 (`trains6.dat`) Branch in Mirror Park Railyard - -- 6 (`trains7.dat`) LS branch to Mirror Park Railyard - -- 7 (`trains8.dat`) Overground part of metro track along Forum Dr. - -- 8 (`trains9.dat`) Branch to Mirror Park Railyard - -- 9 (`trains10.dat`) Yankton train - -- 10 (`trains11.dat`) Part of metro track near mission row - -- 11 (`trains12.dat`) Yankton prologue mission train - -- Full list of all train tracks + track nodes by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/traintracks.json - ["SWITCH_TRAIN_TRACK"]=--[[void]] function(--[[int]] trackId,--[[BOOL (bool)]] state)return native_invoker.unified_void(trackId, state, 0xFD813BB7DB977F20, "ib")end, - -- Only called once inside main_persitant with the parameters p0 = 0, p1 = 120000 - -- - -- trackIndex: 0 - 26 - -- Full list of all train tracks + track nodes by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/traintracks.json - ["SET_TRAIN_TRACK_SPAWN_FREQUENCY"]=--[[void]] function(--[[int]] trackIndex,--[[int]] frequency)return native_invoker.unified_void(trackIndex, frequency, 0x21973BBF8D17EDFA, "ii")end, - ["ALLOW_TRAIN_TO_BE_REMOVED_BY_POPULATION"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x2310A8F9421EBF43, "i")end, - ["DELETE_ALL_TRAINS"]=--[[void]] function()return native_invoker.unified_void(0x736A718577F39C7D, "")end, - ["SET_TRAIN_SPEED"]=--[[void]] function(--[[Vehicle (int)]] train,--[[float]] speed)return native_invoker.unified_void(train, speed, 0xAA0BC91BE0B796E3, "if")end, - ["SET_TRAIN_CRUISE_SPEED"]=--[[void]] function(--[[Vehicle (int)]] train,--[[float]] speed)return native_invoker.unified_void(train, speed, 0x16469284DB8C62B5, "if")end, - ["SET_RANDOM_BOATS"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x84436EC293B1415F, "b")end, - ["SET_RANDOM_BOATS_MP"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xDA5E12F728DB30CA, "b")end, - ["SET_GARBAGE_TRUCKS"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x2AFD795EEAC8D30D, "b")end, - -- Maximum amount of vehicles with vehicle stuck check appears to be 16. - ["DOES_VEHICLE_HAVE_STUCK_VEHICLE_CHECK"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x57E4C39DE5EE8470, "i")end, - -- See REQUEST_VEHICLE_RECORDING - ["GET_VEHICLE_RECORDING_ID"]=--[[int]] function(--[[int]] recording,--[[string]] script)return native_invoker.unified_int(recording, script, 0x21543C612379DB3C, "is")end, - -- Request the vehicle recording defined by the lowercase format string "%s%03d.yvr". For example, REQUEST_VEHICLE_RECORDING(1, "FBIs1UBER") corresponds to fbis1uber001.yvr. - -- For all vehicle recording/playback natives, "script" is a common prefix that usually corresponds to the script/mission the recording is used in, "recording" is its int suffix, and "id" (e.g., in native GET_TOTAL_DURATION_OF_VEHICLE_RECORDING_ID) corresponds to a unique identifier within the recording streaming module. - -- Note that only 24 recordings (hardcoded in multiple places) can ever active at a given time before clobbering begins. - ["REQUEST_VEHICLE_RECORDING"]=--[[void]] function(--[[int]] recording,--[[string]] script)return native_invoker.unified_void(recording, script, 0xAF514CABE74CBF15, "is")end, - -- See REQUEST_VEHICLE_RECORDING - ["HAS_VEHICLE_RECORDING_BEEN_LOADED"]=--[[BOOL (bool)]] function(--[[int]] recording,--[[string]] script)return native_invoker.unified_bool(recording, script, 0x300D614A4C785FC4, "is")end, - -- See REQUEST_VEHICLE_RECORDING - ["REMOVE_VEHICLE_RECORDING"]=--[[void]] function(--[[int]] recording,--[[string]] script)return native_invoker.unified_void(recording, script, 0xF1160ACCF98A3FC8, "is")end, - ["GET_POSITION_OF_VEHICLE_RECORDING_ID_AT_TIME"]=--[[Vector3 (vector3)]] function(--[[int]] id,--[[float]] time)return native_invoker.unified_vector3(id, time, 0x92523B76657A517D, "if")end, - -- This native does no interpolation between pathpoints. The same position will be returned for all times up to the next pathpoint in the recording. - -- - -- See REQUEST_VEHICLE_RECORDING - ["GET_POSITION_OF_VEHICLE_RECORDING_AT_TIME"]=--[[Vector3 (vector3)]] function(--[[int]] recording,--[[float]] time,--[[string]] script)return native_invoker.unified_vector3(recording, time, script, 0xD242728AA6F0FBA2, "ifs")end, - ["GET_ROTATION_OF_VEHICLE_RECORDING_ID_AT_TIME"]=--[[Vector3 (vector3)]] function(--[[int]] id,--[[float]] time)return native_invoker.unified_vector3(id, time, 0xF0F2103EFAF8CBA7, "if")end, - -- This native does no interpolation between pathpoints. The same rotation will be returned for all times up to the next pathpoint in the recording. - -- - -- See REQUEST_VEHICLE_RECORDING - ["GET_ROTATION_OF_VEHICLE_RECORDING_AT_TIME"]=--[[Vector3 (vector3)]] function(--[[int]] recording,--[[float]] time,--[[string]] script)return native_invoker.unified_vector3(recording, time, script, 0x2058206FBE79A8AD, "ifs")end, - ["GET_TOTAL_DURATION_OF_VEHICLE_RECORDING_ID"]=--[[float]] function(--[[int]] id)return native_invoker.unified_float(id, 0x102D125411A7B6E6, "i")end, - -- See REQUEST_VEHICLE_RECORDING - ["GET_TOTAL_DURATION_OF_VEHICLE_RECORDING"]=--[[float]] function(--[[int]] recording,--[[string]] script)return native_invoker.unified_float(recording, script, 0x0E48D1C262390950, "is")end, - -- Distance traveled in the vehicles current recording. - ["GET_POSITION_IN_RECORDING"]=--[[float]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_float(vehicle, 0x2DACD605FC681475, "i")end, - -- Can be used with GET_TOTAL_DURATION_OF_VEHICLE_RECORDING{_ID} to compute a percentage. - ["GET_TIME_POSITION_IN_RECORDING"]=--[[float]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_float(vehicle, 0x5746F3A7AB7FE544, "i")end, - -- p3 is some flag related to 'trailers' (invokes CVehicle::GetTrailer). - -- - -- See REQUEST_VEHICLE_RECORDING - ["START_PLAYBACK_RECORDED_VEHICLE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] recording,--[[string]] script,--[[BOOL (bool)]] p3)return native_invoker.unified_void(vehicle, recording, script, p3, 0x3F878F92B3A7A071, "iisb")end, - -- flags requires further research, e.g., 0x4/0x8 are related to the AI driving task and 0x20 is internally set and interacts with dynamic entity components. - -- - -- time, often zero and capped at 500, is related to SET_PLAYBACK_TO_USE_AI_TRY_TO_REVERT_BACK_LATER - ["START_PLAYBACK_RECORDED_VEHICLE_WITH_FLAGS"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] recording,--[[string]] script,--[[int]] flags,--[[int]] time,--[[int]] drivingStyle)return native_invoker.unified_void(vehicle, recording, script, flags, time, drivingStyle, 0x7D80FD645D4DA346, "iisiii")end, - -- Often called after START_PLAYBACK_RECORDED_VEHICLE and SKIP_TIME_IN_PLAYBACK_RECORDED_VEHICLE; similar in use to FORCE_ENTITY_AI_AND_ANIMATION_UPDATE. - ["FORCE_PLAYBACK_RECORDED_VEHICLE_UPDATE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0x1F2E4E06DEA8992B, "ib")end, - ["STOP_PLAYBACK_RECORDED_VEHICLE"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x54833611C17ABDEA, "i")end, - ["PAUSE_PLAYBACK_RECORDED_VEHICLE"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x632A689BF42301B1, "i")end, - ["UNPAUSE_PLAYBACK_RECORDED_VEHICLE"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x8879EE09268305D5, "i")end, - ["IS_PLAYBACK_GOING_ON_FOR_VEHICLE"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x1C8A4C2C19E68EEC, "i")end, - ["IS_PLAYBACK_USING_AI_GOING_ON_FOR_VEHICLE"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xAEA8FD591FAD4106, "i")end, - ["GET_CURRENT_PLAYBACK_FOR_VEHICLE"]=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x42BC05C27A946054, "i")end, - ["SKIP_TO_END_AND_STOP_PLAYBACK_RECORDED_VEHICLE"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0xAB8E2EDA0C0A5883, "i")end, - ["SET_PLAYBACK_SPEED"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] speed)return native_invoker.unified_void(vehicle, speed, 0x6683AB880E427778, "if")end, - -- AI abides by the provided driving style (e.g., stopping at red lights or waiting behind traffic) while executing the specificed vehicle recording. - -- - -- FORCE_PLAYBACK_RECORDED_VEHICLE_UPDATE is a related native that deals with the AI physics for such recordings. - ["START_PLAYBACK_RECORDED_VEHICLE_USING_AI"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] recording,--[[string]] script,--[[float]] speed,--[[int]] drivingStyle)return native_invoker.unified_void(vehicle, recording, script, speed, drivingStyle, 0x29DE5FA52D00428C, "iisfi")end, - -- SET_TIME_POSITION_IN_RECORDING can be emulated by: desired_time - GET_TIME_POSITION_IN_RECORDING(vehicle) - ["SKIP_TIME_IN_PLAYBACK_RECORDED_VEHICLE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] time)return native_invoker.unified_void(vehicle, time, 0x9438F7AD68771A20, "if")end, - -- Identical to SET_PLAYBACK_TO_USE_AI_TRY_TO_REVERT_BACK_LATER with 0 as arguments for p1 and p3. - ["SET_PLAYBACK_TO_USE_AI"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] drivingStyle)return native_invoker.unified_void(vehicle, drivingStyle, 0xA549C3B37EA28131, "ii")end, - -- Time is number of milliseconds before reverting, zero for indefinitely. - ["SET_PLAYBACK_TO_USE_AI_TRY_TO_REVERT_BACK_LATER"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] time,--[[int]] drivingStyle,--[[BOOL (bool)]] p3)return native_invoker.unified_void(vehicle, time, drivingStyle, p3, 0x6E63860BBB190730, "iiib")end, - ["SET_ADDITIONAL_ROTATION_FOR_RECORDED_VEHICLE_PLAYBACK"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] x,--[[float]] y,--[[float]] z,--[[Any (int)]] p4)return native_invoker.unified_void(vehicle, x, y, z, p4, 0x5845066D8A1EA7F7, "ifffi")end, - ["SET_POSITION_OFFSET_FOR_RECORDED_VEHICLE_PLAYBACK"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(vehicle, x, y, z, 0x796A877E459B99EA, "ifff")end, - ["SET_GLOBAL_POSITION_OFFSET_FOR_RECORDED_VEHICLE_PLAYBACK"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(vehicle, x, y, z, 0xFAF2A78061FD9EF4, "ifff")end, - -- A vehicle recording playback flag only used in jewelry_heist - ["SET_SHOULD_LERP_FROM_AI_TO_FULL_RECORDING"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0x063AE2B2CC273588, "ib")end, - ["EXPLODE_VEHICLE_IN_CUTSCENE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0x786A4EB67B01BF0B, "ib")end, - ["ADD_VEHICLE_STUCK_CHECK_WITH_WARP"]=--[[void]] function(--[[Any (int)]] p0,--[[float]] p1,--[[Any (int)]] p2,--[[BOOL (bool)]] p3,--[[BOOL (bool)]] p4,--[[BOOL (bool)]] p5,--[[Any (int)]] p6)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, p6, 0x2FA9923062DD396C, "ifibbbi")end, - -- Makes the vehicle stop spawning naturally in traffic. Here's an essential example: - -- - -- VEHICLE::SET_VEHICLE_MODEL_IS_SUPPRESSED(MISC::GET_HASH_KEY("taco"), true); - -- - -- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - ["SET_VEHICLE_MODEL_IS_SUPPRESSED"]=--[[void]] function(--[[Hash (int)]] model,--[[BOOL (bool)]] suppressed)return native_invoker.unified_void(model, suppressed, 0x0FC2D89AC25A5814, "ib")end, - -- Gets a random vehicle in a sphere at the specified position, of the specified radius. - -- - -- x: The X-component of the position of the sphere. - -- y: The Y-component of the position of the sphere. - -- z: The Z-component of the position of the sphere. - -- radius: The radius of the sphere. Max is 9999.9004. - -- modelHash: The vehicle model to limit the selection to. Pass 0 for any model. - -- flags: The bitwise flags that modifies the behaviour of this function. - -- - -- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - ["GET_RANDOM_VEHICLE_IN_SPHERE"]=--[[Vehicle (int)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[Hash (int)]] modelHash,--[[int]] flags)return native_invoker.unified_int(x, y, z, radius, modelHash, flags, 0x386F6CE5BAF6091C, "ffffii")end, - ["GET_RANDOM_VEHICLE_FRONT_BUMPER_IN_SPHERE"]=--[[Vehicle (int)]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[int]] p4,--[[int]] p5,--[[int]] p6)return native_invoker.unified_int(p0, p1, p2, p3, p4, p5, p6, 0xC5574E0AEB86BA68, "ffffiii")end, - ["GET_RANDOM_VEHICLE_BACK_BUMPER_IN_SPHERE"]=--[[Vehicle (int)]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[int]] p4,--[[int]] p5,--[[int]] p6)return native_invoker.unified_int(p0, p1, p2, p3, p4, p5, p6, 0xB50807EABE20A8DC, "ffffiii")end, - -- Example usage - -- VEHICLE::GET_CLOSEST_VEHICLE(x, y, z, radius, hash, unknown leave at 70) - -- - -- x, y, z: Position to get closest vehicle to. - -- radius: Max radius to get a vehicle. - -- modelHash: Limit to vehicles with this model. 0 for any. - -- flags: The bitwise flags altering the function's behaviour. - -- - -- Does not return police cars or helicopters. - -- - -- It seems to return police cars for me, does not seem to return helicopters, planes or boats for some reason - -- - -- Only returns non police cars and motorbikes with the flag set to 70 and modelHash to 0. ModelHash seems to always be 0 when not a modelHash in the scripts, as stated above. - -- - -- These flags were found in the b617d scripts: 0,2,4,6,7,23,127,260,2146,2175,12294,16384,16386,20503,32768,67590,67711,98309,100359. - -- Converted to binary, each bit probably represents a flag as explained regarding another native here: gtaforums.com/topic/822314-guide-driving-styles - -- - -- Conversion of found flags to binary: https://pastebin.com/kghNFkRi - -- - -- At exactly 16384 which is 0100000000000000 in binary and 4000 in hexadecimal only planes are returned. - -- - -- It's probably more convenient to use worldGetAllVehicles(int *arr, int arrSize) and check the shortest distance yourself and sort if you want by checking the vehicle type with for example VEHICLE::IS_THIS_MODEL_A_BOAT - -- - -- ------------------------------------------------------------------------- - -- - -- Conclusion: This native is not worth trying to use. Use something like this instead: https://pastebin.com/xiFdXa7h - -- - -- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - ["GET_CLOSEST_VEHICLE"]=--[[Vehicle (int)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[Hash (int)]] modelHash,--[[int]] flags)return native_invoker.unified_int(x, y, z, radius, modelHash, flags, 0xF73EB622C4F1689B, "ffffii")end, - -- Corrected p1. it's basically the 'carriage/trailer number'. So if the train has 3 trailers you'd call the native once with a var or 3 times with 1, 2, 3. - ["GET_TRAIN_CARRIAGE"]=--[[Vehicle (int)]] function(--[[Vehicle (int)]] train,--[[int]] trailerNumber)return native_invoker.unified_int(train, trailerNumber, 0x08AAFD0814722BC3, "ii")end, - ["IS_MISSION_TRAIN"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] train)return native_invoker.unified_bool(train, 0xAD464F2E18836BFC, "i")end, - ["DELETE_MISSION_TRAIN"]=--[[void]] function(--[[Vehicle* (pointer)]] train)return native_invoker.unified_void(train, 0x5B76B14AE875C795, "p")end, - -- p1 is always 0 - ["SET_MISSION_TRAIN_AS_NO_LONGER_NEEDED"]=--[[void]] function(--[[Vehicle* (pointer)]] train,--[[BOOL (bool)]] p1)return native_invoker.unified_void(train, p1, 0xBBE7648349B49BE8, "pb")end, - ["SET_MISSION_TRAIN_COORDS"]=--[[void]] function(--[[Vehicle (int)]] train,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(train, x, y, z, 0x591CA673AA6AB736, "ifff")end, - ["IS_THIS_MODEL_A_BOAT"]=--[[BOOL (bool)]] function(--[[Hash (int)]] model)return native_invoker.unified_bool(model, 0x45A9187928F4B9E3, "i")end, - -- Checks if model is a boat, then checks for FLAG_IS_JETSKI. - ["IS_THIS_MODEL_A_JETSKI"]=--[[BOOL (bool)]] function(--[[Hash (int)]] model)return native_invoker.unified_bool(model, 0x9537097412CF75FE, "i")end, - ["IS_THIS_MODEL_A_PLANE"]=--[[BOOL (bool)]] function(--[[Hash (int)]] model)return native_invoker.unified_bool(model, 0xA0948AB42D7BA0DE, "i")end, - ["IS_THIS_MODEL_A_HELI"]=--[[BOOL (bool)]] function(--[[Hash (int)]] model)return native_invoker.unified_bool(model, 0xDCE4334788AF94EA, "i")end, - -- To check if the model is an amphibious car, use IS_THIS_MODEL_AN_AMPHIBIOUS_CAR. - ["IS_THIS_MODEL_A_CAR"]=--[[BOOL (bool)]] function(--[[Hash (int)]] model)return native_invoker.unified_bool(model, 0x7F6DB52EEFC96DF8, "i")end, - ["IS_THIS_MODEL_A_TRAIN"]=--[[BOOL (bool)]] function(--[[Hash (int)]] model)return native_invoker.unified_bool(model, 0xAB935175B22E822B, "i")end, - ["IS_THIS_MODEL_A_BIKE"]=--[[BOOL (bool)]] function(--[[Hash (int)]] model)return native_invoker.unified_bool(model, 0xB50C0B0CEDC6CE84, "i")end, - ["IS_THIS_MODEL_A_BICYCLE"]=--[[BOOL (bool)]] function(--[[Hash (int)]] model)return native_invoker.unified_bool(model, 0xBF94DD42F63BDED2, "i")end, - ["IS_THIS_MODEL_A_QUADBIKE"]=--[[BOOL (bool)]] function(--[[Hash (int)]] model)return native_invoker.unified_bool(model, 0x39DAC362EE65FA28, "i")end, - ["IS_THIS_MODEL_AN_AMPHIBIOUS_CAR"]=--[[BOOL (bool)]] function(--[[Hash (int)]] model)return native_invoker.unified_bool(model, 0x633F6F44A537EBB6, "i")end, - ["IS_THIS_MODEL_AN_AMPHIBIOUS_QUADBIKE"]=--[[BOOL (bool)]] function(--[[Hash (int)]] model)return native_invoker.unified_bool(model, 0xA1A9FC1C76A6730D, "i")end, - -- Equivalent of SET_HELI_BLADES_SPEED(vehicleHandle, 1.0f); - -- - -- this native works on planes to? - ["SET_HELI_BLADES_FULL_SPEED"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0xA178472EBB8AE60D, "i")end, - -- Sets the speed of the helicopter blades in percentage of the full speed. - -- - -- vehicleHandle: The helicopter. - -- speed: The speed in percentage, 0.0f being 0% and 1.0f being 100%. - ["SET_HELI_BLADES_SPEED"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] speed)return native_invoker.unified_void(vehicle, speed, 0xFD280B4D7F3ABC4D, "if")end, - ["FORCE_SUB_THROTTLE_FOR_TIME"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] p1,--[[float]] p2)return native_invoker.unified_void(vehicle, p1, p2, 0x99CAD8E7AFDB60FA, "iff")end, - -- This has not yet been tested - it's just an assumption of what the types could be. - ["SET_VEHICLE_CAN_BE_TARGETTED"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] state)return native_invoker.unified_void(vehicle, state, 0x3750146A28097A82, "ib")end, - ["SET_DONT_ALLOW_PLAYER_TO_ENTER_VEHICLE_IF_LOCKED_FOR_PLAYER"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0xDBC631F109350B8C, "ib")end, - ["SET_VEHICLE_CAN_BE_VISIBLY_DAMAGED"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] state)return native_invoker.unified_void(vehicle, state, 0x4C7028F78FFD3681, "ib")end, - ["SET_VEHICLE_HAS_UNBREAKABLE_LIGHTS"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x1AA8A837D2169D94, "ib")end, - ["SET_VEHICLE_RESPECTS_LOCKS_WHEN_HAS_DRIVER"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0x2311DD7159F00582, "ib")end, - ["SET_VEHICLE_CAN_EJECT_PASSENGERS_IF_LOCKED"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x065D03A9D6B2C6B5, "ii")end, - -- Dirt level does not become greater than 15.0 - ["GET_VEHICLE_DIRT_LEVEL"]=--[[float]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_float(vehicle, 0x8F17BC8BA08DA62B, "i")end, - -- You can't use values greater than 15.0 - -- Also, R* does (float)(rand() % 15) to get a random dirt level when generating a vehicle. - ["SET_VEHICLE_DIRT_LEVEL"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] dirtLevel)return native_invoker.unified_void(vehicle, dirtLevel, 0x79D3B596FE44EE8B, "if")end, - -- Appears to return true if the vehicle has any damage, including cosmetically. - ["GET_DOES_VEHICLE_HAVE_DAMAGE_DECALS"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xBCDC5017D3CE1E9E, "i")end, - -- doorId: see SET_VEHICLE_DOOR_SHUT - ["IS_VEHICLE_DOOR_FULLY_OPEN"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[int]] doorId)return native_invoker.unified_bool(vehicle, doorId, 0x3E933CFF7B111C22, "ii")end, - -- Starts or stops the engine on the specified vehicle. - -- - -- vehicle: The vehicle to start or stop the engine on. - -- value: true to turn the vehicle on; false to turn it off. - -- instantly: if true, the vehicle will be set to the state immediately; otherwise, the current driver will physically turn on or off the engine. - -- disableAutoStart: If true, the system will prevent the engine from starting when the player got into it. - -- - -- from what I've tested when I do this to a helicopter the propellers turn off after the engine has started. so is there any way to keep the heli propellers on? - ["SET_VEHICLE_ENGINE_ON"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] value,--[[BOOL (bool)]] instantly,--[[BOOL (bool)]] disableAutoStart)return native_invoker.unified_void(vehicle, value, instantly, disableAutoStart, 0x2497C4717C8B881E, "ibbb")end, - ["SET_VEHICLE_UNDRIVEABLE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x8ABA6AF54B942B95, "ib")end, - ["SET_VEHICLE_PROVIDES_COVER"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x5AFEEDD9BB2899D7, "ib")end, - -- doorId: see SET_VEHICLE_DOOR_SHUT - ["SET_VEHICLE_DOOR_CONTROL"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] doorId,--[[int]] speed,--[[float]] angle)return native_invoker.unified_void(vehicle, doorId, speed, angle, 0xF2BFA0430F0A0FCB, "iiif")end, - -- doorId: see SET_VEHICLE_DOOR_SHUT - ["SET_VEHICLE_DOOR_LATCHED"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] doorId,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3,--[[BOOL (bool)]] p4)return native_invoker.unified_void(vehicle, doorId, p2, p3, p4, 0xA5A9653A8D2CAF48, "iibbb")end, - -- doorId: see SET_VEHICLE_DOOR_SHUT - ["GET_VEHICLE_DOOR_ANGLE_RATIO"]=--[[float]] function(--[[Vehicle (int)]] vehicle,--[[int]] doorId)return native_invoker.unified_float(vehicle, doorId, 0xFE3F9C29F7B32BD5, "ii")end, - -- doorId: see SET_VEHICLE_DOOR_SHUT - ["GET_PED_USING_VEHICLE_DOOR"]=--[[Ped (int)]] function(--[[Vehicle (int)]] vehicle,--[[int]] doord)return native_invoker.unified_int(vehicle, doord, 0x218297BF0CFD853B, "ii")end, - -- enum eDoorId - -- { - -- VEH_EXT_DOOR_INVALID_ID = -1, - -- VEH_EXT_DOOR_DSIDE_F, - -- VEH_EXT_DOOR_DSIDE_R, - -- VEH_EXT_DOOR_PSIDE_F, - -- VEH_EXT_DOOR_PSIDE_R, - -- VEH_EXT_BONNET, - -- VEH_EXT_BOOT - -- }; - ["SET_VEHICLE_DOOR_SHUT"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] doorId,--[[BOOL (bool)]] closeInstantly)return native_invoker.unified_void(vehicle, doorId, closeInstantly, 0x93D9BD300D7789E5, "iib")end, - -- doorId: see SET_VEHICLE_DOOR_SHUT - ["SET_VEHICLE_DOOR_BROKEN"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] doorId,--[[BOOL (bool)]] deleteDoor)return native_invoker.unified_void(vehicle, doorId, deleteDoor, 0xD4D4F6A4AB575A33, "iib")end, - ["SET_VEHICLE_CAN_BREAK"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x59BF8C3D52C92F66, "ib")end, - ["DOES_VEHICLE_HAVE_ROOF"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x8AC862B0B32C5B80, "i")end, - ["SET_VEHICLE_REMOVE_AGGRESSIVE_CARJACK_MISSION"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xC4B3347BD68BD609, "i")end, - ["SET_VEHICLE_AVOID_PLAYER_VEHICLE_RIOT_VAN_MISSION"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xD3301660A57C9272, "i")end, - ["SET_CARJACK_MISSION_REMOVAL_PARAMETERS"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xB9562064627FF9DB, "ii")end, - -- Returns true if MF_IS_BIG (strModelFlags 0x8) handling model flag is set. - ["IS_BIG_VEHICLE"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x9F243D3919F442FE, "i")end, - -- Returns the total amount of color combinations found in the vehicle's carvariations.meta entry. - ["GET_NUMBER_OF_VEHICLE_COLOURS"]=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x3B963160CD65D41E, "i")end, - -- Sets the selected vehicle's colors to the specified index of the color combination found in the vehicle's carvariations.meta entry. - ["SET_VEHICLE_COLOUR_COMBINATION"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] colorCombination)return native_invoker.unified_void(vehicle, colorCombination, 0x33E8CD3322E2FE31, "ii")end, - -- Returns the index of the color combination found in the vehicle's carvariations.meta entry. - ["GET_VEHICLE_COLOUR_COMBINATION"]=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x6A842D197F845D56, "i")end, - -- `color`: is the paint index for the vehicle. - -- Paint index goes from 0 to 12. - -- Be aware that it only works on xenon lights. Example: https://i.imgur.com/yV3cpG9.png - -- Full list of all vehicle xenon lights by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicleColors.json - ["SET_VEHICLE_XENON_LIGHT_COLOR_INDEX"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] colorIndex)return native_invoker.unified_void(vehicle, colorIndex, 0xE41033B25D003A07, "ii")end, - -- Returns the headlight color index from the vehicle. Value between 0, 12. - -- Use SET_VEHICLE_XENON_LIGHT_COLOR_INDEX to set the headlights color for the vehicle. - -- Must enable xenon headlights before it'll take affect. - -- - -- Returns an int, value between 0-12 or 255 if no color is set. - ["GET_VEHICLE_XENON_LIGHT_COLOR_INDEX"]=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x3DFF319A831E0CDB, "i")end, - -- Setting this to false, makes the specified vehicle to where if you press Y your character doesn't even attempt the animation to enter the vehicle. Hence it's not considered aka ignored. - ["SET_VEHICLE_IS_CONSIDERED_BY_PLAYER"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x31B927BBC44156CD, "ib")end, - ["SET_VEHICLE_WILL_FORCE_OTHER_VEHICLES_TO_STOP"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xBE5C1255A1830FF5, "ib")end, - ["SET_VEHICLE_ACT_AS_IF_HAS_SIREN_ON"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0x9BECD4B9FEF3F8A6, "ib")end, - ["SET_VEHICLE_USE_MORE_RESTRICTIVE_SPAWN_CHECKS"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0x88BC673CA9E0AE99, "ib")end, - ["SET_VEHICLE_MAY_BE_USED_BY_GOTO_POINT_ANY_MEANS"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0xE851E480B814D4BA, "ib")end, - -- Not present in the retail version! It's just a nullsub. - -- - -- p0 always true (except in one case) - -- successIndicator: 0 if success, -1 if failed - ["GET_RANDOM_VEHICLE_MODEL_IN_MEMORY"]=--[[void]] function(--[[BOOL (bool)]] p0,--[[Hash* (pointer)]] modelHash,--[[int* (pointer)]] successIndicator)return native_invoker.unified_void(p0, modelHash, successIndicator, 0x055BF0AC0C34F4FD, "bpp")end, - -- enum VehicleLockStatus = { - -- None = 0, - -- Unlocked = 1, - -- Locked = 2, - -- LockedForPlayer = 3, - -- StickPlayerInside = 4, -- Doesn't allow players to exit the vehicle with the exit vehicle key. - -- CanBeBrokenInto = 7, -- Can be broken into the car. If the glass is broken, the value will be set to 1 - -- CanBeBrokenIntoPersist = 8, -- Can be broken into persist - -- CannotBeTriedToEnter = 10, -- Cannot be tried to enter (Nothing happens when you press the vehicle enter key). - -- } - ["GET_VEHICLE_DOOR_LOCK_STATUS"]=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x25BC98A59C2EA962, "i")end, - -- Returns vehicle door lock state previously set with SET_VEHICLE_INDIVIDUAL_DOORS_LOCKED - ["GET_VEHICLE_INDIVIDUAL_DOOR_LOCK_STATUS"]=--[[int]] function(--[[Vehicle (int)]] vehicle,--[[int]] doorId)return native_invoker.unified_int(vehicle, doorId, 0xCA4AC3EAAE46EC7B, "ii")end, - -- doorID starts at 0, not seeming to skip any numbers. Four door vehicles intuitively range from 0 to 3. - ["IS_VEHICLE_DOOR_DAMAGED"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] veh,--[[int]] doorID)return native_invoker.unified_bool(veh, doorID, 0xB8E181E559464527, "ii")end, - -- doorId: see SET_VEHICLE_DOOR_SHUT - ["SET_DOOR_ALLOWED_TO_BE_BROKEN_OFF"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] doorId,--[[BOOL (bool)]] isBreakable)return native_invoker.unified_void(vehicle, doorId, isBreakable, 0x2FA133A4A9D37ED8, "iib")end, - ["IS_VEHICLE_BUMPER_BOUNCING"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] frontBumper)return native_invoker.unified_bool(vehicle, frontBumper, 0x27B926779DEB502D, "ib")end, - ["IS_VEHICLE_BUMPER_BROKEN_OFF"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] frontBumper)return native_invoker.unified_bool(vehicle, frontBumper, 0x468056A6BB6F3846, "ib")end, - -- Usage: - -- - -- public bool isCopInRange(Vector3 Location, float Range) - -- { - -- return Function.Call(Hash.IS_COP_PED_IN_AREA_3D, Location.X - Range, Location.Y - Range, Location.Z - Range, Location.X + Range, Location.Y + Range, Location.Z + Range); - -- } - ["IS_COP_VEHICLE_IN_AREA_3D"]=--[[BOOL (bool)]] function(--[[float]] x1,--[[float]] x2,--[[float]] y1,--[[float]] y2,--[[float]] z1,--[[float]] z2)return native_invoker.unified_bool(x1, x2, y1, y2, z1, z2, 0x7EEF65D5F153E26A, "ffffff")end, - -- Public Function isVehicleOnAllWheels(vh As Vehicle) As Boolean - -- Return Native.Function.Call(Of Boolean)(Hash.IS_VEHICLE_ON_ALL_WHEELS, vh) - -- End Function - -- - ["IS_VEHICLE_ON_ALL_WHEELS"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xB104CD1BABF302E2, "i")end, - -- Returns `nMonetaryValue` from handling.meta for specific model. - ["GET_VEHICLE_MODEL_VALUE"]=--[[int]] function(--[[Hash (int)]] vehicleModel)return native_invoker.unified_int(vehicleModel, 0x5873C14A52D74236, "i")end, - -- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - ["GET_VEHICLE_LAYOUT_HASH"]=--[[Hash (int)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x28D37D4F71AC5C58, "i")end, - ["GET_IN_VEHICLE_CLIPSET_HASH_FOR_SEAT"]=--[[Hash (int)]] function(--[[Vehicle (int)]] vehicle,--[[int]] p1)return native_invoker.unified_int(vehicle, p1, 0xA01BC64DD4BFBBAC, "ii")end, - -- Makes the train all jumbled up and derailed as it moves on the tracks (though that wont stop it from its normal operations) - ["SET_RENDER_TRAIN_AS_DERAILED"]=--[[void]] function(--[[Vehicle (int)]] train,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(train, toggle, 0x317B11A312DF5534, "ib")end, - -- They use the same color indexs as SET_VEHICLE_COLOURS. - ["SET_VEHICLE_EXTRA_COLOURS"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] pearlescentColor,--[[int]] wheelColor)return native_invoker.unified_void(vehicle, pearlescentColor, wheelColor, 0x2036F561ADD12E33, "iii")end, - ["GET_VEHICLE_EXTRA_COLOURS"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int* (pointer)]] pearlescentColor,--[[int* (pointer)]] wheelColor)return native_invoker.unified_void(vehicle, pearlescentColor, wheelColor, 0x3BC4245933A166F7, "ipp")end, - ["SET_VEHICLE_EXTRA_COLOUR_5"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] color)return native_invoker.unified_void(vehicle, color, 0xF40DD601A65F7F19, "ii")end, - ["GET_VEHICLE_EXTRA_COLOUR_5"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int* (pointer)]] color)return native_invoker.unified_void(vehicle, color, 0x7D1464D472D32136, "ip")end, - ["SET_VEHICLE_EXTRA_COLOUR_6"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] color)return native_invoker.unified_void(vehicle, color, 0x6089CDF6A57F326C, "ii")end, - ["GET_VEHICLE_EXTRA_COLOUR_6"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int* (pointer)]] color)return native_invoker.unified_void(vehicle, color, 0xB7635E80A5C31BFF, "ip")end, - ["STOP_ALL_GARAGE_ACTIVITY"]=--[[void]] function()return native_invoker.unified_void(0x0F87E938BDF29D66, "")end, - -- This fixes a vehicle. - -- If the vehicle's engine's broken then you cannot fix it with this native. - ["SET_VEHICLE_FIXED"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x115722B1B9C14C1C, "i")end, - -- This fixes the deformation of a vehicle but the vehicle health doesn't improve - ["SET_VEHICLE_DEFORMATION_FIXED"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x953DA1E1B12C0491, "i")end, - ["SET_VEHICLE_CAN_ENGINE_MISSFIRE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x206BC5DC9D1AC70A, "ib")end, - ["SET_VEHICLE_CAN_LEAK_OIL"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x51BB2D88D31A914B, "ib")end, - ["SET_VEHICLE_CAN_LEAK_PETROL"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x192547247864DFDD, "ib")end, - ["SET_DISABLE_VEHICLE_PETROL_TANK_FIRES"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x465BF26AB9684352, "ib")end, - ["SET_DISABLE_VEHICLE_PETROL_TANK_DAMAGE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x37C8252A7C92D017, "ib")end, - ["SET_DISABLE_VEHICLE_ENGINE_FIRES"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x91A0BD635321F145, "ib")end, - ["SET_VEHICLE_LIMIT_SPEED_WHEN_PLAYER_INACTIVE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xC50CE861B55EAB8B, "ib")end, - -- sfink: sets bit in vehicle's structure, used by maintransition, fm_mission_controller, mission_race and a couple of other scripts. see dissassembly: - -- CVehicle *__fastcall sub_140CDAA10(signed int a1, char a2) - -- { - -- CVehicle *result; // rax@1 - -- - -- result = EntityAsCVehicle(a1); - -- if ( result ) - -- { - -- result->field_886 &= 0xEFu; - -- result->field_886 |= 16 * (a2 & 1); - -- } - -- return result; - -- } - ["SET_VEHICLE_STOP_INSTANTLY_WHEN_PLAYER_INACTIVE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x6EBFB22D646FFC18, "ib")end, - ["SET_DISABLE_PRETEND_OCCUPANTS"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x25367DE49D64CF16, "ib")end, - ["REMOVE_VEHICLES_FROM_GENERATORS_IN_AREA"]=--[[void]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[Any (int)]] p6)return native_invoker.unified_void(x1, y1, z1, x2, y2, z2, p6, 0x46A1E1A299EC4BBA, "ffffffi")end, - -- Locks the vehicle's steering to the desired angle, explained below. - -- - -- Requires to be called onTick. Steering is unlocked the moment the function stops being called on the vehicle. - -- - -- Steer bias: - -- -1.0 = full right - -- 0.0 = centered steering - -- 1.0 = full left - ["SET_VEHICLE_STEER_BIAS"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] value)return native_invoker.unified_void(vehicle, value, 0x42A8EC77D5150CBE, "if")end, - ["IS_VEHICLE_EXTRA_TURNED_ON"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[int]] extraId)return native_invoker.unified_bool(vehicle, extraId, 0xD2E6822DBFD6C8BD, "ii")end, - -- Available extraIds are 1-14, however none of the vehicles have extras above 12. - ["SET_VEHICLE_EXTRA"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] extraId,--[[BOOL (bool)]] disable)return native_invoker.unified_void(vehicle, extraId, disable, 0x7EE3A3C5E4A40CC9, "iib")end, - -- Checks via CVehicleModelInfo - ["DOES_EXTRA_EXIST"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[int]] extraId)return native_invoker.unified_bool(vehicle, extraId, 0x1262D55792428154, "ii")end, - -- Returns true if specified extra part is broken off. It only works for extras that can break off during collisions, non-breakable extras always return false. Also returns true if the breakable extra is toggled off through script. - ["IS_EXTRA_BROKEN_OFF"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[int]] extraId)return native_invoker.unified_bool(vehicle, extraId, 0x534E36D4DB9ECC5D, "ii")end, - ["SET_CONVERTIBLE_ROOF"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0xF39C4F538B5124C2, "ib")end, - ["LOWER_CONVERTIBLE_ROOF"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] instantlyLower)return native_invoker.unified_void(vehicle, instantlyLower, 0xDED51F703D0FA83D, "ib")end, - ["RAISE_CONVERTIBLE_ROOF"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] instantlyRaise)return native_invoker.unified_void(vehicle, instantlyRaise, 0x8F5FB35D7E88FC70, "ib")end, - -- 0 -> up - -- 1 -> lowering down - -- 2 -> down - -- 3 -> raising up - ["GET_CONVERTIBLE_ROOF_STATE"]=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0xF8C397922FC03F41, "i")end, - -- Returns true if the vehicle has a convertible roof. - -- - -- p1 is false almost always. However, in launcher_carwash/carwash1/carwash2 scripts, p1 is true and is accompanied by DOES_VEHICLE_HAVE_ROOF. If p1 is true, it seems that every single vehicle will return true irrespective of being a convertible. - ["IS_VEHICLE_A_CONVERTIBLE"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_bool(vehicle, p1, 0x52F357A30698BCCE, "ib")end, - -- Transforms the `stormberg`/`toreador` to its "submarine" variant. If the vehicle is already in that state then the vehicle transformation audio will still play, but the vehicle won't change at all. - ["TRANSFORM_TO_SUBMARINE"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] noAnimation)return native_invoker.unified_bool(vehicle, noAnimation, 0xBE4C854FFDB6EEBE, "ib")end, - -- Transforms the `stormberg`/`toreador` to its "road vehicle" variant. If the vehicle is already in that state then the vehicle transformation audio will still play, but the vehicle won't change at all. - ["TRANSFORM_TO_CAR"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] noAnimation)return native_invoker.unified_void(vehicle, noAnimation, 0x2A69FFD1B42BFF9E, "ib")end, - ["IS_VEHICLE_IN_SUBMARINE_MODE"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xA77DC70BD689A1E5, "i")end, - ["IS_VEHICLE_STOPPED_AT_TRAFFIC_LIGHTS"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x2959F696AE390A99, "i")end, - -- Apply damage to vehicle at a location. Location is relative to vehicle model (not world). - -- - -- Radius of effect damage applied in a sphere at impact location - -- When `focusOnModel` set to `true`, the damage sphere will travel towards the vehicle from the given point, thus guaranteeing an impact - ["SET_VEHICLE_DAMAGE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] xOffset,--[[float]] yOffset,--[[float]] zOffset,--[[float]] damage,--[[float]] radius,--[[BOOL (bool)]] focusOnModel)return native_invoker.unified_void(vehicle, xOffset, yOffset, zOffset, damage, radius, focusOnModel, 0xA1DD317EA8FD4F29, "ifffffb")end, - ["SET_VEHICLE_OCCUPANTS_TAKE_EXPLOSIVE_DAMAGE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x35BB21DE06784373, "ib")end, - -- Returns 1000.0 if the function is unable to get the address of the specified vehicle or if it's not a vehicle. - -- - -- Minimum: -4000 - -- Maximum: 1000 - -- - -- -4000: Engine is destroyed - -- 0 and below: Engine catches fire and health rapidly declines - -- 300: Engine is smoking and losing functionality - -- 1000: Engine is perfect - ["GET_VEHICLE_ENGINE_HEALTH"]=--[[float]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_float(vehicle, 0xC45D23BAF168AAB8, "i")end, - -- 1000 is max health - -- Begins leaking gas at around 650 health - -- Minimum: -4000 - -- Maximum: 1000 - -- - -- -4000: Engine is destroyed - -- 0 and below: Engine catches fire and health rapidly declines - -- 300: Engine is smoking and losing functionality - -- 1000: Engine is perfect - ["SET_VEHICLE_ENGINE_HEALTH"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] health)return native_invoker.unified_void(vehicle, health, 0x45F6D8EEF34ABEF1, "if")end, - -- Works just like SET_VEHICLE_ENGINE_HEALTH, but only for planes. - ["SET_PLANE_ENGINE_HEALTH"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] health)return native_invoker.unified_void(vehicle, health, 0x2A86A0475B6A1434, "if")end, - -- 1000 is max health - -- Begins leaking gas at around 650 health - -- -999.90002441406 appears to be minimum health, although nothing special occurs - ["GET_VEHICLE_PETROL_TANK_HEALTH"]=--[[float]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_float(vehicle, 0x7D5DABE888D2D074, "i")end, - -- 1000 is max health - -- Begins leaking gas at around 650 health - -- -999.90002441406 appears to be minimum health, although nothing special occurs - ["SET_VEHICLE_PETROL_TANK_HEALTH"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] health)return native_invoker.unified_void(vehicle, health, 0x70DB57649FA8D0D8, "if")end, - -- p1 can be anywhere from 0 to 3 in the scripts. - -- p2 being how long in milliseconds the vehicle has been stuck - ["IS_VEHICLE_STUCK_TIMER_UP"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[int]] p1,--[[int]] ms)return native_invoker.unified_bool(vehicle, p1, ms, 0x679BE1DAF71DA874, "iii")end, - -- The inner function has a switch on the second parameter. It's the stuck timer index. - -- - -- Here's some pseudo code I wrote for the inner function: - -- void __fastcall NATIVE_RESET_VEHICLE_STUCK_TIMER_INNER(CUnknown* unknownClassInVehicle, int timerIndex) - -- { - -- switch (timerIndex) - -- { - -- case 0: - -- unknownClassInVehicle->FirstStuckTimer = (WORD)0u; - -- case 1: - -- unknownClassInVehicle->SecondStuckTimer = (WORD)0u; - -- case 2: - -- unknownClassInVehicle->ThirdStuckTimer = (WORD)0u; - -- case 3: - -- unknownClassInVehicle->FourthStuckTimer = (WORD)0u; - -- case 4: - -- unknownClassInVehicle->FirstStuckTimer = (WORD)0u; - -- unknownClassInVehicle->SecondStuckTimer = (WORD)0u; - -- unknownClassInVehicle->ThirdStuckTimer = (WORD)0u; - -- unknownClassInVehicle->FourthStuckTimer = (WORD)0u; - -- break; - -- }; - -- } - ["RESET_VEHICLE_STUCK_TIMER"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] nullAttributes)return native_invoker.unified_void(vehicle, nullAttributes, 0xD7591B0065AFAA7A, "ii")end, - -- p1 is always 0 in the scripts. - -- - -- p1 = check if vehicle is on fire - ["IS_VEHICLE_DRIVEABLE"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] isOnFireCheck)return native_invoker.unified_bool(vehicle, isOnFireCheck, 0x4C241E39B23DF959, "ib")end, - ["SET_VEHICLE_HAS_BEEN_OWNED_BY_PLAYER"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] owned)return native_invoker.unified_void(vehicle, owned, 0x2B5F9D2AF1F1722D, "ib")end, - ["SET_VEHICLE_NEEDS_TO_BE_HOTWIRED"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xFBA550EA44404EE6, "ib")end, - ["SET_VEHICLE_BLIP_THROTTLE_RANDOMLY"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0x9F3F689B814F2599, "ib")end, - ["SET_POLICE_FOCUS_WILL_TRACK_VEHICLE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x4E74E62E0A97E901, "ib")end, - -- Sounds the horn for the specified vehicle. - -- - -- vehicle: The vehicle to activate the horn for. - -- mode: The hash of "NORMAL" or "HELDDOWN". Can be 0. - -- duration: The duration to sound the horn, in milliseconds. - -- - -- Note: If a player is in the vehicle, it will only sound briefly. - ["START_VEHICLE_HORN"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] duration,--[[Hash (int)]] mode,--[[BOOL (bool)]] forever)return native_invoker.unified_void(vehicle, duration, mode, forever, 0x9C8C6504B5B63D2C, "iiib")end, - -- If set to TRUE, it seems to suppress door noises and doesn't allow the horn to be continuous. - ["SET_VEHICLE_IN_CAR_MOD_SHOP"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x9D44FCCE98450843, "ib")end, - -- if true, axles won't bend. - ["SET_VEHICLE_HAS_STRONG_AXLES"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x92F0CF722BC4202F, "ib")end, - -- Returns model name of vehicle in all caps. Needs to be displayed through localizing text natives to get proper display name. - -- ----------------------------------------------------------------------------------------------------------------------------------------- - -- While often the case, this does not simply return the model name of the vehicle (which could be hashed to return the model hash). Variations of the same vehicle may also use the same display name. - -- ----------------------------------------------------------------------------------------------------------------------------------------- - -- - -- Returns "CARNOTFOUND" if the hash doesn't match a vehicle hash. - -- - -- Using HUD::GET_FILENAME_FOR_AUDIO_CONVERSATION, you can get the localized name. - -- - -- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - ["GET_DISPLAY_NAME_FROM_VEHICLE_MODEL"]=--[[string]] function(--[[Hash (int)]] modelHash)return native_invoker.unified_string(modelHash, 0xB215AAC32D25D019, "i")end, - -- Will return a vehicle's manufacturer display label. - -- Returns "CARNOTFOUND" if the hash doesn't match a vehicle hash. - -- - -- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - ["GET_MAKE_NAME_FROM_VEHICLE_MODEL"]=--[[string]] function(--[[Hash (int)]] modelHash)return native_invoker.unified_string(modelHash, 0xF7AF4F159FF99F97, "i")end, - -- The only example I can find of this function in the scripts, is this: - -- - -- struct _s = VEHICLE::GET_VEHICLE_DEFORMATION_AT_POS(rPtr((A_0) + 4), 1.21f, 6.15f, 0.3f); - -- - -- ----------------------------------------------------------------------------------------------------------------------------------------- - -- PC scripts: - -- - -- v_5/*{3}*/ = VEHICLE::GET_VEHICLE_DEFORMATION_AT_POS(a_0._f1, 1.21, 6.15, 0.3); - ["GET_VEHICLE_DEFORMATION_AT_POS"]=--[[Vector3 (vector3)]] function(--[[Vehicle (int)]] vehicle,--[[float]] offsetX,--[[float]] offsetY,--[[float]] offsetZ)return native_invoker.unified_vector3(vehicle, offsetX, offsetY, offsetZ, 0x4EC6CFBC7B2E9536, "ifff")end, - ["SET_VEHICLE_LIVERY"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] livery)return native_invoker.unified_void(vehicle, livery, 0x60BF608F1B8CD1B6, "ii")end, - -- -1 = no livery - ["GET_VEHICLE_LIVERY"]=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x2BB9230590DA5E8A, "i")end, - -- Returns -1 if the vehicle has no livery - ["GET_VEHICLE_LIVERY_COUNT"]=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x87B63E25A529D526, "i")end, - -- Used to set the secondary livery (the roof on Tornado Custom being one such example.) - -- - -- Livery value is dependent on the amount of liveries present in the vehicle's texture dictionary, for Tornado Custom this would be 0-6. - ["SET_VEHICLE_LIVERY2"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] livery)return native_invoker.unified_void(vehicle, livery, 0xA6D3A8750DC73270, "ii")end, - -- Returns index of the current vehicle's secondary livery. A getter for SET_VEHICLE_LIVERY2. - ["GET_VEHICLE_LIVERY2"]=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x60190048C0764A26, "i")end, - -- Returns a number of available secondary liveries, or -1 if vehicle has no secondary liveries available. - ["GET_VEHICLE_LIVERY2_COUNT"]=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x5ECB40269053C0D4, "i")end, - -- This will return false if the window is broken, or rolled down. - -- Window indexes: - -- 0 = Front Right Window - -- 1 = Front Left Window - -- 2 = Back Right Window - -- 3 = Back Left Window - -- - -- - -- Those numbers go on for vehicles that have more than 4 doors with windows. - ["IS_VEHICLE_WINDOW_INTACT"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[int]] windowIndex)return native_invoker.unified_bool(vehicle, windowIndex, 0x46E571A0E20D01F1, "ii")end, - -- Appears to return false if any window is broken. - ["ARE_ALL_VEHICLE_WINDOWS_INTACT"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x11D862A3E977A9EF, "i")end, - -- Returns false if every seat is occupied. - ["ARE_ANY_VEHICLE_SEATS_FREE"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x2D34FC3BC4ADB780, "i")end, - ["RESET_VEHICLE_WHEELS"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x21D2E5662C1F6FED, "ib")end, - ["IS_HELI_PART_BROKEN"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2,--[[BOOL (bool)]] p3)return native_invoker.unified_bool(vehicle, p1, p2, p3, 0xBC74B4BE25EB6C8A, "ibbb")end, - -- Max 1000. - -- At 0 the main rotor will stall. - ["GET_HELI_MAIN_ROTOR_HEALTH"]=--[[float]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_float(vehicle, 0xE4CB7541F413D2C5, "i")end, - -- Max 1000. - -- At 0 the tail rotor will stall. - ["GET_HELI_TAIL_ROTOR_HEALTH"]=--[[float]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_float(vehicle, 0xAE8CE82A4219AC8C, "i")end, - -- Max 1000. - -- At -100 both helicopter rotors will stall. - ["GET_HELI_TAIL_BOOM_HEALTH"]=--[[float]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_float(vehicle, 0xAC51915D27E4A5F7, "i")end, - ["SET_HELI_MAIN_ROTOR_HEALTH"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] health)return native_invoker.unified_void(vehicle, health, 0x4056EA1105F5ABD7, "if")end, - ["SET_HELI_TAIL_ROTOR_HEALTH"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] health)return native_invoker.unified_void(vehicle, health, 0xFE205F38AAA58E5B, "if")end, - ["SET_HELI_TAIL_BOOM_CAN_BREAK_OFF"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_bool(vehicle, toggle, 0x3EC8BF18AA453FE9, "ib")end, - -- NOTE: Debugging functions are not present in the retail version of the game. - ["SET_VEHICLE_NAME_DEBUG"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[string]] name)return native_invoker.unified_void(vehicle, name, 0xBFDF984E2C22B94F, "is")end, - -- Sets a vehicle to be strongly resistant to explosions. p0 is the vehicle; set p1 to false to toggle the effect on/off. - ["SET_VEHICLE_EXPLODES_ON_HIGH_EXPLOSION_DAMAGE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x71B0892EC081D60A, "ib")end, - ["SET_VEHICLE_EXPLODES_ON_EXPLOSION_DAMAGE_AT_ZERO_BODY_HEALTH"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xD565F438137F0E10, "ib")end, - ["SET_ALLOW_VEHICLE_EXPLODES_ON_CONTACT"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x3441CAD2F2231923, "ib")end, - ["SET_VEHICLE_DISABLE_TOWING"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x2B6747FAA9DB9D6B, "ib")end, - ["GET_VEHICLE_HAS_LANDING_GEAR"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xE43701C36CAFF1A4, "i")end, - -- Works for vehicles with a retractable landing gear - -- - -- Landing gear states: - -- - -- 0: Deployed - -- 1: Closing - -- 2: Opening - -- 3: Retracted - ["CONTROL_LANDING_GEAR"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] state)return native_invoker.unified_void(vehicle, state, 0xCFC8BE9A5E1FE575, "ii")end, - -- Landing gear states: - -- - -- 0: Deployed - -- 1: Closing (Retracting) - -- 2: (Landing gear state 2 is never used.) - -- 3: Opening (Deploying) - -- 4: Retracted - -- - -- Returns the current state of the vehicles landing gear. - ["GET_LANDING_GEAR_STATE"]=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x9B0F3DCA3DB0F4CD, "i")end, - ["IS_ANY_VEHICLE_NEAR_POINT"]=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius)return native_invoker.unified_bool(x, y, z, radius, 0x61E1DD6125A3EEE6, "ffff")end, - ["REQUEST_VEHICLE_HIGH_DETAIL_MODEL"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0xA6E9FDCB2C76785E, "i")end, - ["_GET_VEHICLE_MODEL_NUM_DRIVE_GEARS"]=--[[int]] function(--[[Hash (int)]] vehicleModel)return native_invoker.unified_int(vehicleModel, 0x61F02E4E9A7A61EA, "i")end, - ["_GET_VEHICLE_MAX_DRIVE_GEAR_COUNT"]=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x24910C3D66BA770D, "i")end, - ["_GET_VEHICLE_CURRENT_DRIVE_GEAR"]=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x56185A25D45A0DCD, "i")end, - ["_GET_VEHICLE_CURRENT_REV_RATIO"]=--[[float]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_float(vehicle, 0xF9DDA40BC293A61E, "i")end, - ["REMOVE_VEHICLE_HIGH_DETAIL_MODEL"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x00689CDE5F7C6787, "i")end, - ["IS_VEHICLE_HIGH_DETAIL"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x1F25887F3C104278, "i")end, - -- REQUEST_VEHICLE_ASSET(GET_HASH_KEY(cargobob3), 3); - -- - -- vehicle found that have asset's: - -- cargobob3 - -- submersible - -- blazer - ["REQUEST_VEHICLE_ASSET"]=--[[void]] function(--[[Hash (int)]] vehicleHash,--[[int]] vehicleAsset)return native_invoker.unified_void(vehicleHash, vehicleAsset, 0x81A15811460FAB3A, "ii")end, - ["HAS_VEHICLE_ASSET_LOADED"]=--[[BOOL (bool)]] function(--[[int]] vehicleAsset)return native_invoker.unified_bool(vehicleAsset, 0x1BBE0523B8DB9A21, "i")end, - ["REMOVE_VEHICLE_ASSET"]=--[[void]] function(--[[int]] vehicleAsset)return native_invoker.unified_void(vehicleAsset, 0xACE699C71AB9DEB5, "i")end, - -- Sets how much the crane on the tow truck is raised, where 0.0 is fully lowered and 1.0 is fully raised. - ["SET_VEHICLE_TOW_TRUCK_ARM_POSITION"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] position)return native_invoker.unified_void(vehicle, position, 0xFE54B92A344583CA, "if")end, - ["_SET_ATTACHED_VEHICLE_TO_TOW_TRUCK_ARM"]=--[[void]] function(--[[Vehicle (int)]] towTruck,--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(towTruck, vehicle, 0x48BD57D0DD17786A, "ii")end, - -- HookOffset defines where the hook is attached. leave at 0 for default attachment. - ["ATTACH_VEHICLE_TO_TOW_TRUCK"]=--[[void]] function(--[[Vehicle (int)]] towTruck,--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] rear,--[[float]] hookOffsetX,--[[float]] hookOffsetY,--[[float]] hookOffsetZ)return native_invoker.unified_void(towTruck, vehicle, rear, hookOffsetX, hookOffsetY, hookOffsetZ, 0x29A16F8D621C4508, "iibfff")end, - -- First two parameters swapped. Scripts verify that towTruck is the first parameter, not the second. - ["DETACH_VEHICLE_FROM_TOW_TRUCK"]=--[[void]] function(--[[Vehicle (int)]] towTruck,--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(towTruck, vehicle, 0xC2DB6B6708350ED8, "ii")end, - ["DETACH_VEHICLE_FROM_ANY_TOW_TRUCK"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xD0E9CE05A1E68CD8, "i")end, - -- Scripts verify that towTruck is the first parameter, not the second. - ["IS_VEHICLE_ATTACHED_TO_TOW_TRUCK"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] towTruck,--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(towTruck, vehicle, 0x146DF9EC4C4B9FD4, "ii")end, - ["GET_ENTITY_ATTACHED_TO_TOW_TRUCK"]=--[[Entity (int)]] function(--[[Vehicle (int)]] towTruck)return native_invoker.unified_int(towTruck, 0xEFEA18DCF10F8F75, "i")end, - ["SET_VEHICLE_AUTOMATICALLY_ATTACHES"]=--[[Entity (int)]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1,--[[Any (int)]] p2)return native_invoker.unified_int(vehicle, p1, p2, 0x8BA6F76BC53A1493, "ibi")end, - -- Sets the arm position of a bulldozer. Position must be a value between 0.0 and 1.0. Ignored when `p2` is set to false, instead incrementing arm position by 0.1 (or 10%). - ["SET_VEHICLE_BULLDOZER_ARM_POSITION"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] position,--[[BOOL (bool)]] p2)return native_invoker.unified_void(vehicle, position, p2, 0xF8EBCCC96ADB9FB7, "ifb")end, - ["SET_VEHICLE_TANK_TURRET_POSITION"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] position,--[[BOOL (bool)]] p2)return native_invoker.unified_void(vehicle, position, p2, 0x56B94C6D7127DFBA, "ifb")end, - ["SET_VEHICLE_TURRET_TARGET"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] p5)return native_invoker.unified_void(vehicle, p1, x, y, z, p5, 0x0581730AB9380412, "ibfffb")end, - ["SET_VEHICLE_TANK_STATIONARY"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0x737E398138550FFF, "ib")end, - ["SET_VEHICLE_TURRET_SPEED_THIS_FRAME"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] speed)return native_invoker.unified_void(vehicle, speed, 0x1093408B4B9D1146, "if")end, - ["DISABLE_VEHICLE_TURRET_MOVEMENT_THIS_FRAME"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x32CAEDF24A583345, "i")end, - ["SET_VEHICLE_FLIGHT_NOZZLE_POSITION"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] angleRatio)return native_invoker.unified_void(vehicle, angleRatio, 0x30D779DE7C4F6DD3, "if")end, - ["SET_VEHICLE_FLIGHT_NOZZLE_POSITION_IMMEDIATE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] angle)return native_invoker.unified_void(vehicle, angle, 0x9AA47FFF660CB932, "if")end, - ["GET_VEHICLE_FLIGHT_NOZZLE_POSITION"]=--[[float]] function(--[[Vehicle (int)]] plane)return native_invoker.unified_float(plane, 0xDA62027C8BDB326E, "i")end, - -- True stops vtols from switching modes. Doesn't stop the sound though. - ["SET_DISABLE_VERTICAL_FLIGHT_MODE_TRANSITION"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xCE2B43770B655F8F, "ib")end, - ["GENERATE_VEHICLE_CREATION_POS_FROM_PATHS"]=--[[BOOL (bool)]] function(--[[Vector3* (pointer)]] outVec,--[[Any (int)]] p1,--[[Vector3* (pointer)]] outVec1,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5,--[[Any (int)]] p6,--[[Any (int)]] p7,--[[Any (int)]] p8)return native_invoker.unified_bool(outVec, p1, outVec1, p3, p4, p5, p6, p7, p8, 0xA4822F1CF23F4810, "pipiiiiii")end, - -- On accelerating, spins the driven wheels with the others braked, so you don't go anywhere. - ["SET_VEHICLE_BURNOUT"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xFB8794444A7D60FB, "ib")end, - -- Returns whether the specified vehicle is currently in a burnout. - -- - -- - -- vb.net - -- Public Function isVehicleInBurnout(vh As Vehicle) As Boolean - -- Return Native.Function.Call(Of Boolean)(Hash.IS_VEHICLE_IN_BURNOUT, vh) - -- End Function - ["IS_VEHICLE_IN_BURNOUT"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x1297A88E081430EB, "i")end, - -- Reduces grip significantly so it's hard to go anywhere. - ["SET_VEHICLE_REDUCE_GRIP"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x222FF6A823D122E2, "ib")end, - -- val is 0-3 - -- Often used in conjunction with: SET_VEHICLE_REDUCE_GRIP - ["SET_VEHICLE_REDUCE_GRIP_LEVEL"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] val)return native_invoker.unified_void(vehicle, val, 0x6DEE944E1EE90CFB, "ii")end, - -- Sets the turn signal enabled for a vehicle. - -- Set turnSignal to 1 for left light, 0 for right light. - ["SET_VEHICLE_INDICATOR_LIGHTS"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] turnSignal,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, turnSignal, toggle, 0xB5D45264751B7DF0, "iib")end, - ["SET_VEHICLE_BRAKE_LIGHTS"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x92B35082E0B42F66, "ib")end, - ["SET_VEHICLE_TAIL_LIGHTS"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x5815BD2763178DF4, "ib")end, - ["SET_VEHICLE_HANDBRAKE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x684785568EF26A22, "ib")end, - ["SET_VEHICLE_BRAKE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xE4E2FD323574965C, "ib")end, - ["INSTANTLY_FILL_VEHICLE_POPULATION"]=--[[void]] function()return native_invoker.unified_void(0x48ADC8A773564670, "")end, - ["HAS_INSTANT_FILL_VEHICLE_POPULATION_FINISHED"]=--[[BOOL (bool)]] function()return native_invoker.unified_bool(0x91D6DD290888CBAB, "")end, - ["NETWORK_ENABLE_EMPTY_CROWDING_VEHICLES_REMOVAL"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x51DB102F4A3BA5E0, "b")end, - -- Default:1000||This sets a value which is used when NETWORK_ENABLE_EMPTY_CROWDING_VEHICLES_REMOVAL(true) is called each frame. - ["NETWORK_CAP_EMPTY_CROWDING_VEHICLES_REMOVAL"]=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0xA4A9A4C40E615885, "i")end, - -- Gets the trailer of a vehicle and puts it into the trailer parameter. - ["GET_VEHICLE_TRAILER_VEHICLE"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[Vehicle* (pointer)]] trailer)return native_invoker.unified_bool(vehicle, trailer, 0x1CDD6BADC297830D, "ip")end, - ["_GET_VEHICLE_TRAILER_PARENT_VEHICLE"]=--[[Vehicle (int)]] function(--[[Vehicle (int)]] trailer)return native_invoker.unified_int(trailer, 0x80D9D32636369C92, "i")end, - -- vehicle must be a plane - ["SET_VEHICLE_USES_LARGE_REAR_RAMP"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xCAC66558B944DA67, "ib")end, - ["SET_VEHICLE_RUDDER_BROKEN"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x09606148B6C71DEF, "ib")end, - ["SET_CONVERTIBLE_ROOF_LATCH_STATE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] state)return native_invoker.unified_void(vehicle, state, 0x1A78AD3D8240536F, "ib")end, - ["GET_VEHICLE_ESTIMATED_MAX_SPEED"]=--[[float]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_float(vehicle, 0x53AF99BAA671CA47, "i")end, - ["GET_VEHICLE_MAX_BRAKING"]=--[[float]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_float(vehicle, 0xAD7E85FC227197C4, "i")end, - ["GET_VEHICLE_MAX_TRACTION"]=--[[float]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_float(vehicle, 0xA132FB5370554DB0, "i")end, - -- static - max acceleration - ["GET_VEHICLE_ACCELERATION"]=--[[float]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_float(vehicle, 0x5DD35C8D074E57AE, "i")end, - -- Returns max speed (without mods) of the specified vehicle model in m/s. - -- - -- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - ["GET_VEHICLE_MODEL_ESTIMATED_MAX_SPEED"]=--[[float]] function(--[[Hash (int)]] modelHash)return native_invoker.unified_float(modelHash, 0xF417C2502FFFED43, "i")end, - -- Returns max braking of the specified vehicle model. - -- - -- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - ["GET_VEHICLE_MODEL_MAX_BRAKING"]=--[[float]] function(--[[Hash (int)]] modelHash)return native_invoker.unified_float(modelHash, 0xDC53FD41B4ED944C, "i")end, - -- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - ["GET_VEHICLE_MODEL_MAX_BRAKING_MAX_MODS"]=--[[float]] function(--[[Hash (int)]] modelHash)return native_invoker.unified_float(modelHash, 0xBFBA3BA79CFF7EBF, "i")end, - -- Returns max traction of the specified vehicle model. - -- - -- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - ["GET_VEHICLE_MODEL_MAX_TRACTION"]=--[[float]] function(--[[Hash (int)]] modelHash)return native_invoker.unified_float(modelHash, 0x539DE94D44FDFD0D, "i")end, - -- Returns the acceleration of the specified model. - -- - -- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - ["GET_VEHICLE_MODEL_ACCELERATION"]=--[[float]] function(--[[Hash (int)]] modelHash)return native_invoker.unified_float(modelHash, 0x8C044C5C84505B6A, "i")end, - -- 9.8 * thrust if air vehicle, else 0.38 + drive force? - -- - -- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - ["GET_VEHICLE_MODEL_ACCELERATION_MAX_MODS"]=--[[float]] function(--[[Hash (int)]] modelHash)return native_invoker.unified_float(modelHash, 0x53409B5163D5B846, "i")end, - -- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - ["GET_FLYING_VEHICLE_MODEL_AGILITY"]=--[[float]] function(--[[Hash (int)]] modelHash)return native_invoker.unified_float(modelHash, 0xC6AD107DDC9054CC, "i")end, - -- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - ["GET_BOAT_VEHICLE_MODEL_AGILITY"]=--[[float]] function(--[[Hash (int)]] modelHash)return native_invoker.unified_float(modelHash, 0x5AA3F878A178C4FC, "i")end, - ["GET_VEHICLE_CLASS_ESTIMATED_MAX_SPEED"]=--[[float]] function(--[[int]] vehicleClass)return native_invoker.unified_float(vehicleClass, 0x00C09F246ABEDD82, "i")end, - ["GET_VEHICLE_CLASS_MAX_TRACTION"]=--[[float]] function(--[[int]] vehicleClass)return native_invoker.unified_float(vehicleClass, 0xDBC86D85C5059461, "i")end, - ["GET_VEHICLE_CLASS_MAX_AGILITY"]=--[[float]] function(--[[int]] vehicleClass)return native_invoker.unified_float(vehicleClass, 0x4F930AD022D6DE3B, "i")end, - ["GET_VEHICLE_CLASS_MAX_ACCELERATION"]=--[[float]] function(--[[int]] vehicleClass)return native_invoker.unified_float(vehicleClass, 0x2F83E7E45D9EA7AE, "i")end, - ["GET_VEHICLE_CLASS_MAX_BRAKING"]=--[[float]] function(--[[int]] vehicleClass)return native_invoker.unified_float(vehicleClass, 0x4BF54C16EC8FEC03, "i")end, - ["ADD_ROAD_NODE_SPEED_ZONE"]=--[[int]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[float]] speed,--[[BOOL (bool)]] p5)return native_invoker.unified_int(x, y, z, radius, speed, p5, 0x2CE544C68FB812A0, "fffffb")end, - ["REMOVE_ROAD_NODE_SPEED_ZONE"]=--[[BOOL (bool)]] function(--[[int]] speedzone)return native_invoker.unified_bool(speedzone, 0x1033371FC8E842A7, "i")end, - ["OPEN_BOMB_BAY_DOORS"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x87E7F24270732CB1, "i")end, - ["CLOSE_BOMB_BAY_DOORS"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x3556041742A0DC74, "i")end, - -- Returns true when the bomb bay doors of this plane are open. False if they're closed. - ["GET_ARE_BOMB_BAY_DOORS_OPEN"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] aircraft)return native_invoker.unified_bool(aircraft, 0xD0917A423314BBA8, "i")end, - -- Possibly: Returns whether the searchlight (found on police vehicles) is toggled on. - -- - -- @Author Nac - ["IS_VEHICLE_SEARCHLIGHT_ON"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xC0F97FCE55094987, "i")end, - -- Only works during nighttime. - ["SET_VEHICLE_SEARCHLIGHT"]=--[[void]] function(--[[Vehicle (int)]] heli,--[[BOOL (bool)]] toggle,--[[BOOL (bool)]] canBeUsedByAI)return native_invoker.unified_void(heli, toggle, canBeUsedByAI, 0x14E85C5EE7A4D542, "ibb")end, - ["DOES_VEHICLE_HAVE_SEARCHLIGHT"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x99015ED7DBEA5113, "i")end, - -- Check if a vehicle seat is accessible. If you park your vehicle near a wall and the ped cannot enter/exit this side, the return value toggles from true (not blocked) to false (blocked). - -- - -- seatIndex = -1 being the driver seat. - -- Use GET_VEHICLE_MAX_NUMBER_OF_PASSENGERS(vehicle) - 1 for last seat index. - -- side = only relevant for bikes/motorcycles to check if the left (false)/right (true) side is blocked. - -- onEnter = check if you can enter (true) or exit (false) a vehicle. - ["IS_ENTRY_POINT_FOR_SEAT_CLEAR"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] vehicle,--[[int]] seatIndex,--[[BOOL (bool)]] side,--[[BOOL (bool)]] onEnter)return native_invoker.unified_bool(ped, vehicle, seatIndex, side, onEnter, 0x639431E895B9AA57, "iiibb")end, - -- doorId: see SET_VEHICLE_DOOR_SHUT - ["GET_ENTRY_POINT_POSITION"]=--[[Vector3 (vector3)]] function(--[[Vehicle (int)]] vehicle,--[[int]] doorId)return native_invoker.unified_vector3(vehicle, doorId, 0xC0572928C0ABFDA3, "ii")end, - ["CAN_SHUFFLE_SEAT"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[int]] seatIndex)return native_invoker.unified_bool(vehicle, seatIndex, 0x30785D90C956BF35, "ii")end, - ["GET_NUM_MOD_KITS"]=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x33F2E3FE70EAAE1D, "i")end, - -- Set modKit to 0 if you plan to call SET_VEHICLE_MOD. That's what the game does. Most body modifications through SET_VEHICLE_MOD will not take effect until this is set to 0. - -- - -- Full list of vehicle mod kits and mods by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicleModKits.json - ["SET_VEHICLE_MOD_KIT"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] modKit)return native_invoker.unified_void(vehicle, modKit, 0x1F2AA07F00B3217A, "ii")end, - ["GET_VEHICLE_MOD_KIT"]=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x6325D1A044AE510D, "i")end, - ["GET_VEHICLE_MOD_KIT_TYPE"]=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0xFC058F5121E54C32, "i")end, - -- Returns an int - -- - -- Wheel Types: - -- 0: Sport - -- 1: Muscle - -- 2: Lowrider - -- 3: SUV - -- 4: Offroad - -- 5: Tuner - -- 6: Bike Wheels - -- 7: High End - -- 8: Benny's Originals - -- 9: Benny's Bespoke - -- 10: Racing - -- 11: Street - -- 12: Track - -- - -- Tested in Los Santos Customs - ["GET_VEHICLE_WHEEL_TYPE"]=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0xB3ED1BFB4BE636DC, "i")end, - -- 0: Sport - -- 1: Muscle - -- 2: Lowrider - -- 3: SUV - -- 4: Offroad - -- 5: Tuner - -- 6: Bike Wheels - -- 7: High End - -- 8: Benny's Originals - -- 9: Benny's Bespoke - -- 10: Racing - -- 11: Street - -- 12: Track - ["SET_VEHICLE_WHEEL_TYPE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] WheelType)return native_invoker.unified_void(vehicle, WheelType, 0x487EB21CC7295BA1, "ii")end, - -- paintType: - -- 0: Normal - -- 1: Metallic - -- 2: Pearl - -- 3: Matte - -- 4: Metal - -- 5: Chrome - -- 6: Chameleon - ["GET_NUM_MOD_COLORS"]=--[[int]] function(--[[int]] paintType,--[[BOOL (bool)]] p1)return native_invoker.unified_int(paintType, p1, 0xA551BE18C11A476D, "ib")end, - -- paintType: - -- 0: Normal - -- 1: Metallic - -- 2: Pearl - -- 3: Matte - -- 4: Metal - -- 5: Chrome - -- 6: Chameleon - -- - -- color: number of the color. - -- - -- p3 seems to always be 0. - -- - -- Full list of vehicle colors and vehicle plates by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicleColors.json - ["SET_VEHICLE_MOD_COLOR_1"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] paintType,--[[int]] color,--[[int]] pearlescentColor)return native_invoker.unified_void(vehicle, paintType, color, pearlescentColor, 0x43FEB945EE7F85B8, "iiii")end, - -- Changes the secondary paint type and color - -- paintType: - -- 0: Normal - -- 1: Metallic - -- 2: Pearl - -- 3: Matte - -- 4: Metal - -- 5: Chrome - -- 6: Chameleon - -- - -- color: number of the color - -- - -- Full list of vehicle colors and vehicle plates by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicleColors.json - ["SET_VEHICLE_MOD_COLOR_2"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] paintType,--[[int]] color)return native_invoker.unified_void(vehicle, paintType, color, 0x816562BADFDEC83E, "iii")end, - ["GET_VEHICLE_MOD_COLOR_1"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int* (pointer)]] paintType,--[[int* (pointer)]] color,--[[int* (pointer)]] pearlescentColor)return native_invoker.unified_void(vehicle, paintType, color, pearlescentColor, 0xE8D65CA700C9A693, "ippp")end, - ["GET_VEHICLE_MOD_COLOR_2"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int* (pointer)]] paintType,--[[int* (pointer)]] color)return native_invoker.unified_void(vehicle, paintType, color, 0x81592BE4E3878728, "ipp")end, - -- Returns a string which is the codename of the vehicle's currently selected primary color - -- - -- p1 is always 0 - ["GET_VEHICLE_MOD_COLOR_1_NAME"]=--[[string]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_string(vehicle, p1, 0xB45085B721EFD38C, "ib")end, - -- Returns a string which is the codename of the vehicle's currently selected secondary color - ["GET_VEHICLE_MOD_COLOR_2_NAME"]=--[[string]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_string(vehicle, 0x4967A516ED23A5A1, "i")end, - ["HAVE_VEHICLE_MODS_STREAMED_IN"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x9A83F5F9963775EF, "i")end, - -- Returns true for any mod part listed in GEN9_EXCLUSIVE_ASSETS_VEHICLES_FILE. - ["IS_VEHICLE_MOD_GEN9_EXCLUSIVE"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[int]] modType,--[[int]] modIndex)return native_invoker.unified_bool(vehicle, modType, modIndex, 0x00834EAC4A96E010, "iii")end, - -- In b944, there are 50 (0 - 49) mod types. - -- - -- Sets the vehicle mod. - -- The vehicle must have a mod kit first. - -- - -- Any out of range ModIndex is stock. - -- - -- #Mod Type - -- Spoilers - 0 - -- Front Bumper - 1 - -- Rear Bumper - 2 - -- Side Skirt - 3 - -- Exhaust - 4 - -- Frame - 5 - -- Grille - 6 - -- Hood - 7 - -- Fender - 8 - -- Right Fender - 9 - -- Roof - 10 - -- Engine - 11 - -- Brakes - 12 - -- Transmission - 13 - -- Horns - 14 (modIndex from 0 to 51) - -- Suspension - 15 - -- Armor - 16 - -- Front Wheels - 23 - -- Back Wheels - 24 //only for motocycles - -- Plate holders - 25 - -- Trim Design - 27 - -- Ornaments - 28 - -- Dial Design - 30 - -- Steering Wheel - 33 - -- Shifter Leavers - 34 - -- Plaques - 35 - -- Hydraulics - 38 - -- Livery - 48 - -- - -- ENUMS: https://pastebin.com/QzEAn02v - ["SET_VEHICLE_MOD"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] modType,--[[int]] modIndex,--[[BOOL (bool)]] customTires)return native_invoker.unified_void(vehicle, modType, modIndex, customTires, 0x6AF0636DDEDCB6DD, "iiib")end, - -- In b944, there are 50 (0 - 49) mod types. See SET_VEHICLE_MOD for the list. - -- - -- Returns -1 if the vehicle mod is stock - ["GET_VEHICLE_MOD"]=--[[int]] function(--[[Vehicle (int)]] vehicle,--[[int]] modType)return native_invoker.unified_int(vehicle, modType, 0x772960298DA26FDB, "ii")end, - -- Only used for wheels(ModType = 23/24) Returns true if the wheels are custom wheels - ["GET_VEHICLE_MOD_VARIATION"]=--[[int]] function(--[[Vehicle (int)]] vehicle,--[[int]] modType)return native_invoker.unified_int(vehicle, modType, 0xB3924ECD70E095DC, "ii")end, - -- Returns how many possible mods a vehicle has for a given mod type - ["GET_NUM_VEHICLE_MODS"]=--[[int]] function(--[[Vehicle (int)]] vehicle,--[[int]] modType)return native_invoker.unified_int(vehicle, modType, 0xE38E9162A2500646, "ii")end, - ["REMOVE_VEHICLE_MOD"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] modType)return native_invoker.unified_void(vehicle, modType, 0x92D619E420858204, "ii")end, - -- Toggles: - -- UNK17 - 17 - -- Turbo - 18 - -- UNK19 - 19 - -- Tire Smoke - 20 - -- UNK21 - 21 - -- Xenon Headlights - 22 - ["TOGGLE_VEHICLE_MOD"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] modType,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, modType, toggle, 0x2A1F4F37F95BAD08, "iib")end, - ["IS_TOGGLE_MOD_ON"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[int]] modType)return native_invoker.unified_bool(vehicle, modType, 0x84B233A8C8FC8AE7, "ii")end, - -- Returns the text label of a mod type for a given vehicle - -- - -- Use GET_FILENAME_FOR_AUDIO_CONVERSATION to get the part name in the game's language - ["GET_MOD_TEXT_LABEL"]=--[[string]] function(--[[Vehicle (int)]] vehicle,--[[int]] modType,--[[int]] modValue)return native_invoker.unified_string(vehicle, modType, modValue, 0x8935624F8C5592CC, "iii")end, - -- Returns the name for the type of vehicle mod(Armour, engine etc) - -- - ["GET_MOD_SLOT_NAME"]=--[[string]] function(--[[Vehicle (int)]] vehicle,--[[int]] modType)return native_invoker.unified_string(vehicle, modType, 0x51F0FEB9F6AE98C0, "ii")end, - -- Returns the text label of the vehicle's liveryIndex, as specified by the liveryNames section of the vehicle's modkit data in the carcols file. - -- - -- example - -- - -- int count = VEHICLE::GET_VEHICLE_LIVERY_COUNT(veh); - -- for (int i = 0; i < count; i++) - -- { - -- const char* LiveryName = VEHICLE::GET_LIVERY_NAME(veh, i); - -- } - -- - -- - -- this example will work fine to fetch all names - -- for example for Sanchez we get - -- - -- SANC_LV1 - -- SANC_LV2 - -- SANC_LV3 - -- SANC_LV4 - -- SANC_LV5 - -- - -- - -- Use GET_FILENAME_FOR_AUDIO_CONVERSATION, to get the localized livery name. - -- - -- Full list of vehicle mod kits and mods by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicleModKits.json - ["GET_LIVERY_NAME"]=--[[string]] function(--[[Vehicle (int)]] vehicle,--[[int]] liveryIndex)return native_invoker.unified_string(vehicle, liveryIndex, 0xB4C7A93837C91A1F, "ii")end, - ["GET_VEHICLE_MOD_MODIFIER_VALUE"]=--[[int]] function(--[[Vehicle (int)]] vehicle,--[[int]] modType,--[[int]] modIndex)return native_invoker.unified_int(vehicle, modType, modIndex, 0x90A38E9838E0A8C1, "iii")end, - -- Can be used for IS_DLC_VEHICLE_MOD and GET_DLC_VEHICLE_MOD_LOCK_HASH - ["GET_VEHICLE_MOD_IDENTIFIER_HASH"]=--[[Hash (int)]] function(--[[Vehicle (int)]] vehicle,--[[int]] modType,--[[int]] modIndex)return native_invoker.unified_int(vehicle, modType, modIndex, 0x4593CF82AA179706, "iii")end, - ["PRELOAD_VEHICLE_MOD"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] modType,--[[int]] modIndex)return native_invoker.unified_void(vehicle, modType, modIndex, 0x758F49C24925568A, "iii")end, - ["HAS_PRELOAD_MODS_FINISHED"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x06F43E5175EB6D96, "i")end, - ["RELEASE_PRELOAD_MODS"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x445D79F995508307, "i")end, - -- Sets the tire smoke's color of this vehicle. - -- - -- vehicle: The vehicle that is the target of this method. - -- r: The red level in the RGB color code. - -- g: The green level in the RGB color code. - -- b: The blue level in the RGB color code. - -- - -- Note: setting r,g,b to 0 will give the car the "Patriot" tire smoke. - ["SET_VEHICLE_TYRE_SMOKE_COLOR"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] r,--[[int]] g,--[[int]] b)return native_invoker.unified_void(vehicle, r, g, b, 0xB5BA80F839791C0F, "iiii")end, - ["GET_VEHICLE_TYRE_SMOKE_COLOR"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int* (pointer)]] r,--[[int* (pointer)]] g,--[[int* (pointer)]] b)return native_invoker.unified_void(vehicle, r, g, b, 0xB635392A4938B3C3, "ippp")end, - -- enum WindowTints - -- { - -- WINDOWTINT_NONE, - -- WINDOWTINT_PURE_BLACK, - -- WINDOWTINT_DARKSMOKE, - -- WINDOWTINT_LIGHTSMOKE, - -- WINDOWTINT_STOCK, - -- WINDOWTINT_LIMO, - -- WINDOWTINT_GREEN - -- }; - -- Full list of all vehicle window tints by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicleColors.json - ["SET_VEHICLE_WINDOW_TINT"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] tint)return native_invoker.unified_void(vehicle, tint, 0x57C51E6BAD752696, "ii")end, - ["GET_VEHICLE_WINDOW_TINT"]=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x0EE21293DAD47C95, "i")end, - ["GET_NUM_VEHICLE_WINDOW_TINTS"]=--[[int]] function()return native_invoker.unified_int(0x9D1224004B3A6707, "")end, - -- What's this for? Primary and Secondary RGB have their own natives and this one doesn't seem specific. - ["GET_VEHICLE_COLOR"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int* (pointer)]] r,--[[int* (pointer)]] g,--[[int* (pointer)]] b)return native_invoker.unified_void(vehicle, r, g, b, 0xF3CC740D36221548, "ippp")end, - -- Some kind of flags. - ["GET_VEHICLE_COLOURS_WHICH_CAN_BE_SET"]=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0xEEBFC7A7EFDC35B4, "i")end, - -- iVar3 = get_vehicle_cause_of_destruction(uLocal_248[iVar2]); - -- if (iVar3 == joaat("weapon_stickybomb")) - -- { - -- func_171(726); - -- iLocal_260 = 1; - -- } - ["GET_VEHICLE_CAUSE_OF_DESTRUCTION"]=--[[Hash (int)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0xE495D1EF4C91FD20, "i")end, - -- Used for helis. - ["OVERRIDE_PLANE_DAMAGE_THREHSOLD"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] health)return native_invoker.unified_void(vehicle, health, 0x5EE5632F47AE9695, "if")end, - ["_SET_TRANSMISSION_REDUCED_GEAR_RATIO"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x337EF33DA3DDB990, "ib")end, - ["_GET_VEHICLE_DESIRED_DRIVE_GEAR"]=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0xFD8CE53356B5D745, "i")end, - -- From the driver's perspective, is the left headlight broken. - ["GET_IS_LEFT_VEHICLE_HEADLIGHT_DAMAGED"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x5EF77C9ADD3B11A3, "i")end, - -- From the driver's perspective, is the right headlight broken. - ["GET_IS_RIGHT_VEHICLE_HEADLIGHT_DAMAGED"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xA7ECB73355EB2F20, "i")end, - -- Returns true when both headlights are broken. This does not include extralights. - ["GET_BOTH_VEHICLE_HEADLIGHTS_DAMAGED"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xEC69ADF931AAE0C3, "i")end, - ["MODIFY_VEHICLE_TOP_SPEED"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] value)return native_invoker.unified_void(vehicle, value, 0x93A3996368C94158, "if")end, - -- To reset the max speed, set the `speed` value to `0.0` or lower. - ["SET_VEHICLE_MAX_SPEED"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] speed)return native_invoker.unified_void(vehicle, speed, 0xBAA045B4E42F3C06, "if")end, - -- Has something to do with trains. Always precedes SET_MISSION_TRAIN_AS_NO_LONGER_NEEDED. - -- May be true that it can be used with trains not sure, but not specifically for trains. Go find Xbox360 decompiled scripts and search for 'func_1333' in freemode.c it isn't used just for trains. Thanks for the info tho. - ["SET_VEHICLE_STAYS_FROZEN_WHEN_CLEANED_UP"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x1CF38D529D7441D9, "ib")end, - ["SET_VEHICLE_ACT_AS_IF_HIGH_SPEED_FOR_FRAG_SMASHING"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0x1F9FB66F3A3842D2, "ib")end, - -- Sets some bit and float of vehicle. float is >= 0 - ["SET_PEDS_CAN_FALL_OFF_THIS_VEHICLE_FROM_LARGE_FALL_DAMAGE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle,--[[float]] p2)return native_invoker.unified_void(vehicle, toggle, p2, 0x59C3757B3B7408E8, "ibf")end, - ["ADD_VEHICLE_COMBAT_ANGLED_AVOIDANCE_AREA"]=--[[int]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[float]] p6)return native_invoker.unified_int(p0, p1, p2, p3, p4, p5, p6, 0x54B0F614960F4A5F, "fffffff")end, - ["REMOVE_VEHICLE_COMBAT_AVOIDANCE_AREA"]=--[[void]] function(--[[int]] p0)return native_invoker.unified_void(p0, 0xE30524E1871F481D, "i")end, - ["IS_ANY_PED_RAPPELLING_FROM_HELI"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x291E373D483E7EE7, "i")end, - -- <1.0 - Decreased torque - -- =1.0 - Default torque - -- >1.0 - Increased torque - -- - -- Negative values will cause the vehicle to go backwards instead of forwards while accelerating. - -- - -- value - is between 0.2 and 1.8 in the decompiled scripts. - -- - -- This needs to be called every frame to take effect. - ["SET_VEHICLE_CHEAT_POWER_INCREASE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] value)return native_invoker.unified_void(vehicle, value, 0xB59E4BD37AE292DB, "if")end, - ["SET_VEHICLE_INFLUENCES_WANTED_LEVEL"]=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0x0AD9E8F87FF7C16F, "ib")end, - -- Sets the wanted state of this vehicle. - ["SET_VEHICLE_IS_WANTED"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] state)return native_invoker.unified_void(vehicle, state, 0xF7EC25A3EBEEC726, "ib")end, - -- Sets the boat boom position for the `TR3` trailer. - -- Ratio value is between `0.0` and `1.0`, where `0.0` is 90 degrees to the left of the boat, and `1.0` is just slightly to the right/back of the boat. - -- To get the current boom position ratio, use GET_BOAT_BOOM_POSITION_RATIO - ["SWING_BOAT_BOOM_TO_RATIO"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] ratio)return native_invoker.unified_void(vehicle, ratio, 0xF488C566413B4232, "if")end, - -- Same call as ALLOW_BOAT_BOOM_TO_ANIMATE - ["SWING_BOAT_BOOM_FREELY"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xC1F981A6F74F0C23, "ib")end, - ["ALLOW_BOAT_BOOM_TO_ANIMATE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x0F3B4D4E43177236, "ib")end, - ["GET_BOAT_BOOM_POSITION_RATIO"]=--[[float]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_float(vehicle, 0x6636C535F6CC2725, "i")end, - ["DISABLE_PLANE_AILERON"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(vehicle, p1, p2, 0x23428FC53C60919C, "ibb")end, - -- Returns true when in a vehicle, false whilst entering/exiting. - ["GET_IS_VEHICLE_ENGINE_RUNNING"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xAE31E7DF9B5B132E, "i")end, - ["SET_VEHICLE_USE_ALTERNATE_HANDLING"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x1D97D1E3A70A649F, "ib")end, - -- Only works on bikes, both X and Y work in the -1 - 1 range. - -- - -- X forces the bike to turn left or right (-1, 1) - -- Y forces the bike to lean to the left or to the right (-1, 1) - -- - -- Example with X -1/Y 1 - -- http://i.imgur.com/TgIuAPJ.jpg - ["SET_BIKE_ON_STAND"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] x,--[[float]] y)return native_invoker.unified_void(vehicle, x, y, 0x9CFA4896C3A53CBB, "iff")end, - ["SET_VEHICLE_NOT_STEALABLE_AMBIENTLY"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0xAB04325045427AAE, "ib")end, - ["LOCK_DOORS_WHEN_NO_LONGER_NEEDED"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0xCFD778E7904C255E, "i")end, - ["SET_LAST_DRIVEN_VEHICLE"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0xACFB2463CC22BED2, "i")end, - ["GET_LAST_DRIVEN_VEHICLE"]=--[[Vehicle (int)]] function()return native_invoker.unified_int(0xB2D06FAEDE65B577, "")end, - ["CLEAR_LAST_DRIVEN_VEHICLE"]=--[[void]] function()return native_invoker.unified_void(0xE01903C47C7AC89E, "")end, - ["SET_VEHICLE_HAS_BEEN_DRIVEN_FLAG"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x02398B627547189C, "ib")end, - ["SET_TASK_VEHICLE_GOTO_PLANE_MIN_HEIGHT_ABOVE_TERRAIN"]=--[[void]] function(--[[Vehicle (int)]] plane,--[[int]] height)return native_invoker.unified_void(plane, height, 0xB893215D8D4C015B, "ii")end, - ["SET_VEHICLE_LOD_MULTIPLIER"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] multiplier)return native_invoker.unified_void(vehicle, multiplier, 0x93AE6A61BE015BF1, "if")end, - ["SET_VEHICLE_CAN_SAVE_IN_GARAGE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x428BACCDF5E26EAD, "ib")end, - -- Also includes some "turnOffBones" when vehicle mods are installed. - ["GET_VEHICLE_NUM_OF_BROKEN_OFF_PARTS"]=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x42A4BEB35D372407, "i")end, - ["GET_VEHICLE_NUM_OF_BROKEN_LOOSEN_PARTS"]=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x2C8CBFE1EA5FC631, "i")end, - ["SET_FORCE_VEHICLE_ENGINE_DAMAGE_BY_BULLET"]=--[[void]] function(--[[Any (int)]] p0,--[[BOOL (bool)]] p1)return native_invoker.unified_void(p0, p1, 0x4D9D109F63FEE1D4, "ib")end, - -- Allows creation of CEventShockingPlaneFlyby, CEventShockingHelicopterOverhead, and other(?) Shocking events - ["SET_VEHICLE_GENERATES_ENGINE_SHOCKING_EVENTS"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x279D50DE5652D935, "ib")end, - -- Copies sourceVehicle's damage (broken bumpers, broken lights, etc.) to targetVehicle. - ["COPY_VEHICLE_DAMAGES"]=--[[void]] function(--[[Vehicle (int)]] sourceVehicle,--[[Vehicle (int)]] targetVehicle)return native_invoker.unified_void(sourceVehicle, targetVehicle, 0xE44A982368A4AF23, "ii")end, - ["DISABLE_VEHICLE_EXPLOSION_BREAK_OFF_PARTS"]=--[[void]] function()return native_invoker.unified_void(0xF25E02CB9C5818F8, "")end, - ["SET_LIGHTS_CUTOFF_DISTANCE_TWEAK"]=--[[void]] function(--[[float]] distance)return native_invoker.unified_void(distance, 0xBC3CCA5844452B06, "f")end, - -- Commands the driver of an armed vehicle (p0) to shoot its weapon at a target (p1). p3, p4 and p5 are the coordinates of the target. Example: - -- - -- WEAPON::SET_CURRENT_PED_VEHICLE_WEAPON(pilot,MISC::GET_HASH_KEY("VEHICLE_WEAPON_PLANE_ROCKET")); VEHICLE::SET_VEHICLE_SHOOT_AT_TARGET(pilot, target, targPos.x, targPos.y, targPos.z); - ["SET_VEHICLE_SHOOT_AT_TARGET"]=--[[void]] function(--[[Ped (int)]] driver,--[[Entity (int)]] entity,--[[float]] xTarget,--[[float]] yTarget,--[[float]] zTarget)return native_invoker.unified_void(driver, entity, xTarget, yTarget, zTarget, 0x74CD9A9327A282EA, "iifff")end, - ["GET_VEHICLE_LOCK_ON_TARGET"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[Entity* (pointer)]] entity)return native_invoker.unified_bool(vehicle, entity, 0x8F5EBAB1F260CFCE, "ip")end, - ["SET_FORCE_HD_VEHICLE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x97CE68CB032583F0, "ib")end, - ["SET_VEHICLE_CUSTOM_PATH_NODE_STREAMING_RADIUS"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] p1)return native_invoker.unified_void(vehicle, p1, 0x182F266C2D9E2BEB, "if")end, - ["GET_VEHICLE_PLATE_TYPE"]=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x9CCC9525BF2408E0, "i")end, - -- in script hook .net - -- - -- Vehicle v = ...; - -- Function.Call(Hash.TRACK_VEHICLE_VISIBILITY, v.Handle); - ["TRACK_VEHICLE_VISIBILITY"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x64473AEFDCF47DCA, "i")end, - -- must be called after TRACK_VEHICLE_VISIBILITY - -- - -- it's not instant so probabilly must pass an 'update' to see correct result. - ["IS_VEHICLE_VISIBLE"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xAA0A52D24FB98293, "i")end, - ["SET_VEHICLE_GRAVITY"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x89F149B6131E57DA, "ib")end, - -- Enable/Disables global slipstream physics - ["SET_ENABLE_VEHICLE_SLIPSTREAMING"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xE6C0C80B8C867537, "b")end, - ["SET_VEHICLE_SLIPSTREAMING_SHOULD_TIME_OUT"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xF051D9BFB6BA39C0, "b")end, - -- Returns a float value between 0.0 and 3.0 related to its slipstream draft (boost/speedup). - ["GET_VEHICLE_CURRENT_TIME_IN_SLIP_STREAM"]=--[[float]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_float(vehicle, 0x36492C2F0D134C56, "i")end, - -- Returns true if the vehicle is being slipstreamed by another vehicle - ["IS_VEHICLE_PRODUCING_SLIP_STREAM"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x48C633E94A8142A7, "i")end, - ["SET_VEHICLE_INACTIVE_DURING_PLAYBACK"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x06582AFF74894C75, "ib")end, - ["SET_VEHICLE_ACTIVE_DURING_PLAYBACK"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xDFFCEF48E511DB48, "ib")end, - -- Returns false if the vehicle has the FLAG_NO_RESPRAY flag set. - ["IS_VEHICLE_SPRAYABLE"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x8D474C8FAEFF6CDE, "i")end, - ["SET_VEHICLE_ENGINE_CAN_DEGRADE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x983765856F2564F9, "ib")end, - -- Adds some kind of shadow to the vehicle. - -- - -- p1 and p2 use values from 0-255 and both make the shadow darker the lower the value is. -1 disables the effect. - ["DISABLE_VEHCILE_DYNAMIC_AMBIENT_SCALES"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] p1,--[[int]] p2)return native_invoker.unified_void(vehicle, p1, p2, 0xF0E4BA16D1DB546C, "iii")end, - -- Remove the weird shadow applied by DISABLE_VEHCILE_DYNAMIC_AMBIENT_SCALES. - ["ENABLE_VEHICLE_DYNAMIC_AMBIENT_SCALES"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0xF87D9F2301F7D206, "i")end, - ["IS_PLANE_LANDING_GEAR_INTACT"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] plane)return native_invoker.unified_bool(plane, 0x4198AB0022B15F87, "i")end, - ["ARE_PLANE_PROPELLERS_INTACT"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] plane)return native_invoker.unified_bool(plane, 0x755D6D5267CBBD7E, "i")end, - ["SET_PLANE_PROPELLER_HEALTH"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] plane,--[[float]] health)return native_invoker.unified_bool(plane, health, 0x4C815EB175086F84, "if")end, - ["SET_VEHICLE_CAN_DEFORM_WHEELS"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x0CDDA42F9E360CA6, "ib")end, - -- Only returns true if the vehicle was marked as stolen with SET_VEHICLE_IS_STOLEN. - ["IS_VEHICLE_STOLEN"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x4AF9BD80EEBEB453, "i")end, - ["SET_VEHICLE_IS_STOLEN"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] isStolen)return native_invoker.unified_void(vehicle, isStolen, 0x67B2C79AA7FF5738, "ib")end, - -- This native sets the turbulence multiplier. It only works for planes. - -- 0.0 = no turbulence at all. - -- 1.0 = heavy turbulence. - -- Works by just calling it once, does not need to be called every tick. - ["SET_PLANE_TURBULENCE_MULTIPLIER"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] multiplier)return native_invoker.unified_void(vehicle, multiplier, 0xAD2D28A1AFDFF131, "if")end, - ["ARE_WINGS_OF_PLANE_INTACT"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] plane)return native_invoker.unified_bool(plane, 0x5991A01434CE9677, "i")end, - -- This native doesn't seem to do anything, might be a debug-only native. - -- - -- Confirmed, it is a debug native. - ["ALLOW_AMBIENT_VEHICLES_TO_AVOID_ADVERSE_CONDITIONS"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0xB264C4D2F2B0A78B, "i")end, - ["DETACH_VEHICLE_FROM_CARGOBOB"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[Vehicle (int)]] cargobob)return native_invoker.unified_void(vehicle, cargobob, 0x0E21D3DF1051399D, "ii")end, - ["DETACH_VEHICLE_FROM_ANY_CARGOBOB"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xADF7BE450512C12F, "i")end, - ["DETACH_ENTITY_FROM_CARGOBOB"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] cargobob,--[[Entity (int)]] entity)return native_invoker.unified_bool(cargobob, entity, 0xAF03011701811146, "ii")end, - ["IS_VEHICLE_ATTACHED_TO_CARGOBOB"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] cargobob,--[[Vehicle (int)]] vehicleAttached)return native_invoker.unified_bool(cargobob, vehicleAttached, 0xD40148F22E81A1D9, "ii")end, - -- Returns attached vehicle (Vehicle in parameter must be cargobob) - ["GET_VEHICLE_ATTACHED_TO_CARGOBOB"]=--[[Vehicle (int)]] function(--[[Vehicle (int)]] cargobob)return native_invoker.unified_int(cargobob, 0x873B82D42AC2B9E5, "i")end, - ["GET_ENTITY_ATTACHED_TO_CARGOBOB"]=--[[Entity (int)]] function(--[[Any (int)]] p0)return native_invoker.unified_int(p0, 0x99093F60746708CA, "i")end, - ["ATTACH_VEHICLE_TO_CARGOBOB"]=--[[void]] function(--[[Vehicle (int)]] cargobob,--[[Vehicle (int)]] vehicle,--[[int]] p2,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(cargobob, vehicle, p2, x, y, z, 0x4127F1D84E347769, "iiifff")end, - ["ATTACH_ENTITY_TO_CARGOBOB"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4,--[[Any (int)]] p5)return native_invoker.unified_void(p0, p1, p2, p3, p4, p5, 0xA1DD82F3CCF9A01E, "iiiiii")end, - -- Stops cargobob from being able to detach the attached vehicle. - ["SET_CARGOBOB_FORCE_DONT_DETACH_VEHICLE"]=--[[void]] function(--[[Vehicle (int)]] cargobob,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(cargobob, toggle, 0x571FEB383F629926, "ib")end, - ["SET_CARGOBOB_EXCLUDE_FROM_PICKUP_ENTITY"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x1F34B0626C594380, "ii")end, - ["CAN_CARGOBOB_PICK_UP_ENTITY"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_bool(p0, p1, 0x2C1D8B3B19E517CC, "ii")end, - -- Gets the position of the cargobob hook, in world coords. - ["GET_ATTACHED_PICK_UP_HOOK_POSITION"]=--[[Vector3 (vector3)]] function(--[[Vehicle (int)]] cargobob)return native_invoker.unified_vector3(cargobob, 0xCBDB9B923CACC92D, "i")end, - -- Returns true only when the hook is active, will return false if the magnet is active - ["DOES_CARGOBOB_HAVE_PICK_UP_ROPE"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] cargobob)return native_invoker.unified_bool(cargobob, 0x1821D91AD4B56108, "i")end, - -- Drops the Hook/Magnet on a cargobob - -- - -- state - -- enum eCargobobHook - -- { - -- CARGOBOB_HOOK = 0, - -- CARGOBOB_MAGNET = 1, - -- }; - ["CREATE_PICK_UP_ROPE_FOR_CARGOBOB"]=--[[void]] function(--[[Vehicle (int)]] cargobob,--[[int]] state)return native_invoker.unified_void(cargobob, state, 0x7BEB0C7A235F6F3B, "ii")end, - -- Retracts the hook on the cargobob. - -- - -- Note: after you retract it the natives for dropping the hook no longer work - ["REMOVE_PICK_UP_ROPE_FOR_CARGOBOB"]=--[[void]] function(--[[Vehicle (int)]] cargobob)return native_invoker.unified_void(cargobob, 0x9768CF648F54C804, "i")end, - -- min: 1.9f, max: 100.0f - ["SET_PICKUP_ROPE_LENGTH_FOR_CARGOBOB"]=--[[void]] function(--[[Vehicle (int)]] cargobob,--[[float]] length1,--[[float]] length2,--[[BOOL (bool)]] p3)return native_invoker.unified_void(cargobob, length1, length2, p3, 0x877C1EAEAC531023, "iffb")end, - ["SET_PICKUP_ROPE_LENGTH_WITHOUT_CREATING_ROPE_FOR_CARGOBOB"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0xC0ED6438E6D39BA8, "iii")end, - ["SET_CARGOBOB_PICKUP_ROPE_DAMPING_MULTIPLIER"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xCF1182F682F65307, "ii")end, - ["SET_CARGOBOB_PICKUP_ROPE_TYPE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x0D5F65A8F4EBDAB5, "ii")end, - -- Returns true only when the magnet is active, will return false if the hook is active - ["DOES_CARGOBOB_HAVE_PICKUP_MAGNET"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] cargobob)return native_invoker.unified_bool(cargobob, 0x6E08BF5B3722BAC9, "i")end, - -- Won't attract or magnetize to any helicopters or planes of course, but that's common sense. - ["SET_CARGOBOB_PICKUP_MAGNET_ACTIVE"]=--[[void]] function(--[[Vehicle (int)]] cargobob,--[[BOOL (bool)]] isActive)return native_invoker.unified_void(cargobob, isActive, 0x9A665550F8DA349B, "ib")end, - ["SET_CARGOBOB_PICKUP_MAGNET_STRENGTH"]=--[[void]] function(--[[Vehicle (int)]] cargobob,--[[float]] strength)return native_invoker.unified_void(cargobob, strength, 0xBCBFCD9D1DAC19E2, "if")end, - ["SET_CARGOBOB_PICKUP_MAGNET_FALLOFF"]=--[[void]] function(--[[Vehicle (int)]] cargobob,--[[float]] p1)return native_invoker.unified_void(cargobob, p1, 0xA17BAD153B51547E, "if")end, - ["SET_CARGOBOB_PICKUP_MAGNET_REDUCED_STRENGTH"]=--[[void]] function(--[[Vehicle (int)]] cargobob,--[[float]] p1)return native_invoker.unified_void(cargobob, p1, 0x66979ACF5102FD2F, "if")end, - ["SET_CARGOBOB_PICKUP_MAGNET_REDUCED_FALLOFF"]=--[[void]] function(--[[Vehicle (int)]] cargobob,--[[float]] p1)return native_invoker.unified_void(cargobob, p1, 0x6D8EAC07506291FB, "if")end, - ["SET_CARGOBOB_PICKUP_MAGNET_PULL_STRENGTH"]=--[[void]] function(--[[Vehicle (int)]] cargobob,--[[float]] p1)return native_invoker.unified_void(cargobob, p1, 0xED8286F71A819BAA, "if")end, - ["SET_CARGOBOB_PICKUP_MAGNET_PULL_ROPE_LENGTH"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] p1)return native_invoker.unified_void(vehicle, p1, 0x685D5561680D088B, "if")end, - ["SET_CARGOBOB_PICKUP_MAGNET_SET_TARGETED_MODE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[Vehicle (int)]] cargobob)return native_invoker.unified_void(vehicle, cargobob, 0xE301BD63E9E13CF0, "ii")end, - ["SET_CARGOBOB_PICKUP_MAGNET_SET_AMBIENT_MODE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1,--[[BOOL (bool)]] p2)return native_invoker.unified_void(vehicle, p1, p2, 0x9BDDC73CC6A115D4, "ibb")end, - ["SET_CARGOBOB_PICKUP_MAGNET_ENSURE_PICKUP_ENTITY_UPRIGHT"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0x56EB5E94318D3FB6, "ib")end, - ["DOES_VEHICLE_HAVE_WEAPONS"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x25ECB9F8017D98E0, "i")end, - ["SET_VEHICLE_WILL_TELL_OTHERS_TO_HURRY"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0x2C4A1590ABF43E8B, "ib")end, - -- Full list of weapons by DurtyFree (Search for VEHICLE_*): https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ["DISABLE_VEHICLE_WEAPON"]=--[[void]] function(--[[BOOL (bool)]] disabled,--[[Hash (int)]] weaponHash,--[[Vehicle (int)]] vehicle,--[[Ped (int)]] owner)return native_invoker.unified_void(disabled, weaponHash, vehicle, owner, 0xF4FC6A6F67D8D856, "biii")end, - -- Full list of weapons by DurtyFree (Search for VEHICLE_*): https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ["IS_VEHICLE_WEAPON_DISABLED"]=--[[BOOL (bool)]] function(--[[Hash (int)]] weaponHash,--[[Vehicle (int)]] vehicle,--[[Ped (int)]] owner)return native_invoker.unified_bool(weaponHash, vehicle, owner, 0x563B65A643ED072E, "iii")end, - ["SET_VEHICLE_USED_FOR_PILOT_SCHOOL"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xE05DD0E9707003A3, "ib")end, - ["SET_VEHICLE_ACTIVE_FOR_PED_NAVIGATION"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x21115BCD6E44656A, "ib")end, - -- Returns an int - -- - -- Vehicle Classes: - -- 0: Compacts - -- 1: Sedans - -- 2: SUVs - -- 3: Coupes - -- 4: Muscle - -- 5: Sports Classics - -- 6: Sports - -- 7: Super - -- 8: Motorcycles - -- 9: Off-road - -- 10: Industrial - -- 11: Utility - -- 12: Vans - -- 13: Cycles - -- 14: Boats - -- 15: Helicopters - -- 16: Planes - -- 17: Service - -- 18: Emergency - -- 19: Military - -- 20: Commercial - -- 21: Trains - -- - -- char buffer[128]; - -- std::sprintf(buffer, "VEH_CLASS_%i", VEHICLE::GET_VEHICLE_CLASS(vehicle)); - -- - -- const char* className = HUD::GET_FILENAME_FOR_AUDIO_CONVERSATION(buffer); - ["GET_VEHICLE_CLASS"]=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x29439776AAA00A62, "i")end, - -- char buffer[128]; - -- std::sprintf(buffer, "VEH_CLASS_%i", VEHICLE::GET_VEHICLE_CLASS_FROM_NAME (hash)); - -- - -- const char* className = HUD::GET_FILENAME_FOR_AUDIO_CONVERSATION(buffer); - -- - -- Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json - ["GET_VEHICLE_CLASS_FROM_NAME"]=--[[int]] function(--[[Hash (int)]] modelHash)return native_invoker.unified_int(modelHash, 0xDEDF1C8BD47C2200, "i")end, - ["SET_PLAYERS_LAST_VEHICLE"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0xBCDF8BAF56C87B6A, "i")end, - ["SET_VEHICLE_CAN_BE_USED_BY_FLEEING_PEDS"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x300504B23BD3B711, "ib")end, - ["SET_AIRCRAFT_PILOT_SKILL_NOISE_SCALAR"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] p1)return native_invoker.unified_void(vehicle, p1, 0xE5810AC70602F2F5, "if")end, - -- Money pickups are created around cars when they explode. Only works when the vehicle model is a car. A single pickup is between 1 and 18 dollars in size. All car models seem to give the same amount of money. - -- - -- youtu.be/3arlUxzHl5Y - -- i.imgur.com/WrNpYFs.jpg - ["SET_VEHICLE_DROPS_MONEY_WHEN_BLOWN_UP"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x068F64F2470F9656, "ib")end, - ["SET_VEHICLE_KEEP_ENGINE_ON_WHEN_ABANDONED"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xB8FBC8B1330CA9B4, "ib")end, - -- Seems to copy some values in vehicle - ["SET_VEHICLE_IMPATIENCE_TIMER"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[Any (int)]] p1)return native_invoker.unified_void(vehicle, p1, 0x6A973569BA094650, "ii")end, - -- Use the "AIHandling" string found in handling.meta - ["SET_VEHICLE_HANDLING_OVERRIDE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[Hash (int)]] hash)return native_invoker.unified_void(vehicle, hash, 0x10655FAB9915623D, "ii")end, - -- Max value is 32767 - ["SET_VEHICLE_EXTENDED_REMOVAL_RANGE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] range)return native_invoker.unified_void(vehicle, range, 0x79DF7E806202CE01, "ii")end, - ["SET_VEHICLE_STEERING_BIAS_SCALAR"]=--[[void]] function(--[[Any (int)]] p0,--[[float]] p1)return native_invoker.unified_void(p0, p1, 0x9007A2F21DC108D4, "if")end, - -- value between 0.0 and 1.0 - ["SET_HELI_CONTROL_LAGGING_RATE_SCALAR"]=--[[void]] function(--[[Vehicle (int)]] helicopter,--[[float]] multiplier)return native_invoker.unified_void(helicopter, multiplier, 0x6E0859B530A365CC, "if")end, - -- Seems to be related to the metal parts, not tyres (like i was expecting lol) - ["SET_VEHICLE_FRICTION_OVERRIDE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] friction)return native_invoker.unified_void(vehicle, friction, 0x1837AF7C627009BA, "if")end, - ["SET_VEHICLE_WHEELS_CAN_BREAK_OFF_WHEN_BLOW_UP"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xA37B9A517B133349, "ib")end, - ["ARE_PLANE_CONTROL_PANELS_INTACT"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_bool(vehicle, p1, 0xF78F94D60248C737, "ib")end, - ["SET_VEHICLE_CEILING_HEIGHT"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] height)return native_invoker.unified_void(vehicle, height, 0xA46413066687A328, "if")end, - ["SET_VEHICLE_NO_EXPLOSION_DAMAGE_FROM_DRIVER"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x5E569EC46EC21CAE, "ib")end, - ["CLEAR_VEHICLE_ROUTE_HISTORY"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x6D6AF961B72728AE, "i")end, - ["DOES_VEHICLE_EXIST_WITH_DECORATOR"]=--[[Vehicle (int)]] function(--[[string]] decorator)return native_invoker.unified_int(decorator, 0x956B409B984D9BF7, "s")end, - -- Used to be incorrectly named SET_VEHICLE_EXCLUSIVE_DRIVER - -- Toggles a flag related to SET_VEHICLE_EXCLUSIVE_DRIVER, however, doesn't enable that feature (or trigger script events related to it). - ["SET_VEHICLE_AI_CAN_USE_EXCLUSIVE_SEATS"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x41062318F23ED854, "ib")end, - -- index: 0 - 1 - -- - -- Used to be incorrectly named _SET_VEHICLE_EXCLUSIVE_DRIVER_2 - ["SET_VEHICLE_EXCLUSIVE_DRIVER"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[Ped (int)]] ped,--[[int]] index)return native_invoker.unified_void(vehicle, ped, index, 0xB5C51B5502E85E83, "iii")end, - ["IS_PED_EXCLUSIVE_DRIVER_OF_VEHICLE"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Vehicle (int)]] vehicle,--[[int* (pointer)]] outIndex)return native_invoker.unified_bool(ped, vehicle, outIndex, 0xB09D25E77C33EB3F, "iip")end, - ["DISABLE_INDIVIDUAL_PLANE_PROPELLER"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] propeller)return native_invoker.unified_void(vehicle, propeller, 0x500873A45724C863, "ii")end, - ["SET_VEHICLE_FORCE_AFTERBURNER"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xB055A34527CB8FD7, "ib")end, - -- R* used it to "remove" vehicle windows when "nightshark" had some mod, which adding some kind of armored windows. When enabled, you can't break vehicles glass. All your bullets wiil shoot through glass. You also will not able to break the glass with any other way (hitting and etc) - ["SET_DONT_PROCESS_VEHICLE_GLASS"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x1087BC8EC540DAEB, "ib")end, - ["SET_DISABLE_WANTED_CONES_RESPONSE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x4AD280EB48B2D8E6, "ib")end, - ["SET_USE_DESIRED_Z_CRUISE_SPEED_FOR_LANDING"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xB68CFAF83A02768D, "ib")end, - ["SET_ARRIVE_DISTANCE_OVERRIDE_FOR_VEHICLE_PERSUIT_ATTACK"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] p1)return native_invoker.unified_void(vehicle, p1, 0x0205F5365292D2EB, "if")end, - ["SET_VEHICLE_READY_FOR_CLEANUP"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0xCF9159024555488C, "i")end, - -- Toggles to render distant vehicles. They may not be vehicles but images to look like vehicles. - ["SET_DISTANT_CARS_ENABLED"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xF796359A959DF65D, "b")end, - -- Sets the color of the neon lights of the specified vehicle. - ["SET_VEHICLE_NEON_COLOUR"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] r,--[[int]] g,--[[int]] b)return native_invoker.unified_void(vehicle, r, g, b, 0x8E0A582209A62695, "iiii")end, - -- Index references CVehicleModelColor - ["SET_VEHICLE_NEON_INDEX_COLOUR"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] index)return native_invoker.unified_void(vehicle, index, 0xB93B2867F7B479D1, "ii")end, - -- Gets the color of the neon lights of the specified vehicle. - -- - -- See SET_VEHICLE_NEON_COLOUR (0x8E0A582209A62695) for more information - ["GET_VEHICLE_NEON_COLOUR"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int* (pointer)]] r,--[[int* (pointer)]] g,--[[int* (pointer)]] b)return native_invoker.unified_void(vehicle, r, g, b, 0x7619EEE8C886757F, "ippp")end, - -- Sets the neon lights of the specified vehicle on/off. - -- - -- Indices: - -- 0 = Left - -- 1 = Right - -- 2 = Front - -- 3 = Back - ["SET_VEHICLE_NEON_ENABLED"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] index,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, index, toggle, 0x2AA720E4287BF269, "iib")end, - -- indices: - -- 0 = Left - -- 1 = Right - -- 2 = Front - -- 3 = Back - ["GET_VEHICLE_NEON_ENABLED"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[int]] index)return native_invoker.unified_bool(vehicle, index, 0x8C4B92553E4766A5, "ii")end, - ["SET_AMBIENT_VEHICLE_NEON_ENABLED"]=--[[void]] function(--[[BOOL (bool)]] p0)return native_invoker.unified_void(p0, 0x35E0654F4BAD7971, "b")end, - ["SUPPRESS_NEONS_ON_VEHICLE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x83F813570FF519DE, "ib")end, - ["SET_DISABLE_SUPERDUMMY"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0xB088E9A47AE6EDD5, "ib")end, - ["REQUEST_VEHICLE_DIAL"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0xDBA3C090E3D74690, "i")end, - -- Seems related to vehicle health, like the one in IV. - -- Max 1000, min 0. - -- Vehicle does not necessarily explode or become undrivable at 0. - ["GET_VEHICLE_BODY_HEALTH"]=--[[float]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_float(vehicle, 0xF271147EB7B40F12, "i")end, - -- p2 often set to 1000.0 in the decompiled scripts. - ["SET_VEHICLE_BODY_HEALTH"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] value)return native_invoker.unified_void(vehicle, value, 0xB77D05AC8C78AADB, "if")end, - -- Outputs 2 Vector3's. - -- Scripts check if out2.x - out1.x > someshit.x - -- Could be suspension related, as in max suspension height and min suspension height, considering the natives location. - ["GET_VEHICLE_SIZE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[Vector3* (pointer)]] out1,--[[Vector3* (pointer)]] out2)return native_invoker.unified_void(vehicle, out1, out2, 0xDF7E3EEB29642C38, "ipp")end, - -- Gets the height of the vehicle's suspension. - -- The higher the value the lower the suspension. Each 0.002 corresponds with one more level lowered. - -- 0.000 is the stock suspension. - -- 0.008 is Ultra Suspension. - ["GET_FAKE_SUSPENSION_LOWERING_AMOUNT"]=--[[float]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_float(vehicle, 0x53952FD2BAA19F17, "i")end, - ["SET_CAR_HIGH_SPEED_BUMP_SEVERITY_MULTIPLIER"]=--[[void]] function(--[[float]] multiplier)return native_invoker.unified_void(multiplier, 0x84FD40F56075E816, "f")end, - ["GET_NUMBER_OF_VEHICLE_DOORS"]=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x92922A607497B14D, "i")end, - -- If false, lowers hydraulics (if raised) and disables hydraulics controls. If true, raises hydraulics and enables hydraulics controls. - -- - -- Only used once in each carmod script, on a car that does not have hydraulics to begin with. - ["SET_HYDRAULICS_CONTROL"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x28B18377EB6E25F6, "ib")end, - ["SET_CAN_ADJUST_GROUND_CLEARANCE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0xA7DCDF4DED40A8F4, "ib")end, - -- 0 min 100 max - -- starts at 100 - -- Seams to have health zones - -- Front of vehicle when damaged goes from 100-50 and stops at 50. - -- Rear can be damaged from 100-0 - -- Only tested with two cars. - -- - -- any idea how this differs from the first one? - -- - -- -- - -- May return the vehicle health on a scale of 0.0 - 100.0 (needs to be confirmed) - -- - -- example: - -- - -- v_F = ENTITY::GET_ENTITY_MODEL(v_3); - -- if (((v_F == ${tanker}) || (v_F == ${armytanker})) || (v_F == ${tanker2})) { - -- if (VEHICLE::GET_VEHICLE_HEALTH_PERCENTAGE(v_3) <= 1.0) { - -- NETWORK::NETWORK_EXPLODE_VEHICLE(v_3, 1, 1, -1); - -- } - -- } - ["GET_VEHICLE_HEALTH_PERCENTAGE"]=--[[float]] function(--[[Vehicle (int)]] vehicle,--[[float]] maxEngineHealth,--[[float]] maxPetrolTankHealth,--[[float]] maxBodyHealth,--[[float]] maxMainRotorHealth,--[[float]] maxTailRotorHealth,--[[float]] maxUnkHealth)return native_invoker.unified_float(vehicle, maxEngineHealth, maxPetrolTankHealth, maxBodyHealth, maxMainRotorHealth, maxTailRotorHealth, maxUnkHealth, 0xB8EF61207C2393A9, "iffffff")end, - ["GET_VEHICLE_IS_MERCENARY"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xD4C4642CB7F50B5D, "i")end, - ["SET_VEHICLE_BROKEN_PARTS_DONT_AFFECT_AI_HANDLING"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0xC361AA040D6637A8, "ib")end, - ["SET_VEHICLE_KERS_ALLOWED"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x99C82F8A139F3E4E, "ib")end, - -- Returns true if the vehicle has a HF_HAS_KERS (strHandlingFlags 0x4) handing flag set, for instance the lectro/vindicator bikes or the open wheelers. - ["GET_VEHICLE_HAS_KERS"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x50634E348C8D44EF, "i")end, - ["SET_PLANE_RESIST_TO_EXPLOSION"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xE16142B94664DEFD, "ib")end, - ["SET_HELI_RESIST_TO_EXPLOSION"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x8074CC1886802912, "ib")end, - ["SET_DISABLE_BMX_EXTRA_TRICK_FORCES"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x26D99D5A82FD18E8, "i")end, - -- Works only on vehicles that support hydraulics. - ["SET_HYDRAULIC_SUSPENSION_RAISE_FACTOR"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] wheelId,--[[float]] value)return native_invoker.unified_void(vehicle, wheelId, value, 0x84EA99C62CB3EF0C, "iif")end, - ["GET_HYDRAULIC_SUSPENSION_RAISE_FACTOR"]=--[[float]] function(--[[Vehicle (int)]] vehicle,--[[int]] wheelId)return native_invoker.unified_float(vehicle, wheelId, 0x0BB5CBDDD0F25AE3, "ii")end, - ["SET_CAN_USE_HYDRAULICS"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x1201E8A3290A3B98, "ib")end, - -- States: - -- 4 = raise - -- 5 = lower - -- 6 = jump - ["SET_HYDRAULIC_VEHICLE_STATE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] state)return native_invoker.unified_void(vehicle, state, 0x8EA86DF356801C7D, "ii")end, - -- Sets vehicle wheel hydraulic states transition. Known states: - -- 0 - reset - -- 1 - raise wheel (uses value arg, works just like _SET_VEHICLE_HYDRAULIC_WHEEL_VALUE) - -- 2 - jump using wheel - ["SET_HYDRAULIC_WHEEL_STATE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] wheelId,--[[int]] state,--[[float]] value,--[[Any (int)]] p4)return native_invoker.unified_void(vehicle, wheelId, state, value, p4, 0xC24075310A8B9CD1, "iiifi")end, - ["HAS_VEHICLE_PETROLTANK_SET_ON_FIRE_BY_ENTITY"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_bool(p0, p1, 0x5BA68A0840D546AC, "ii")end, - ["CLEAR_VEHICLE_PETROLTANK_FIRE_CULPRIT"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x4419966C9936071A, "i")end, - -- Controls how fast bobbleheads and tsurikawas move on each axis. - -- - -- p2 is probably z, but changing that value didn't seem to have a noticeable effect. - ["SET_VEHICLE_BOBBLEHEAD_VELOCITY"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] p2)return native_invoker.unified_void(x, y, p2, 0x870B8B7A766615C8, "fff")end, - ["GET_VEHICLE_IS_DUMMY"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0)return native_invoker.unified_bool(p0, 0x8533CAFDE1F0F336, "i")end, - ["SET_VEHICLE_DAMAGE_SCALE"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[float]] p1)return native_invoker.unified_bool(vehicle, p1, 0x4E20D2A627011E8E, "if")end, - ["SET_VEHICLE_WEAPON_DAMAGE_SCALE"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[float]] multiplier)return native_invoker.unified_bool(vehicle, multiplier, 0x45A561A9421AB6AD, "if")end, - ["SET_DISABLE_DAMAGE_WITH_PICKED_UP_ENTITY"]=--[[BOOL (bool)]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_bool(p0, p1, 0xD4196117AF7BB974, "ii")end, - ["SET_VEHICLE_USES_MP_PLAYER_DAMAGE_MULTIPLIER"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xBB2333BB87DDD87F, "ii")end, - -- When enabled, the player won't fall off the bike when landing from large heights. - ["SET_BIKE_EASY_TO_LAND"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x73561D4425A021A2, "ib")end, - -- Inverts vehicle's controls. So INPUT_VEH_ACCELERATE will be INPUT_VEH_BRAKE and vise versa (same for A/D controls) - -- Doesn't work for planes/helis. - ["SET_INVERT_VEHICLE_CONTROLS"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] state)return native_invoker.unified_void(vehicle, state, 0x5B91B229243351A8, "ib")end, - -- Disables the screen effects and sound effects when driving over a speed boost pad. - ["SET_SPEED_BOOST_EFFECT_DISABLED"]=--[[void]] function(--[[BOOL (bool)]] disabled)return native_invoker.unified_void(disabled, 0x7BBE7FF626A591FE, "b")end, - -- Disables the screen effects and sound effects when driving over a slowdown pad. - ["SET_SLOW_DOWN_EFFECT_DISABLED"]=--[[void]] function(--[[BOOL (bool)]] disabled)return native_invoker.unified_void(disabled, 0x65B080555EA48149, "b")end, - ["SET_FORMATION_LEADER"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] p4)return native_invoker.unified_void(vehicle, x, y, z, p4, 0x428AD3E26C8D9EB0, "iffff")end, - -- Resets the effect of SET_FORMATION_LEADER - ["RESET_FORMATION_LEADER"]=--[[void]] function()return native_invoker.unified_void(0xE2F53F172B45EDE1, "")end, - ["GET_IS_BOAT_CAPSIZED"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xBA91D045575699AD, "i")end, - ["SET_ALLOW_RAMMING_SOOP_OR_RAMP"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x80E3357FDEF45C21, "ii")end, - ["SET_SCRIPT_RAMP_IMPULSE_SCALE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] impulseScale)return native_invoker.unified_void(vehicle, impulseScale, 0xEFC13B1CE30D755D, "if")end, - -- doorId: see SET_VEHICLE_DOOR_SHUT - ["GET_IS_DOOR_VALID"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[int]] doorId)return native_invoker.unified_bool(vehicle, doorId, 0x645F4B6E8499F632, "ii")end, - ["SET_SCRIPT_ROCKET_BOOST_RECHARGE_TIME"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] seconds)return native_invoker.unified_void(vehicle, seconds, 0xE00F2AB100B76E89, "if")end, - ["GET_HAS_ROCKET_BOOST"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x36D782F68B309BDA, "i")end, - ["IS_ROCKET_BOOST_ACTIVE"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x3D34E80EED4AE3BE, "i")end, - ["SET_ROCKET_BOOST_ACTIVE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] active)return native_invoker.unified_void(vehicle, active, 0x81E1552E35DC3839, "ib")end, - ["GET_HAS_RETRACTABLE_WHEELS"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xDCA174A42133F08C, "i")end, - ["GET_IS_WHEELS_RETRACTED"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x1DA0DA9CB3F0C8BF, "i")end, - ["SET_WHEELS_EXTENDED_INSTANTLY"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0xF660602546D27BA8, "i")end, - ["SET_WHEELS_RETRACTED_INSTANTLY"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x5335BE58C083E74E, "i")end, - -- Returns true if the vehicle has the FLAG_JUMPING_CAR flag set. - ["GET_CAR_HAS_JUMP"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x9078C0C5EF8C19E9, "i")end, - -- Allows vehicles with the FLAG_JUMPING_CAR flag to jump higher (i.e. Ruiner 2000). - ["SET_USE_HIGHER_CAR_JUMP"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xF06A16CA55D138D8, "ib")end, - ["SET_CLEAR_FREEZE_WAITING_ON_COLLISION_ONCE_PLAYER_ENTERS"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xB2E0C0D6922D31F2, "ib")end, - -- Set vehicle's primary mounted weapon 2 ammo. For example, use it on APC. - -- For example, you can "remove" any vehicle weapon from any vehicle. - -- ammoAmount -1 = infinite ammo (default value for any spawned vehicle tho) - ["SET_VEHICLE_WEAPON_RESTRICTED_AMMO"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] weaponIndex,--[[int]] capacity)return native_invoker.unified_void(vehicle, weaponIndex, capacity, 0x44CD1F493DB2A0A6, "iii")end, - ["GET_VEHICLE_WEAPON_RESTRICTED_AMMO"]=--[[int]] function(--[[Vehicle (int)]] vehicle,--[[int]] weaponIndex)return native_invoker.unified_int(vehicle, weaponIndex, 0x8181CE2F25CB9BB7, "ii")end, - ["GET_VEHICLE_HAS_PARACHUTE"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xBC9CFF381338CB4F, "i")end, - ["GET_VEHICLE_CAN_DEPLOY_PARACHUTE"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xA916396DF4154EE3, "i")end, - ["VEHICLE_START_PARACHUTING"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] active)return native_invoker.unified_void(vehicle, active, 0x0BFFB028B3DD0A97, "ib")end, - ["IS_VEHICLE_PARACHUTE_DEPLOYED"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x3DE51E9C80B116CF, "i")end, - ["VEHICLE_SET_RAMP_AND_RAMMING_CARS_TAKE_DAMAGE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x28D034A93FE31BF5, "ib")end, - ["VEHICLE_SET_ENABLE_RAMP_CAR_SIDE_IMPULSE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x1BBAC99C0BC53656, "ii")end, - ["VEHICLE_SET_ENABLE_NORMALISE_RAMP_CAR_VERTICAL_VELOCTIY"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x756AE6E962168A04, "ii")end, - ["VEHICLE_SET_JET_WASH_FORCE_ENABLED"]=--[[void]] function(--[[Any (int)]] p0)return native_invoker.unified_void(p0, 0x9D30687C57BAA0BB, "i")end, - ["SET_VEHICLE_WEAPON_CAN_TARGET_OBJECTS"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x86B4B6212CB8B627, "ib")end, - -- Used for blazer5. Changes the quadbike-jetski transformation input from raise/lower convertible roof (hold H by default) to horn (press E by default.) - ["SET_VEHICLE_USE_BOOST_BUTTON_FOR_WHEEL_RETRACT"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x41290B40FA63E6DA, "b")end, - ["_SET_VEHICLE_USE_HORN_BUTTON_FOR_NITROUS"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x1980F68872CC2C3D, "b")end, - -- Parachute models: - -- - sr_prop_specraces_para_s_01 - -- - imp_prop_impexp_para_s (SecuroServ; Default) - -- Plus, many more props can be used as vehicle parachutes, like umbrellas (prop_beach_parasol_03), and unlike SET_PLAYER_PARACHUTE_MODEL_OVERRIDE, you won't get stuck mid-air when using an umbrella. - ["VEHICLE_SET_PARACHUTE_MODEL_OVERRIDE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[Hash (int)]] modelHash)return native_invoker.unified_void(vehicle, modelHash, 0x4D610C6B56031351, "ii")end, - -- Variations available for the generic parachute (sr_prop_specraces_para_s_01): - -- - 0: Rainbow - -- - 1: Red - -- - 2: White, blue, yellow - -- - 3: Black, red, white - -- - 4: Red, white, blue - -- - 5: Blue - -- - 6: Black - -- - 7: Black, yellow - ["VEHICLE_SET_PARACHUTE_MODEL_TINT_INDEX"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] textureVariation)return native_invoker.unified_void(vehicle, textureVariation, 0xA74AD2439468C883, "ii")end, - ["VEHICLE_SET_OVERRIDE_EXTENABLE_SIDE_RATIO"]=--[[int]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_int(p0, p1, 0x0419B167EE128F33, "ii")end, - ["VEHICLE_SET_EXTENABLE_SIDE_TARGET_RATIO"]=--[[int]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_int(p0, p1, 0xF3B0E0AED097A3F5, "ii")end, - ["VEHICLE_SET_OVERRIDE_SIDE_RATIO"]=--[[int]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_int(p0, p1, 0xD3E51C0AB8C26EEE, "ii")end, - ["GET_ALL_VEHICLES"]=--[[int]] function(--[[Any* (pointer)]] vehsStruct)return native_invoker.unified_int(vehsStruct, 0x9B8E1BF04B51F2E8, "p")end, - ["SET_CARGOBOB_EXTA_PICKUP_RANGE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x72BECCF4B829522E, "ii")end, - ["SET_OVERRIDE_VEHICLE_DOOR_TORQUE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(p0, p1, p2, 0x66E3AAFACE2D1EB8, "iii")end, - -- Enables/disables the ability to wheelie on motorcycles. - ["SET_WHEELIE_ENABLED"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] enabled)return native_invoker.unified_void(vehicle, enabled, 0x1312DDD8385AEE4E, "ib")end, - ["SET_DISABLE_HELI_EXPLODE_FROM_BODY_DAMAGE"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0xEDBC8405B3895CC9, "ii")end, - ["SET_DISABLE_EXPLODE_FROM_BODY_DAMAGE_ON_COLLISION"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] value)return native_invoker.unified_void(vehicle, value, 0x26E13D440E7F6064, "if")end, - ["SET_TRAILER_ATTACHMENT_ENABLED"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x2FA2494B47FDD009, "ii")end, - ["SET_ROCKET_BOOST_FILL"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] percentage)return native_invoker.unified_void(vehicle, percentage, 0xFEB2DDED3509562E, "if")end, - -- Set state to true to extend the wings, false to retract them. - ["SET_GLIDER_ACTIVE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] state)return native_invoker.unified_void(vehicle, state, 0x544996C0081ABDEB, "ib")end, - -- Resets the vehicle's turret to its default position in scripted cameras. Doesn't seem to affect turrets that are occupied by a ped. - ["SET_SHOULD_RESET_TURRET_IN_SCRIPTED_CAMERAS"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] shouldReset)return native_invoker.unified_void(vehicle, shouldReset, 0x78CEEE41F49F421F, "ib")end, - ["SET_VEHICLE_DISABLE_COLLISION_UPON_CREATION"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] disable)return native_invoker.unified_void(vehicle, disable, 0xAF60E6A2936F982A, "ib")end, - ["SET_GROUND_EFFECT_REDUCES_DRAG"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x430A7631A84C9BE7, "b")end, - -- Disables collision for this vehicle (maybe it also supports other entities, not sure). - -- Only world/building/fixed world objects will have their collisions disabled, props, peds, or any other entity still collides with the vehicle. - -- Example: https://streamable.com/6n45d5 - -- Not sure if there is a native (and if so, which one) that resets the collisions. - ["SET_DISABLE_MAP_COLLISION"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x75627043C6AA90AD, "i")end, - ["SET_DISABLE_PED_STAND_ON_TOP"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x8235F1BEAD557629, "ib")end, - ["SET_VEHICLE_DAMAGE_SCALES"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[Any (int)]] p1,--[[Any (int)]] p2,--[[Any (int)]] p3,--[[Any (int)]] p4)return native_invoker.unified_void(vehicle, p1, p2, p3, p4, 0x9640E30A7F395E4B, "iiiii")end, - ["SET_PLANE_SECTION_DAMAGE_SCALE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[Any (int)]] p1,--[[Any (int)]] p2)return native_invoker.unified_void(vehicle, p1, p2, 0x0BBB9A7A8FFE931B, "iii")end, - -- Stops the cargobob from being able to attach any vehicle - ["SET_HELI_CAN_PICKUP_ENTITY_THAT_HAS_PICK_UP_DISABLED"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x94A68DA412C4007D, "ib")end, - -- Sets the amount of bombs that this vehicle has. As far as I know, this does _not_ impact vehicle weapons or the ammo of those weapons in any way, it is just a way to keep track of the amount of bombs in a specific plane. - ["SET_VEHICLE_BOMB_AMMO"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] bombCount)return native_invoker.unified_void(vehicle, bombCount, 0xF4B2ED59DEB5D774, "ii")end, - -- Gets the amount of bombs that this vehicle has. As far as I know, this does _not_ impact vehicle weapons or the ammo of those weapons in any way, it is just a way to keep track of the amount of bombs in a specific plane. - ["GET_VEHICLE_BOMB_AMMO"]=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0xEA12BD130D7569A1, "i")end, - -- Similar to SET_VEHICLE_BOMB_AMMO, this sets the amount of countermeasures that are present on this vehicle. - -- Use GET_VEHICLE_BOMB_AMMO to get the current amount. - ["SET_VEHICLE_COUNTERMEASURE_AMMO"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] counterMeasureCount)return native_invoker.unified_void(vehicle, counterMeasureCount, 0x9BDA23BF666F0855, "ii")end, - -- Similar to `GET_VEHICLE_BOMB_AMMO`, this gets the amount of countermeasures that are present on this vehicle. - -- Use SET_VEHICLE_COUNTERMEASURE_AMMO to set the current amount. - ["GET_VEHICLE_COUNTERMEASURE_AMMO"]=--[[int]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0xF846AA63DF56B804, "i")end, - ["SET_HELI_COMBAT_OFFSET"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(vehicle, x, y, z, 0x0A3F820A9A9A9AC5, "ifff")end, - -- Used in decompiled scripts in combination with GET_VEHICLE_SIZE - -- p7 is usually 2 - -- p8 is usually 1 - ["GET_CAN_VEHICLE_BE_PLACED_HERE"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] rotX,--[[float]] rotY,--[[float]] rotZ,--[[int]] p7,--[[Any (int)]] p8)return native_invoker.unified_bool(vehicle, x, y, z, rotX, rotY, rotZ, p7, p8, 0x51F30DB60626A20E, "iffffffii")end, - -- Sets a flag on heli and another vehicle type. - ["SET_DISABLE_AUTOMATIC_CRASH_TASK"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x97841634EF7DF1D6, "ib")end, - -- Used in conjunction with SET_SPECIAL_FLIGHT_MODE_TARGET_RATIO, in Rockstar's scripts. Using this will instantly transform the vehicle into hover mode starting from the given ratio (ranging from 0.0 to 1.0, values greater than 1.0 will put the vehicle into a glitched state.) If this is not used alongside SET_SPECIAL_FLIGHT_MODE_TARGET_RATIO, the vehicle will automatically transform back into car mode. - -- - -- Usable only with the deluxo and other vehicles with deluxo-like hover mode toggle, modded or otherwise. Does nothing when used on oppressor2. - -- - -- Example: - -- Ped playerPed = PLAYER::PLAYER_PED_ID(); - -- Vehicle veh = PED::GET_VEHICLE_PED_IS_USING(playerPed); - -- VEHICLE::SET_SPECIAL_FLIGHT_MODE_RATIO(veh, 0.7f); - -- VEHICLE::SET_SPECIAL_FLIGHT_MODE_TARGET_RATIO(veh, 1.0f); - ["SET_SPECIAL_FLIGHT_MODE_RATIO"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] ratio)return native_invoker.unified_void(vehicle, ratio, 0xD138FA15C9776837, "if")end, - -- Used in conjunction with SET_SPECIAL_FLIGHT_MODE_RATIO, in Rockstar's scripts. The vehicle will transform into the given targetRatio, starting from the vehicle's current hover mode transform ratio (which can also be manually set by SET_SPECIAL_FLIGHT_MODE_RATIO,) i.e. setting targetRatio to 0.0 while the vehicle is in hover mode will transform the vehicle into car mode, likewise setting targetRatio to 1.0 while the vehicle is in car mode will transform the vehicle into hover mode, and if the current transform ratio is set to 0.7 while targetRatio is 1.0 the vehicle will transform into hover mode starting from being already partially transformed. - -- - -- targetRatio is recommended to always be 0.0 or 1.0, otherwise the vehicle will transform into a glitched state. - -- - -- Usable only with the deluxo and other vehicles with deluxo-like hover mode toggle, modded or otherwise. Does nothing when used on oppressor2. - -- - -- Example: - -- Ped playerPed = PLAYER::PLAYER_PED_ID(); - -- Vehicle veh = PED::GET_VEHICLE_PED_IS_USING(playerPed); - -- VEHICLE::SET_SPECIAL_FLIGHT_MODE_RATIO(veh, 0.7f); - -- VEHICLE::SET_SPECIAL_FLIGHT_MODE_TARGET_RATIO(veh, 1.0f); - ["SET_SPECIAL_FLIGHT_MODE_TARGET_RATIO"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] targetRatio)return native_invoker.unified_void(vehicle, targetRatio, 0x438B3D7CA026FE91, "if")end, - -- It will override the ability to transform deluxo. For oppressor it will work just like SET_DISABLE_HOVER_MODE_FLIGHT - ["SET_SPECIAL_FLIGHT_MODE_ALLOWED"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xF1211889DF15A763, "ib")end, - -- Disables "wings" for some flying vehicles. Works only for oppressor _2_ and deluxo. - -- For deluxo it just immediately removes vehicle's "wings" and you will be not able to fly up. - -- For oppressor 2 it will remove wings right after you land. And you will not able to fly up anymore too. - -- But for opressor 2 you still can fly if you somehow get back in the air. - ["SET_DISABLE_HOVER_MODE_FLIGHT"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x2D55FE374D5FDB91, "ib")end, - -- Checks if Chernobog's stabilizers are deployed or not. - -- These are the metal supports that allow it to fire. - -- This native only applies to the Chernobog. - ["GET_OUTRIGGERS_DEPLOYED"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x3A9128352EAC9E85, "i")end, - -- Native is significantly more complicated than simply generating a random vector & length. - -- The 'point' is either 400.0 or 250.0 units away from the Ped's current coordinates; and paths into functions like rage::grcViewport___IsSphereVisible - ["FIND_SPAWN_COORDINATES_FOR_HELI"]=--[[Vector3 (vector3)]] function(--[[Ped (int)]] ped)return native_invoker.unified_vector3(ped, 0x8DC9675797123522, "i")end, - -- Only used with the "akula" and "annihilator2" in the decompiled native scripts. - ["SET_DEPLOY_FOLDING_WINGS"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] deploy,--[[BOOL (bool)]] p2)return native_invoker.unified_void(vehicle, deploy, p2, 0xB251E0B33E58B424, "ibb")end, - -- Only used with the "akula" and "annihilator2" in the decompiled native scripts. - ["ARE_FOLDING_WINGS_DEPLOYED"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xAEF12960FA943792, "i")end, - ["_SET_DEPLOY_MISSILE_BAYS"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] deploy)return native_invoker.unified_void(vehicle, deploy, 0x0C02468829E4AA65, "ib")end, - ["_ARE_MISSILE_BAYS_DEPLOYED"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xEA4743874D515F13, "i")end, - ["SET_DIP_STRAIGHT_DOWN_WHEN_CRASHING_PLANE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xAA653AE61924B0A0, "ib")end, - -- Toggles specific flag on turret - ["SET_TURRET_HIDDEN"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] index,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, index, toggle, 0xC60060EB0D8AC7B1, "iib")end, - ["SET_HOVER_MODE_WING_RATIO"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] ratio)return native_invoker.unified_void(vehicle, ratio, 0x70A252F60A3E036B, "if")end, - -- Disables turret movement when called in a loop. You can still fire and aim. You cannot shoot backwards though. - ["SET_DISABLE_TURRET_MOVEMENT"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] turretId)return native_invoker.unified_void(vehicle, turretId, 0xE615BB7A7752C76A, "ii")end, - ["SET_FORCE_FIX_LINK_MATRICES"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x887FA38787DE8C72, "i")end, - -- Affects the playback speed of the submarine car conversion animations. Does not affect hardcoded animations such as the wheels being retracted. - ["SET_TRANSFORM_RATE_FOR_ANIMATION"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] transformRate)return native_invoker.unified_void(vehicle, transformRate, 0x498218259FB7C72D, "if")end, - -- When set to true, the key to transform a car to submarine mode changes from raise/lower convertible roof (hold H by default) to special vehicle transform (press X by default.) - ["SET_TRANSFORM_TO_SUBMARINE_USES_ALTERNATE_INPUT"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x41B9FB92EDED32A6, "ib")end, - -- Does nothing. It's a nullsub. - ["SET_VEHICLE_COMBAT_MODE"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x36DE109527A2C0C4, "b")end, - -- Does nothing. It's a nullsub. - ["SET_VEHICLE_DETONATION_MODE"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x82E0AC411E41A5B4, "b")end, - -- Does nothing. It's a nullsub. - ["SET_VEHICLE_SHUNT_ON_STICK"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x99A05839C46CE316, "b")end, - ["GET_IS_VEHICLE_SHUNTING"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xA2459F72C14E2E8D, "i")end, - ["GET_HAS_VEHICLE_BEEN_HIT_BY_SHUNT"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0xE8718FAF591FD224, "i")end, - -- Returns last vehicle that was rammed by the given vehicle using the shunt boost. - ["GET_LAST_SHUNT_VEHICLE"]=--[[Vehicle (int)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_int(vehicle, 0x04F2FA6E234162F7, "i")end, - ["SET_DISABLE_VEHICLE_EXPLOSIONS_DAMAGE"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x143921E45EC44D62, "b")end, - ["SET_OVERRIDE_NITROUS_LEVEL"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle,--[[float]] level,--[[float]] power,--[[float]] rechargeTime,--[[BOOL (bool)]] disableSound)return native_invoker.unified_void(vehicle, toggle, level, power, rechargeTime, disableSound, 0xC8E9B6B71B8E660D, "ibfffb")end, - ["SET_NITROUS_IS_ACTIVE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] enabled)return native_invoker.unified_void(vehicle, enabled, 0x465EEA70AF251045, "ib")end, - ["_SET_OVERRIDE_TRACTION_LOSS_MULTIPLIER"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] modifier)return native_invoker.unified_void(vehicle, modifier, 0xAFD262ACCA64479A, "if")end, - -- First two floats relate to rumble, the last is a threshold - ["_SET_DRIFT_SLIP_ANGLE_LIMITS"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[float]] durationScalar,--[[float]] amplitudeScalar,--[[float]] slipAngleLimit)return native_invoker.unified_void(vehicle, durationScalar, amplitudeScalar, slipAngleLimit, 0xDAF4C98C18AC6F06, "ifff")end, - ["_SET_MINIMUM_TIME_BETWEEN_GEAR_SHIFTS"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] time)return native_invoker.unified_void(vehicle, time, 0x16CFBC5E7EB32861, "ii")end, - ["FULLY_CHARGE_NITROUS"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x1A2BCC8C636F9226, "i")end, - ["_GET_REMAINING_NITROUS_DURATION"]=--[[float]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_float(vehicle, 0xBEC4B8653462450E, "i")end, - ["IS_NITROUS_ACTIVE"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x491E822B2C464FE4, "i")end, - ["CLEAR_NITROUS"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0xC889AE921400E1ED, "i")end, - ["SET_INCREASE_WHEEL_CRUSH_DAMAGE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x2970EAA18FD5E42F, "ib")end, - -- Sets some global vehicle related bool - ["SET_DISABLE_WEAPON_BLADE_FORCES"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x211E95CE9903940C, "b")end, - -- Changes the car jump control to require a double-tap to activate. - ["SET_USE_DOUBLE_CLICK_FOR_CAR_JUMP"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x5BBCF35BF6E456F7, "b")end, - -- Returns true only if the "tombstone" bone is attached to the vehicle, irrespective of "FLAG_HAS_TOMBSTONE" being present or not. Detaching the tombstone will return false. - ["GET_DOES_VEHICLE_HAVE_TOMBSTONE"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x71AFB258CCED3A27, "i")end, - -- Disables detachable bumber from domnator4, dominator5, dominator6, see https://gfycat.com/SecondUnluckyGosling - ["HIDE_TOMBSTONE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xAE71FB656C600587, "ib")end, - ["APPLY_EMP_EFFECT"]=--[[void]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_void(vehicle, 0x249249D74F813EB2, "i")end, - -- Returns whether this vehicle is currently disabled by an EMP mine. - ["GET_IS_VEHICLE_DISABLED_BY_EMP"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x0506ED94363AD905, "i")end, - ["SET_DISABLE_RETRACTING_WEAPON_BLADES"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0x8F0D5BA1C2CC91D7, "b")end, - -- Usable wheels: - -- 0: wheel_lf - -- 1: wheel_rf - -- 2: wheel_lm1 - -- 3: wheel_rm1 - -- 4: wheel_lr - -- 5: wheel_rr - ["GET_TYRE_HEALTH"]=--[[float]] function(--[[Vehicle (int)]] vehicle,--[[int]] wheelIndex)return native_invoker.unified_float(vehicle, wheelIndex, 0x55EAB010FAEE9380, "ii")end, - -- SET_TYRE_WEAR_RATE must be active, otherwise values set to <1000.0f will default to 350.0f - -- - -- Usable wheels: - -- 0: wheel_lf - -- 1: wheel_rf - -- 2: wheel_lm1 - -- 3: wheel_rm1 - -- 4: wheel_lr - -- 5: wheel_rr - ["SET_TYRE_HEALTH"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] wheelIndex,--[[float]] health)return native_invoker.unified_void(vehicle, wheelIndex, health, 0x74C68EF97645E79D, "iif")end, - -- Returns the multiplier value from SET_TYRE_WEAR_RATE - -- - -- Usable wheels: - -- 0: wheel_lf - -- 1: wheel_rf - -- 2: wheel_lm1 - -- 3: wheel_rm1 - -- 4: wheel_lr - -- 5: wheel_rr - ["GET_TYRE_WEAR_RATE"]=--[[float]] function(--[[Vehicle (int)]] vehicle,--[[int]] wheelIndex)return native_invoker.unified_float(vehicle, wheelIndex, 0x6E387895952F4F71, "ii")end, - -- Needs to be run for tire wear to work. Multiplier affects the downforce and how fast the tires will wear out, higher values essentially make the vehicle slower on straights and its tires will wear down quicker when cornering. Value must be >0f. - -- Default value in Rockstar's Open Wheel Race JSON's ("owrtws", "owrtwm", "owrtwh") is 1.0 - -- - -- Usable wheels: - -- 0: wheel_lf - -- 1: wheel_rf - -- 2: wheel_lm1 - -- 3: wheel_rm1 - -- 4: wheel_lr - -- 5: wheel_rr - ["SET_TYRE_WEAR_RATE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] wheelIndex,--[[float]] multiplier)return native_invoker.unified_void(vehicle, wheelIndex, multiplier, 0x01894E2EDE923CA2, "iif")end, - -- Controls how fast the tires wear out. - -- - -- Default values from Rockstar's Open Wheel Race JSON's: - -- "owrtss" (Soft): 2.2 - -- "owrtsm" (Medium): 1.7 - -- "owrtsh" (Hard): 1.2 - -- - -- Usable wheels: - -- 0: wheel_lf - -- 1: wheel_rf - -- 2: wheel_lm1 - -- 3: wheel_rm1 - -- 4: wheel_lr - -- 5: wheel_rr - ["SET_TYRE_WEAR_RATE_SCALE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] wheelIndex,--[[float]] multiplier)return native_invoker.unified_void(vehicle, wheelIndex, multiplier, 0x392183BB9EA57697, "iif")end, - -- Controls how much traction the wheel loses. - -- - -- Default values from Rockstar's Open Wheel Race JSON's: - -- "owrtds" (Soft): 0.05 - -- "owrtdm" (Medium): 0.45 - -- "owrtdh" (Hard): 0.8 - -- - -- Usable wheels: - -- 0: wheel_lf - -- 1: wheel_rf - -- 2: wheel_lm1 - -- 3: wheel_rm1 - -- 4: wheel_lr - -- 5: wheel_rr - ["SET_TYRE_MAXIMUM_GRIP_DIFFERENCE_DUE_TO_WEAR_RATE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] wheelIndex,--[[float]] multiplier)return native_invoker.unified_void(vehicle, wheelIndex, multiplier, 0xC970D0E0FC31D768, "iif")end, - ["SET_AIRCRAFT_IGNORE_HIGHTMAP_OPTIMISATION"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[int]] p1)return native_invoker.unified_void(vehicle, p1, 0xF8B49F5BA7F850E7, "ii")end, - -- Lowers the vehicle's stance. Only works for vehicles that have strAdvancedFlags 0x8000 and 0x4000000 set. - ["SET_REDUCED_SUSPENSION_FORCE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] enable)return native_invoker.unified_void(vehicle, enable, 0x3A375167F5782A65, "ib")end, - ["SET_DRIFT_TYRES"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x5AC79C98C5C17F05, "ib")end, - ["GET_DRIFT_TYRES_SET"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle)return native_invoker.unified_bool(vehicle, 0x2F5A72430E78C8D3, "i")end, - -- Implemented only for trains. - ["NETWORK_USE_HIGH_PRECISION_TRAIN_BLENDING"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0xEC0C1D4922AF9754, "ib")end, - -- Only used in R* Script fm_content_cargo - ["SET_CHECK_FOR_ENOUGH_ROOM_FOR_PED"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] p1)return native_invoker.unified_void(vehicle, p1, 0xEF9D388F8D377F44, "ib")end, - -- _SET_ALLOW_R* - _SET_ALLOW_V* - ["_SET_ALLOW_COLLISION_WHEN_IN_VEHICLE"]=--[[void]] function(--[[Vehicle (int)]] vehicle,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(vehicle, toggle, 0x27D27223E8EF22ED, "ib")end, - ["_IS_VEHICLE_GEN9_EXCLUSIVE_MODEL"]=--[[BOOL (bool)]] function(--[[Hash (int)]] vehicleModel)return native_invoker.unified_bool(vehicleModel, 0x6638C0F19DE692FE, "i")end, - ["_GET_VEHICLE_MAX_EXHAUST_BONE_COUNT"]=--[[int]] function()return native_invoker.unified_int(0x3EE18B00CD86C54F, "")end, - ["_GET_VEHICLE_EXHAUST_BONE"]=--[[BOOL (bool)]] function(--[[Vehicle (int)]] vehicle,--[[int]] index,--[[int* (pointer)]] boneIndex,--[[BOOL* (pointer)]] axisX)return native_invoker.unified_bool(vehicle, index, boneIndex, axisX, 0xE728F090D538CB18, "iipp")end, -} -WATER={ - -- This function set height to the value of z-axis of the water surface. - -- - -- This function works with sea and lake. However it does not work with shallow rivers (e.g. raton canyon will return -100000.0f) - -- - -- note: seems to return true when you are in water - ["GET_WATER_HEIGHT"]=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float* (pointer)]] height)return native_invoker.unified_bool(x, y, z, height, 0xF6829842C06AE524, "fffp")end, - ["GET_WATER_HEIGHT_NO_WAVES"]=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float* (pointer)]] height)return native_invoker.unified_bool(x, y, z, height, 0x8EE6B53CE13A9794, "fffp")end, - ["TEST_PROBE_AGAINST_WATER"]=--[[BOOL (bool)]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[Vector3* (pointer)]] result)return native_invoker.unified_bool(x1, y1, z1, x2, y2, z2, result, 0xFFA5D878809819DB, "ffffffp")end, - -- enum eScriptWaterTestResult - -- { - -- SCRIPT_WATER_TEST_RESULT_NONE, - -- SCRIPT_WATER_TEST_RESULT_WATER, - -- SCRIPT_WATER_TEST_RESULT_BLOCKED, - -- }; - ["TEST_PROBE_AGAINST_ALL_WATER"]=--[[int]] function(--[[float]] x1,--[[float]] y1,--[[float]] z1,--[[float]] x2,--[[float]] y2,--[[float]] z2,--[[int]] flags,--[[float* (pointer)]] waterHeight)return native_invoker.unified_int(x1, y1, z1, x2, y2, z2, flags, waterHeight, 0x8974647ED222EA5F, "ffffffip")end, - -- See TEST_PROBE_AGAINST_ALL_WATER. - ["TEST_VERTICAL_PROBE_AGAINST_ALL_WATER"]=--[[int]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[int]] flags,--[[float* (pointer)]] waterHeight)return native_invoker.unified_int(x, y, z, flags, waterHeight, 0x2B3451FA1E3142E2, "fffip")end, - -- Sets the water height for a given position and radius. - -- - ["MODIFY_WATER"]=--[[void]] function(--[[float]] x,--[[float]] y,--[[float]] radius,--[[float]] height)return native_invoker.unified_void(x, y, radius, height, 0xC443FD757C3BA637, "ffff")end, - ["ADD_EXTRA_CALMING_QUAD"]=--[[int]] function(--[[float]] xLow,--[[float]] yLow,--[[float]] xHigh,--[[float]] yHigh,--[[float]] height)return native_invoker.unified_int(xLow, yLow, xHigh, yHigh, height, 0xFDBF4CDBC07E1706, "fffff")end, - -- p0 is the handle returned from ADD_EXTRA_CALMING_QUAD - ["REMOVE_EXTRA_CALMING_QUAD"]=--[[void]] function(--[[int]] calmingQuad)return native_invoker.unified_void(calmingQuad, 0xB1252E3E59A82AAF, "i")end, - -- Sets a value that determines how aggressive the ocean waves will be. Values of 2.0 or more make for very aggressive waves like you see during a thunderstorm. - -- - -- Works only ~200 meters around the player. - ["SET_DEEP_OCEAN_SCALER"]=--[[void]] function(--[[float]] intensity)return native_invoker.unified_void(intensity, 0xB96B00E976BE977F, "f")end, - -- Gets the aggressiveness factor of the ocean waves. - ["GET_DEEP_OCEAN_SCALER"]=--[[float]] function()return native_invoker.unified_float(0x2B2A2CC86778B619, "")end, - ["SET_CALMED_WAVE_HEIGHT_SCALER"]=--[[void]] function(--[[float]] height)return native_invoker.unified_void(height, 0x547237AA71AB44DE, "f")end, - -- Sets the waves intensity back to original (1.0 in most cases). - ["RESET_DEEP_OCEAN_SCALER"]=--[[void]] function()return native_invoker.unified_void(0x5E5E99285AE812DB, "")end, -} -WEAPON={ - -- Enables laser sight on any weapon. - -- - -- It doesn't work. Neither on tick nor OnKeyDown - ["ENABLE_LASER_SIGHT_RENDERING"]=--[[void]] function(--[[BOOL (bool)]] toggle)return native_invoker.unified_void(toggle, 0xC8B46D7727D864AA, "b")end, - ["GET_WEAPON_COMPONENT_TYPE_MODEL"]=--[[Hash (int)]] function(--[[Hash (int)]] componentHash)return native_invoker.unified_int(componentHash, 0x0DB57B41EC1DB083, "i")end, - -- Returns the model of any weapon. - -- - -- Can also take an ammo hash? - -- sub_6663a(&l_115B, WEAPON::GET_WEAPONTYPE_MODEL(${ammo_rpg})); - ["GET_WEAPONTYPE_MODEL"]=--[[Hash (int)]] function(--[[Hash (int)]] weaponHash)return native_invoker.unified_int(weaponHash, 0xF46CDC33180FDA94, "i")end, - ["GET_WEAPONTYPE_SLOT"]=--[[Hash (int)]] function(--[[Hash (int)]] weaponHash)return native_invoker.unified_int(weaponHash, 0x4215460B9B8B7FA0, "i")end, - ["GET_WEAPONTYPE_GROUP"]=--[[Hash (int)]] function(--[[Hash (int)]] weaponHash)return native_invoker.unified_int(weaponHash, 0xC3287EE3050FB74C, "i")end, - -- Returns the amount of extra components the specified component has. - -- Returns -1 if the component isn't of type CWeaponComponentVariantModel. - ["GET_WEAPON_COMPONENT_VARIANT_EXTRA_COUNT"]=--[[int]] function(--[[Hash (int)]] componentHash)return native_invoker.unified_int(componentHash, 0x6558AC7C17BFEF58, "i")end, - -- Returns the model hash of the extra component at specified index. - ["GET_WEAPON_COMPONENT_VARIANT_EXTRA_MODEL"]=--[[Hash (int)]] function(--[[Hash (int)]] componentHash,--[[int]] extraComponentIndex)return native_invoker.unified_int(componentHash, extraComponentIndex, 0x4D1CB8DC40208A17, "ii")end, - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ["SET_CURRENT_PED_WEAPON"]=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[BOOL (bool)]] bForceInHand)return native_invoker.unified_void(ped, weaponHash, bForceInHand, 0xADF692B254977C0C, "iib")end, - -- The return value seems to indicate returns true if the hash of the weapon object weapon equals the weapon hash. - -- p2 seems to be 1 most of the time. - -- - -- - -- - -- - -- - -- p2 is not implemented - -- - -- disassembly said that? - -- - ["GET_CURRENT_PED_WEAPON"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Hash* (pointer)]] weaponHash,--[[BOOL (bool)]] p2)return native_invoker.unified_bool(ped, weaponHash, p2, 0x3A87E44BB9A01D54, "ipb")end, - ["GET_CURRENT_PED_WEAPON_ENTITY_INDEX"]=--[[Entity (int)]] function(--[[Ped (int)]] ped,--[[Any (int)]] p1)return native_invoker.unified_int(ped, p1, 0x3B390A939AF0B5FC, "ii")end, - -- p1 is always 0 in the scripts. - ["GET_BEST_PED_WEAPON"]=--[[Hash (int)]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1)return native_invoker.unified_int(ped, p1, 0x8483E98E8B888AE2, "ib")end, - -- Full list of weapons by DurtyFree (Search for VEHICLE_*): https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ["SET_CURRENT_PED_VEHICLE_WEAPON"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash)return native_invoker.unified_bool(ped, weaponHash, 0x75C55983C2C39DAA, "ii")end, - -- Example in VB - -- - -- Public Shared Function GetVehicleCurrentWeapon(Ped As Ped) As Integer - -- Dim arg As New OutputArgument() - -- Native.Function.Call(Hash.GET_CURRENT_PED_VEHICLE_WEAPON, Ped, arg) - -- Return arg.GetResult(Of Integer)() - -- End Function - -- - -- Usage: - -- If GetVehicleCurrentWeapon(Game.Player.Character) = -821520672 Then ...Do something - -- Note: -821520672 = VEHICLE_WEAPON_PLANE_ROCKET - ["GET_CURRENT_PED_VEHICLE_WEAPON"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Hash* (pointer)]] weaponHash)return native_invoker.unified_bool(ped, weaponHash, 0x1017582BCD3832DC, "ip")end, - ["SET_PED_CYCLE_VEHICLE_WEAPONS_ONLY"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x50276EF8172F5F12, "i")end, - -- Checks if the ped is currently equipped with a weapon matching a bit specified using a bitwise-or in typeFlags. - -- - -- Type flag bit values: - -- 1 = Melee weapons - -- 2 = Explosive weapons - -- 4 = Any other weapons - -- - -- Not specifying any bit will lead to the native *always* returning 'false', and for example specifying '4 | 2' will check for any weapon except fists and melee weapons. - -- 7 returns true if you are equipped with any weapon except your fists. - -- 6 returns true if you are equipped with any weapon except melee weapons. - -- 5 returns true if you are equipped with any weapon except the Explosives weapon group. - -- 4 returns true if you are equipped with any weapon except Explosives weapon group AND melee weapons. - -- 3 returns true if you are equipped with either Explosives or Melee weapons (the exact opposite of 4). - -- 2 returns true only if you are equipped with any weapon from the Explosives weapon group. - -- 1 returns true only if you are equipped with any Melee weapon. - -- 0 never returns true. - -- - -- Note: When I say "Explosives weapon group", it does not include the Jerry can and Fire Extinguisher. - ["IS_PED_ARMED"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[int]] typeFlags)return native_invoker.unified_bool(ped, typeFlags, 0x475768A975D5AD17, "ii")end, - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ["IS_WEAPON_VALID"]=--[[BOOL (bool)]] function(--[[Hash (int)]] weaponHash)return native_invoker.unified_bool(weaponHash, 0x937C71165CF334B3, "i")end, - -- p2 should be FALSE, otherwise it seems to always return FALSE - -- - -- Bool does not check if the weapon is current equipped, unfortunately. - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ["HAS_PED_GOT_WEAPON"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[BOOL (bool)]] p2)return native_invoker.unified_bool(ped, weaponHash, p2, 0x8DECB02F88F428BC, "iib")end, - ["IS_PED_WEAPON_READY_TO_SHOOT"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0xB80CA294F2F26749, "i")end, - ["GET_PED_WEAPONTYPE_IN_SLOT"]=--[[Hash (int)]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponSlot)return native_invoker.unified_int(ped, weaponSlot, 0xEFFED78E9011134D, "ii")end, - -- WEAPON::GET_AMMO_IN_PED_WEAPON(PLAYER::PLAYER_PED_ID(), a_0) - -- - -- From decompiled scripts - -- Returns total ammo in weapon - -- - -- GTALua Example : - -- natives.WEAPON.GET_AMMO_IN_PED_WEAPON(plyPed, WeaponHash) - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ["GET_AMMO_IN_PED_WEAPON"]=--[[int]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponhash)return native_invoker.unified_int(ped, weaponhash, 0x015A522136D7F951, "ii")end, - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ["ADD_AMMO_TO_PED"]=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[int]] ammo)return native_invoker.unified_void(ped, weaponHash, ammo, 0x78F0424C34306220, "iii")end, - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ["SET_PED_AMMO"]=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[int]] ammo,--[[BOOL (bool)]] p3)return native_invoker.unified_void(ped, weaponHash, ammo, p3, 0x14E56BC5B5DB6A19, "iiib")end, - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ["SET_PED_INFINITE_AMMO"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle,--[[Hash (int)]] weaponHash)return native_invoker.unified_void(ped, toggle, weaponHash, 0x3EDCB0505123623B, "ibi")end, - ["SET_PED_INFINITE_AMMO_CLIP"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x183DADC6AA953186, "ib")end, - ["SET_PED_STUN_GUN_FINITE_AMMO"]=--[[void]] function(--[[Any (int)]] p0,--[[Any (int)]] p1)return native_invoker.unified_void(p0, p1, 0x24C024BA8379A70A, "ii")end, - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ["GIVE_WEAPON_TO_PED"]=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[int]] ammoCount,--[[BOOL (bool)]] isHidden,--[[BOOL (bool)]] bForceInHand)return native_invoker.unified_void(ped, weaponHash, ammoCount, isHidden, bForceInHand, 0xBF0FD6E56C964FCB, "iiibb")end, - -- Gives a weapon to PED with a delay, example: - -- - -- WEAPON::GIVE_DELAYED_WEAPON_TO_PED(PED::PLAYER_PED_ID(), MISC::GET_HASH_KEY("WEAPON_PISTOL"), 1000, false) - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ["GIVE_DELAYED_WEAPON_TO_PED"]=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[int]] ammoCount,--[[BOOL (bool)]] bForceInHand)return native_invoker.unified_void(ped, weaponHash, ammoCount, bForceInHand, 0xB282DC6EBD803C75, "iiib")end, - -- setting the last params to false it does that same so I would suggest its not a toggle - ["REMOVE_ALL_PED_WEAPONS"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1)return native_invoker.unified_void(ped, p1, 0xF25DF915FA38C5F3, "ib")end, - -- This native removes a specified weapon from your selected ped. - -- - -- Example: - -- C#: - -- Function.Call(Hash.REMOVE_WEAPON_FROM_PED, Game.Player.Character, 0x99B507EA); - -- - -- C++: - -- WEAPON::REMOVE_WEAPON_FROM_PED(PLAYER::PLAYER_PED_ID(), 0x99B507EA); - -- - -- The code above removes the knife from the player. - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ["REMOVE_WEAPON_FROM_PED"]=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash)return native_invoker.unified_void(ped, weaponHash, 0x4899CB088EDF59B8, "ii")end, - -- Hides the players weapon during a cutscene. - ["HIDE_PED_WEAPON_FOR_SCRIPTED_CUTSCENE"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x6F6981D2253C208F, "ib")end, - -- Has 5 parameters since latest patches. - ["SET_PED_CURRENT_WEAPON_VISIBLE"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] visible,--[[BOOL (bool)]] deselectWeapon,--[[BOOL (bool)]] p3,--[[BOOL (bool)]] p4)return native_invoker.unified_void(ped, visible, deselectWeapon, p3, p4, 0x0725A4CCFDED9A70, "ibbbb")end, - ["SET_PED_DROPS_WEAPONS_WHEN_DEAD"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x476AE72C1D19D1A8, "ib")end, - -- It determines what weapons caused damage: - -- - -- If you want to define only a specific weapon, second parameter=weapon hash code, third parameter=0 - -- If you want to define any melee weapon, second parameter=0, third parameter=1. - -- If you want to identify any weapon (firearms, melee, rockets, etc.), second parameter=0, third parameter=2. - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ["HAS_PED_BEEN_DAMAGED_BY_WEAPON"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[int]] weaponType)return native_invoker.unified_bool(ped, weaponHash, weaponType, 0x2D343D2219CD027A, "iii")end, - -- Does NOT seem to work with HAS_PED_BEEN_DAMAGED_BY_WEAPON. Use CLEAR_ENTITY_LAST_WEAPON_DAMAGE and HAS_ENTITY_BEEN_DAMAGED_BY_WEAPON instead. - ["CLEAR_PED_LAST_WEAPON_DAMAGE"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x0E98F88A24C5F4B8, "i")end, - -- It determines what weapons caused damage: - -- - -- If you want to define only a specific weapon, second parameter=weapon hash code, third parameter=0 - -- If you want to define any melee weapon, second parameter=0, third parameter=1. - -- If you want to identify any weapon (firearms, melee, rockets, etc.), second parameter=0, third parameter=2. - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ["HAS_ENTITY_BEEN_DAMAGED_BY_WEAPON"]=--[[BOOL (bool)]] function(--[[Entity (int)]] entity,--[[Hash (int)]] weaponHash,--[[int]] weaponType)return native_invoker.unified_bool(entity, weaponHash, weaponType, 0x131D401334815E94, "iii")end, - ["CLEAR_ENTITY_LAST_WEAPON_DAMAGE"]=--[[void]] function(--[[Entity (int)]] entity)return native_invoker.unified_void(entity, 0xAC678E40BE7C74D2, "i")end, - ["SET_PED_DROPS_WEAPON"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0x6B7513D9966FBEC0, "i")end, - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ["SET_PED_DROPS_INVENTORY_WEAPON"]=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[float]] xOffset,--[[float]] yOffset,--[[float]] zOffset,--[[int]] ammoCount)return native_invoker.unified_void(ped, weaponHash, xOffset, yOffset, zOffset, ammoCount, 0x208A1888007FC0E6, "iifffi")end, - -- p2 is mostly 1 in the scripts. - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ["GET_MAX_AMMO_IN_CLIP"]=--[[int]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[BOOL (bool)]] p2)return native_invoker.unified_int(ped, weaponHash, p2, 0xA38DCFFCEA8962FA, "iib")end, - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ["GET_AMMO_IN_CLIP"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[int* (pointer)]] ammo)return native_invoker.unified_bool(ped, weaponHash, ammo, 0x2E1202248937775C, "iip")end, - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ["SET_AMMO_IN_CLIP"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[int]] ammo)return native_invoker.unified_bool(ped, weaponHash, ammo, 0xDCD2A934D65CB497, "iii")end, - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ["GET_MAX_AMMO"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[int* (pointer)]] ammo)return native_invoker.unified_bool(ped, weaponHash, ammo, 0xDC16122C7A20C933, "iip")end, - -- Returns the max ammo for an ammo type. Ammo types: https://gist.github.com/root-cause/faf41f59f7a6d818b7db0b839bd147c1 - ["GET_MAX_AMMO_BY_TYPE"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Hash (int)]] ammoTypeHash,--[[int* (pointer)]] ammo)return native_invoker.unified_bool(ped, ammoTypeHash, ammo, 0x585847C5E4E11709, "iip")end, - -- Ammo types: https://gist.github.com/root-cause/faf41f59f7a6d818b7db0b839bd147c1 - ["ADD_PED_AMMO_BY_TYPE"]=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] ammoTypeHash,--[[int]] ammo)return native_invoker.unified_void(ped, ammoTypeHash, ammo, 0x2472622CE1F2D45F, "iii")end, - -- Ammo types: https://gist.github.com/root-cause/faf41f59f7a6d818b7db0b839bd147c1 - ["SET_PED_AMMO_BY_TYPE"]=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] ammoTypeHash,--[[int]] ammo)return native_invoker.unified_void(ped, ammoTypeHash, ammo, 0x5FD1E1F011E76D7E, "iii")end, - ["GET_PED_AMMO_BY_TYPE"]=--[[int]] function(--[[Ped (int)]] ped,--[[Hash (int)]] ammoTypeHash)return native_invoker.unified_int(ped, ammoTypeHash, 0x39D22031557946C1, "ii")end, - ["SET_PED_AMMO_TO_DROP"]=--[[void]] function(--[[Ped (int)]] ped,--[[int]] p1)return native_invoker.unified_void(ped, p1, 0xA4EFEF9440A5B0EF, "ii")end, - ["SET_PICKUP_AMMO_AMOUNT_SCALER"]=--[[void]] function(--[[float]] p0)return native_invoker.unified_void(p0, 0xE620FD3512A04F18, "f")end, - -- Returns the current ammo type of the specified ped's specified weapon. - -- MkII magazines will change the return value, like Pistol MkII returning AMMO_PISTOL without any components and returning AMMO_PISTOL_TRACER after Tracer Rounds component is attached. - -- Use 0xF489B44DD5AF4BD9 if you always want AMMO_PISTOL. - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ["GET_PED_AMMO_TYPE_FROM_WEAPON"]=--[[Hash (int)]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash)return native_invoker.unified_int(ped, weaponHash, 0x7FEAD38B326B9F74, "ii")end, - -- Returns the base/default ammo type of the specified ped's specified weapon. - -- Use GET_PED_AMMO_TYPE_FROM_WEAPON if you want current ammo type (like AMMO_MG_INCENDIARY/AMMO_MG_TRACER while using MkII magazines) and use this if you want base ammo type. (AMMO_MG) - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ["GET_PED_ORIGINAL_AMMO_TYPE_FROM_WEAPON"]=--[[Hash (int)]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash)return native_invoker.unified_int(ped, weaponHash, 0xF489B44DD5AF4BD9, "ii")end, - -- Pass ped. Pass address of Vector3. - -- The coord will be put into the Vector3. - -- The return will determine whether there was a coord found or not. - ["GET_PED_LAST_WEAPON_IMPACT_COORD"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Vector3* (pointer)]] coords)return native_invoker.unified_bool(ped, coords, 0x6C4D0409BA1A2BC2, "ip")end, - -- p1/gadgetHash was always 0xFBAB5776 ("GADGET_PARACHUTE"). - -- p2 is always true. - ["SET_PED_GADGET"]=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] gadgetHash,--[[BOOL (bool)]] p2)return native_invoker.unified_void(ped, gadgetHash, p2, 0xD0D7B1E680ED4A1A, "iib")end, - -- gadgetHash - was always 0xFBAB5776 ("GADGET_PARACHUTE"). - ["GET_IS_PED_GADGET_EQUIPPED"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Hash (int)]] gadgetHash)return native_invoker.unified_bool(ped, gadgetHash, 0xF731332072F5156C, "ii")end, - -- Returns the hash of the weapon. - -- - -- var num7 = WEAPON::GET_SELECTED_PED_WEAPON(num4); - -- sub_27D3(num7); - -- switch (num7) - -- { - -- case 0x24B17070: - -- - -- Also see WEAPON::GET_CURRENT_PED_WEAPON. Difference? - -- - -- ------------------------------------------------------------------------- - -- - -- The difference is that GET_SELECTED_PED_WEAPON simply returns the ped's current weapon hash but GET_CURRENT_PED_WEAPON also checks the weapon object and returns true if the hash of the weapon object equals the weapon hash - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ["GET_SELECTED_PED_WEAPON"]=--[[Hash (int)]] function(--[[Ped (int)]] ped)return native_invoker.unified_int(ped, 0x0A6DB4965674D243, "i")end, - -- WEAPON::EXPLODE_PROJECTILES(PLAYER::PLAYER_PED_ID(), func_221(0x00000003), 0x00000001); - ["EXPLODE_PROJECTILES"]=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[BOOL (bool)]] p2)return native_invoker.unified_void(ped, weaponHash, p2, 0xFC4BD125DE7611E4, "iib")end, - -- If `explode` true, then removal is done through exploding the projectile. Basically the same as EXPLODE_PROJECTILES but without defining the owner ped. - ["REMOVE_ALL_PROJECTILES_OF_TYPE"]=--[[void]] function(--[[Hash (int)]] weaponHash,--[[BOOL (bool)]] explode)return native_invoker.unified_void(weaponHash, explode, 0xFC52E0F37E446528, "ib")end, - ["GET_LOCKON_DISTANCE_OF_CURRENT_PED_WEAPON"]=--[[float]] function(--[[Ped (int)]] ped)return native_invoker.unified_float(ped, 0x840F03E9041E2C9C, "i")end, - ["GET_MAX_RANGE_OF_CURRENT_PED_WEAPON"]=--[[float]] function(--[[Ped (int)]] ped)return native_invoker.unified_float(ped, 0x814C9D19DFD69679, "i")end, - -- Fourth Parameter = unsure, almost always -1 - ["HAS_VEHICLE_GOT_PROJECTILE_ATTACHED"]=--[[BOOL (bool)]] function(--[[Ped (int)]] driver,--[[Vehicle (int)]] vehicle,--[[Hash (int)]] weaponHash,--[[Any (int)]] p3)return native_invoker.unified_bool(driver, vehicle, weaponHash, p3, 0x717C8481234E3B88, "iiii")end, - -- Full list of weapons & components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ["GIVE_WEAPON_COMPONENT_TO_PED"]=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[Hash (int)]] componentHash)return native_invoker.unified_void(ped, weaponHash, componentHash, 0xD966D51AA5B28BB9, "iii")end, - -- Full list of weapons & components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ["REMOVE_WEAPON_COMPONENT_FROM_PED"]=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[Hash (int)]] componentHash)return native_invoker.unified_void(ped, weaponHash, componentHash, 0x1E8BE90C74FB4C09, "iii")end, - -- Full list of weapons & components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ["HAS_PED_GOT_WEAPON_COMPONENT"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[Hash (int)]] componentHash)return native_invoker.unified_bool(ped, weaponHash, componentHash, 0xC593212475FAE340, "iii")end, - -- Full list of weapons & components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ["IS_PED_WEAPON_COMPONENT_ACTIVE"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[Hash (int)]] componentHash)return native_invoker.unified_bool(ped, weaponHash, componentHash, 0x0D78DE0572D3969E, "iii")end, - ["REFILL_AMMO_INSTANTLY"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x8C0D57EA686FAD87, "i")end, - -- Forces a ped to reload only if they are able to; if they have a full magazine, they will not reload. - ["MAKE_PED_RELOAD"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x20AE33F3AC9C0033, "i")end, - -- Nearly every instance of p1 I found was 31. Nearly every instance of p2 I found was 0. - -- - -- REQUEST_WEAPON_ASSET(iLocal_1888, 31, 26); - ["REQUEST_WEAPON_ASSET"]=--[[void]] function(--[[Hash (int)]] weaponHash,--[[int]] p1,--[[int]] p2)return native_invoker.unified_void(weaponHash, p1, p2, 0x5443438F033E29C3, "iii")end, - ["HAS_WEAPON_ASSET_LOADED"]=--[[BOOL (bool)]] function(--[[Hash (int)]] weaponHash)return native_invoker.unified_bool(weaponHash, 0x36E353271F0E90EE, "i")end, - ["REMOVE_WEAPON_ASSET"]=--[[void]] function(--[[Hash (int)]] weaponHash)return native_invoker.unified_void(weaponHash, 0xAA08EF13F341C8FC, "i")end, - -- Now has 8 params. - ["CREATE_WEAPON_OBJECT"]=--[[Object (int)]] function(--[[Hash (int)]] weaponHash,--[[int]] ammoCount,--[[float]] x,--[[float]] y,--[[float]] z,--[[BOOL (bool)]] showWorldModel,--[[float]] scale,--[[Any (int)]] p7,--[[Any (int)]] p8,--[[Any (int)]] p9)return native_invoker.unified_int(weaponHash, ammoCount, x, y, z, showWorldModel, scale, p7, p8, p9, 0x9541D3CF0D398F36, "iifffbfiii")end, - -- componentHash: - -- (use WEAPON::GET_WEAPON_COMPONENT_TYPE_MODEL() to get hash value) - -- ${component_at_ar_flsh}, ${component_at_ar_supp}, ${component_at_pi_flsh}, ${component_at_scope_large}, ${component_at_ar_supp_02} - ["GIVE_WEAPON_COMPONENT_TO_WEAPON_OBJECT"]=--[[void]] function(--[[Object (int)]] weaponObject,--[[Hash (int)]] componentHash)return native_invoker.unified_void(weaponObject, componentHash, 0x33E179436C0B31DB, "ii")end, - -- see DOES_WEAPON_TAKE_WEAPON_COMPONENT for full list of weapons & components - ["REMOVE_WEAPON_COMPONENT_FROM_WEAPON_OBJECT"]=--[[void]] function(--[[Object (int)]] object,--[[Hash (int)]] componentHash)return native_invoker.unified_void(object, componentHash, 0xF7D82B0D66777611, "ii")end, - -- see DOES_WEAPON_TAKE_WEAPON_COMPONENT for full list of weapons & components - ["HAS_WEAPON_GOT_WEAPON_COMPONENT"]=--[[BOOL (bool)]] function(--[[Object (int)]] weapon,--[[Hash (int)]] componentHash)return native_invoker.unified_bool(weapon, componentHash, 0x76A18844E743BF91, "ii")end, - ["GIVE_WEAPON_OBJECT_TO_PED"]=--[[void]] function(--[[Object (int)]] weaponObject,--[[Ped (int)]] ped)return native_invoker.unified_void(weaponObject, ped, 0xB1FA61371AF7C4B7, "ii")end, - -- Full list of weapons & components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ["DOES_WEAPON_TAKE_WEAPON_COMPONENT"]=--[[BOOL (bool)]] function(--[[Hash (int)]] weaponHash,--[[Hash (int)]] componentHash)return native_invoker.unified_bool(weaponHash, componentHash, 0x5CEE3DF569CECAB0, "ii")end, - -- Drops the current weapon and returns the object - -- - -- Unknown behavior when unarmed. - ["GET_WEAPON_OBJECT_FROM_PED"]=--[[Object (int)]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] p1)return native_invoker.unified_int(ped, p1, 0xCAE1DC9A0E22A16D, "ib")end, - -- Gives the specified loadout to the specified ped. - -- Loadouts are defined in common.rpf\data\ai\loadouts.meta - ["GIVE_LOADOUT_TO_PED"]=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] loadoutHash)return native_invoker.unified_void(ped, loadoutHash, 0x68F8BE6AF5CDF8A6, "ii")end, - -- tintIndex can be the following: - -- - -- 0 - Normal - -- 1 - Green - -- 2 - Gold - -- 3 - Pink - -- 4 - Army - -- 5 - LSPD - -- 6 - Orange - -- 7 - Platinum - -- Full list of weapons, components & tint indexes by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ["SET_PED_WEAPON_TINT_INDEX"]=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[int]] tintIndex)return native_invoker.unified_void(ped, weaponHash, tintIndex, 0x50969B9B89ED5738, "iii")end, - -- Full list of weapons, components & tint indexes by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ["GET_PED_WEAPON_TINT_INDEX"]=--[[int]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash)return native_invoker.unified_int(ped, weaponHash, 0x2B9EEDC07BD06B9F, "ii")end, - -- Full list of weapons, components & tint indexes by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ["SET_WEAPON_OBJECT_TINT_INDEX"]=--[[void]] function(--[[Object (int)]] weapon,--[[int]] tintIndex)return native_invoker.unified_void(weapon, tintIndex, 0xF827589017D4E4A9, "ii")end, - ["GET_WEAPON_OBJECT_TINT_INDEX"]=--[[int]] function(--[[Object (int)]] weapon)return native_invoker.unified_int(weapon, 0xCD183314F7CD2E57, "i")end, - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ["GET_WEAPON_TINT_COUNT"]=--[[int]] function(--[[Hash (int)]] weaponHash)return native_invoker.unified_int(weaponHash, 0x5DCF6C5CAB2E9BF7, "i")end, - -- Colors: - -- 0 = Gray - -- 1 = Dark Gray - -- 2 = Black - -- 3 = White - -- 4 = Blue - -- 5 = Cyan - -- 6 = Aqua - -- 7 = Cool Blue - -- 8 = Dark Blue - -- 9 = Royal Blue - -- 10 = Plum - -- 11 = Dark Purple - -- 12 = Purple - -- 13 = Red - -- 14 = Wine Red - -- 15 = Magenta - -- 16 = Pink - -- 17 = Salmon - -- 18 = Hot Pink - -- 19 = Rust Orange - -- 20 = Brown - -- 21 = Earth - -- 22 = Orange - -- 23 = Light Orange - -- 24 = Dark Yellow - -- 25 = Yellow - -- 26 = Light Brown - -- 27 = Lime Green - -- 28 = Olive - -- 29 = Moss - -- 30 = Turquoise - -- 31 = Dark Green - -- Full list of weapons, components, tint indexes & weapon liveries by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ["SET_PED_WEAPON_COMPONENT_TINT_INDEX"]=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[Hash (int)]] camoComponentHash,--[[int]] colorIndex)return native_invoker.unified_void(ped, weaponHash, camoComponentHash, colorIndex, 0x9FE5633880ECD8ED, "iiii")end, - -- Returns -1 if camoComponentHash is invalid/not attached to the weapon. - -- Full list of weapons, components, tint indexes & weapon liveries by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ["GET_PED_WEAPON_COMPONENT_TINT_INDEX"]=--[[int]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[Hash (int)]] camoComponentHash)return native_invoker.unified_int(ped, weaponHash, camoComponentHash, 0xF0A60040BE558F2D, "iii")end, - -- Colors: - -- 0 = Gray - -- 1 = Dark Gray - -- 2 = Black - -- 3 = White - -- 4 = Blue - -- 5 = Cyan - -- 6 = Aqua - -- 7 = Cool Blue - -- 8 = Dark Blue - -- 9 = Royal Blue - -- 10 = Plum - -- 11 = Dark Purple - -- 12 = Purple - -- 13 = Red - -- 14 = Wine Red - -- 15 = Magenta - -- 16 = Pink - -- 17 = Salmon - -- 18 = Hot Pink - -- 19 = Rust Orange - -- 20 = Brown - -- 21 = Earth - -- 22 = Orange - -- 23 = Light Orange - -- 24 = Dark Yellow - -- 25 = Yellow - -- 26 = Light Brown - -- 27 = Lime Green - -- 28 = Olive - -- 29 = Moss - -- 30 = Turquoise - -- 31 = Dark Green - -- Full list of weapons, components, tint indexes & weapon liveries by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ["SET_WEAPON_OBJECT_COMPONENT_TINT_INDEX"]=--[[void]] function(--[[Object (int)]] weaponObject,--[[Hash (int)]] camoComponentHash,--[[int]] colorIndex)return native_invoker.unified_void(weaponObject, camoComponentHash, colorIndex, 0x5DA825A85D0EA6E6, "iii")end, - -- Returns -1 if camoComponentHash is invalid/not attached to the weapon object. - -- Full list of weapons, components, tint indexes & weapon liveries by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ["GET_WEAPON_OBJECT_COMPONENT_TINT_INDEX"]=--[[int]] function(--[[Object (int)]] weaponObject,--[[Hash (int)]] camoComponentHash)return native_invoker.unified_int(weaponObject, camoComponentHash, 0xB3EA4FEABF41464B, "ii")end, - ["GET_PED_WEAPON_CAMO_INDEX"]=--[[int]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash)return native_invoker.unified_int(ped, weaponHash, 0xA2C9AC24B4061285, "ii")end, - ["SET_WEAPON_OBJECT_CAMO_INDEX"]=--[[void]] function(--[[Object (int)]] weaponObject,--[[int]] p1)return native_invoker.unified_void(weaponObject, p1, 0x977CA98939E82E4B, "ii")end, - -- struct WeaponHudStatsData - -- { - -- BYTE hudDamage; // 0x0000 - -- char _0x0001[0x7]; // 0x0001 - -- BYTE hudSpeed; // 0x0008 - -- char _0x0009[0x7]; // 0x0009 - -- BYTE hudCapacity; // 0x0010 - -- char _0x0011[0x7]; // 0x0011 - -- BYTE hudAccuracy; // 0x0018 - -- char _0x0019[0x7]; // 0x0019 - -- BYTE hudRange; // 0x0020 - -- }; - -- - -- Usage: - -- - -- WeaponHudStatsData data; - -- if (GET_WEAPON_HUD_STATS(weaponHash, (int *)&data)) - -- { - -- // BYTE damagePercentage = data.hudDamage and so on - -- } - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ["GET_WEAPON_HUD_STATS"]=--[[BOOL (bool)]] function(--[[Hash (int)]] weaponHash,--[[Any* (pointer)]] outData)return native_invoker.unified_bool(weaponHash, outData, 0xD92C739EE34C9EBA, "ip")end, - ["GET_WEAPON_COMPONENT_HUD_STATS"]=--[[BOOL (bool)]] function(--[[Hash (int)]] componentHash,--[[Any* (pointer)]] outData)return native_invoker.unified_bool(componentHash, outData, 0xB3CAF387AE12E9F8, "ip")end, - -- This native does not return damages of weapons from the melee and explosive group. - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ["GET_WEAPON_DAMAGE"]=--[[float]] function(--[[Hash (int)]] weaponHash,--[[Hash (int)]] componentHash)return native_invoker.unified_float(weaponHash, componentHash, 0x3133B907D8B32053, "ii")end, - -- // Returns the size of the default weapon component clip. - -- - -- Use it like this: - -- - -- char cClipSize[32]; - -- Hash cur; - -- if (WEAPON::GET_CURRENT_PED_WEAPON(playerPed, &cur, 1)) - -- { - -- if (WEAPON::IS_WEAPON_VALID(cur)) - -- { - -- int iClipSize = WEAPON::GET_WEAPON_CLIP_SIZE(cur); - -- sprintf_s(cClipSize, "ClipSize: %.d", iClipSize); - -- vDrawString(cClipSize, 0.5f, 0.5f); - -- } - -- } - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ["GET_WEAPON_CLIP_SIZE"]=--[[int]] function(--[[Hash (int)]] weaponHash)return native_invoker.unified_int(weaponHash, 0x583BE370B1EC6EB4, "i")end, - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ["GET_WEAPON_TIME_BETWEEN_SHOTS"]=--[[float]] function(--[[Hash (int)]] weaponHash)return native_invoker.unified_float(weaponHash, 0x065D2AACAD8CF7A4, "i")end, - ["SET_PED_CHANCE_OF_FIRING_BLANKS"]=--[[void]] function(--[[Ped (int)]] ped,--[[float]] xBias,--[[float]] yBias)return native_invoker.unified_void(ped, xBias, yBias, 0x8378627201D5497D, "iff")end, - -- Returns handle of the projectile. - ["SET_PED_SHOOT_ORDNANCE_WEAPON"]=--[[Object (int)]] function(--[[Ped (int)]] ped,--[[float]] p1)return native_invoker.unified_int(ped, p1, 0xB4C8D77C80C0421E, "if")end, - ["REQUEST_WEAPON_HIGH_DETAIL_MODEL"]=--[[void]] function(--[[Entity (int)]] weaponObject)return native_invoker.unified_void(weaponObject, 0x48164DBB970AC3F0, "i")end, - ["_SET_WEAPON_PED_DAMAGE_MODIFIER"]=--[[void]] function(--[[Hash (int)]] weapon,--[[float]] damageModifier)return native_invoker.unified_void(weapon, damageModifier, 0x1091922715B68DF0, "if")end, - -- Changes the weapon damage output by the given multiplier value. Must be run every frame. - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ["SET_WEAPON_DAMAGE_MODIFIER"]=--[[void]] function(--[[Hash (int)]] weaponHash,--[[float]] damageMultiplier)return native_invoker.unified_void(weaponHash, damageMultiplier, 0x4757F00BC6323CFE, "if")end, - ["SET_WEAPON_AOE_MODIFIER"]=--[[void]] function(--[[Hash (int)]] weaponHash,--[[float]] multiplier)return native_invoker.unified_void(weaponHash, multiplier, 0x4AE5AC8B852D642C, "if")end, - -- ex, WEAPON::SET_WEAPON_EFFECT_DURATION_MODIFIER(joaat("vehicle_weapon_mine_slick"), 1.0); - ["SET_WEAPON_EFFECT_DURATION_MODIFIER"]=--[[void]] function(--[[Hash (int)]] p0,--[[float]] p1)return native_invoker.unified_void(p0, p1, 0xE6D2CEDD370FF98E, "if")end, - -- This native returns a true or false value. - -- - -- Ped ped = The ped whose weapon you want to check. - ["IS_PED_CURRENT_WEAPON_SILENCED"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x65F0C5AE05943EC7, "i")end, - ["IS_FLASH_LIGHT_ON"]=--[[BOOL (bool)]] function(--[[Ped (int)]] ped)return native_invoker.unified_bool(ped, 0x4B7620C47217126C, "i")end, - ["SET_FLASH_LIGHT_FADE_DISTANCE"]=--[[BOOL (bool)]] function(--[[float]] distance)return native_invoker.unified_bool(distance, 0xCEA66DAD478CD39B, "f")end, - -- Enables/disables flashlight on ped's weapon. - ["SET_FLASH_LIGHT_ACTIVE_HISTORY"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0x988DB6FE9B3AC000, "ib")end, - -- Changes the selected ped aiming animation style. - -- Note : You must use GET_HASH_KEY! - -- - -- Strings to use with GET_HASH_KEY : - -- - -- "Ballistic", - -- "Default", - -- "Fat", - -- "Female", - -- "FirstPerson", - -- "FirstPersonAiming", - -- "FirstPersonFranklin", - -- "FirstPersonFranklinAiming", - -- "FirstPersonFranklinRNG", - -- "FirstPersonFranklinScope", - -- "FirstPersonMPFemale", - -- "FirstPersonMichael", - -- "FirstPersonMichaelAiming", - -- "FirstPersonMichaelRNG", - -- "FirstPersonMichaelScope", - -- "FirstPersonRNG", - -- "FirstPersonScope", - -- "FirstPersonTrevor", - -- "FirstPersonTrevorAiming", - -- "FirstPersonTrevorRNG", - -- "FirstPersonTrevorScope", - -- "Franklin", - -- "Gang", - -- "Gang1H", - -- "GangFemale", - -- "Hillbilly", - -- "MP_F_Freemode", - -- "Michael", - -- "SuperFat", - -- "Trevor" - ["SET_WEAPON_ANIMATION_OVERRIDE"]=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] animStyle)return native_invoker.unified_void(ped, animStyle, 0x1055AC3A667F09D9, "ii")end, - -- enum class eDamageType - -- { - -- UNKNOWN = 0, - -- NONE = 1, - -- MELEE = 2, - -- BULLET = 3, - -- BULLET_RUBBER = 4, - -- EXPLOSIVE = 5, - -- FIRE = 6, - -- COLLISION = 7, - -- FALL = 8, - -- DROWN = 9, - -- ELECTRIC = 10, - -- BARBED_WIRE = 11, - -- FIRE_EXTINGUISHER = 12, - -- SMOKE = 13, - -- WATER_CANNON = 14, - -- TRANQUILIZER = 15, - -- }; - -- - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ["GET_WEAPON_DAMAGE_TYPE"]=--[[int]] function(--[[Hash (int)]] weaponHash)return native_invoker.unified_int(weaponHash, 0x3BE0BB12D25FB305, "i")end, - ["SET_EQIPPED_WEAPON_START_SPINNING_AT_FULL_SPEED"]=--[[void]] function(--[[Ped (int)]] ped)return native_invoker.unified_void(ped, 0xE4DCEC7FD5B739A5, "i")end, - -- this returns if you can use the weapon while using a parachute - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ["CAN_USE_WEAPON_ON_PARACHUTE"]=--[[BOOL (bool)]] function(--[[Hash (int)]] weaponHash)return native_invoker.unified_bool(weaponHash, 0xBC7BE5ABC0879F74, "i")end, - -- Both coordinates are from objects in the decompiled scripts. Native related to 0xECDC202B25E5CF48 p1 value. The only weapon hash used in the decompiled scripts is weapon_air_defence_gun. These two natives are used by the yacht script, decompiled scripts suggest it and the weapon hash used (valkyrie's rockets) are also used by yachts. - ["CREATE_AIR_DEFENCE_SPHERE"]=--[[int]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[float]] p4,--[[float]] p5,--[[float]] p6,--[[Hash (int)]] weaponHash)return native_invoker.unified_int(x, y, z, radius, p4, p5, p6, weaponHash, 0x91EF34584710BE99, "fffffffi")end, - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ["CREATE_AIR_DEFENCE_ANGLED_AREA"]=--[[int]] function(--[[float]] p0,--[[float]] p1,--[[float]] p2,--[[float]] p3,--[[float]] p4,--[[float]] p5,--[[float]] p6,--[[float]] p7,--[[float]] p8,--[[float]] radius,--[[Hash (int)]] weaponHash)return native_invoker.unified_int(p0, p1, p2, p3, p4, p5, p6, p7, p8, radius, weaponHash, 0x9DA58CDBF6BDBC08, "ffffffffffi")end, - ["REMOVE_AIR_DEFENCE_SPHERE"]=--[[BOOL (bool)]] function(--[[int]] zoneId)return native_invoker.unified_bool(zoneId, 0x0ABF535877897560, "i")end, - ["REMOVE_ALL_AIR_DEFENCE_SPHERES"]=--[[void]] function()return native_invoker.unified_void(0x1E45B34ADEBEE48E, "")end, - ["SET_PLAYER_TARGETTABLE_FOR_AIR_DEFENCE_SPHERE"]=--[[void]] function(--[[Player (int)]] player,--[[int]] zoneId,--[[BOOL (bool)]] enable)return native_invoker.unified_void(player, zoneId, enable, 0xECDC202B25E5CF48, "iib")end, - ["IS_AIR_DEFENCE_SPHERE_IN_AREA"]=--[[BOOL (bool)]] function(--[[float]] x,--[[float]] y,--[[float]] z,--[[float]] radius,--[[int* (pointer)]] outZoneId)return native_invoker.unified_bool(x, y, z, radius, outZoneId, 0xDAB963831DBFD3F4, "ffffp")end, - ["FIRE_AIR_DEFENCE_SPHERE_WEAPON_AT_POSITION"]=--[[void]] function(--[[int]] zoneId,--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_void(zoneId, x, y, z, 0x44F1012B69313374, "ifff")end, - ["DOES_AIR_DEFENCE_SPHERE_EXIST"]=--[[BOOL (bool)]] function(--[[int]] zoneId)return native_invoker.unified_bool(zoneId, 0xCD79A550999D7D4F, "i")end, - -- Disables selecting the given weapon. Ped isn't forced to put the gun away. However you can't reselect the weapon if you holster then unholster. Weapon is also grayed out on the weapon wheel. - -- Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json - ["SET_CAN_PED_SELECT_INVENTORY_WEAPON"]=--[[void]] function(--[[Ped (int)]] ped,--[[Hash (int)]] weaponHash,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, weaponHash, toggle, 0xB4771B9AAF4E68E4, "iib")end, - -- Disable all weapons. Does the same as 0xB4771B9AAF4E68E4 except for all weapons. - ["SET_CAN_PED_SELECT_ALL_WEAPONS"]=--[[void]] function(--[[Ped (int)]] ped,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(ped, toggle, 0xEFF296097FF1E509, "ib")end, -} -ZONE={ - ["GET_ZONE_AT_COORDS"]=--[[int]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_int(x, y, z, 0x27040C25DE6CB2F4, "fff")end, - -- 'zoneName' corresponds to an entry in 'popzone.ipl'. - -- - -- AIRP = Los Santos International Airport - -- ALAMO = Alamo Sea - -- ALTA = Alta - -- ARMYB = Fort Zancudo - -- BANHAMC = Banham Canyon Dr - -- BANNING = Banning - -- BEACH = Vespucci Beach - -- BHAMCA = Banham Canyon - -- BRADP = Braddock Pass - -- BRADT = Braddock Tunnel - -- BURTON = Burton - -- CALAFB = Calafia Bridge - -- CANNY = Raton Canyon - -- CCREAK = Cassidy Creek - -- CHAMH = Chamberlain Hills - -- CHIL = Vinewood Hills - -- CHU = Chumash - -- CMSW = Chiliad Mountain State Wilderness - -- CYPRE = Cypress Flats - -- DAVIS = Davis - -- DELBE = Del Perro Beach - -- DELPE = Del Perro - -- DELSOL = La Puerta - -- DESRT = Grand Senora Desert - -- DOWNT = Downtown - -- DTVINE = Downtown Vinewood - -- EAST_V = East Vinewood - -- EBURO = El Burro Heights - -- ELGORL = El Gordo Lighthouse - -- ELYSIAN = Elysian Island - -- GALFISH = Galilee - -- GOLF = GWC and Golfing Society - -- GRAPES = Grapeseed - -- GREATC = Great Chaparral - -- HARMO = Harmony - -- HAWICK = Hawick - -- HORS = Vinewood Racetrack - -- HUMLAB = Humane Labs and Research - -- JAIL = Bolingbroke Penitentiary - -- KOREAT = Little Seoul - -- LACT = Land Act Reservoir - -- LAGO = Lago Zancudo - -- LDAM = Land Act Dam - -- LEGSQU = Legion Square - -- LMESA = La Mesa - -- LOSPUER = La Puerta - -- MIRR = Mirror Park - -- MORN = Morningwood - -- MOVIE = Richards Majestic - -- MTCHIL = Mount Chiliad - -- MTGORDO = Mount Gordo - -- MTJOSE = Mount Josiah - -- MURRI = Murrieta Heights - -- NCHU = North Chumash - -- NOOSE = N.O.O.S.E - -- OCEANA = Pacific Ocean - -- PALCOV = Paleto Cove - -- PALETO = Paleto Bay - -- PALFOR = Paleto Forest - -- PALHIGH = Palomino Highlands - -- PALMPOW = Palmer-Taylor Power Station - -- PBLUFF = Pacific Bluffs - -- PBOX = Pillbox Hill - -- PROCOB = Procopio Beach - -- RANCHO = Rancho - -- RGLEN = Richman Glen - -- RICHM = Richman - -- ROCKF = Rockford Hills - -- RTRAK = Redwood Lights Track - -- SANAND = San Andreas - -- SANCHIA = San Chianski Mountain Range - -- SANDY = Sandy Shores - -- SKID = Mission Row - -- SLAB = Stab City - -- STAD = Maze Bank Arena - -- STRAW = Strawberry - -- TATAMO = Tataviam Mountains - -- TERMINA = Terminal - -- TEXTI = Textile City - -- TONGVAH = Tongva Hills - -- TONGVAV = Tongva Valley - -- VCANA = Vespucci Canals - -- VESP = Vespucci - -- VINE = Vinewood - -- WINDF = Ron Alternates Wind Farm - -- WVINE = West Vinewood - -- ZANCUDO = Zancudo River - -- ZP_ORT = Port of South Los Santos - -- ZQ_UAR = Davis Quartz - -- - -- Full list of zones by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/zones.json - ["GET_ZONE_FROM_NAME_ID"]=--[[int]] function(--[[string]] zoneName)return native_invoker.unified_int(zoneName, 0x98CD1D2934B76CC1, "s")end, - ["GET_ZONE_POPSCHEDULE"]=--[[int]] function(--[[int]] zoneId)return native_invoker.unified_int(zoneId, 0x4334BC40AA0CB4BB, "i")end, - -- AIRP = Los Santos International Airport - -- ALAMO = Alamo Sea - -- ALTA = Alta - -- ARMYB = Fort Zancudo - -- BANHAMC = Banham Canyon Dr - -- BANNING = Banning - -- BEACH = Vespucci Beach - -- BHAMCA = Banham Canyon - -- BRADP = Braddock Pass - -- BRADT = Braddock Tunnel - -- BURTON = Burton - -- CALAFB = Calafia Bridge - -- CANNY = Raton Canyon - -- CCREAK = Cassidy Creek - -- CHAMH = Chamberlain Hills - -- CHIL = Vinewood Hills - -- CHU = Chumash - -- CMSW = Chiliad Mountain State Wilderness - -- CYPRE = Cypress Flats - -- DAVIS = Davis - -- DELBE = Del Perro Beach - -- DELPE = Del Perro - -- DELSOL = La Puerta - -- DESRT = Grand Senora Desert - -- DOWNT = Downtown - -- DTVINE = Downtown Vinewood - -- EAST_V = East Vinewood - -- EBURO = El Burro Heights - -- ELGORL = El Gordo Lighthouse - -- ELYSIAN = Elysian Island - -- GALFISH = Galilee - -- GOLF = GWC and Golfing Society - -- GRAPES = Grapeseed - -- GREATC = Great Chaparral - -- HARMO = Harmony - -- HAWICK = Hawick - -- HORS = Vinewood Racetrack - -- HUMLAB = Humane Labs and Research - -- JAIL = Bolingbroke Penitentiary - -- KOREAT = Little Seoul - -- LACT = Land Act Reservoir - -- LAGO = Lago Zancudo - -- LDAM = Land Act Dam - -- LEGSQU = Legion Square - -- LMESA = La Mesa - -- LOSPUER = La Puerta - -- MIRR = Mirror Park - -- MORN = Morningwood - -- MOVIE = Richards Majestic - -- MTCHIL = Mount Chiliad - -- MTGORDO = Mount Gordo - -- MTJOSE = Mount Josiah - -- MURRI = Murrieta Heights - -- NCHU = North Chumash - -- NOOSE = N.O.O.S.E - -- OCEANA = Pacific Ocean - -- PALCOV = Paleto Cove - -- PALETO = Paleto Bay - -- PALFOR = Paleto Forest - -- PALHIGH = Palomino Highlands - -- PALMPOW = Palmer-Taylor Power Station - -- PBLUFF = Pacific Bluffs - -- PBOX = Pillbox Hill - -- PROCOB = Procopio Beach - -- RANCHO = Rancho - -- RGLEN = Richman Glen - -- RICHM = Richman - -- ROCKF = Rockford Hills - -- RTRAK = Redwood Lights Track - -- SANAND = San Andreas - -- SANCHIA = San Chianski Mountain Range - -- SANDY = Sandy Shores - -- SKID = Mission Row - -- SLAB = Stab City - -- STAD = Maze Bank Arena - -- STRAW = Strawberry - -- TATAMO = Tataviam Mountains - -- TERMINA = Terminal - -- TEXTI = Textile City - -- TONGVAH = Tongva Hills - -- TONGVAV = Tongva Valley - -- VCANA = Vespucci Canals - -- VESP = Vespucci - -- VINE = Vinewood - -- WINDF = Ron Alternates Wind Farm - -- WVINE = West Vinewood - -- ZANCUDO = Zancudo River - -- ZP_ORT = Port of South Los Santos - -- ZQ_UAR = Davis Quartz - -- - -- Full list of zones by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/zones.json - ["GET_NAME_OF_ZONE"]=--[[string]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_string(x, y, z, 0xCD90657D4C30E1CA, "fff")end, - ["SET_ZONE_ENABLED"]=--[[void]] function(--[[int]] zoneId,--[[BOOL (bool)]] toggle)return native_invoker.unified_void(zoneId, toggle, 0xBA5ECEEA120E5611, "ib")end, - -- cellphone range 1- 5 used for signal bar in iFruit phone - ["GET_ZONE_SCUMMINESS"]=--[[int]] function(--[[int]] zoneId)return native_invoker.unified_int(zoneId, 0x5F7B268D15BA0739, "i")end, - -- Only used once in the decompiled scripts. Seems to be related to scripted vehicle generators. - -- - -- Modified example from "am_imp_exp.c4", line 6406: - -- /* popSchedules[0] = ZONE::GET_ZONE_POPSCHEDULE(ZONE::GET_ZONE_AT_COORDS(891.3, 807.9, 188.1)); - -- etc. - -- */ - -- ZONE::OVERRIDE_POPSCHEDULE_VEHICLE_MODEL(popSchedules[index], vehicleHash); - -- STREAMING::REQUEST_MODEL(vehicleHash); - ["OVERRIDE_POPSCHEDULE_VEHICLE_MODEL"]=--[[void]] function(--[[int]] scheduleId,--[[Hash (int)]] vehicleHash)return native_invoker.unified_void(scheduleId, vehicleHash, 0x5F7D596BAC2E7777, "ii")end, - -- Only used once in the decompiled scripts. Seems to be related to scripted vehicle generators. - -- - -- Modified example from "am_imp_exp.c4", line 6418: - -- /* popSchedules[0] = ZONE::GET_ZONE_POPSCHEDULE(ZONE::GET_ZONE_AT_COORDS(891.3, 807.9, 188.1)); - -- etc. - -- */ - -- STREAMING::SET_MODEL_AS_NO_LONGER_NEEDED(vehicleHash); - -- ZONE::CLEAR_POPSCHEDULE_OVERRIDE_VEHICLE_MODEL(popSchedules[index]); - ["CLEAR_POPSCHEDULE_OVERRIDE_VEHICLE_MODEL"]=--[[void]] function(--[[int]] scheduleId)return native_invoker.unified_void(scheduleId, 0x5C0DE367AA0D911C, "i")end, - -- Returns a hash representing which part of the map the given coords are located. - -- - -- Possible return values: - -- (Hash of) city -> -289320599 - -- (Hash of) countryside -> 2072609373 - -- - -- C# Example : - -- - -- Ped player = Game.Player.Character; - -- Hash h = Function.Call(Hash.GET_HASH_OF_MAP_AREA_AT_COORDS, player.Position.X, player.Position.Y, player.Position.Z); - ["GET_HASH_OF_MAP_AREA_AT_COORDS"]=--[[Hash (int)]] function(--[[float]] x,--[[float]] y,--[[float]] z)return native_invoker.unified_int(x, y, z, 0x7EE64D51E8498728, "fff")end, -} diff --git "a/store/RScript/Weapon Attribute/\345\210\266\345\257\274\345\257\274\345\274\271 \345\242\236\345\274\272\351\224\201\345\256\232\350\203\275\345\212\233.txt" "b/store/RScript/Weapon Attribute/\345\210\266\345\257\274\345\257\274\345\274\271 \345\242\236\345\274\272\351\224\201\345\256\232\350\203\275\345\212\233.txt" new file mode 100644 index 0000000..1b8bc47 --- /dev/null +++ "b/store/RScript/Weapon Attribute/\345\210\266\345\257\274\345\257\274\345\274\271 \345\242\236\345\274\272\351\224\201\345\256\232\350\203\275\345\212\233.txt" @@ -0,0 +1,12 @@ +lifetime: 10.0 +side_drag_coeff: 10.0 +pitch_change_rate: 100.0 +yaw_change_rate: 100.0 +roll_change_rate: 100.0 +should_use_homing_params_from_info: 1 +time_before_starting_homing: 0.15 +turn_rate_modifier: 100.0 +pitch_yaw_roll_clamp: 8.5 +default_homing_rocket_break_lock_angle: 0.2 +default_homing_rocket_break_lock_angle_close: 0.6 +default_homing_rocket_break_lock_close_distance: 20.0 diff --git "a/store/RScript/Weapon Attribute/\350\275\275\345\205\267\345\257\274\345\274\271 \346\227\240\351\231\220\345\277\253\351\200\237\350\277\236\345\217\221.txt" "b/store/RScript/Weapon Attribute/\350\275\275\345\205\267\345\257\274\345\274\271 \346\227\240\351\231\220\345\277\253\351\200\237\350\277\236\345\217\221.txt" new file mode 100644 index 0000000..b5ccb66 --- /dev/null +++ "b/store/RScript/Weapon Attribute/\350\275\275\345\205\267\345\257\274\345\274\271 \346\227\240\351\231\220\345\277\253\351\200\237\350\277\236\345\217\221.txt" @@ -0,0 +1,4 @@ +time_between_shots: 0.2 +alternate_wait_time: 0.2 +reload_time_mp: 0 +reload_time_sp: 0 diff --git "a/store/RScript/Weapon Attribute/\350\275\275\345\205\267\346\234\272\346\236\252 \345\277\253\351\200\237\345\260\204\345\207\273.txt" "b/store/RScript/Weapon Attribute/\350\275\275\345\205\267\346\234\272\346\236\252 \345\277\253\351\200\237\345\260\204\345\207\273.txt" new file mode 100644 index 0000000..67ffb36 --- /dev/null +++ "b/store/RScript/Weapon Attribute/\350\275\275\345\205\267\346\234\272\346\236\252 \345\277\253\351\200\237\345\260\204\345\207\273.txt" @@ -0,0 +1,4 @@ +time_between_shots: 0 +alternate_wait_time: 0 +reload_time_mp: 0 +reload_time_sp: 0